function wppb_signup_user($username, $user_email, $meta = '')
{
    global $wpdb;
    // Format data
    $user = sanitize_user($username, true);
    if (is_multisite()) {
        $user = preg_replace('/\\s+/', '', $user);
    }
    $user_email = sanitize_email($user_email);
    $activation_key = substr(md5(time() . rand() . $user_email), 0, 16);
    $meta = serialize($meta);
    // change User Registered date and time according to timezone selected in WordPress settings
    $wppb_get_date = wppb_get_date_by_timezone();
    if (isset($wppb_get_date)) {
        $wppb_user_registered = $wppb_get_date;
    } else {
        $wppb_user_registered = current_time('mysql', true);
    }
    if (is_multisite()) {
        $wpdb->insert($wpdb->signups, array('domain' => '', 'path' => '', 'title' => '', 'user_login' => $user, 'user_email' => $user_email, 'registered' => $wppb_user_registered, 'activation_key' => $activation_key, 'meta' => $meta));
    } else {
        $wpdb->insert($wpdb->prefix . 'signups', array('domain' => '', 'path' => '', 'title' => '', 'user_login' => $user, 'user_email' => $user_email, 'registered' => $wppb_user_registered, 'activation_key' => $activation_key, 'meta' => $meta));
    }
    do_action('wppb_signup_user', $username, $user_email, $activation_key, $meta);
    wppb_signup_user_notification($username, $user_email, $activation_key, $meta);
}
Example #2
0
 function wppb_register_user($global_request, $userdata)
 {
     $wppb_general_settings = get_option('wppb_general_settings');
     $user_id = null;
     $new_user_signup = false;
     if (isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email') {
         $userdata['user_login'] = apply_filters('wppb_generated_random_username', Wordpress_Creation_Kit_PB::wck_generate_slug(trim($userdata['user_email'])), $userdata['user_email']);
     }
     if (isset($wppb_general_settings['emailConfirmation']) && $wppb_general_settings['emailConfirmation'] == 'yes') {
         $new_user_signup = true;
         $userdata = $this->wppb_add_custom_field_values($global_request, $userdata, $this->args['form_fields']);
         if (!isset($userdata['role'])) {
             $userdata['role'] = $this->args['role'];
         } else {
             if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                 $this->args['redirect_url'] = wppb_custom_redirect_url('after_registration', $this->args['redirect_url'], $userdata["user_login"], $userdata['role']);
             }
         }
         $userdata['user_pass'] = wp_hash_password($userdata['user_pass']);
         if (is_multisite()) {
             /* since version 2.0.7 add this meta so we know on what blog the user registered */
             $userdata['registered_for_blog_id'] = get_current_blog_id();
             $userdata = wp_unslash($userdata);
         }
         wppb_signup_user($userdata['user_login'], $userdata['user_email'], $userdata);
     } else {
         if (!isset($userdata['role'])) {
             $userdata['role'] = $this->args['role'];
         } else {
             if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                 $this->args['redirect_url'] = wppb_custom_redirect_url('after_registration', $this->args['redirect_url'], $userdata["user_login"], $userdata['role']);
             }
         }
         $userdata = wp_unslash($userdata);
         // change User Registered date and time according to timezone selected in WordPress settings
         $wppb_get_date = wppb_get_date_by_timezone();
         if (isset($wppb_get_date)) {
             $userdata['user_registered'] = $wppb_get_date;
         }
         // insert user to database
         $user_id = wp_insert_user($userdata);
     }
     return array('userdata' => $userdata, 'user_id' => $user_id, 'new_user_signup' => $new_user_signup);
 }
Example #3
0
 function wppb_save_form_values($global_request)
 {
     $user_id = $this->wppb_get_desired_user_id();
     $userdata = apply_filters('wppb_build_userdata', array(), $global_request);
     $new_user_signup = false;
     $wppb_general_settings = get_option('wppb_general_settings');
     if ($this->args['form_type'] == 'register') {
         if (isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email') {
             $userdata['user_login'] = apply_filters('wppb_generated_random_username', Wordpress_Creation_Kit_PB::wck_generate_slug(trim($userdata['user_email'])), $userdata['user_email']);
         }
         if (isset($wppb_general_settings['emailConfirmation']) && $wppb_general_settings['emailConfirmation'] == 'yes') {
             $new_user_signup = true;
             $multisite_message = true;
             $userdata = $this->wppb_add_custom_field_values($global_request, $userdata, $this->args['form_fields']);
             if (!isset($userdata['role'])) {
                 $userdata['role'] = $this->args['role'];
             }
             $userdata['user_pass'] = wp_hash_password($userdata['user_pass']);
             if (is_multisite()) {
                 /* since version 2.0.7 add this meta so we know on what blog the user registered */
                 $userdata['registered_for_blog_id'] = get_current_blog_id();
                 $userdata = wp_unslash($userdata);
             }
             wppb_signup_user($userdata['user_login'], $userdata['user_email'], $userdata);
         } else {
             if (!isset($userdata['role'])) {
                 $userdata['role'] = $this->args['role'];
             }
             $userdata = wp_unslash($userdata);
             // change User Registered date and time according to timezone selected in WordPress settings
             $wppb_get_date = wppb_get_date_by_timezone();
             if (isset($wppb_get_date)) {
                 $userdata['user_registered'] = $wppb_get_date;
             }
             // insert user to database
             $user_id = wp_insert_user($userdata);
         }
     } elseif ($this->args['form_type'] == 'edit_profile') {
         if (isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email') {
             $user_info = get_userdata($user_id);
             $userdata['user_login'] = $user_info->user_login;
         }
         $userdata['ID'] = $this->wppb_get_desired_user_id();
         $userdata = wp_unslash($userdata);
         /* if the user changes his password then we can't send it to the wp_update_user() function or
            the user will be logged out and won't be logged in again because we call wp_update_user() after
            the headers were sent( in the content as a shortcode ) */
         if (isset($userdata['user_pass']) && !empty($userdata['user_pass'])) {
             unset($userdata['user_pass']);
         }
         wp_update_user($userdata);
     }
     if (!empty($this->args['form_fields']) && !$new_user_signup) {
         foreach ($this->args['form_fields'] as $field) {
             do_action('wppb_save_form_field', $field, $user_id, $global_request, $this->args['form_type']);
         }
         if ($this->args['form_type'] == 'register') {
             if (!is_wp_error($user_id)) {
                 $wppb_general_settings = get_option('wppb_general_settings');
                 if (isset($global_request['send_credentials_via_email']) && $global_request['send_credentials_via_email'] == 'sending') {
                     $send_credentials_via_email = 'sending';
                 } else {
                     $send_credentials_via_email = '';
                 }
                 wppb_notify_user_registration_email(get_bloginfo('name'), isset($userdata['user_login']) ? trim($userdata['user_login']) : trim($userdata['user_email']), trim($userdata['user_email']), $send_credentials_via_email, trim($userdata['user_pass']), isset($wppb_general_settings['adminApproval']) ? $wppb_general_settings['adminApproval'] : 'no');
             }
         }
     }
     return $user_id;
 }