如何从优惠券中排除 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 优惠券:完整指南