Описание woocommerce_order_shipping_method
— Filter
Хук woocommerce_order_shipping_method позволяет изменить способ доставки, используемый для заказа, перед отображением информации о заказе. Он срабатывает на странице оформления заказа и в админке при просмотре заказов, предоставляя возможность манипулировать данными о доставке.
Примеры использования
Пример изменения способа доставки на бесплатную доставку для определенного условия:
add_filter('woocommerce_order_shipping_method', function($shipping_method, $order) {
if ($order->get_total() > 100) {
return 'free_shipping';
}
return $shipping_method;
});
В этом примере мы проверяем, если сумма заказа больше 100, то устанавливаем способ доставки на бесплатный.
Пример добавления пользовательского способа доставки:
add_filter('woocommerce_order_shipping_method', function($shipping_method, $order) {
if ($order->get_meta('custom_shipping')) {
return 'custom_shipping_method';
}
return $shipping_method;
});
Здесь мы проверяем, есть ли специальное мета-поле у заказа, и, если да, устанавливаем свой кастомный способ доставки.
Пример изменения способа доставки в зависимости от страны покупателя:
add_filter('woocommerce_order_shipping_method', function($shipping_method, $order) {
$country = $order->get_billing_country();
if ($country === 'RU') {
return 'flat_rate:1';
}
return $shipping_method;
});
В данном примере мы устанавливаем способ доставки в зависимости от страны, указанной при оформлении заказа.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить способ доставки в зависимости от условий заказа или других критериев
– Производительность
Хук работает с объектом заказа и не должен сильно влиять на производительность, но следует избегать сложных вычислений
– Предупреждения
Убедитесь, что изменения не конфликтуют с другими способами доставки и не нарушают логику оформления заказа
Альтернативы
Тип: filter
Этот хук позволяет добавлять или изменять доступные способы доставки в WooCommerce
Используйте его, если необходимо изменить список доступных способов доставки, а не конкретный способ для заказа