如何以编程方式在 WooCommerce 中创建和应用优惠券

已发表: 2020-09-26

您想创建优惠券并添加折扣以增加客户参与度吗? 在本指南中,我们将向您展示如何以编程方式在 WooCommerce 中创建和应用优惠券。 我们将向您展示可以采取哪些措施来增加销售额的不同示例。

为什么在 WooCommerce 中使用折扣券?

大多数电子商务网站的转化率很少超过 3%,因此店主一直在寻找增加销售额的方法。 实现这一目标的最有效方法之一是使用折扣券。

折扣可以为用户提供额外的好处,帮助他们下定决心购买你的产品。 例如,您可以在圣诞节或黑色星期五等重要的电子商务日期使用优惠券,在有限的时间内提供折扣,为最忠实的客户创建优惠券等等。 提供优惠券可以通过多种方式帮助提高转化率并促进销售。

这就是为什么在本指南中,我们将向您展示如何以编程方式在 WooCommerce 中创建和应用优惠券

如何以编程方式在 WooCommerce 中创建和应用优惠券

在本教程中,您将学习如何以不同的方式创建和添加 WooCommerce 优惠券:

  1. 创建 WooCommerce 优惠券
  2. 将优惠券应用于:
    1. 所有产品
    2. 按 ID 列出的特定产品
    3. 小计购物车价值
    4. 总购物车取决于产品数量

由于您将编辑子主题的functions.php文件,因此在开始之前您需要安装子主题。 您可以创建一个或使用子主题插件。 此外,请记住,我们将使用几个 WooCommerce 挂钩,因此,如果您不熟悉它们,我们建议您查看这篇文章。

1) 在 WooCommerce 设置中创建优惠券

在应用优惠券之前,您需要创建它们。 因此,第一步是在 WooCommerce 中创建优惠券。 使用内置的 WooCommerce 功能,您只需单击几下即可轻松创建它们。

在 WordPress 仪表板中,转到WooCommerce > 优惠券,然后单击添加优惠券。 在某些 WooCommerce 版本中,您可能会在Marketing > Coupons下找到它。 然后输入优惠券代码名称。 您可以键入任何您想要的名称或使用自动生成的名称。 在这种情况下,我们将其命名为auto_coupon

然后,您必须选择折扣类型(百分比、固定购物车折扣或固定产品折扣)、金额(百分比或固定金额)和到期日期。 您还可以设置优惠券申请产品的限制条款、客户申请优惠券所需花费的最低金额、限制每个优惠券或用户的使用量等。

设置优惠券后,按Publish创建 woocommerce 优惠券 值得注意的是,您可以随时更改任何这些设置。 请注意,如果您这样做,您需要调整我们将使用的脚本以匹配新优惠券代码的设置。

如果您想了解有关如何在 WooCommerce 中创建和设置优惠券的更多详细信息,可以查看此分步指南。

现在您知道如何在 WooCommerce 中创建优惠券了。 让我们看看如何应用它们。

2.1) 以编程方式将优惠券应用于任何产品

首先,让我们看看如何将优惠券应用于任何 WooCommerce 产品。 为此,我们将使用woocommerce_before_cart挂钩在购物车页面加载之前运行脚本。 此外,在应用我们刚刚创建的优惠券代码 ( auto_coupon ) 之前,我们将使用 WooCommerce 购物车对象来检索我们运行验证所需的信息。

WC()->cart对象在前端页面中可用,它允许您检索与购物车页面相关的所有信息。 因此,将以下脚本粘贴到您的子主题的functions.php文件中:

 add_action('woocommerce_before_cart', 'QuadLayers_apply_coupon');
    函数 QuadLayers_apply_coupon() {
        $coupon_code = 'auto_coupon';
        if ( WC()->cart->has_discount( $coupon_code ) ) 返回;
        WC()->购物车->apply_coupon($coupon_code);
        wc_print_notices();
    }

如您所见,我们使用if()条件来检查优惠券是否已被应用。 要知道这一点,您可以像这样检索 WooCommerce 购物车对象: WC()->cart->has_discount($coupon_code);

请务必注意,您在每种情况下都需要这种验证。 如果您没有以正确的方式执行此操作,您将多次添加优惠券,或者在重新加载购物车页面时。 另外,请注意WC()->apply_coupon($coupon_code)是将定义的优惠券应用到当前购物车页面的方式。

2.3) 将 WooCommerce 优惠券应用于特定产品 ID

另一个有趣的选择是将优惠券应用于特定的 WooCommerce 产品 ID 。 为此,您可以使用以下脚本。 只需确保您编辑$products_id()数组以匹配您的产品 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();    
    万一; 
}

在这里,我们使用了一个foreach()循环来遍历所有添加到购物车的产品。 如果其中任何一个与指定的 ID 匹配,则$apply变量设置为 true。 这样,验证只是在变量为true时应用优惠券。 否则,它会删除优惠券。

2.4)将优惠券应用于小计购物车价值

现在,假设您不想根据产品添加折扣,而是想在客户在您的商店中花费超过 50 美元时在 WooCommerce 中应用优惠券。 这是奖励购物者并鼓励他们在您的网站上花费更多钱的好方法。 因此,通过以下功能,您只有在购物车小计价值超过 50 时才能申请优惠券。

 add_action('woocommerce_before_cart','QuadLayers_apply_coupon_cart_values');
函数 QuadLayers_apply_coupon_cart_values(){
     
       // 之前创建的优惠券
       $coupon_code = 'auto_coupon';           
       // 获取优惠券
       $current_coupon = WC()->购物车->get_coupons();
       // 获取购物车小计
       $cart_ST = WC()->购物车->小计;        
 
       // 优惠券在 && 条件为真之前没有被应用
       如果(空($current_coupon)&&$cart_ST>=50):
           // 申请优惠券
           WC()->购物车->apply_coupon($coupon_code);
           wc_print_notices();            
       // 优惠券已申请 && 条件为 false
       elseif(!empty($current_coupon)&&$cart_ST<50):
           WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
           wc_print_notices();       
           WC()->购物车->calculate_totals();
           echo '<div class="woocommerce_message">优惠券已移除</div>';
       // 条件为 FALSE && 不应用优惠券
       else:// 什么都不做 
           echo '<div class="woocommerce_message"> 未知错误</div>';
       万一;
}

当然,您可以将脚本中的 50 美元替换为对您的业务更有意义的任何其他金额。 购物车总数超过 50 时申请 WC 优惠券 另请注意,在条件中,我们使用之前使用的相同 WC 对象实例来精确控制何时添加或删除优惠券。 WC()->cart->subtotal允许您了解购物车小计,并将其值存储在$cart_ST变量中。

最后,请记住,您必须使用WC()->cart->calculate_totals(); 应用优惠券后重新计算购物车的总金额。

2.5)根据购物车中的产品数量将优惠券应用于总购物车

同样,仅当购物车中的产品数量最少时,您才可以使用以下脚本以编程方式应用 WooCommerce 优惠券。 例如,假设您想在客户的购物车中有4 个或更多产品时添加折扣:

 add_action('woocommerce_before_cart','QuadLayers_apply_coupon_cart_values');
函数 QuadLayers_apply_coupon_cart_values(){ 
        
        // 之前创建的优惠券
        $coupon_code = 'auto_coupon';            
        // 获取优惠券
        $current_coupon = WC()->购物车->get_coupons();       
        // 获取产品数量
        $P_count =WC()->购物车->get_cart_contents_count();

        // 优惠券在 && 条件为真之前没有被应用
        如果(空($current_coupon)&&$P_count>=4):
            // 申请优惠券
            WC()->购物车->apply_coupon($coupon_code);
            wc_print_notices();             
        // 优惠券已申请 && 条件为 false
        elseif(!empty($current_coupon)&&$P_count<4):
            // 移除优惠券
            WC()->购物车->remove_coupons(sanitize_text_field($coupon_code));
            wc_print_notices();        
            WC()->购物车->calculate_totals();             
            echo '<div class="woocommerce_message"> 优惠券已移除</div>';
        // 条件为 FALSE && 不应用优惠券
        else:// 什么都不做  
            echo '<div class="woocommerce_message"> 未知错误</div>';
        万一;
}

如果在购物者购买 4 种或更多产品时应用折扣对您的业务没有多大意义,您可以将其替换为您想要的任何其他数字。 这里使用的新变量是$P_count ,其中存储了添加到购物车的产品的数量。 这允许您有一个可靠的条件,仅在需要时添加或删除优惠券。 在 WooCommerce 中应用优惠券 - 优惠券取决于产品数量 这些只是您如何以编程方式应用 WooCommerce 优惠券的一些示例,但可能性是无穷无尽的。 以这些脚本为基础,释放您的创造力来创建您自己的脚本!

WC 对象实例

这是我们在上述所有脚本中使用的 WooCommerce 对象实例的完整列表,以及在您想以编程方式添加折扣时可能有用的其他一些实例:

  • WC()->cart->apply_coupon('coupon_code'); 将指定的优惠券应用于购物车总数。
  • WC()->购物车->remove_coupons('coupon_code'); 从购物车总数中删除指定的优惠券。
  • WC()->cart->has_discount('coupon_code'); 返回是否已应用折扣。
  • WC()->购物车->get_coupons(); 如果存在,则获取当前应用的优惠券。
  • WC()->购物车->小计; 获取小计购物车值。
  • WC()->购物车->get_cart_contents_count(); 获取购物车中的商品数量。
  • WC()->cart->get_cart()以数组的形式返回购物车的内容。
  • WC()->购物车->calculate_totals(); 重新计算购物车总数。
  • WC()->购物车->总计; 检索购物车总数(计算后)。
  • WC()->购物车->is_empty(); 检查购物车是否为空。 返回布尔值。
  • WC()->购物车->get_coupon_discount_amount('coupon_code'); 获取指定优惠券代码的折扣金额。
  • WC()->购物车->needs_payment(); 检查是否需要付款。 返回布尔值。

奖励:如何使用插件在 WooCommerce 中自动应用优惠券

在本节中,我们将向您展示如何使用优惠券 URL 自动应用优惠券。 最大的优势是客户不需要记住代码,因此您可以直接通过您的时事通讯或社交媒体发送代码。 当用户点击链接时,他们会自动获得折扣。 这些优惠券是在黑色星期五或圣诞节等特殊日期或在商店提供限时促销时提高销售额的绝佳选择。

使用 WooCommerce 的高级优惠券自动应用优惠券

为此,我们将使用一个名为 Advanced Coupons for WooCommerce 的免费插件,您可以从 WordPress 存储库下载该插件。

  1. 首先,安装并激活插件。
  2. 然后,在您的 WordPress 仪表板中,转到WooCommerce > 优惠券以创建您的优惠券链接。 根据您使用的 WooCommerce 版本,您可能需要转到Marketing > Coupons 。 按添加优惠券
  3. 在下一个屏幕中,为您的优惠券命名和描述(可选)。 然后在优惠券数据部分输入优惠券的详细信息。 您需要选择折扣类型(百分比、固定购物车或固定产品)和折扣金额。 请注意,金额将是百分比或固定金额,具体取决于您选择的折扣类型。 此外,您可以选择到期日期并将折扣连接到附属帐户。
  4. 使用限制选项卡下,您可以为您的优惠券设置限制。 例如,您可以限制最低或最高支出、限制某些产品的折扣等等。 最重要的是,在使用限制下,您可以设置优惠券的使用次数限制,并限制每个用户的使用量。 注意:我们建议您限制每个用户的使用量,以便他们只能使用一次。
  5. 之后,转到URL 优惠券部分并输入您的优惠券详细信息。 选择将重定向客户的 URL 并创建成功消息。 您会看到将自动生成优惠券 URL。 但是,如果要自定义它,可以使用Code URL Override框。
  6. 最后,按发布,就是这样!

创建优惠券 URL 后,使用时事通讯和社交媒体对其进行宣传,以提高销售额!

附加:如何显示默认输入优惠券代码的表格

最后,让我们看看如何显示默认输入优惠券代码的表单,以使其更引人注目。 为此,您可以覆盖子主题中的checkout/form-coupon.php模板,并从下面的代码行中删除style=display:none

 <form class="checkout_coupon" method="post">

有关编辑 WooCommerce 优惠券代码字段的更多方法,请查看本指南

结论

总而言之,折扣是鼓励客户从您的商店购买并提高销售额的绝佳方式。 您可以将它们用于圣诞节或黑色星期五等重要日期,以奖励您的忠实客户或促进更大的销售。

在本指南中,您学习了如何在 WooCommerce 中创建优惠券以及如何以编程方式应用它。 此外,我们还看到了将优惠券应用于以下方面的不同示例:

  1. 所有产品
  2. 按 ID 列出的特定产品
  3. 小计购物车价值
  4. 购物车总数取决于购物车中的产品数量

您可以将这些脚本作为基础并对其进行自定义,以充分利用商店中的优惠券。

最后,重要的是要注意,即使优惠券和折扣可以帮助您提高转化率,您也不应该过度使用它们。 确保您在正确的时间将它们提供给正确的客户。 否则,如果您不断向任何人提供折扣,可能会影响您的声誉。

有关以编程方式自定义商店的更多指南,您可以查看以下指南:

  • 如何通过编码编辑 WooCommerce 商店页面?
  • WooCommerce 以编程方式添加到购物车功能
  • 将自定义字段添加到结帐页面

你用过这些脚本吗? 你有任何问题吗? 在下面的评论部分让我们知道!