programing

Woocommerce에서 적용된 할인 쿠폰을 프로그래밍 방식으로 제거하는 방법은 무엇입니까?

showcode 2023. 3. 11. 09:39
반응형

Woocommerce에서 적용된 할인 쿠폰을 프로그래밍 방식으로 제거하는 방법은 무엇입니까?

한참을 검색했는데 프로그램적으로 우커머스 쿠폰을 제거하는 방법을 찾을 수가 없어요.

카트 합계를 기준으로 할인을 하려고 합니다.1000유로(15% 할인쿠폰 적용) 상당의 상품을 가지고 있고, 상품을 제거하고 50유로 상당의 상품만 남겨두어도 이미 적용된 쿠폰이 삭제되지 않기 때문에 15% 할인됩니다.

여기 제 코드가 있습니다.

    add_action( 'woocommerce_before_cart', 'apply_matched_coupons' );

function apply_matched_coupons() {
    global $woocommerce;

$coupon_code5 = '5p'; // your coupon code here
$coupon_code10 = '10p'; // your coupon code here
$coupon_code15 = '15p'; // your coupon code here
$coupon_code20 = '20p'; // your coupon code here
$coupon_code25 = '25p'; // your coupon code here

   if ( $woocommerce->cart->has_discount( $coupon_code ) ){ 
return;
}

   if ( $woocommerce->cart->cart_contents_total >= 4000 ) {
        $woocommerce->cart->add_discount( $coupon_code25 );
        $woocommerce->show_messages();
    }
else if ( $woocommerce->cart->cart_contents_total >= 2000 ) {
        $woocommerce->cart->add_discount( $coupon_code20 );
        $woocommerce->show_messages();
    }
else if ( $woocommerce->cart->cart_contents_total >= 1000 ) {
        $woocommerce->cart->add_discount( $coupon_code15 );
        $woocommerce->show_messages();
    }
else if ( $woocommerce->cart->cart_contents_total >= 500 ) {
        $woocommerce->cart->add_discount( $coupon_code10 );
        $woocommerce->show_messages();
    }
else if ( $woocommerce->cart->cart_contents_total >= 200 ) {
        $woocommerce->cart->add_discount( $coupon_code5 );
        $woocommerce->show_messages();
    }
}

쿠폰 코드를 사용하여 카트에서 쿠폰 하나를 제거하려면 를 사용하십시오.

사용하는 모든 쿠폰을 카트에서 제거하려면:$type디폴트로 하다null모두 세금 쿠폰 전에 제거할 "주문"을 전달하고 세금 쿠폰 후에는 "주문"을 전달하십시오.

장바구니에 있는 모든 쿠폰을 구매하려면array루프오버 및 삭제(선택사항)를 사용할 수 있습니다.

foreach ( WC()->cart->get_coupons() as $code => $coupon ){
   $valid = ? // decide to remove or not
   if ( ! $valid ){
       WC()->cart->remove_coupon( $code );
   }
}

카트 메서드 remove_coupons()는 이후 갱신되어 유형이 필요 없게 되었습니다.이제 모든 쿠폰을 제거하려면 다음과 같이 하십시오.

WC()->cart->remove_coupons();

자세한 것은, WC_Cart 클래스의 메뉴얼을 참조해 주세요.

언급URL : https://stackoverflow.com/questions/26577330/how-to-programmatically-remove-applied-discount-coupons-in-woocommerce

반응형