#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. .. Я бы хотел, когда… Извините, но вы просто повторяетесь. Мы здесь не пишем бесплатный код.