检查优惠券是否适用于woo commerce

Der*_*rek 3 php wordpress woocommerce

我需要找到一种方法来检查优惠券是否适用于Woocommerce结账,如果是的话我想做点什么.我试图寻找这个,但找不到解决方案.

这是我正在尝试的精简版:

add_action('woocommerce_before_cart_table', 'apply_product_on_coupon');
function apply_product_on_coupon( ) {
    global $woocommerce;
    $coupon_id = '12345';

        if( $woocommerce->cart->applied_coupons === $coupon_id ) {
        echo 'YAY it works';
    }
}
Run Code Online (Sandbox Code Playgroud)

那么这不是检查购物车中是否存在优惠券的正确方法吗? if( $woocommerce->cart->applied_coupons === $coupon_id )

mai*_*o84 8

从你的例子中,这样的东西可能会起作用.这是未经测试的,但应该为您指明正确的方向:

add_action('woocommerce_applied_coupon', 'apply_product_on_coupon');
function apply_product_on_coupon( ) {
    global $woocommerce;
    $coupon_id = '12345';
    $free_product_id = 54321;

    if(in_array($coupon_id, $woocommerce->cart->get_applied_coupons())){
        $woocommerce->cart->add_to_cart($free_product_id, 1);
    }
}
Run Code Online (Sandbox Code Playgroud)


rea*_*777 6

global $woocommerce;
if (!empty($woocommerce->cart->applied_coupons))
{
        //print_r($woocommerce->cart->applied_coupons); - keys of coupons here
}
Run Code Online (Sandbox Code Playgroud)