Ограничить значение поля номера пользовательского аккаунта WooCommerce только цифровыми цифрами - PullRequest
0 голосов
/ 04 октября 2019

Мне очень помог мой код добавления поля, теперь я хотел бы, чтобы номер доставки / счета был только числовым.

Вот мой текущий код:

// login Field validation
add_filter( 'woocommerce_login_errors', 'account_login_field_validation', 10, 3 );
function account_login_field_validation( $errors, $username, $email ) {
    if ( isset( $_POST['billing_account_number'] ) && empty( $_POST['billing_account_number'] ) ) {
        $errors->add( 'billing_account_number_error', __( '<strong>Error</strong>: account number is required!', 'woocommerce' ) );
    }
    return $errors;
}

// Display field in admin user billing fields section
add_filter( 'woocommerce_customer_meta_fields', 'admin_user_custom_billing_field', 10, 1 );
function admin_user_custom_billing_field( $args ) {
    $args['billing']['fields']['billing_account_number'] = array(
        'label'         => __( 'Ship to/ Account number', 'woocommerce' ),
        'description'   => '',
        'custom_attributes'   => array('maxlength' => 6),
    );
    return $args;
}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 04 октября 2019

Вы можете использовать условную функцию ctype_digit(), чтобы ограничить значение цифровыми цифрами:

// login Field validation
add_filter( 'woocommerce_login_errors', 'account_login_field_validation', 10, 3 );
function account_login_field_validation( $errors, $username, $email ) {
    if ( isset( $_POST['billing_account_number'] ) && empty( $_POST['billing_account_number'] ) ) {
        $errors->add( 'billing_account_number_error', __( '<strong>Error</strong>: Account number is a required field.', 'woocommerce' ) );
    } elseif ( isset( $_POST['billing_account_number'] ) && ! ctype_digit($_POST['billing_account_number']) ) {
        $errors->add( 'billing_account_number_error', __( '<strong>Error</strong>: Only numeric digits are allowed on Account number field.', 'woocommerce' ) );
    }
    return $errors;
}

Вы также можете использовать функцию is_numeric()

как проверить, содержит ли переменная PHP ненулевые числа?

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