반응형
woocommerce의 카트 페이지에서 특정 제품 수량을 얻는 방법
이 코드 사용 시:
foreach ( WC()->cart->get_cart() as $cart_item ) {
$quantity = $cart_item['quantity'];
echo $quantity;
}
장바구니에 추가되는 모든 상품의 수량은 받을 수 있지만, 해당 제품에 필요합니다.
다음과 같이 카트 항목을 반복하여 특정 제품 ID의 수량을 얻을 수 있습니다.
// Set here your product ID (or variation ID)
$targeted_id = 24;
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
if( in_array( $targeted_id, array($cart_item['product_id'], $cart_item['variation_id']) )){
$quantity = $cart_item['quantity'];
break; // stop the loop if product is found
}
}
// Displaying the quantity if targeted product is in cart
if( isset( $quantity ) && $quantity > 0 ) {
printf( "<p>" . __("Quantity for Product ID %d is: %d") . "</p>", $targeted_id, $quantity );
}
또는 다음과 같은 방법을 사용할 수도 있습니다.
// Set here your product ID (or variation ID)
$targeted_id = 24;
// Get quantities for each item in cart (array of product id / quantity pairs)
$quantities = WC()->cart->get_cart_item_quantities();
// Displaying the quantity if targeted product is in cart
if( isset($quantities[$targeted_id]) && $quantities[$targeted_id] > 0 ) {
printf( "<p>" . __("Quantity for Product ID %d is: %d") . "</p>", $targeted_id, $quantities[$targeted_id] );
}
참고: 이 마지막 방법에서는 부모 변수 제품을 대상으로 할 수 없습니다.
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = $values['data']->post;
echo "<b>".$_product->post_title.'</b> <br> Quantity: '.$values['quantity'].'<br>';
$price = get_post_meta($values['product_id'] , '_price', true);
echo " Price: ".$price."<br>";
}
$cart = WC()->cart->get_cart();
$product_cart_id = WC()->cart->generate_cart_id( $product->get_id() );
if( WC()->cart->find_product_in_cart( $product_cart_id )) {
echo($cart[$product_cart_id]['quantity']);
}
다음을 시도해 보십시오.
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = $values['data']->post;
echo "<b>".$_product->post_title.'</b> <br> Quantity: '.$values['quantity'].'<br>';
$price = get_post_meta($values['product_id'] , '_price', true);
echo " Price: ".$price."<br>";
}
?>
1) 어린이 테마 만들기
2) functions라는 이름의 파일을 만듭니다.php (다음 코드 포함) :
<?php
if( !function_exists('in_cart_product_quantity') ) {
function in_cart_product_quantity( $atts ) {
$atts = shortcode_atts(array('id' => ''), $atts, 'product_qty'); // shortcode attributes
if( empty($atts['id'])) return; // check id not null
if ( WC()->cart ) { // check cart exists
$qty = 0; // init qty
foreach (WC()->cart->get_cart() as $cart_item) {
if($cart_item['product_id'] == $atts['id']) {
$qty = $cart_item['quantity'];
break; // stop the loop if product is found
}
}
return $qty;
}
return;
}
add_shortcode( 'product_qty', 'in_cart_product_quantity' );
}
3) 쇼트 코드를 사용합니다.
[product_qty id="xxx"]
(카트의 수량을 알고 싶은 상품의 ID로 xxx를 변경)
Loic Theaztec (같은 스레드)덕분에
WC_Cart::get_cart_item_quantities() – Get cart items quantities
- 경유
$product_id
// Your product ID
$product_id = 30;
// Get cart items quantities
$cart_item_quantities = WC()->cart->get_cart_item_quantities();
// Product quantity in cart - All PHP versions
$product_qty_in_cart = isset( $cart_item_quantities[ $product_id ] ) ? $cart_item_quantities[ $product_id ] : null;
// Product quantity in cart - Same as the previous one with PHP 7
$product_qty_in_cart = $cart_item_quantities[ $product_id ] ?? null;
// Result
echo $product_qty_in_cart;
- 경유
$product
// Product
global $product;
// Get cart items quantities
$cart_item_quantities = WC()->cart->get_cart_item_quantities();
// Product quantity in cart
$product_qty_in_cart = $cart_item_quantities[ $product->get_stock_managed_by_id() ];
// Result
echo $product_qty_in_cart;
언급URL : https://stackoverflow.com/questions/44631312/how-to-get-particular-product-quantity-from-the-cart-page-in-the-woocommerce
반응형
'source' 카테고리의 다른 글
어떻게 CORS를 반응으로 허용합니까? (0) | 2023.02.25 |
---|---|
각도 순서 ng-반복 텍스트로 번호 정렬 (0) | 2023.02.25 |
스프링 부트 + Oauth2 클라이언트 자격 정보 (0) | 2023.02.25 |
"참이 아님"으로 부울 필드에 대한 쿼리(예: 거짓 또는 존재하지 않음) (0) | 2023.02.25 |
HTML 문자열을 JSON으로 쓰기 (0) | 2023.02.25 |