Я нашел справедливое решение. Это немного странно ... но работает
Сначала добавьте подменю в меню WooCommerce:
add_action( 'admin_menu', 'custom_status_menu', 50 );
function custom_status_menu(){
$status_page = add_submenu_page( 'woocommerce', 'Awaiting Shipment', __( 'Awaiting', 'woocommerce' ), 'manage_woocommerce', 'wc-awaiting', 'awaiting_orders_page' );
}
Затем добавьте функцию, которая будет запускаться при нажатии на этот пункт меню. Эта функция (а здесь хакерская часть) перенаправит пользователя на страницу обычных заказов, просто показывая запрашиваемый статус. ( для тестирования я использовал статус «Отменено», вы должны изменить это )
function awaiting_orders_page(){
header('Location: /wp-admin/edit.php?post_status=wc-cancelled&post_type=shop_order');
}
И, наконец, добавить счетчик. То же самое здесь, я использовал статус «в ожидании», измените его на тот, который вы создали
add_action( 'admin_head', 'add_custom_status_count');
function add_custom_status_count(){
global $submenu;
$order_count = wc_orders_count( 'awaiting' );
foreach ( $submenu['woocommerce'] as $key => $menu_item ) {
if ( 0 === strpos( $menu_item[0], 'Awaiting' ) ) {
$submenu['woocommerce'][ $key ][0] .= ' <span class="awaiting-mod update-plugins count-' . esc_attr( $order_count ) . '"><span class="processing-count">' . number_format_i18n( $order_count ) . '</span></span>'; // WPCS: override ok.
break;
}
}
}