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

Почему не локализуется подпись у textarea через фильтр woocommerce?

giwuf

Форумчанин
Всем привет!
Есть магазин на woocommerce где необходимо сделать лейблы (подписи) biiling полей мультиязычными. Для этого использую плагин polylang.

Что интересно, подписи billing полей с селектором input переводятся без проблем, а вот подпись textarea секции order уже не переводятся - почему?

functions.php
PHP:
pll_register_string( 'walkaboutlove', 'FIRST NAME' );
pll_register_string( 'walkaboutlove', 'COMMENTS / QUESTIONS' );

// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
    $fields['billing']['billing_first_name']['label']  = pll__( 'FIRST NAME' );
    $fields['order']['order_comments']['label']  = pll__( 'COMMENTS / QUESTIONS' );
     // проверяю var_dump($fields['order']['order_comments']['label']); - изменения применены как и положено
     return $fields;
}

Не понимаю, в чем зарыта причина, ведь в самой документации woocommerce написано все в точности как и у меня

PHP:
// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
     $fields['order']['order_comments']['placeholder'] = 'My new placeholder';
     $fields['order']['order_comments']['label'] = 'My new label';
     return $fields;
}
 

tuxfighter

Гуру
Местный
Вам стоит задать вопрос в техподдержку этого коммерческого плагина. За нее вы тоже заплатили
 

giwuf

Форумчанин
Вам стоит задать вопрос в техподдержку этого коммерческого плагина. За нее вы тоже заплатили
tuxfighter, вы немного не так поняли - сам по себе плагин бесплатный, я просто указал ссылку на офиц страницу, а не на репозиторий wordpress.

Но, дело совсем не в нем, т.к., что так прописать
PHP:
$fields['order']['order_comments']['label']  = pll__( 'COMMENTS / QUESTIONS' );
что так
PHP:
$fields['order']['order_comments']['placeholder'] = 'My new placeholder';
а затем вывести внутри функции фильтра
PHP:
var_dump($fields['order']['order_comments']['label']);
То, все отработает корректно, т.е. изменения лебла применятся на 'COMMENTS / QUESTIONS' языка в зависимости от страницы или My new placeholder соответственно,
НО, в самой форме по итогу результатов не будет, т.е. в лейбле textarea будет прописана исходная подпись вне зависимости от языка или сделанного изменения согласно документации, когда с лейблами полей billingа все отрабатывает корректно!

Т.е. в данном случае вопрос только к фильтру woocommerce_checkout_fields, почему он для billing input отработал, а для order textarea нет, хотя все сделано по документации woocommerce?
 

ADv

Гуру
Местный
tuxfighter, вы немного не так поняли - сам по себе плагин бесплатный, я просто указал ссылку на офиц страницу, а не на репозиторий wordpress.

Но, дело совсем не в нем, т.к., что так прописать
PHP:
$fields['order']['order_comments']['label']  = pll__( 'COMMENTS / QUESTIONS' );
что так
PHP:
$fields['order']['order_comments']['placeholder'] = 'My new placeholder';
а затем вывести внутри функции фильтра
PHP:
var_dump($fields['order']['order_comments']['label']);
То, все отработает корректно, т.е. изменения лебла применятся на 'COMMENTS / QUESTIONS' языка в зависимости от страницы или My new placeholder соответственно,
НО, в самой форме по итогу результатов не будет, т.е. в лейбле textarea будет прописана исходная подпись вне зависимости от языка или сделанного изменения согласно документации, когда с лейблами полей billingа все отрабатывает корректно!

Т.е. в данном случае вопрос только к фильтру woocommerce_checkout_fields, почему он для billing input отработал, а для order textarea нет, хотя все сделано по документации woocommerce?
Вы уверены, что ни один из установленных на сайте плагинов не переопределяет это поле?
 

giwuf

Форумчанин
Вы уверены, что ни один из установленных на сайте плагинов не переопределяет это поле?
ADv я этого не знаю. Единственный, кто может мешать из плагинов - это Checkout Field Editor в котором я задаю поля, в том числе и биллинг, но с ними проблем ведь нет никаких.

tuxfighter все время был бесплатным А, если вы конкретно для woocommerce интересуетесь, то есть для этого дополнение которое вполне успешно со всем справляется.
 

giwuf

Форумчанин
ну как видим - не очень успешно -))
tuxfighter да что вы привязались к плагину! причем здесь он?? когда даже простое присваивание не работает
PHP:
$fields['order']['order_comments']['placeholder'] = 'My new placeholder';
и дает точно такой же результат - вывод лейбла по умолчанию. Я же об этом писал выше..
 

ADv

Гуру
Местный
ADv я этого не знаю. Единственный, кто может мешать из плагинов - это Checkout Field Editor в котором я задаю поля, в том числе и биллинг, но с ними проблем ведь нет никаких.


tuxfighter все время был бесплатным А, если вы конкретно для woocommerce интересуетесь, то есть для этого дополнение которое вполне успешно со всем справляется.
Попробуйте отключить и посмотреть на поведение.
 
Сверху Снизу