Подтвердить что ты не робот

Получить название товара, количество всех деталей woocommerce

Я пытаюсь отправить элементы корзины woocommerce в сторонний инструмент доставки. Мне нужно имя, количество и индивидуальную цену товара для отправки третьей стороне. Как это можно достичь?

$items = $woocommerce->cart->get_cart();
  foreach($items as $item => $values) { 

   $_product = $values['data']->post; 
     echo $_product->post_title; 
} 

Как получить имя, количество и цену товара?

4b9b3361

Ответ 1

Попробуйте следующее:

<?php
    global $woocommerce;
    $items = $woocommerce->cart->get_cart();

        foreach($items as $item => $values) { 
            $_product =  wc_get_product( $values['data']->get_id()); 
            echo "<b>".$_product->get_title().'</b>  <br> Quantity: '.$values['quantity'].'<br>'; 
            $price = get_post_meta($values['product_id'] , '_price', true);
            echo "  Price: ".$price."<br>";
        } 
?>

Чтобы получить изображение продукта, а также обычную и продажную цену:

<?php
    global $woocommerce;
    $items = $woocommerce->cart->get_cart();

        foreach($items as $item => $values) { 
            $_product =  wc_get_product( $values['data']->get_id() );
            //product image
            $getProductDetail = wc_get_product( $values['product_id'] );
            echo $getProductDetail->get_image(); // accepts 2 arguments ( size, attr )

            echo "<b>".$_product->get_title() .'</b>  <br> Quantity: '.$values['quantity'].'<br>'; 
            $price = get_post_meta($values['product_id'] , '_price', true);
            echo "  Price: ".$price."<br>";
            /*Regular Price and Sale Price*/
            echo "Regular Price: ".get_post_meta($values['product_id'] , '_regular_price', true)."<br>";
            echo "Sale Price: ".get_post_meta($values['product_id'] , '_sale_price', true)."<br>";
        }
?>

Ответ 2

Так как WooCommerce 2.1 (2014) вы должны использовать функцию WC вместо глобального. Вы также можете вызвать более подходящие функции:

foreach ( WC()->cart->get_cart() as $cart_item ) {
   $item_name = $cart_item['data']->get_title();
   $quantity = $cart_item['quantity'];
   $price = $cart_item['data']->get_price();
   ...

Это будет не только чистый код, но он будет лучше, чем прямой доступ к post_meta, потому что при необходимости он будет применять фильтры.

Ответ 3

вы можете получить имя продукта, подобное этому

foreach ( $cart_object->cart_contents as  $value ) {
        $_product     = apply_filters( 'woocommerce_cart_item_product', $value['data'] );

        if ( ! $_product->is_visible() ) {
                echo $_product->get_title();
        } else {
                echo $_product->get_title();
        }


     }

Ответ 4

Это отобразит только количество элементов в корзине.

 global $woocommerce; 
    echo $woocommerce->cart->cart_contents_count;