Hi Jeff,
Theoretically you could write a piece of code to make the two compatible, however, for it to work correctly it’s just to much work for something that’s an edge case.
You can use this code to register users via out register form with the same email address, however, I do not know how this impacts the password reset or edit profile forms:
/*
* Remove the email validation for email already exists.
*/
function wppb_allow_multiple_accounts_email( $message, $field, $request_data, $form_location ){
global $wpdb;
if ( ( isset( $request_data['email'] ) && ( trim( $request_data['email'] ) == '' ) ) && ( $field['required'] == 'Yes' ) )
return wppb_required_field_error($field["field-title"]);
if ( isset( $request_data['email'] ) && !is_email( trim( $request_data['email'] ) ) ){
return __( 'The email you entered is not a valid email address.', 'profilebuilder' );
}
if ( empty( $request_data['email'] ) ) {
return __( 'You must enter a valid email address.', 'profilebuilder' );
}
$wppb_generalSettings = get_option( 'wppb_general_settings' );
if ( is_multisite() || ( !is_multisite() && ( isset( $wppb_generalSettings['emailConfirmation'] ) && ( $wppb_generalSettings['emailConfirmation'] == 'yes' ) ) ) ){
$user_signup = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->base_prefix."signups WHERE user_email = %s", $request_data['email'] ) );
if ( !empty( $user_signup ) ){
if ( $form_location == 'register' ){
return __( 'This email is already reserved to be used soon.', 'profilebuilder' ) .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
}
else if ( $form_location == 'edit_profile' ){
$current_user = wp_get_current_user();
if( ! current_user_can( 'edit_users' ) ) {
if ( $current_user->user_email != $request_data['email'] )
return __( 'This email is already reserved to be used soon.', 'profilebuilder' ) .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
}
}
}
}
$users = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->users} WHERE user_email = %s", $request_data['email'] ) );
if ( !empty( $users ) ){
if ( $form_location == 'register' ){
//return __( 'This email is already in use.', 'profilebuilder' ) .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
//var_dump( $message );
return '';
}
if ( $form_location == 'edit_profile' ){
if( isset( $_GET['edit_user'] ) && ! empty( $_GET['edit_user'] ) )
$current_user_id = $_GET['edit_user'];
else{
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
}
foreach ( $users as $user )
if ( $user->ID != $current_user_id )
return __( 'This email is already in use.', 'profilebuilder' ) .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
}
}
return $message;
}
add_filter( 'wppb_check_form_field_default-e-mail', 'wppb_allow_multiple_accounts_email', 20, 4 );
add_action('plugins_loaded', 'wppb_remove_email_validation');
function wppb_remove_email_validation(){
remove_filter( 'wppb_check_form_field_default-e-mail', 'wppb_check_email_value', 10, 4 );
}