AI要約
特定の条件に基づいてWordPressでユーザーロールを条件付きで割り当てる方法について考えたことはありますか?これは、ユーザーのアクション、メンバーシップのステータス、またはその他の基準に基づいて固有のロールが必要なサイトに非常に役立ちます。
WPFormsとUser Registrationアドオンはフォーム作成のための強力なツールですが、特定の条件に基づいてユーザーロールを動的に割り当てる必要がある場合もあります。
このガイドでは、WPFormsを使用してWordPressでユーザーロールを条件付きで割り当てる方法を説明します。
WordPressのユーザーロールと権限の理解
WordPressにはいくつかの組み込みロールがあります。以下に、WordPressがサポートするデフォルトのユーザーロールを強調表示します。
- 管理者: サイトのバックエンドへのフルアクセス。このロールは、新しいユーザーの追加、ユーザーロールの編集、プラグインやテーマのインストールなどのアクティビティを実行できます。
- 編集者: 他の人が書いたコンテンツも含め、コンテンツを管理および公開できます。このロールは、投稿関連のアクティビティに限定されることがよくあります。
- 投稿者: WordPressの投稿者ロールを使用すると、ユーザーは自分の投稿のみを公開および管理できます。
- 寄稿者: WordPressでは、寄稿者ロールは自分の投稿を書き、管理できますが、公開することはできません。
- 購読者: アクセスが制限されており、通常は閲覧またはコメント用です。
各ロールには、ユーザーができることとできないことを決定する一連の「権限」があります。サイトへの登録時にユーザーがどのような権限を取得するかを知るために、WordPressのユーザーロールの権限に慣れておくことが重要です。WordPressのユーザーロールと権限についてさらに詳しく知りたい場合は、WPBeginnerのガイドを確認することをお勧めします。
WordPressで条件付きでユーザーロールを割り当てる方法
WordPressでユーザーロールを条件付きで割り当てるためのステップバイステップの手順は次のとおりです。
ステップ1: WPFormsプラグインのインストールと有効化
WPFormsは、WordPressで基本的なフォームと高度なフォームを作成するための最適なプラグインです。
シンプルなコンタクトフォームから、条件付きロジックのようなより高度な機能まで、複数のサイトでうまく機能した信頼できるツールです。
WPFormsのProライセンスには、WordPressサイトで登録フォームとログインフォームを作成できるUser Registrationアドオンへのアクセスが含まれています。
Proライセンスを購入したら、WordPressサイトにWPFormsをインストールして有効化する必要があります。初めての場合は、このガイドを確認してWPFormsのインストール方法を学んでください。
ステップ2: User Registrationアドオンのインストールと設定
WPFormsプラグインをインストールした後、User Registrationアドオンもインストールする必要があります。
アドオンをインストールするには、WordPress管理画面に移動し、WPForms » Addonsにアクセスしてください。次に、User Registration Addonが見つかるまで下にスクロールするか、検索バーを使用します。見つけたら、Install Addonをクリックします。
サイトにUser Registrationアドオンをインストールして有効化したら、登録フォームの作成に進みます。
フォームの作成
フォームをゼロから作成することも、User Registrationフォームテンプレートを使用してフォーム作成プロセスをスピードアップすることもできます。このチュートリアルでは、User Registrationフォームテンプレートを使用します。このテンプレートにアクセスするには、WPForms » Add Newに移動します。次に、サイドバーメニューからAddon Templatesを選択します。
ここから、User Registration Formテンプレートの下にあるUse Templateボタンをクリックします。
これによりフォームビルダーに移動し、テンプレートをさらにカスタマイズできるようになります。
フォームビルダーで、フォームに選択肢フィールドを追加します。このチュートリアルでは、2つのオプション(TeacherとStudent)を持つドロップダウンフィールドを追加します。
また、Requiredオプションを有効にして、ユーザーが登録時にアカウントタイプを選択する必要があるようにします。
ドロップダウンフィールドのIDをメモしておきます。次のステップで必要になります。
フィールドを追加し、フィールドオプションをカスタマイズしたら、Settings » User Registrationに移動して、アドオンの追加設定にアクセスします。
User Registrationフォームテンプレートを使用した場合は、すべてのフィールドマッピングが完了しています。ただし、登録フォームをゼロから作成した場合は、フォームフィールドをWordPressユーザーメタデータにマッピングする必要があります。
デフォルトでは、User RolesセクションはSubscriberに設定されています。このロールの割り当てについては、今は心配する必要はありません。これは条件付きロジックを使用して処理されるためです。ただし、スニペットがサイトで正しく機能しない場合に割り当てられるデフォルトのロールであることを覚えておいてください。
フォームのカスタマイズが完了したら、必ずSaveボタンをクリックして変更を保存してください。
ステップ3: ユーザーロールを条件付きで割り当てるためのスニペットの追加
WPFormsは現在、他のフィールドからの入力に基づいてユーザーロールを割り当てることをデフォルトではサポートしていません。ただし、カスタムPHPスニペットを使用すると、フォームの入力に基づいて条件付きでユーザーロールを割り当てるように登録フォームをカスタマイズできます。
この例では、登録フォームに追加したドロップダウンフィールドをチェックするように設定します。ユーザーがアカウントタイプとしてTeacherを選択した場合、ユーザーにEditorロールを割り当てます。Studentを選択した場合、スニペットはAuthorロールを割り当てます。
続行するには、以下のスニペットをコピーしてサイトに貼り付けてください。スニペットをサイトに追加するには、WPCode プラグインの使用をお勧めします。このプラグインを使用すると、WordPressサイトにカスタムコードスニペットを簡単に、functions.php ファイルを編集したりサイトを壊す心配をしたりすることなく追加できます。
WPCode プラグインの使用方法の詳細については、WordPressにカスタムスニペットを追加する方法のチュートリアルをご覧ください。
コードの説明
上記のスニペットは、ユーザーが登録フォームを送信した後にユーザーデータをキャプチャするために wpforms_user_registration_process_registration_get_data フィルターを使用します。フォーム内のドロップダウンフィールドを確認し、ユーザーの入力に基づいてロールを割り当てています。
スニペットは、IDが 13 のフォームでのみ機能するように設定しました。これは私の登録フォームのIDに対応します。このIDは、お使いのフォームのIDに合わせて更新する必要があります。フォームのIDを取得するには、WPForms » すべてのフォーム に移動し、ショートコード列を確認してください。ショートコード内の数字がフォームのIDです。
また、コード内の $role_field_id 変数(ドロップダウンフィールドのID)は 6 に設定されています。これも、お使いのドロップダウンフィールドのIDに合わせて置き換える必要があります。以前にドロップダウンフィールドのIDをメモするように依頼したことを思い出してください。ここでその値を使用します。
$role_mapping 配列は、ドロップダウンフィールドの値のマッピングを定義する場所です。Teacher は WordPress の Editor ロールにマッピングされ、Student オプションは Author ユーザーロールにマッピングされます。登録フォームのオプション数に応じて、さらにキーと値のペアを追加できます。
プロのヒント
上記のスニペットの Student および Teacher フィールドマッピングは、登録フォームのカスタマイズ時にドロップダウンフィールドで指定したオプションに対応します。ドロップダウンフィールドのオプションが私のものと異なる場合は、フォームで使用した値と一致するように $role_mapping 配列のキーペアを更新してください。
スニペットでマッピングするために、ユーザーロールに関連付けられたスラッグを使用します。たとえば、「editor」は WordPress の Editor ロールに対応します。以下に、デフォルトの WordPress ユーザーロールとそのスラッグをハイライト表示します。
- 管理者 – ‘administrator’
- 編集者 – ‘editor’
- 投稿者 – ‘author’
- 寄稿者 – ‘contributor’
- 購読者 – ‘subscriber’
ステップ4: ユーザーロールを条件付きで割り当てるためのフォームのテスト
スニペットを追加した後の次のステップは、ユーザーに展開する前にフォームが正しく機能することを確認するためにテストすることです。このために、ユーザーロールが動的に設定されているかを確認するために、テストエントリを送信することをお勧めします。
私のフォームでテスト登録を行い、アカウントタイプフィールドを Teacher に設定します。
次に、WordPress 管理エリアでユーザーアカウントを確認するには、ユーザー » すべてのユーザー に移動します。ここに、サイト上のすべてのユーザーアカウントが表示されます。登録フォームを完了したときに Teacher を選択したため、テストユーザーのロールは動的に Editor に設定されています。
フロントエンドでユーザーに役割を選択させる場合、ユーザーがどのオプションを選択するかを制御できないことに留意してください。たとえば、私たちの実装では、学生は依然として教師アカウントタイプを選択でき、フォームは引き続き送信されます。
登録フォームへのアクセスを制限するには、Form Lockerアドオンを使用できます。これにより、特定のパスワードを持つユーザーのみがフォームにアクセスできるようになります。
または、フォームビルダーの設定 » ユーザー登録に移動して、登録フォームのユーザーアクティベーションを有効にすることもできます。次に、ユーザーアクティベーションを有効にするオプションをオンにし、手動承認メソッドを選択します。
これにより、サイト管理者は各ユーザー登録を手動でレビューし、要件を満たしている場合にユーザーアカウントを承認します。アカウントを承認する前に、ユーザーが正しいアカウントタイプを選択したかどうかを確認できます。
関連記事:ファイルアップロードのセキュリティ:オンラインフォームのためのトップヒント
ステップ5: WordPress登録フォームの公開
最後に、登録フォームをページに追加しましょう。これを行うには、フォームを編集してフォームビルダーにアクセスします。次に、フォームビルダーページの右上隅にある埋め込みボタンをクリックします。
新しいページまたは既存のページにフォームを公開するオプションがあります。このガイドでは、新しいページを作成オプションを選択します。
新しいページに名前を付けて、開始をクリックします。
WordPressのページエディターにリダイレクトされ、ページにフォームが埋め込まれます。ページを公開するには、公開ボタンをクリックします。
このページをフロントエンドで確認すると、完全に機能するユーザー登録フォームが表示されます。フォームをショートコードまたはウィジェットを使用して埋め込むことも可能であることに注意してください。
よくある質問 – 条件付きでユーザーロールを割り当てる方法
これらは、WordPressで条件付きでユーザーロールを割り当てることについて、よく寄せられる質問への回答です。
条件付きで複数のユーザーロールを割り当てることができますか?
いいえ、WordPressのコアではデフォルトで1ユーザーにつき1つのロールしかサポートされていません。ただし、User Role Editorのようなプラグインを使用して、複数のロールを手動で割り当てることができます。
条件付きユーザーロール割り当てを実装すると、既存のユーザーに影響がありますか?
いいえ、これはWPFormsを介した新しいユーザー登録にのみ影響します。既存のユーザーのロールは変更されません。
WordPressでカスタムユーザーロールを作成するにはどうすればよいですか?
これを実現する最も簡単な方法は、WordPressプラグインを使用することです。Membersプラグインを使用すると、サイトに新しいユーザーロールを追加し、各ロールの機能をカスタマイズできます。作成した新しいロールは、WPFormsのUser Registrationアドオンをカスタマイズする際に、User Rolesドロップダウンに表示されます。
スニペットがサイトで機能しないのはなぜですか?
これは、フォームIDまたはフィールドIDが登録フォームのものと一致しない場合に発生する可能性があります。スニペットをフォームとフィールドIDで更新してください。
また、ドロップダウンフィールドのオプションがスニペットで指定されたロールと一致しない場合、WPForms はユーザー登録アドオンの設定時に指定されたデフォルトのロールをユーザーに割り当てます。
次に、登録フォームのスタイルをカスタマイズする
これで、フォームのフィールドからの入力に基づいて動的にユーザーロールを割り当てる、機能的な登録フォームが完成しました。サイトのフロントエンドに登録フォームを表示する方法を説明しましたが、さらに一歩進んでフォームを美しくすることもできることをご存知でしたか? WPForms を使用すると、CSS を記述せずに WordPress フォームをスタイル設定できます。
また、サイトのロゴでブランド化されたカスタムログインページを作成して、ユーザーがアカウントにログインできるようにすることもできます。
フォームの作成準備はできましたか?最も簡単なWordPressフォームビルダープラグインで今日から始めましょう。WPForms Proには多くの無料テンプレートが含まれており、14日間の返金保証が付いています。
この記事がお役に立った場合は、FacebookとTwitterでフォローして、WordPressの無料チュートリアルやガイドをさらにご覧ください。