WordPress Multisite Registration
One of the great features of WordPress Multisite is the way you can let users create their own sites, either for free or with payment.
Allowing users to register on your network and create their own site is very straightforward – all you need to do is enable it in your network settings – but you can improve on the process and the user experience.
This is the third post in our six-part WordPress Multisite masterclass series. In this series, you’ll learn everything you need to know to create your own network, add sites to it or let users add their own, and manage the network. You’ll learn how to ensure your network is secure and high performing and how to create a successful community of users and sites.
In this tutorial, you’ll learn how to set up site registration, then we’ll go through how users can create their own site. We’ll also explore how you can make the screens and the process smoother, and customize the signup messages. Then we’ll look at how to make site creation easier using a plugin.
When you’re ready, let’s start with the basics – enabling site registration.
Enabling Site Registration
Site registration is a feature of Multisite that’s already part of WordPress, so all you need to do to allow it is to make sure it’s enabled. You can do this in the network settings screens.
Go to Network Admin > Settings in the admin screens, to see the Network Settings screen:
The second section on this screen is Registration Settings. By default, user and site registration are switched off – you need to change this. Select the option that works best for your site.
Here are what the options do:
- Registration is disabled: Only network admins or site admins can create new users. Only network admins can create new sites (i.e. site registration by users is switched off).
- User accounts may be registered: People can create a user account on your network but they can’t create a new site (similar to user registration on a standalone site).
- Logged in users may register new sites: Only people with accounts who are logged in can create a site. Use this if you don’t want people to create their own user accounts and sites, but just want to restrict site creation to users you set up. This is useful for a closed system such as a network of sites for a community group or business.
- Both sites and user accounts can be registered: People can create a site and a user account at the same time (or can create a site using their existing user account).
In this part of the course, we’re going to let people create their own user accounts and sites, so select the fourth option, Both sites and user accounts can be registered.
Once you’ve done that, take a look at the next settings:
- Registration notification: keep this checked if you want to be notified every time someone sets up a new site or user account. For a new network, it’s a good idea to do this as it helps you spot spammers or sploggers (people creating spammy blogs). As your network grows you may find it a nuisance to be getting emails all the time, in which case you’ll need to use an anti-splog plugin. We’ll look at those in more detail in the sixth tutorial in this course, which is all about managing your network.
- Add new users: If your network is a public one, or you want to give your site admins freedom to add their own users, you should check this. But if you want more control over the creation of user accounts, leave it unchecked. I like to let my site admins create new users for their sites, so I recommend you to check this.
- Banned names: WordPress adds some banned blog names for you by default but you can add your own. These will equate to the slug for each new site. If you want to add more, type them in here with a space between each. You may want to include your own brand name and any slugs for pages you’ve already created on your site.
- Limited email registrations: If your network is for an organization where everyone has the same domain for their email, you can use this to stop anyone without a relevant email address setting up a site. Type in the domain name without the @. So if your domain name is microsoft.com (for example), typing microsoft.com here will limit site registrations just to people whose email address takes the form email@example.com.
- Banned email domains: Use this to list those email domains you don’t want to receive registrations from. This means that if you added microsoft.com here, no-one with an email address in the form firstname.lastname@example.org would be allowed to create a site or user account. This can be useful if you spot lots of spammy signups coming from one domain name.
Once you’ve amended the settings to enable site registration and added any limited or banned names or email domains, scroll down and click the Save Changes button.
The rest of this screen relates to customizing the signup process, which I’ll come to after we’ve looked at how users create a site.
Registering a Site and User Account
Once you’ve enabled site registration, users can do this by visiting the wp-signup.php page on your site. So if your site is at http://mynetwork.com, they’d visit http://mynetwork.com/wp-signup.php.
Now, I don’t know about you, but I don’t expect users to know that without being told! So the next thing you need to do is add some form of navigation to the signup page.
You can do this in one or more of a few ways:
- Add it to your main navigation menu
- Add a nice big call to action button taking users to it
- Add a link to your footer or sidebar
- Add plenty of links in the text on your home page (and other relevant pages)
- Use a widget for signup (which we’ll come to in a bit).
Depending on your needs and those of your users, it’s a good idea to use more than one of these techniques. But for the sake of simplicity, let’s start by adding a navigation link.
Linking to the Signup Page in Your Navigation Menu
You do this via the Menus admin screen or the Customizer in the main site on your network. Let’s use the Customizer.
Select your main site from the My Sites menu then go to Appearance > Customize to open the Customizer:
Select the Menus tab on the left. Select your main menu or if your site doesn’t already have a menu, create one by clicking the Add a menu button.
Make sure your menu is in the Primary location in your theme (or whichever terminology your theme uses for the main menu):
Once you’ve done that you’ll be able to add items by clicking the Add items button. Do this and then select Custom Links. In the URL field, type http://mynetwork.com/wp-signup.php, where mynetwork.com is the domain name of your site. In the Link Text field, type the text, which will appear in your menu. You can see I’ve done this below:
Click the Add to Menu button and then click the Save & Publish button on the top left. This will save the menu with the link to the signup page added:
Registering a Site
Now that you’ve given your users a link to register their site, all they need to do is click on that link to see the signup page:
As you’re the network admin, you’ll see a message at the top, which other users won’t see. You’ll also see a notification of other sites you’re a member of, and some information on the process.
Let’s log out and create a new site and user account for a completely new user. Log out of your network and refresh the screen (or use that link again to open it):
That’s more like it! As you can see, there are two fields users need to fill out to get started:
- their username (which they get to make up themselves, yay!)
- their email address.
Both of these must be unique, so if someone with that username or email address is already registered on your network they will need to log in and create a new site for themselves.
Note: Once they’ve filled these out, they can choose to register a site or a user account. If they register a site they’ll also have a new user account – they don’t have to do the two separately.
If a user sticks with the default “Gimme a site!” and clicks the Next button, they’ll be taken to the next screen, which asks for information on their new site:
Here, they need to provide a slug for their site, which will be auto-populated with their username, and also provide a site title. They also need to specify whether or not they want the site to be indexed by search engines.
I’m going to change the slug and add a site title, and disable indexing as this is a new site, which I’m not ready for people to see yet. Don’t forget that site admins can change this in their site settings when they’re ready, by going to Settings > Reading.
Finally, click Signup to create the site.
Note: If it looks like nothing’s happening at first, be patient. If you click that Signup button twice you’ll get an error message.
The user will be told that their site is almost ready:
But for security reasons, users need to click a link they’ll be emailed before the site is up and running. Check the inbox for the email address you’ve used for your new account. You’ll get an email that looks something like this:
Click on that link to be taken to a screen with your login details:
You can now view your site or log in as a site admin using the links provided. WordPress will also send the user an email with details of their new site:
And here’s the user’s brand new site, with the Twenty Sixteen theme enabled by default:
Customizing Site Registration
Now you’ve seen how the site registration process works by default. But if you want to you can customize things. Here are the options:
- Customize the welcome email message (the second one) via the network settings screen
- Customize the welcome email for new users who haven’t registered a site via the network settings screen
- Customize the default content for new sites (first post, page and comment) via the network settings screen
- Customize the signup form using a plugin
Let’s start by customizing the welcome email messages, for new sites and new users.
Customizing Welcome Email Messages
Go to Network Admin > Settings and scroll down to the New Site Settings section:
Start by editing the email sent to people who’ve successfully activated a new site. In the Welcome Email field, edit what’s already there. Note that there are a few shortcodes in capitals that it’s a good idea to keep:
- USERNAME: The new site owner’s username
- SITE_NAME: The title of the network (not the new site)
- BLOG_URL: The url of the new site (with a trailing slash)
- PASSWORD: The new user’s password
- LOGINLINK: A link for the user to log in to the network or the site they’ve been added to by a site admin.
Here’s my new text, which I think is more relevant to my site:
Next, let’s edit the email that goes to new users who haven’t registered a site. This contains some similar text but nothing about site administration. Do this in the Welcome User Email field:
Once you’ve edited these emails, click the Save Changes button at the bottom of your screen to save your edits.
Customizing Default Content
By default, WordPress populates each new site in your network with a single post, page, and comment, in the same way as it does for standalone installations. You can change the contents of these. Personally, I don’t think the content is all that helpful, so I like to do that.
To do this, go to Network Admin > Settings, scroll down to the New Site Settings section and skip to the fields after the two email fields we’ve just been working with.
You can use HTML in these fields to add bullet points, links, images and more – get creative!
I’ve edited the default posts in my network to provide more guidance on how posts, pages, and comments work:
Now when someone creates a new site on my network they’ll start with a post, page, and comment with the content I’ve added:
Customizing the Signup Page
If you’re not happy with the signup page, you can customize it with a plugin. Here are a few options:
- Use a signup plugin (here’s a list of 20 top login and registration plugins) to add a signup widget to a widget area in your site such as the sidebar or footer, or a widget area in the main content if your theme has one.
- Use a forms plugin such as Gravity Forms, which lets you create a signup/registration form that powers the signup process. To link your form to the signup process you’ll need the User Registration add-on activated. You can also use the Paypal add-on to enable payment as part of the signup process.
- Use a membership plugin like Pro Sites, that lets you sell sites with custom options.
Let’s take a look at how you would create a custom signup form using Gravity Forms.
Note: Gravity Forms is a premium plugin, and you’ll need a developer licence to use the registration add-on. If you don’t have the budget, stick with the standard WordPress signup screen.
Customizing Signup Using Gravity Forms
You’ll need the plugin installed and activated on your main site – I’ve done this as you can see in the screenshot:
The next step is to create a form. Go to Forms > New Form and create your form. You’ll need to have the following fields as a minimum:
- Email address
- Site title
You can also add other fields such as first name, surname, and a slug for the site, which will be used during the user registration process.
Here’s my form:
Very simple, as you can see! Feel free to add more embellishments to yours if you want.
Once you’ve done that you’ll need to link this form to the user registration process. Go to Forms > User Registration and click the Add New button.
Select the action for your form first, which is Create User. Then select the form you’ve just created from the list you’re provided with.
More fields will then be displayed:
From the dropdown lists, select the fields for your form that are to be used in the user and site reaction process. Then scroll down to the Network Options section and check the Create Site option:
This will display additional fields relating to the site creation process. Again, select the relevant fields from the dropdown boxes. If at this point you decide you want to tweak your form or add more fields to it that’s fine, just save what you’re doing on this screen, return to the form and then come back again to edit this.
Scroll down to the Additional Options and check User Activation. This enables the user activation email and will enhance security on your network. Finally, click the Save button to save the user registration feed.
Now, all you need to do is add the form to your site. Gravity Forms gives you a widget you can use in your sidebar or footer, or you can add it to your homepage. Alternatively, you could create a new page just for registration, which is an improved version on the standard wp-signup screen. I’m going to add it to my sidebar.
You can add widgets via the Widgets screen or the Customizer. I’m going to use the Customizer. Go to Appearance > Customize and select Widgets. Choose the widget area you’re working with and click Add a Widget. Select the Forms widget:
Then select the form you want to use and edit the title:
Finally, click Save & Publish to save your widget. You’ll now see the signup form on the site:
Right now, my homepage is set as my blogs page and isn’t very helpful, so I’m going to change my homepage to a static page to encourage people to sign up. Here’s the improved version:
If I wanted to, I could add that form to my homepage or another page, instead of or as well as the widget area, using the button for adding a new form which Gravity Forms gives you in the page and post editing screen. Now my users have an easy to access form which they can use to create their site.
I could also install the Paypal add-on for gravity forms and require people to pay for their site if I wanted to. An alternative way to do that is to use the Pro Sites plugin, which lets you configure multiple options for paid network membership and site creation.