Код: Выделить всё
// 1
add_filter( 'woocommerce_shop_order_list_table_columns', function ( $columns ) {
if ( isset( $columns['order_date'] ) ) {
unset( $columns['order_date'] );
}
$new = [];
foreach ( $columns as $key => $label ) {
$new[$key] = $label;
if ( 'order_number' === $key ) {
$new['completed_date'] = __( 'Completed', 'woocommerce' );
}
}
return $new;
}, 20 );
// 2
add_action( 'woocommerce_shop_order_list_table_custom_column', function( $column, $order ) {
if ( 'completed_date' !== $column ) {
return;
}
if ( ! is_a( $order, 'WC_Order' ) ) return;
$date = $order->get_date_completed();
echo $date ? esc_html( wc_format_datetime( $date, get_option('date_format').' '.get_option('time_format') ) ) : '—';
}, 10, 2 );
// 3
add_filter( 'woocommerce_shop_order_list_table_sortable_columns', function( $columns ) {
$columns['completed_date'] = 'completed_date';
return $columns;
} );
// 4
add_action( 'pre_get_posts', function( $query ) {
global $pagenow, $typenow;
if ( ! is_admin() || 'edit.php' !== $pagenow || 'shop_order' !== $typenow || ! $query->is_main_query() ) {
return;
}
$orderby = $query->get( 'orderby' );
if ( 'completed_date' === $orderby ) {
$query->set( 'meta_key', '_date_completed' );
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_type', 'DATETIME' );
}
} );
Код: Выделить всё
// 4 (2)
function action_parse_query( $query ) {
global $pagenow;
$query_vars = &$query->query_vars;
if ( is_admin() && $query->is_main_query() && $pagenow == 'edit.php' && $query_vars['post_type'] == 'shop_order' ) {
$query->set( 'orderby', 'completed_date' );
$query->set( 'order', 'ASC' );
}
}
add_action( 'parse_query', 'action_parse_query', 10, 1 );
Подробнее здесь: https://stackoverflow.com/questions/797 ... -dashboard
Мобильная версия