Комплексное руководство по программному применению купонов в WooCommerce

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, применяя купоны во время оформления заказа или применяя купоны на основе определенных условий, вы можете настроить процесс применения купонов в соответствии со своими потребностями. Не забывайте тщательно тестировать свой код и соответствующим образом обрабатывать любые сценарии ошибок.