Описание woocommerce_register_shop_order_post_statuses
— Action
Хук woocommerce_register_shop_order_post_statuses позволяет зарегистрировать пользовательские статусы заказов в WooCommerce. Он срабатывает при инициализации статусов заказов, что позволяет разработчикам добавлять свои собственные статусы и управлять ими в интерфейсе WooCommerce
Примеры использования
Пример регистрации нового статуса заказа ‘В обработке’:
add_action('woocommerce_register_shop_order_post_statuses', function() {
register_post_status('wc-in-process', array(
'label' => 'В обработке',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'show_in_front' => true,
'label_count' => _n_noop('В обработке (%s)', 'В обработке (%s)')
));
});
В этом примере мы регистрируем новый статус заказа ‘В обработке’, который будет отображаться в админ-панели
Пример добавления статуса ‘Отменен’ с пользовательским цветом:
add_action('woocommerce_register_shop_order_post_statuses', function() {
register_post_status('wc-canceled', array(
'label' => 'Отменен',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'show_in_front' => true,
'label_count' => _n_noop('Отменен (%s)', 'Отменен (%s)')
));
});
add_filter('wc_order_statuses', function($order_statuses) {
$order_statuses['wc-canceled'] = 'Отменен';
return $order_statuses;
});
Здесь мы добавляем статус ‘Отменен’ и включаем его в список доступных статусов в WooCommerce
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавить пользовательские статусы для заказов в WooCommerce
– Производительность
Хук не должен негативно влиять на производительность, так как он работает с регистрацией статусов
– Предупреждения
Убедитесь, что пользовательские статусы имеют четкое назначение и не усложняют процесс обработки заказов
Альтернативы
Тип: action
Этот хук позволяет выполнять действия при изменении статуса заказа
Используйте его, если нужно реагировать на изменения статусов заказов, но не для их регистрации