Woocommerce Checkout Настройки полей не остаются на обновлении Checkout AJAX - PullRequest
2 голосов
/ 08 марта 2019

В Woocommerce я добавляю сноску в определенное поле оформления заказа, используя этот код:

add_action( 'woocommerce_form_field_text','add_address_disclaimer', 100, 2 );
function add_address_disclaimer( $field, $key ){
    global $woocommerce;    
    if ( is_checkout() && ( $key == 'billing_address_2') ) {
        $field .= '<div class="fields-shipping-disclaimer"><p>' . __('We cannot ship to PO Boxes and FPO/APO addresses.') . '</p></div>';
    }
    return $field;
}

Работает как надо при инициализации ... сноска отображается под полем адреса выставления счета 2:

enter image description here

Однако при обновлении любых полей, которые запускают опцию «обновить извлечение», пользовательская сноска не отражается в обновленных полях проверки:

enter image description here

Кто-нибудь знает, почему это происходит?

1 Ответ

1 голос
/ 08 марта 2019

Сначала используемый вами хук - это фильтр-хук , а не хук действия, поэтому использовать add_filter() и global $woocommerce; не нужно.

Попробуйте эту версию кода (без тега div) :

add_filter( 'woocommerce_form_field_text' , 'add_address_disclaimer', 10, 2 );
function add_address_disclaimer( $field, $key) {
    if ( is_checkout() && $key == 'billing_address_2' ) {
        $text   = __("We cannot ship to PO Boxes and FPO/APO addresses.");
        $field .= '<p class="form-row fields-shipping-disclaimer">'.$text.'</p>';
    }
    return $field;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Протестировано и работает (остается на событии update_checkout JS) .

Тема по теме: WooCommerce добавить таможенное уведомление ниже поля электронной почты для оформления заказа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...