Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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() == 'Your Registration Form Title') {
- $password = wp_generate_password( 12, false );
- $email = $formdata['form-email-field'];
- $name = $formdata['form-name-field'];
- // 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' => $name,
- 'first_name' => reset($name_parts),
- 'last_name' => end($name_parts),
- 'role' => 'subscriber'
- );
- $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 = "Welcome! Your login details are as follows:" . "\r\n";
- $message .= sprintf(__('Username: %s'), $username) . "\r\n";
- $message .= sprintf(__('Password: %s'), $password) . "\r\n";
- $message .= wp_login_url() . "\r\n";
- wp_mail($email, sprintf(__('[%s] Your username and password'), $blogname), $message);
- }
- }
- }
- return $cfdata;
- }
- add_action('wpcf7_before_send_mail', 'create_user_from_registration', 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement