Цикл товаров в корзине Woocommerce для отслеживания кода - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь перебрать каждый товар на странице корзины в WooCommerce, чтобы установить некоторые объекты в коде отслеживания JavaScript, который должен распечатать идентификатор и количество товаров, добавленных в корзину в этом объекте.

Я использовал несколько примеров из StackOverflow, чтобы обратиться к продуктам, а также просмотреть их и создать объекты JavaScript, но я получаю сообщение об ошибке:

сообщение было вызвано неправильно.Свойства продукта не должны быть доступны напрямую

Это код, который я использую в functions.php:

<?php }
    if (is_cart()) { ?>
        <?php 
   global $woocommerce;
   $items = $woocommerce->cart->get_cart();
   $product_names=array(); ?>
    <script>
        var options = [
        <?php foreach ($items as $item => $values) { 
            $_product = $values['data']->post;?> 
            {productid: "<?php echo $_product->ID; ?>"},
        <?php
        }
        ?>
        ]
    </script>
   <?php      
    }
}

Я думаю, что путь кпродукция устарела.Кто-нибудь знает, как сделать это правильно с WooCommerce в наше время?Также, если вы знаете, как на самом деле получить количество товара, добавленного в корзину (то есть, сколько товаров добавлено в каждый товар), это будет очень признательно.

1 Ответ

0 голосов
/ 20 декабря 2018

В вашем коде есть некоторые ошибки ... Вместо этого попробуйте следующее:

if (is_cart()) { 
    $product_names=array(); 
?>
<script>
    var options = [
    <?php foreach ( WC()->cart->get_cart() as $cart_item ) : ?> 
        {productid: "<?php echo $cart_item['data']->get_id(); ?>"},
    <?php endforeach; ?>
    ]
</script>
<?php      
}

Лучше работать без ошибок.

Примечание: global $woocommerce заменено на WC() с некоторого времени.Больше нет пост-объекта, включенного в объект WC_Product, так как Woocommerce 3.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...