[英]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.