在 WooCommerce 的后台订单列表页面添加一个订单中的商品列表
WooCommerce 是最受用户欢迎的 WordPress 电子商务插件,受欢迎的主要原因是因为丰富的 API 和方便灵活的后台管理界面,为 WooCommerce 定制开发带来了许多便利。在 WooCommerce 管理界面,我们可以非常方便的查看用户所下订单的详细信息,包括购买商品的数量,合计金额等,比较全面,但是有一个非常重要的信息,在 WooCommerce 默认是没有显示的,那就是所有的商品列表,这个列表是非常重要的,通过一段很简单的代码就能显示出来。
下面的代码为我们的订单预览页面添加了一列特殊的信息,名称为“购买的商品”,列表的每一行会显示一个商品名称和商品数量,把下面的代码复制到主题的 functions.php 文件或插件的相关文件中即可。
add_filter( 'manage_edit-shop_order_columns', 'show_product_order',15 );
function show_product_order($columns){
//添加一列信息
$columns['product-display'] = __( '购买的商品');
return $columns;
}
添加用户所购买的商品信息到这一列。
add_action( 'manage_shop_order_posts_custom_column' , 'snv_custom_shop_order_column', 10, 2 );
function snv_custom_shop_order_column( $column ) {
global $post, $woocommerce, $the_order;
switch ( $column ) {
case 'product-display' :
$terms = $the_order->get_items();
if ( is_array( $terms ) ) {
foreach($terms as $term)
{
echo $term['item_meta']['_qty'][0] .' x ' . $term['name'] .'';
}
} else {
_e( '获取商品信息失败。', 'woocommerce' );
}
break;
}
}
我们来看一下这段代码是怎么工作的:
show_product_order
filter 添加了一列信息到 WooCoomerce 的商品管理界面,这一列数据将显示在其他信息列的后面。
snv_custom_shop_order_column
action 添加了功能“manage_shop_order_posts_custom_column
”到 WooCommerce,用来查询用户所购买的商品,并显示商品名称和数量到我们上面添加的“购买的商品”这一数据列。
除了用户所购买的商品,我们还可以根据需要添加其他信息(比如用户联系方式,收获地址等)到订单列表界面,有 WordPress 和 WooCommerce 丰富的功能 API 做支撑,一切功能,只有我们想不到的,没有实现不了的。