【发布时间】:2021-06-10 22:13:49
【问题描述】:
对于 WooCommerce,我使用 Dokan Multivendor,并希望在列中显示订单的供应商商店名称。默认情况下,Dokan 显示订单的作者姓名而不是商店名称。
基于Display vendor store-name (Dokan) on WooCommerce admin order preview,我创建了这个代码sn-p来做到这一点:
// Create column
function wc_new_order_column( $columns ) {
$columns['vendor_store_name_order'] = __( 'Vendor');
return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'wc_new_order_column' );
// Display vendor or vendors of the order
function action_woocommerce_admin_order_vendor( $order ) {
foreach ( $order->get_items() as $item ) {
// Get product object
$product = $item->get_product();
// Author id
$author_id = $product->post->post_author;
// Shopname
$vendor = dokan()->vendor->get( $author_id );
$shop_name = $vendor->get_shop_name();
// NOT in array
if ( ! in_array( $shop_name, $shop_names ) ) {
// Push to array
$shop_names[] = $shop_name;
// Filter URL for other orders from same vendor => When click, show all other orders from that vendor
$vendor_orders = get_admin_url() . 'edit.php?post_type=shop_order&vendor_id=' . $author_id;
// Column Output
if ( $column == 'vendor_store_name_order' ) {
printf('<a href="%s">%s</a>', $vendor_orders, $shop_name);
}
}
}
}
add_action( 'manage_shop_order_posts_custom_column', 'action_woocommerce_admin_order_vendor', 10, 2 );
目前代码不工作。 foreach 循环的订单项存在问题。我想访问订单,然后检查其中的项目以检查它是哪个供应商。然后用数组显示每个有该顺序产品的供应商。
但是对于每个当前,我无法以正确的方式访问订单信息。我如何才能访问它?
【问题讨论】:
标签: php wordpress woocommerce orders dokan