Как отредактировать код для разрешения пользователю удалять код скидки

#php #wordpress #woocommerce

Вопрос:

Я хотел бы знать, как я могу создать функцию, позволяющую пользователю удалить купон на скидку и ввести новый вручную. Это текущий код, который был создан для автоматического ввода купона.

Я хотел бы добавить функцию, которая позволяет пользователю удалить купон и вручную ввести другой код. Именно поэтому некоторые клиенты получают доступ к более привлекательным кодам

     <?php
add_action('woocommerce_before_cart', function ()
{
    $basica_coupon_code   = sanitize_text_field('basica-subscription-cupom');
    $superior_coupon_code = sanitize_text_field('superior-subscription-cupom');
    $clube_coupon_code    = sanitize_text_field('clube-subscription-cupom');

    // ids dos pacotes referentes a cada tipo de assinatura
    $subscription_basica   = array(3);
    $subscription_superior = array(41);
    $subscription_clube    = array(1, 13); // clube e completa

    $allowed_coupons = array(
        '50%off',
        'voucher150'
    );

    $total_coupons = count(WC()->cart->get_applied_coupons()); // Número de coupons aplicados

    // Para checar se o usuário tem nos acessos ids de produtos referente a assinaturas
    $_userHasSubscription = function ($ids) {
        if (!empty(array_intersect(_getUserProducts(), $ids))) // checa se tem as assinaturas
            return true;
        return false;
    };

    // Para aplicar um cupom ao carrinho, removendo qualquer outro
    $_applyCouponToCart = function ($coupon_code) use ($allowed_coupons, $total_coupons) {
        foreach ($allowed_coupons as $allowed_coupon) {
            if (WC()->cart->has_discount($allowed_coupon)) // se o carrinho tiver cupons permitidos
                return true;
        }
        if (WC()->cart->has_discount($coupon_code) amp;amp; $total_coupons <= 1) // caso já tenha o cupom e esteja no limite
            return true;
        WC()->cart->remove_coupons(); // remove todos os cupons ativos
        WC()->cart->apply_coupon($coupon_code); // adiciona o cupom
        #wc_print_notices();
    };
    
    

    // checa Básica
    if ($_userHasSubscription($subscription_basica)) // O usuário tem a assinatura Básica?
        $_applyCouponToCart($basica_coupon_code);

    // checa Superior
    if ($_userHasSubscription($subscription_superior)) // O usuário tem a assinatura Superior?
        $_applyCouponToCart($superior_coupon_code);

    // checa Clube e Completa
    if ($_userHasSubscription($subscription_clube)) // O usuário é assinante do Clube?
        $_applyCouponToCart($clube_coupon_code);

    add_action('wp_footer', function () {
        ?><script> jQuery(function($){ var func = function () {
            $('tr.coupon-basica-subscription-cupom th').text('Desconto de 10% da assinatura básica');
            $('tr.coupon-superior-subscription-cupom th').text('Desconto de 15% da assinatura superior');
            $('tr.coupon-clube-subscription-cupom th').text('Desconto de 20% para assinantes do clube');
            //$('tr.cart-discount td a.woocommerce-remove-coupon').hide();
            $('tr.coupon-basica-subscription-cupom, tr.coupon-superior-subscription-cupom, tr.coupon-clube-subscription-cupom')
            //.find('a.woocommerce-remove-coupon').hide();
    }; func(); window.setInterval(func, 12000);}); </script><?php
    });
});
 

Комментарии:

1. … Я хотел бы добавить функцию, которая…. Где код этой функции? И с какими проблемами вы сталкиваетесь в связи с этим?

2. Здравствуйте, эта функция была создана для автоматического добавления купона, однако я хотел бы, чтобы, когда клиент нажимает «удалить» купон, он автоматически не вставлял купон и не позволял клиенту вставлять

3. .. Я бы хотел, когда… Извините, но вы просто повторяетесь. Мы здесь не пишем бесплатный код.