如何解决使自定义列在WooCommerce管理员订单列表中可排序
我的自定义列显示了数据,但似乎无法对其进行排序。目前,如果我按列标题进行排序,则它仅按订单日期排序,而不是按此新列中的数据排序。我特别留意“ meta_query”数组中的“值”应该是什么-我尝试过的一切都没有用。任何帮助将不胜感激!
// ----- add column to orders that shows the booking date -----
function ec_order_items_column2($columns) {
$new_columns = array();
foreach($columns as $key=>$column){
$new_columns[$key] = $columns[$key];
if($key === 'ordered_products') {
$new_columns['start_date'] = __('Booking Time','woo-custom-ec2');
}
}
return $new_columns;
}
add_filter('manage_edit-shop_order_columns','ec_order_items_column2',99 );
function ec_order_items_column_cnt2($column) {
global $post,$the_order;
$order_id = $the_order->get_id();
// Replace 'my_custom_column_key' with your desired column key
if ( 'start_date' === $column ) {
$display = array();
// Loop through order items
foreach ( $the_order->get_items() as $item_id => $item ) {
// $item_id is the current Item ID
// Get the WC_Product Object
$product = $item->get_product();
// Get custom order item meta data
$meta_value = $item->get_meta('phive_display_time_from');
$display[$item_id] = $meta_value;
}
// Testing output
echo implode(' | ',$meta_value);
}
}
add_action('manage_shop_order_posts_custom_column','ec_order_items_column_cnt2',99);
// ---- make sortable column ----
add_filter( 'manage_edit-shop_order_sortable_columns','custom_woo_admin_sort' );
function custom_woo_admin_sort( $columns )
{
$custom = array(
'start_date' => '_phive_display_time_from',);
return wp_parse_args( $custom,$columns );
}
add_action('pre_get_posts','custom_booking_orderby');
function custom_booking_orderby( $query ) {
if ( !is_admin() ){ return; }
$orderby = $query->get( 'orderby');
if ('phive_display_time_from' == $orderby){
$query->set('meta_key','phive_display_time_from');
$query->set( 'orderby','meta_value' );
$query->set( 'meta_query',array(
array(
'key' => 'phive_display_time_from','value' => 'meta_value',)
));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。