Как добавить и изменить статус пользовательского заказа в WooCommerce

Опубликовано: 2022-05-14

Вы хотите добавить и изменить статус пользовательского заказа в WooCommerce? Они могут быть очень полезны, чтобы лучше понять статусы заказов ваших клиентов.

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

Зачем добавлять и редактировать статус пользовательского заказа в WooCommerce?

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

С другой стороны, чем меньше статусов заказов нам нужно обрабатывать, тем лучше будет уровень продаж в магазине электронной коммерции. Кроме того, это также упростит и упростит управление всем веб-сайтом.

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

Точно так же нам нужен еще один статус заказа, напоминающий о том, что заказ выполнен. Здесь покупатель, возможно, произвел оплату и получил товар. Но если заказ не выполнен из-за какого-либо несчастного случая, он может даже быть установлен как несостоявшийся, отмененный или возвращенный.

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

  • Ожидающий платеж
  • Неуспешный
  • Обработка
  • Завершенный
  • На удерживании
  • Отменено
  • Возмещено

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

Но если этих статусов по умолчанию вам все же недостаточно, вам обязательно придется создать несколько пользовательских статусов для вашего интернет-магазина. Добавление их на ваш веб-сайт, несомненно, даст вашим клиентам более четкое представление о статусе их заказов WooCommerce. Например, если вы хотите, чтобы статус заказа специально информировал клиентов о том, что их заказ ожидает звонка, вам нужно будет добавить собственный статус заказа WooCommerce.

Как создать статус пользовательского заказа WooCommerce?

Заказы WooCommerce рассматриваются как особый настраиваемый тип сообщений. Следовательно, к нему привязано значение post_status в таблице wp_posts базы данных так же, как и к любому другому типу сообщений.

Итак, чтобы включить наш пользовательский статус заказа в список доступных статусов, нам нужно использовать встроенную функцию WP register_post_status() .

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

1. Получите доступ к файлу functions.php

Чтобы создать и отредактировать пользовательский статус заказа в WooCommerce, вам сначала потребуется получить доступ к файлу функции темы. Сначала перейдите в «Внешний вид»> «Редактор файлов темы» на панели инструментов WordPress. Затем выберите файл « funtions.php » из файлов темы в правой части экрана.

2. Добавьте коды в файл functions.php

Теперь скопируйте и вставьте следующий скрипт в файл functions.php вашей дочерней темы. Это создаст новый пользовательский статус заказа под названием «Ожидание вызова».

 // Регистрируем новый статус
функция register_wait_call_order_status() {
register_post_status('wc-waiting-call', массив(
'label' => 'Ожидание вызова',
'общедоступный' => правда,
'show_in_admin_status_list' => правда,
'show_in_admin_all_list' => правда,
'exclude_from_search' => ложь,
'label_count' => _n_noop( 'Ожидание вызова (%s)', 'Ожидание вызова (%s)' )
));
}
// Добавляем пользовательский статус в список статусов заказов
функция add_wait_call_to_order_statuses($order_statuses) {
$new_order_statuses = массив();
foreach ($order_statuses as $key => $status) {
$new_order_statuses[$key] = $status;
if ( 'wc-on-hold' === $key ) {
$new_order_statuses['wc-waiting-call'] = 'Ожидание вызова';
}
}
вернуть $new_order_statuses;
}
add_action('init', 'register_wait_call_order_status');
add_filter('wc_order_statuses', 'add_wait_call_to_order_statuses');

Обратите внимание, что здесь мы используем пару крючков. Первый — это wp_init() , и он используется для регистрации нашего нового статуса. После того, как статус зарегистрирован, эта функция больше не нужна, вы можете удалить этот хук и его обратный вызов функции после завершения.

И второй — фильтр-хук wc_order_statuses() , который включает новый статус заказа в доступный список. Так что его можно использовать при прикреплении к заказу из панели администратора WooCommerce.

Вы можете увидеть новый статус пользовательского заказа, когда редактируете любой из заказов в разделе WooCommerce > Заказы на панели управления WordPress. Затем нажмите на опцию статуса, и статус заказа «Ожидание вызова» будет отображаться в раскрывающемся меню.

изменить статус пользовательского заказа в woocommerce создать статус пользовательского заказа

Изменить существующий статус заказа в WooCommerce

Мы также можем использовать тот же хук-фильтр, что и в предыдущем примере скрипта wc_order_statuses() , чтобы изменить имя существующего статуса заказа.

Следующий пример кода отредактирует две статистики заказа: «в обработке» и «завершен», изменив их на «в процессе» и «доставлено»:

 функция QuadLayers_rename_status($order_statuses) {
foreach ($order_statuses as $key => $status) {
если ( 'wc-обработка' === $key ) {
$order_statuses['wc-processing'] = _x('Выполняется', 'Статус заказа', 'woocommerce');
}
если ('wc-completed' === $key) {
$order_statuses['wc-completed'] = _x('Доставлено', 'Статус заказа', 'woocommerce');
}
}
вернуть $order_statuses;
}
add_filter('wc_order_statuses', 'QuadLayers_rename_status');

Не забудьте обновить файл после добавления в него кодов.

Вот и все! Вот как вы можете редактировать существующий или пользовательский статус заказа на своем веб-сайте WooCommerce.

изменить статус пользовательского заказа в woocommerce Переименовать статус заказа woocommerce

Удалить статус заказа в WooCommerce

Опять же, wc_order_statuses() будет полезен для удаления определенного статуса заказа. В этом случае мы убираем статус заказа «возвращен».

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

 функция QuadLayers_remove_status($statuses) {
if(isset($statuses['wc-refunded'] )){
unset($statuses['wc-refunded'] );
}
вернуть $статусы;
}
add_filter('wc_order_statuses', 'QuadLayers_remove_status');

Имейте в виду, что если вы удалите статус заказа WooCommerce по умолчанию, это может нарушить интеграцию с некоторыми платежными шлюзами.

Вывод

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

Как видите, добавлять и редактировать пользовательский статус заказа в вашем интернет-магазине очень просто. Но вам нужно иметь общее представление о том, как использовать хуки WooCommerce. Точно так же, если вы хотите узнать больше о заказах WooCommerce, у нас даже есть подробные руководства о том, как тестировать, повторять, удалять и даже автозаполнять заказы в WooCommerce.

Пробовали ли вы редактировать и добавлять статусы заказов на своем сайте? Пожалуйста, дайте нам знать в комментариях.

А пока, не стесняйтесь, посмотрите еще несколько наших статей, которые могут быть вам полезны:

  • Как создать собственный плагин WordPress
  • Лучшие плагины WooCommerce для повторения заказов
  • Как добавить комиссию в кассу WooCommerce