Описание woocommerce_after_get_rates_for_package
— Action
Хук woocommerce_after_get_rates_for_package срабатывает после получения расчетов доставки для пакета, позволяя вам вносить изменения в результаты расчетов. Этот хук полезен, когда необходимо модифицировать или фильтровать доступные способы доставки перед их отображением пользователю
Примеры использования
Пример удаления определенного способа доставки из списка доступных:
add_action('woocommerce_after_get_rates_for_package', function($rates, $package) {
unset($rates['flat_rate:1']);
return $rates;
});
В этом примере мы удаляем способ доставки с идентификатором ‘flat_rate:1’ из доступных способов
Пример изменения стоимости определенного способа доставки:
add_action('woocommerce_after_get_rates_for_package', function($rates, $package) {
if(isset($rates['free_shipping:1'])) {
$rates['free_shipping:1']->cost += 5; // добавляем 5 к стоимости бесплатной доставки
}
return $rates;
});
Здесь мы увеличиваем стоимость бесплатной доставки на 5
Пример добавления нового способа доставки:
add_action('woocommerce_after_get_rates_for_package', function($rates, $package) {
$rates['custom_shipping'] = (object) array(
'id' => 'custom_shipping',
'label' => 'Кастомная доставка',
'cost' => 10,
'taxes' => '',
);
return $rates;
});
В этом примере мы добавляем новый способ доставки с фиксированной стоимостью 10
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо модифицировать способы доставки перед их отображением пользователю
– Производительность
Хук может повлиять на производительность, если вносить значительные изменения в массив доступных способов, поэтому старайтесь минимизировать количество операций
– Предупреждения
Обязательно проверяйте существование ключей в массиве перед их изменением, чтобы избежать ошибок
Альтернативы
Тип: filter
Этот фильтр позволяет изменять доступные способы доставки перед их использованием
Используйте его, если вам нужно изменить сам список способов доставки, а не только их параметры