Установите минимальное количество символов в определенном текстовом поле в WooCommerce Checkout - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть несколько пользовательских текстовых полей на моей странице оформления заказа WooCommerce.Я успешно установил ограничение максимальной длины.

Теперь я пытаюсь установить ограничение минимальной длины для этих полей.

Я пытаюсь использовать следующий код:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {

$fields['billing']['iventure_player1_firstsection']['custom_attributes'] = 
array( "pattern" => ".{18,}" );

return $fields;    
}

Но это не такне работает.

Вы можете проверить все поля по этой ссылке: https://adventureclues.com/checkout-iventure/?add-to-cart=7384

Имя поля: iventure_player1_firstsection

Пользователь не должен иметь возможность проверитьесли в поле нет 18 символов.

1 Ответ

0 голосов
/ 27 сентября 2019

Единственный реальный эффективный способ ограничить длину поля проверки WooCommerce (чтобы избежать проверки) - это проверка (при условии, что вы используете 'custom_attributes' => array( "maxlength" => "18"),) :

add_action('woocommerce_checkout_process', 'checkout_custom_field_validation');
function checkout_custom_field_validation() {
    // Check if set, if its not set add an error.
    if ( isset($_POST['iventure_player1_firstsection']) && $value = $_POST['iventure_player1_firstsection'] ) {
        if ( strlen($value) != 18 ) {
            wc_add_notice( __( "iVenture Card Number field requires 18 characters, please check your input…", "woocommerce" ), 'error' );
        }
    }
}

Теперь вы также можете использовать javascript (jQuery) для отображения, например, сообщения перед отправкой, на change или blur событие делегированной формы для этого поля…

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