Получить значения данных позиций заказа в Woocommerce - PullRequest
0 голосов
/ 19 сентября 2018

В Woocommerce, в настоящее время у меня есть форма, в которой клиент вводит номер заказа, свое имя и номер своего поста.Код проходит через этот код, и если все правильно, клиенту показываются товары, которые он заказал, что приводит к моей проблеме:

В таблицах WooCommerce указаны как цена, так и количество товара.тот же столбец, и я не могу получить значения по отдельности.

Я пробовал разные способы выполнения моего текущего запроса, но это последний из тех, которые мне наиболее близки к успеху:

$sql2 = "SELECT *
FROM wp_woocommerce_order_items
LEFT JOIN wp_woocommerce_order_itemmeta ON wp_woocommerce_order_items.order_item_id = wp_woocommerce_order_itemmeta.order_item_id
WHERE wp_woocommerce_order_items.order_id = $ordernumber
AND (meta_key IN ('_line_total', '_qty'))";

Также я печатаю результаты с циклом foreach: (Также извините за финские биты на картинке и в коде)

 foreach ($res2 as $row) {
   echo "<input type='checkbox' name='productinfo[]'><label> Tuotenimi: " . $row['order_item_name'] . "<br /> Kappalehinta: " . $row['meta_value'] ." €"
          . "<br /><br />";
        }

Однако проблема с этим кодом состоит в том, чтодобавление столбца "_qty" к предложению AND приводит к тому, что результаты получаются двойными, как показано здесь (также извините за в основном финский веб-сайт):

Picture of the print results

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

Пожалуйста, спросите меняanytесли код или вопрос сбивают с толку!

ОБНОВЛЕНИЕ

Поэтому Dipmala посоветовала мне использовать группу, с помощью которой я получил правильное количество результатов.Тем не менее, я до сих пор не знаю, как распечатать количество отдельно от цены./ Puppe

1 Ответ

0 голосов
/ 20 сентября 2018

Вместо использования SQL-запроса попробуйте это (где $order_id - идентификатор сообщения (или номер заказа)) :

$order = wc_get_order( $order_id );

echo '<p>'. __('Order total: ') . $order->get_total() . '</p>';

foreach ( $order->get_items() as $item ){
    echo '<p>';
    echo __('Product name: ') . $item->get_name() . '<br>';
    echo __('Quantity: ') . $item->get_quantity() . '<br>';
    echo __('Line total: ') . wc_price($item->get_total()) . '</p>';
}

Связанный:

...