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); }
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); }
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; }