Multiple Registration Forms

Create multiple registration forms with different fields for different user types.

Create multiple registration forms by defining different names on each registration shortcode. Registration form name for each user will be stored in database. Whenver you are using login,profile or search forms for specific users, you need to consider the form name used in registration.
[upme_registration name='Your Form Name' ]

Allows Selected Fields on Registration

You can customize the registration fields for each form by allowing selected fields from the all registration fields. Following example limits the registration fields to first and last names apart from the predefined fields such as username, email, password.
Filter

– upme_custom_registration_fields

Parameters

– Registration field array, Various parameters( user_role => ‘User Role defined for registration’ , form_name => ‘Form name of registration’ , sidebar_class => ‘Sidebar CSS class’)

Usage
add_filter( 'upme_custom_registration_fields','upme_custom_registration_fields',10,2);
function upme_custom_registration_fields($fields , $params){

	switch($params['form_name']){
		case 'author_registration':
			$filter_fields = array('type' => 'allow', 'fields' => array('first_name','last_name'));
			$fields = upme_traverse_registration_fields( $fields, $filter_fields);
			break;
	}

	return $fields;
}

function upme_traverse_registration_fields($fields, $filter_fields){
	foreach ($fields as $key => $field) {
		switch ($filter_fields['type']) {
			case 'allow':
				if(! in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
			case 'remove':
				if(in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
		}
	}
	return $fields;
}

Remove Selected Fields from Registration

You can customize the registration fields for each form by removing selected fields from the all registration fields. Following example removes first and last names from registration fields.
Filter

– upme_custom_registration_fields

Parameters

– Registration field array, Various parameters( user_role => ‘User Role defined for registration’ , form_name => ‘Form name of registration’ , sidebar_class => ‘Sidebar CSS class’)

Usage
add_filter( 'upme_custom_registration_fields','upme_custom_registration_fields',10,2);
function upme_custom_registration_fields($fields , $params){

	switch($params['form_name']){
		case 'author_registration':
			$filter_fields = array('type' => 'remove', 'fields' => array('first_name','last_name'));
			$fields = upme_traverse_registration_fields( $fields, $filter_fields);
			break;
	}

	return $fields;
}

function upme_traverse_registration_fields($fields, $filter_fields){
	foreach ($fields as $key => $field) {
		switch ($filter_fields['type']) {
			case 'allow':
				if(! in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
			case 'remove':
				if(in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
		}
	}
	return $fields;
}

Add User Defined Fields to Registration

You can customize the registration fields for each form by adding new fields, which are not available on custom fields list. Following example adds a user defined field called ‘Invitation Code’ to registration fields.
Filter

– upme_custom_registration_fields

Parameters

– Registration field array, Various parameters( user_role => ‘User Role defined for registration’ , form_name => ‘Form name of registration’ , sidebar_class => ‘Sidebar CSS class’)

Usage
add_filter( 'upme_custom_registration_fields','upme_custom_registration_fields',10,2);
function upme_custom_registration_fields($fields , $params){

	switch($params['form_name']){
		case 'subscriber_registration':
			$invlitation_code = array(
	            'type' => 'usermeta',
	            'icon' => 'user',
	            'field' => 'text',
	            'name' => 'Invitation Name',
	            'meta' => 'invitation',
	            'meta_custom' => '',
	            'social' => 0,
	            'can_edit' => 1,
	            'allow_html' => 0,
	            'can_hide' => 1,
	            'private' => 0,
	            'required' => 0,
	            'show_to_user_role' => 0,
	            'edit_by_user_role' => 0,
	            'show_in_register' => 1,
	            'help_text' => '',
	            'choices' => '',
	            'predefined_loop' => 0,

								);
			array_push($fields,$invlitation_code);
			break;
	}

	return $fields;
}

function upme_traverse_registration_fields($fields, $filter_fields){
	foreach ($fields as $key => $field) {
		switch ($filter_fields['type']) {
			case 'allow':
				if(! in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
			case 'remove':
				if(in_array($field['meta'], $filter_fields['fields'])) {
					unset($fields[$key]);
				}
				break;
		}
	}
	return $fields;
}

Get your copy of User Profiles Made Easy on CodeCanyon