[英]Custom Email Validation in Wordpress/BuddyPress Registration
我正在使用WordPress和BuddyPress创建一个网站。 具有.edu电子邮件地址的所有人都可以注册。
如果我使用的是普通WordPress,则使用registration_errors
过滤器非常简单,但这在安装BuddyPress时不起作用。 似乎从未调用过该过滤器。 如果我停用BuddyPress,则效果很好。
根据我的阅读,尽管BuddyPress确实为WordPress默认值以外的其他配置文件字段提供了自定义验证钩子,但您应该对用户名和电子邮件地址等使用标准WordPress钩子。
有没有人遇到这个问题? 我应该使用另一个过滤器或挂钩吗?
看看buddypress \\ bp-members \\ bp-members-screens.php〜L。 49
也许这个钩子? do_action( 'bp_signup_pre_validate' );
或看看buddypress \\ bp-members \\ bp-members-functions.php〜L。 1347
也许这个过滤器? apply_filters( 'bp_core_validate_user_signup', $result );
正确的钩子是bp_signup_validate
。 挂钩函数没有传递任何参数,但是我可以访问全局$ bp对象并对其进行修改以添加自定义电子邮件验证和错误消息:
function validate_email_edu(){
global $bp;
$email = $bp->signup->email;
if ($email){
$tld_index = strrpos($email,'.');
$tld = substr($email,$tld_index);
if ($tld != '.edu'){
$bp->signup->errors['signup_email'] = 'Sorry, you must have a .edu email address to register.';
}
}
}
add_action('bp_signup_validate','validate_email_edu');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.