更改Woocommerce管理员订单列表的时间和日期格式

时间:2020-04-22 21:44:48

标签: php wordpress woocommerce

您好,我正在尝试通过functions.php更改时间和日期格式,但它仍显示最近24小时的订单,例如“ 1分钟前”或“ 2小时前”。我如何获取所有订单以仅在管理员订单列表上显示订单时间和日期?感谢您的帮助。enter image description here

1 个答案:

答案 0 :(得分:0)

据我所知,有一个过滤器可以钩住日期格式:woocommerce_admin_order_date_format-https://github.com/woocommerce/woocommerce/blob/a7d57a248ed03dac7bad119e71f83dd961f43cb3/includes/admin/list-tables/class-wc-admin-list-table-orders.php,但是只有在订单的日期超过1天时才会触发

也许这就是为什么不起作用。

另一种无需接触任何模板文件的优雅方法是删除本地WooCommerce日期列并添加自定义日期列。

这是一个代码段(未试用),您可以将其粘贴到functions.php文件中。

add_filter( 'manage_edit-shop_order_columns', 'so61375632_add_new_order_admin_column' );
function so61375632_add_new_order_admin_column( $columns ) {

    unset( $columns['order_date'] ); // remove the default column

    $edit_columns = array_splice( $columns, 0, 2 );

    $edit_columns['order_custom_date'] = 'Date';

    return array_merge( $edit_columns, $columns );

}

add_action( 'manage_shop_order_posts_custom_column', 'so61375632_add_new_order_admin_column_content', 20, 2 );
function so61375632_add_new_order_admin_column_content( $column, $order_id ) {

    if ( $column == 'order_custom_date' ) {

        $order = wc_get_order( $order_id );

        if( ! is_wp_error( $order ) ) {

            echo $order->get_date_created()->format ('M j, Y H:i'); // pass any PHP date format 

        }

    }

}

祝你好运;)