Описание woocommerce_coupon_get_items_to_apply
— Filter
Хук woocommerce_coupon_get_items_to_apply позволяет изменить список товаров, к которым может быть применён купон. Он срабатывает во время проверки применимости купона к товарам в корзине или на странице оформления заказа, позволяя разработчикам ограничивать или расширять список товаров, к которым может быть применён определённый купон
Примеры использования
Пример ограничения применения купона только к конкретным товарам:
add_filter('woocommerce_coupon_get_items_to_apply', function($items, $coupon, $cart) {
if ($coupon->get_code() === 'SPECIAL10') {
$items = array_filter($items, function($item) {
return in_array($item->get_id(), array(123, 456));
});
}
return $items;
});
В этом примере купон ‘SPECIAL10’ может быть применён только к товарам с ID 123 и 456.
Пример добавления дополнительных товаров к списку применимых:
add_filter('woocommerce_coupon_get_items_to_apply', function($items, $coupon, $cart) {
if ($coupon->get_code() === 'FREESHIP') {
$additional_product = wc_get_product(789); // Получаем товар по ID
$items[] = $additional_product; // Добавляем его в список
}
return $items;
});
Здесь мы добавляем товар с ID 789 к списку товаров, к которым можно применить купон ‘FREESHIP’.
Пример удаления товара из списка применимых:
add_filter('woocommerce_coupon_get_items_to_apply', function($items, $coupon, $cart) {
$items = array_filter($items, function($item) {
return $item->get_id() !== 321; // Убираем товар с ID 321
});
return $items;
});
Этот пример удаляет товар с ID 321 из списка применимых к купону товаров.
— Лучшие практики
– Использование
Используйте этот хук, когда требуется контролировать, какие товары могут использовать определённые купоны
– Производительность
Следует избегать слишком сложных операций в фильтре, так как это может повлиять на производительность при большом количестве товаров
– Предупреждения
Будьте осторожны с изменениями в списке применимых товаров, чтобы не создать путаницу для пользователей
Альтернативы
Тип: filter
Этот хук позволяет проверить общую валидность купона, включая условия применения
Используйте его, если нужно проверять дополнительные условия для валидности купона, помимо списка товаров