@Vaprubnyak
Ученик ученика

Почему надпись в оформлении заказа на woocommerce выходит 2 раза вместо одного?

Написали следующий код для скрытия метода оплаты при оформлении заказа в woocommerce
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

$limit_reached = false;

function wc_minimum_order_amount() 
{
	// Задать переменную, чтобы указать минимальное значение заказа
	$minimum = 1000;
	
	if ( WC()->cart->total < $minimum ) {
		$limit_reached = true;
		
	}
	return $limit_reached;
}

function unsetting_payment_gateways( $available_gateways ) 
{	
	$limit_reached = wc_minimum_order_amount();
	if ($limit_reached) {
			// Задать переменную, чтобы указать минимальное значение заказа
			$minimum = 1000;
			// Здесь установить способ оплаты
			unset($available_gateways['cod']);
			wc_print_notice( 
                sprintf( 'Для оплаты заказа при получении ваша сумма заказа должна быть более %s Сейчас сумма вашего заказа %s. рублей' , 
                    wc_price( $minimum ), 
                    wc_price( WC()->cart->total )
                ), 'error' 
            );
	}
	
	return $available_gateways;
}
add_action('woocommerce_available_payment_gateways', 'unsetting_payment_gateways');

Но надпись "Для оплаты заказа при получении ваша сумма заказа должна быть..." выводится 2 раза вместо одного
5a7d4aa90c323991200520.png
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@Vaprubnyak Автор вопроса
Ученик ученика
Решил проблему выносом wc_print_notice в другой хук.
woocommerce_available_payment_gateways в woo вызывается два раза
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
function wc_minimum_order_amount() 
{
  // Задать переменную, чтобы указать минимальное значение заказа
  $minimum = 1000;
  
  if ( WC()->cart->total < $minimum ) {
    $limit_reached = true;
    
  }else{
 $limit_reached = false;
}
  return $limit_reached;
}


Попробуй добавить else{ $limit_reached = false; }

Но это не точно))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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