Come reindirizzare una registrazione avvenuta con successo a un template di pagina?

10 giu 2011, 17:38:27
Visualizzazioni: 53.6K
Voti: 5

Ogni volta che effettuo una registrazione vengo reindirizzato alla pagina wp-login (back-end):

schermata pagina di login wordpress

C'è un modo per reindirizzare gli utenti che si registrano verso un template di pagina (front-end)?

3
Commenti

controlla i plugin disponibili per gli esempi di codice

kaiser kaiser
10 giu 2011 17:45:24

@kaiser che tipo di plugin?

wyc wyc
10 giu 2011 18:08:17

Plugin di Reindirizzamento - Ai tuoi clienti piaceranno.

kaiser kaiser
10 giu 2011 19:09:19
Tutte le risposte alla domanda 4
7
14

Puoi utilizzare il filtro registration_redirect per reindirizzare a un URL personalizzato, ad esempio:

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 ) {
        // Registrazione avvenuta con successo, fai qualcosa con $user
    }

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

add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );

Aggiungi questo codice nel tuo file functions.php o in un plugin :)

10 giu 2011 18:37:25
Commenti

Grazie per la risposta ma vengo ancora reindirizzato al back-end wp-login :( (Sto lavorando su localhost LAMP, ma non credo che sia questo il motivo).

wyc wyc
10 giu 2011 19:09:23

Sei sicuro che il tema con il codice sia attivo? E quale versione di WP stai usando? Per me ha funzionato bene (testato proprio ora, 3.1.3).

TheDeadMedic TheDeadMedic
10 giu 2011 19:21:07

OK ha funzionato dopo aver disattivato bbPress, immagino ci sia un conflitto con il plugin. Grazie!

wyc wyc
10 giu 2011 19:26:00

@TheDeadMedic Ho una domanda simile ma sto registrando da una pagina con un template personalizzato che include un modulo di registrazione. Il reindirizzamento non funziona e mi riporta alla pagina principale di registrazione con il messaggio di controllare l'email per la password. Potresti dare un'occhiata alla mia domanda per favore? http://wordpress.stackexchange.com/questions/130560/redirect-to-custom-url-after-registering-from-a-page-with-registration-form

Anagio Anagio
21 gen 2014 00:11:53

@TheDeadMedic C'è un modo per ottenere l'ID dell'utente appena registrato in questo filtro? Per favore, consigliami!

karlosuccess karlosuccess
22 ago 2023 01:29:45

@karlosuccess Vedi il mio aggiornamento

TheDeadMedic TheDeadMedic
20 gen 2024 15:16:32

Funziona, grazie!!!

karlosuccess karlosuccess
21 gen 2024 21:14:26
Mostra i restanti 2 commenti
0

Questo è ciò che utilizzo

<form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<input type="text" name="user_login" value="Username" id="user_login" class="input" />
<input type="text" name="user_email" value="E-Mail" id="user_email" class="input"  />
<?php do_action('register_form'); ?>
<input type="submit" value="Registrati" id="register" />
<input type="hidden" name="redirect_to" value="/success"/>
<p class="statement">Ti verrà inviata una password via email.</p>
</form>
4 set 2012 19:55:51
0

Se come me utilizzi un plugin come ProfilePress per creare/gestire il tuo modulo di registrazione WordPress, il seguente codice effettuerà automaticamente il login e reindirizzerà gli utenti registrati a una pagina di benvenuto.

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: utilizzo la versione gratuita del plugin (https://wordpress.org/support/plugin/ppress) e il codice sopra funziona sia nella versione gratuita che in quella PRO.

8 dic 2015 11:00:36
0

Ho sviluppato un plugin per questo problema. Di seguito troverai anche il codice grezzo per un reindirizzamento senza alcun plugin.

/**
 * Reindirizza gli utenti a un URL personalizzato in base al loro ruolo dopo il login
 **/
function wp_woo_custom_redirect( $redirect, $user ) {

    // Ottieni il primo dei ruoli assegnati all'utente
    $role = $user->roles[0];
    $dashboard = admin_url();
    $myaccount = get_permalink( wc_get_page_id( 'my-account' ) );

    if( $role == 'administrator' ) {

        // Reindirizza gli amministratori alla dashboard
        $admin_redirect = get_option('admin_redirect');
        $redirect = $admin_redirect;
    } elseif ( $role == 'shop-manager' ) {

        // Reindirizza i gestori del negozio alla dashboard
        $shop_manager_redirect = get_option('shop_manager_redirect');
        $redirect = $shop_manager_redirect;
    } elseif ( $role == 'customer' || $role == 'subscriber' ) {

        // Reindirizza clienti e abbonati alla pagina "Il mio account"
        $customer_redirect = get_option('customer_redirect');
        $redirect = $customer_redirect;
    } else {

        // Reindirizza qualsiasi altro ruolo alla pagina visitata precedentemente o, se non disponibile, alla home
        $redirect = wp_get_referer() ? wp_get_referer() : home_url();
    }
    return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2 );

Se ti senti a tuo agio a lavorare con un plugin o senza codice? Puoi scaricare e installare il mio plugin "WP WooCommerce Redirect"

13 set 2016 10:30:58