Как добавить счетчик в меню администратора статуса пользовательского заказа в Woocommerce? - PullRequest
0 голосов
/ 16 января 2020

Итак, я добавил пользовательский статус заказа под названием «ожидание отправки» и хочу включить эти заказы в число заказов, отображаемое в раскрывающемся меню WooCommerce слева от администрации. Здесь отображаются только заказы - это заказы со статусом «обработка».

Любая помощь, ребята? Большое спасибо заранее.

1 Ответ

1 голос
/ 16 января 2020

Я нашел справедливое решение. Это немного странно ... но работает

Сначала добавьте подменю в меню 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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...