php - 将 WooCommerce 自定义帐号字段值限制为仅限数字
问题描述
我在添加字段的代码方面得到了很大的帮助,现在我希望发货/帐号只能是数字。
这是我当前的代码:
// 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;
}
任何帮助表示赞赏。
解决方案
您可以使用条件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()
函数...</p>
推荐阅读
- javascript - 如何使用 React 和 Typescript 处理 div 上的点击事件
- unity3d - 方法1正在执行,但方法2没有执行。但是它们是完全相同的比例变换,只是写成不同的形式。为什么?
- data-structures - 生成和操作大栅格
- c# - 该功能没有按照我想要的方式重复
- java - Java:如何在 Linux 上检测显示器刷新率?
- android - 使用 Material Design Android 库更改可绘制颜色
- python-3.x - 如果字典的键具有相似的值,则组合它们:Python
- swiftui - 在 SwiftUI 中放置在导航堆栈中时滚动视图的背景颜色
- python - GDB:ModuleNotFoundError:没有名为“_tkinter”的模块
- git - 如何从一个 Git 存储库迁移到另一个 Git 存储库?