Skip to content
AtlanticBT Monogram Atlanticbt.com
Menu
January 19, 2012

WordPress – Custom Registration Page

capabilities covered
Amazon Web Services

Here’s a WordPress plugin that will allow you to customize the user registration fields through extra hooks.

Download Custom User Registration plugin Download from WordPress

As taken from the readme file:


Description

Customize the user registration page with additional validated fields.   Hooks right into existing parts of the registration process.

Provides a number of hooks to allow further customization: fields, validation, email header/message/template, custom signup url (if used with other plugins like BuddyPress).

Works with anything using the regular WP register hooks, like BuddyPress and Prospress.


Installation

  1. Upload plugin folder custom-user-access to your plugins directory (/content/plugins/)
  2. Activate plugin
  3. Go to new admin page User Login – ABT and change the registration url, if needed.

Please note that this includes an instance of Singleton and WP_Options_page, both taken from the WP-Dev-Library plugin, so if you are also using that plugin please be aware of potential conflicts. This plugin checks for the existance of those classes before including files, so if you experience any issues you can remove those lines.


Frequently Asked Questions

How do I add extra fields?

  • Use the hook abt_custom_register_fields. Append or replace items in the $fields array with an array of attributes.
  • Specify validation with data-validation. See plugin file for examples of password and name fields.
  • Make sure that, if you’re providing default WP fields, that the field names are correct.
function YOUR_register_fields($fields){
    $fields []= array('name'=>'user_url', 'type'=>'text', 'class'=>'input url', 'size'=>20, 'label'=>'Your Website', 'data-validation'=>'url');
    $fields []= array('name'=>'aim', 'type'=>'text', 'class'=>'input social-client', 'size'=>20, 'label'=>'AIM', 'data-validation'=>'alphanumeric');

    // set name required
    $fields[3]['data-validation'] = array('required', 'string');

    return $fields;
}
add_filter('abt_custom_register_fields', 'YOUR_register_fields');

How do I change the email?

** Headers **:

function YOUR_register_email_headers($headers){
    $headers []= 'Bcc:[email protected]';
    return $headers;
}
add_filter('abt_custom_register_email_headers', 'YOUR_register_email_headers');

** Template **: Just copy email-signup.tpl.php from the plugin folder to your theme folder. Or use the hook abt_custom_login_email_templates.

How do I customize my thank-you message?

On your custom thank-you page, add something like the following:

    // check if we had a successful signup - indicated by a notification in session
        $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL;
        if( false !== strpos($referer, 'action=register')
            || (
                true === ABT_Custom_User_Access::flash_var('notification')
            )){
                ?>
                <p>Thank you for registering!  Please check your email for a confirmation message.</p>
                <?php
                // clear the flash message
                ABT_Custom_User_Access::flash_var(false);
        }

Hooks

  1. abt_custom_login_nometa determine which fields are not treated as usermeta, but instead directly on user table format: pipe-separated, default = '|user_url|display_name|'
  2. abt_custom_login_fields add or remove additional login fields
  3. abt_custom_login_extra_validation apply extra validation, return whether it has errors or not – uses $has_errors, $key, $attr, $post
  4. abt_custom_login_has_errors do something with the errors instead of saving the field
  5. abt_custom_login_email_templates adjust default template names
  6. abt_custom_login_email_headers change default email headers
  7. abt_custom_login_email_message change email message before it’s sent to user
  8. abt_custom_register_url change where the form redirects to on error; not completely working, so please rely on the admin option instead.
  9. abt_custom_register_admin_settings add more admin settings (using WP_Options_Page class)
capabilities covered
Amazon Web Services

The Atlantic BT Manifesto

The Ultimate Guide To Planning A Complex Web Project

Partner With Us

Ready for modern web technology and a sharp, user-friendly design? We want to give you exactly that. Contact us to get started.

Contact

Insights

Atlantic BT's Insights

We’re sharing the latest concepts in tech, design, and software development. Learn more about our findings.

Questions & Answers

Are there differences in application architecture that are important for the cloud?
It is important to build applications and workloads specifically for the cloud. You will want to carefully consider what services the cloud provider of your choice has to offer and how your application leverages those services.
Learn More
Are there any drawbacks to cloud hosting?
Yes, there will always be some risks associated with any hosting option. You are relying on the resiliency and engineering of infrastructure that has scaled at an astounding rate.
Learn More
What’s the benefit of hosting in the cloud vs. traditional options?
Reasons not to host in the cloud are few and far between. If you don't host in the cloud, you will spend more in both CapEx and OpEx to manage your applications or websites in a traditional environment.
Learn More
How can I improve the performance of my application?
There are several primary reasons that applications perform poorly, and in some cases it’s a combination of several. 1) Data latency: If your application is making calls to a data source (whether it’s an API or a direct call) and there is latency at the data provider, your application performance will suffer.
Learn More
Should I move my application to the cloud?
The answer is ‘probably yes’. There aren’t many reasons for an application to be hosted elsewhere, aside from occasional compliance standards, or requirements to integrate with local services that would require large amounts of data to move from on-premise to cloud.
Learn More
Where should my application be hosted?
There are many different options for hosting, but most applications would do well with one of the cloud providers -- Amazon Web Services, Google Cloud Platform, Microsoft Azure.
Learn More