programing

세금 라인이 아닌 카트 합계에만 woocommerce 쿠폰을 적용하십시오.

i4 2023. 4. 1. 08:28
반응형

세금 라인이 아닌 카트 합계에만 woocommerce 쿠폰을 적용하십시오.

저는 WooCommerce 사이트에서 일하고 있습니다.체크아웃 페이지에서 쿠폰을 적용하면 세금에도 자동으로 적용됩니다.

카트 합계에만 쿠폰 코드를 적용했으면 합니다.구글에서 관련된 훅이나 플러그인을 검색해 봤지만, 제대로 된 솔루션을 찾을 수 없었습니다.

이게 내 현재 코드 훅이야functions.php하지만 예상대로 작동하지 않습니다.

add_action('woocommerce_product_tax_class', 'set_tax_class');
function set_tax_class () { 
    if (!empty($woocommerce->cart->applied_coupons)){
        $tax_class = 'gratuty';
    }
    return $tax_class;
}

저도 한번 해봤어요woocommerce_cart_calculate_fees후크도 걸었지만 효과가 없었습니다.

쿠폰이 적용되었을 때 세금을 변경하지 않고 카트를 업데이트하려면 어떤 후크를 사용해야 합니까?

WooCommerce >> Settings >> Tax에서 Tax를 확인해야 한다고 생각합니다.이 경우 "No, I enter the price of tax" 체크박스를 켜야 합니다.

또, Taxes의 상세한 것에 대하여는, 다음의 링크를 확인해 주세요.https://github.com/woocommerce/woocommerce/wiki/How-Taxes-Work-in-WooCommerce

또는 이와 별도로 쿠폰을 프로그래밍 방식으로 적용하기 위한 다음 코드를 이해할 수도 있습니다.

function apply_matched_coupons(){
    $coupon_code = 'freeweek'; 
    if ( WC()->cart->has_discount( $coupon_code ) ) return;     
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        // this is your product ID
        $autocoupon = array( 40 );
        if( in_array( $cart_item['product_id'], $autocoupon ) ) {   
            WC()->cart->add_discount( $coupon_code );
            wc_print_notices();
        }
    }
}

이게 도움이 됐으면 좋겠네요!

카트에 쿠폰 코드를 자동으로 추가하고 두 페이지에서 모두 체크아웃이 가능합니다.고객이 카트에 제품을 추가했지만 카트 페이지를 열지 않고 쇼핑 페이지를 직접 체크아웃 페이지로 이동한 후 카트 페이지 자동 적용 쿠폰을 발행한다고 가정합니다.

따라서 양쪽 후크(카트 페이지와 체크아웃 페이지)를 호출해야 합니다.

/**
 * Apply a Coupon Programmatically 
 * Add coupon when the user views the cart page.
 * Add coupon when the user views checkout page.
 */

// Add coupon when user views cart page.
add_action('woocommerce_before_cart_table', 'woo_apply_matched_coupons');

// Add coupon when user views checkout page.
add_action('woocommerce_before_checkout_form', 'woo_apply_matched_coupons');

function woo_apply_matched_coupons() {
    global $woocommerce;

    $coupon_code = 'ABCD125467';   // your coupon code

    // If coupon not Applied!.
    if (!$woocommerce->cart->add_discount(sanitize_text_field($coupon_code))) {
        wc_print_notices();
    } 

    // Manually recalculate totals.  If you do not do this, a refresh is required before the user will see updated totals when the discount is removed.
    $woocommerce->cart->calculate_totals();
}

wo-commerce에서 카트 총계에이것처럼. 쿠폰을 적용할 수 있는 옵션이 이미 있습니다.

언급URL : https://stackoverflow.com/questions/51265267/apply-woocommerce-coupon-only-to-the-cart-total-not-to-the-tax-line

반응형