仅在产品存在于Woocommerce订单视图中时添加订单商品图片

时间:2018-08-14 19:02:12

标签: php wordpress woocommerce thumbnails orders

在woocommerce上,我的帐户查看订单页面能够使用以下答案代码添加产品图片:
Add the product image to Woocommerce my account order view

但是我有一个与导入的订单有关的问题,其中产品不存在

因此,在查看这些订单时,空白页会出错。

关于如何避免此问题的任何想法?

1 个答案:

答案 0 :(得分:2)

因此,据我所知,有时Woocommerce中可能不存在该订单中的产品。此代码版本测试产品是否存在,如果不存在,则仅返回订单商品名称。

尝试以下操作:

// Display the product thumbnail in order view pages
add_filter( 'woocommerce_order_item_name', 'display_product_image_in_order_item', 20, 3 );
function display_product_image_in_order_item( $item_name, $item, $is_visible ) {
    // Targeting view order pages only
    if( is_wc_endpoint_url( 'view-order' ) ) {
        // Get the WC_Product object (from order item)
        $product   = $item->get_product(); 

        // Testing if the product exist in Woocommerce <== UPDATE
        if( $product && is_object( $product ) ) {
            // Get the product thumbnail (from product object)
            $thumbnail = $product->get_image(array( 36, 36)); 
            // Avoiding empty thumbnail (updated)
            if( $product->get_image_id() > 0 )
                $item_name = '<div class="item-thumbnail">' . $thumbnail . '</div>' . $item_name;
        } else {
            // When product doesn't exist, we get the name from the order item (with no thumbnail)
            $item_name = $item->get_name();
        }
    }
    return $item_name;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。我希望它能起作用。