如何修改WooCommerce默认日期格式?自定义字段同步调整求助
解决WooCommerce订单日期及自定义取货日期格式问题
一、修复订单创建日期格式
你之前添加的代码报错,核心原因是函数名与钩子回调名称不匹配。将函数名改为小写开头,和钩子回调名保持一致即可,正确代码如下:
function woocommerce_date_format() { return 'F d, Y'; } add_filter( 'woocommerce_date_format', 'woocommerce_date_format' );
把这段代码添加到子主题的functions.php文件末尾(?>之前)即可生效。
二、修改自定义pickup_date字段显示格式
针对Checkout Field Editor插件添加的pickup_date字段,需要额外通过钩子格式化输出,提供两种方案:
方案1:仅修改后台订单详情页显示
function format_pickup_date_admin_order( $order ) { $pickup_date = get_post_meta( $order->get_id(), 'pickup_date', true ); if ( $pickup_date ) { $formatted_date = date( 'F d, Y', strtotime( $pickup_date ) ); echo '<p><strong>' . __( '取货日期:', 'woocommerce' ) . '</strong> ' . $formatted_date . '</p>'; } } add_action( 'woocommerce_admin_order_data_after_billing_address', 'format_pickup_date_admin_order', 10, 1 );
如果插件原本已显示该字段,需先在插件设置中隐藏原字段,再用此代码重新输出格式化后的日期。
方案2:全局修改字段输出格式(含前端订单页)
function format_pickup_date_meta( $value, $meta_key, $order ) { if ( 'pickup_date' === $meta_key && $value ) { return date( 'F d, Y', strtotime( $value ) ); } return $value; } add_filter( 'woocommerce_get_order_item_meta', 'format_pickup_date_meta', 10, 3 );
这段代码会统一修改pickup_date在所有场景的输出格式。
三、注意事项
- 修改代码前务必备份
functions.php文件,防止出错无法恢复。 - 确保WordPress时区设置为澳大利亚珀斯,保证日期转换的准确性。
- 修改后若未生效,尝试清除WordPress缓存及浏览器缓存。
内容的提问来源于stack exchange,提问作者Julie
相关产品推荐
相关产品推荐

