编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Woocommerce独立站商店订单列表添加自定义列

wxchong 2024-09-10 22:39:44 开源技术 7 ℃ 0 评论

做Wordpress外贸独立站,会碰到各种千奇百怪的要求。这回碰到要改造Woocommerce的订单列表,我们知道,Woocommerce默认的订单列表只支持一些常规列,例如:订单,日期,状态,账单地址,配送地址,合计,操作。那么想展示更多的信息,需要添加自定义列和对应的Meta值。

效果展示

如下图,用户就是想要增加了自定义的Product Name 和第Shipping Address 1,这样用户就能在不点击预览订单的情况下,直接看到产品名称和收货地址了。

代码部分

使用方法:将代码加入到主题或者子主题的functions.php

// 添加2列自定义标题 ,放在订单列的后面
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column($columns)
{
$reordered_columns = array();
foreach( $columns as $key => $column){
$reordered_columns[$key] = $column;
if( $key == 'order_number' ){

$reordered_columns['custom_column1'] = __( 'Product Name','theme_domain');
$reordered_columns['custom_column2'] = __( 'Shipping Address','theme_domain');
}
}
return $reordered_columns;
}
//为列指定元数据
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
switch ( $column )
{
case 'custom_column2' :
// 提取shipping_address_1的数据
$my_var_one = get_post_meta( $post_id, '_shipping_address_1', true );
if(!empty($my_var_one))
echo $my_var_one;
else
echo '<small>(<em>no value</em>)</small>';
break;
}
}
//为列指定元数据
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content2', 20, 2 );
function custom_orders_list_column_content2( $column ){
global $post, $woocommerce, $the_order;
 
switch ( $column ){
case 'custom_column1' :
 
foreach ( $the_order->get_items() as $item_id => $item ) {
 // 提取订单产品列表的名称的数据
$product_name = $item->get_name();
echo ' '.$product_name.'<br/>' ;
}
break;
}
}

然后刷新后台,查看Woocommerce订单列表就看到变化了。

更多教程请看美络云Mloun外贸独立站教程

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表