web-dev-qa-db-ja.com

登録後にbuddypressユーザーにプロフィールの入力を強制する方法は?

他のネットワークでは論理的に見えますが、buddypressではなく:(

私達はみんなbuddypressの拡張ユーザープロファイルを知っています - いくつかのフィールドが必須としてマークされていても、問題はbuddypress開発者にとって本当の意味を持たないようです。それで、私達はいくつかの "必須"フィールドを持っています。

問題は...新しく登録されたユーザーに、拡張ユーザープロファイルの必須フィールドすべてに最初に入力させるには、どうすればよいのでしょうか。

彼が名前、名前、電子メールで登録するように彼がログインすると、彼は彼が最初にサイト上のあらゆるコンテンツを見ることができるようになる前に、彼が最初に他の全ての欠けている必須ファイルを完成しなければならないページ/スクリーンを提示される!!

どのようにこれを達成するためのアイデアをお持ちですか?それは私が私が解決策を探すと思う1年以上です... :-(

3
Carry

カスタムのbuddypressユーザーのメタデータが完全に入力されていない場合は、wp_redirect()admin_url()を使用してユーザーを自分のプロフィールページにリダイレクトします。

別の答えから、私は次の関数があることを見ました:bp_get_profile_field_data()。ですから、あなたは簡単にテンプレートタグを作成することができます。それはあなたに完全なバディユーザーメタデータセット、あるいは単にFALSEを与えることを可能にします。

FALSEが返ってきたら、ユーザーをリダイレクトできます。 get_user_metadata-フックでは、すでにグローバルな$current_userセットを持っているので、template_redirect-フックでリダイレクトを行うことができます。

function wpse57054_is_buddy_complete( $buddy_user_fields = array() )
{
    // convert single field keys to arrays
    $buddy_user_fields = (array) $buddy_user_fields;

    foreach ( $buddy_user_fields as $buddy_user_meta )
    {
        $data = bp_get_profile_field_data( array( 
            'field'   => $buddy_user_meta,
            'user_id' => wp_get_current_user()->id,
        ) );
        // One field empty/not filled: Abort and return FALSE
        if ( empty( $data ) )
            return false;
    }

    // Return the whole data set
    return $data;
}
5
kaiser

自分では使用しませんが、PROバージョンの BuddyPress Group-O-Matic の機能の1つは、自分のプロフィールが完成していないとメンバーがBPサイトをナビゲートできないことです。

室温。

1
rtd2

あなたが代わりに登録ページにこれらのフィールドを置くべきであるように聞こえます、そうすれば彼らがあなたにこの情報を与えるまで彼らがユーザ名またはパスワードさえ得ないように。

そうでなければ、それはあなたとユーザーの両方にとって苦痛になります。

1
Tyler Carter

リポジトリに自分のプラグイン BP Force Profile をリリースしました。

Buddypressユーザーに、自分のプロファイルの必須フィールドへの入力を強制するためのプラグイン。完全なプロファイルを持たない各ユーザーは、自分のプロファイルページにリダイレクトしており、必要なフィールドと共に通知が表示されます。

0
rc183