如何從優惠券中排除 WooCommerce 產品

已發表: 2021-11-02

您是否正在尋找更有效地使用折扣代碼的方法? 我們有東西給你。 在本指南中,我們將向您展示從優惠券中排除 WooCommerce 產品的不同方法,因此折扣不適用於它們。

現在黑色星期五和聖誕節即將來臨,許多在線商店開始提供優惠和促銷活動。 當您設置折扣券並在線共享時,您希望確保它們不會導致您的利潤大幅下降。 如果您的銷售額增加了 25%,但每次銷售的利潤減少了 50%,那麼您最好不要提供任何折扣。

在更多的銷售額和每次銷售的利潤之間找到適當的平衡並不總是那麼容易。 做到這一點的最佳方法之一是保持某些產品無折扣。 您可以使用某些打折商品(例如掛鉤),然後嘗試使用其他沒有折扣的產品向您的客戶追加銷售。

在本指南中,我們將向您展示從優惠券中排除 WooCommerce 產品的不同方法,因此折扣不適用於它們。

為什麼要從優惠券中排除產品?

使用折扣券是許多 WooCommerce 商店用來提高銷售額的常用營銷策略。 如果使用得當,折扣可能對在線業務有益。 但是,如果應用不正確並且銷售額的增加至少不等於價格下降,它們也可能導致收入下降。

此外,對於較大的目錄,您的客戶也可能會利用漏洞。 例如,您可能不想對已應用折扣的捆綁產品應用折扣。 同樣,如果客戶對利潤已經微薄的產品使用折扣,您最終可能會賠錢。

這就是為什麼從折扣券中排除某些 WooCommerce 產品是一個不錯的選擇。 這樣,您可以創建任意數量的折扣券和代碼,同時確保這些特定產品不會受到它們的影響。

讓我們看看如何做到這一點,以及可以使用哪些工具將產品排除在折扣之外。

如何從優惠券中排除 WooCommerce 產品

從折扣券中排除 WooCommerce 產品的主要方法有兩種:

  1. 使用默認的 WooCommerce 選項
  2. 以編程方式

讓我們更詳細地檢查每個選項。

1) 使用默認 WooCommerce 選項從優惠券中排除 WooCommerce 產品

WooCommerce 為您提供了禁用某些產品和類別的特定優惠券的選項。 要訪問這些選項,請轉到WordPress 管理儀表板上WooCommerce > 優惠券

然後,單擊優惠券下方的編輯,打開您要排除的任何優惠券。 然後,向下滾動並轉到使用限制選項卡

從優惠券中排除 woocommerce 產品 - 優惠券選項卡

在這裡,您可以使用排除產品排除類別選項從此特定優惠券中排除某些產品。 只需在排除產品字段中輸入產品名稱或在排除類別字段中輸入產品類別。 例如,如果您不想對 Product 15 和 Product Bundles 應用折扣,您可以這樣做。

從優惠券中排除 woocommerce 產品 - 優惠券限制

現在,此特定優惠券將不適用於這些產品。 但是,請注意,適用於該項目的所有其他優惠券都將有效,除非您在其他優惠券中重複此過程。

從優惠券中排除 woocommerce 產品 - 排除的產品

如果您有許多優惠券,此過程可能會很耗時,因為您必須逐個添加要排除的產品。 好消息是,有一種更有效的方法可以用一些代碼來完成。 讓我們看看如何以編程方式從所有優惠券中排除 WooCommerce 產品。

2)以編程方式從優惠券中排除 WooCommerce 產品

您還可以通過編程方式從折扣券中排除 WooCommerce 產品。 這種方法的優點是它為您提供了很大的靈活性,以確保折扣不適用於某些商品。 例如,您可以禁用優惠券的特定產品 ID,或在 WooCommerce 產品數據選項中添加一個複選框。

讓我們看看如何啟用其中一些選項。

注意:由於我們將編輯一些核心文件,因此在開始之前,我們建議您創建站點的備份並安裝子主題(如果您還沒有子主題)。

2.1) 使用產品 ID 從優惠券中排除 WooCommerce 產品

從優惠券中排除 WooCommerce 產品的最簡單方法之一是簡單地添加一個代碼片段,該代碼段禁止優惠券適用於特定產品 ID

為此,您需要先找到產品 ID。 為此,打開您的WordPress 管理儀表板,轉到產品,您將看到所有 WooCommerce 產品的列表。 將鼠標懸停在您不想應用折扣的產品上,您將看到產品 ID。

從優惠券中排除 woocommerce 產品 - 產品 ID

把它寫下來,放在方便的地方,因為你將需要它來進行下一步。

之後,通過前往Appearance > Theme Editor打開您的主題函數文件 然後,使用右側的主題文件側邊欄並打開functions.php文件。

從優惠券中排除 woocommerce 產品 - 主題編輯器功能

將以下代碼片段添加到文件中,但請記住將PRODUCT_ID替換為您要排除的產品的相應 ID。

 add_filter('woocommerce_coupon_is_valid_for_product', 'quadlayers_exclude_product_from_product_promotions', 9999, 4);
函數 quadlayers_exclude_product_from_product_promotions($valid, $product, $coupon, $values) {
// 替換產品 ID (EG 145)
if ( PRODUCT_ID == $product->get_id() ) {
$有效=假;
}
返回$有效;
}

該代碼不包括我們指定的產品 ID 的折扣。 例如,在我們的例子中,產品 ID 是 145,所以代碼片段將是:

 add_filter('woocommerce_coupon_is_valid_for_product', 'quadlayers_exclude_product_from_product_promotions', 9999, 4);
函數 quadlayers_exclude_product_from_product_promotions($valid, $product, $coupon, $values) {
// 產品 ID = 145
如果 ( 145 == $product->get_id() ) {
$有效=假;
}
返回$有效;
} 

而已! 您指定的產品將從您的所有優惠券中排除。 有關這方面的更多信息,請查看此網站。

2.2) 從折扣券中排除銷售的 WooCommerce 產品

另一個有趣的選擇是從優惠券代碼中排除已經應用折扣的產品。 例如,如果您的產品已經在銷售,您可以添加腳本以確保它們不會獲得額外折扣。 當您的商店正在進行促銷活動並且您希望確保您的折扣不適用於任何正在銷售的產品時,這非常有用。

此過程與上述過程類似。 只需轉到管理儀表板上的外觀 > 主題編輯器,然後在右側主題文件側邊欄打開functions.php文件。 然後,粘貼以下腳本以從折扣中排除所有已在銷售的產品。

 add_filter('xa_pbu_skip_product_on_sale','ql_skip_product_on_sale_from_discount',1,2);
功能 ql_skip_product_on_sale_from_discount($return_val,$pid) { 
$sale_price = get_post_meta($pid,'_sale_price',true); 
如果(!empty($sale_price)){
返回真; // 如果為真,則排除該產品
}
返回 $return_val;
} 

從優惠券中排除 woocommerce 產品 - 銷售中排除的產品

或者,您可以使用以下代碼從優惠券中排除已在銷售的某些產品。 只需將產品 ID 替換為您的 ID。

 add_filter('xa_pbu_skip_product','ql_skip_product_from_discount',1,2);
函數 ql_skip_product_from_discount($return_val,$pid) {
$pid_to_skip = 數組(產品 ID); // 要排除的產品 ID
如果(in_array($pid,$pid_to_skip)){
返回真; // 如果為真,則排除該產品
}
返回 $return_val;
}

如果要添加多個產品,只需添加任意數量並用逗號分隔即可。 您可以在此處找到更多相關信息。

以編程方式添加選項以從優惠券中排除 WooCommerce 產品

如果您認為這是您可能經常做的事情,那麼每次都執行上述過程可能不是最舒服的事情。 在這種情況下,有一個更有效的選擇。 您可以添加一個自定義函數,在後端添加一個複選框,並允許您為每個產品單獨禁用優惠券

您可以簡單地將此代碼段添加到您的所有商品中,然後再決定要從優惠券中排除哪些 WooCommerce 產品以及何時排除。 這是一個有趣的選項,因為允許您通過選擇或取消選擇該複選框來使該選項動態化,而不必在functions.php文件中添加和刪除腳本。

為此,請在您的管理儀表板上轉到外觀 > 主題編輯器,然後在主題文件側欄上打開functions.php文件。

從優惠券中排除 woocommerce 產品 - 主題編輯器功能

現在繼續將此代碼粘貼到編輯器中:

 // 在產品常規設置選項卡中創建自定義字段
add_action('woocommerce_product_options_general_product_data','ql_add_custom_field_general_product_fields');
功能 ql_add_custom_field_general_product_fields(){
全球 $post;

迴聲'<div class="product_custom_field">';

// 自定義產品複選框字段
woocommerce_wp_checkbox(數組(
'id' => '_disabled_for_coupons',
'label' => __('禁用優惠券', 'woocommerce'),
'description' => __('禁用此產品的優惠券折扣', 'woocommerce'),
'desc_tip' => '真',
));

迴聲'</div>';;
}

// 保存自定義字段並更新 WP 設置中所有排除的產品 ID
add_action('woocommerce_process_product_meta', 'ql_save_custom_field_general_product_fields', 10, 1);
函數 ql_save_custom_field_general_product_fields( $post_id ){

$current_disabled = isset($_POST['_disabled_for_coupons']) ? “是”:“否”;

$disabled_products = get_option('_products_disabled_for_coupons');
如果(空($disabled_products)){
如果($current_disabled == '是')
$disabled_products = 數組($post_id);
} 別的 {
如果($current_disabled == '是'){
$disabled_products[] = $post_id;
$disabled_products = array_unique($disabled_products);
} 別的 {
如果 ( ( $key = array_search( $post_id, $disabled_products ) ) !== false )
未設置($disabled_products[$key]);
}
}

update_post_meta($post_id, '_disabled_for_coupons', $current_disabled);
update_option('_products_disabled_for_coupons', $disabled_products );
}

// 使優惠券在產品級別無效
add_filter('woocommerce_coupon_is_valid_for_product', 'set_coupon_validity_for_excluded_products', 12, 4);
功能 set_coupon_validity_for_excluded_products($valid, $product, $coupon, $values ){
if( !count(get_option( '_products_disabled_for_coupons' )) > 0 ) 返回 $valid;

$disabled_products = get_option('_products_disabled_for_coupons');
if(in_array($product->get_id(), $disabled_products))
$有效=假;

返回$有效;
}

// 設置產品折扣金額為零
add_filter('woocommerce_coupon_get_discount_amount', 'zero_discount_for_excluded_products', 12, 5);
功能 zero_discount_for_excluded_products($discount, $discounting_amount, $cart_item, $single, $coupon){
if( !count(get_option( '_products_disabled_for_coupons' )) > 0 ) 返回 $discount;

$disabled_products = get_option('_products_disabled_for_coupons');
如果(in_array($cart_item['product_id'],$disabled_products))
$折扣 = 0;

返回$折扣;
} 

從優惠券中排除 woocommerce 產品 - 排除的產品堆棧

之後,更新文件。 現在讓我們看看如何使用您剛剛添加的自定義復選框。

使用功能和禁用優惠券選項

轉到產品部分並打開您想從優惠券中排除的任何產品。 在Product dataGeneral 選項卡上,您現在應該會看到一個名為Disabled for coupons 的新選項。

啟用此選項將從折扣券中排除此 WooCommerce 產品。 如果您隨後取消選中它,折扣將再次適用於該項目。 請記住保存更改並檢查前端以確保一切正常。

結論

總而言之,即使您提供優惠,從折扣中排除某些商品也是最大化收入的一個很好的選擇。 例如,您可能希望對某些產品應用折扣,而不是對其他產品應用折扣,因為您的利潤已經很薄,或者它們已經應用了折扣。

在本指南中,我們看到了從優惠券中跳過和排除 WooCommerce 產品的不同方法:

  • 使用 WooCommerce 默認選項
  • 使用產品 ID 以編程方式排除單個產品、所有產品或僅銷售的商品
  • 添加自定義腳本以在後端包含一個選項以禁用特定產品的優惠券

如果您對這些步驟中的任何一個有任何疑問,請在下面的評論部分告訴我們,我們將盡力為您提供幫助。

最後,如果您正在尋找設置折扣的其他方法以及使用它們的最佳方式,我們建議您查看以下指南:

  • 如何自動應用 WooCommerce 優惠券
  • 如何創建和設置 WooCommerce 優惠券
  • 創建和應用 WooCommerce 優惠券:完整指南