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

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

最佳答案

据我所知,有一个过滤器可以 Hook 日期格式:woocommerce_admin_order_date_format - https://github.com/woocommerce/woocommerce/blob/a7d57a248ed03dac7bad119e71f83dd961f43cb3/includes/admin/list-tables/class-wc-admin-list-table-orders.php但它仅当订单早于 1 天时才会触发。

也许这就是不起作用的原因。

另一种优雅的方法是删除 native 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 

        }

    }

}

祝你好运;)

https://stackoverflow.com/questions/61375632/

相关文章:

angular - JSDom karma Angular 设置

flutter - 如何在 Flutter 中禁用 SnackBar 的淡入/淡出动画?

ios - 如何在 SwiftUI 中更新 TextField 的值?

google-app-engine - 将 AppEngine 中的传入请求路由到不同版本

perl - 使用 Perl 连接到 AWS Managed Cassandra

php - 超时作业挂起 15 或 30 分钟,然后运行

python - 为什么在 Python 中从不同路径调用类时 __class__ 不同?

python - 当没有 activate.bat 并且我是凡人时,如何在虚拟环境中的任务调度程序中

reactjs - Ant Design 如何处理 Form.List 从底层数据结构访问值?

javascript - postgres : relation does not exist wh