Je cherche un moyen facile de placer le formulaire d'inscription d'utilisateur sur le front-end d'un site WordPress. J'ai déjà utilisé wp_login_form () pour placer le formulaire de connexion sur le serveur principal, mais je dois maintenant faire de même avec le formulaire d'inscription.
Des idées?
Jeff Starr a écrit un excellent tutoriel sur l’enregistrement frontal, la récupération du login et du mot de passe
adoptant la même approche que suggérée par onetrickpony . Donc, prenez ceci comme un suivi de sa réponse et comme une autre ressource qui pourrait vous aider à le faire:
http://digwp.com/2010/12/login-register-password-code/
Maintenant, vous avez deux exemples: comment coder cela vous-même et me faire confiance - cela vaut vraiment la peine de le faire de cette façon. Ce n'est pas si difficile et cela vous donne liberté , flexibilité et réutilisabilité qu'aucun plugin ne peut offrir.
au cas où vous voudriez vous en occuper vous-même, voici ce que j'utilise:
add_action('template_redirect', 'register_a_user');
function register_a_user(){
if(isset($_GET['do']) && $_GET['do'] == 'register'):
$errors = array();
if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';
$user_login = esc_attr($_POST['user']);
$user_email = esc_attr($_POST['email']);
require_once(ABSPATH.WPINC.'/registration.php');
$sanitized_user_login = sanitize_user($user_login);
$user_email = apply_filters('user_registration_email', $user_email);
if(!is_email($user_email)) $errors[] = 'invalid e-mail';
elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';
if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';
if(empty($errors)):
$user_pass = wp_generate_password();
$user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);
if(!$user_id):
$errors[] = 'registration failed...';
else:
update_user_option($user_id, 'default_password_nag', true, true);
wp_new_user_notification($user_id, $user_pass);
endif;
endif;
if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
else define('REGISTERED_A_USER', $user_email);
endif;
}
le code est presque identique à celui de la page d'inscription de l'utilisateur.
puis ajoutez votre formulaire dans votre modèle:
<?php
if(defined('REGISTRATION_ERROR'))
foreach(unserialize(REGISTRATION_ERROR) as $error)
echo "<div class=\"error\">{$error}</div>";
// errors here, if any
elseif(defined('REGISTERED_A_USER'))
echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
<label>
User:
<input type="text" name="user" value=""/>
</label>
<label>
Email:
<input type="text" name="email" value="" />
</label>
<label>
Delete this text:
<input type="text" name="spam" value="some_crappy_spam_protection" />
</label>
<input type="submit" value="register" />
</form>
vous pouvez soit créer un widget avec cela, un shortcode ou simplement le modèle de page habituel ...
Gravity Forms est le meilleur plugin de formulaire de contact pour WordPress, IMO. La version la plus récente, en version bêta, comprend un module d’enregistrement d’utilisateur. Je l'ai essayé et ça marche très bien. Cela vous coûtera cependant ... c'est 199 $ pour une licence de développeur.
Page de tarification http://www.gravityforms.com/purchase-gravity-forms/
Article de blog parlant du module complémentaire d'enregistrement d'utilisateur http://www.gravityhelp.com/
Je recommande fortement ce plugin à la communauté WordPress.
Spécifications détaillées:
Voici quelques-unes des fonctionnalités du module complémentaire Enregistrement de l'utilisateur:
Essayez le plugin de connexion simplemodal. Il permet l’enregistrement et la connexion (vous devez activer l’enregistrement de l’utilisateur), et il a un aspect très agréable.
Si vous avez besoin de plus de champs sur votre formulaire d’inscription, vous pouvez utiliser le plugin Profile Builder
Il vous permet de personnaliser votre site Web en ajoutant des formulaires frontaux pour la connexion, l'enregistrement et la modification de profil via l'utilisation de codes abrégés.
Vous pouvez utiliser Theme My Login plugin
Voici un moyen simple et agréable que j'ai fait:
Copiez les noms de champs et tout autre élément du formulaire d’inscription Wordpress actuel. Assurez-vous que votre formulaire personnalisé contient les mêmes champs de nom, y compris ceux qui sont cachés, puis pointez simplement l'action du formulaire sur l'URL d'enregistrement appropriée: http://www.yourblog.com/wp-login.php?action=register - Vous voudrez peut-être ensuite changer la façon dont le formulaire redirige après l'enregistrement si vous n'aimez pas la façon dont il est géré.
Il existe également ce plugin appelé Insite Login qui vous permet de déposer le formulaire d’inscription, le formulaire de connexion, etc. dans les pages de votre site: http://wordpress.org/extend/plugins/insitelogin/
La première solution devrait cependant faire ce que vous voulez.