サポート » プラグイン » 2種類の会員制度の作り方について

  • 解決済 hiro3

    (@hiro3)


    当方技術者ではないので、PHPには詳しくなく、できればプラグインなどで実現しようと思っているのですが、

    現在会員Aという寄稿者グループがありまして、プロフィールは、「Cimy User Extra Fields」というプラグインを使って、フィールドを増やしてあります。

    今回、会員Bというカテゴリーを増やしたいという意向があり、困っています。
    そこで質問ですが、
    (1)会員BはAの上位会員で、Bに一気に登録すればAにも同時になるようにしたい。
    (2)会員Bは登録項目が増えて、Aにいくつか登録項目を増やしたものにしたい。

    というようにしたいということで、
    可能ならば、管理画面のプロフィール登録ではなくて、わかりやすく入力フォームで登録させたいと思っています。

    初めから会員Bになる人には、全部入力できるフォームのURLをご案内する。
    既に会員Aで、その後Bになる人には、Aで入力した内容が入った項目(できれば修正もできるようにしたい)プラス、追加の空欄の項目の入力フォームのURLをご案内。

    会員AとBは、ワードプレス上ではどちらも寄稿者で良いのです。
    ですので、そもそもプロフィールの登録項目を変えることができるのかどうか。
    (Aは余分な項目は見えないような形でもよい)
    AからBに昇格する時に、追加するような形ができるかどうか。
    全く想像が付きません。

    このような2段階の会員制度というのを実現するのは可能でしょうか?
    やはりプラグインではなくて、PHPを組まないとできないのか、
    あるいはワードプレスでは無理なのか。
    道筋だけでもお教えいただけたらと思います。
    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター jim912

    (@jim912)

    hiro3さん、こんにちは。

    上位会員というのが具体的にどう異なってくるか、昇格をする方法などが分からないため、見当はずれになるかもしれませんが、User Role Editorなどのプラグインを使って、寄稿者同等の権限グループを新たに追加し、昇格する際は権限グループを変更することで対応できるかもしれません。

    トピック投稿者 hiro3

    (@hiro3)

    お返事ありがとうございます。
    User Role Editorの機能を見てみたのですが、権限が増えるか減るかになるということですよね。
    会員Aも会員Bも権限は同じで構わないのですが、プロフィールの項目数を変えることはできるのでしょうか。
    現在、管理者であろうと、寄稿者であろうと、プロフィール項目は全く同じなので、
    権限グループを新たに追加しても構わないのですが、項目数が変わらないといけないのです。
    User Role Editorの機能を見てみても、そのことは書いてなくて、たぶんできないのではないかと思います。
    引き続き何か情報があれば、よろしくお願いします。

    jim912さんの方法がいいと思います。

    寄稿者同等の権限グループを新たに追加し、昇格する際は権限グループを変更することで対応

    とある通り、上記で示されている方法は、寄稿者と全く同じことができる別の権限グループ(例えば特別寄稿者/supercontributorという名前にする)を作るのです。

    ユーザに寄稿者か特別寄稿者を選んでもらって、
    current_user_can( $capability );という関数を使って条件分岐で、プロフィールの項目を表示させたりさせなかったり、ということをプロフィール表示用のプラグインに書き込むということではないでしょうか。

    トピック投稿者 hiro3

    (@hiro3)

    ShinichiNさん お返事ありがとうございました。
    jim912さんとShinichiNさんのやり方で、一度やってみて、わからなかったらまたご質問させていただこうと思います。
    ありがとうございました。

    トピック投稿者 hiro3

    (@hiro3)

    User Role Editor を入れて、ユーザー権限を新たに設けました。
    そこで、
    会員Aは従来の寄稿者、会員Bは新しい寄稿者Bと設定し、
    ユーザー登録の画面を2種類作ることは可能なのでしょうか。

    会員A用のデザインAの入力フォームには、登録項目が1~5まで表示させ、登録ボタンを押すと、権限が自動的に「寄稿者」として登録される。
    会員B用のデザインBの入力フォームには、登録項目が1~10まで表示させ、登録ボタンを押すと、権限が自動的に「寄稿者B」として登録される。

    というのも、画面に表示させる文章などもできれば変えたいので、
    こういうやり方を取れればと思っています。

    PHPはそれほど書けないので、できればプラグインがあるといいのですが。
    よろしくお願いします。

    マルチサイトですか?

    であれば、wp-signup.phpのshow_user_form()の最後にあるsignup_extra_fieldsというアクションで項目を足せます。

    それで、トップページとかからのURLを、wp-signup.php?role=aとかwp-signup.php?role=bにしておいて、登録項目6~10については、if ($_GET['role'] == 'b' ) {}で括って寄稿者Bの時だけ表示させるのはどうですか?

    次に、同じくwp-signup.phpの中にあるvalidate_user_signup()関数の途中にあるadd_signup_metaフィルターでメタデータが渡せるので、これに

    function rocknrole() {
    	if( $_GET['role'] == 'a' ){
    		$meta = array(
    			"new_role" => 'subscriber'
    		)
    	} elseif( $_GET['role'] == 'b' ){
    		$meta = array(
    			"new_role" => 'subscriberb'
    		)
    	}
    	return $meta;
    }

    という関数をフックすると権限もわけられると思います。
    (未検証&セキュリティ考えてないです)

    画面に表示させる文章を変えるのは、やりかた分かりません。

    トピック投稿者 hiro3

    (@hiro3)

    こういうやり方はマルチサイトになるわけですか。
    サーバーが対応していないのではないかと思うので、マルチサイトはやめておきます。

    意外に難しいんですね。
    入力する人の動きを考え直して、もう少し根本的に考え直してみます。
    ありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「2種類の会員制度の作り方について」には新たに返信することはできません。