【问题标题】:Mandatory coupon before checkout in WooCommerce (optional: for specific products)在 WooCommerce 中结帐前强制使用优惠券代码
【发布时间】:2021-01-03 02:46:56
【问题描述】:

我想强制客户在结账之前添加优惠券代码。我希望它适用于我的 WooCommerce 商店中的每个优惠券代码和每个产品。

我正在使用此代码,它几乎可以解决问题,但它仅适用于单个优惠券代码 (freev1)

如何使它适用于生成的每个优惠券代码?

add_action( 'woocommerce_check_cart_items', 'mandatory_coupon_code' );
function mandatory_coupon_code() {
    // HERE set your coupon code
    $mandatory_coupon = 'freev1';

    $applied_coupons = WC()->cart->get_applied_coupons();

    // If coupon is found we exit
    if( in_array( $mandatory_coupon, $applied_coupons ) ) return;

    // Not found: display an error notice
    wc_add_notice( __( 'Add coupon before checkout.', 'woocommerce' ), 'error' );
}

【问题讨论】:

    标签: php wordpress woocommerce checkout coupon


    【解决方案1】:

    只要检查$applied_coupons是否为空,为空时添加通知。删除$mandatory_coupon & if ( in_array...

    所以你得到

    function mandatory_coupon_code() {
        $applied_coupons = WC()->cart->get_applied_coupons();
    
        if ( empty ( $applied_coupons ) ) {
            // Not found: display an error notice
            wc_add_notice( __( 'Add coupon before checkout.', 'woocommerce' ), 'error' );   
        }
    }
    add_action( 'woocommerce_check_cart_items', 'mandatory_coupon_code', 10, 0 );
    

    【讨论】:

    • 是否可以使用几乎相同的代码,但可以在结帐页面使用并在下订单前强制使用优惠券?
    • 您可以将woocommerce_check_cart_items 替换为结帐页面的woocommerce_checkout_process 挂钩
    猜你喜欢
    • 2017-07-13
    • 2016-02-25
    • 1970-01-01
    • 2020-03-19
    • 2016-02-09
    • 2014-11-26
    • 2021-11-01
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多