¿Cómo redirigir un registro exitoso a una plantilla de página?

10 jun 2011, 17:38:27
Vistas: 53.6K
Votos: 5

Cada vez que me registro termino en la página wp-login (back-end):

Página de inicio de sesión de WordPress después del registro

¿Hay alguna manera de redirigir a los usuarios que se registran a una plantilla de página (front-end)?

3
Comentarios

revisa los plugins disponibles para ejemplos de código

kaiser kaiser
10 jun 2011 17:45:24

@kaiser ¿qué tipo de plugins?

wyc wyc
10 jun 2011 18:08:17

Plugins de Redirección - A tus clientes les gustará.

kaiser kaiser
10 jun 2011 19:09:19
Todas las respuestas a la pregunta 4
7
14

Puedes usar el filtro registration_redirect para redirigir a tu propia URL, por ejemplo:

function wpse_19692_registration_redirect( $url, $result ) {
    $is_error = is_wp_error( $result );

    $user_id = $is_error ? 0 : $result;

    $user = $is_error ? false : get_userdata( $user_id );

    if ( $user ) {
        // Registro exitoso, haz algo con $user
    }

    return home_url( '/mi-pagina' );
}

add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );

Colócalo en tu archivo functions.php o en un plugin :)

10 jun 2011 18:37:25
Comentarios

Gracias por la respuesta pero todavía me redirige al panel de wp-login :( (Estoy trabajando en localhost LAMP, pero no creo que esa sea la razón).

wyc wyc
10 jun 2011 19:09:23

¿Estás seguro de que el tema con el código está activo? ¿Y qué versión de WP estás usando? Funcionó bien para mí (probado recién, 3.1.3).

TheDeadMedic TheDeadMedic
10 jun 2011 19:21:07

OK funcionó después de desactivar bbPress, supongo que hay un conflicto con el plugin. ¡Gracias!

wyc wyc
10 jun 2011 19:26:00

@TheDeadMedic Tengo una pregunta similar pero estoy registrándome desde una página con una plantilla personalizada que incluye un formulario de registro. La redirección no funciona y me devuelve a la página principal de registro con el mensaje de revisar mi correo para la contraseña. ¿Podrías echar un vistazo a mi pregunta por favor? http://wordpress.stackexchange.com/questions/130560/redirect-to-custom-url-after-registering-from-a-page-with-registration-form

Anagio Anagio
21 ene 2014 00:11:53

@TheDeadMedic ¿Hay alguna forma de obtener el ID del usuario recién registrado en este filtro? ¡Por favor, aconseja!

karlosuccess karlosuccess
22 ago 2023 01:29:45

@karlosuccess Mira mi actualización

TheDeadMedic TheDeadMedic
20 ene 2024 15:16:32

¡Funciona, muchas gracias!!!

karlosuccess karlosuccess
21 ene 2024 21:14:26
Mostrar los 2 comentarios restantes
0

Esto es lo que uso

<form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<input type="text" name="user_login" value="Usuario" id="user_login" class="input" />
<input type="text" name="user_email" value="Correo Electrónico" id="user_email" class="input"  />
<?php do_action('register_form'); ?>
<input type="submit" value="Registrarse" id="register" />
<input type="hidden" name="redirect_to" value="/success"/>
<p class="statement">Se te enviará una contraseña por correo electrónico.</p>
</form>
4 sept 2012 19:55:51
0

Si como yo, utilizas un plugin como ProfilePress para crear/potenciar tu formulario de registro en WordPress, el siguiente código iniciará sesión automáticamente y redirigirá a los usuarios registrados a una página de bienvenida.

add_action( 'pp_after_registration', 'pp_redirect_after_registration', 10, 3 );

function pp_redirect_after_registration( $form_id, $user_data, $user_id ) {

    wp_set_auth_cookie( $user_id );
    wp_set_current_user( $user_id );

    $custom_page_url = 'http://example.com/welcome/';

    wp_redirect( $custom_page_url );
    exit;
}

Nota: Yo uso la versión gratuita del plugin (https://wordpress.org/support/plugin/ppress) y el código anterior funciona tanto en la versión gratuita como en la PRO.

8 dic 2015 11:00:36
0

He desarrollado un complemento para este problema. También se proporciona a continuación el código directo para una redirección sin necesidad de ningún complemento.


/**
 * Redirige a los usuarios a una URL personalizada según su rol después del inicio de sesión
 **/
function wp_woo_custom_redirect( $redirect, $user ) {

    // Obtiene el primero de todos los roles asignados al usuario
    $role = $user->roles[0];
    $dashboard = admin_url();
    $myaccount = get_permalink( wc_get_page_id( 'my-account' ) );

    if( $role == 'administrator' ) {

        // Redirige a los administradores al panel de control
        $admin_redirect = get_option('admin_redirect');
        $redirect = $admin_redirect;
    } elseif ( $role == 'shop-manager' ) {

        // Redirige a los gestores de la tienda al panel de control
        $shop_manager_redirect = get_option('shop_manager_redirect');
        $redirect = $shop_manager_redirect;
    } elseif ( $role == 'customer' || $role == 'subscriber' ) {

        // Redirige a los clientes y suscriptores a la página "Mi cuenta"
        $customer_redirect = get_option('customer_redirect');
        $redirect = $customer_redirect;
    } else {

        // Redirige cualquier otro rol a la página visitada anteriormente o, si no está disponible, a la página de inicio
        $redirect = wp_get_referer() ? wp_get_referer() : home_url();
    }
    return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2 );

¿Te sientes cómodo trabajando con complementos o prefieres el código? Puedes descargar e instalar mi complemento "WP WooCommerce Redirect"

13 sept 2016 10:30:58