J
Juanjo87
Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Muy buenas, en esta ocasión ademas de pedir ayuda vengo con un aporte.
Se trata de personalizar la pagina de registro de usuarios, solo tenéis que hacer lo siguiente:
1 Crear un archivo nuevo y llamarlo, por ejemplo, registro.php.
2 Dentro de registro.php introduces lo siguiente:
3 Ahora creas una nueva pagina, desde el backend y le llamas registro, por ejemplo.
4 Accedes desde el menú lateral derecho a las plantillas de paginas, y una vez guardado el archivo registro.php con el código anterior, les debe de aparecer el nombre de la nueva plantilla de pagina, en este caso, Registro.
5 Asignamos la plantilla y listo, podemos darle en el botón, ver pagina, para ver los resultados.
El único problema de todo esto, es que una vez el usuario rellene los datos para registrarse. con el código anterior, mandamos al usuario un mensaje para que revise su e-mail y mi pregunta es la siguiente.
Como hago para redireccionar al usuario, una vez se aya registrado, a la pagina principal, u otra pagina?
al final del codigo aparece
pero no redirecciona.
Alguien sabe como solucionar esto?
Se trata de personalizar la pagina de registro de usuarios, solo tenéis que hacer lo siguiente:
1 Crear un archivo nuevo y llamarlo, por ejemplo, registro.php.
2 Dentro de registro.php introduces lo siguiente:
PHP:
<?php
/*
Template Name: Registro
*/
require_once(ABSPATH . WPINC . '/registration.php');
global $wpdb, $user_ID;
//Check whether the user is already logged in
if (!$user_ID) {
if($_POST){
//We shall SQL escape all inputs
$username = $wpdb->escape($_POST['username']);
if(empty($username)) {
echo "El nombre de usuario no debe estar vacio.";
exit();
}
$email = $wpdb->escape($_POST['email']);
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email)) {
echo "Por favor, introduce un e-mail válido.";
exit();
}
$random_password = wp_generate_password( 12, false );
$status = wp_create_user( $username, $random_password, $email );
if ( is_wp_error($status) )
echo "El nombre de usuario ya existe. Por favor intente con otro";
else {
$from = get_option('admin_email');
$headers = 'From: '.$from . "\r\n";
$subject = "Registration successful";
$msg = "Registration successful.\nYour login details\nUsername: $username\nPassword: $random_password";
wp_mail( $email, $subject, $msg, $headers );
echo "Por favor, consultar su correo electrónico para obtener más información de inicio de sesión.";
}
exit();
} else {
get_header();
?>
<!-- <script src="http://code.jquery.com/jquery-1.4.4.js"></script> --> <!-- Remove the comments if you are not using jQuery already in your theme -->
<div id="container">
<div id="content">
<?php
if(get_option('users_can_register')) { //Check whether user registration is enabled by the administrator
?>
<h1><?php the_title(); ?></h1>
<div id="result"></div> <!-- To hold validation results -->
<form id="wp_signup_form" action="" method="post">
<label>Nombre usuario</label><br />
<input type="text" name="username" class="text" value="" /><br />
<label>Dirección email</label><br />
<input type="text" name="email" class="text" value="" /> <br />
<br /><br />
<input type="submit" id="submitbtn" name="submit" value="Registrar" />
</form>
<script type="text/javascript">
$("#submitbtn").click(function() {
$('#result').html('<img src="<?php bloginfo('template_url'); ?>/images/AjaxLoader3.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
}
else echo "Por favor, inténtelo de nuevo más tarde.";
?>
</div>
</div>
<?php
get_footer();
} //end of if($_post)
}
else {
wp_redirect( home_url() ); exit;
}
?>
3 Ahora creas una nueva pagina, desde el backend y le llamas registro, por ejemplo.
4 Accedes desde el menú lateral derecho a las plantillas de paginas, y una vez guardado el archivo registro.php con el código anterior, les debe de aparecer el nombre de la nueva plantilla de pagina, en este caso, Registro.
5 Asignamos la plantilla y listo, podemos darle en el botón, ver pagina, para ver los resultados.
El único problema de todo esto, es que una vez el usuario rellene los datos para registrarse. con el código anterior, mandamos al usuario un mensaje para que revise su e-mail y mi pregunta es la siguiente.
Como hago para redireccionar al usuario, una vez se aya registrado, a la pagina principal, u otra pagina?
al final del codigo aparece
PHP:
else {
wp_redirect( home_url() ); exit;
}
Alguien sabe como solucionar esto?
Última edición: