WooCommerce, популярный плагин электронной коммерции для WordPress, предоставляет гибкую платформу для владельцев интернет-магазинов. Одной из его ключевых особенностей является возможность применять купоны к заказам, что позволяет клиентам пользоваться скидками и рекламными акциями. Хотя WooCommerce предлагает удобный интерфейс для применения купонов, существуют сценарии, в которых вам может потребоваться применять купоны программным способом. В этой статье мы рассмотрим различные методы программного применения купонов в WooCommerce, а также приведем примеры кода.
Метод 1. Использование класса WC_Coupon
Класс WC_Coupon
в WooCommerce предоставляет простой способ программного применения купонов. Вот пример:
$coupon_code = 'SUMMER2022';
$coupon = new WC_Coupon($coupon_code);
if ($coupon->is_valid()) {
WC()->cart->apply_coupon($coupon_code);
WC()->cart->calculate_totals();
echo 'Coupon applied successfully!';
} else {
echo 'Invalid coupon code.';
}
Метод 2: применение купонов во время оформления заказа
Если вы хотите применить купон во время оформления заказа, вы можете использовать хук woocommerce_applied_coupon
. Вот пример:
function apply_coupon_at_checkout($applied_coupons, $coupon_code)
{
if ($coupon_code === 'SUMMER2022') {
$applied_coupons[] = $coupon_code;
}
return $applied_coupons;
}
add_filter('woocommerce_applied_coupon', 'apply_coupon_at_checkout', 10, 2);
Метод 3. Применение купонов на основе условий
Вы также можете применять купоны программным способом на основе определенных условий с помощью специального кода. Например, вы можете применить купон только тогда, когда в корзине находится определенный товар. Вот пример:
function apply_coupon_based_on_product($applied_coupons)
{
$product_id = 123; // ID of the product
$coupon_code = 'SUMMER2022';
$product_in_cart = false;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['product_id'] === $product_id) {
$product_in_cart = true;
break;
}
}
if ($product_in_cart && !in_array($coupon_code, $applied_coupons)) {
$applied_coupons[] = $coupon_code;
}
return $applied_coupons;
}
add_filter('woocommerce_applied_coupon', 'apply_coupon_based_on_product');
В этой статье мы рассмотрели различные методы программного применения купонов в WooCommerce. Используя класс WC_Coupon
, применяя купоны во время оформления заказа или применяя купоны на основе определенных условий, вы можете настроить процесс применения купонов в соответствии со своими потребностями. Не забывайте тщательно тестировать свой код и соответствующим образом обрабатывать любые сценарии ошибок.