WooCommerce有条件地应用和删除优惠券代码

时间:2020-04-29 16:59:14

标签: php woocommerce conditional-statements coupon

我正在尝试创建一个功能,以使购物车和结帐页面中的优惠券代码成为条件。

条件如下:(1)如果应用了couponX,则删除存在的couponY。 (2)如果应用了couponY,则删除couponX(如果存在)。

添加和删除多个优惠券的可能性也会有所帮助。

我有这个,它似乎工作得很好,除了在添加save5today之后不允许我添加overstock10优惠券。

    add_action( 'woocommerce_before_calculate_totals', 'auto_add_remove_coupon' );
function auto_add_remove_coupon( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    $save5today = 'save5today';
    $overstock10 = 'overstock10';


    if ( $cart->has_discount( $save5today ) ) {
        $cart->remove_coupon( $overstock10 );
        wc_clear_notices();
        wc_add_notice( __("Your custom notice - coupon added (optional)","woocommerce"), 'notice');
    } elseif  ( $cart->has_discount( $overstock10 ) ) {
        $cart->remove_coupon( $save5today );
        wc_clear_notices();
        wc_add_notice( __("Your custom notice - coupon removed (optional)","woocommerce"), 'notice');
    }
}

0 个答案:

没有答案