Woocommerce中存在缺货商品时,允许使用特定的优惠券

时间:2019-01-04 22:43:04

标签: php wordpress woocommerce cart coupon

是否可以仅在缺货订单中允许某些woocommerce优惠券?

我尝试使用If WooCommerce Cart items are on backorder do not apply coupon答案代码,以限制回购产品不能使用任何优惠券。

我已将if( $stock_info < 1 ){更改为if( $stock_info > 0 ){

但是,我只能在未交货的订单上使用优惠券...但是在特定优惠券上如何使用此优惠券呢?

我可以使用其ID吗?但是在哪里?

1 个答案:

答案 0 :(得分:0)

当购物车中有缺货商品时,以下代码将使特定的已定义优惠券代码有效:

add_filter( 'woocommerce_coupon_is_valid', 'specific_coupons_valid_for_backorders', 10, 3 );
function specific_coupons_valid_for_backorders( $is_valid, $coupon, $discount ){
    // HERE below define in the array your coupon codes
    $coupon_codes = array( 'summer', 'tenpercent' );

    if( in_array( $coupon->get_code(), $coupon_codes ) ) {
        $is_valid = false;

        // Loop through cart items and check for backordered items
        foreach ( WC()->cart->get_cart() as $cart_item ) {
            if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
                $is_valid = true; // Backorder found, coupon is valid
                break; // Stop and exit from the loop
            }
        }
    }
    return $is_valid;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。