Woocommerce에서 카트 항목 수 제한
Woocommerce를 사용하고 있는데 다음 사항이 필요합니다.
상품이 다른 나라에 판매되고 있고, 그 나라의 세관은 총 6개만 허용하고 있기 때문에, 고객이 6개 이상의 상품(상품)을 주문하는 것을 막을 필요가 있습니다.
6은 품목 또는 제품의 합계입니다.고객은 1개씩 6개씩 주문하거나 2개씩 3개씩 주문하실 수 있습니다.세관은 총 6개 품목만 허용합니다.
카트에 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
'source' 카테고리의 다른 글
ngCordova를 사용한 애니메이션 방향 화살표 "주변" 스타일 (0) | 2023.02.13 |
---|---|
왜 ng-transclude의 범위가 지시문의 범위의 하위 항목이 아닌가? - 지시문에 분리된 범위가 있는 경우? (0) | 2023.02.13 |
ng-repeat 디렉티브의 "priority"는 무엇을 변경할 수 있습니까? (0) | 2023.02.13 |
테마를 사용하지 않고 WordPress에서 HTML 사이트를 호스팅하는 방법은 무엇입니까?그게 가능한가요? (0) | 2023.02.13 |
Oracle 쿼리의 각 행에 난수 생성 (0) | 2023.02.09 |