contact form 7- convert to wp registration form

a very nice man shared this code to add to a theme’s function file that will convert a cf7 form into a registration form. There is a plugin out there but the developer seems to have abandoned it. The code that a man shared on moot point works for one form by calling the name. I ask if there is a way to edit the code so it can work for three forms and not just one, perhaps call for each title using some “or”. Thank you in advance for any advice, much appreciated.
I confirmed this does work for one form:

function create_user_from_registration($cfdata) {
if (!isset($cfdata->posted_data) && class_exists(‘WPCF7_Submission’)) {
// Contact Form 7 version 3.9 removed $cfdata->posted_data and now
// we have to retrieve it from an API
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$formdata = $submission->get_posted_data();
}
} elseif (isset($cfdata->posted_data)) {
// For pre-3.9 versions of Contact Form 7
$formdata = $cfdata->posted_data;
} else {
// We can’t retrieve the form data
return $cfdata;
}
// Check this is the user registration form
if ( $cfdata->title() == ‘Registration: Retailer’) {
$password = wp_generate_password( 12, false );
$email = $formdata[’email’];
$name = $formdata[‘username’];
// Construct a username from the user’s name
$username = strtolower(str_replace(‘ ‘, ”, $name));
$name_parts = explode(‘ ‘,$name);
if ( !email_exists( $email ) ) {
// Find an unused username
$username_tocheck = $username;
$i = 1;
while ( username_exists( $username_tocheck ) ) {
$username_tocheck = $username . $i++;
}
$username = $username_tocheck;
// Create the user
$userdata = array(
‘user_login’ => $username,
‘user_pass’ => $password,
‘user_email’ => $email,
‘nickname’ => reset($name_parts),
‘display_name’ => $formdata[‘company’],
‘first_name’ => $formdata[‘firstname’],
‘last_name’ => $formdata[‘lastname’],
‘role’ => ‘customer’
);
$user_id = wp_insert_user( $userdata );
if ( !is_wp_error($user_id) ) {
// Email login details to user
$blogname = wp_specialchars_decode(get_option(‘blogname’), ENT_QUOTES);
$message = “Hello! We have received your registration request and is pending approval (be sure to save this email). We take pride in verifying that you are a legitimate business before approving your account. Your login details are as follows:” . “rn”;
$message .= sprintf(__(‘Username: %s’), $username) . “rn”;
$message .= sprintf(__(‘Password: %s’), $password) . “rn”;
$message .= home_url() . “rn”;
wp_mail($email, sprintf(__(‘[%s] Your username and password pending approval: SAVE THIS EMAIL’), $blogname), $message);
}
}
}
return $cfdata;

}
add_action(‘wpcf7_before_send_mail’, ‘create_user_from_registration’, 1);

Read more here:: contact form 7- convert to wp registration form

Leave a Reply

Your email address will not be published. Required fields are marked *