Как скрыть статус заказа в WooCommerce

Опубликовано: 2020-11-12

WooCommerce Скрыть статус заказа Хотите скрыть основные статусы заказов в своем магазине WooCommerce? Недавно клиент хотел, чтобы я скрыл некоторые статусы заказов в его магазине WooCommerce. В этом посте вы увидите, как можно легко удалить некоторые статусы заказов и как создать собственные.

WooCommerce Скрыть статус заказа

По разным причинам вы можете захотеть скрыть некоторые основные статусы заказов. Однако версия WooCommerce по умолчанию позволяет вам помечать заказы одним из следующих статусов: выполнено, обрабатывается, ожидает оплаты, приостановлено, возвращено, отменено или не выполнено.

Многие плагины позволяют вам управлять статусами заказов, и одним из них является плагин « WooCommerce Order Status Manager », стоимость которого составляет 49 долларов США. Диспетчер статуса заказов WooCommerce

Это может быть дорогим решением для вашего магазина, но есть простой способ сделать это. В текущей версии WooCommerce статусы заказов сохраняются как настраиваемые статусы сообщений, точно так же, как черновик, запланировано или опубликовано для сообщений.

Как скрыть статус заказа

С учетом сказанного давайте посмотрим, как вы можете скрыть статус заказа в WooCommerce с помощью фрагмента кода. Чтобы проверить сообщения о статусе заказа по умолчанию, войдите на свой сайт WordPress и войдите в панель управления как пользователь-администратор. Затем нажмите WooCommerce > Заказы . Вы увидите это: бэкенд статуса заказа

Эти сообщения также отображаются в интерфейсе, когда клиент пытается разместить заказ. Доступ к этому можно получить, нажав Моя учетная запись > Заказы, как показано ниже: фронтенд статуса заказа

Шаги, чтобы скрыть статусы основного заказа

Стоит отметить, что когда вы скрываете основные статусы заказов, убедитесь, что нет товаров с таким статусом. Более того, вы должны убедиться, что ваш магазин WooCommerce нигде не использует этот статус, потому что это может привести к ошибкам. Например, если вы не планируете делать возвраты в своем магазине WooCommerce, вы можете скрыть статус возврата.

Причина, по которой мы не можем удалить все основные статусы заказов, заключается в том, что плагины используют статусы заказов, даже те, которые вы не используете в своем рабочем процессе. Плагины, такие как платежные шлюзы, всегда предполагают наличие основных статусов заказов. Если их нет, они сломаются

Вот шаги, которые вам необходимо выполнить:

  1. Войдите на свой сайт WordPress и получите доступ к панели инструментов в качестве пользователя-администратора.
  2. В меню «Панель инструментов» нажмите « Меню внешнего вида» > «Меню редактора тем». Когда страница редактора темы открыта, найдите файл функций темы, чтобы добавить функцию для скрытия основных статусов заказов в вашем магазине WooCommerce.
  3. Добавьте следующий код в файл functions.php:
 /*

 * Удаление основных статусов заказов

 * @param array $wc_statuses_arr Массив всех статусов заказов на сайте

 */

функция njengah_remove_order_statuses($wc_statuses_arr){

            // Обработка

            if( isset( $wc_statuses_arr['wc-processing'] ) ) { // если существует

                        unset($wc_statuses_arr['wc-processing'] ); // удалить его из массива

            }

            // Возврат

            если ( isset ( $ wc_statuses_arr ['wc-refunded'] ) ) {

                        unset($wc_statuses_arr['wc-refunded'] );

            }

            // На удерживании

            if( isset($wc_statuses_arr['wc-on-hold'] ) ){

                        unset($wc_statuses_arr['wc-on-hold'] );

            }

            // Не удалось

            если ( isset ( $ wc_statuses_arr ['wc-failed'] ) ) {

                        unset($wc_statuses_arr['wc-failed'] );

            }

            // Ожидание платежа

            если ( isset ( $ wc_statuses_arr ['wc-ожидание'] ) ) {

                        unset($wc_statuses_arr['wc-ожидание']);

            }

            // Завершенный

            //если( isset( $wc_statuses_arr['wc-completed'] ) ){

            // unset($wc_statuses_arr['wc-completed']);

            //}

            // Отменено

            //если( isset( $wc_statuses_arr['wc-cancelled'] ) ){

            // unset($wc_statuses_arr['wc-cancelled'] );

            //}

            возврат $wc_statuses_arr; // возвращаем статусы результата

}

add_filter('wc_order_statuses', 'njengah_remove_order_statuses');
  1. Это результат на переднем конце: скрыть статусы заказов
  2. Чтобы добавить пользовательский статус заказа, добавьте следующий код в файл functions.php:
 /**

* Зарегистрируйте новый статус с идентификатором «wc-njengah-shipment» и пометкой «Ожидает отправки».

*/

функция njengah_register_awaiting_shipment_status() {
register_post_status('wc-njengah-shipment', массив(

'label' => 'Ожидает отправки',

'общедоступный' => правда,

'show_in_admin_status_list' => true, // показать количество Все (12), Завершено (9), Ожидает отправки (2) ...

'label_count' => _n_noop( 'Ожидается отправка <span class="count">(%s)</span>', 'Ожидается отправка <span class="count">(%s)</span>' )

));
}

add_action('init', 'njengah_register_awaiting_shipment_status');

/*

* Добавить зарегистрированный статус в список статусов заказа WC

* @param array $wc_statuses_arr Массив всех статусов заказов на сайте

*/

функция njengah_add_status ($ wc_statuses_arr) {
$new_statuses_arr = массив();

// добавляем новый статус заказа после обработки

foreach ($wc_statuses_arr as $id => $label) {

$new_statuses_arr[$id] = $метка;

if ( 'wc-completed' === $id ) { // после статуса "Завершено"

$new_statuses_arr['wc-njengah-shipment'] = 'Ожидает отправки';

}

}
вернуть $new_statuses_arr;

// если порядок статусов заказов для вас не имеет значения, вы можете удалить строки 21-32 и раскомментировать следующие 35-36

// $wc_statuses_arr['wc-njengah-shipment'] = 'Ожидает отправки';

// вернуть $wc_statuses_arr;
}

add_filter('wc_order_statuses', 'njengah_add_status');
  1. Это результат: добавить пользовательский статус заказа

Вывод

В этом посте вы увидели, как можно скрыть основные статусы заказов. Однако важно отметить, что статус заказа, который вы хотите удалить, нигде в вашем магазине не используется, потому что это может привести к ошибкам. Кроме того, я поделился тем, как добавить пользовательский статус заказа. Если вы не умеете работать с кодом, обратитесь к квалифицированному разработчику WordPress.

Похожие статьи