Php 限制自定义帐号字段值仅为数字

Php 限制自定义帐号字段值仅为数字,php,wordpress,validation,woocommerce,field,Php,Wordpress,Validation,Woocommerce,Field,我在添加字段的代码方面得到了很大的帮助,现在我希望收货方/账号只能是数字 这是我目前的代码: // 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

我在添加字段的代码方面得到了很大的帮助,现在我希望收货方/账号只能是数字

这是我目前的代码:

// 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;
}
//登录字段验证
添加过滤器('woocommerce\u login\u errors'、'account\u login\u field\u validation',10,3);
函数帐户\登录\字段\验证($errors、$username、$email){
如果(设置($\u POST['billing\u account\u number'])和空($\u POST['billing\u account\u number'])){
$errors->add('billing_account_number_error',uuu('error:需要账号!','woocommerce');
}
返回$errors;
}
//“管理用户账单字段”部分中的显示字段
添加过滤器('woocommerce\u customer\u meta\u fields','admin\u user\u custom\u billing\u fields',10,1);
函数管理\用户\自定义\账单\字段($args){
$args['billing']['fields']['billing\u account\u number']=array(
“标签”=>uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
'说明'=>'',
“自定义_属性”=>array('maxlength'=>6),
);
返回$args;
}

非常感谢您的帮助。

您可以使用条件
ctype\u 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;
}
//登录字段验证
添加过滤器('woocommerce\u login\u errors'、'account\u login\u field\u validation',10,3);
函数帐户\登录\字段\验证($errors、$username、$email){
如果(设置($\u POST['billing\u account\u number'])和空($\u POST['billing\u account\u number'])){
$errors->add('billing_account_number_error',uuu('error:账号是必填字段,'woocommerce');
}elseif(isset($邮政['billing\u account\u number'])和&!ctype\u数字($邮政['billing\u account\u number'])){
$errors->add('billing_account_number_error',uuu('error:在account number字段中只允许使用数字,','woocommerce');
}
返回$errors;
}
您还可以使用
is\u numeric()
函数


相关:

你好,Loic非常感谢你每次都给我很大的帮助,这是你以前为我编辑的函数