@HankeTM

Какой хук на woocommerce отслеживает выбор метода оплаты?

Есть задача применить скидку, если выбран метод оплаты банковские карты. Использую плагин paykeeper на wordpress для приема платежей на сайте.

function add_discount($cart)
{
  if ( is_admin() && ! defined( 'DOING_AJAX' ) || is_cart() )
  {
    return;
  }
  if (WC()->session->chosen_payment_method == 'paykeeper')
  {
    $cart->add_fee( 'Оплата банковской картой', - $cart->cart_contents_total * 0.03 );
  }
}
add_action( 'woocommerce_before_calculate_totals', 'add_discount', 10 );


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

Может кто-то делал подобную задачку и нашел решение? Дело в неправильном хуке?
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yurovigorr
Вы несказанно помогли мне со строчкой "WC()->session->chosen_payment_method == 'paykeeper'", а я помогу вам.
Используйте слушатель woocommerce_cart_calculate_fees вместо woocommerce_before_calculate_totals, мне помогло.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы