コード例 #1
0
/**
 * Creates a new blog calling wpmu_create_blog
 * the wpmu_create_blog parameters are:
 * $domain  The domain of the new blog.
 * $path    The path of the new blog.
 * $title   The title of the new blog.
 * $user_id The user id of the user account who will be the blog admin. (you can use an email instead of the user_id. If so, a new user will be created)
 * $meta    Other meta information.
 * $site_id The site_id of the blog to be created.
 *
 * @param array $args Array with username, password and wpmu_create_blog function parameters
 * @return mixed The new blog id or an error message
 */
function msxmlrpc_create_blog($args)
{
    $parameters = check_arguments($args);
    if (!is_array($parameters)) {
        return $parameters;
    }
    // if the user_id is the user's e-mail
    if (!is_int($parameters['user_id'])) {
        if (!($user_id = get_user_id_from_string($parameters['user_id']))) {
            $error = wpmu_validate_user_signup($parameters['path'], $parameters['user_id']);
            if (is_wp_error($error)) {
                return new IXR_Error(500, $error->get_error_message());
            }
            $user_id = wpmu_create_user($parameters['path'], wp_generate_password(), $parameters['user_id']);
        }
        $parameters['user_id'] = $user_id;
    }
    if (get_blog_id($parameters['domain'], $parameters['path']) !== false) {
        return new IXR_Error(500, __("Site already exists."));
    }
    if (!isset($parameters['meta'])) {
        $parameters['meta'] = "";
    }
    if (!isset($parameters['site_id'])) {
        $parameters['site_id'] = 1;
    }
    return wpmu_create_blog($parameters['domain'], $parameters['path'], $parameters['title'], $parameters['user_id'], $parameters['meta'], $parameters['site_id']);
}
コード例 #2
0
/**
 * Validate new site signup
 *
 * @since MU
 *
 * @return bool True if the site signup was validated, false if error
 */
function validate_blog_signup()
{
    // Re-validate user info.
    $user_result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
    $user_name = $user_result['user_name'];
    $user_email = $user_result['user_email'];
    $user_errors = $user_result['errors'];
    if ($user_errors->get_error_code()) {
        signup_user($user_name, $user_email, $user_errors);
        return false;
    }
    $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
    $domain = $result['domain'];
    $path = $result['path'];
    $blogname = $result['blogname'];
    $blog_title = $result['blog_title'];
    $errors = $result['errors'];
    if ($errors->get_error_code()) {
        signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
        return false;
    }
    $public = (int) $_POST['blog_public'];
    $signup_meta = array('lang_id' => 1, 'public' => $public);
    // Handle the language setting for the new site.
    if (!empty($_POST['WPLANG'])) {
        $languages = signup_get_available_languages();
        if (in_array($_POST['WPLANG'], $languages)) {
            $language = wp_unslash(sanitize_text_field($_POST['WPLANG']));
            if ($language) {
                $signup_meta['WPLANG'] = $language;
            }
        }
    }
    /** This filter is documented in wp-signup.php */
    $meta = apply_filters('add_signup_meta', $signup_meta);
    wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
    confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
    return true;
}
コード例 #3
0
 if (!is_multisite()) {
     $user_id = edit_user();
     if (is_wp_error($user_id)) {
         $add_user_errors = $user_id;
     } else {
         if (current_user_can('list_users')) {
             $redirect = 'users.php?update=add&id=' . $user_id;
         } else {
             $redirect = add_query_arg('update', 'add', 'user-new.php');
         }
         wp_redirect($redirect);
         die;
     }
 } else {
     // Adding a new user to this site
     $user_details = wpmu_validate_user_signup($_REQUEST['user_login'], $_REQUEST['email']);
     if (is_wp_error($user_details['errors']) && !empty($user_details['errors']->errors)) {
         $add_user_errors = $user_details['errors'];
     } else {
         /**
          * Filter the user_login, also known as the username, before it is added to the site.
          *
          * @since 2.0.3
          *
          * @param string $user_login The sanitized username.
          */
         $new_user_login = apply_filters('pre_user_login', sanitize_user(wp_unslash($_REQUEST['user_login']), true));
         if (isset($_POST['noconfirmation']) && is_super_admin()) {
             add_filter('wpmu_signup_user_notification', '__return_false');
             // Disable confirmation email
         }
コード例 #4
0
ファイル: user.php プロジェクト: rclilly/wordpress-develop
 /**
  * @ticket 27317
  */
 function test_illegal_user_logins_multisite()
 {
     if (!is_multisite()) {
         return;
     }
     $user_data = array('user_login' => 'testuser', 'user_email' => '*****@*****.**');
     add_filter('illegal_user_logins', array($this, '_illegal_user_logins'));
     $response = wpmu_validate_user_signup($user_data['user_login'], $user_data['user_email']);
     $this->assertInstanceOf('WP_Error', $response['errors']);
     $this->assertEquals('user_name', $response['errors']->get_error_code());
     remove_filter('illegal_user_logins', array($this, '_illegal_user_logins'));
     $response = wpmu_validate_user_signup($user_data['user_login'], $user_data['user_email']);
     $this->assertInstanceOf('WP_Error', $response['errors']);
     $this->assertEquals(0, count($response['errors']->get_error_codes()));
 }
コード例 #5
0
ファイル: wp-signup.php プロジェクト: pombredanne/ArcherSys
/**
 * Validate new site signup
 *
 * @since MU
 *
 * @return bool True if the site signup was validated, false if error
 */
function validate_blog_signup() {
	// Re-validate user info.
	$user_result = wpmu_validate_user_signup( $_POST['user_name'], $_POST['user_email'] );
	$user_name = $user_result['user_name'];
	$user_email = $user_result['user_email'];
	$user_errors = $user_result['errors'];

	if ( $user_errors->get_error_code() ) {
		signup_user( $user_name, $user_email, $user_errors );
		return false;
	}

	$result = wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'] );
	$domain = $result['domain'];
	$path = $result['path'];
	$blogname = $result['blogname'];
	$blog_title = $result['blog_title'];
	$errors = $result['errors'];

	if ( $errors->get_error_code() ) {
		signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
		return false;
	}

	$public = (int) $_POST['blog_public'];
	$signup_meta = array ('lang_id' => 1, 'public' => $public);

	/** This filter is documented in wp-signup.php */
	$meta = apply_filters( 'add_signup_meta', $signup_meta );

	wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
	confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
	return true;
}
コード例 #6
0
ファイル: userregistration.php プロジェクト: Inteleck/hwc
 public static function user_registration_validation($validation_result)
 {
     $form = $validation_result['form'];
     $entry = self::convert_post_to_entry();
     $config = self::get_active_config($form, $entry);
     $is_update_feed = rgars($config, 'meta/feed_type') == 'update';
     $pagenum = rgpost("gform_source_page_number_{$form['id']}");
     // if there is no registration feed or the registration condition is not met or feed is inactive, abandon ship
     if (!$config || !self::registration_condition_met($form, $config, $entry) || !$config['is_active']) {
         return $validation_result;
     }
     $username_field = RGFormsModel::get_field($form, $config['meta']['username']);
     $email_field = RGFormsModel::get_field($form, $config['meta']['email']);
     $password_field = RGFormsModel::get_field($form, $config['meta']['password']);
     $is_username_hidden = RGFormsModel::is_field_hidden($form, $username_field, array());
     $is_email_hidden = RGFormsModel::is_field_hidden($form, $email_field, array());
     $is_password_hidden = RGFormsModel::is_field_hidden($form, $password_field, array());
     $user_name = apply_filters("gform_username_{$form['id']}", apply_filters('gform_username', self::get_meta_value('username', $config, $form, $entry), $config, $form, $entry), $config, $form, $entry);
     $user_email = self::get_prepared_value($email_field, $config['meta']['email'], $entry);
     $user_pass = rgpost('input_' . $config['meta']['password']);
     //$user_pass = stripslashes( $user_pass );
     if (!function_exists('username_exists')) {
         require_once ABSPATH . WPINC . "/registration.php";
     }
     // if password field is not hidden and is on the current page we are validating, validate it
     if (!$is_password_hidden && $password_field['pageNumber'] == $pagenum) {
         if (strpos($user_pass, "\\") !== false) {
             $form = self::add_validation_failure($config['meta']['password'], $form, __('Passwords may not contain the character "\\"', 'gravityformsuserregistration'));
         }
     }
     if (is_multisite()) {
         // if multisite is defined and true, lowercase name for validation
         $user_name = strtolower($user_name);
         $_POST['input_' . str_replace('.', '_', $config['meta']['username'])] = $user_name;
         $result = wpmu_validate_user_signup($user_name, $user_email);
         $errors = $result['errors']->errors;
         // special validation overrides for update feeds
         if ($is_update_feed) {
             // do not validate username on update feeds
             if (isset($errors['user_name'])) {
                 unset($errors['user_name']);
             }
             // do not validate if email belongs to user
             if (isset($errors['user_email'])) {
                 for ($i = count($errors['user_email']) - 1; $i >= 0; $i--) {
                     $error_message = $errors['user_email'][$i];
                     // if user is re-submitting their own email address, don't give already used error
                     if ($error_message == __('Sorry, that email address is already used!') && self::is_users_email($user_email)) {
                         unset($errors['user_email'][$i]);
                     } elseif ($error_message == __('That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing.') && self::is_users_email($user_email)) {
                         unset($errors['user_email'][$i]);
                     }
                 }
                 // if no other user email errors remain, unset
                 if (count($errors['user_email']) <= 0) {
                     unset($errors['user_email']);
                 }
             }
         }
         if (!empty($errors)) {
             foreach ($errors as $type => $error_msgs) {
                 foreach ($error_msgs as $error_msg) {
                     switch ($type) {
                         case 'user_name':
                             if (!$is_username_hidden && $username_field['pageNumber'] == $pagenum) {
                                 $form = self::add_validation_failure($config['meta']['username'], $form, $error_msg);
                             }
                             break;
                         case 'user_email':
                             if (!$is_email_hidden && $email_field['pageNumber'] == $pagenum) {
                                 $form = self::add_validation_failure($config['meta']['email'], $form, $error_msg);
                             }
                             break;
                     }
                 }
             }
         }
     } else {
         if (!$is_email_hidden && $email_field['pageNumber'] == $pagenum) {
             $email_valid = true;
             $email_exists = email_exists($user_email);
             if (!$user_email) {
                 $email_valid = false;
                 $form = self::add_validation_failure($config['meta']['email'], $form, __('The email address can not be empty', 'gravityformsuserregistration'));
             }
             if ($email_valid && self::pending_activation_exists('user_email', $user_email)) {
                 $email_valid = false;
                 $form = self::add_validation_failure($config['meta']['email'], $form, __('That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing.'));
             }
             if ($email_valid && !$is_update_feed && $email_exists) {
                 $form = self::add_validation_failure($config['meta']['email'], $form, __('This email address is already registered', 'gravityformsuserregistration'));
             } elseif ($email_valid && $is_update_feed && $email_exists && !self::is_users_email($user_email)) {
                 $form = self::add_validation_failure($config['meta']['email'], $form, __('This email address is already registered', 'gravityformsuserregistration'));
             }
         }
         // do not validate the user name if this is an update feed, if the user name field is hidden or if we are not on the correct page
         if (!$is_update_feed && !$is_username_hidden && $username_field['pageNumber'] == $pagenum) {
             $username_valid = true;
             if (empty($user_name)) {
                 $username_valid = false;
                 $form = self::add_validation_failure($config['meta']['username'], $form, __('The username can not be empty', 'gravityformsuserregistration'));
             }
             if ($username_valid && !validate_username($user_name)) {
                 $username_valid = false;
                 $form = self::add_validation_failure($config['meta']['username'], $form, __('The username can only contain alphanumeric characters (A-Z, 0-9), underscores, dashes and spaces', 'gravityformsuserregistration'));
             }
             if ($username_valid && self::is_bp_active() && strpos($user_name, " ") !== false) {
                 $username_valid = false;
                 $form = self::add_validation_failure($config['meta']['username'], $form, __('The username can only contain alphanumeric characters (A-Z, 0-9), underscores and dashes', 'gravityformsuserregistration'));
             }
             if ($username_valid && username_exists($user_name)) {
                 $username_valid = false;
                 $form = self::add_validation_failure($config['meta']['username'], $form, __('This username is already registered', 'gravityformsuserregistration'));
             }
             if ($username_valid && self::pending_activation_exists('user_login', $user_name)) {
                 $form = self::add_validation_failure($config['meta']['username'], $form, __('That username is currently reserved but may be available in a couple of days'));
             }
         }
     }
     $form = apply_filters('gform_user_registration_validation', $form, $config, $pagenum);
     $validation_result["is_valid"] = self::is_form_valid($form);
     $validation_result["form"] = $form;
     return $validation_result;
 }
コード例 #7
0
}
if (!current_user_can('create_users')) {
    wp_die(__('You do not have sufficient permissions to add users to this network.'));
}
get_current_screen()->add_help_tab(array('id' => 'overview', 'title' => __('Overview'), 'content' => '<p>' . __('Add User will set up a new user account on the network and send that person an email with username and password.') . '</p>' . '<p>' . __('Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them.') . '</p>'));
get_current_screen()->set_help_sidebar('<p><strong>' . __('For more information:') . '</strong></p>' . '<p>' . __('<a href="http://codex.wordpress.org/Network_Admin_Users_Screen" target="_blank">Documentation on Network Users</a>') . '</p>' . '<p>' . __('<a href="http://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>');
if (isset($_REQUEST['action']) && 'add-user' == $_REQUEST['action']) {
    check_admin_referer('add-user', '_wpnonce_add-user');
    if (!current_user_can('manage_network_users')) {
        wp_die(__('You do not have permission to access this page.'));
    }
    if (!is_array($_POST['user'])) {
        wp_die(__('Cannot create an empty user.'));
    }
    $user = $_POST['user'];
    $user_details = wpmu_validate_user_signup($user['username'], $user['email']);
    if (is_wp_error($user_details['errors']) && !empty($user_details['errors']->errors)) {
        $add_user_errors = $user_details['errors'];
    } else {
        $password = wp_generate_password(12, false);
        $user_id = wpmu_create_user(esc_html(strtolower($user['username'])), $password, esc_html($user['email']));
        if (!$user_id) {
            $add_user_errors = new WP_Error('add_user_fail', __('Cannot add user.'));
        } else {
            wp_new_user_notification($user_id, $password);
            wp_redirect(add_query_arg(array('update' => 'added'), 'user-new.php'));
            exit;
        }
    }
}
if (isset($_GET['update'])) {
コード例 #8
0
/**
 * Validate a user name and email address when creating a new user.
 *
 * @since 1.2.2
 *
 * @param string $user_name  Username to validate.
 * @param string $user_email Email address to validate.
 * @return array Results of user validation including errors, if any.
 */
function bp_core_validate_user_signup($user_name, $user_email)
{
    // Make sure illegal names include BuddyPress slugs and values.
    bp_core_flush_illegal_names();
    // WordPress Multisite has its own validation. Use it, so that we
    // properly mirror restrictions on username, etc.
    if (function_exists('wpmu_validate_user_signup')) {
        $result = wpmu_validate_user_signup($user_name, $user_email);
        // When not running Multisite, we perform our own validation. What
        // follows reproduces much of the logic of wpmu_validate_user_signup(),
        // minus the multisite-specific restrictions on user_login.
    } else {
        $errors = new WP_Error();
        /**
         * Filters the username before being validated.
         *
         * @since 1.5.5
         *
         * @param string $user_name Username to validate.
         */
        $user_name = apply_filters('pre_user_login', $user_name);
        // User name can't be empty.
        if (empty($user_name)) {
            $errors->add('user_name', __('Please enter a username', 'buddypress'));
        }
        // User name can't be on the blacklist.
        $illegal_names = get_site_option('illegal_names');
        if (in_array($user_name, (array) $illegal_names)) {
            $errors->add('user_name', __('That username is not allowed', 'buddypress'));
        }
        // User name must pass WP's validity check.
        if (!validate_username($user_name)) {
            $errors->add('user_name', __('Usernames can contain only letters, numbers, ., -, and @', 'buddypress'));
        }
        // Minimum of 4 characters.
        if (strlen($user_name) < 4) {
            $errors->add('user_name', __('Username must be at least 4 characters', 'buddypress'));
        }
        // No underscores. @todo Why not?
        if (false !== strpos(' ' . $user_name, '_')) {
            $errors->add('user_name', __('Sorry, usernames may not contain the character "_"!', 'buddypress'));
        }
        // No usernames that are all numeric. @todo Why?
        $match = array();
        preg_match('/[0-9]*/', $user_name, $match);
        if ($match[0] == $user_name) {
            $errors->add('user_name', __('Sorry, usernames must have letters too!', 'buddypress'));
        }
        // Check into signups.
        $signups = BP_Signup::get(array('user_login' => $user_name));
        $signup = isset($signups['signups']) && !empty($signups['signups'][0]) ? $signups['signups'][0] : false;
        // Check if the username has been used already.
        if (username_exists($user_name) || !empty($signup)) {
            $errors->add('user_name', __('Sorry, that username already exists!', 'buddypress'));
        }
        // Validate the email address and process the validation results into
        // error messages.
        $validate_email = bp_core_validate_email_address($user_email);
        bp_core_add_validation_error_messages($errors, $validate_email);
        // Assemble the return array.
        $result = array('user_name' => $user_name, 'user_email' => $user_email, 'errors' => $errors);
        // Apply WPMU legacy filter.
        $result = apply_filters('wpmu_validate_user_signup', $result);
    }
    /**
     * Filters the result of the user signup validation.
     *
     * @since 1.2.2
     *
     * @param array $result Results of user validation including errors, if any.
     */
    return apply_filters('bp_core_validate_user_signup', $result);
}
コード例 #9
0
 /**
  * Validates different kinds of form submissions.
  *
  * Free Registration Forms do NOT require API Credentials.
  *
  * @package s2Member\Stripe
  * @since 140617
  *
  * @param string $form The type of Pro-Form being submitted.
  * @param array  $s An array of data submitted through the Pro-Form.
  *
  * @return null|array Null if there are no errors, else a response array.
  */
 public static function stripe_form_submission_validation_errors($form, $s = array())
 {
     $cp_attr = c_ws_plugin__s2member_pro_stripe_utilities::apply_coupon($s['attr'], $s['coupon'], 'attr');
     $is_free_checkout = in_array($form, array('sp-checkout', 'checkout'), TRUE) && $cp_attr['ta'] <= 0 && $cp_attr['ra'] <= 0;
     $is_bitcoin_checkout = !$is_free_checkout && in_array($form, array('sp-checkout', 'checkout'), TRUE) && stripos($s['source_token'], 'btcrcv_') === 0;
     if ($form === 'registration' || !($response = c_ws_plugin__s2member_pro_stripe_responses::stripe_form_api_validation_errors())) {
         if ($form === 'cancellation') {
             if (!is_user_logged_in()) {
                 $response = array('response' => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to cancel your account.', 's2member-front', 's2member'), esc_attr(wp_login_url($_SERVER['REQUEST_URI']))), 'error' => TRUE);
             } else {
                 if ($s['attr']['captcha'] && (empty($s['recaptcha_challenge_field']) || empty($s['recaptcha_response_field']) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s['recaptcha_challenge_field'], $s['recaptcha_response_field']))) {
                     $response = array('response' => _x('Missing or invalid Security Verification. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                 } else {
                     if (is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap('administrator')) {
                         $response = array('response' => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', 's2member-admin', 's2member'), 'error' => TRUE);
                     }
                 }
             }
         } else {
             if ($form === 'update') {
                 if (!is_user_logged_in()) {
                     $response = array('response' => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to update your billing information.', 's2member-front', 's2member'), esc_attr(wp_login_url($_SERVER['REQUEST_URI']))), 'error' => TRUE);
                 } else {
                     if (is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap('administrator')) {
                         $response = array('response' => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', 's2member-admin', 's2member'), 'error' => TRUE);
                     } else {
                         if (empty($s['source_token']) || !is_string($s['source_token'])) {
                             $response = array('response' => _x('Missing Billing Info. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                         } else {
                             if ($s['attr']['captcha'] && (empty($s['recaptcha_challenge_field']) || empty($s['recaptcha_response_field']) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s['recaptcha_challenge_field'], $s['recaptcha_response_field']))) {
                                 $response = array('response' => _x('Missing or invalid Security Verification. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                             }
                         }
                     }
                 }
             } else {
                 if ($form === 'registration') {
                     /** @var $_errors \WP_Error For IDEs. This variable is used below in at least one place. */
                     if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_names'] && (empty($s['first_name']) || !is_string($s['first_name']))) {
                         $response = array('response' => _x('Missing First Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                     } else {
                         if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_names'] && (empty($s['last_name']) || !is_string($s['last_name']))) {
                             $response = array('response' => _x('Missing Last Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                         } else {
                             if (empty($s['email']) || !is_string($s['email'])) {
                                 $response = array('response' => _x('Missing or invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                             } else {
                                 if (!is_email($s['email'])) {
                                     $response = array('response' => _x('Invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                 } else {
                                     if (email_exists($s['email']) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog(@$s['username'], $s['email']))) {
                                         $response = array('response' => _x('That Email Address is already in use. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                     } else {
                                         if (empty($s['username']) || !is_string($s['username']) || empty($s['_o_username']) || !is_string($s['_o_username'])) {
                                             $response = array('response' => _x('Missing or invalid Username. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                         } else {
                                             if (!validate_username($s['username']) || !validate_username($s['_o_username'])) {
                                                 $response = array('response' => _x('Invalid Username. Please try again. Use ONLY lowercase alphanumerics.', 's2member-front', 's2member'), 'error' => TRUE);
                                             } else {
                                                 if (username_exists($s['username']) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s['username'], $s['email']))) {
                                                     $response = array('response' => _x('That Username is already in use. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                 } else {
                                                     if (is_multisite() && !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s['username'], $s['email']) && ($_response = wpmu_validate_user_signup($s['username'], $s['email'])) && is_wp_error($_errors = $_response['errors']) && $_errors->get_error_message()) {
                                                         $response = array('response' => $_errors->get_error_message(), 'error' => TRUE);
                                                     } else {
                                                         if ((empty($s['password1']) || !is_string($s['password1'])) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                             $response = array('response' => _x('Missing Password. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                         } else {
                                                             if ((empty($s['password1']) || strlen($s['password1']) < c_ws_plugin__s2member_user_securities::min_password_length()) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                 $response = array('response' => sprintf(_x('Invalid Password. Must be at least %1$s characters. Please try again.', 's2member-front', 's2member'), c_ws_plugin__s2member_user_securities::min_password_length()), 'error' => TRUE);
                                                             } else {
                                                                 if (!empty($s['password1']) && strlen($s['password1']) > 64 && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                     $response = array('response' => _x('Invalid Password. Max length is 64 characters. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                 } else {
                                                                     if ((empty($s['password2']) || $s['password2'] !== $s['password1']) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                         $response = array('response' => _x('Password fields do NOT match. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                     } else {
                                                                         if ($custom_field_validation_errors = c_ws_plugin__s2member_custom_reg_fields::validation_errors(isset($s['custom_fields']) ? $s['custom_fields'] : array(), c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($s['attr']['level'], 'registration', TRUE))) {
                                                                             $response = array('response' => array_shift($custom_field_validation_errors), 'error' => TRUE);
                                                                         } else {
                                                                             if ($s['attr']['captcha'] && (empty($s['recaptcha_challenge_field']) || empty($s['recaptcha_response_field']) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s['recaptcha_challenge_field'], $s['recaptcha_response_field']))) {
                                                                                 $response = array('response' => _x('Missing or invalid Security Verification. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                     if ($form === 'sp-checkout') {
                         if (empty($s['first_name']) || !is_string($s['first_name'])) {
                             $response = array('response' => _x('Missing First Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                         } else {
                             if (empty($s['last_name']) || !is_string($s['last_name'])) {
                                 $response = array('response' => _x('Missing Last Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                             } else {
                                 if (empty($s['email']) || !is_string($s['email'])) {
                                     $response = array('response' => _x('Missing or invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                 } else {
                                     if (!is_email($s['email'])) {
                                         $response = array('response' => _x('Invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                     } else {
                                         if (empty($s['source_token']) || !is_string($s['source_token'])) {
                                             // Token = `free` for free checkouts.
                                             $response = array('response' => _x('Missing Billing Info. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                         } else {
                                             if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['state']) || !is_string($s['state'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                 $response = array('response' => _x('Missing State/Province. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                             } else {
                                                 if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['country']) || !is_string($s['country'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                     $response = array('response' => _x('Missing Country. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                 } else {
                                                     if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['zip']) || !is_string($s['zip'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                         $response = array('response' => _x('Missing Postal/Zip Code. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                     } else {
                                                         if ($s['attr']['captcha'] && (empty($s['recaptcha_challenge_field']) || empty($s['recaptcha_response_field']) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s['recaptcha_challenge_field'], $s['recaptcha_response_field']))) {
                                                             $response = array('response' => _x('Missing or invalid Security Verification. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     } else {
                         if ($form === 'checkout') {
                             /** @var $_errors \WP_Error For IDEs. This variable is used below in at least one place. */
                             if ($s['attr']['modify'] && !is_user_logged_in()) {
                                 $response = array('response' => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to modify your billing plan.', 's2member-front', 's2member'), esc_attr(wp_login_url($_SERVER['REQUEST_URI']))), 'error' => TRUE);
                             } else {
                                 if ($s['attr']['level'] === '*' && !is_user_logged_in()) {
                                     $response = array('response' => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> before making this purchase.', 's2member-front', 's2member'), esc_attr(wp_login_url($_SERVER['REQUEST_URI']))), 'error' => TRUE);
                                 } else {
                                     if (is_user_logged_in() && is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap('administrator')) {
                                         $response = array('response' => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', 's2member-admin', 's2member'), 'error' => TRUE);
                                     } else {
                                         if (empty($s['first_name']) || !is_string($s['first_name'])) {
                                             $response = array('response' => _x('Missing First Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                         } else {
                                             if (empty($s['last_name']) || !is_string($s['last_name'])) {
                                                 $response = array('response' => _x('Missing Last Name. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                             } else {
                                                 if (!is_user_logged_in() && (empty($s['email']) || !is_string($s['email']))) {
                                                     $response = array('response' => _x('Missing or invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                 } else {
                                                     if (!is_user_logged_in() && !is_email($s['email'])) {
                                                         $response = array('response' => _x('Invalid Email Address. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                     } else {
                                                         if (!is_user_logged_in() && email_exists($s['email']) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog(@$s['username'], $s['email']))) {
                                                             $response = array('response' => _x('That Email Address is already in use. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                         } else {
                                                             if (!is_user_logged_in() && (empty($s['username']) || !is_string($s['username']) || empty($s['_o_username']) || !is_string($s['_o_username']))) {
                                                                 $response = array('response' => _x('Missing or invalid Username. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                             } else {
                                                                 if (!is_user_logged_in() && (!validate_username($s['username']) || !validate_username($s['_o_username']))) {
                                                                     $response = array('response' => _x('Invalid Username. Please try again. Use ONLY lowercase alphanumerics.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                 } else {
                                                                     if (!is_user_logged_in() && username_exists($s['username']) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s['username'], $s['email']))) {
                                                                         $response = array('response' => _x('That Username is already in use. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                     } else {
                                                                         if (!is_user_logged_in() && is_multisite() && !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s['username'], $s['email']) && ($_response = wpmu_validate_user_signup($s['username'], $s['email'])) && is_wp_error($_errors = $_response['errors']) && $_errors->get_error_message()) {
                                                                             $response = array('response' => $_errors->get_error_message(), 'error' => TRUE);
                                                                         } else {
                                                                             if (!is_user_logged_in() && (empty($s['password1']) || !is_string($s['password1'])) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                                 $response = array('response' => _x('Missing Password. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                             } else {
                                                                                 if (!is_user_logged_in() && (empty($s['password1']) || strlen($s['password1']) < c_ws_plugin__s2member_user_securities::min_password_length()) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                                     $response = array('response' => sprintf(_x('Invalid Password. Must be at least %1$s characters. Please try again.', 's2member-front', 's2member'), c_ws_plugin__s2member_user_securities::min_password_length()), 'error' => TRUE);
                                                                                 } else {
                                                                                     if (!is_user_logged_in() && !empty($s['password1']) && strlen($s['password1']) > 64 && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                                         $response = array('response' => _x('Invalid Password. Max length is 64 characters. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                     } else {
                                                                                         if (!is_user_logged_in() && (empty($s['password2']) || $s['password2'] !== $s['password1']) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_password']) {
                                                                                             $response = array('response' => _x('Password fields do NOT match. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                         } else {
                                                                                             if (!is_user_logged_in() && ($custom_field_validation_errors = c_ws_plugin__s2member_custom_reg_fields::validation_errors(isset($s['custom_fields']) ? $s['custom_fields'] : array(), c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($s['attr']['level'] === '*' ? 'auto-detection' : $s['attr']['level'], 'registration', TRUE)))) {
                                                                                                 $response = array('response' => array_shift($custom_field_validation_errors), 'error' => TRUE);
                                                                                             } else {
                                                                                                 if (empty($s['source_token']) || !is_string($s['source_token'])) {
                                                                                                     // Token = `free` for free checkouts.
                                                                                                     $response = array('response' => _x('Missing Billing Method. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                                 } else {
                                                                                                     if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['state']) || !is_string($s['state'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                                                                         $response = array('response' => _x('Missing State/Province. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                                     } else {
                                                                                                         if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['country']) || !is_string($s['country'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                                                                             $response = array('response' => _x('Missing Country. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                                         } else {
                                                                                                             if (!$is_free_checkout && !$is_bitcoin_checkout && (empty($s['zip']) || !is_string($s['zip'])) && c_ws_plugin__s2member_pro_stripe_utilities::tax_may_apply()) {
                                                                                                                 $response = array('response' => _x('Missing Postal/Zip Code. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                                             } else {
                                                                                                                 if ($s['attr']['captcha'] && (empty($s['recaptcha_challenge_field']) || empty($s['recaptcha_response_field']) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s['recaptcha_challenge_field'], $s['recaptcha_response_field']))) {
                                                                                                                     $response = array('response' => _x('Missing or invalid Security Verification. Please try again.', 's2member-front', 's2member'), 'error' => TRUE);
                                                                                                                 }
                                                                                                             }
                                                                                                         }
                                                                                                     }
                                                                                                 }
                                                                                             }
                                                                                         }
                                                                                     }
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         } else {
                             // Else we are dealing with an unknown form submission type.
                             $response = array('response' => _x('Unknown form submission type. Please contact Support.', 's2member-front', 's2member'), 'error' => TRUE);
                         }
                     }
                 }
             }
         }
     }
     return apply_filters('ws_plugin__s2member_pro_stripe_form_submission_validation_response', empty($response) ? NULL : $response, $form, $s);
 }
コード例 #10
0
        /**
         * Displays the registration page
         *
         * @since 6.1
         * @access public
         *
         * @param object $template Theme_My_Login_Template object
         */
        public function tml_display_register(&$template)
        {
            global $wpdb, $blogname, $blog_title, $domain, $path, $active_signup;
            $theme_my_login = Theme_My_Login::get_object();
            do_action('before_signup_form');
            echo '<div class="login mu_register" id="theme-my-login' . esc_attr($template->get_option('instance')) . '">';
            $active_signup = get_site_option('registration');
            if (!$active_signup) {
                $active_signup = 'all';
            }
            $active_signup = apply_filters('wpmu_active_signup', $active_signup);
            // return "all", "none", "blog" or "user"
            // Make the signup type translatable.
            $i18n_signup['all'] = _x('all', 'Multisite active signup type');
            $i18n_signup['none'] = _x('none', 'Multisite active signup type');
            $i18n_signup['blog'] = _x('blog', 'Multisite active signup type');
            $i18n_signup['user'] = _x('user', 'Multisite active signup type');
            if (is_super_admin()) {
                echo '<p class="message">' . sprintf(__('Greetings Site Administrator! You are currently allowing &#8220;%s&#8221; registrations. To change or disable registration go to your <a href="%s">Options page</a>.', 'theme-my-login'), $i18n_signup[$active_signup], esc_url(network_admin_url('ms-options.php'))) . '</p>';
            }
            $newblogname = isset($_GET['new']) ? strtolower(preg_replace('/^-|-$|[^-a-zA-Z0-9]/', '', $_GET['new'])) : null;
            $current_user = wp_get_current_user();
            if ($active_signup == "none") {
                _e('Registration has been disabled.', 'theme-my-login');
            } elseif ($active_signup == 'blog' && !is_user_logged_in()) {
                printf(__('You must first <a href="%s">log in</a>, and then you can create a new site.', 'theme-my-login'), wp_login_url(Theme_My_Login_Common::get_current_url()));
            } else {
                $stage = isset($_POST['stage']) ? $_POST['stage'] : 'default';
                switch ($stage) {
                    case 'validate-user-signup':
                        if ($active_signup == 'all' || $_POST['signup_for'] == 'blog' && $active_signup == 'blog' || $_POST['signup_for'] == 'user' && $active_signup == 'user') {
                            $result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
                            extract($result);
                            $theme_my_login->errors = $errors;
                            if ($errors->get_error_code()) {
                                $this->signup_user($user_name, $user_email);
                                break;
                            }
                            if ('blog' == $_POST['signup_for']) {
                                $this->signup_blog($user_name, $user_email);
                                break;
                            }
                            wpmu_signup_user($user_name, $user_email, apply_filters('add_signup_meta', array()));
                            ?>
						<h2><?php 
                            printf(__('%s is your new username', 'theme-my-login'), $user_name);
                            ?>
</h2>
						<p><?php 
                            _e('But, before you can start using your new username, <strong>you must activate it</strong>.', 'theme-my-login');
                            ?>
</p>
						<p><?php 
                            printf(__('Check your inbox at <strong>%1$s</strong> and click the link given.', 'theme-my-login'), $user_email);
                            ?>
</p>
						<p><?php 
                            _e('If you do not activate your username within two days, you will have to sign up again.', 'theme-my-login');
                            ?>
</p>
						<?php 
                            do_action('signup_finished');
                        } else {
                            _e('User registration has been disabled.', 'theme-my-login');
                        }
                        break;
                    case 'validate-blog-signup':
                        if ($active_signup == 'all' || $active_signup == 'blog') {
                            // Re-validate user info.
                            $result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
                            extract($result);
                            $theme_my_login->errors = $errors;
                            if ($errors->get_error_code()) {
                                $this->signup_user($user_name, $user_email);
                                break;
                            }
                            $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
                            extract($result);
                            $theme_my_login->errors = $errors;
                            if ($errors->get_error_code()) {
                                $this->signup_blog($user_name, $user_email, $blogname, $blog_title);
                                break;
                            }
                            $public = (int) $_POST['blog_public'];
                            $meta = array('lang_id' => 1, 'public' => $public);
                            $meta = apply_filters('add_signup_meta', $meta);
                            wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
                            ?>
						<h2><?php 
                            printf(__('Congratulations! Your new site, %s, is almost ready.', 'theme-my-login'), "<a href='http://{$domain}{$path}'>{$blog_title}</a>");
                            ?>
</h2>

						<p><?php 
                            _e('But, before you can start using your site, <strong>you must activate it</strong>.', 'theme-my-login');
                            ?>
</p>
						<p><?php 
                            printf(__('Check your inbox at <strong>%s</strong> and click the link given.', 'theme-my-login'), $user_email);
                            ?>
</p>
						<p><?php 
                            _e('If you do not activate your site within two days, you will have to sign up again.', 'theme-my-login');
                            ?>
</p>
						<h2><?php 
                            _e('Still waiting for your email?', 'theme-my-login');
                            ?>
</h2>
						<p>
							<?php 
                            _e('If you haven&#8217;t received your email yet, there are a number of things you can do:', 'theme-my-login');
                            ?>
							<ul id="noemail-tips">
								<li><p><strong><?php 
                            _e('Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control.', 'theme-my-login');
                            ?>
</strong></p></li>
								<li><p><?php 
                            _e('Check the junk or spam folder of your email client. Sometime emails wind up there by mistake.', 'theme-my-login');
                            ?>
</p></li>
								<li><?php 
                            printf(__('Have you entered your email correctly?  You have entered %s, if it&#8217;s incorrect, you will not receive your email.', 'theme-my-login'), $user_email);
                            ?>
</li>
							</ul>
						</p>
						<?php 
                            do_action('signup_finished');
                        } else {
                            _e('Site registration has been disabled.', 'theme-my-login');
                        }
                        break;
                    case 'gimmeanotherblog':
                        $current_user = wp_get_current_user();
                        if (!is_user_logged_in()) {
                            die;
                        }
                        $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title'], $current_user);
                        extract($result);
                        $theme_my_login->errors = $errors;
                        if ($errors->get_error_code()) {
                            $this->signup_another_blog($blogname, $blog_title);
                            break;
                        }
                        $public = (int) $_POST['blog_public'];
                        $meta = apply_filters('signup_create_blog_meta', array('lang_id' => 1, 'public' => $public));
                        // deprecated
                        $meta = apply_filters('add_signup_meta', $meta);
                        wpmu_create_blog($domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid);
                        ?>
					<h2><?php 
                        printf(__('The site %s is yours.', 'theme-my-login'), "<a href='http://{$domain}{$path}'>{$blog_title}</a>");
                        ?>
</h2>
					<p>
						<?php 
                        printf(__('<a href="http://%1$s">http://%2$s</a> is your new site.  <a href="%3$s">Log in</a> as &#8220;%4$s&#8221; using your existing password.', 'theme-my-login'), $domain . $path, $domain . $path, "http://" . $domain . $path . "wp-login.php", $current_user->user_login);
                        ?>
					</p>
					<?php 
                        do_action('signup_finished');
                        break;
                    case 'default':
                    default:
                        $user_email = isset($_POST['user_email']) ? $_POST['user_email'] : '';
                        do_action('preprocess_signup_form');
                        // populate the form from invites, elsewhere?
                        if (is_user_logged_in() && ($active_signup == 'all' || $active_signup == 'blog')) {
                            $this->signup_another_blog($newblogname);
                        } elseif (is_user_logged_in() == false && ($active_signup == 'all' || $active_signup == 'user')) {
                            $this->signup_user($newblogname, $user_email);
                        } elseif (is_user_logged_in() == false && $active_signup == 'blog') {
                            _e('Sorry, new registrations are not allowed at this time.', 'theme-my-login');
                        } else {
                            _e('You are logged in already. No need to register again!', 'theme-my-login');
                        }
                        if ($newblogname) {
                            $newblog = get_blogaddress_by_name($newblogname);
                            if ($active_signup == 'blog' || $active_signup == 'all') {
                                printf(__('<p><em>The site you were looking for, <strong>%s</strong> does not exist, but you can create it now!</em></p>', 'theme-my-login'), $newblog);
                            } else {
                                printf(__('<p><em>The site you were looking for, <strong>%s</strong>, does not exist.</em></p>', 'theme-my-login'), $newblog);
                            }
                        }
                        break;
                }
            }
            echo '</div>';
            do_action('after_signup_form');
        }
 /**
  * Create a single user
  *
  * @param WP_REST_Request $request Full details about the request.
  * @return WP_Error|WP_REST_Response
  */
 public function create_item($request)
 {
     global $wp_roles;
     if (!empty($request['id'])) {
         return new WP_Error('rest_user_exists', __('Cannot create existing user.'), array('status' => 400));
     }
     $user = $this->prepare_item_for_database($request);
     if (is_multisite()) {
         $ret = wpmu_validate_user_signup($user->user_login, $user->user_email);
         if (is_wp_error($ret['errors']) && !empty($ret['errors']->errors)) {
             return $ret['errors'];
         }
     }
     if (is_multisite()) {
         $user_id = wpmu_create_user($user->user_login, $user->user_pass, $user->user_email);
         if (!$user_id) {
             return new WP_Error('rest_user_create', __('Error creating new user.'), array('status' => 500));
         }
         $user->ID = $user_id;
         $user_id = wp_update_user($user);
         if (is_wp_error($user_id)) {
             return $user_id;
         }
     } else {
         $user_id = wp_insert_user($user);
         if (is_wp_error($user_id)) {
             return $user_id;
         }
         $user->ID = $user_id;
     }
     $this->update_additional_fields_for_object($user, $request);
     /**
      * Fires after a user is created or updated via the REST API.
      *
      * @param object          $user      Data used to create the user (not a WP_User object).
      * @param WP_REST_Request $request   Request object.
      * @param bool            $creating  True when creating user, false when updating user.
      */
     do_action('rest_insert_user', $user, $request, true);
     $response = $this->get_item(array('id' => $user_id, 'context' => 'edit'));
     $response = rest_ensure_response($response);
     $response->set_status(201);
     $response->header('Location', rest_url('/wp/v2/users/' . $user_id));
     return $response;
 }
コード例 #12
0
        public function rpr_preprocess_signup_form()
        {
            global $active_signup, $stage;
            switch ($stage) {
                case 'user-signup':
                    if ($active_signup == 'all' || $_POST['signup_for'] == 'blog' && $active_signup == 'blog' || $_POST['signup_for'] == 'user' && $active_signup == 'user') {
                        /* begin validate_user_signup stage */
                        // validate signup form, do wpmu_validate_user_signup action
                        $result = wpmu_validate_user_signup(isset($_POST['user_name']) ? (string) $_POST['user_name'] : "", isset($_POST['user_email']) ? (string) $_POST['user_email'] : "");
                        extract($result);
                        if ($errors->get_error_code()) {
                            echo "signup_user";
                            signup_user($user_name, $user_email, $errors);
                            do_action('after_signup_form');
                            get_footer();
                            exit;
                        }
                        if ('blog' === $_POST['signup_for']) {
                            echo "signup_blog";
                            signup_blog($user_name, $user_email);
                            do_action('after_signup_form');
                            get_footer();
                            exit;
                        }
                        // collect meta, commit user to database, send email
                        wpmu_signup_user($user_name, $user_email, apply_filters('add_signup_meta', array()));
                        // previously, displayed confirm_user_signup message before signup_finished action
                        do_action('signup_finished');
                        /* end validate_user_signup stage */
                    } else {
                        _e('User registration has been disabled.');
                        ?>
						</div>
						</div>
						<?php 
                        do_action('after_signup_form');
                        get_footer();
                        exit;
                    }
                    break;
                case 'blog-signup':
                    if ($active_signup == 'all' || $active_signup == 'blog') {
                        /* begin validate_blog_signup stage */
                        $result = wpmu_validate_user_signup(isset($_POST['user_name']) ? (string) $_POST['user_name'] : "", isset($_POST['user_email']) ? (string) $_POST['user_email'] : "");
                        extract($result);
                        if ($errors->get_error_code()) {
                            echo "signup_user";
                            signup_user($user_name, $user_email, $errors);
                            do_action('after_signup_form');
                            get_footer();
                            exit;
                        }
                        $result = wpmu_validate_blog_signup(isset($_POST['blogname']) ? (string) $_POST['blogname'] : "", isset($_POST['blog_title']) ? (string) $_POST['blog_title'] : "");
                        extract($result);
                        if ($errors->get_error_code()) {
                            signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
                            do_action('after_signup_form');
                            get_footer();
                            exit;
                        }
                        // collect meta, commit user to database, send email
                        $meta = array('lang_id' => 1, 'public' => (int) $_POST['blog_public']);
                        wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, apply_filters('add_signup_meta', $meta));
                        // previously, displayed confirm_blog_signup message before signup_finished action
                        do_action('signup_finished');
                        /* end validate_blog_signup stage */
                    } else {
                        _e('Site registration has been disabled.');
                        ?>
						</div>
						</div>
						<?php 
                        do_action('after_signup_form');
                        get_footer();
                        exit;
                    }
                    break;
                default:
                    return;
            }
            /* begin wp-activate page */
            $key = (string) $_REQUEST['key'];
            // wpmu_create_user, wpmu_welcome_user_notification, add_new_user_to_blog, do wpmu_activate_user action
            $result = wpmu_activate_signup($key);
            if (is_wp_error($result)) {
                if ('already_active' == $result->get_error_code() || 'blog_taken' == $result->get_error_code()) {
                    $signup = $result->get_error_data();
                    ?>
					<h2><?php 
                    _e('Your account is now active!');
                    ?>
</h2>
					<?php 
                    echo '<p class="lead-in">';
                    if ($signup->domain . $signup->path == '') {
                        printf(__('Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of &#8220;%2$s&#8221;. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.'), network_site_url('wp-login.php', 'login'), $signup->user_login, $signup->user_email, wp_lostpassword_url());
                    } else {
                        printf(__('Your site at <a href="%1$s">%2$s</a> is active. You may now log in to your site using your chosen username of &#8220;%3$s&#8221;. Please check your email inbox at %4$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%5$s">reset your password</a>.'), 'http://' . $signup->domain, $signup->domain, $signup->user_login, $signup->user_email, wp_lostpassword_url());
                    }
                    echo '</p>';
                } else {
                    ?>
					<h2><?php 
                    _e('An error occurred during the activation');
                    ?>
</h2>
					<?php 
                    echo '<p>' . $result->get_error_message() . '</p>';
                }
            } else {
                //TODO: Why not reference $result->blog_id?
                extract($result);
                if (isset($blog_id)) {
                    $url = get_blogaddress_by_id((int) $blog_id);
                }
                $user = get_userdata((int) $user_id);
                ?>
				<h2><?php 
                _e('Your account is now active!');
                ?>
</h2>
				<div id="signup-welcome">
					<p><span class="h3"><?php 
                _e('Username:'******'Password:'******'', 'http')) {
                    ?>
					<p class="view"><?php 
                    printf(__('Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>'), $url, $url . 'wp-login.php');
                    ?>
</p>
				<?php 
                } else {
                    ?>
					<p class="view"><?php 
                    printf(__('Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.'), network_site_url('wp-login.php', 'login'), network_home_url());
                    ?>
</p>
				<?php 
                }
            }
            ?>
			</div>
			<script type="text/javascript">
				var key_input = document.getElementById('key');
				key_input && key_input.focus();
			</script>
			<?php 
            get_footer();
            ?>
			<?php 
            exit;
        }
コード例 #13
0
 /**
  * Handles the importation of Users/Members.
  *
  * @package s2Member\Imports
  * @since 110815
  */
 public static function import_users()
 {
     if (!empty($_POST['ws_plugin__s2member_pro_import_simple_users']) && ($nonce = $_POST['ws_plugin__s2member_pro_import_simple_users']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-pro-import-users') && current_user_can('create_users')) {
         global $wpdb;
         // Global database object reference.
         global $current_site, $current_blog;
         // Multisite Networking.
         @set_time_limit(0);
         // Make time for processing large import files.
         @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
         remove_all_actions('profile_update') . remove_all_actions('user_register');
         remove_all_actions('added_existing_user') . remove_all_actions('add_user_to_blog');
         if (!empty($_FILES['ws_plugin__s2member_pro_import_users_file']) && empty($_FILES['ws_plugin__s2member_pro_import_users_file']['error'])) {
             $file = fopen($_FILES['ws_plugin__s2member_pro_import_users_file']['tmp_name'], 'r');
         } else {
             if (!empty($_POST['ws_plugin__s2member_pro_import_users_direct_input'])) {
                 fwrite($file = tmpfile(), trim(stripslashes($_POST['ws_plugin__s2member_pro_import_users_direct_input']))) . fseek($file, 0);
             }
         }
         $imported = $line = 0;
         // Initialize these counters.
         if (isset($file) && is_resource($file)) {
             $custom_field_vars = array();
             // Initialize this array.
             if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields']) {
                 foreach (json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], TRUE) as $field) {
                     $custom_field_var = preg_replace('/[^a-z0-9]/i', '_', strtolower($field['id']));
                     $custom_field_vars[] = $custom_field_var;
                 }
             }
             sort($custom_field_vars, SORT_STRING);
             // Always sort this array.
             while (($data = version_compare(PHP_VERSION, '5.3', '>=') ? fgetcsv($file, 0, ',', '"', '"') : fgetcsv($file, 0, ',', '"')) !== FALSE) {
                 $line = (int) $line + 1;
                 // CSV lines.
                 $data = c_ws_plugin__s2member_utils_strings::trim_deep($data);
                 $data = stripslashes_deep($data);
                 if ($line === 1 && strtoupper($data[0]) === 'ID') {
                     $line = $line - 1;
                     continue;
                 }
                 if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                     $ID = $data[0];
                     $user_login = is_multisite() ? strtolower($data[1]) : $data[1];
                     $user_login = sanitize_user($user_login, is_multisite());
                     $user_pass = (string) '';
                     $first_name = $data[2];
                     $last_name = $data[3];
                     $display_name = $data[4];
                     $user_email = sanitize_email($data[5]);
                     $user_url = $data[6];
                     $role = $data[7];
                     $custom_capabilities = $data[8];
                     $user_registered = $data[9] ? date('Y-m-d H:i:s', strtotime($data[9])) : '';
                     $paid_registration_times = $data[10] ? maybe_unserialize($data[10]) : '';
                     $last_payment_time = $data[11] ? strtotime($data[11]) : '';
                     $auto_eot_time = $data[12] ? strtotime($data[12]) : '';
                     $custom = $data[13];
                     $subscr_id = $data[14];
                     $subscr_gateway = strtolower($data[15]);
                     $custom_fields = array();
                     // Initialize.
                     if (count($data) > 16) {
                         // Now loop through Custom Fields.
                         for ($i = 16, $j = 0; $i < count($data); $i++, $j++) {
                             if (isset($custom_field_vars[$j])) {
                                 // A field in this position?
                                 $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]);
                             }
                         }
                     }
                 } else {
                     $ID = $data[0];
                     $user_login = is_multisite() ? strtolower($data[1]) : $data[1];
                     $user_login = sanitize_user($user_login, is_multisite());
                     $user_pass = $data[2];
                     $first_name = $data[3];
                     $last_name = $data[4];
                     $display_name = $data[5];
                     $user_email = sanitize_email($data[6]);
                     $user_url = $data[7];
                     $role = $data[8];
                     $custom_capabilities = $data[9];
                     $user_registered = $data[10] ? date('Y-m-d H:i:s', strtotime($data[10])) : '';
                     $paid_registration_times = $data[11] ? maybe_unserialize($data[11]) : '';
                     $last_payment_time = $data[12] ? strtotime($data[12]) : '';
                     $auto_eot_time = $data[13] ? strtotime($data[13]) : '';
                     $custom = $data[14];
                     $subscr_id = $data[15];
                     $subscr_gateway = strtolower($data[16]);
                     $custom_fields = array();
                     // Initialize.
                     if (count($data) > 17) {
                         // Now loop through Custom Fields.
                         for ($i = 17, $j = 0; $i < count($data); $i++, $j++) {
                             if (isset($custom_field_vars[$j])) {
                                 // A field in this position?
                                 $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]);
                             }
                         }
                     }
                 }
                 $role = is_numeric($role) ? $role == 0 ? 'subscriber' : 's2member_level' . $role : $role;
                 if ($paid_registration_times && !is_array($paid_registration_times)) {
                     $paid_registration_times = array('level' => strtotime($paid_registration_times));
                 }
                 $paid_registration_times = !$paid_registration_times || !is_array($paid_registration_times) ? array() : $paid_registration_times;
                 $user_details = compact('ID', 'user_login', 'user_pass', 'first_name', 'last_name', 'display_name', 'user_email', 'user_url', 'role', 'user_registered');
                 if (empty($user_details['user_pass'])) {
                     // If there was NO Password given.
                     unset($user_details['user_pass']);
                 }
                 // Unset the Password array element.
                 if ($ID) {
                     if (is_object($user = new WP_User($ID)) && $user->ID) {
                         if (!is_multisite() || is_user_member_of_blog($ID)) {
                             if ((!is_multisite() || !is_super_admin($ID)) && !$user->has_cap('administrator')) {
                                 if (strtolower($role) !== 'administrator') {
                                     if ($user_email && is_email($user_email)) {
                                         if ($user_login) {
                                             if (validate_username($user_login)) {
                                                 if (($_same_email = strtolower($user_email) === strtolower($user->user_email)) || !email_exists($user_email)) {
                                                     if (($_same_login = strtolower($user_login) === strtolower($user->user_login)) || !username_exists($user_login)) {
                                                         if (!is_multisite() || $_same_email && $_same_login || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_['errors']) || !$_['errors']->get_error_code())) {
                                                             if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                                                                 unset($user_details['user_login'], $user_details['user_pass']);
                                                             }
                                                             if ($user_id = wp_update_user(wp_slash($user_details))) {
                                                                 $user = new WP_User($ID);
                                                                 // Refresh object value.
                                                                 update_user_option($user_id, 's2member_custom', $custom);
                                                                 update_user_option($user_id, 's2member_subscr_id', $subscr_id);
                                                                 update_user_option($user_id, 's2member_subscr_gateway', $subscr_gateway);
                                                                 update_user_option($user_id, 's2member_auto_eot_time', $auto_eot_time);
                                                                 update_user_option($user_id, 's2member_paid_registration_times', $paid_registration_times);
                                                                 update_user_option($user_id, 's2member_last_payment_time', $last_payment_time);
                                                                 update_user_option($user_id, 's2member_custom_fields', $custom_fields);
                                                                 foreach ($user->allcaps as $cap => $cap_enabled) {
                                                                     if (preg_match('/^access_s2member_ccap_/', $cap)) {
                                                                         $user->remove_cap($ccap = $cap);
                                                                     }
                                                                 }
                                                                 if ($custom_capabilities && preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) {
                                                                     foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) as $ccap) {
                                                                         if (strlen($ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $ccap))))) {
                                                                             $user->add_cap('access_s2member_ccap_' . $ccap);
                                                                         }
                                                                     }
                                                                 }
                                                                 $imported = $imported + 1;
                                                             } else {
                                                                 $errors[] = 'Line #' . $line . '. User ID# <code>' . $ID . '</code> could NOT be updated. Unknown error, please try again.';
                                                             }
                                                         } else {
                                                             $errors[] = 'Line #' . $line . '. Network. The Username and/or Email (<code>' . esc_html($user_login) . '</code> / <code>' . esc_html($user_email) . '</code>) are in conflict w/ Network rules.';
                                                         }
                                                     } else {
                                                         $errors[] = 'Line #' . $line . '. Conflicting. The Username (<code>' . esc_html($user_login) . '</code>), already exists.';
                                                     }
                                                 } else {
                                                     $errors[] = 'Line #' . $line . '. Conflicting. The Email address (<code>' . esc_html($user_email) . '</code>), already exists.';
                                                 }
                                             } else {
                                                 $errors[] = 'Line #' . $line . '. Invalid Username (<code>' . esc_html($user_login) . '</code>). Lowercase alphanumerics are required.';
                                             }
                                         } else {
                                             $errors[] = 'Line #' . $line . '. Missing Username; please try again.';
                                         }
                                         // We have two separate errors for Usernames. This provides clarity.
                                     } else {
                                         $errors[] = 'Line #' . $line . '. Missing or invalid Email address (<code>' . esc_html($user_email) . '</code>); please try again.';
                                     }
                                 } else {
                                     $errors[] = 'Line #' . $line . '. User ID# <code>' . $ID . '</code> cannot be updated to an Administrator. Bypassing this line for security.';
                                 }
                             } else {
                                 $errors[] = 'Line #' . $line . '. User ID# <code>' . $ID . '</code> belongs to an Administrator. Bypassing this line for security.';
                             }
                         } else {
                             $errors[] = 'Line #' . $line . '. User ID# <code>' . $ID . '</code> does NOT belong to an existing User on this site.';
                         }
                     } else {
                         $errors[] = 'Line #' . $line . '. User ID# <code>' . $ID . '</code> does NOT belong to an existing User.';
                     }
                 } else {
                     if (is_multisite() && ($user_id = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($user_login, $user_email)) && !is_super_admin($user_id)) {
                         if (strtolower($role) !== 'administrator') {
                             if (add_existing_user_to_blog(array('user_id' => $user_id, 'role' => $role))) {
                                 if (is_object($user = new WP_User($user_id)) && $user->ID) {
                                     update_user_option($user_id, 's2member_custom', $custom);
                                     update_user_option($user_id, 's2member_subscr_id', $subscr_id);
                                     update_user_option($user_id, 's2member_subscr_gateway', $subscr_gateway);
                                     update_user_option($user_id, 's2member_auto_eot_time', $auto_eot_time);
                                     update_user_option($user_id, 's2member_paid_registration_times', $paid_registration_times);
                                     update_user_option($user_id, 's2member_last_payment_time', $last_payment_time);
                                     update_user_option($user_id, 's2member_custom_fields', $custom_fields);
                                     foreach ($user->allcaps as $cap => $cap_enabled) {
                                         if (preg_match('/^access_s2member_ccap_/', $cap)) {
                                             $user->remove_cap($ccap = $cap);
                                         }
                                     }
                                     if ($custom_capabilities && preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) {
                                         foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) as $ccap) {
                                             if (strlen($ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $ccap))))) {
                                                 $user->add_cap('access_s2member_ccap_' . $ccap);
                                             }
                                         }
                                     }
                                     $imported = $imported + 1;
                                 } else {
                                     $errors[] = 'Line #' . $line . '. Unknown object error, please try again.';
                                 }
                             } else {
                                 $errors[] = 'Line #' . $line . '. Unknown User/site addition error, please try again.';
                             }
                         } else {
                             $errors[] = 'Line #' . $line . '. Role cannot be Administrator. Bypassing this line for security.';
                         }
                     } else {
                         if (strtolower($role) !== 'administrator') {
                             if ($user_email && is_email($user_email)) {
                                 if ($user_login) {
                                     if (validate_username($user_login)) {
                                         if (!email_exists($user_email)) {
                                             if (!username_exists($user_login)) {
                                                 if (!is_multisite() || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_['errors']) || !$_['errors']->get_error_code())) {
                                                     if ($user_id = wp_insert_user(wp_slash(empty($user_details['user_pass']) ? array_merge($user_details, array('user_pass' => wp_generate_password(12, FALSE))) : $user_details))) {
                                                         if (is_object($user = new WP_User($user_id)) && $user->ID) {
                                                             if ($user_pass) {
                                                                 // If we are given an 'un-encrypted Password'.
                                                                 wp_update_user(wp_slash(array('ID' => $user_id, 'user_pass' => $user_pass)));
                                                             }
                                                             if (is_multisite()) {
                                                                 // New Users on a Multisite Network need this too.
                                                                 update_user_meta($user_id, 's2member_originating_blog', $current_blog->blog_id);
                                                             }
                                                             update_user_option($user_id, 's2member_custom', $custom);
                                                             update_user_option($user_id, 's2member_subscr_id', $subscr_id);
                                                             update_user_option($user_id, 's2member_subscr_gateway', $subscr_gateway);
                                                             update_user_option($user_id, 's2member_auto_eot_time', $auto_eot_time);
                                                             update_user_option($user_id, 's2member_paid_registration_times', $paid_registration_times);
                                                             update_user_option($user_id, 's2member_last_payment_time', $last_payment_time);
                                                             update_user_option($user_id, 's2member_custom_fields', $custom_fields);
                                                             foreach ($user->allcaps as $cap => $cap_enabled) {
                                                                 if (preg_match('/^access_s2member_ccap_/', $cap)) {
                                                                     $user->remove_cap($ccap = $cap);
                                                                 }
                                                             }
                                                             if ($custom_capabilities && preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) {
                                                                 foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $custom_capabilities))) as $ccap) {
                                                                     if (strlen($ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $ccap))))) {
                                                                         $user->add_cap('access_s2member_ccap_' . $ccap);
                                                                     }
                                                                 }
                                                             }
                                                             $imported = $imported + 1;
                                                         } else {
                                                             $errors[] = 'Line #' . $line . '. Unknown object error, please try again.';
                                                         }
                                                     } else {
                                                         $errors[] = 'Line #' . $line . '. Unknown insertion error, please try again.';
                                                     }
                                                 } else {
                                                     $errors[] = 'Line #' . $line . '. Network. The Username and/or Email (<code>' . esc_html($user_login) . '</code> / <code>' . esc_html($user_email) . '</code>) are in conflict w/ Network rules.';
                                                 }
                                             } else {
                                                 $errors[] = 'Line #' . $line . '. Conflicting. The Username (<code>' . esc_html($user_login) . '</code>), already exists.';
                                             }
                                         } else {
                                             $errors[] = 'Line #' . $line . '. Conflicting. The Email address (<code>' . esc_html($user_email) . '</code>), already exists.';
                                         }
                                     } else {
                                         $errors[] = 'Line #' . $line . '. Invalid Username (<code>' . esc_html($user_login) . '</code>). Lowercase alphanumerics are required.';
                                     }
                                 } else {
                                     $errors[] = 'Line #' . $line . '. Missing Username; please try again.';
                                 }
                                 // We have two separate errors for Usernames. This provides clarity.
                             } else {
                                 $errors[] = 'Line #' . $line . '. Missing or invalid Email address (<code>' . esc_html($user_email) . '</code>); please try again.';
                             }
                         } else {
                             $errors[] = 'Line #' . $line . '. Role cannot be Administrator. Bypassing this line for security.';
                         }
                     }
                 }
             }
             fclose($file);
             // Close the file resource handle now.
         } else {
             $errors[] = 'No data was received. Please try again.';
         }
         // The upload failed, or it was empty.
         c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Users/Members imported: <code>' . (int) $imported . '</code>.');
         if (!empty($errors)) {
             // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation.
             c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode('</li><li>', $errors) . '</li></ul>', TRUE);
         }
     }
 }
コード例 #14
0
ファイル: login-link-action.php プロジェクト: adwleg/site
function cupid_sign_up_ajax_callback()
{
    include_once ABSPATH . WPINC . '/ms-functions.php';
    include_once ABSPATH . WPINC . '/user.php';
    ob_start();
    global $wpdb;
    //We shall SQL escape all inputs to avoid sql injection.
    $user_name = esc_sql($_REQUEST['username']);
    $user_email = esc_sql($_REQUEST['email']);
    $error = wpmu_validate_user_signup($user_name, $user_email);
    $code = 1;
    $message = '';
    if ($error['errors']->get_error_code() != '') {
        $code = -1;
        foreach ($error['errors']->get_error_messages() as $key => $value) {
            $message .= '<div/>' . __('<strong>ERROR:</strong> ', 'cupid') . esc_html($value) . '</div>';
        }
    } else {
        register_new_user($user_name, $user_email);
    }
    $response_data = array('code' => $code, 'message' => $message);
    ob_end_clean();
    echo json_encode($response_data);
    die;
    // this is required to return a proper result
}
コード例 #15
0
/**
 * Validate user signup name and email
 *
 * @since MU
 *
 * @return array Contains username, email, and error messages.
 */
function validate_user_form()
{
    return wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
}
コード例 #16
0
ファイル: register.php プロジェクト: scottnkerr/eeco
 /**
  * Register function.
  *
  * Handles registering new users and updating existing users.
  *
  * @since 2.2.1
  *
  * @param  string $toggle toggles the function between 'register' and 'update'.
  * @global int    $user_ID
  * @global string $wpmem_themsg
  * @global array  $userdata
  * @return string $wpmem_themsg|success|editsuccess
  */
 function wpmem_registration($toggle)
 {
     // Get the globals.
     global $user_ID, $wpmem, $wpmem_themsg, $userdata;
     // Check the nonce.
     if (defined('WPMEM_USE_NONCE')) {
         if (empty($_POST) || !wp_verify_nonce($_POST['wpmem-form-submit'], 'wpmem-validate-submit')) {
             $wpmem_themsg = __('There was an error processing the form.', 'wp-members');
             return;
         }
     }
     // Is this a registration or a user profile update?
     if ($toggle == 'register') {
         $fields['username'] = isset($_POST['log']) ? sanitize_user($_POST['log']) : '';
     }
     // Add the user email to the $fields array for _data hooks.
     $fields['user_email'] = isset($_POST['user_email']) ? $_POST['user_email'] : '';
     // Build the $fields array from $_POST data.
     $wpmem_fields = $wpmem->fields;
     // get_option( 'wpmembers_fields' );
     foreach ($wpmem_fields as $meta) {
         if ($meta[4] == 'y') {
             if ($meta[2] != 'password') {
                 $fields[$meta[2]] = isset($_POST[$meta[2]]) ? sanitize_text_field($_POST[$meta[2]]) : '';
             } else {
                 // We do have password as part of the registration form.
                 $fields['password'] = isset($_POST['password']) ? $_POST['password'] : '';
             }
         }
     }
     /**
      * Filter the submitted form field date prior to validation.
      *
      * @since 2.8.2
      *
      * @param array $fields An array of the posted form field data.
      */
     $fields = apply_filters('wpmem_pre_validate_form', $fields);
     // Check for required fields, reverse the array for logical error message order.
     $wpmem_fields_rev = array_reverse($wpmem_fields);
     foreach ($wpmem_fields_rev as $meta) {
         $pass_arr = array('password', 'confirm_password', 'password_confirm');
         $pass_chk = $toggle == 'update' && in_array($meta[2], $pass_arr) ? true : false;
         if ($meta[5] == 'y' && $pass_chk == false) {
             if (!$fields[$meta[2]]) {
                 $wpmem_themsg = sprintf(__('Sorry, %s is a required field.', 'wp-members'), $meta[1]);
             }
         }
     }
     switch ($toggle) {
         case "register":
             if (is_multisite()) {
                 // Multisite has different requirements.
                 $result = wpmu_validate_user_signup($fields['username'], $fields['user_email']);
                 $errors = $result['errors'];
                 if ($errors->errors) {
                     $wpmem_themsg = $errors->get_error_message();
                     return $wpmem_themsg;
                     exit;
                 }
             } else {
                 // Validate username and email fields.
                 $wpmem_themsg = email_exists($fields['user_email']) ? "email" : $wpmem_themsg;
                 $wpmem_themsg = username_exists($fields['username']) ? "user" : $wpmem_themsg;
                 $wpmem_themsg = !is_email($fields['user_email']) ? __('You must enter a valid email address.', 'wp-members') : $wpmem_themsg;
                 $wpmem_themsg = !validate_username($fields['username']) ? __('The username cannot include non-alphanumeric characters.', 'wp-members') : $wpmem_themsg;
                 $wpmem_themsg = !$fields['username'] ? __('Sorry, username is a required field', 'wp-members') : $wpmem_themsg;
                 // If there is an error from username, email, or required field validation, stop registration and return the error.
                 if ($wpmem_themsg) {
                     return $wpmem_themsg;
                     exit;
                 }
             }
             // If form contains password and email confirmation, validate that they match.
             if (array_key_exists('confirm_password', $fields) && $fields['confirm_password'] != $fields['password']) {
                 $wpmem_themsg = __('Passwords did not match.', 'wp-members');
             }
             if (array_key_exists('confirm_email', $fields) && $fields['confirm_email'] != $fields['user_email']) {
                 $wpmem_themsg = __('Emails did not match.', 'wp-members');
             }
             // Get the captcha settings (api keys).
             $wpmem_captcha = get_option('wpmembers_captcha');
             // If captcha is on, check the captcha.
             if ($wpmem->captcha == 1 && $wpmem_captcha['recaptcha']) {
                 // If there is no api key, the captcha never displayed to the end user.
                 if ($wpmem_captcha['recaptcha']['public'] && $wpmem_captcha['recaptcha']['private']) {
                     if (!$_POST["recaptcha_response_field"]) {
                         // validate for empty captcha field
                         $wpmem_themsg = __('You must complete the CAPTCHA form.', 'wp-members');
                         return "empty";
                         exit;
                     }
                 }
                 // Check to see if the recaptcha library has already been loaded by another plugin.
                 if (!function_exists('_recaptcha_qsencode')) {
                     require_once WPMEM_PATH . 'lib/recaptchalib.php';
                 }
                 $publickey = $wpmem_captcha['recaptcha']['public'];
                 $privatekey = $wpmem_captcha['recaptcha']['private'];
                 // The response from reCAPTCHA.
                 $resp = null;
                 // The error code from reCAPTCHA, if any.
                 $error = null;
                 if ($_POST["recaptcha_response_field"]) {
                     $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
                     if (!$resp->is_valid) {
                         // Set the error code so that we can display it.
                         global $wpmem_captcha_err;
                         $wpmem_captcha_err = $resp->error;
                         $wpmem_captcha_err = wpmem_get_captcha_err($wpmem_captcha_err);
                         return "captcha";
                         exit;
                     }
                 }
                 // End check recaptcha.
             } elseif ($wpmem->captcha == 2) {
                 if (defined('REALLYSIMPLECAPTCHA_VERSION')) {
                     // Validate Really Simple Captcha.
                     $wpmem_captcha = new ReallySimpleCaptcha();
                     // This variable holds the CAPTCHA image prefix, which corresponds to the correct answer.
                     $wpmem_captcha_prefix = isset($_POST['captcha_prefix']) ? $_POST['captcha_prefix'] : '';
                     // This variable holds the CAPTCHA response, entered by the user.
                     $wpmem_captcha_code = isset($_POST['captcha_code']) ? $_POST['captcha_code'] : '';
                     // Check CAPTCHA validity.
                     $wpmem_captcha_correct = $wpmem_captcha->check($wpmem_captcha_prefix, $wpmem_captcha_code) ? true : false;
                     // Clean up the tmp directory.
                     $wpmem_captcha->remove($wpmem_captcha_prefix);
                     $wpmem_captcha->cleanup();
                     // If CAPTCHA validation fails (incorrect value entered in CAPTCHA field), return an error.
                     if (!$wpmem_captcha_correct) {
                         $wpmem_themsg = wpmem_get_captcha_err('really-simple');
                         return "empty";
                         exit;
                     }
                 }
             } elseif ($wpmem->captcha == 3 && $wpmem_captcha['recaptcha']) {
                 // Get the captcha response.
                 if (isset($_POST['g-recaptcha-response'])) {
                     $captcha = $_POST['g-recaptcha-response'];
                 }
                 // If there is no captcha value, return error.
                 if (!$captcha) {
                     $wpmem_themsg = __('You must complete the CAPTCHA form.', 'wp-members');
                     return "empty";
                     exit;
                 }
                 // We need the private key for validation.
                 $privatekey = $wpmem_captcha['recaptcha']['private'];
                 // Validate the captcha.
                 $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $privatekey . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
                 // Decode the json response.
                 $response = json_decode($response, true);
                 // If captcha validation was unsuccessful.
                 if ($response['success'] == false) {
                     $wpmem_themsg = __('CAPTCHA was not valid.', 'wp-members');
                     return "empty";
                     exit;
                 }
             }
             // Check for user defined password.
             $fields['password'] = !isset($_POST['password']) ? wp_generate_password() : $_POST['password'];
             // Add for _data hooks
             $fields['user_registered'] = gmdate('Y-m-d H:i:s');
             $fields['user_role'] = get_option('default_role');
             $fields['wpmem_reg_ip'] = $_SERVER['REMOTE_ADDR'];
             $fields['wpmem_reg_url'] = isset($_REQUEST['wpmem_reg_page']) ? $_REQUEST['wpmem_reg_page'] : $_REQUEST['redirect_to'];
             /*
              * These native fields are not installed by default, but if they
              * are added, use the $_POST value - otherwise, default to username.
              * Value can be filtered with wpmem_register_data.
              */
             $fields['user_nicename'] = isset($_POST['user_nicename']) ? sanitize_title($_POST['user_nicename']) : $fields['username'];
             $fields['display_name'] = isset($_POST['display_name']) ? sanitize_user($_POST['display_name']) : $fields['username'];
             $fields['nickname'] = isset($_POST['nickname']) ? sanitize_user($_POST['nickname']) : $fields['username'];
             /**
              * Filter registration data after validation before data insertion.
              *
              * @since 2.8.2
              *
              * @param array  $fields An array of the registration field data.
              * @param string $toggle A switch to indicate the action (new|edit).
              */
             $fields = apply_filters('wpmem_register_data', $fields, 'new');
             /**
              * Fires before any insertion/emails.
              *
              * This action is the final step in pre registering a user. This
              * can be used for attaching custom validation to the registration
              * process. It cannot be used for changing any user registration
              * data. Use the wpmem_register_data filter for that.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_pre_register_data', $fields);
             // If the _pre_register_data hook sends back an error message.
             if ($wpmem_themsg) {
                 return $wpmem_themsg;
             }
             // Main new user fields are ready.
             $new_user_fields = array('user_pass' => $fields['password'], 'user_login' => $fields['username'], 'user_nicename' => $fields['user_nicename'], 'user_email' => $fields['user_email'], 'display_name' => $fields['display_name'], 'nickname' => $fields['nickname'], 'user_registered' => $fields['user_registered'], 'role' => $fields['user_role']);
             // Get any excluded meta fields.
             $excluded_meta = wpmem_get_excluded_meta('register');
             // Fields for wp_insert_user: user_url, first_name, last_name, description, jabber, aim, yim.
             $new_user_fields_meta = array('user_url', 'first_name', 'last_name', 'description', 'jabber', 'aim', 'yim');
             foreach ($wpmem_fields as $meta) {
                 if (in_array($meta[2], $new_user_fields_meta)) {
                     if ($meta[4] == 'y' && !in_array($meta[2], $excluded_meta)) {
                         $new_user_fields[$meta[2]] = $fields[$meta[2]];
                     }
                 }
             }
             // Inserts to wp_users table.
             $fields['ID'] = wp_insert_user($new_user_fields);
             // Set remaining fields to wp_usermeta table.
             foreach ($wpmem_fields as $meta) {
                 // If the field is not excluded, update accordingly.
                 if (!in_array($meta[2], $excluded_meta) && !in_array($meta[2], $new_user_fields_meta)) {
                     if ($meta[4] == 'y' && $meta[2] != 'user_email') {
                         update_user_meta($fields['ID'], $meta[2], $fields[$meta[2]]);
                     }
                 }
             }
             // Capture IP address of user at registration.
             update_user_meta($fields['ID'], 'wpmem_reg_ip', $fields['wpmem_reg_ip']);
             // Store the registration url.
             update_user_meta($fields['ID'], 'wpmem_reg_url', $fields['wpmem_reg_url']);
             // Set user expiration, if used.
             if ($wpmem->use_exp == 1 && $wpmem->mod_reg != 1) {
                 wpmem_set_exp($fields['ID']);
             }
             /**
              * Fires after user insertion but before email.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_post_register_data', $fields);
             require_once WPMEM_PATH . 'inc/email.php';
             /*
              * If this was successful, and you have email properly
              * configured, send a notification email to the user.
              */
             wpmem_inc_regemail($fields['ID'], $fields['password'], $wpmem->mod_reg, $wpmem_fields, $fields);
             // Notify admin of new reg, if needed.
             if ($wpmem->notify == 1) {
                 wpmem_notify_admin($fields['ID'], $wpmem_fields);
             }
             /**
              * Fires after registration is complete.
              *
              * @since 2.7.1
              */
             do_action('wpmem_register_redirect');
             // successful registration message
             return "success";
             exit;
             break;
         case "update":
             if ($wpmem_themsg) {
                 return "updaterr";
                 exit;
             }
             /*
              * Doing a check for existing email is not the same as a new reg. check first to 
              * see if it's different, then check if it is a valid address and it exists.
              */
             global $current_user;
             get_currentuserinfo();
             if ($fields['user_email'] != $current_user->user_email) {
                 if (email_exists($fields['user_email'])) {
                     return "email";
                     exit;
                 }
                 if (!is_email($fields['user_email'])) {
                     $wpmem_themsg = __('You must enter a valid email address.', 'wp-members');
                     return "updaterr";
                     exit;
                 }
             }
             // If form includes email confirmation, validate that they match.
             if (array_key_exists('confirm_email', $fields) && $fields['confirm_email'] != $fields['user_email']) {
                 $wpmem_themsg = __('Emails did not match.', 'wp-members');
             }
             // Add the user_ID to the fields array.
             $fields['ID'] = $user_ID;
             /**
              * Filter registration data after validation before data insertion.
              *
              * @since 2.8.2
              *
              * @param array  $fields An array of the registration field data.
              * @param string $toggle A switch to indicate the action (new|edit).
              */
             $fields = apply_filters('wpmem_register_data', $fields, 'edit');
             /**
              * Fires before data insertion.
              *
              * This action is the final step in pre updating a user. This
              * can be used for attaching custom validation to the update
              * process. It cannot be used for changing any user update
              * data. Use the wpmem_register_data filter for that.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted update data.
              */
             do_action('wpmem_pre_update_data', $fields);
             /*
              * If the _pre_update_data hook sends back an error message.
              * @todo - double check this. it should probably return "updaterr" and the hook should globalize wpmem_themsg
              */
             if ($wpmem_themsg) {
                 return $wpmem_themsg;
             }
             // A list of fields that can be updated by wp_update_user.
             $native_fields = array('user_nicename', 'user_url', 'user_email', 'display_name', 'nickname', 'first_name', 'last_name', 'description', 'role', 'jabber', 'aim', 'yim');
             $native_update = array('ID' => $user_ID);
             foreach ($wpmem_fields as $meta) {
                 // If the field is not excluded, update accordingly.
                 if (!in_array($meta[2], wpmem_get_excluded_meta('update'))) {
                     switch ($meta[2]) {
                         // If the field can be updated by wp_update_user.
                         case in_array($meta[2], $native_fields):
                             $fields[$meta[2]] = isset($fields[$meta[2]]) ? $fields[$meta[2]] : '';
                             $native_update[$meta[2]] = $fields[$meta[2]];
                             break;
                             // If the field is password.
                         // If the field is password.
                         case 'password':
                             // Do nothing.
                             break;
                             // Everything else goes into wp_usermeta.
                         // Everything else goes into wp_usermeta.
                         default:
                             if ($meta[4] == 'y') {
                                 update_user_meta($user_ID, $meta[2], $fields[$meta[2]]);
                             }
                             break;
                     }
                 }
             }
             // Update wp_update_user fields.
             wp_update_user($native_update);
             /**
              * Fires at the end of user update data insertion.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_post_update_data', $fields);
             return "editsuccess";
             exit;
             break;
     }
 }
コード例 #17
0
	public function test_should_not_fail_for_existing_signup_with_same_email_if_signup_is_old() {
		// Don't send notifications.
		add_filter( 'wpmu_signup_user_notification', '__return_true' );
		wpmu_signup_user( 'foo123', '*****@*****.**' );
		remove_filter( 'wpmu_signup_user_notification', '__return_true' );

		global $wpdb;
		$date = date( 'Y-m-d H:i:s', time() - ( 2 * DAY_IN_SECONDS ) - 60 );
		$wpdb->update( $wpdb->signups, array( 'registered' => $date ), array( 'user_login' => 'foo123' ) );

		$v = wpmu_validate_user_signup( 'foo2', '*****@*****.**' );
		$this->assertNotContains( 'user_email', $v['errors']->get_error_codes() );
	}
コード例 #18
0
 /**
  * Creates a single user.
  *
  * @since 4.7.0
  * @access public
  *
  * @param WP_REST_Request $request Full details about the request.
  * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
  */
 public function create_item($request)
 {
     if (!empty($request['id'])) {
         return new WP_Error('rest_user_exists', __('Cannot create existing resource.'), array('status' => 400));
     }
     $schema = $this->get_item_schema();
     if (!empty($request['roles']) && !empty($schema['properties']['roles'])) {
         $check_permission = $this->check_role_update($request['id'], $request['roles']);
         if (is_wp_error($check_permission)) {
             return $check_permission;
         }
     }
     $user = $this->prepare_item_for_database($request);
     if (is_multisite()) {
         $ret = wpmu_validate_user_signup($user->user_login, $user->user_email);
         if (is_wp_error($ret['errors']) && !empty($ret['errors']->errors)) {
             return $ret['errors'];
         }
     }
     if (is_multisite()) {
         $user_id = wpmu_create_user($user->user_login, $user->user_pass, $user->user_email);
         if (!$user_id) {
             return new WP_Error('rest_user_create', __('Error creating new resource.'), array('status' => 500));
         }
         $user->ID = $user_id;
         $user_id = wp_update_user($user);
         if (is_wp_error($user_id)) {
             return $user_id;
         }
         add_user_to_blog(get_site()->id, $user_id, '');
     } else {
         $user_id = wp_insert_user($user);
         if (is_wp_error($user_id)) {
             return $user_id;
         }
     }
     $user = get_user_by('id', $user_id);
     if (!empty($request['roles']) && !empty($schema['properties']['roles'])) {
         array_map(array($user, 'add_role'), $request['roles']);
     }
     if (!empty($schema['properties']['meta']) && isset($request['meta'])) {
         $meta_update = $this->meta->update_value($request['meta'], $user_id);
         if (is_wp_error($meta_update)) {
             return $meta_update;
         }
     }
     $fields_update = $this->update_additional_fields_for_object($user, $request);
     if (is_wp_error($fields_update)) {
         return $fields_update;
     }
     /**
      * Fires immediately after a user is created or updated via the REST API.
      *
      * @since 4.7.0
      *
      * @param WP_User         $user     Data used to create the user.
      * @param WP_REST_Request $request  Request object.
      * @param bool            $creating True when creating user, false when updating user.
      */
     do_action('rest_insert_user', $user, $request, true);
     $request->set_param('context', 'edit');
     $response = $this->prepare_item_for_response($user, $request);
     $response = rest_ensure_response($response);
     $response->set_status(201);
     $response->header('Location', rest_url(sprintf('%s/%s/%d', $this->namespace, $this->rest_base, $user_id)));
     return $response;
 }
コード例 #19
0
 /**
  * Register function
  *
  * Handles registering new users and updating existing users.
  *
  * @since 2.2.1
  *
  * @param  string $toggle toggles the function between 'register' and 'update'.
  * @global int    $user_ID
  * @global string $wpmem_themsg
  * @global array  $userdata
  * @return string $wpmem_themsg|success|editsuccess
  */
 function wpmem_registration($toggle)
 {
     // get the globals
     global $user_ID, $wpmem_themsg, $userdata;
     // check the nonce
     if (defined('WPMEM_USE_NONCE')) {
         if (empty($_POST) || !wp_verify_nonce($_POST['wpmem-form-submit'], 'wpmem-validate-submit')) {
             $wpmem_themsg = __('There was an error processing the form.', 'wp-members');
             return;
         }
     }
     // is this a registration or a user profile update?
     if ($toggle == 'register') {
         $fields['username'] = isset($_POST['log']) ? sanitize_user($_POST['log']) : '';
     }
     // add the user email to the $fields array for _data hooks
     $fields['user_email'] = isset($_POST['user_email']) ? $_POST['user_email'] : '';
     // build the $fields array from $_POST data
     $wpmem_fields = get_option('wpmembers_fields');
     foreach ($wpmem_fields as $meta) {
         if ($meta[4] == 'y') {
             if ($meta[2] != 'password') {
                 $fields[$meta[2]] = isset($_POST[$meta[2]]) ? sanitize_text_field($_POST[$meta[2]]) : '';
             } else {
                 // we do have password as part of the registration form
                 $fields['password'] = isset($_POST['password']) ? $_POST['password'] : '';
             }
         }
     }
     /**
      * Filter the submitted form field date prior to validation.
      *
      * @since 2.8.2
      *
      * @param array $fields An array of the posted form field data.
      */
     $fields = apply_filters('wpmem_pre_validate_form', $fields);
     // check for required fields
     $wpmem_fields_rev = array_reverse($wpmem_fields);
     foreach ($wpmem_fields_rev as $meta) {
         $pass_arr = array('password', 'confirm_password', 'password_confirm');
         $pass_chk = $toggle == 'update' && in_array($meta[2], $pass_arr) ? true : false;
         if ($meta[5] == 'y' && $pass_chk == false) {
             if (!$fields[$meta[2]]) {
                 $wpmem_themsg = sprintf(__('Sorry, %s is a required field.', 'wp-members'), $meta[1]);
             }
         }
     }
     switch ($toggle) {
         case "register":
             if (is_multisite()) {
                 // multisite has different requirements
                 $result = wpmu_validate_user_signup($fields['username'], $fields['user_email']);
                 $errors = $result['errors'];
                 if ($errors->errors) {
                     $wpmem_themsg = $errors->get_error_message();
                     return $wpmem_themsg;
                     exit;
                 }
             } else {
                 if (!$fields['username']) {
                     $wpmem_themsg = __('Sorry, username is a required field', 'wp-members');
                     return $wpmem_themsg;
                     exit;
                 }
                 if (!validate_username($fields['username'])) {
                     $wpmem_themsg = __('The username cannot include non-alphanumeric characters.', 'wp-members');
                     return $wpmem_themsg;
                     exit;
                 }
                 if (!is_email($fields['user_email'])) {
                     $wpmem_themsg = __('You must enter a valid email address.', 'wp-members');
                     return $wpmem_themsg;
                     exit;
                 }
                 if (username_exists($fields['username'])) {
                     return "user";
                     exit;
                 }
                 if (email_exists($fields['user_email'])) {
                     return "email";
                     exit;
                 }
             }
             if ($wpmem_themsg) {
                 return "empty";
                 exit;
             }
             // if form contains password and email confirmation, validate that they match
             if (array_key_exists('confirm_password', $fields) && $fields['confirm_password'] != $fields['password']) {
                 $wpmem_themsg = __('Passwords did not match.', 'wp-members');
             }
             if (array_key_exists('confirm_email', $fields) && $fields['confirm_email'] != $fields['user_email']) {
                 $wpmem_themsg = __('Emails did not match.', 'wp-members');
             }
             $wpmem_captcha = get_option('wpmembers_captcha');
             // get the captcha settings (api keys)
             if (WPMEM_CAPTCHA == 1 && $wpmem_captcha['recaptcha']) {
                 // if captcha is on, check the captcha
                 if ($wpmem_captcha['recaptcha']['public'] && $wpmem_captcha['recaptcha']['private']) {
                     // if there is no api key, the captcha never displayed to the end user
                     if (!$_POST["recaptcha_response_field"]) {
                         // validate for empty captcha field
                         $wpmem_themsg = __('You must complete the CAPTCHA form.', 'wp-members');
                         return "empty";
                         exit;
                     }
                 }
                 // check to see if the recaptcha library has already been loaded by another plugin
                 if (!function_exists('_recaptcha_qsencode')) {
                     require_once 'lib/recaptchalib.php';
                 }
                 $publickey = $wpmem_captcha['recaptcha']['public'];
                 $privatekey = $wpmem_captcha['recaptcha']['private'];
                 // the response from reCAPTCHA
                 $resp = null;
                 // the error code from reCAPTCHA, if any
                 $error = null;
                 if ($_POST["recaptcha_response_field"]) {
                     $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
                     if (!$resp->is_valid) {
                         // set the error code so that we can display it
                         global $wpmem_captcha_err;
                         $wpmem_captcha_err = $resp->error;
                         $wpmem_captcha_err = wpmem_get_captcha_err($wpmem_captcha_err);
                         return "captcha";
                         exit;
                     }
                 }
                 // end check recaptcha
             } elseif (WPMEM_CAPTCHA == 2) {
                 if (defined('REALLYSIMPLECAPTCHA_VERSION')) {
                     /** Validate Really Simple Captcha */
                     $wpmem_captcha = new ReallySimpleCaptcha();
                     // This variable holds the CAPTCHA image prefix, which corresponds to the correct answer
                     $wpmem_captcha_prefix = isset($_POST['captcha_prefix']) ? $_POST['captcha_prefix'] : '';
                     // This variable holds the CAPTCHA response, entered by the user
                     $wpmem_captcha_code = isset($_POST['captcha_code']) ? $_POST['captcha_code'] : '';
                     // Check CAPTCHA validity
                     $wpmem_captcha_correct = $wpmem_captcha->check($wpmem_captcha_prefix, $wpmem_captcha_code) ? true : false;
                     // clean up the tmp directory
                     $wpmem_captcha->remove($wpmem_captcha_prefix);
                     $wpmem_captcha->cleanup();
                     // If CAPTCHA validation fails (incorrect value entered in CAPTCHA field), return an error
                     if (!$wpmem_captcha_correct) {
                         $wpmem_themsg = wpmem_get_captcha_err('really-simple');
                         return "empty";
                         exit;
                     }
                 }
             }
             // check for user defined password
             $fields['password'] = !isset($_POST['password']) ? wp_generate_password() : $_POST['password'];
             // add for _data hooks
             $fields['user_registered'] = gmdate('Y-m-d H:i:s');
             $fields['user_role'] = get_option('default_role');
             $fields['wpmem_reg_ip'] = $_SERVER['REMOTE_ADDR'];
             $fields['wpmem_reg_url'] = $_REQUEST['redirect_to'];
             /**
              * these native fields are not installed by default, but if they
              * are added, use the $_POST value - otherwise, default to username. 
              * value can be filtered with wpmem_register_data
              */
             $fields['user_nicename'] = isset($_POST['user_nicename']) ? sanitize_title($_POST['user_nicename']) : $fields['username'];
             $fields['display_name'] = isset($_POST['display_name']) ? sanitize_user($_POST['display_name']) : $fields['username'];
             $fields['nickname'] = isset($_POST['nickname']) ? sanitize_user($_POST['nickname']) : $fields['username'];
             /**
              * Filter registration data after validation before data insertion.
              *
              * @since 2.8.2
              *
              * @param array $fields An array of the registration field data.
              */
             $fields = apply_filters('wpmem_register_data', $fields);
             /**
              * Fires before any insertion/emails.
              *
              * This action is the final step in pre registering a user. This
              * can be used for attaching custom validation to the registration
              * process. It cannot be used for changing any user registration
              * data. Use the wpmem_register_data filter for that.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_pre_register_data', $fields);
             // if the _pre_register_data hook sends back an error message
             if ($wpmem_themsg) {
                 return $wpmem_themsg;
             }
             // main new user fields are ready
             $new_user_fields = array('user_pass' => $fields['password'], 'user_login' => $fields['username'], 'user_nicename' => $fields['user_nicename'], 'user_email' => $fields['user_email'], 'display_name' => $fields['display_name'], 'nickname' => $fields['nickname'], 'user_registered' => $fields['user_registered'], 'role' => $fields['user_role']);
             // get any excluded meta fields
             $excluded_meta = wpmem_get_excluded_meta('register');
             // user_url, first_name, last_name, description, jabber, aim, yim
             $new_user_fields_meta = array('user_url', 'first_name', 'last_name', 'description', 'jabber', 'aim', 'yim');
             foreach ($wpmem_fields as $meta) {
                 if (in_array($meta[2], $new_user_fields_meta)) {
                     if ($meta[4] == 'y' && !in_array($meta[2], $excluded_meta)) {
                         $new_user_fields[$meta[2]] = $fields[$meta[2]];
                     }
                 }
             }
             // inserts to wp_users table
             $fields['ID'] = wp_insert_user($new_user_fields);
             // set remaining fields to wp_usermeta table
             foreach ($wpmem_fields as $meta) {
                 // if the field is not excluded, update accordingly
                 if (!in_array($meta[2], $excluded_meta) && !in_array($meta[2], $new_user_fields_meta)) {
                     if ($meta[4] == 'y' && $meta[2] != 'user_email') {
                         update_user_meta($fields['ID'], $meta[2], $fields[$meta[2]]);
                     }
                 }
             }
             // capture IP address of user at registration
             update_user_meta($fields['ID'], 'wpmem_reg_ip', $fields['wpmem_reg_ip']);
             // store the registration url
             update_user_meta($fields['ID'], 'wpmem_reg_url', $fields['wpmem_reg_url']);
             // set user expiration, if used
             if (WPMEM_USE_EXP == 1 && WPMEM_MOD_REG != 1) {
                 wpmem_set_exp($fields['ID']);
             }
             /**
              * Fires after user insertion but before email.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_post_register_data', $fields);
             require_once 'wp-members-email.php';
             // if this was successful, and you have email properly
             // configured, send a notification email to the user
             wpmem_inc_regemail($fields['ID'], $fields['password'], WPMEM_MOD_REG, $wpmem_fields, $fields);
             // notify admin of new reg, if needed;
             if (WPMEM_NOTIFY_ADMIN == 1) {
                 wpmem_notify_admin($fields['ID'], $wpmem_fields);
             }
             /**
              * Fires after registration is complete.
              *
              * @since 2.7.1
              */
             do_action('wpmem_register_redirect');
             // successful registration message
             return "success";
             exit;
             break;
         case "update":
             if ($wpmem_themsg) {
                 return "updaterr";
                 exit;
             }
             // doing a check for existing email is not the same as a new reg. check first to
             // see if it's different, then check if it is a valid address and it exists.
             global $current_user;
             get_currentuserinfo();
             if ($fields['user_email'] != $current_user->user_email) {
                 if (email_exists($fields['user_email'])) {
                     return "email";
                     exit;
                 }
                 if (!is_email($fields['user_email'])) {
                     $wpmem_themsg = __('You must enter a valid email address.', 'wp-members');
                     return "updaterr";
                     exit;
                 }
             }
             // if form includes email confirmation, validate that they match
             if (array_key_exists('confirm_email', $fields) && $fields['confirm_email'] != $fields['user_email']) {
                 $wpmem_themsg = __('Emails did not match.', 'wp-members');
             }
             // add the user_ID to the fields array
             $fields['ID'] = $user_ID;
             /**
              * Filter registration data after validation before data insertion.
              *
              * @since 2.8.2
              *
              * @param array $fields An array of the registration field data.
              */
             $fields = apply_filters('wpmem_register_data', $fields);
             /**
              * Fires before data insertion.
              *
              * This action is the final step in pre updating a user. This
              * can be used for attaching custom validation to the update
              * process. It cannot be used for changing any user update
              * data. Use the wpmem_register_data filter for that.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted update data.
              */
             do_action('wpmem_pre_update_data', $fields);
             // if the _pre_update_data hook sends back an error message
             // @todo - double check this. it should probably return "updaterr" and the hook should globalize wpmem_themsg
             if ($wpmem_themsg) {
                 return $wpmem_themsg;
             }
             // a list of fields that can be updated by wp_update_user
             $native_fields = array('user_nicename', 'user_url', 'user_email', 'display_name', 'nickname', 'first_name', 'last_name', 'description', 'role', 'jabber', 'aim', 'yim');
             $native_update = array('ID' => $user_ID);
             foreach ($wpmem_fields as $meta) {
                 // if the field is not excluded, update accordingly
                 if (!in_array($meta[2], wpmem_get_excluded_meta('update'))) {
                     switch ($meta[2]) {
                         // if the field can be updated by wp_update_user
                         case in_array($meta[2], $native_fields):
                             $fields[$meta[2]] = isset($fields[$meta[2]]) ? $fields[$meta[2]] : '';
                             //wp_update_user( array( 'ID' => $user_ID, $meta[2] => $fields[$meta[2]] ) );
                             $native_update[$meta[2]] = $fields[$meta[2]];
                             break;
                             // if the field is password
                         // if the field is password
                         case 'password':
                             // do nothing...
                             break;
                             // everything else goes into wp_usermeta
                         // everything else goes into wp_usermeta
                         default:
                             if ($meta[4] == 'y') {
                                 update_user_meta($user_ID, $meta[2], $fields[$meta[2]]);
                             }
                             break;
                     }
                 }
             }
             // update wp_update_user fields
             wp_update_user($native_update);
             /**
              * Fires at the end of user update data insertion.
              *
              * @since 2.7.2
              *
              * @param array $fields The user's submitted registration data.
              */
             do_action('wpmem_post_update_data', $fields);
             return "editsuccess";
             exit;
             break;
     }
 }
コード例 #20
0
function wpmu_activate_signup($key)
{
    global $wpdb;
    $signup = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->signups} WHERE activation_key = %s", $key));
    if (empty($signup)) {
        return new WP_Error('invalid_key', __('Invalid activation key.'));
    }
    if ($signup->active) {
        return new WP_Error('already_active', __('The blog is already active.'), $signup);
    }
    $meta = unserialize($signup->meta);
    $user_login = $wpdb->escape($signup->user_login);
    $user_email = $wpdb->escape($signup->user_email);
    wpmu_validate_user_signup($user_login, $user_email);
    $password = generate_random_password();
    $user_id = username_exists($user_login);
    if (!$user_id) {
        $user_id = wpmu_create_user($user_login, $password, $user_email);
    } else {
        $user_already_exists = true;
    }
    if (!$user_id) {
        return new WP_Error('create_user', __('Could not create user'), $signup);
    }
    $now = current_time('mysql', true);
    if (empty($signup->domain)) {
        $wpdb->update($wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key));
        if (isset($user_already_exists)) {
            return new WP_Error('user_already_exists', __('That username is already activated.'), $signup);
        }
        wpmu_welcome_user_notification($user_id, $password, $meta);
        if (get_site_option('dashboard_blog') == false) {
            add_user_to_blog('1', $user_id, get_site_option('default_user_role', 'subscriber'));
        } else {
            add_user_to_blog(get_site_option('dashboard_blog'), $user_id, get_site_option('default_user_role', 'subscriber'));
        }
        add_new_user_to_blog($user_id, $user_email, $meta);
        do_action('wpmu_activate_user', $user_id, $password, $meta);
        return array('user_id' => $user_id, 'password' => $password, 'meta' => $meta);
    }
    wpmu_validate_blog_signup($signup->domain, $signup->title);
    $blog_id = wpmu_create_blog($signup->domain, $signup->path, $signup->title, $user_id, $meta, $wpdb->siteid);
    // TODO: What to do if we create a user but cannot create a blog?
    if (is_wp_error($blog_id)) {
        // If blog is taken, that means a previous attempt to activate this blog failed in between creating the blog and
        // setting the activation flag.  Let's just set the active flag and instruct the user to reset their password.
        if ('blog_taken' == $blog_id->get_error_code()) {
            $blog_id->add_data($signup);
            $wpdb->update($wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key));
        }
        return $blog_id;
    }
    $wpdb->update($wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key));
    wpmu_welcome_notification($blog_id, $user_id, $password, $signup->title, $meta);
    do_action('wpmu_activate_blog', $blog_id, $user_id, $password, $signup->title, $meta);
    return array('blog_id' => $blog_id, 'user_id' => $user_id, 'password' => $password, 'title' => $signup->title, 'meta' => $meta);
}
コード例 #21
0
/**
 * Validate new site signup
 *
 * @since MU
 *
 * @uses wpmu_validate_user_signup() to retrieve an array of the new user data and errors
 * @uses wpmu_validate_blog_signup() to retrieve an array of the new site data and errors
 * @uses apply_filters() to make signup $meta filterable
 * @uses signup_user() to signup a new user
 * @uses signup_blog() to signup a the new user to a new site
 * @return bool True if the site signup was validated, false if error
 */
function validate_blog_signup()
{
    // Re-validate user info.
    $result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
    extract($result);
    if ($errors->get_error_code()) {
        signup_user($user_name, $user_email, $errors);
        return false;
    }
    $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
    extract($result);
    if ($errors->get_error_code()) {
        signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
        return false;
    }
    $public = (int) $_POST['blog_public'];
    $meta = array('lang_id' => 1, 'public' => $public);
    //duplicate_hook
    $meta = apply_filters('add_signup_meta', $meta);
    wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
    confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
    return true;
}
コード例 #22
0
 /**
  * Intersects with ``register_new_user()`` through s2Member's Multisite Networking patch.
  *
  * This function Filters registration errors inside `/wp-login.php` via ``register_new_user()``.
  * When an existing Multisite User is registering, this takes over registration processing.
  *
  * This can ONLY be fired through `/wp-login.php` on the front-side.
  *
  * @package s2Member\Registrations
  * @since 3.5
  *
  * @attaches-to ``add_filter('registration_errors');``
  *
  * @param WP_Error $errors Expects a `WP_Error` object passed in by the Filter.
  * @param string   $user_login Expects the User's Username, passed in by the Filter.
  * @param string   $user_email Expects the User's Email Address, passed in by the Filter.
  *
  * @return WP_Error A `WP_Error` object, or exits script execution after handling registration redirection.
  */
 public static function ms_register_existing_user($errors = NULL, $user_login = '', $user_email = '')
 {
     foreach (array_keys(get_defined_vars()) as $__v) {
         $__refs[$__v] =& ${$__v};
     }
     do_action('ws_plugin__s2member_before_ms_register_existing_user', get_defined_vars());
     unset($__refs, $__v);
     // Housekeeping.
     /** @var $ms_errors WP_Error Reference for IDEs. This is needed below. */
     $ci = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ruris_case_sensitive'] ? '' : 'i';
     if (is_multisite()) {
         // This event should ONLY be processed with Multisite Networking.
         if (!is_admin() && preg_match('/\\/wp-login\\.php/' . $ci, $_SERVER['REQUEST_URI'])) {
             if (is_wp_error($errors) && $errors->get_error_codes()) {
                 if ($user_id = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($user_login, $user_email)) {
                     foreach ($errors->get_error_codes() as $error_code) {
                         if (!in_array($error_code, array('username_exists', 'email_exists'))) {
                             $other_important_errors_exist[] = $error_code;
                         }
                     }
                     if (empty($other_important_errors_exist)) {
                         $user_pass = wp_generate_password();
                         // Generate password for this user.
                         $has_custom_password = !empty($GLOBALS['ws_plugin__s2member_custom_password']) && $user_pass === $GLOBALS['ws_plugin__s2member_custom_password'];
                         c_ws_plugin__s2member_registrations::ms_create_existing_user($user_login, $user_email, $user_pass, $user_id);
                         update_user_option($user_id, 'default_password_nag', $has_custom_password ? false : true, true);
                         if (version_compare(get_bloginfo('version'), '4.3.1', '>=')) {
                             wp_new_user_notification($user_id, null, $has_custom_password ? 'admin' : 'both', $user_pass);
                         } else {
                             if (version_compare(get_bloginfo('version'), '4.3', '>=')) {
                                 wp_new_user_notification($user_id, $has_custom_password ? 'admin' : 'both', $user_pass);
                             } else {
                                 wp_new_user_notification($user_id, $user_pass);
                             }
                         }
                         $redirect_to = !empty($_REQUEST['redirect_to']) ? trim(stripslashes($_REQUEST['redirect_to'])) : FALSE;
                         $redirect_to = $redirect_to ? $redirect_to : add_query_arg('checkemail', urlencode('registered'), wp_login_url());
                         do_action('ws_plugin__s2member_during_ms_register_existing_user', get_defined_vars());
                         wp_safe_redirect($redirect_to) . exit;
                         // Safe, like: ``register_new_user()``.
                     }
                 }
             } else {
                 if (($ms = wpmu_validate_user_signup($user_login, $user_email)) && isset($ms['errors']) && is_wp_error($ms_errors = $ms['errors']) && $ms_errors->get_error_code()) {
                     $errors->add($ms_errors->get_error_code(), $ms_errors->get_error_message());
                 }
             }
         }
     }
     return apply_filters('ws_plugin__s2member_ms_register_existing_user', $errors, get_defined_vars());
 }
コード例 #23
0
ファイル: user-new.php プロジェクト: harissonsofia/WordPress
     $user_id = edit_user();
     if (is_wp_error($user_id)) {
         $add_user_errors = $user_id;
     } else {
         if (current_user_can('list_users')) {
             $redirect = 'users.php?update=add&id=' . $user_id;
         } else {
             $redirect = add_query_arg('update', 'add', 'user-new.php');
         }
         wp_redirect($redirect);
         die;
     }
 } else {
     // Adding a new user to this site
     $new_user_email = wp_unslash($_REQUEST['email']);
     $user_details = wpmu_validate_user_signup($_REQUEST['user_login'], $new_user_email);
     if (is_wp_error($user_details['errors']) && !empty($user_details['errors']->errors)) {
         $add_user_errors = $user_details['errors'];
     } else {
         /**
          * Filter the user_login, also known as the username, before it is added to the site.
          *
          * @since 2.0.3
          *
          * @param string $user_login The sanitized username.
          */
         $new_user_login = apply_filters('pre_user_login', sanitize_user(wp_unslash($_REQUEST['user_login']), true));
         if (isset($_POST['noconfirmation']) && is_super_admin()) {
             add_filter('wpmu_signup_user_notification', '__return_false');
             // Disable confirmation email
             add_filter('wpmu_welcome_user_notification', '__return_false');
コード例 #24
0
 /**
  * Handles the importation of Users/Members.
  *
  * @package s2Member\Imports
  * @since 110815
  */
 public static function import_users()
 {
     if (!empty($_POST['ws_plugin__s2member_pro_import_users']) && ($nonce = $_POST['ws_plugin__s2member_pro_import_users']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-pro-import-users') && current_user_can('create_users')) {
         global $wpdb;
         // Global database object reference.
         /** @var \wpdb $wpdb This line for IDEs that need a reference. */
         global $current_site, $current_blog;
         // Multisite Networking.
         @set_time_limit(0);
         // Make time for processing large import files.
         @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
         remove_all_actions('profile_update') . remove_all_actions('user_register');
         remove_all_actions('added_existing_user') . remove_all_actions('add_user_to_blog');
         if (!empty($_FILES['ws_plugin__s2member_pro_import_users_file']) && empty($_FILES['ws_plugin__s2member_pro_import_users_file']['error'])) {
             $file = fopen($_FILES['ws_plugin__s2member_pro_import_users_file']['tmp_name'], 'r');
         } else {
             if (!empty($_POST['ws_plugin__s2member_pro_import_users_direct_input'])) {
                 fwrite($file = tmpfile(), trim(stripslashes($_POST['ws_plugin__s2member_pro_import_users_direct_input']))) . fseek($file, 0);
             }
         }
         $imported = $line = $line_index = 0;
         // Initialize these counters.
         $headers = array();
         // Initialize the array of CSV import file headers.
         $user_keys = array();
         // Initialize array of user keys.
         if (is_object($_user_row = $wpdb->get_row("SELECT * FROM `" . $wpdb->users . "` LIMIT 1"))) {
             foreach (array_keys((array) $_user_row) as $_user_key) {
                 $user_keys[] = $_user_key;
             }
         }
         unset($_user_row, $_user_key);
         // Housekeeping.
         $user_keys = array_unique($user_keys);
         // Only unique keys please.
         if (isset($file) && is_resource($file)) {
             while (($_csv_data = version_compare(PHP_VERSION, '5.3', '>=') ? fgetcsv($file, 0, ',', '"', '"') : fgetcsv($file, 0, ',', '"')) !== FALSE) {
                 $line_index = (int) $line_index + 1;
                 // CSV lines.
                 $line = (int) $line + 1;
                 // CSV lines.
                 $_csv_data = c_ws_plugin__s2member_utils_strings::trim_deep($_csv_data);
                 if ($line_index === 1 && isset($_csv_data[0])) {
                     $line = $line - 1;
                     foreach ($_csv_data as $_header) {
                         $headers[] = $_header;
                     }
                     unset($_header);
                     // Housekeeping.
                     continue;
                     // We've got the headers now; let's move to the next line.
                 }
                 if ($line_index >= 1 && (!$headers || !in_array('ID', $headers, TRUE) && !in_array('user_login', $headers, TRUE))) {
                     $errors[] = 'Line #' . $line . '. Missing first-line CSV headers; please try again.' . ' Please note that your CSV headers MUST contain (at a minimum), one of: "ID", or "user_login"';
                     break;
                     // Stop here; we have no headers in this importation.
                 }
                 $_user_ID_key = array_search('ID', $headers);
                 $_user_id = $_user_ID_key !== FALSE && !empty($_csv_data[$_user_ID_key]) ? (int) $_csv_data[$_user_ID_key] : 0;
                 unset($_user_ID_key);
                 // Housekeeping.
                 $_user_login_key = array_search('user_login', $headers);
                 $_user_login = $_user_login_key !== FALSE && !empty($_csv_data[$_user_login_key]) ? $_csv_data[$_user_login_key] : '';
                 unset($_user_login_key);
                 // Housekeeping.
                 $_user_pass_key = array_search('user_pass', $headers);
                 $_user_pass = $_user_pass_key !== FALSE && !empty($_csv_data[$_user_pass_key]) ? $_csv_data[$_user_pass_key] : '';
                 unset($_user_pass_key);
                 // Housekeeping.
                 $_user_email_key = array_search('user_email', $headers);
                 $_user_email = $_user_email_key !== FALSE && !empty($_csv_data[$_user_email_key]) ? $_csv_data[$_user_email_key] : '';
                 unset($_user_email_key);
                 // Housekeeping.
                 $_user_role_key = array_search('role', $headers);
                 $_user_role = $_user_role_key !== FALSE && !empty($_csv_data[$_user_role_key]) ? $_csv_data[$_user_role_key] : '';
                 $_user_role = is_numeric($_user_role) ? $_user_role == 0 ? 'subscriber' : 's2member_level' . $_user_role : $_user_role;
                 unset($_user_role_key);
                 // Housekeeping.
                 $_user_ccaps_key = array_search('ccaps', $headers);
                 $_user_ccaps = $_user_ccaps_key !== FALSE && !empty($_csv_data[$_user_ccaps_key]) ? $_csv_data[$_user_ccaps_key] : '';
                 unset($_user_ccaps_key);
                 // Housekeeping.
                 if ($_user_login) {
                     if (is_multisite()) {
                         $_user_login = strtolower($_user_login);
                     }
                     $_user_login = sanitize_user($_user_login, is_multisite());
                 }
                 if ($_user_email) {
                     $_user_email = sanitize_email($_user_email);
                 }
                 $_user_id_exists_but_not_on_blog = 0;
                 // Initialize.
                 if (!$_user_id && $_user_login && $_user_email && is_multisite()) {
                     $_user_id = $_user_id_exists_but_not_on_blog = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($_user_login, $_user_email);
                 }
                 if (strcasecmp($_user_role, 'administrator') === 0) {
                     $errors[] = 'Line #' . $line . '. Users cannot be updated to an Administrator. Bypassing this line for security.';
                     continue;
                     // Skip this line.
                 }
                 if ($_user_email && !is_email($_user_email)) {
                     $errors[] = 'Line #' . $line . '. Invalid email address (<code>' . esc_html($_user_email) . '</code>); please try again.';
                     continue;
                     // Skip this line.
                 }
                 if ($_user_login && !validate_username($_user_login)) {
                     $errors[] = 'Line #' . $line . '. Invalid username (<code>' . esc_html($_user_login) . '</code>).';
                     continue;
                     // Skip this line.
                 }
                 if ($_user_id) {
                     if (!is_object($_user = new WP_User($_user_id)) || !$_user->ID) {
                         $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> does NOT belong to an existing User.';
                         continue;
                         // Skip this line.
                     }
                     if (is_super_admin($_user_id) || $_user->has_cap('administrator')) {
                         $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> belongs to an Administrator. Bypassing this line for security.';
                         continue;
                         // Skip this line.
                     }
                     if (is_multisite() && $_user_id_exists_but_not_on_blog && add_existing_user_to_blog(array('user_id' => $_user_id, 'role' => 'subscriber')) !== TRUE) {
                         $errors[] = 'Line #' . $line . '. Unknown user/site addition error, please try again.';
                         continue;
                         // Skip this line.
                     }
                     if (is_multisite() && !is_user_member_of_blog($_user_id)) {
                         $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> does NOT belong to an existing User on this site.';
                         continue;
                         // Skip this line.
                     }
                     if ($_user_email && strcasecmp($_user_email, $_user->user_email) !== 0 && email_exists($_user_email)) {
                         $errors[] = 'Line #' . $line . '. Conflicting; the email address (<code>' . esc_html($_user_email) . '</code>), already exists.';
                         continue;
                         // Skip this line.
                     }
                     if ($_user_login && strcasecmp($_user_login, $_user->user_login) !== 0 && username_exists($_user_login)) {
                         $errors[] = 'Line #' . $line . '. Conflicting; the username (<code>' . esc_html($_user_login) . '</code>), already exists.';
                         continue;
                         // Skip this line.
                     }
                     /** @var WP_Error $_email_login_validation */
                     if (is_multisite() && strcasecmp($_user_email, $_user->user_email) !== 0 && strcasecmp($_user_login, $_user->user_login) !== 0) {
                         if (is_wp_error($_email_login_validation = wpmu_validate_user_signup($_user_login, $_user_email))) {
                             if ($_email_login_validation->get_error_code()) {
                                 $errors[] = 'Line #' . $line . '. Network. The email and/or username (<code>' . esc_html($_user_email) . '</code> / <code>' . esc_html($_user_login) . '</code>) are in conflict w/ network rules.';
                                 continue;
                                 // Skip this line.
                             }
                         }
                     }
                     unset($_email_login_validation);
                     // Housekeeping.
                     $_wp_update_user = array();
                     foreach ($user_keys as $_user_key) {
                         if (($_user_data_key = array_search($_user_key, $headers)) !== FALSE && isset($_csv_data[$_user_data_key])) {
                             $_wp_update_user[$_user_key] = $_csv_data[$_user_data_key];
                         }
                     }
                     unset($_user_key, $_user_data_key);
                     // Housekeeping.
                     if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                         unset($_wp_update_user['user_login'], $_wp_update_user['user_pass']);
                     }
                     if (!wp_update_user(wp_slash($_wp_update_user))) {
                         $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> could NOT be updated. Unknown error, please try again.';
                         continue;
                         // Skip this line.
                     }
                     unset($_wp_update_user);
                     // Housekeeping.
                     clean_user_cache($_user_id);
                     wp_cache_delete($_user_id, 'user_meta');
                     $_user = new WP_User($_user_id);
                     $imported = $imported + 1;
                 } else {
                     if (!$_user_email) {
                         $errors[] = 'Line #' . $line . '. Missing email address.';
                         continue;
                         // Skip this line.
                     }
                     if (email_exists($_user_email)) {
                         $errors[] = 'Line #' . $line . '. Conflicting; the email address (<code>' . esc_html($_user_email) . '</code>), already exists.';
                         continue;
                         // Skip this line.
                     }
                     if (!$_user_login) {
                         $errors[] = 'Line #' . $line . '. Missing user login (i.e., username).';
                         continue;
                         // Skip this line.
                     }
                     if (username_exists($_user_login)) {
                         $errors[] = 'Line #' . $line . '. Conflicting; the username (<code>' . esc_html($_user_login) . '</code>), already exists.';
                         continue;
                         // Skip this line.
                     }
                     /** @var WP_Error $_email_login_validation */
                     if (is_multisite() && is_wp_error($_email_login_validation = wpmu_validate_user_signup($_user_login, $_user_email))) {
                         if ($_email_login_validation->get_error_code()) {
                             $errors[] = 'Line #' . $line . '. Network. The email and/or username (<code>' . esc_html($_user_email) . '</code> / <code>' . esc_html($_user_login) . '</code>) are in conflict w/ network rules.';
                             continue;
                             // Skip this line.
                         }
                     }
                     unset($_email_login_validation);
                     // Housekeeping.
                     if (!($_user_id = wp_insert_user(wp_slash(array('user_login' => $_user_login, 'user_pass' => $_user_pass ? $_user_pass : wp_generate_password(12, FALSE), 'user_email' => $_user_email)))) || is_wp_error($_user_id)) {
                         $errors[] = 'Line #' . $line . '. Unknown insertion error, please try again.';
                         continue;
                         // Skip this line.
                     }
                     $_wp_update_user = array('ID' => $_user_id);
                     foreach ($user_keys as $_user_key) {
                         if (($_user_data_key = array_search($_user_key, $headers)) !== FALSE && isset($_csv_data[$_user_data_key])) {
                             $_wp_update_user[$_user_key] = $_csv_data[$_user_data_key];
                         }
                     }
                     unset($_user_key, $_user_data_key);
                     // Housekeeping.
                     if (!wp_update_user(wp_slash($_wp_update_user))) {
                         $errors[] = 'Line #' . $line . '. Post insertion update failed on User ID# <code>' . esc_html($_user_id) . '</code>. Unknown error, please try again.';
                         continue;
                         // Skip this line.
                     }
                     unset($_wp_update_user);
                     // Housekeeping.
                     if (is_multisite()) {
                         // New Users on a Multisite Network need this too.
                         update_user_meta($_user_id, 's2member_originating_blog', $current_blog->blog_id);
                     }
                     clean_user_cache($_user_id);
                     wp_cache_delete($_user_id, 'user_meta');
                     $_user = new WP_User($_user_id);
                     $imported = $imported + 1;
                 }
                 if ($_user_role) {
                     $_user->set_role($_user_role);
                 }
                 if ($_user_ccaps) {
                     foreach ($_user->allcaps as $_cap => $_cap_enabled) {
                         if (preg_match('/^access_s2member_ccap_/', $_cap)) {
                             $_user->remove_cap($_cap);
                         }
                     }
                     unset($_cap, $_cap_enabled);
                     // Housekeeping.
                     if (preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $_user_ccaps))) {
                         foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $_user_ccaps))) as $_ccap) {
                             if (strlen($_ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $_ccap))))) {
                                 $_user->add_cap('access_s2member_ccap_' . $_ccap);
                             }
                         }
                     }
                 }
                 $_user_custom_fields = get_user_option('s2member_custom_fields', $_user_id);
                 $_user_custom_fields = is_array($_user_custom_fields) ? $_user_custom_fields : array();
                 foreach ($headers as $_index => $_header) {
                     if (strpos($_header, 'meta_key__') === 0) {
                         if (isset($_csv_data[$_index])) {
                             $_new_meta_value = $_csv_data[$_index];
                             $_user_meta_key = substr($_header, strlen('meta_key__'));
                             if ($_user_meta_key === $wpdb->prefix . 'capabilities' && ($_user_role || $_user_ccaps)) {
                                 continue;
                             }
                             // Already handled via `role` and `ccaps`.
                             if ($_user_meta_key === $wpdb->prefix . 'capabilities' && stripos($_new_meta_value, 'administrator') !== FALSE) {
                                 continue;
                             }
                             // Do not allow this for security purposes.
                             if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                                 if (strpos($_user_meta_key, $wpdb->prefix) !== 0 && !in_array($_user_meta_key, array('first_name', 'last_name', 'nickname', 'description'), TRUE)) {
                                     continue;
                                 }
                             }
                             // Child sites may NOT update meta data for other child blogs.
                             switch ($_user_meta_key) {
                                 case $wpdb->prefix . 'capabilities':
                                 case $wpdb->prefix . 's2member_sp_references':
                                 case $wpdb->prefix . 's2member_ipn_signup_vars':
                                 case $wpdb->prefix . 's2member_access_cap_times':
                                 case $wpdb->prefix . 's2member_paid_registration_times':
                                 case $wpdb->prefix . 's2member_file_download_access_arc':
                                 case $wpdb->prefix . 's2member_file_download_access_log':
                                     if (isset($_new_meta_value[0])) {
                                         // This handles JSON-decoding for known array values.
                                         if (!is_null($_new_meta_value_decoded = json_decode($_new_meta_value, TRUE))) {
                                             $_new_meta_value = maybe_serialize($_new_meta_value_decoded);
                                         }
                                     }
                                     break;
                             }
                             $_existing_meta_row = $wpdb->get_row("SELECT * FROM `" . $wpdb->usermeta . "` WHERE `user_id` = '" . esc_sql($_user_id) . "' AND `meta_key` = '" . esc_sql($_user_meta_key) . "' AND `meta_value` = '" . esc_sql($_new_meta_value) . "' LIMIT 1");
                             if (is_object($_existing_meta_row)) {
                                 continue;
                             }
                             // No need to update this; it is still the same value.
                             $_existing_meta_rows = $wpdb->get_results("SELECT * FROM `" . $wpdb->usermeta . "` WHERE `user_id` = '" . esc_sql($_user_id) . "' AND `meta_key` = '" . esc_sql($_user_meta_key) . "' LIMIT 2");
                             if ($_existing_meta_rows && count($_existing_meta_rows) > 1) {
                                 continue;
                             }
                             // We don't update multivalue keys. This can cause database corruption via CSV import files.
                             $_existing_meta_row = $_existing_meta_rows ? $_existing_meta_rows[0] : NULL;
                             /** @var object $_existing_meta_row This line is for IDEs; so they don't choke. */
                             if (is_object($_existing_meta_row) && $_new_meta_value !== $_existing_meta_row->meta_value) {
                                 $wpdb->update($wpdb->usermeta, array('meta_value' => $_new_meta_value), array('umeta_id' => $_existing_meta_row->umeta_id));
                             } else {
                                 if (!is_object($_existing_meta_row)) {
                                     $wpdb->insert($wpdb->usermeta, array('user_id' => $_user_id, 'meta_key' => $_user_meta_key, 'meta_value' => $_new_meta_value));
                                 }
                             }
                         }
                     } else {
                         if (strpos($_header, 'custom_field_key__') === 0) {
                             if (isset($_csv_data[$_index])) {
                                 $_new_custom_field_value = $_csv_data[$_index];
                                 if (!is_null($_new_custom_field_value_decoded = json_decode($_new_custom_field_value, TRUE))) {
                                     $_new_custom_field_value = $_new_custom_field_value_decoded;
                                 }
                                 $_user_custom_field_key = substr($_header, strlen('custom_field_key__'));
                                 $_user_custom_fields[$_user_custom_field_key] = $_new_custom_field_value;
                             }
                         }
                     }
                 }
                 update_user_option($_user_id, 's2member_custom_fields', $_user_custom_fields);
                 unset($_user_custom_fields, $_index, $_header);
                 // Housekeeping.
                 unset($_new_meta_value, $_new_meta_value_decoded, $_user_meta_key, $_existing_meta_rows, $_existing_meta_row);
                 unset($_new_custom_field_value, $_new_custom_field_value_decoded, $_user_custom_field_key);
             }
             fclose($file);
             // Close the file resource handle now.
             unset($_csv_data, $_user, $_user_id, $_user_login, $_user_email);
             unset($_user_id_exists_but_not_on_blog, $_user_role, $_user_ccaps);
         } else {
             $errors[] = 'No data was received. Please try again.';
         }
         // The upload failed, or it was empty.
         c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Users/Members imported: <code>' . (int) $imported . '</code>.');
         if (!empty($errors)) {
             // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation.
             c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode('</li><li>', $errors) . '</li></ul>', TRUE);
         }
     }
 }
コード例 #25
0
 /**
  * Validates different kinds of form submissions.
  *
  * Free Registration Forms do NOT require API Credentials.
  *
  * @package s2Member\PayPal
  * @since 1.5
  *
  * @param string $form The type of Pro-Form being submitted.
  * @param array $s An array of data submitted through the Pro-Form.
  * @return null|array Null if there are no errors, else a response array.
  */
 public static function paypal_form_submission_validation_errors($form = FALSE, $s = FALSE)
 {
     if ($form === "registration" || !($response = c_ws_plugin__s2member_pro_paypal_responses::paypal_form_api_validation_errors())) {
         if ($form === "cancellation") {
             if (!is_user_logged_in()) {
                 $response = array("response" => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to cancel your account.', "s2member-front", "s2member"), esc_attr(wp_login_url($_SERVER["REQUEST_URI"]))), "error" => true);
             } else {
                 if ($s["attr"]["captcha"] && (empty($s["recaptcha_challenge_field"]) || empty($s["recaptcha_response_field"]) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s["recaptcha_challenge_field"], $s["recaptcha_response_field"]))) {
                     $response = array("response" => _x('Missing or invalid Security Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                 } else {
                     if (is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap("administrator")) {
                         // NOT for Administrators.
                         $response = array("response" => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', "s2member-admin", "s2member"), "error" => true);
                     }
                 }
             }
         } else {
             if ($form === "update") {
                 if (!is_user_logged_in()) {
                     $response = array("response" => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to update your billing information.', "s2member-front", "s2member"), esc_attr(wp_login_url($_SERVER["REQUEST_URI"]))), "error" => true);
                 } else {
                     if (is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap("administrator")) {
                         $response = array("response" => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', "s2member-admin", "s2member"), "error" => true);
                     } else {
                         if (empty($s["card_type"]) || !is_string($s["card_type"])) {
                             $response = array("response" => _x('Missing Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                         } else {
                             if (!in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo", "PayPal")) || !is_array($s["attr"]["accept"]) || !in_array(strtolower($s["card_type"]), $s["attr"]["accept"])) {
                                 $response = array("response" => _x('Invalid Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                             } else {
                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_number"]) || !is_string($s["card_number"]))) {
                                     $response = array("response" => _x('Missing Card Number. Please try again.', "s2member-front", "s2member"), "error" => true);
                                 } else {
                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_expiration"]) || !is_string($s["card_expiration"]))) {
                                         $response = array("response" => _x('Missing Card Expiration Date (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                     } else {
                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && !preg_match("/^[0-9]{2}\\/[0-9]{4}\$/", $s["card_expiration"])) {
                                             $response = array("response" => _x('Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                         } else {
                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_verification"]) || !is_string($s["card_verification"]))) {
                                                 $response = array("response" => _x('Missing Card Verification Code. It\'s on the back of your Card. 3-4 digits. Please try again.', "s2member-front", "s2member"), "error" => true);
                                             } else {
                                                 if (in_array($s["card_type"], array("Maestro", "Solo")) && (empty($s["card_start_date_issue_number"]) || !is_string($s["card_start_date_issue_number"]))) {
                                                     $response = array("response" => _x('Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                 } else {
                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["street"]) || !is_string($s["street"]))) {
                                                         $response = array("response" => _x('Missing Street Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                     } else {
                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["city"]) || !is_string($s["city"]))) {
                                                             $response = array("response" => _x('Missing City/Town. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                         } else {
                                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["state"]) || !is_string($s["state"]))) {
                                                                 $response = array("response" => _x('Missing State/Province. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                             } else {
                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["country"]) || !is_string($s["country"]))) {
                                                                     $response = array("response" => _x('Missing Country. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                 } else {
                                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["zip"]) || !is_string($s["zip"]))) {
                                                                         $response = array("response" => _x('Missing Postal/Zip Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                     } else {
                                                                         if ($s["attr"]["captcha"] && (empty($s["recaptcha_challenge_field"]) || empty($s["recaptcha_response_field"]) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s["recaptcha_challenge_field"], $s["recaptcha_response_field"]))) {
                                                                             $response = array("response" => _x('Missing or invalid Security Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 if ($form === "registration") {
                     if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_names"] && (empty($s["first_name"]) || !is_string($s["first_name"]))) {
                         $response = array("response" => _x('Missing First Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                     } else {
                         if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_names"] && (empty($s["last_name"]) || !is_string($s["last_name"]))) {
                             $response = array("response" => _x('Missing Last Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                         } else {
                             if (empty($s["email"]) || !is_string($s["email"])) {
                                 $response = array("response" => _x('Missing or invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                             } else {
                                 if (!is_email($s["email"])) {
                                     $response = array("response" => _x('Invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                 } else {
                                     if (email_exists($s["email"]) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog(@$s["username"], $s["email"]))) {
                                         $response = array("response" => _x('That Email Address is already in use. Please try again.', "s2member-front", "s2member"), "error" => true);
                                     } else {
                                         if (empty($s["username"]) || !is_string($s["username"]) || empty($s["_o_username"]) || !is_string($s["_o_username"])) {
                                             $response = array("response" => _x('Missing or invalid Username. Please try again.', "s2member-front", "s2member"), "error" => true);
                                         } else {
                                             if (!validate_username($s["username"]) || !validate_username($s["_o_username"])) {
                                                 $response = array("response" => _x('Invalid Username. Please try again. Use ONLY lowercase alphanumerics.', "s2member-front", "s2member"), "error" => true);
                                             } else {
                                                 if (username_exists($s["username"]) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s["username"], $s["email"]))) {
                                                     $response = array("response" => _x('That Username is already in use. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                 } else {
                                                     if (is_multisite() && !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s["username"], $s["email"]) && ($_response = wpmu_validate_user_signup($s["username"], $s["email"])) && is_wp_error($_errors = $_response["errors"]) && $_errors->get_error_message()) {
                                                         $response = array("response" => $_errors->get_error_message(), "error" => true);
                                                     } else {
                                                         if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && (empty($s["password1"]) || !is_string($s["password1"]))) {
                                                             $response = array("response" => _x('Missing Password. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                         } else {
                                                             if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && strlen($s["password1"]) < 6) {
                                                                 $response = array("response" => _x('Invalid Password. Must be at least 6 characters. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                             } else {
                                                                 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && strlen($s["password1"]) > 20) {
                                                                     $response = array("response" => _x('Invalid Password. Max length is 20 characters. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                 } else {
                                                                     if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && (empty($s["password2"]) || $s["password2"] !== $s["password1"])) {
                                                                         $response = array("response" => _x('Password fields do NOT match. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                     } else {
                                                                         if ($custom_field_validation_errors = c_ws_plugin__s2member_custom_reg_fields::validation_errors(isset($s["custom_fields"]) ? $s["custom_fields"] : array(), c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($s["attr"]["level"], "registration", TRUE))) {
                                                                             $response = array("response" => array_shift($custom_field_validation_errors), "error" => true);
                                                                         } else {
                                                                             if ($s["attr"]["captcha"] && (empty($s["recaptcha_challenge_field"]) || empty($s["recaptcha_response_field"]) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s["recaptcha_challenge_field"], $s["recaptcha_response_field"]))) {
                                                                                 $response = array("response" => _x('Missing or invalid Security Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                     if ($form === "sp-checkout") {
                         if (empty($s["first_name"]) || !is_string($s["first_name"])) {
                             $response = array("response" => _x('Missing First Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                         } else {
                             if (empty($s["last_name"]) || !is_string($s["last_name"])) {
                                 $response = array("response" => _x('Missing Last Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                             } else {
                                 if (empty($s["email"]) || !is_string($s["email"])) {
                                     $response = array("response" => _x('Missing or invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                 } else {
                                     if (!is_email($s["email"])) {
                                         $response = array("response" => _x('Invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                     } else {
                                         if (empty($s["card_type"]) || !is_string($s["card_type"])) {
                                             $response = array("response" => _x('Missing Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                         } else {
                                             if (!in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo", "PayPal", "Free"))) {
                                                 $response = array("response" => _x('Invalid Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                             } else {
                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo", "PayPal")) && (!is_array($s["attr"]["accept"]) || !in_array(strtolower($s["card_type"]), $s["attr"]["accept"]))) {
                                                     $response = array("response" => _x('Invalid Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                 } else {
                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_number"]) || !is_string($s["card_number"]))) {
                                                         $response = array("response" => _x('Missing Card Number. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                     } else {
                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_expiration"]) || !is_string($s["card_expiration"]))) {
                                                             $response = array("response" => _x('Missing Card Expiration Date (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                         } else {
                                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && !preg_match("/^[0-9]{2}\\/[0-9]{4}\$/", $s["card_expiration"])) {
                                                                 $response = array("response" => _x('Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                             } else {
                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_verification"]) || !is_string($s["card_verification"]))) {
                                                                     $response = array("response" => _x('Missing Card Verification Code. It\'s on the back of your Card. 3-4 digits. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                 } else {
                                                                     if (in_array($s["card_type"], array("Maestro", "Solo")) && (empty($s["card_start_date_issue_number"]) || !is_string($s["card_start_date_issue_number"]))) {
                                                                         $response = array("response" => _x('Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                     } else {
                                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["street"]) || !is_string($s["street"]))) {
                                                                             $response = array("response" => _x('Missing Street Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                         } else {
                                                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["city"]) || !is_string($s["city"]))) {
                                                                                 $response = array("response" => _x('Missing City/Town. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                             } else {
                                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["state"]) || !is_string($s["state"]))) {
                                                                                     $response = array("response" => _x('Missing State/Province. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                 } else {
                                                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["country"]) || !is_string($s["country"]))) {
                                                                                         $response = array("response" => _x('Missing Country. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                     } else {
                                                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["zip"]) || !is_string($s["zip"]))) {
                                                                                             $response = array("response" => _x('Missing Postal/Zip Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                         } else {
                                                                                             if ($s["attr"]["captcha"] && (empty($s["recaptcha_challenge_field"]) || empty($s["recaptcha_response_field"]) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s["recaptcha_challenge_field"], $s["recaptcha_response_field"]))) {
                                                                                                 $response = array("response" => _x('Missing or invalid Security Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                             }
                                                                                         }
                                                                                     }
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     } else {
                         if ($form === "checkout") {
                             if ($s["attr"]["modify"] && !is_user_logged_in()) {
                                 $response = array("response" => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> to modify your billing plan.', "s2member-front", "s2member"), esc_attr(wp_login_url($_SERVER["REQUEST_URI"]))), "error" => true);
                             } else {
                                 if ($s["attr"]["level"] === "*" && !is_user_logged_in()) {
                                     $response = array("response" => sprintf(_x('You must <a href="%s" rel="nofollow">log in</a> before making this purchase.', "s2member-front", "s2member"), esc_attr(wp_login_url($_SERVER["REQUEST_URI"]))), "error" => true);
                                 } else {
                                     if (is_user_logged_in() && is_object($user = wp_get_current_user()) && $user->ID && $user->has_cap("administrator")) {
                                         // NOT for Administrators.
                                         $response = array("response" => _x('Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access.', "s2member-admin", "s2member"), "error" => true);
                                     } else {
                                         if (empty($s["first_name"]) || !is_string($s["first_name"])) {
                                             $response = array("response" => _x('Missing First Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                                         } else {
                                             if (empty($s["last_name"]) || !is_string($s["last_name"])) {
                                                 $response = array("response" => _x('Missing Last Name. Please try again.', "s2member-front", "s2member"), "error" => true);
                                             } else {
                                                 if (!is_user_logged_in() && (empty($s["email"]) || !is_string($s["email"]))) {
                                                     $response = array("response" => _x('Missing or invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                 } else {
                                                     if (!is_user_logged_in() && !is_email($s["email"])) {
                                                         $response = array("response" => _x('Invalid Email Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                     } else {
                                                         if (!is_user_logged_in() && email_exists($s["email"]) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog(@$s["username"], $s["email"]))) {
                                                             $response = array("response" => _x('That Email Address is already in use. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                         } else {
                                                             if (!is_user_logged_in() && (empty($s["username"]) || !is_string($s["username"]) || empty($s["_o_username"]) || !is_string($s["_o_username"]))) {
                                                                 $response = array("response" => _x('Missing or invalid Username. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                             } else {
                                                                 if (!is_user_logged_in() && (!validate_username($s["username"]) || !validate_username($s["_o_username"]))) {
                                                                     $response = array("response" => _x('Invalid Username. Please try again. Use ONLY lowercase alphanumerics.', "s2member-front", "s2member"), "error" => true);
                                                                 } else {
                                                                     if (!is_user_logged_in() && username_exists($s["username"]) && (!is_multisite() || !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s["username"], $s["email"]))) {
                                                                         $response = array("response" => _x('That Username is already in use. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                     } else {
                                                                         if (!is_user_logged_in() && is_multisite() && !c_ws_plugin__s2member_utils_users::ms_user_login_email_can_join_blog($s["username"], $s["email"]) && ($_response = wpmu_validate_user_signup($s["username"], $s["email"])) && is_wp_error($_errors = $_response["errors"]) && $_errors->get_error_message()) {
                                                                             $response = array("response" => $_errors->get_error_message(), "error" => true);
                                                                         } else {
                                                                             if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && !is_user_logged_in() && (empty($s["password1"]) || !is_string($s["password1"]))) {
                                                                                 $response = array("response" => _x('Missing Password. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                             } else {
                                                                                 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && !is_user_logged_in() && strlen($s["password1"]) < 6) {
                                                                                     $response = array("response" => _x('Invalid Password. Must be at least 6 characters. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                 } else {
                                                                                     if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && !is_user_logged_in() && strlen($s["password1"]) > 20) {
                                                                                         $response = array("response" => _x('Invalid Password. Max length is 20 characters. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                     } else {
                                                                                         if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"] && !is_user_logged_in() && (empty($s["password2"]) || $s["password2"] !== $s["password1"])) {
                                                                                             $response = array("response" => _x('Password fields do NOT match. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                         } else {
                                                                                             if (!is_user_logged_in() && ($custom_field_validation_errors = c_ws_plugin__s2member_custom_reg_fields::validation_errors(isset($s["custom_fields"]) ? $s["custom_fields"] : array(), c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($s["attr"]["level"] === "*" ? "auto-detection" : $s["attr"]["level"], "registration", TRUE)))) {
                                                                                                 $response = array("response" => array_shift($custom_field_validation_errors), "error" => true);
                                                                                             } else {
                                                                                                 if (empty($s["card_type"]) || !is_string($s["card_type"])) {
                                                                                                     $response = array("response" => _x('Missing Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                 } else {
                                                                                                     if (!in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo", "PayPal", "Free"))) {
                                                                                                         $response = array("response" => _x('Invalid Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                     } else {
                                                                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo", "PayPal")) && (!is_array($s["attr"]["accept"]) || !in_array(strtolower($s["card_type"]), $s["attr"]["accept"]))) {
                                                                                                             $response = array("response" => _x('Invalid Card Type (Billing Method). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                         } else {
                                                                                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_number"]) || !is_string($s["card_number"]))) {
                                                                                                                 $response = array("response" => _x('Missing Card Number. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                             } else {
                                                                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_expiration"]) || !is_string($s["card_expiration"]))) {
                                                                                                                     $response = array("response" => _x('Missing Card Expiration Date (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                 } else {
                                                                                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && !preg_match("/^[0-9]{2}\\/[0-9]{4}\$/", $s["card_expiration"])) {
                                                                                                                         $response = array("response" => _x('Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                     } else {
                                                                                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["card_verification"]) || !is_string($s["card_verification"]))) {
                                                                                                                             $response = array("response" => _x('Missing Card Verification Code. It\'s on the back of your Card. 3-4 digits. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                         } else {
                                                                                                                             if (in_array($s["card_type"], array("Maestro", "Solo")) && (empty($s["card_start_date_issue_number"]) || !is_string($s["card_start_date_issue_number"]))) {
                                                                                                                                 $response = array("response" => _x('Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                             } else {
                                                                                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["street"]) || !is_string($s["street"]))) {
                                                                                                                                     $response = array("response" => _x('Missing Street Address. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                 } else {
                                                                                                                                     if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["city"]) || !is_string($s["city"]))) {
                                                                                                                                         $response = array("response" => _x('Missing City/Town. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                     } else {
                                                                                                                                         if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["state"]) || !is_string($s["state"]))) {
                                                                                                                                             $response = array("response" => _x('Missing State/Province. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                         } else {
                                                                                                                                             if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["country"]) || !is_string($s["country"]))) {
                                                                                                                                                 $response = array("response" => _x('Missing Country. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                             } else {
                                                                                                                                                 if (in_array($s["card_type"], array("Visa", "MasterCard", "Discover", "Amex", "Maestro", "Solo")) && (empty($s["zip"]) || !is_string($s["zip"]))) {
                                                                                                                                                     $response = array("response" => _x('Missing Postal/Zip Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                                 } else {
                                                                                                                                                     if ($s["attr"]["captcha"] && (empty($s["recaptcha_challenge_field"]) || empty($s["recaptcha_response_field"]) || !c_ws_plugin__s2member_utils_captchas::recaptcha_code_validates($s["recaptcha_challenge_field"], $s["recaptcha_response_field"]))) {
                                                                                                                                                         $response = array("response" => _x('Missing or invalid Security Code. Please try again.', "s2member-front", "s2member"), "error" => true);
                                                                                                                                                     }
                                                                                                                                                 }
                                                                                                                                             }
                                                                                                                                         }
                                                                                                                                     }
                                                                                                                                 }
                                                                                                                             }
                                                                                                                         }
                                                                                                                     }
                                                                                                                 }
                                                                                                             }
                                                                                                         }
                                                                                                     }
                                                                                                 }
                                                                                             }
                                                                                         }
                                                                                     }
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         } else {
                             // Else we are dealing with an unknown form submission type.
                             $response = array("response" => _x('Unknown form submission type. Please contact Support.', "s2member-front", "s2member"), "error" => true);
                         }
                     }
                 }
             }
         }
     }
     return apply_filters("ws_plugin__s2member_pro_paypal_form_submission_validation_response", empty($response) ? null : $response, $form, $s);
 }
コード例 #26
0
ファイル: imports-in.inc.php プロジェクト: donwea/nhap.org
 /**
  * Handles the importation of Users/Members.
  *
  * @package s2Member\Imports
  * @since 110815
  *
  * @return null
  */
 public static function import_users()
 {
     if (!empty($_POST["ws_plugin__s2member_pro_import_users"]) && ($nonce = $_POST["ws_plugin__s2member_pro_import_users"]) && wp_verify_nonce($nonce, "ws-plugin--s2member-pro-import-users") && current_user_can("create_users")) {
         global $wpdb;
         global $current_site, $current_blog;
         @set_time_limit(0);
         @ini_set("memory_limit", apply_filters("admin_memory_limit", WP_MAX_MEMORY_LIMIT));
         remove_all_actions("profile_update") . remove_all_actions("user_register");
         remove_all_actions("added_existing_user") . remove_all_actions("add_user_to_blog");
         if (!empty($_FILES["ws_plugin__s2member_pro_import_users_file"]) && empty($_FILES["ws_plugin__s2member_pro_import_users_file"]["error"])) {
             $file = fopen($_FILES["ws_plugin__s2member_pro_import_users_file"]["tmp_name"], "r");
         } else {
             if (!empty($_POST["ws_plugin__s2member_pro_import_users_direct_input"])) {
                 fwrite($file = tmpfile(), trim(stripslashes($_POST["ws_plugin__s2member_pro_import_users_direct_input"]))) . fseek($file, 0);
             }
         }
         if (isset($file) && is_resource($file) && !($imported = 0)) {
             $custom_field_vars = array();
             if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) {
                 foreach (json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) {
                     $custom_field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"]));
                     $custom_field_vars[] = $custom_field_var;
                 }
             }
             sort($custom_field_vars, SORT_STRING);
             while (($data = version_compare(PHP_VERSION, "5.3", ">=") ? fgetcsv($file, 0, ",", '"', '"') : fgetcsv($file, 0, ",", '"')) !== false) {
                 $line = (int) $line + 1;
                 $data = c_ws_plugin__s2member_utils_strings::trim_deep($data);
                 $data = stripslashes_deep($data);
                 if ($line === 1 && strtoupper($data[0]) === "ID") {
                     $line = $line - 1;
                     continue;
                 }
                 if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                     $ID = $data[0];
                     $user_login = is_multisite() ? strtolower($data[1]) : $data[1];
                     $user_login = preg_replace("/\\s+/", "", sanitize_user($user_login, is_multisite()));
                     $user_pass = (string) "";
                     $first_name = $data[2];
                     $last_name = $data[3];
                     $display_name = $data[4];
                     $user_email = sanitize_email($data[5]);
                     $user_url = $data[6];
                     $role = $data[7];
                     $custom_capabilities = $data[8];
                     $user_registered = $data[9] ? date("Y-m-d H:i:s", strtotime($data[9])) : "";
                     $paid_registration_times = $data[10] ? maybe_unserialize($data[10]) : "";
                     $last_payment_time = $data[11] ? strtotime($data[11]) : "";
                     $auto_eot_time = $data[12] ? strtotime($data[12]) : "";
                     $custom = $data[13];
                     $subscr_id = $data[14];
                     $subscr_gateway = strtolower($data[15]);
                     $custom_fields = array();
                     if (count($data) > 16) {
                         for ($i = 16, $j = 0; $i < count($data); $i++, $j++) {
                             if (isset($custom_field_vars[$j])) {
                                 $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]);
                             }
                         }
                     }
                 } else {
                     $ID = $data[0];
                     $user_login = is_multisite() ? strtolower($data[1]) : $data[1];
                     $user_login = preg_replace("/\\s+/", "", sanitize_user($user_login, is_multisite()));
                     $user_pass = $data[2];
                     $first_name = $data[3];
                     $last_name = $data[4];
                     $display_name = $data[5];
                     $user_email = sanitize_email($data[6]);
                     $user_url = $data[7];
                     $role = $data[8];
                     $custom_capabilities = $data[9];
                     $user_registered = $data[10] ? date("Y-m-d H:i:s", strtotime($data[10])) : "";
                     $paid_registration_times = $data[11] ? maybe_unserialize($data[11]) : "";
                     $last_payment_time = $data[12] ? strtotime($data[12]) : "";
                     $auto_eot_time = $data[13] ? strtotime($data[13]) : "";
                     $custom = $data[14];
                     $subscr_id = $data[15];
                     $subscr_gateway = strtolower($data[16]);
                     $custom_fields = array();
                     if (count($data) > 17) {
                         for ($i = 17, $j = 0; $i < count($data); $i++, $j++) {
                             if (isset($custom_field_vars[$j])) {
                                 $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]);
                             }
                         }
                     }
                 }
                 $role = is_numeric($role) ? $role == 0 ? "subscriber" : "s2member_level" . $role : $role;
                 if ($paid_registration_times && !is_array($paid_registration_times)) {
                     $paid_registration_times = array("level" => strtotime($paid_registration_times));
                 }
                 $paid_registration_times = !$paid_registration_times || !is_array($paid_registration_times) ? array() : $paid_registration_times;
                 $user_details = compact("ID", "user_login", "user_pass", "first_name", "last_name", "display_name", "user_email", "user_url", "role", "user_registered");
                 if (empty($user_details["user_pass"])) {
                     // If there was NO Password given.
                     unset($user_details["user_pass"]);
                 }
                 // Unset the Password array element.
                 if ($ID) {
                     if (is_object($user = new WP_User($ID)) && $user->ID) {
                         if (!is_multisite() || is_user_member_of_blog($ID)) {
                             if ((!is_multisite() || !is_super_admin($ID)) && !$user->has_cap("administrator")) {
                                 if (strtolower($role) !== "administrator") {
                                     if ($user_email && is_email($user_email)) {
                                         if ($user_login) {
                                             if (validate_username($user_login)) {
                                                 if (($_same_email = strtolower($user_email) === strtolower($user->user_email)) || !email_exists($user_email)) {
                                                     if (($_same_login = strtolower($user_login) === strtolower($user->user_login)) || !username_exists($user_login)) {
                                                         if (!is_multisite() || $_same_email && $_same_login || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_["errors"]) || !$_["errors"]->get_error_code())) {
                                                             if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) {
                                                                 unset($user_details["user_login"], $user_details["user_pass"]);
                                                             }
                                                             if ($user_id = wp_update_user($user_details)) {
                                                                 $user = new WP_User($ID);
                                                                 // Refresh object value.
                                                                 update_user_option($user_id, "s2member_custom", $custom);
                                                                 update_user_option($user_id, "s2member_subscr_id", $subscr_id);
                                                                 update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway);
                                                                 update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time);
                                                                 update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times);
                                                                 update_user_option($user_id, "s2member_last_payment_time", $last_payment_time);
                                                                 update_user_option($user_id, "s2member_custom_fields", $custom_fields);
                                                                 foreach ($user->allcaps as $cap => $cap_enabled) {
                                                                     if (preg_match("/^access_s2member_ccap_/", $cap)) {
                                                                         $user->remove_cap($ccap = $cap);
                                                                     }
                                                                 }
                                                                 if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) {
                                                                     foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) {
                                                                         if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) {
                                                                             $user->add_cap("access_s2member_ccap_" . $ccap);
                                                                         }
                                                                     }
                                                                 }
                                                                 $imported = $imported + 1;
                                                             } else {
                                                                 $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> could NOT be updated. Unknown error, please try again.";
                                                             }
                                                         } else {
                                                             $errors[] = "Line #" . $line . ". Network. The Username and/or Email (<code>" . esc_html($user_login) . "</code> / <code>" . esc_html($user_email) . "</code>) are in conflict w/ Network rules.";
                                                         }
                                                     } else {
                                                         $errors[] = "Line #" . $line . ". Conflicting. The Username (<code>" . esc_html($user_login) . "</code>), already exists.";
                                                     }
                                                 } else {
                                                     $errors[] = "Line #" . $line . ". Conflicting. The Email address (<code>" . esc_html($user_email) . "</code>), already exists.";
                                                 }
                                             } else {
                                                 $errors[] = "Line #" . $line . ". Invalid Username (<code>" . esc_html($user_login) . "</code>). Lowercase alphanumerics are required.";
                                             }
                                         } else {
                                             $errors[] = "Line #" . $line . ". Missing Username; please try again.";
                                         }
                                         // We have two separate errors for Usernames. This provides clarity.
                                     } else {
                                         $errors[] = "Line #" . $line . ". Missing or invalid Email address (<code>" . esc_html($user_email) . "</code>); please try again.";
                                     }
                                 } else {
                                     $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> cannot be updated to an Administrator. Bypassing this line for security.";
                                 }
                             } else {
                                 $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> belongs to an Administrator. Bypassing this line for security.";
                             }
                         } else {
                             $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> does NOT belong to an existing User on this site.";
                         }
                     } else {
                         $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> does NOT belong to an existing User.";
                     }
                 } else {
                     if (is_multisite() && ($user_id = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($user_login, $user_email)) && !is_super_admin($user_id)) {
                         if (strtolower($role) !== "administrator") {
                             if (add_existing_user_to_blog(array("user_id" => $user_id, "role" => $role))) {
                                 if (is_object($user = new WP_User($user_id)) && $user->ID) {
                                     update_user_option($user_id, "s2member_custom", $custom);
                                     update_user_option($user_id, "s2member_subscr_id", $subscr_id);
                                     update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway);
                                     update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time);
                                     update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times);
                                     update_user_option($user_id, "s2member_last_payment_time", $last_payment_time);
                                     update_user_option($user_id, "s2member_custom_fields", $custom_fields);
                                     foreach ($user->allcaps as $cap => $cap_enabled) {
                                         if (preg_match("/^access_s2member_ccap_/", $cap)) {
                                             $user->remove_cap($ccap = $cap);
                                         }
                                     }
                                     if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) {
                                         foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) {
                                             if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) {
                                                 $user->add_cap("access_s2member_ccap_" . $ccap);
                                             }
                                         }
                                     }
                                     $imported = $imported + 1;
                                 } else {
                                     $errors[] = "Line #" . $line . ". Unknown object error, please try again.";
                                 }
                             } else {
                                 $errors[] = "Line #" . $line . ". Unknown User/site addition error, please try again.";
                             }
                         } else {
                             $errors[] = "Line #" . $line . ". Role cannot be Administrator. Bypassing this line for security.";
                         }
                     } else {
                         if (strtolower($role) !== "administrator") {
                             if ($user_email && is_email($user_email)) {
                                 if ($user_login) {
                                     if (validate_username($user_login)) {
                                         if (!email_exists($user_email)) {
                                             if (!username_exists($user_login)) {
                                                 if (!is_multisite() || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_["errors"]) || !$_["errors"]->get_error_code())) {
                                                     if ($user_id = wp_insert_user($user_details)) {
                                                         if (is_object($user = new WP_User($user_id)) && $user->ID) {
                                                             if ($user_pass) {
                                                                 // If we are given an "un-encrypted Password".
                                                                 wp_update_user(array("ID" => $user_id, "user_pass" => $user_pass));
                                                             }
                                                             if (is_multisite()) {
                                                                 // New Users on a Multisite Network need this too.
                                                                 update_user_meta($user_id, "s2member_originating_blog", $current_blog->blog_id);
                                                             }
                                                             update_user_option($user_id, "s2member_custom", $custom);
                                                             update_user_option($user_id, "s2member_subscr_id", $subscr_id);
                                                             update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway);
                                                             update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time);
                                                             update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times);
                                                             update_user_option($user_id, "s2member_last_payment_time", $last_payment_time);
                                                             update_user_option($user_id, "s2member_custom_fields", $custom_fields);
                                                             foreach ($user->allcaps as $cap => $cap_enabled) {
                                                                 if (preg_match("/^access_s2member_ccap_/", $cap)) {
                                                                     $user->remove_cap($ccap = $cap);
                                                                 }
                                                             }
                                                             if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) {
                                                                 foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) {
                                                                     if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) {
                                                                         $user->add_cap("access_s2member_ccap_" . $ccap);
                                                                     }
                                                                 }
                                                             }
                                                             $imported = $imported + 1;
                                                         } else {
                                                             $errors[] = "Line #" . $line . ". Unknown object error, please try again.";
                                                         }
                                                     } else {
                                                         $errors[] = "Line #" . $line . ". Unknown insertion error, please try again.";
                                                     }
                                                 } else {
                                                     $errors[] = "Line #" . $line . ". Network. The Username and/or Email (<code>" . esc_html($user_login) . "</code> / <code>" . esc_html($user_email) . "</code>) are in conflict w/ Network rules.";
                                                 }
                                             } else {
                                                 $errors[] = "Line #" . $line . ". Conflicting. The Username (<code>" . esc_html($user_login) . "</code>), already exists.";
                                             }
                                         } else {
                                             $errors[] = "Line #" . $line . ". Conflicting. The Email address (<code>" . esc_html($user_email) . "</code>), already exists.";
                                         }
                                     } else {
                                         $errors[] = "Line #" . $line . ". Invalid Username (<code>" . esc_html($user_login) . "</code>). Lowercase alphanumerics are required.";
                                     }
                                 } else {
                                     $errors[] = "Line #" . $line . ". Missing Username; please try again.";
                                 }
                                 // We have two separate errors for Usernames. This provides clarity.
                             } else {
                                 $errors[] = "Line #" . $line . ". Missing or invalid Email address (<code>" . esc_html($user_email) . "</code>); please try again.";
                             }
                         } else {
                             $errors[] = "Line #" . $line . ". Role cannot be Administrator. Bypassing this line for security.";
                         }
                     }
                 }
             }
             fclose($file);
         } else {
             $errors[] = "No data was received. Please try again.";
         }
         // The upload failed, or it was empty.
         c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Users/Members imported: <code>' . (int) $imported . '</code>.');
         if (!empty($errors)) {
             // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation.
             c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode("</li><li>", $errors) . '</li></ul>', true);
         }
     }
     return;
 }
コード例 #27
0
ファイル: user.php プロジェクト: voldemortensen/wp-cli
 /**
  * Import users from a CSV file.
  *
  * ## OPTIONS
  *
  * <file>
  * : The local or remote CSV file of users to import.
  *
  * [--send-email]
  * : Send an email to new users with their account details.
  *
  * [--skip-update]
  * : Don't update users that already exist.
  *
  * ## EXAMPLES
  *
  *     # Import users from local CSV file
  *     $ wp user import-csv /path/to/users.csv
  *     Success: bobjones created
  *     Success: newuser1 created
  *     Success: existinguser created
  *
  *     # Import users from remote CSV file
  *     $ wp user import-csv http://example.com/users.csv
  *
  *     Sample users.csv file:
  *
  *     user_login,user_email,display_name,role
  *     bobjones,bobjones@example.com,Bob Jones,contributor
  *     newuser1,newuser1@example.com,New User,author
  *     existinguser,existinguser@example.com,Existing User,administrator
  *
  * @subcommand import-csv
  */
 public function import_csv($args, $assoc_args)
 {
     $blog_users = get_users();
     $filename = $args[0];
     if (0 === stripos($filename, 'http://') || 0 === stripos($filename, 'https://')) {
         $response = wp_remote_head($filename);
         $response_code = (string) wp_remote_retrieve_response_code($response);
         if (in_array($response_code[0], array(4, 5))) {
             WP_CLI::error("Couldn't access remote CSV file (HTTP {$response_code} response).");
         }
     } else {
         if (!file_exists($filename)) {
             WP_CLI::error(sprintf("Missing file: %s", $filename));
         }
     }
     foreach (new \WP_CLI\Iterators\CSV($filename) as $i => $new_user) {
         $defaults = array('role' => get_option('default_role'), 'user_pass' => wp_generate_password(), 'user_registered' => strftime("%F %T", time()), 'display_name' => false);
         $new_user = array_merge($defaults, $new_user);
         $secondary_roles = array();
         if (!empty($new_user['roles'])) {
             $roles = array_map('trim', explode(',', $new_user['roles']));
             $invalid_role = false;
             foreach ($roles as $role) {
                 if (is_null(get_role($role))) {
                     WP_CLI::warning("{$new_user['user_login']} has an invalid role.");
                     $invalid_role = true;
                     break;
                 }
             }
             if ($invalid_role) {
                 continue;
             }
             $new_user['role'] = array_shift($roles);
             $secondary_roles = $roles;
         } else {
             if ('none' === $new_user['role']) {
                 $new_user['role'] = false;
             } elseif (is_null(get_role($new_user['role']))) {
                 WP_CLI::warning("{$new_user['user_login']} has an invalid role.");
                 continue;
             }
         }
         // User already exists and we just need to add them to the site if they aren't already there
         $existing_user = get_user_by('email', $new_user['user_email']);
         if (!$existing_user) {
             $existing_user = get_user_by('login', $new_user['user_login']);
         }
         if ($existing_user && \WP_CLI\Utils\get_flag_value($assoc_args, 'skip-update')) {
             WP_CLI::log("{$existing_user->user_login} exists and has been skipped.");
             continue;
         } else {
             if ($existing_user) {
                 $new_user['ID'] = $existing_user->ID;
                 $user_id = wp_update_user($new_user);
                 if (!in_array($existing_user->user_login, wp_list_pluck($blog_users, 'user_login')) && is_multisite() && $new_user['role']) {
                     add_user_to_blog(get_current_blog_id(), $existing_user->ID, $new_user['role']);
                     WP_CLI::log("{$existing_user->user_login} added as {$new_user['role']}.");
                 }
                 // Create the user
             } else {
                 unset($new_user['ID']);
                 // Unset else it will just return the ID
                 if (is_multisite()) {
                     $ret = wpmu_validate_user_signup($new_user['user_login'], $new_user['user_email']);
                     if (is_wp_error($ret['errors']) && !empty($ret['errors']->errors)) {
                         WP_CLI::warning($ret['errors']);
                         continue;
                     }
                     $user_id = wpmu_create_user($new_user['user_login'], $new_user['user_pass'], $new_user['user_email']);
                     if (!$user_id) {
                         WP_CLI::warning("Unknown error creating new user.");
                         continue;
                     }
                     $new_user['ID'] = $user_id;
                     $user_id = wp_update_user($new_user);
                     if (is_wp_error($user_id)) {
                         WP_CLI::warning($user_id);
                         continue;
                     }
                 } else {
                     $user_id = wp_insert_user($new_user);
                 }
                 if (\WP_CLI\Utils\get_flag_value($assoc_args, 'send-email')) {
                     self::wp_new_user_notification($user_id, $new_user['user_pass']);
                 }
             }
         }
         if (is_wp_error($user_id)) {
             WP_CLI::warning($user_id);
             continue;
         } else {
             if ($new_user['role'] === false) {
                 delete_user_option($user_id, 'capabilities');
                 delete_user_option($user_id, 'user_level');
             }
         }
         $user = get_user_by('id', $user_id);
         foreach ($secondary_roles as $secondary_role) {
             $user->add_role($secondary_role);
         }
         if (!empty($existing_user)) {
             WP_CLI::success($new_user['user_login'] . " updated.");
         } else {
             WP_CLI::success($new_user['user_login'] . " created.");
         }
     }
 }
コード例 #28
0
 /**
  * Intersects with ``register_new_user()`` through s2Member's Multisite Networking patch.
  *
  * This function Filters registration errors inside `/wp-login.php` via ``register_new_user()``.
  * When an existing Multisite User is registering, this takes over registration processing.
  *
  * This can ONLY be fired through `/wp-login.php` on the front-side.
  *
  * @package s2Member\Registrations
  * @since 3.5
  *
  * @attaches-to ``add_filter("registration_errors");``
  *
  * @param obj $errors Expects a `WP_Error` object passed in by the Filter.
  * @param str $user_login Expects the User's Username, passed in by the Filter.
  * @param str $user_email Expects the User's Email Address, passed in by the Filter.
  * @return obj A `WP_Error` object, or exits script execution after handling registration redirection.
  */
 public static function ms_register_existing_user($errors = FALSE, $user_login = FALSE, $user_email = FALSE)
 {
     foreach (array_keys(get_defined_vars()) as $__v) {
         $__refs[$__v] =& ${$__v};
     }
     do_action("ws_plugin__s2member_before_ms_register_existing_user", get_defined_vars());
     unset($__refs, $__v);
     if (is_multisite()) {
         // This event should ONLY be processed with Multisite Networking.
         if (!is_admin() && preg_match("/\\/wp-login\\.php/", $_SERVER["REQUEST_URI"])) {
             if (is_wp_error($errors) && $errors->get_error_codes()) {
                 if ($user_id = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($user_login, $user_email)) {
                     foreach ($errors->get_error_codes() as $error_code) {
                         if (!in_array($error_code, array("username_exists", "email_exists"))) {
                             $other_important_errors_exist[] = $error_code;
                         }
                     }
                     if (empty($other_important_errors_exist)) {
                         $user_pass = wp_generate_password();
                         // A new Password for this User/Member will be generated now.
                         c_ws_plugin__s2member_registrations::ms_create_existing_user($user_login, $user_email, $user_pass, $user_id);
                         update_user_option($user_id, "default_password_nag", true, true);
                         // Setup Password-change nag screen.
                         wp_new_user_notification($user_id, $user_pass);
                         // Welcome email, just like ``register_new_user()``.
                         $redirect_to = !empty($_REQUEST["redirect_to"]) ? trim(stripslashes($_REQUEST["redirect_to"])) : false;
                         $redirect_to = $redirect_to ? $redirect_to : add_query_arg("checkemail", urlencode("registered"), wp_login_url());
                         do_action("ws_plugin__s2member_during_ms_register_existing_user", get_defined_vars());
                         wp_safe_redirect($redirect_to) . exit;
                         // Safe, like: ``register_new_user()``.
                     }
                 }
             } else {
                 if (($ms = wpmu_validate_user_signup($user_login, $user_email)) && isset($ms["errors"]) && is_wp_error($ms["errors"]) && $ms["errors"]->get_error_code()) {
                     $errors->add($ms["errors"]->get_error_code(), $ms["errors"]->get_error_message());
                 }
             }
         }
     }
     return apply_filters("ws_plugin__s2member_ms_register_existing_user", $errors, get_defined_vars());
 }
コード例 #29
0
function wppb_front_end_register($atts)
{
    ob_start();
    global $current_user;
    global $wp_roles;
    global $wpdb;
    global $error;
    global $wppb_shortcode_on_front;
    //get required and shown fields
    $wppb_defaultOptions = get_option('wppb_default_settings');
    //get "login with" setting
    $wppb_generalSettings = get_option('wppb_general_settings');
    $wppb_shortcode_on_front = true;
    $agreed = true;
    $new_user = '******';
    $multisite_message = false;
    $registerFilterArray = array();
    $registerFilterArray2 = array();
    $uploadExt = array();
    $extraFieldsErrorHolder = array();
    //we will use this array to store the ID's of the extra-fields left uncompleted
    get_currentuserinfo();
    /* variables used to verify if all required fields were submitted*/
    $firstnameComplete = 'yes';
    $lastnameComplete = 'yes';
    $nicknameComplete = 'yes';
    $websiteComplete = 'yes';
    $aimComplete = 'yes';
    $yahooComplete = 'yes';
    $jabberComplete = 'yes';
    $bioComplete = 'yes';
    /* END variables used to verify if all required fields were submitted*/
    /* Check if users can register. */
    $registration = get_option('users_can_register');
    $registration = apply_filters('wppb_register_setting_override', $registration);
    //fallback if the file was largen then post_max_size, case in which no errors can be saved in $_FILES[fileName]['error']
    if (empty($_FILES) && empty($_POST) && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
        $registerFilterArray['noPostError'] = '<p class="error">' . sprintf(__('The information size you were trying to submit was larger than %1$sb!<br/>This is usually caused by a large file(s) trying to be uploaded.<br/>Since it was also larger than %2$sb no additional information is available.<br/>The user was NOT created!', 'profilebuilder'), WPPB_SERVER_MAX_UPLOAD_SIZE_MEGA, WPPB_SERVER_MAX_POST_SIZE_MEGA) . '</p>';
        echo $registerFilterArray['noPostError'] = apply_filters('wppb_register_no_post_error_message', $registerFilterArray['noPostError'], WPPB_SERVER_MAX_UPLOAD_SIZE_MEGA, WPPB_SERVER_MAX_POST_SIZE_MEGA);
    }
    /* If user registered, input info. */
    if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'adduser' && wp_verify_nonce($_POST['register_nonce_field'], 'verify_true_registration') && $_POST['formName'] == 'register') {
        //global $wp_roles;
        //get value sent in the shortcode as parameter, use default if not set
        $default_role = get_option('default_role');
        extract(shortcode_atts(array('role' => $default_role), $atts));
        //check if the specified role exists in the database, else fall back to the "safe-zone"
        $aprovedRole = $role == $default_role || get_role($role) ? $role : $default_role;
        /* preset the values in case some are not submitted */
        $user_pass = '';
        if (isset($_POST['passw1'])) {
            $user_pass = esc_attr($_POST['passw1']);
        }
        $email = '';
        if (isset($_POST['email'])) {
            $email = trim($_POST['email']);
        }
        if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            $user_name = wppb_generate_random_username($email);
        } else {
            $user_name = '';
            if (isset($_POST['user_name'])) {
                $user_name = trim($_POST['user_name']);
            }
        }
        $first_name = '';
        if (isset($_POST['first_name'])) {
            $first_name = trim($_POST['first_name']);
        }
        $last_name = '';
        if (isset($_POST['last_name'])) {
            $last_name = trim($_POST['last_name']);
        }
        $nickname = '';
        if (isset($_POST['nickname'])) {
            //the field is filled by the user upon registration
            $nickname = trim($_POST['nickname']);
        } elseif (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            //in case the nickname field is hidden, and the login with email is active
            $nickname = $email;
        } else {
            //in case the nickname field is hidden, but login is done with username
            $nickname = $user_name;
        }
        $website = '';
        if (isset($_POST['website'])) {
            $website = trim($_POST['website']);
        }
        $aim = '';
        if (isset($_POST['aim'])) {
            $aim = trim($_POST['aim']);
        }
        $yim = '';
        if (isset($_POST['yim'])) {
            $yim = trim($_POST['yim']);
        }
        $jabber = '';
        if (isset($_POST['jabber'])) {
            $jabber = trim($_POST['jabber']);
        }
        $description = '';
        if (isset($_POST['description'])) {
            $description = trim($_POST['description']);
        }
        /* use filters to modify (if needed) the posted data before creating the user-data */
        $user_pass = apply_filters('wppb_register_posted_password', $user_pass);
        $user_name = apply_filters('wppb_register_posted_username', $user_name);
        $first_name = apply_filters('wppb_register_posted_first_name', $first_name);
        $last_name = apply_filters('wppb_register_posted_last_name', $last_name);
        $nickname = apply_filters('wppb_register_posted_nickname', $nickname);
        $email = apply_filters('wppb_register_posted_email', $email);
        $website = apply_filters('wppb_register_posted_website', $website);
        $aim = apply_filters('wppb_register_posted_aim', $aim);
        $yim = apply_filters('wppb_register_posted_yahoo', $yim);
        $jabber = apply_filters('wppb_register_posted_jabber', $jabber);
        $description = apply_filters('wppb_register_posted_bio', $description);
        /* END use filters to modify (if needed) the posted data before creating the user-data */
        $userdata = array('user_pass' => $user_pass, 'user_login' => esc_attr($user_name), 'first_name' => esc_attr($first_name), 'last_name' => esc_attr($last_name), 'nickname' => esc_attr($nickname), 'user_email' => esc_attr($email), 'user_url' => esc_attr($website), 'aim' => esc_attr($aim), 'yim' => esc_attr($yim), 'jabber' => esc_attr($jabber), 'description' => esc_attr($description), 'role' => $aprovedRole);
        $userdata = apply_filters('wppb_register_userdata', $userdata);
        //check if the user agreed to the terms and conditions (if it was set)
        $wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
        if (file_exists($wppb_premium . 'extra.fields.php')) {
            $wppbFetchArray = get_option('wppb_custom_fields');
            foreach ($wppbFetchArray as $key => $value) {
                switch ($value['item_type']) {
                    case "agreeToTerms":
                        $agreed = false;
                        if (isset($_POST[$value['item_type'] . $value['id']]) && $_POST[$value['item_type'] . $value['id']] == 'agree') {
                            $agreed = true;
                        }
                        break;
                }
                // add filters for all the custom fields
                $_POST[$value['item_type'] . $value['id']] = apply_filters('wppb_register_' . $value['item_type'] . $value['id'] . '_general_filter', $_POST[$value['item_type'] . $value['id']]);
            }
        }
        $registerFilterArray['extraError'] = '';
        //this is for creating extra error message and bypassing registration
        $registerFilterArray['extraError'] = apply_filters('wppb_register_extra_error', $registerFilterArray['extraError']);
        /* check if all the required fields were completed */
        if ($wppb_defaultOptions['firstname'] == 'show') {
            if ($wppb_defaultOptions['firstnameRequired'] == 'yes' && trim($_POST['first_name']) == '') {
                $firstnameComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['lastname'] == 'show') {
            if ($wppb_defaultOptions['lastnameRequired'] == 'yes' && trim($_POST['last_name']) == '') {
                $lastnameComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['nickname'] == 'show') {
            if ($wppb_defaultOptions['nicknameRequired'] == 'yes' && trim($_POST['nickname']) == '') {
                $nicknameComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['website'] == 'show') {
            if ($wppb_defaultOptions['websiteRequired'] == 'yes' && trim($_POST['website']) == '') {
                $websiteComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['aim'] == 'show') {
            if ($wppb_defaultOptions['aimRequired'] == 'yes' && trim($_POST['aim']) == '') {
                $aimComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['yahoo'] == 'show') {
            if ($wppb_defaultOptions['yahooRequired'] == 'yes' && trim($_POST['yahoo']) == '') {
                $yahooComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['jabber'] == 'show') {
            if ($wppb_defaultOptions['jabberRequired'] == 'yes' && trim($_POST['jabber']) == '') {
                $jabberComplete = 'no';
            }
        }
        if ($wppb_defaultOptions['bio'] == 'show') {
            if ($wppb_defaultOptions['bioRequired'] == 'yes' && trim($_POST['description']) == '') {
                $bioComplete = 'no';
            }
        }
        // check the extra fields also
        $wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
        if (file_exists($wppb_premium . 'extra.fields.php')) {
            $wppbFetchArray = get_option('wppb_custom_fields');
            foreach ($wppbFetchArray as $key => $value) {
                switch ($value['item_type']) {
                    case "input":
                        $_POST[$value['item_type'] . $value['id']] = apply_filters('wppb_register_input_custom_field_' . $value['id'], $_POST[$value['item_type'] . $value['id']]);
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "checkbox":
                        $checkboxOption = '';
                        $value['item_options'] = wppb_icl_t('plugin profile-builder-pro', 'custom_field_' . $id . '_options_translation', $value['item_options']);
                        $checkboxValue = explode(',', $value['item_options']);
                        foreach ($checkboxValue as $thisValue) {
                            $thisValue = str_replace(' ', '#@space@#', $thisValue);
                            //we need to escape the space-codification we sent earlier in the post
                            if (isset($_POST[$thisValue . $value['id']])) {
                                $localValue = str_replace('#@space@#', ' ', $_POST[$thisValue . $value['id']]);
                                $checkboxOption = $checkboxOption . $localValue . ',';
                            }
                        }
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($checkboxOption) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "radio":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "select":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "countrySelect":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "timeZone":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "datepicker":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "textarea":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if (trim($_POST[$value['item_type'] . $value['id']]) == '') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                    case "upload":
                        $uploadedfile = $value['item_type'] . $value['id'];
                        if (basename($_FILES[$uploadedfile]['name']) == '') {
                            if (isset($value['item_required'])) {
                                if ($value['item_required'] == 'yes') {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        } elseif (basename($_FILES[$uploadedfile]['name']) != '') {
                            //get allowed file types
                            if ($value['item_options'] != NULL || $value['item_options'] != '') {
                                $allFiles = false;
                                $extensions = explode(',', $value['item_options']);
                                foreach ($extensions as $key2 => $value2) {
                                    $extensions[$key2] = trim($value2);
                                }
                            } else {
                                $allFiles = true;
                            }
                            $thisFileExtStart = strrpos($_FILES[$uploadedfile]['name'], '.');
                            $thisFileExt = substr($_FILES[$uploadedfile]['name'], $thisFileExtStart);
                            if ($allFiles == false && !in_array($thisFileExt, $extensions)) {
                                array_push($uploadExt, basename($_FILES[$uploadedfile]['name']));
                                $allowedExtensions = '';
                                (int) ($nrOfExt = count($extensions) - 2);
                                foreach ($extensions as $key2 => $value2) {
                                    $allowedExtensions .= $value2;
                                    if ($key2 <= $nrOfExt) {
                                        $allowedExtensions .= ', ';
                                    }
                                }
                            }
                        }
                        break;
                    case "avatar":
                        $uploadedfile = $value['item_type'] . $value['id'];
                        if (basename($_FILES[$uploadedfile]['name']) == '') {
                            if ($_FILES[$uploadedfile]['type'] != 'image/jpeg' || $_FILES[$uploadedfile]['type'] != 'image/jpg' || $_FILES[$uploadedfile]['type'] != 'image/png' || $_FILES[$uploadedfile]['type'] != 'image/bmp' || $_FILES[$uploadedfile]['type'] != 'image/pjpeg' || $_FILES[$uploadedfile]['type'] != 'image/x-png') {
                                if (isset($value['item_required'])) {
                                    if ($value['item_required'] == 'yes') {
                                        array_push($extraFieldsErrorHolder, $value['id']);
                                    }
                                }
                            }
                        }
                        break;
                    case "agreeToTerms":
                        if (isset($value['item_required'])) {
                            if ($value['item_required'] == 'yes') {
                                if ($_POST[$value['item_type'] . $value['id']] == NULL) {
                                    array_push($extraFieldsErrorHolder, $value['id']);
                                }
                            }
                        }
                        break;
                }
            }
        }
        /* END check if all the required fields were completed */
        if ($registerFilterArray['extraError'] != '') {
            $error = $registerFilterArray['extraError'];
        } elseif (!$userdata['user_login']) {
            if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            } else {
                $error = apply_filters('wppb_register_userlogin_error1', __('A username is required for registration.', 'profilebuilder'));
            }
        } elseif (username_exists($userdata['user_login'])) {
            if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            } else {
                $error = apply_filters('wppb_register_userlogin_error2', __('Sorry, that username already exists!', 'profilebuilder'));
            }
        } elseif (!is_email($userdata['user_email'], true)) {
            $error = apply_filters('wppb_register_useremail_error1', __('You must enter a valid email address.', 'profilebuilder'));
        } elseif (email_exists($userdata['user_email'])) {
            $error = apply_filters('wppb_register_useremail_error2', __('Sorry, that email address is already used!', 'profilebuilder'));
        } elseif (empty($_POST['passw1']) || empty($_POST['passw2']) || $_POST['passw1'] != $_POST['passw2']) {
            if (empty($_POST['passw1']) || empty($_POST['passw2'])) {
                //verify if the user has completed both password fields
                $error = apply_filters('wppb_register_userpass_error1', __('You didn\'t complete one of the password-fields!', 'profilebuilder'));
            } elseif ($_POST['passw1'] != $_POST['passw2']) {
                //verify if the the password and the retyped password are a match
                $error = apply_filters('wppb_register_userpass_error2', __('The entered passwords don\'t match!', 'profilebuilder'));
            }
        } elseif (count($uploadExt) > 0) {
            $error = '<p class="semi-saved">' . __('There was an error while trying to upload the following attachment(s)', 'profilebuilder') . ': <span class="error">';
            foreach ($uploadExt as $key5 => $name5) {
                $lastOne++;
                $error .= $name5;
                if (count($uploadExt) - $lastOne > 0) {
                    $error .= ';<span style="padding-left:10px"></span>';
                }
            }
            $error .= '</span><br/>' . __('Only files with the following extension(s) can be uploaded:', 'profilebuilder') . ' <span class="error">' . $allowedExtensions . '</span><br/><span class="error">' . __('The account was NOT created!', 'profilebuilder') . '</span>
					</p>';
        } elseif ($agreed == false) {
            $error = __('You must agree to the terms and conditions before registering!', 'profilebuilder');
        } elseif ($firstnameComplete == 'no' || $lastnameComplete == 'no' || $nicknameComplete == 'no' || $websiteComplete == 'no' || $aimComplete == 'no' || $yahooComplete == 'no' || $jabberComplete == 'no' || $bioComplete == 'no' || !empty($extraFieldsErrorHolder)) {
            $error = __('The account was NOT created!', 'profilebuilder') . '<br/>' . __('(Several required fields were left uncompleted)', 'profilebuilder');
        } else {
            $registered_name = $_POST['user_name'];
            //register the user normally if it is not a multi-site installation
            if (!is_multisite()) {
                $wppb_generalSettings = get_option('wppb_general_settings');
                if ($wppb_generalSettings['emailConfirmation'] == 'yes') {
                    $foundError = false;
                    if (is_multisite()) {
                        $userSignup = $wpdb->get_results("SELECT * FROM {$wpdb->signups} WHERE user_login='******'user_login'] . "' OR user_email='" . $userdata['user_email'] . "'");
                    } else {
                        $userSignup = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "signups WHERE user_login='******'user_login'] . "' OR user_email='" . $userdata['user_email'] . "'");
                    }
                    if (trim($userSignup[0]->user_login) == $userdata['user_login']) {
                        $foundError = true;
                        $error = __('This username is already reserved to be used soon.', 'profilebuilder') . '<br/>' . __('Please try a different one!', 'profilebuilder');
                    } elseif (trim($userSignup[0]->user_email) == $userdata['user_email']) {
                        $foundError = true;
                        $error = __('This email address is already reserved to be used soon.', 'profilebuilder') . '<br/>' . __('Please try a different one!', 'profilebuilder');
                    }
                    if ($foundError) {
                    } else {
                        $new_user = '******';
                        $multisite_message = true;
                        $meta = array('user_pass' => base64_encode($userdata['user_pass']), 'first_name' => $userdata['first_name'], 'last_name' => $userdata['last_name'], 'nickname' => $userdata['nickname'], 'user_url' => $userdata['user_url'], 'aim' => $userdata['aim'], 'yim' => $userdata['yim'], 'jabber' => $userdata['jabber'], 'description' => $userdata['description'], 'role' => $userdata['role']);
                        $meta = wppb_add_custom_field_values($_POST, $meta);
                        wppb_signup_user($userdata['user_login'], $userdata['user_email'], $meta);
                    }
                } else {
                    $new_user = wp_insert_user($userdata);
                    /* add the extra profile information */
                    $wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
                    if (file_exists($wppb_premium . 'extra.fields.php')) {
                        $wppbFetchArray = get_option('wppb_custom_fields');
                        foreach ($wppbFetchArray as $key => $value) {
                            switch ($value['item_type']) {
                                case "input":
                                    add_user_meta($new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'] . $value['id']]));
                                    break;
                                case "hiddenInput":
                                    add_user_meta($new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'] . $value['id']]));
                                    break;
                                case "checkbox":
                                    $checkboxOption = '';
                                    $value['item_options'] = wppb_icl_t('plugin profile-builder-pro', 'custom_field_' . $id . '_options_translation', $value['item_options']);
                                    $checkboxValue = explode(',', $value['item_options']);
                                    foreach ($checkboxValue as $thisValue) {
                                        $thisValue = str_replace(' ', '#@space@#', $thisValue);
                                        //we need to escape the space-codification we sent earlier in the post
                                        if (isset($_POST[$thisValue . $value['id']])) {
                                            $localValue = str_replace('#@space@#', ' ', $_POST[$thisValue . $value['id']]);
                                            $checkboxOption = $checkboxOption . $localValue . ',';
                                        }
                                    }
                                    add_user_meta($new_user, $value['item_metaName'], $checkboxOption);
                                    break;
                                case "radio":
                                    add_user_meta($new_user, $value['item_metaName'], $_POST[$value['item_type'] . $value['id']]);
                                    break;
                                case "select":
                                    add_user_meta($new_user, $value['item_metaName'], $_POST[$value['item_type'] . $value['id']]);
                                    break;
                                case "countrySelect":
                                    update_user_meta($new_user, $value['item_metaName'], $_POST[$value['item_type'] . $value['id']]);
                                    break;
                                case "timeZone":
                                    update_user_meta($new_user, $value['item_metaName'], $_POST[$value['item_type'] . $value['id']]);
                                    break;
                                case "datepicker":
                                    update_user_meta($new_user, $value['item_metaName'], $_POST[$value['item_type'] . $value['id']]);
                                    break;
                                case "textarea":
                                    add_user_meta($new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'] . $value['id']]));
                                    break;
                                case "upload":
                                    $uploadedfile = $value['item_type'] . $value['id'];
                                    //first we need to verify if we don't try to upload a 0b or 0 length file
                                    if (basename($_FILES[$uploadedfile]['name']) != '') {
                                        //second we need to verify if the uploaded file size is less then the set file size in php.ini
                                        if ($_FILES[$uploadedfile]['size'] < WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE && $_FILES[$uploadedfile]['size'] != 0) {
                                            //we need to prepare the basename of the file, so that ' becomes ` as ' gives an error
                                            $fileName = basename($_FILES[$uploadedfile]['name']);
                                            $finalFileName = '';
                                            for ($i = 0; $i < strlen($fileName); $i++) {
                                                if ($fileName[$i] == "'") {
                                                    $finalFileName .= '`';
                                                } else {
                                                    $finalFileName .= $fileName[$i];
                                                }
                                            }
                                            //create the target path for uploading
                                            $wpUploadPath = wp_upload_dir();
                                            // Array of key => value pairs
                                            $target_path = $wpUploadPath['basedir'] . "/profile_builder/attachments/";
                                            $target_path = $target_path . 'userID_' . $new_user . '_attachment_' . $finalFileName;
                                            if (move_uploaded_file($_FILES[$uploadedfile]['tmp_name'], $target_path)) {
                                                //$upFile = get_bloginfo('home').'/'.$target_path;
                                                $upFile = $wpUploadPath['baseurl'] . '/profile_builder/attachments/userID_' . $new_user . '_attachment_' . $finalFileName;
                                                add_user_meta($new_user, $value['item_metaName'], $upFile);
                                                $pictureUpload = 'yes';
                                            }
                                        }
                                    }
                                    break;
                                case "avatar":
                                    $uploadedfile = $value['item_type'] . $value['id'];
                                    $wpUploadPath = wp_upload_dir();
                                    // Array of key => value pairs
                                    $target_path_original = $wpUploadPath['basedir'] . "/profile_builder/avatars/";
                                    $fileName = $_FILES[$uploadedfile]['name'];
                                    $finalFileName = '';
                                    for ($i = 0; $i < strlen($fileName); $i++) {
                                        if ($fileName[$i] == "'") {
                                            $finalFileName .= '`';
                                        } elseif ($fileName[$i] == ' ') {
                                            $finalFileName .= '_';
                                        } else {
                                            $finalFileName .= $fileName[$i];
                                        }
                                    }
                                    $fileName = $finalFileName;
                                    $target_path = $target_path_original . 'userID_' . $new_user . '_originalAvatar_' . $fileName;
                                    /* when trying to upload file, be sure it's one of the accepted image file-types */
                                    if (($_FILES[$uploadedfile]['type'] == 'image/jpeg' || $_FILES[$uploadedfile]['type'] == 'image/jpg' || $_FILES[$uploadedfile]['type'] == 'image/png' || $_FILES[$uploadedfile]['type'] == 'image/bmp' || $_FILES[$uploadedfile]['type'] == 'image/pjpeg' || $_FILES[$uploadedfile]['type'] == 'image/x-png') && ($_FILES[$uploadedfile]['size'] < WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE && $_FILES[$uploadedfile]['size'] != 0)) {
                                        $wp_filetype = wp_check_filetype(basename($_FILES[$uploadedfile]['name']), null);
                                        $attachment = array('post_mime_type' => $wp_filetype['type'], 'post_title' => $fileName, 'post_content' => '', 'post_status' => 'inherit');
                                        $attach_id = wp_insert_attachment($attachment, $target_path);
                                        $upFile = image_downsize($attach_id, 'thumbnail');
                                        $upFile = $upFile[0];
                                        //if file upload succeded
                                        if (move_uploaded_file($_FILES[$uploadedfile]['tmp_name'], $target_path)) {
                                            add_user_meta($new_user, $value['item_metaName'], $upFile);
                                            wppb_resize_avatar($new_user);
                                            $avatarUpload = 'yes';
                                        } else {
                                            $avatarUpload = 'no';
                                        }
                                    }
                                    if ($_FILES[$uploadedfile]['type'] == '') {
                                        $avatarUpload = 'yes';
                                    }
                                    break;
                            }
                        }
                    }
                    // if admin approval is activated, then block the user untill he gets approved
                    $wppb_generalSettings = get_option('wppb_general_settings', 'not_found');
                    if ($wppb_generalSettings != 'not_found') {
                        if ($wppb_generalSettings['adminApproval'] == 'yes') {
                            wp_set_object_terms($new_user, array('unapproved'), 'user_status', false);
                            clean_object_term_cache($new_user, 'user_status');
                        }
                    }
                    // send an email to the admin, and - if selected - to the user also.
                    $bloginfo = get_bloginfo('name');
                    $sentEmailStatus = wppb_notify_user_registration_email($bloginfo, esc_attr($_POST['user_name']), esc_attr($_POST['email']), $_POST['send_credentials_via_email'], $_POST['passw1'], $wppb_generalSettings['adminApproval']);
                }
            } elseif (is_multisite()) {
                //validate username and email
                $validationRes = wpmu_validate_user_signup($userdata['user_login'], $userdata['user_email']);
                $error = apply_filters('wppb_register_wpmu_registration_error', $validationRes['errors']->get_error_message());
                if (trim($error) != '') {
                } else {
                    $new_user = '******';
                    $multisite_message = true;
                    $meta = array('user_pass' => base64_encode($userdata['user_pass']), 'first_name' => $userdata['first_name'], 'last_name' => $userdata['last_name'], 'nickname' => $userdata['nickname'], 'user_url' => $userdata['user_url'], 'aim' => $userdata['aim'], 'yim' => $userdata['yim'], 'jabber' => $userdata['jabber'], 'description' => $userdata['description'], 'role' => $userdata['role']);
                    $meta = wppb_add_custom_field_values($_POST, $meta);
                    wppb_signup_user($userdata['user_login'], $userdata['user_email'], $meta);
                }
            }
        }
    }
    ?>
	<div class="wppb_holder" id="wppb_register">
<?php 
    if (is_user_logged_in() && !current_user_can('create_users')) {
        global $user_ID;
        $login = get_userdata($user_ID);
        if ($login->display_name == '') {
            $login->display_name = $login->user_login;
        }
        $registerFilterArray['loginLogoutError'] = '
				<p class="log-in-out alert">' . __('You are logged in as', 'profilebuilder') . ' <a href="' . get_author_posts_url($login->ID) . '" title="' . $login->display_name . '">' . $login->display_name . '</a>. ' . __('You don\'t need another account.', 'profilebuilder') . ' <a href="' . wp_logout_url(get_permalink()) . '" title="' . __('Log out of this account.', 'profilebuilder') . '">' . __('Logout', 'profilebuilder') . '  &raquo;</a></p><!-- .log-in-out .alert -->';
        $registerFilterArray['loginLogoutError'] = apply_filters('wppb_register_have_account_alert', $registerFilterArray['loginLogoutError'], $login->ID);
        echo $registerFilterArray['loginLogoutError'];
    } elseif ($new_user != 'no') {
        if (current_user_can('create_users')) {
            if ($multisite_message) {
                $registerFilterArray['wpmuRegistrationMessage1'] = '<p class="success">' . sprintf(__('An email has been sent to %1$s with information on how to activate his/her account.', 'profilebuilder'), $userdata['user_email']) . '</p><!-- .success -->';
                echo $registerFilterArray['registrationMessage1'] = apply_filters('wppb_wpmu_register_account_created1', $registerFilterArray['wpmuRegistrationMessage1'], $registered_name, $userdata['user_email']);
            } else {
                $registerFilterArray['registrationMessage1'] = '<p class="success">' . sprintf(__('A user account has been created for %1$s.', 'profilebuilder'), $registered_name) . '</p><!-- .success -->';
                echo $registerFilterArray['registrationMessage1'] = apply_filters('wppb_register_account_created1', $registerFilterArray['registrationMessage1'], $registered_name);
            }
            $redirectLink = wppb_curpageurl();
            if (file_exists(WPPB_PLUGIN_DIR . '/premium/addons/addon.php')) {
                //check to see if the redirecting addon is present and activated
                $wppb_addon_settings = get_option('wppb_addon_settings');
                if ($wppb_addon_settings['wppb_customRedirect'] == 'show') {
                    //check to see if the redirect location is not an empty string and is activated
                    $customRedirectSettings = get_option('customRedirectSettings');
                    if (trim($customRedirectSettings['afterRegisterTarget']) != '' && $customRedirectSettings['afterRegister'] == 'yes') {
                        $redirectLink = trim($customRedirectSettings['afterRegisterTarget']);
                        if (wppb_check_missing_http($redirectLink)) {
                            $redirectLink = 'http://' . $redirectLink;
                        }
                    }
                }
            }
            $registerFilterArray['redirectMessage1'] = '<font id="messageTextColor">' . sprintf(__('You will soon be redirected automatically. If you see this page for more than 3 seconds, please click %1$s.%2$s', 'profilebuilder'), '<a href="' . $redirectLink . '">' . __('here', 'profilebuilder') . '</a>', '<meta http-equiv="Refresh" content="3;url=' . $redirectLink . '" />') . '</font><br/><br/>';
            echo $registerFilterArray['redirectMessage1'] = apply_filters('wppb_register_redirect_after_creation1', $registerFilterArray['redirectMessage1'], $redirectLink);
        } else {
            if ($multisite_message) {
                $registerFilterArray['wpmuRegistrationMessage2'] = '<p class="success">' . __('An email has been sent to you with information on how to activate your account.', 'profilebuilder') . '</p><!-- .success -->';
                echo $registerFilterArray['wpmuRegistrationMessage2'] = apply_filters('wppb_register_account_created2', $registerFilterArray['wpmuRegistrationMessage2'], $registered_name);
            } else {
                $registerFilterArray['registrationMessage2'] = '<p class="success">' . sprintf(__('Thank you for registering %1$s.', 'profilebuilder'), $registered_name) . '</p><!-- .success -->';
                echo $registerFilterArray['registrationMessage2'] = apply_filters('wppb_register_account_created2', $registerFilterArray['registrationMessage2'], $registered_name);
            }
            $redirectLink = wppb_curpageurl();
            if (file_exists(WPPB_PLUGIN_DIR . '/premium/addons/addon.php')) {
                //check to see if the redirecting addon is present and activated
                $wppb_addon_settings = get_option('wppb_addon_settings');
                if ($wppb_addon_settings['wppb_customRedirect'] == 'show') {
                    //check to see if the redirect location is not an empty string and is activated
                    $customRedirectSettings = get_option('customRedirectSettings');
                    if (trim($customRedirectSettings['afterRegisterTarget']) != '' && $customRedirectSettings['afterRegister'] == 'yes') {
                        $redirectLink = trim($customRedirectSettings['afterRegisterTarget']);
                        if (wppb_check_missing_http($redirectLink)) {
                            $redirectLink = 'http://' . $redirectLink;
                        }
                    }
                }
            }
            $registerFilterArray['redirectMessage2'] = '<font id="messageTextColor">' . sprintf(__('You will soon be redirected automatically. If you see this page for more than 3 seconds, please click %1$s.%2$s', 'profilebuilder'), '<a href="' . $redirectLink . '">' . __('here', 'profilebuilder') . '</a>', '<meta http-equiv="Refresh" content="3;url=' . $redirectLink . '" />') . '</font><br/><br/>';
            echo $registerFilterArray['redirectMessage2'] = apply_filters('wppb_register_redirect_after_creation2', $registerFilterArray['redirectMessage2'], $redirectLink);
        }
        if (isset($_POST['send_credentials_via_email'])) {
            if ($sentEmailStatus == 1) {
                $registerFilterArray['emailMessage1'] = '<p class="error">' . __('An error occured while trying to send the notification email.', 'profilebuilder') . '</p><!-- .error -->';
                $registerFilterArray['emailMessage1'] = apply_filters('wppb_register_send_notification_email_fail', $registerFilterArray['emailMessage1']);
                echo $registerFilterArray['emailMessage1'];
            } elseif ($sentEmailStatus == 2) {
                if ($multisite_message) {
                    $registerFilterArray['wpmuEmailMessage2'] = '<p class="success">' . __('An email containing activation instructions was successfully sent.', 'profilebuilder') . '</p><!-- .success -->';
                    $registerFilterArray['wpmuEmailMessage2'] = apply_filters('wppb_register_send_notification_email_success', $registerFilterArray['wpmuEmailMessage2']);
                    echo $registerFilterArray['wpmuEmailMessage2'];
                } else {
                    $registerFilterArray['emailMessage2'] = '<p class="success">' . __('An email containing the username and password was successfully sent.', 'profilebuilder') . '</p><!-- .success -->';
                    $registerFilterArray['emailMessage2'] = apply_filters('wppb_register_send_notification_email_success', $registerFilterArray['emailMessage2']);
                    echo $registerFilterArray['emailMessage2'];
                }
            }
        }
    } else {
        if ($error) {
            $registerFilterArray['errorMessage'] = '<p class="error">' . $error . '</p><!-- .error -->';
            $registerFilterArray['errorMessage'] = apply_filters('wppb_register_error_messaging', $registerFilterArray['errorMessage'], $error);
            echo $registerFilterArray['errorMessage'];
        }
        if (current_user_can('create_users') && $registration) {
            $registerFilterArray['alertMessage1'] = '<p class="alert">' . __('Users can register themselves or you can manually create users here.', 'profilebuilder') . '</p><!-- .alert -->';
            $registerFilterArray['alertMessage1'] = apply_filters('wppb_register_alert_messaging1', $registerFilterArray['alertMessage1']);
            echo $registerFilterArray['alertMessage1'];
        } elseif (current_user_can('create_users')) {
            $registerFilterArray['alertMessage2'] = '<p class="alert">' . __('Users cannot currently register themselves, but you can manually create users here.', 'profilebuilder') . '</p><!-- .alert -->';
            $registerFilterArray['alertMessage2'] = apply_filters('wppb_register_alert_messaging2', $registerFilterArray['alertMessage2']);
            echo $registerFilterArray['alertMessage2'];
        } elseif (!current_user_can('create_users') && !$registration) {
            $registerFilterArray['alertMessage3'] = '<p class="alert">' . __('Only an administrator can add new users.', 'profilebuilder') . '</p><!-- .alert -->';
            $registerFilterArray['alertMessage3'] = apply_filters('wppb_register_alert_messaging3', $registerFilterArray['alertMessage3']);
            echo $registerFilterArray['alertMessage3'];
        }
        if ($registration || current_user_can('create_users')) {
            /* use this action hook to add extra content before the register form. */
            do_action('wppb_before_register_fields');
            ?>
					<form enctype="multipart/form-data" method="post" id="adduser" class="user-forms" action="http://<?php 
            echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
            ?>
">
<?php 
            echo '<input type="hidden" name="MAX_FILE_SIZE" value="' . WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE . '" /><!-- set the MAX_FILE_SIZE to the server\'s current max upload size in bytes -->';
            $registerFilterArray2['name1'] = '<p class="registerNameHeading"><strong>' . __('Name', 'profilebuilder') . '</strong></p>';
            $registerFilterArray2['name1'] = apply_filters('wppb_register_content_name1', $registerFilterArray2['name1']);
            if ($wppb_defaultOptions['username'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['usernameRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="This field is required for registration.">*</font>';
                    if (isset($_POST['user_name'])) {
                        if (trim($_POST['user_name']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
                    if ($wppb_defaultOptions['email'] == 'show') {
                        $errorVar = '';
                        $errorMark = '';
                        if ($wppb_defaultOptions['emailRequired'] == 'yes') {
                            $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                            if (isset($_POST['email'])) {
                                if (trim($_POST['email']) == '' || !is_email(trim($_POST['email']))) {
                                    $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
                                    $errorVar = ' errorHolder';
                                }
                            }
                        }
                        $localVar = '';
                        if (isset($_POST['email'])) {
                            $localVar = $_POST['email'];
                        }
                        $registerFilterArray2['name2'] = '
										<p class="form-email' . $errorVar . '">
											<label for="email">' . __('E-mail', 'profilebuilder') . $errorMark . '</label>
											<input class="text-input" name="email" type="text" id="email" value="' . trim($localVar) . '" />
										</p><!-- .form-email -->';
                        $registerFilterArray2['name2'] = apply_filters('wppb_register_content_name2_with_email', $registerFilterArray2['name2'], trim($localVar), $errorVar, $errorMark);
                    }
                } else {
                    $localVar = '';
                    if (isset($_POST['user_name'])) {
                        $localVar = $_POST['user_name'];
                    }
                    $registerFilterArray2['name2'] = '
									<p class="form-username' . $errorVar . '">
										<label for="user_name">' . __('Username', 'profilebuilder') . $errorMark . '</label>
										<input class="text-input" name="user_name" type="text" id="user_name" value="' . trim($localVar) . '" />
									</p><!-- .form-username -->';
                    $registerFilterArray2['name2'] = apply_filters('wppb_register_content_name2', $registerFilterArray2['name2'], trim($localVar), $errorVar, $errorMark);
                }
            }
            if ($wppb_defaultOptions['firstname'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['firstnameRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['first_name'])) {
                        if (trim($_POST['first_name']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['first_name'])) {
                    $localVar = $_POST['first_name'];
                }
                $registerFilterArray2['name3'] = '
								<p class="first_name' . $errorVar . '">
									<label for="first_name">' . __('First Name', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="first_name" type="text" id="first_name" value="' . trim($localVar) . '" />
								</p><!-- .first_name -->';
                $registerFilterArray2['name3'] = apply_filters('wppb_register_content_name3', $registerFilterArray2['name3'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['lastname'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['lastnameRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['last_name'])) {
                        if (trim($_POST['last_name']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['last_name'])) {
                    $localVar = $_POST['last_name'];
                }
                $registerFilterArray2['name4'] = '
								<p class="last_name' . $errorVar . '">
									<label for="last_name">' . __('Last Name', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="last_name" type="text" id="last_name" value="' . trim($localVar) . '" />
								</p><!-- .last_name -->';
                $registerFilterArray2['name4'] = apply_filters('wppb_register_content_name4', $registerFilterArray2['name4'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['nickname'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['nicknameRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['nickname'])) {
                        if (trim($_POST['nickname']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['nickname'])) {
                    $localVar = $_POST['nickname'];
                }
                $registerFilterArray2['name5'] = '
								<p class="nickname' . $errorVar . '">
									<label for="nickname">' . __('Nickname', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="nickname" type="text" id="nickname" value="' . trim($localVar) . '" />
								</p><!-- .nickname -->';
                $registerFilterArray2['name5'] = apply_filters('wppb_register_content_name5', $registerFilterArray2['name5'], trim($localVar), $errorVar, $errorMark);
            }
            $registerFilterArray2['info1'] = '<p class="registerContactInfoHeading"><strong>' . __('Contact Info', 'profilebuilder') . '</strong></p>';
            $registerFilterArray2['info1'] = apply_filters('wppb_register_content_info1', $registerFilterArray2['info1']);
            if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            } else {
                if ($wppb_defaultOptions['email'] == 'show') {
                    $errorVar = '';
                    $errorMark = '';
                    if ($wppb_defaultOptions['emailRequired'] == 'yes') {
                        $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                        if (isset($_POST['email'])) {
                            if (trim($_POST['email']) == '' || !is_email(trim($_POST['email']))) {
                                $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
                                $errorVar = ' errorHolder';
                            }
                        }
                    }
                    $localVar = '';
                    if (isset($_POST['email'])) {
                        $localVar = $_POST['email'];
                    }
                    $registerFilterArray2['info2'] = '
									<p class="form-email' . $errorVar . '">
										<label for="email">' . __('E-mail', 'profilebuilder') . $errorMark . '</label>
										<input class="text-input" name="email" type="text" id="email" value="' . trim($localVar) . '" />
									</p><!-- .form-email -->';
                    $registerFilterArray2['info2'] = apply_filters('wppb_register_content_info2', $registerFilterArray2['info2'], trim($localVar), $errorVar, $errorMark);
                }
            }
            if ($wppb_defaultOptions['website'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['websiteRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['website'])) {
                        if (trim($_POST['website']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['website'])) {
                    $localVar = $_POST['website'];
                }
                $registerFilterArray2['info3'] = '
								<p class="form-website' . $errorVar . '">
									<label for="website">' . __('Website', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="website" type="text" id="website" value="' . trim($localVar) . '" />
								</p><!-- .form-website -->';
                $registerFilterArray2['info3'] = apply_filters('wppb_register_content_info3', $registerFilterArray2['info3'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['aim'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['aimRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['aim'])) {
                        if (trim($_POST['aim']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['aim'])) {
                    $localVar = $_POST['aim'];
                }
                $registerFilterArray2['info4'] = '
								<p class="form-aim' . $errorVar . '">
									<label for="aim">' . __('AIM', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="aim" type="text" id="aim" value="' . trim($localVar) . '" />
								</p><!-- .form-aim -->';
                $registerFilterArray2['info4'] = apply_filters('wppb_register_content_info4', $registerFilterArray2['info4'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['yahoo'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['yahooRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['yim'])) {
                        if (trim($_POST['yim']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['yim'])) {
                    $localVar = $_POST['yim'];
                }
                $registerFilterArray2['info5'] = '
								<p class="form-yim' . $errorVar . '">
									<label for="yim">' . __('Yahoo IM', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="yim" type="text" id="yim" value="' . trim($localVar) . '" />
								</p><!-- .form-yim -->';
                $registerFilterArray2['info5'] = apply_filters('wppb_register_content_info5', $registerFilterArray2['info5'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['jabber'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['jabberRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['jabber'])) {
                        if (trim($_POST['jabber']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['jabber'])) {
                    $localVar = $_POST['jabber'];
                }
                $registerFilterArray2['info6'] = '
								<p class="form-jabber' . $errorVar . '">
									<label for="jabber">' . __('Jabber / Google Talk', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="jabber" type="text" id="jabber" value="' . trim($localVar) . '" />
								</p><!-- .form-jabber -->';
                $registerFilterArray2['info6'] = apply_filters('wppb_register_content_info6', $registerFilterArray2['info6'], trim($localVar), $errorVar, $errorMark);
            }
            $registerFilterArray2['ay1'] = '<p class="registerAboutYourselfHeader"><strong>' . __('About Yourself', 'profilebuilder') . '</strong></p>';
            $registerFilterArray2['ay1'] = apply_filters('wppb_register_content_about_yourself1', $registerFilterArray2['ay1']);
            if ($wppb_defaultOptions['bio'] == 'show') {
                $errorVar = '';
                $errorMark = '';
                if ($wppb_defaultOptions['bioRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="' . __('This field is marked as required by the administrator', 'profilebuilder') . '">*</font>';
                    if (isset($_POST['description'])) {
                        if (trim($_POST['description']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="' . __('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder') . '"/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                }
                $localVar = '';
                if (isset($_POST['description'])) {
                    $localVar = $_POST['description'];
                }
                $registerFilterArray2['ay2'] = '
								<p class="form-description' . $errorVar . '">
									<label for="description">' . __('Biographical Info', 'profilebuilder') . $errorMark . '</label>
									<textarea class="text-input" name="description" id="description" rows="5" cols="30">' . trim($localVar) . '</textarea>
								</p><!-- .form-description -->';
                $registerFilterArray2['ay2'] = apply_filters('wppb_register_content_about_yourself2', $registerFilterArray2['ay2'], trim($localVar), $errorVar, $errorMark);
            }
            if ($wppb_defaultOptions['password'] == 'show') {
                $errorMark = '';
                $errorMark2 = '';
                $errorVar = '';
                $errorVar2 = '';
                if ($wppb_defaultOptions['passwordRequired'] == 'yes') {
                    $errorMark = '<font color="red" title="This field is required for registration.">*</font>';
                    $errorMark2 = '<font color="red" title="This field is required for registration.">*</font>';
                    if (isset($_POST['passw1'])) {
                        if (trim($_POST['passw1']) == '') {
                            $errorMark = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
                            $errorVar = ' errorHolder';
                        }
                    }
                    if (isset($_POST['passw2'])) {
                        if (trim($_POST['passw2']) == '') {
                            $errorMark2 = '<img src="' . WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
                            $errorVar2 = ' errorHolder';
                        }
                    }
                }
                $localVar1 = '';
                if (isset($_POST['passw1'])) {
                    $localVar1 = $_POST['passw1'];
                }
                $localVar2 = '';
                if (isset($_POST['passw2'])) {
                    $localVar2 = $_POST['passw2'];
                }
                $registerFilterArray2['ay3'] = '
								<p class="form-password' . $errorVar . '">
									<label for="pass1">' . __('Password', 'profilebuilder') . $errorMark . '</label>
									<input class="text-input" name="passw1" type="password" id="pass1" value="' . trim($localVar1) . '" />
								</p><!-- .form-password -->
				 
								<p class="form-password' . $errorVar2 . '">
									<label for="pass2">' . __('Repeat Password', 'profilebuilder') . $errorMark2 . '</label>
									<input class="text-input" name="passw2" type="password" id="pass2" value="' . trim($localVar2) . '" />
								</p><!-- .form-password -->';
                $registerFilterArray2['ay3'] = apply_filters('wppb_register_content_about_yourself3', $registerFilterArray2['ay3'], trim($localVar1), trim($localVar2), $errorVar, $errorMark, $errorVar2, $errorMark2);
            }
            $wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
            if (file_exists($wppb_premium . 'extra.fields.php')) {
                require_once $wppb_premium . 'extra.fields.php';
                //register_user_extra_fields($error, $_POST, $extraFieldsErrorHolder);
                $page = 'register';
                $returnedValue = wppb_extra_fields($current_user->id, $extraFieldsErrorHolder, $registerFilterArray, $page, $error, $_POST);
                //copy over extra fields to the rest of the fieldso on the edit profile
                foreach ($returnedValue as $key => $value) {
                    $registerFilterArray2[$key] = apply_filters('wppb_register_content_' . $key, $value);
                }
            }
            if (function_exists('wppb_add_recaptcha_to_registration_form')) {
                $wppb_addon_settings = get_option('wppb_addon_settings');
                if ($wppb_addon_settings['wppb_reCaptcha'] == 'show') {
                    $reCAPTCHAForm = wppb_add_recaptcha_to_registration_form();
                    $labelName = apply_filters('wppb_register_anti_spam_title', __('Anti-Spam', 'profilebuilder'));
                    $registerFilterArray2['reCAPTCHAForm'] = '<div class="form-reCAPTCHA"><label class="form-reCAPTCHA-label" for="' . $labelName . '">' . $labelName . '</label>' . $reCAPTCHAForm . '</div><!-- .form-reCAPTCHA -->';
                }
            }
            // additional filter, just in case it is needed
            $registerFilterArray2['extraRegistrationFilter'] = '';
            $registerFilterArray2['extraRegistrationFilter'] = apply_filters('extraRegistrationField', $registerFilterArray2['extraRegistrationFilter']);
            // END additional filter, just in case it is needed
            $wppb_generalSettings = get_option('wppb_general_settings');
            if ($wppb_generalSettings['emailConfirmation'] != 'yes') {
                if (!is_multisite()) {
                    if (isset($_POST['send_credentials_via_email'])) {
                        $checkedVar = ' checked';
                    } else {
                        $checkedVar = '';
                    }
                    $registerFilterArray2['confirmationEmailForm'] = '
										<p class="send-confirmation-email">
											<label for="send-confirmation-email"> 
												<input id="send_credentials_via_email" type="checkbox" name="send_credentials_via_email" value="sending"' . $checkedVar . '/>
												' . __('Send these credentials via email.', 'profilebuilder') . '
											</label>
										</p><!-- .send-confirmation-email -->';
                    $registerFilterArray2['confirmationEmailForm'] = apply_filters('wppb_register_confirmation_email_form', $registerFilterArray2['confirmationEmailForm'], $checkedVar);
                }
            }
            $registerFilterArray2 = apply_filters('wppb_register', $registerFilterArray2);
            foreach ($registerFilterArray2 as $key => $value) {
                echo $value;
            }
            ?>
							
						<p class="form-submit">
							<input name="adduser" type="submit" id="addusersub" class="submit button" value="<?php 
            if (current_user_can('create_users')) {
                _e('Add User', 'profilebuilder');
            } else {
                _e('Register', 'profilebuilder');
            }
            ?>
" />
							<input name="action" type="hidden" id="action" value="adduser" />
							<input type="hidden" name="formName" value="register" />
						</p><!-- .form-submit -->
<?php 
            wp_nonce_field('verify_true_registration', 'register_nonce_field');
            ?>
					</form><!-- #adduser -->

<?php 
        }
    }
    /* use this action hook to add extra content after the register form. */
    do_action('wppb_after_register_fields');
    ?>
	
	</div>
<?php 
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
コード例 #30
0
 /**
  * Creates user without email confirmation.
  *
  * @access public
  */
 public function custom_createuser()
 {
     global $wpdb;
     check_admin_referer('create-user', '_wpnonce_create-user');
     if (!current_user_can('create_users')) {
         wp_die(__('Cheatin&#8217; uh?'));
     }
     if (!is_multisite()) {
         $user_id = edit_user();
         if (is_wp_error($user_id)) {
             $add_user_errors = $user_id;
         } else {
             if (current_user_can('list_users')) {
                 $redirect = 'users.php?update=add&id=' . $user_id;
             } else {
                 $redirect = add_query_arg('update', 'add', 'user-new.php');
             }
             wp_redirect($redirect);
             die;
         }
     } else {
         /* Check if user already exists in the network */
         $user_details = get_user_by('login', $_REQUEST['user_login']);
         if (!$user_details) {
             // Adding a new user to this site
             $user_details = wpmu_validate_user_signup($_REQUEST['user_login'], $_REQUEST['email']);
             if (is_wp_error($user_details['errors']) && !empty($user_details['errors']->errors)) {
                 $add_user_errors = $user_details['errors'];
             } else {
                 $new_user_login = apply_filters('pre_user_login', sanitize_user(wp_unslash($_REQUEST['user_login']), true));
                 add_filter('wpmu_signup_user_notification', '__return_false');
                 // Disable confirmation email
                 wpmu_signup_user($new_user_login, $_REQUEST['email'], array('add_to_blog' => $wpdb->blogid, 'new_role' => $_REQUEST['role']));
                 $key = $wpdb->get_var($wpdb->prepare("SELECT activation_key FROM {$wpdb->signups} WHERE user_login = %s AND user_email = %s", $new_user_login, $_REQUEST['email']));
                 wpmu_activate_signup($key);
                 $redirect = add_query_arg(array('update' => 'addnoconfirmation'), 'user-new.php');
                 wp_redirect($redirect);
                 die;
             }
         } else {
             //Add existing user to the blog.
             $new_user_email = $user_details->user_email;
             $redirect = 'user-new.php';
             $username = $user_details->user_login;
             $user_id = $user_details->ID;
             add_existing_user_to_blog(array('user_id' => $user_id, 'role' => $_REQUEST['role']));
             $redirect = add_query_arg(array('update' => 'addnoconfirmation'), 'user-new.php');
             wp_redirect($redirect);
             die;
         }
     }
 }