source

woo commerce에서 쿠폰 적용여부 확인

lovecheck 2023. 3. 13. 20:34
반응형

woo commerce에서 쿠폰 적용여부 확인

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';
    }
}

그럼 쿠폰이 카트에 있는지 확인하는 방법이 맞지 않나요? if( $woocommerce->cart->applied_coupons === $coupon_id )

당신의 예시로 볼 때, 이와 같은 것이 효과가 있을 수 있습니다.이는 테스트되지 않았지만 올바른 방향으로 나아갈 수 있습니다.

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);
    }
}
global $woocommerce;
if (!empty($woocommerce->cart->applied_coupons))
{
        //print_r($woocommerce->cart->applied_coupons); - keys of coupons here
}

이것은 오래된 문제일 수 있지만 간단한 해결책은

WC()->cart->applied_coupons

이 반환 배열은 적용된 쿠폰 목록을 보여줍니다. 그런 다음 for 또는 in_array를 사용하여 적용된 쿠폰을 확인할 수 있습니다.

도움이 되었으면 좋겠다

쿠폰 코드를 알고 있지만 쿠폰 투고 ID를 모르는 경우에는 realmag777의 답변maiorano84의 답변의 매쉬업을 이용하실 수 있습니다.

function CheckCouponIsApplied($cpn_code)
{
    global $woocommerce;
    $lowercasecouponcode = strtolower($cpn_code); //ENSURE LOWERCASE TO MATCH WOOCOMMERCE NORMALIZATION
    return in_array($lowercasecouponcode, $woocommerce->cart->applied_coupons);
}

언급URL : https://stackoverflow.com/questions/20100557/check-if-coupon-is-applied-in-woo-commerce

반응형