Exemplo n.º 1
0
 function register_new_user()
 {
     $posted = array();
     $errors = new WP_Error();
     $user_pass = wp_generate_password();
     $show_password_fields = apply_filters('show_password_fields_on_registration', true);
     // Get (and clean) data
     $fields = array('user_login', 'user_email', 'pass1', 'pass2');
     foreach ($fields as $field) {
         if (isset($_POST[$field])) {
             $posted[$field] = stripslashes(trim($_POST[$field]));
         }
     }
     $sanitized_user_login = sanitize_user($posted['user_login']);
     $user_email = apply_filters('user_registration_email', $posted['user_email']);
     // Check the username
     if ($sanitized_user_login == '') {
         $errors->add('empty_username', __('<strong>ERROR</strong>: Please enter a username.', APP_TD));
     } elseif (!validate_username($posted['user_login'])) {
         $errors->add('invalid_username', __('<strong>ERROR</strong>: This username is invalid because it uses illegal characters. Please enter a valid username.', APP_TD));
         $sanitized_user_login = '';
     } elseif (username_exists($sanitized_user_login)) {
         $errors->add('username_exists', __('<strong>ERROR</strong>: This username is already registered, please choose another one.', APP_TD));
     }
     // Check the e-mail address
     if ($user_email == '') {
         $errors->add('empty_email', __('<strong>ERROR</strong>: Please type your e-mail address.', APP_TD));
     } elseif (!is_email($user_email)) {
         $errors->add('invalid_email', __('<strong>ERROR</strong>: The email address isn&#8217;t correct.', APP_TD));
         $user_email = '';
     } elseif (email_exists($user_email)) {
         $errors->add('email_exists', __('<strong>ERROR</strong>: This email is already registered, please choose another one.', APP_TD));
     }
     do_action('register_post', $sanitized_user_login, $user_email, $errors);
     $errors = apply_filters('registration_errors', $errors, $sanitized_user_login, $user_email);
     if ($errors->get_error_code()) {
         $this->error = $errors;
         return $this->error;
     }
     if ($show_password_fields) {
         if (empty($posted['pass1'])) {
             $errors->add('empty_password', __('<strong>ERROR</strong>: Please enter a password.', APP_TD));
         } elseif (empty($posted['pass2'])) {
             $errors->add('empty_password', __('<strong>ERROR</strong>: Please enter the password twice.', APP_TD));
         } elseif (!empty($posted['pass1']) && $posted['pass1'] != $posted['pass2']) {
             $errors->add('password_mismatch', __('<strong>ERROR</strong>: The passwords do not match.', APP_TD));
         }
     }
     if (current_theme_supports('app-recaptcha')) {
         list($options) = get_theme_support('app-recaptcha');
         require_once $options['file'];
         // check and make sure the reCaptcha values match
         $resp = recaptcha_check_answer($options['private_key'], $_SERVER['REMOTE_ADDR'], $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']);
         if (!$resp->is_valid) {
             $errors->add('invalid_recaptcha', __('<strong>ERROR</strong>: The reCaptcha anti-spam response was incorrect.', APP_TD));
         }
     }
     if ($errors->get_error_code()) {
         $this->error = $errors;
         return $this->error;
     }
     if (isset($posted['pass1'])) {
         $user_pass = $posted['pass1'];
     }
     // create the account and pass back the new user id
     $user_id = wp_create_user($posted['user_login'], $user_pass, $posted['user_email']);
     // something went wrong captain
     if (!$user_id) {
         $errors->add('registerfail', sprintf(__('<strong>ERROR</strong>: Couldn&#39;t register you... please contact the <a href="mailto:%s">webmaster</a> !', APP_TD), get_option('admin_email')));
         if ($errors->get_error_code()) {
             $this->error = $errors;
             return $this->error;
         }
     }
     do_action('appthemes_after_registration', $user_id, $user_pass);
     if ($show_password_fields) {
         // set the WP login cookie (log the user in)
         $secure_cookie = is_ssl() ? true : false;
         wp_set_auth_cookie($user_id, true, $secure_cookie);
         if (isset($_REQUEST['redirect_to'])) {
             $success_redirect = $_REQUEST['redirect_to'];
         } else {
             $success_redirect = get_option('siteurl');
         }
     } else {
         // WP created password for user, so show a message that it's been emailed to him
         $success_redirect = add_query_arg('checkemail', 'newpass', APP_Login::get_url('redirect'));
     }
     // redirect
     wp_redirect($success_redirect);
     exit;
 }
/**
 * modify Social Connect redirect to url
 * @since 3.1.9
 */
function cp_social_connect_redirect_to($redirect_to)
{
    if (preg_match('#/wp-(admin|login)?(.*?)$#i', $redirect_to)) {
        $redirect_to = home_url();
    }
    if (current_theme_supports('app-login')) {
        if (APP_Login::get_url('redirect') == $redirect_to || appthemes_get_registration_url('redirect') == $redirect_to) {
            $redirect_to = home_url();
        }
    }
    return $redirect_to;
}
Exemplo n.º 3
0
<form action="<?php 
echo APP_Login::get_url();
?>
" method="post" class="login-form" id="login-form">

	<fieldset>

		<div class="form-field">
			<label>
				<?php 
_e('Username:'******'Password:'******'Login', APP_TD);
?>
" />
				<?php