WooCommerce 3.0+ изменить формат столбца даты заказа администратора

В WooCommerce я использовал следующий код, чтобы изменить форматирование представления заказов администраторов столбца даты заказа:

// Woocommerce show time on order add_filter('post_date_column_time', 'custom_post_date_column_time', 10, 2); function custom_post_date_column_time($h_time, $post) { return get_the_time(__('Y/m/dg:i:s A', 'woocommerce'), $post); } 

С WooCommerce 3.0+ он просто перестает работать.

Есть идеи?

благодаря

В коде основного кода WC class-wc-admin-post-types.php если вы посмотрите на render_shop_order_columns() , ситуация изменилась с WooCommerce версии 3.0+, так как она использует WC_Abstract_Order get_date_created() вместо функции WordPress get_the_time() .

Вот почему крюк, который вы используете, больше не работает.

Вот выдержка из исходного кода в WooCommerce версии 3.0+:

 case 'order_date' : printf( '<time datetime="%s">%s</time>', esc_attr( $the_order->get_date_created()->date( 'c' ) ), esc_html( $the_order->get_date_created()->date_i18n( __( 'Ym-d', 'woocommerce' ) ) ) ); break; 

И вот тот же исходный код, извлеченный в WooCommerce версии 2.6.x:

 case 'order_date' : if ( '0000-00-00 00:00:00' == $post->post_date ) { $t_time = $h_time = __( 'Unpublished', 'woocommerce' ); } else { $t_time = get_the_time( __( 'Y/m/dg:i:s A', 'woocommerce' ), $post ); $h_time = get_the_time( __( 'Y/m/d', 'woocommerce' ), $post ); } echo '<abbr title="' . esc_attr( $t_time ) . '">' . esc_html( apply_filters( 'post_date_column_time', $h_time, $post ) ) . '</abbr>'; break; 

Теперь, если вы посмотрите на исходный код get_date_created() он использует новый get_prop() метод get_prop() . В исходном коде get_prop() вас есть новая возможность подключения фильтра:

 $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); 

ПРАВЫЙ ОТВЕТ:

Пожалуйста, посмотрите официальный ответ WooCommerce

Для упрощения ссылок для других новый фильтр должен быть выпущен в WooCommerce 3.0.2.

Патч может быть применен вручную с https://github.com/woocommerce/woocommerce/pull/14253

Он работает с пользовательской функцией, подключенной в woocommerce_admin_order_date_format новым фильтром:

 // Woocommerce show time on order add_filter('woocommerce_admin_order_date_format', 'custom_post_date_column_time'); function custom_post_date_column_time($h_time, $post) { return get_the_time(__('Y/m/d G:i', 'woocommerce'), $post); }