簡體   English   中英

Wordpress / BuddyPress注冊中的自定義電子郵件驗證

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM