Cum să redirecționezi o înregistrare reușită către un șablon de pagină?

10 iun. 2011, 17:38:27
Vizualizări: 53.6K
Voturi: 5

De fiecare dată când mă înregistrez ajung pe pagina wp-login (back-end):

Pagina de login WordPress pentru administrare

Există vreo modalitate de a redirecționa utilizatorii care se înregistrează către un șablon de pagină (front-end)?

3
Comentarii

verifică pluginurile disponibile pentru mostre de cod

kaiser kaiser
10 iun. 2011 17:45:24

@kaiser ce fel de pluginuri?

wyc wyc
10 iun. 2011 18:08:17

Pluginuri de Redirectare - Clienții tăi vor aprecia.

kaiser kaiser
10 iun. 2011 19:09:19
Toate răspunsurile la întrebare 4
7
14

Poți folosi filtrul registration_redirect pentru a redirecționa către propria ta adresă URL, de exemplu:

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 ) {
        // Înregistrare reușită, poți face ceva cu $user
    }

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

add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );

Adaugă acest cod în fișierul functions.php sau într-un plugin :)

10 iun. 2011 18:37:25
Comentarii

Mulțumesc pentru răspuns, dar tot sunt redirecționat către wp-login back-end :( (lucrez pe localhost LAMP, dar nu cred că asta e motivul).

wyc wyc
10 iun. 2011 19:09:23

Ești sigur că tema cu codul este activă? Și ce versiune de WP folosești? La mine a funcționat perfect (testat acum, 3.1.3).

TheDeadMedic TheDeadMedic
10 iun. 2011 19:21:07

OK, a funcționat după ce am dezactivat bbPress. Cred că există un conflict cu acel plugin. Mulțumesc!

wyc wyc
10 iun. 2011 19:26:00

@TheDeadMedic Am o întrebare similară, dar înregistrez de pe o pagină cu un șablon personalizat care include un formular de înregistrare. Redirecționarea nu funcționează, mă trimite înapoi la pagina principală de înregistrare cu mesajul să verific emailul pentru parolă. Poți să arunci o privire la întrebarea mea, te rog. http://wordpress.stackexchange.com/questions/130560/redirect-to-custom-url-after-registering-from-a-page-with-registration-form

Anagio Anagio
21 ian. 2014 00:11:53

@TheDeadMedic Există vreo modalitate de a obține ID-ul utilizatorului nou înregistrat în acest filtru? Te rog să-mi recomanzi!

karlosuccess karlosuccess
22 aug. 2023 01:29:45

@karlosuccess Vezi actualizarea mea

TheDeadMedic TheDeadMedic
20 ian. 2024 15:16:32

Funcționează, mulțumesc!!!

karlosuccess karlosuccess
21 ian. 2024 21:14:26
Arată celelalte 2 comentarii
0

Acesta este ce folosesc eu

<form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<input type="text" name="user_login" value="Nume utilizator" 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="Înregistrare" id="register" />
<input type="hidden" name="redirect_to" value="/success"/>
<p class="statement">O parolă va fi trimisă pe e-mail.</p>
</form>
4 sept. 2012 19:55:51
0

Dacă, ca și mine, folosești un plugin precum ProfilePress pentru a crea/formularul de înregistrare WordPress, următorul cod va conecta automat utilizatorii înregistrați și îi va redirecționa către o pagină de bun venit.

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;
}

Notă: Folosesc versiunea gratuită a plugin-ului (https://wordpress.org/support/plugin/ppress), iar codul de mai sus funcționează atât în versiunea gratuită, cât și în cea PRO.

8 dec. 2015 11:00:36
0

Am dezvoltat un plugin pentru această problemă. Mai jos este și codul brut pentru o redirecționare fără a folosi vreun plugin.

/**
 * Redirecționează utilizatorii către o URL personalizată în funcție de rolul lor după autentificare
 **/
function wp_woo_custom_redirect( $redirect, $user ) {

    // Obține primul rol din toate rolurile atribuite utilizatorului
    $role = $user->roles[0];
    $dashboard = admin_url();
    $myaccount = get_permalink( wc_get_page_id( 'my-account' ) );

    if( $role == 'administrator' ) {

        // Redirecționează administratorii către panoul de administrare
        $admin_redirect = get_option('admin_redirect');
        $redirect = $admin_redirect;
    } elseif ( $role == 'shop-manager' ) {

        // Redirecționează managerii de magazin către panoul de administrare
        $shop_manager_redirect = get_option('shop_manager_redirect');
        $redirect = $shop_manager_redirect;
    } elseif ( $role == 'customer' || $role == 'subscriber' ) {

        // Redirecționează clienții și abonații către pagina "Contul meu"
        $customer_redirect = get_option('customer_redirect');
        $redirect = $customer_redirect;
    } else {

        // Redirecționează orice alt rol către pagina vizitată anterior sau, dacă nu este disponibilă, către pagina principală
        $redirect = wp_get_referer() ? wp_get_referer() : home_url();
    }
    return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2 );

Dacă vă simțiți confortabil lucrând cu un plugin sau fără cod? Puteți descărca și instala pluginul meu "WP WooCommerce Redirect"

13 sept. 2016 10:30:58