如何给woocommerce订单列表加上产品图片的参数列

发布于:2024-07-19 ⋅ 阅读:(84) ⋅ 点赞:(0)

在WooCommerce中,由于订单列表(如订单管理页面上的列表)通常是通过管理界面(admin dashboard)的模板和PHP逻辑来呈现的,而不是通过前端的模板,因此直接在订单列表中显示产品图片需要一些自定义的PHP代码。不过,需要注意的是,WooCommerce核心并没有直接提供在订单列表中显示产品图片的内置功能,所以我们需要通过插件或自定义代码来实现。

function add_product_image_to_order_list($column_name, $order) {  
    if ($column_name === 'product_images') {  
        // 获取订单中的所有项目  
        $items = $order->get_items();  
  
        // 假设我们只显示第一个产品的图片  
        if (!empty($items)) {  
            $first_item = reset($items);  
            $product = wc_get_product($first_item->get_product_id());  
  
            if ($product) {  
                // 获取产品图片URL(这里使用缩略图大小,你可以根据需要更改)  
                $thumbnail_url = $product->get_image(array('size' => 'thumbnail'));  
  
                // 输出图片链接(或你可以直接输出图片HTML)  
                echo '<a href="' . esc_url($thumbnail_url) . '" target="_blank" rel="noopener noreferrer">查看图片</a>';  
            }  
        }  
    }  
}  
  
// 将自定义列添加到订单管理页面  
function add_product_image_column_to_orders($columns) {  
    $columns['product_images'] = '产品图片';  
    return $columns;  
}  
  
// 挂钩到WooCommerce的相应动作  
add_filter('manage_edit-shop_order_columns', 'add_product_image_column_to_orders');  
add_action('manage_shop_order_posts_custom_column', 'add_product_image_to_order_list', 10, 2);

注意:

这个示例中,我添加了一个名为“产品图片”的新列到订单列表中,并且只为每个订单的第一个产品显示了一个图片链接。
我使用了get_image()方法来获取产品的图片URL,并指定了thumbnail大小。你可以根据需要调整图片大小。
出于安全考虑,我使用了esc_url()函数来转义URL。
如果订单中有多个产品,并且你想要显示所有产品的图片,你需要对$items进行遍历,并为每个产品输出一个图片链接。
样式调整(可选):你可能需要在你的CSS文件中添加一些样式来优化新列的外观。


网站公告

今日签到

点亮在社区的每一天
去签到