J'essaie d'ajouter le prénom, le nom de famille et le nom de la société à ma page d'inscription personnalisée. Le formulaire d'inscription fonctionne presque, mais il y a un problème.
Jusqu'à présent, j'ai le code suivant, mais je ne peux pas enregistrer le prénom, le nom de famille et le nom de l'entreprise. Est-ce que quelqu'un peut m'aider s'il vous plaît?
<?php if(!is_user_logged_in()) { ?>
<?php
if(get_option('users_can_register')) {
//Check whether user registration is enabled by the administrator
?>
<?php
if($_POST)
{
//We shall SQL escape all inputs
$username = $wpdb->escape($_REQUEST['username']);
if(empty($username)) {
echo "ERROR... please type username";
exit();
}
$email = $wpdb->escape($_REQUEST['email']);
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email)) {
echo "ERROR... please valid email";
exit();
}
$first_name = $wpdb->escape($_REQUEST['first_name']);
if(empty($first_name)) {
echo "ERROR... please add first name";
exit();
}
$last_name = $wpdb->escape($_REQUEST['last_name']);
if(empty($last_name)) {
echo "ERROR... please add last name";
exit();
}
$companyname = $wpdb->escape($_REQUEST['companyname']);
if(empty($companyname)) {
echo "ERROR... please add company name";
exit();
}
$pass1 = $wpdb->escape($_REQUEST['pass1']);
$pass2 = $wpdb->escape($_REQUEST['pass2']);
if ($pass1 != $pass2){
echo "ERROR... password's does'nt mach";
exit();
}
$random_password = $pass1;
$status = wp_create_user( $username, $random_password, $email );
if ( is_wp_error($status) )
echo "ERROR... username allready exist's";
else {
$from = get_option('admin_email');
$headers = 'Fra: '.$from . "\r\n";
$subject = "Registreringen er fullført";
$msg = "Hi, you are now registered. Here is your username and password:\n\n$username\n$random_password";
wp_mail( $email, $subject, $msg, $headers );
echo "Thank you for registering. You can now log inn.";
}
exit();
} else {
//Embed the register form and javascript here
?>
<div id="result"></div>
<form id="wp_signup_form" action="" method="post">
<div>
<strong>Username:</strong><br />
<input type="text" name="username" style="width:350px; margin-bottom:3px;"><br />
</div>
<div>
<strong>First name:</strong><br />
<input type="text" name="first_name" id="first_name" style="width:350px; margin-bottom:3px;"><br />
</div>
<div>
<strong>Last name:</strong><br />
<input type="text" name="last_name" id="last_name" style="width:350px; margin-bottom:3px;"><br />
</div>
<div>
<strong>Companyname:</strong><br />
<input type="text" name="companyname" id="companyname" style="width:350px; margin-bottom:3px;"><br />
</div>
<div>
<strong>E-mail</strong><br />
<input type="text" name="email" style="width:350px; margin-bottom:3px;"><br />
</div>
<div>
<strong>Password:</strong><br />
<input id="password" class="input" type="password" value="Passord" name="pass1" style="width:350px; margin-bottom:3px;" /><br />
</div>
<div>
<strong>Repeat password:</strong><br />
<input id="repeat_password" class="input" type="password" name="pass2" style="width:350px; margin-bottom:3px;" /><br />
</div>
<input type="submit" id="submitbtn" name="submit" value="Register" class="knapp" style="padding:8px;">
</form>
<script type="text/javascript">
$("#submitbtn").click(function() {
$('#result').html('<img src="<?php bloginfo('template_url'); ?>/images/loader.gif" class="loader" />').fadeIn();
var input_data = $('#wp_signup_form').serialize();
$.ajax({
type: "POST",
url: "<?php echo "http://" . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI']; ?>",
data: input_data,
success: function(msg){
$('.loader').remove();
$('
<div>').html(msg).appendTo('div#result').hide().fadeIn('slow');
}
});
return false;
});
</script>
<?php
// embedded
}
?>
<?php
}
else
?>
<!-- regskjema end -->
<br />
<?php } else { ?>
You are allready registered and logged inn. <a href="<?php bloginfo('url'); ?>/profilside">Click here</a> to load your profilepage.
<?php } ?>
Il y a wp_login_form()
pour de tels cas. Il offre des tonnes de crochets pour l'étendre.
// In your template
wp_login_form( array( /* Args: refer to Codex page */ ) );
Un regard plus en profondeur sur les filtres, peut être trouvé ici @GitHub WP source de noyau .
'login_form_top'
- ci-dessus login-username
'login_form_middle'
- ci-dessus login-submit
'login_form_bottom'
- ci-dessous login-submit
Ma suggestion personnelle est la suivante: n'utilisez pas de formulaire de connexion AJAX. Il est difficile à gérer, beaucoup plus facile à pirater (dans certains cas) et sera pénible lorsque d'autres parties de la page afficheront des informations de connexion/visiteurs, car vous devrez gérer tous vos formulaires de connexion. l'interface utilisateur à la volée se met à jour à chaque changement sur la page.
Si vous voulez toujours tout faire avec AJAX, alors je vous conseillerais d'enregistrer un écouteur/gestionnaire d'événements à id_submit
(l'argument utilisé dans la balise de modèle ci-dessus). Là, vous pouvez facilement return false;
ou utiliser event.preventDefault();
pour désactiver la redirection et lancer votre propre enregistrement (copier le noyau).