-4

Buddypress/wordpress を使用していますが、.pl、.ru、.asia などのドメイン拡張子を禁止したいと考えています。メールドメインでは機能しますが、拡張機能では機能しない次の機能を試しました。

function my_bp_ban_domains( $result ) {
    $banned = array('.ru', '.pl');
    $error = 'God catch you brah !!!, Spammers are not welcome here, try your luck elsewhere.';
    $email = $result['user_email']; 
    $domain = array_pop(explode('@', $email));
    if ( in_array($domain, $banned)) {
        $result['errors']->add('user_email', __($error, 'my_bp_ban_domains' ) );
    };
    return $result;
}

add_filter( 'bp_core_validate_user_signup', 'my_bp_ban_domains' );
4

1 に答える 1

2

以下はうまくいくはずです。さらに進んで、次を使用してドメインを分割し.、配列の最後の項目を取得します。

function my_bp_ban_domains( $result ) {
    $banned = array('ru', 'pl');
    $error = 'Your email domain has been the source of spam. Please use another email address.';
    $email = $result['user_email']; 
    $domain = array_pop(explode('@', $email));
    $ext = array_pop(explode(',',$domain));
    if ( in_array($ext, $banned)) {
        $result['errors']->add('user_email', __($error, 'my_bp_ban_domains' ) );
    };
    return $result;
}

お知らせ$banned = array('ru', 'pl');を少し変更(先頭のドットを削除)

于 2013-01-25T16:05:01.183 に答える