WooCommerce 注册表单添加本站名称为字段的验证方式
萨龙网络使用的 Youji 原创企业主题注册登录都是使用 WooCommerce 商城插件自带的表单,使用简单方便。最近苦于国外机器人注册多,且没有更好的 WooCommerce 登录注册验证码插件,谷歌后找到了完美的解决方法:使用 WooCommerce 的钩子:woocommerce_register_form
和woocommerce_register_post
。
一、自定义字段增加与验证方式
1、向注册表单中添加一个字段
woocommerce_register_form
可以向注册表单中添加字段,使用较为简单,代码为:
// 定义 woocommerce_register_form 回调 function action_woocommerce_register_form() { // 需要增加的字段代码 }; // 添加钩子 add_action( 'woocommerce_register_form', 'action_woocommerce_register_form', 10, 0 );
2、验证字段
woocommerce_register_post
用于验证所增加字段,代码为:
// 定义 woocommerce_register_post 回调 function action_woocommerce_register_post( $username, $email, $errors ) { // 验证代码 }; // 添加钩子 add_action( 'woocommerce_register_post', 'action_woocommerce_register_post', 10, 3 );
二、实例演示
1、新增一个本站名称的字段
/* 注册表单增加本站名称 */ function salong_add_woo_register_form() { echo '<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wid">'; echo '<i class="icon-wordpress"></i>'; echo '<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="blogname" id="blogname" value="'.$_POST['blogname'].'" placeholder="'.sprintf(__( '请输入本站名称:%s', 'salong' ),get_option('blogname')).'" required="required" />'; echo '</p>'; } add_action( 'woocommerce_register_form', 'salong_add_woo_register_form' );
2、验证本站名称是否正确
/*本站名称验证*/ function salong_add_woo_register_form_validate( $username, $email, $validation_errors ) { if ( $_POST['blogname'] != get_option('blogname') || empty( $_POST['blogname'] ) ) { $validation_errors->add( 'billing_first_name_error', __( '本地名称输入不正确!', 'salong' )); } return $validation_errors; } add_action( 'woocommerce_register_post', 'salong_add_woo_register_form_validate', 10, 3 );
查看下 WooCommerce 注册表单将增加了一个新的字段,提交并验证,效果如图:
通过这个实例也可以增加其它的字段,如果需要一开始用户在注册时都填写好地址,可直接将 WooCommerce 结算表单中的字段直接增加到注册表单字段中。