source

Woocommerce에서 카트 항목 수 제한

lovecheck 2023. 2. 13. 20:42
반응형

Woocommerce에서 카트 항목 수 제한

Woocommerce를 사용하고 있는데 다음 사항이 필요합니다.

  1. 상품이 다른 나라에 판매되고 있고, 그 나라의 세관은 총 6개만 허용하고 있기 때문에, 고객이 6개 이상의 상품(상품)을 주문하는 것을 막을 필요가 있습니다.

  2. 6은 품목 또는 제품의 합계입니다.고객은 1개씩 6개씩 주문하거나 2개씩 3개씩 주문하실 수 있습니다.세관은 총 6개 품목만 허용합니다.

  3. 카트에 6개 이상의 아이템이 있는 경우 경고가 표시되어 체크아웃을 진행할 수 없게 됩니다.

카트 아이템을 6개로 제한하고 이 제한을 초과하면 메시지를 표시할 수 있습니까?

카트 항목을 제한할지 여부를 확인하고 제어해야 할 두 가지 작업이 있습니다.

  • 제품이 장바구니에 추가되는 경우(샵 페이지 및 제품 페이지)
  • 카트 페이지에서 수량이 업데이트되는 경우

필터 후크에 연결된 사용자 지정 기능을 사용하면 카트 항목을 최대 6개로 제한하고 이 제한이 초과되면 사용자 지정 메시지를 표시할 수 있습니다.

// Checking and validating when products are added to cart
add_filter( 'woocommerce_add_to_cart_validation', 'only_six_items_allowed_add_to_cart', 10, 3 );

function only_six_items_allowed_add_to_cart( $passed, $product_id, $quantity ) {

    $cart_items_count = WC()->cart->get_cart_contents_count();
    $total_count = $cart_items_count + $quantity;

    if( $cart_items_count >= 6 || $total_count > 6 ){
        // Set to false
        $passed = false;
        // Display a message
         wc_add_notice( __( "You can’t have more than 6 items in cart", "woocommerce" ), "error" );
    }
    return $passed;
}

필터 후크에 연결된 사용자 지정 기능을 사용하면 카트 항목 수량이 6개 카트 항목 제한으로 업데이트되도록 제어하고 이 제한이 초과되면 사용자 지정 메시지를 표시할 수 있습니다.

// Checking and validating when updating cart item quantities when products are added to cart
add_filter( 'woocommerce_update_cart_validation', 'only_six_items_allowed_cart_update', 10, 4 );
function only_six_items_allowed_cart_update( $passed, $cart_item_key, $values, $updated_quantity ) {

    $cart_items_count = WC()->cart->get_cart_contents_count();
    $original_quantity = $values['quantity'];
    $total_count = $cart_items_count - $original_quantity + $updated_quantity;

    if( $cart_items_count > 6 || $total_count > 6 ){
        // Set to false
        $passed = false;
        // Display a message
         wc_add_notice( __( "You can’t have more than 6 items in cart", "woocommerce" ), "error" );
    }
    return $passed;
}

코드가 기능합니다.php 파일 또는 임의의 플러그인 파일에 있는 활성 자식 테마(또는 테마)입니다.

이 코드는 테스트되어 기능합니다.

카트에 추가할 제품을 검증할 때 검증 매개 변수를 추가할 수 있습니다. woocommerce_add_to_cart_validation기대하다true또는false제품이 카트에 추가해도 되는지 여부에 따라 반환되는 값:

/**
 * When an item is added to the cart, check total cart quantity
 */
function so_21363268_limit_cart_quantity( $valid, $product_id, $quantity ) {

    $max_allowed = 6;
    $current_cart_count = WC()->cart->get_cart_contents_count();

    if( ( $current_cart_count > $max_allowed || $current_cart_count + $quantity > $max_allowed ) && $valid ){
        wc_add_notice( sprint( __( 'Whoa hold up. You can only have %d items in your cart', 'your-plugin-textdomain' ), $max ), 'error' );
        $valid = false;
    }

    return $valid;

}
add_filter( 'woocommerce_add_to_cart_validation', 'so_21363268_limit_cart_quantity', 10, 3 );

언급URL : https://stackoverflow.com/questions/46007102/limit-the-number-of-cart-items-in-woocommerce

반응형