Я работаю с туалетом в первый раз, и я преследую свой хвост с этим.
На странице «Заказы», где клиенты могут видеть все сделанные покупки, массив показывает некоторую базовую информацию о заказе. Мне нужно также показать изображение продукта, купленного покупателем.
Заказы, похоже, являются пользовательскими сообщениями, но как я могу получить продукт изображения?
Я понимаю, что вопрос слишком расплывчатый. Любые указатели были бы большой помощью.
Заказы – это пользовательские типы сообщений типа shop_order
. Заказы не имеют самих эскизов, но заказы имеют список продуктов, которые были куплены, и каждый продукт имеет возможность эскиза.
В шаблоне order-details.php
вы можете увидеть, как получить все элементы / продукты, связанные с любым объектом заказа … $order->get_items()
Это возвращает массив данных, который хранится в отдельных таблицах базы данных. С переменной $item
вы можете получить исходный продукт, и вы можете видеть в связанном шаблоне, что переменная $product
, которая отправляется в order-details-item.php
, определяется как order->get_product_from_item( $item )
.
В любом случае, если у вас есть объект $product
вы можете использовать $product->get_image()
для получения изображения продукта.
В качестве упрощенного примера это покажет миниатюры для всех продуктов, приобретенных в порядке 999.
$order_id = 999; $order = wc_get_order( $order_id ); foreach( $order->get_items() as $item_id => $item ) { $product = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item ); echo $product->get_image(); }
Вложение этого внутри вашей петли:
foreach ( $customer_orders as $customer_order ) { $order = wc_get_order(); $order->populate( $customer_order ); foreach( $order->get_items() as $item_id => $item ) { $product' = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item ); echo $product->get_image(); } }
Как правило, шаблон order-details.php
должен иметь ссылки на общий обзор каждого индивидуального заказа.