如何自动应用 WooCommerce 优惠券

已发表: 2021-06-22

您是否正在寻找为您的产品添加折扣以提高销售额的方法? 你来对地方了。 在本指南中,我们将向您展示如何自动应用 WooCommerce 优惠券

我们之前已经看到了如何在 WooCommerce 中创建优惠券以及如何使用代码应用它们的一些示例。 这一次,我们将重点介绍如何自动应用这些折扣来让您的购物者惊喜并增加您的销售额。

为什么以编程方式应用 WooCommerce 优惠券?

向用户提供优惠券是提高销售额的好方法。 通过在购物者考虑购买您的一种产品时为他们提供折扣,您将鼓励他们完成购买。

通过提供有吸引力的折扣将访问者转化为客户是大多数电子商务网站利用的行之有效的营销策略。 但是,值得注意的是,该优惠的成功很大程度上取决于您何时提供折扣。

如果您向刚刚浏览的人提供折扣,则该优惠不太可能产生任何影响。 同样,如果您将价格降低给已经决定购买地点和商品的人,那么当您可以收取全价时,您可能为时已晚,无法改变他们的想法或减少您的收入。 提供优惠券代码的最佳时机是当购物者正在考虑购买但尚未做出最终决定时。

折扣也是与经常性客户建立牢固关系的好方法。 通过以独家折扣奖励您的客户,您可以让他们有更多理由回到您的商店并成为忠实用户。

默认 WooCommerce 优惠券的限制

WooCommerce 提供的默认优惠券功能运行良好,但有一些限制。 最大的一个是用户必须手动输入优惠券并刷新页面才能将折扣应用于他们的订单。 正如您可以想象的那样,这种额外的摩擦并不理想,并且可能会让您失去客户。

此外,除了与到期日期和折扣应用方式相关的默认条件之外,不能应用任何类型的逻辑条件。 这就是为什么要充分利用优惠券,您可以自定义它们的行为并学习如何以编程方式应用它们。

在本指南中,您将学习如何自动应用 WooCommerce 优惠券。 这样,用户就不需要记住优惠券、复制/粘贴它们或刷新购物车页面。 这将改善客户体验并帮助您在短期和长期内提高销售额。

如何自动应用 WooCommerce 优惠券

由于我们将编辑functions.php文件,因此在开始该过程之前,我们建议您对站点进行完整备份并安装子主题。 您可以创建子主题或使用插件。 此外,如果您不熟悉 WooCommerce 钩子,我们建议您查看本指南。

一旦你这样做了,让我们从创建优惠券开始。

1) 创建 WooCommerce 优惠券

首先,在您的 WordPress 仪表板中,转到WooCommerce > 优惠券/营销 > 优惠券,然后单击添加优惠券

创建 woocommerce 优惠券折扣

然后,输入优惠券的名称。 由于这是我们将用来提供折扣的名称,因此我们建议使用描述性和简单的名称。

最重要的是,您必须指定其他重要信息:

  • 折扣金额(固定或百分比)
  • 优惠券类型
  • 截止日期

您还可以添加一些其他选项,例如使用限制、每个用户的限制等。 有关这方面的更多信息,请查看我们关于如何设置 WooCommerce 优惠券的指南。

创建 woocommerce 优惠券设置

创建优惠券后,让我们看看自动应用它们的不同方法。

2) 如何自动添加 WooCommerce 优惠券

在深入研究代码之前,请注意我们在以下所有示例脚本中使用相同的“ all-products ”优惠券代码。 此代码将对小计应用 3% 的折扣。

在所有情况下使用此优惠券可能对您的业务没有意义,因此请确保调整每个脚本并使用优惠券代码编辑变量$coupon_code

现在让我们看一些如何在 WooCommerce 中自动应用优惠券的示例。

2.1) 向回头客应用优惠券

仅当客户先前已完成订单时,这将适用于折扣券。

 // 回头客
add_action('woocommerce_before_cart', 'QuadLayers_returning_customers_coupon');
 
函数 QuadLayers_returning_customers_coupon(){
   $coupon_code = '所有产品';
   # 获取客户订单
   $user_id = wp_get_current_user();
   $customer_orders = [];
   foreach ( wc_get_is_paid_statuses() as $paid_status ) {
       $customer_orders += wc_get_orders( [
           '类型
' => 'shop_order',
           '限制' => - 1,
           'customer_id' => $user_id->ID,
           '状态' => $paid_status,
       ]);
       # 如果有现有订单,则应用优惠券
       如果(计数($customer_orders)>0){ 
           printf('<div class="woocommerce-message">此订单申请折扣,因为您是回头客!</div>');
           if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
           WC()->购物车->apply_coupon($coupon_code);
           wc_print_notices();
           休息;
       }   
   }
}

这是购物车页面上的结果:

自动应用 WooCommerce 优惠券 - 回头客优惠券

可以想象,这需要用户登录他们的账户,因为我们需要获取他们的用户 ID 来检查他们是否有现有订单。

如果满足该条件,将应用折扣并在购物车上显示一条消息。

要更改消息,只需编辑脚本中的printif行。

2.2)在账户用户信息上应用 WooCommerce 优惠券

您还可以根据用户帐户详细信息应用指定的优惠券。 在以下示例脚本中,我们将仅将优惠券应用于已在其帐户中作为国家/地区进入美国 (US) 的客户。 对于有针对性的促销活动以增加某些市场或国家/地区的销售额,这可能是一个有趣的选择。

 // 在账单国家(美国)应用优惠券
add_action('woocommerce_before_cart', 'QuadLayers_customer_information_coupon');
 
函数 QuadLayers_customer_information_coupon(){
   $coupon_code = '所有产品';
   $user = wp_get_current_user();
   $data = get_user_meta($user->ID, 'billing_country', true );
   如果($数据==“美国”):
   printf('<div class="woocommerce-message">此订单申请美国客户打折!</div>');
           if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
           WC()->购物车->apply_coupon($coupon_code);
           wc_print_notices();
   别的:
       WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
       wc_print_notices();  
       WC()->购物车->calculate_totals();    
   万一;
}

除了在用户的计费国家设置为美国时添加优惠券外,如果国家/地区不是美国,我们也会删除优惠券。 如果我们不这样做,用户可以编辑他们的帐单地址以获取优惠券,并且优惠券将在返回原国家后保留在那里。

2.3)按计划申请优惠券

默认的 WooCommerce 选项允许我们创建适用于特定日期或日期计划的优惠券。 但是,如果您需要按每日计划申请优惠券怎么办? 例如,只需使用以下脚本仅在上午 6:00 至上午 10:00 期间应用指定的优惠券。

这是启动限时抢购并在 WooCommerce 中自动应用优惠券的有趣选项。

 // 按每日时间表 (06:00/10:00) 应用优惠券
add_action('woocommerce_before_cart', 'QuadLayers_timer_scheduled_coupon');
 
函数 QuadLayers_timer_scheduled_coupon(){
$blogtime = current_time('mysql');
list($today_year, $today_month, $today_day, $hour, $minute, $second) = preg_split("([^0-9])", $blogtime);
   $coupon_code = '所有产品';
   如果($小时>=06&&$小时<10){
       printf('<div class="woocommerce-message">您正在享受我们的早安折扣(早上 6 点到 10 点)</div>');
           if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
           WC()->购物车->apply_coupon($coupon_code);
           wc_print_notices();
   }
}

请注意,我们正在检索条件中的唯一网站时间,并且该时间来自服务器,因此无论客户所在的时区如何,它都是相同的时间。 要设置每个时区的特定时间,您需要包含额外的逻辑。

2.4)在产品标签分类上应用优惠券

这是一个更复杂的功能,我们检索添加到购物车的所有产品标签并检查是否存在特定标签。

在下面的示例中,我们使用的标签是“ freeweek ”,因此在您执行此操作之前,您需要创建一个标签并将其附加到一些产品上。 或者,您可以使用已附加到您的产品的任何标签。

 // 将优惠券应用于产品标签分类(freeweek)
//
add_action('woocommerce_before_cart', 'QuadLayers_tag_coupon');
 
函数 QuadLayers_tag_coupon() {
   $coupon_code = '所有产品';
   $id_a=数组();
   foreach ( WC()->cart->get_cart() as $key => $cart_item ) {
       对于 ($i=0; $i < $cart_item['数量'] ; $i++) {  
           $productId = $cart_item['data']->get_id();
           array_push($id_a,$productId);         
       }
   }
  
   for($t=0;$t<count($id_a);$t++){
       $terms = wp_get_post_terms( $id_a[$t], 'product_tag' );
       foreach($terms 作为 $term){
               $term_name = $term->name; // 产品标签名称
           如果($term_name=='freeweek'):
                   printf('<div class="woocommerce-message">某产品带有折扣标签!</div>');
                   if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
                   WC()->购物车->apply_coupon($coupon_code);
                   wc_print_notices();
               休息;
           别的:
                   WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
                   wc_print_notices();  
                   WC()->购物车->calculate_totals();
           万一;
       }
   }
}

此折扣将应用于添加到购物车且具有指定标签的所有产品。

再次确保将代码上的“ freeweek ”标签名称替换为您的产品标签。

2.5)在 URL 参数上应用优惠券

优惠券代码的另一个有趣应用是使用 URL 参数来构建自定义链接。 在浏览器中,URL 参数及其值如下所示:

https://my.website.com/cart?parameter=value

这样,您可以构建自定义链接并通过电子邮件或电话将其发送给您的客户。 当任何人点击链接时,优惠券将自动应用于订单。 收到链接的用户可以与其他用户共享它,因此您可能需要添加一些其他条件以确保只有您想要的客户才能获得折扣。

 // 在 URL 参数上应用优惠券 (?co=custom-link)
add_action('woocommerce_before_cart', 'QuadLayers_url_coupon');
 
函数 QuadLayers_url_coupon() {
       $coupon_code = '所有产品';
   if(isset($_GET['co'])&&!empty($_GET['co']) ):
       $url_p=$_GET['co'];
       if($url_p=='自定义链接'):
           printf('<div class="woocommerce-message">某产品申请打折!%lt;/div>');
                   if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
                   WC()->购物车->apply_coupon($coupon_code);
                   wc_print_notices();
       别的:
                   WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
                   wc_print_notices();  
                   WC()->购物车->calculate_totals();
       万一;
   万一; 
}

如您所见,我们在上面使用的自定义链接是https://my.web?co=custom-link

奖励:将优惠券应用于某些产品

一个有趣的选项是自动将 WooCommerce 优惠券应用于特定产品。 这样,您可以使某些产品更具吸引力,以吸引客户,然后尝试与其他产品一起追加销售。

为此,请使用以下脚本并使用您自己的产品 ID 更改$products_id()数组。

 add_action('woocommerce_before_cart', 'QuadLayers_apply_matched_id_products');
函数 QuadLayers_apply_matched_id_products() {  
    
    // 之前创建的优惠券;
    $coupon_code = 'auto_coupon'; 
    // 这是您的产品 ID/s 数组  
    $product_ids = 数组(664,624,619); 
    // 申请优惠券。 默认为假
    $应用=假;
 
    // 添加到购物车产品循环
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {                      
        if ( in_array( $cart_item['product_id'], $product_ids )):              
            // 产品匹配ID
            $应用=真;
            休息;                     
        万一;  
    }
    // 应用和移除优惠券
    如果($应用==真):
        WC()->购物车->apply_coupon($coupon_code);
        wc_print_notices();  
    别的:    
        WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
        wc_print_notices();   
        WC()->购物车->calculate_totals();    
    万一; 
}

如需更多此类示例,请查看我们的以编程方式创建和应用优惠券的指南。

如何从优惠券中排除产品

或者,您可以从优惠券中排除某些产品,这样折扣不适用于它们。 如果您销售已经有折扣的商品(如捆绑产品或利润率低的产品),这可能是一个有趣的选择。

好消息是您可以从 WordPress 管理仪表板执行此操作。 转到Products > All Products ,将鼠标悬停在要从优惠券中排除的产品上,然后记下产品 ID

然后,转到外观 > 主题编辑器>主题函数并打开functions.php文件。 之后,粘贴以下代码,将 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() ) {
$有效=假;
}
返回$有效;
}

而已! 您选择的产品不受优惠券的影响。

这是一个简单的示例,但您可以做的还有很多。 有关这方面的更多信息,请查看我们的教程以从优惠券中排除 WooCommerce 产品。

结论

总而言之,向您的购物者提供优惠券是改善客户体验和增加销售额的绝佳方式。 此外,通过为您的客户提供独家折扣,他们更有可能忠诚于您的商店。

但是,请确保您在正确的时间提供折扣。 过早或过晚提供优惠券代码可能不会达到您预期的效果,因此请巧妙地使用它们。

在本指南中,我们看到 WooCommerce 默认提供的优惠券选项有一些限制。 通过学习如何自动应用 WooCommerce 优惠券,您将使用户的生活更轻松,并改善他们在您网站上的购物体验。

我们已经看到了在不同情况下自动应用优惠券的不同示例,这将帮助您将商店提升到一个新的水平。 有关 WooCommerce 优惠券的更多指南,请务必查看以下帖子:

  • 如何在 WooCommerce 中设置优惠券
  • 如何以编程方式创建 WooCommerce 优惠券(附示例)
  • 编辑 WooCommerce 优惠券代码字段

您是否在您的网站上尝试过上述任何脚本? 他们是否按预期工作? 在下面的评论部分告诉我们您的经历!