2015-06-13 95 views
1

我正在与WC第一次合作,我正在追逐我的尾巴。在“订单”页面中显示商品图像 - Woocommerce

在“订单”页面中,顾客可以看到他们所做的所有购买,该数组显示了有关订单的一些基本信息。 我还需要显示客户购买的产品的图像。

订单似乎是自定义文章,但我如何获得图像产品?

我意识到这个问题太模糊。任何指针都会有很大的帮助。

回答

5

订单是shop_order类型的自定义文章类型。订单本身并没有缩略图,但是订单有购买的产品列表,每个产品都有缩略图的可能性。

可以在order-details.php模板看看如何将所有与任何订单对象相关的项目/产品... $order->get_items()

这将返回存储在单独的数据库表中的数据的数组。使用$item变量,您可以获得原始产品,并且您可以在链接的模板中看到正在发送到order-details-item.php$product变量定义为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模板应该链接到每个订单的概述。

+0

谢谢@helgatheviking!我能再问你一件事吗?在我使用的主题中,我有这个数组foreach($ customer_orders as $ customer_order){ \t $ order = wc_get_order(); \t $ order-> populate($ customer_order); \t $ item_count = $ order-> get_item_count();' 如何将它与您的代码结合? –

+0

你可以'嵌套'foreach循环。 – helgatheviking

+0

是的,我明白了。虽然你是救世主!一个注意事项:在你的代码中你写'$ product'='我是PHP的新手,但是你有一个报价,它会返回一个错误。只要报价被删除,错误也会被删除。 –

相关问题