Create Individual Registration Forms using Multiple Registration in Drupal 8

If a user needs to create an account on a Drupal site, they go to the user registration page at “/user/register”. This page is the registration form on a Drupal site. You can customize it by adding or removing fields. But what if you want to have multiple registration pages?

Let’s say you have two different roles on your Drupal site and you need a separate form for each role. How would you build that?

You could handle all of this writing custom code but remember we’re using Drupal so means there’s a module that can handle this type of functionality and It’s called Multiple Registration.

The Multiple Registration module allows you to create individual registration forms base off a user role in Drupal. When you register on one of the forms, you’re automatically assigned the configured role.

2018-05-14_22-28-00

In this tutorial, you’ll learn how to use Multiple Registration to create individual registration forms.

Installing the module

Download and enable the module with your preferred method.

Composer:

composer require drupal/multiple_registration

Drush:

drush dl multiple_registration -y

After downloading the module, click Extend in the toolbar and install it.

Enabling the Multiple Registration module

Create User Roles

The Multiple Registration module requires additional roles in order to display a customized registration form to each role. For the purpose of this tutorial, we’ll work with the example of a high school site with a registration form for parents and another for students.

The form for parents will have a field requiring information about payment methods and a billing address, while the form for students won’t have those fields, but instead of that will have a select list to vote for a sports team.

Click People, Roles, “Add role” in order to create the “Parent” role.

Creating roles

Repeat the process and create a “Student” role. After you’ve created the roles click the dropdown arrow next to the Parent role and choose “Add own registration page”.

Adding own registration page

You’ll be prompted to create a path for the Registration page for this particular role. For example, you could add “user/parent” as the path.

Creating the registration page path

Create also a registration page for the other role (in this case “Student”).

Configure Registration Forms

Now that you’ve created the roles, it’s time to configure the registration form for each one.

1. Click Configuration, “Account Settings”, “Manage fields” and click the “Add field” button.

2. Choose the “List(text)” option and label it “Payment method”.

Enter in a few options into “Allowed values list” and set the “Allowed number of values” to Unlimited, since a parent can have more than one payment method and click “Save field settings”.

1|Cash
2|Credit Card
3|Check
4|Other

List key-value pairs

You’ll be redirected to the Edit tab, scroll down to the bottom of the page and check “Users with Parent role”. This configuration is provided by the Multiple Registration module. Click “Save settings”.

Assigning fields to a role

Add another text field for the Billing address and assign it to the Parent role.

Lastly, add a list field for a sports team election, this one will be limited to one choice. In the Edit screen of this field check “Users with Student role” and click “Save settings”.

Assigning fields to a role

Test New Registration Forms

Click “Log out” on the right of your screen and click “Log in” on the same spot once again. You will see two new tabs corresponding to the roles we’ve previously created.

If you can’t see the tabs then you’ll need to rebuild the site cache. Go to Configuration, Performance and click “Clear all caches”.

Check each form and make sure the fields were assigned properly to each form.

Checking the fields in each registration form

Summary

The Multiple Registration module provides the ability to create different registration forms without having to write code. Best of all, the role configured in the form is automatically assign when a user registers. This will save you time because you want have to manually assign a role.

About The Author

16 thoughts on “Create Individual Registration Forms using Multiple Registration in Drupal 8”

  1. ‘@Jorge Montoya:

    You can also “hijack” or “override” the page at /user/register by creating a page and setting it’s page to /user/register. You can then create a page with icons that link to the various registration paths. This also has the benefit of disabling the original registration link that creates a generic account.

      1. Hi I love your videos on YouTube,
        I use multiple registration module but, when I log out and try to create new account it says can not send the email if the problem persists contact admin,

        Can you help me to figure it out what’s going on

        1. Hi Daniel,

          That means that your server can’t send an email which is beyond the scope of this tutorial.

          You can start debugging it by googling “drupal 8 can’t send email”

          Cheers,
          Ivan

  2. Gilbert Chouity

    Hi!
    Thanks for this short yet brilliant tutorial.
    One question : how about “Multiple Registration Welcome Emails”?
    What’s the lighter and best solution to send custom email messages per registration type? Use Rules module maybe?

      1. Hi Ivan,
        Well, that’s annoying.
        As I am quite a newbie in Drupal, what do you advise me to do to have specific welcome e-mails sent per role ?
        – Keep on using Multiple Registration, assuming the Rules issue mentionned above will be solved soon (in Beta)?
        – Consider another solution?
        Thanks for your help.

        1. Hello Gilbert,
          you can configure the webform module to send a particular email with some basic logic handling each time a condition is met in the registration form. You wouldn’t use the Multiple Registration module in that case and therefore you should assign roles manually.

  3. Can this be configured to produce the login and register blocks on the same page? I found docs on how to do it in Drupal 7, but not 8. Thanks!

    1. Hi Rex,

      The Profile module allows users to have different profiles, which are fieldable entities.

      This module just focuses on creating registration forms for different roles and that’s it.

      Cheers,
      Ivan

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top