我想在我的 WooCommerce 管理订单页面中有一个自定义列。 这是关于谁创建了订单(实际上我想要作者姓名)。使用 WooCommerce 中的 HPOS,我无法使用正常代码。因为 woocommerce 的表格已经发生了变化。
function add_wc_order_list_custom_column( $columns ) {
$new_columns = array();
foreach ( $columns as $column_name => $column_info ) {
$new_columns[ $column_name ] = $column_info;
if ( 'order_status' === $column_name ) {
$new_columns['custom_order_list_action'] = 'Custom Column';
}
}
return $new_columns;
}
function display_wc_order_list_custom_column_content( $column, $order ) {
if ( $column == 'custom_order_list_action' ) {
$author_id = $order->get_customer_id();
$author = get_userdata( $author_id );
echo $author ? $author->display_name : 'Unknown Author';
}
}
感谢您的帮助。 。 .
我已经从Ai、论坛等尝试了很多方法,我希望程序员能帮助我解决这个问题。
WooCommerce 订单创建主要有 3 种情况(与订单作者相关):
1)。通过结帐下的订单:
通过结帐下订单时,订单始终由客户为宾客和注册用户创建(账单上的名字和姓氏)。
您已经通过管理订单列表的第一列获得此信息。
您可以在“Origin”栏看到“Direct”。
请注意,当 HPOS 未启用或启用兼容模式时,“post_author”设置为
0
。
2)。通过管理员手动创建的订单:
在这种情况下,作者是创建订单的授权用户(管理员或商店经理)。
在管理订单列表中,在“Origin”列中,您将看到“Web admin”。
如果启用了 HPOS 没有兼容模式,则作者信息只能通过订单管理注释获得部分信息,您可以在其中以某种方式获取作者显示名称和电子邮件(但它不可靠)。
如果启用了 HPOS 兼容模式,您可以从
WC_Order
对象获取作者 ID,例如:
$author_id = get_post_field( 'post_author', $order->get_id() );
3)。以编程方式创建的订单:
这里,只有通过代码设置,来源和作者信息才可用。
您可以通过
WC_Order
方法使用 get_created_via()
属性“created_via”来查看订单是如何创建的。已知的显示值为:
以编程方式创建订单时 (3),您可以使用
set_created_via()
方法定义“created_via”。