直到WooCommerce 8.4之前,下面的代码工作得很好,可以将"Shipping method"和"Payment method"列添加到订单视图中,并且它完全根据需要显示了细节.默认的发货和付款列不显示我们需要的所有细节.
现在,在WooCommerce 8.6.1更新后,这两个列不会出现,无论是否启用高性能订单存储(HPOS). 代码是在functions.php文件中,这两个额外的列也出现在这里的显示设置:
我知道由于WooCommerce版本的变化,我应该相应地调整代码,但我不确定具体如何调整.我最初认为HPOS是不同之处,但即使我在8.6.1中切换回传统模式,这两列也没有再次出现.
// Add shipping method and payment method columns to order page
add_filter( 'manage_edit-shop_order_columns', 'add_custom_columns_to_admin_orders', 20);
function add_custom_columns_to_admin_orders( $columns ) {
$new_columns = array();
foreach ( $columns as $column_name => $column_info ) {
$new_columns[ $column_name ] = $column_info;
if ( 'order_total' === $column_name ) {
$new_columns['order_shipping'] = __( 'Tarnemeetod', 'my-textdomain' );
$new_columns['order_payment'] = __( 'Maksemeetod', 'my-textdomain' );
}
}
return $new_columns;
}
add_action( 'manage_shop_order_posts_custom_column', 'custom_columns_content_in_admin_orders' );
function custom_columns_content_in_admin_orders( $column ) {
global $post, $the_order;
if ( 'order_shipping' === $column )
{
echo $the_order->get_shipping_method();
}
if ( 'order_payment' === $column ) {
echo $the_order->get_payment_method_title();
}
}
// Make payment methods searchable
add_filter( 'woocommerce_shop_order_search_fields', 'makse_otsing' );
function makse_otsing( $meta_keys ){
$meta_keys[] = '_payment_method_title';
return $meta_keys;
}
// Make shipping methods searchable
add_filter( 'woocommerce_shop_order_search_fields', 'tarne_otsing' );
function tarne_otsing( $meta_keys ){
$meta_keys[] = '_shipping_method';
return $meta_keys;
}