¿Cómo redirigir un registro exitoso a una plantilla de página?
Cada vez que me registro termino en la página wp-login (back-end):
¿Hay alguna manera de redirigir a los usuarios que se registran a una plantilla de página (front-end)?

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 :)

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).

¿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).

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

@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

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

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>

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.

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"
