• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Не меняется описание способа оплаты

Dimella

Новичок
Добрый день. Пытаюсь добавить дополнительное поле в описание метода оплаты(ЮKassa) с помощью следующего кода:
add_filter( 'woocommerce_gateway_description', 'gateway_bacs_custom_fields', 25, 2 );
function gateway_bacs_custom_fields( $description, $gateway_id ){
//
$total = WC()->cart->subtotal;
$minimum_amount = 700;
$max_amount = 2599;
if( 'yookassa_epl' === $gateway_id && $total >= $minimum_amount && $total <= $max_amount){
ob_start(); // Start buffering

echo '<div class="bacs-fields" style="padding:10px 0;">';

woocommerce_form_field( 'field_slug', array(
'type' => 'select',
'label' => ("Бонусная программа", "woocommerce"),
'class' => array('form-row-wide'),
'required' => true,
'options' => array(
'' => ("Выберите свой подарок", "woocommerce"),
'choice-1' => ("Подарок 1", "woocommerce"),
'choice-2' => ("Подарок 2", "woocommerce"),
),
), '');

echo '<div>';

$description .= ob_get_clean(); // Append buffered content
}
return $description;
}

Описание не меняется, нужное мне поле не появляется. Причем если в функции прописываю другой способ оплаты, у него все выводится. Не выводится именно для ЮKassa.
В чем может быть проблема?

Если прописать описание в настройках способа оплаты ЮKassa, текст меняется http://dl4.joxi.net/drive/2022/12/26/0032/1290/2143498/98/0b9e046389.jpg
 

joy66

Опытный
Для вывода описания платежного шлюза в общем случае используется метод класса WC_Payment_Gateway -> get_description() , где и используется фильтр woocommerce_gateway_description
Но Юмани используют собственный класс шлюза с собственным методом get_description() и Там этот фильтр не используется. Поэтому надо идти другим путем, например - кастомизация шаблона woocommerce checkout/payment-method (взять из woo или из темы, если используется)
И там уже играться с объектом $gateway и выводить по условию что надо.
 

Dimella

Новичок
Для вывода описания платежного шлюза в общем случае используется метод класса WC_Payment_Gateway -> get_description() , где и используется фильтр woocommerce_gateway_description
Но Юмани используют собственный класс шлюза с собственным методом get_description() и Там этот фильтр не используется. Поэтому надо идти другим путем, например - кастомизация шаблона woocommerce checkout/payment-method (взять из woo или из темы, если используется)
И там уже играться с объектом $gateway и выводить по условию что надо.
Хотел хуком вывести, придется копировать шаблон в дочернюю тему и ковырять. Спасибо!
 
Сверху Снизу