Only require name and email address at membership checkout in Paid Memberships Pro

Only require name and email address at membership checkout in Paid Memberships Pro on child sites.

Snippet Type

Execute on Child Sites

Snippet

 * Hide the Account Information section
 */
function simple_checkout_hide_account_information_section( $skip_account_fields, $current_user ) {
	if ( empty( $current_user->ID ) ) {
		$skip_account_fields = 1;
	}
	return $skip_account_fields;
}
add_filter( 'pmpro_skip_account_fields', 'simple_checkout_hide_account_information_section', 10, 2 );

/**
 * Don't load any of the Billing Information fields
 */
function simple_checkout_remove_billing_address_fields( $include ) {
	return false;
}
add_filter( 'pmpro_include_billing_address_fields', 'simple_checkout_remove_billing_address_fields' );

/**
 * Don't require some Account Information fields
 */
function simple_checkout_unset_required_user_fields( $pmpro_required_user_fields ) {
	unset( $pmpro_required_user_fields['username'] );
	unset( $pmpro_required_user_fields['password'] );
	unset( $pmpro_required_user_fields['password2'] );
	unset( $pmpro_required_user_fields['bconfirmemail'] );

	return $pmpro_required_user_fields;
}
add_filter( 'pmpro_required_user_fields', 'simple_checkout_unset_required_user_fields', 10, 2 );

/**
 * Add the required User Fields
 */
function simple_checkout_name_email_only_signup_pmpro_init() {
	// Return early if the user is logged in.
	if ( is_user_logged_in() ) {
		return;
	}

	// Don't break if PMPro is out of date or not loaded.
	if ( ! function_exists( 'pmpro_add_user_field' ) ) {
		return false;
	} 
	
	// Store our field settings in an array.
	$fields = array();
	$fields[] = new PMPro_Field(
		'bfirstname',
		'text',
		array(
			'label' => 'First Name',
			'profile' => false,
			'required' => true
		)
	);
	$fields[] = new PMPro_Field(
		'blastname',
		'text',
		array(
			'label' => 'Last Name',
			'profile' => false,
			'required' => true
		)
	);
	$fields[] = new PMPro_Field(
		'bemail',
		'text',
		array(
			'label' => 'Email Address',
			'profile' => false
		)
	);
	$fields[] = new PMPro_Field(
		'bconfirmemail_copy',
		'hidden',
		array(
			'label' => ' ',
			'value' => '1',
		)
	);

	// Add a field group to put our fields into.
	pmpro_add_field_group( 'Account Information' );

	//add the fields into a new checkout_boxes are of the checkout page
	foreach ( $fields as $field ) {
		pmpro_add_user_field(
			'Account Information',
			$field
		);
	}
}
add_action( 'init', 'simple_checkout_name_email_only_signup_pmpro_init' );

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.