【问题标题】:Show product's image in “Orders” page - Woocommerce在“订单”页面显示产品图片 - Woocommerce
【发布时间】:2015-06-13 00:04:02
【问题描述】:

我是第一次与 WC 合作,我正在用这个追逐我的尾巴。

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

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

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

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    订单是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 模板应该包含指向每个订单概览的链接。

    【讨论】:

    • 谢谢@helgatheviking!我能再问你一件事吗?在我使用的主题中,我有这个数组 foreach ( $customer_orders as $customer_order ) { $order = wc_get_order(); $order->populate( $customer_order ); $item_count = $order->get_item_count(); 如何将它与您的代码结合起来?
    • 你可以“嵌套”foreach 循环。
    • 是的,我想通了。虽然你是救世主!请注意:在您的代码中,您编写 $product' = 我是 php 新手,但您有一个引号,它返回一个错误。一旦引用被删除,错误也会被删除。
    • 我能再问你一件事吗?显示订单时如何添加简短说明?
    • 简短描述只是产品的摘录,与普通帖子相同。
    猜你喜欢
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2018-12-09
    • 2017-07-17
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多