$product_id - Woocommerce가 있는 항목 제거
고객이 특정 수량에 도달하면 카트에 제품을 추가하는 기능을 만들었습니다.
고객이 레벨 3에 도달하여 제품을 추가하는 예.
// Bonus products
$product_1 = '4751';
$product_2 = '4752';
$product_3 = '4753';
// Get cart value in a clean format
$cart_total = WC()->cart->get_cart_subtotal();
$cart_total = html_entity_decode($cart_total, ENT_QUOTES, 'UTF-8');
$cart_total_format = strip_tags($cart_total);
$cart_value = preg_filter("/[^0-9]/", "", $cart_total_format);
$sum_raw = $cart_value;
// Set the sum level
$level3 = '1500';
// Check sum and apply product
if ($sum_raw >= $level3) {
// Cycle through each product in the cart and check for match
$found = 'false';
foreach (WC()->cart->cart_contents as $item) {
global $product;
$product_id = $item['variation_id'];
if ($product_id == $product_3) {
$found = 'true';
}
}
// If product found we do nothing
if ($found == 'true') {}
// else we will add it
else {
//We add the product
WC()->cart->add_to_cart($product_3);
만약 고객이 아이템을 삭제하기로 결정했다면, 이 문구가 사실이라면 다시 삭제할 수 있기를 바랍니다.
if ($sum_raw < $level3) {
// Trying to remove item
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['variation_id'] == $product_3) {
//remove single product
WC()->cart->remove_cart_item($product_3);
}
}
}
카트에서 제품을 꺼낼 수 없습니다.여기서 뭐가 잘못됐는지 짐작 가는 거 없어?나한테 맞는 해결책을 찾지 못한 채 이리저리 찾아다녔다.
솔루션
@Rohil_님의 도움을 받아PHPBeginner & @Wisdm Labs 저는 이 솔루션을 통해 제 역할을 수행하게 되었습니다.
global $woocommerce;
// Check if sum
if ($sum_raw < $level3) {
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['variation_id'] == $product_3) {
//remove single product
$woocommerce->cart->remove_cart_item($cart_item_key);
}
}
}
사용하고 있는 것 같은데remove_cart_item
잘못되어 있습니다.매뉴얼을 살펴보면 cart_item_key를 파라미터(wisdmLabs)로 받아들입니다.
다음과 같이 사용하고 있습니다.
WC()->cart->remove_cart_item($product_3);
대신 다음을 시도해 보십시오.
WC()->cart->remove_cart_item($cart_item_key);
그 라인을 업데이트하면 제품을 제거할 수 있을 것 같습니다.
최신 버전의 WooCommerce에 사용합니다.
$cartId = WC()->cart->generate_cart_id( 'PUT PRODUCT ID IN HERE' );
$cartItemKey = WC()->cart->find_product_in_cart( $cartId );
WC()->cart->remove_cart_item( $cartItemKey );
PRODUCT ID를 사용자 ID로 바꿉니다.
언급URL : https://stackoverflow.com/questions/30569881/remove-item-with-product-id-woocommerce
'programing' 카테고리의 다른 글
Spring Boot 401 보안 없음에도 인증되지 않음 (0) | 2023.03.06 |
---|---|
Spring Runner vs Spring Boot시험 (0) | 2023.03.06 |
AngularJS에서 경로 변경 시 스크롤 위치를 유지하시겠습니까? (0) | 2023.03.06 |
JSON 파일 PowerShell을 통한 반복 (0) | 2023.03.06 |
두 개의 각진 앱/모듈을 한 페이지에 정의하려면 어떻게 해야 합니까? (0) | 2023.03.06 |