Fă paginile WooCommerce accesibile doar utilizatorilor autentificați

29 ian. 2014, 00:05:41
Vizualizări: 37.2K
Voturi: 13

Am un site web care folosește WordPress și un magazin online cu WooCommerce. Aș dori ca magazinul meu (și toate paginile sale) să fie vizibile doar utilizatorilor autentificați.

Prin intermediul plugin-ului User Access Manager, am restricționat accesul la pagina magazinului, dar cu un link direct către un produs etc. se poate accesa acea pagină specifică, chiar dacă utilizatorul nu este autentificat.

Cum pot redirecționa utilizatorii care nu sunt autentificați către o altă pagină dacă încearcă să acceseze o pagină WooCommerce?

0
Toate răspunsurile la întrebare 3
3
28

Pune acest cod în fișierul tău functions.php:

function wpse_131562_redirect() {
    if (
        ! is_user_logged_in()
        && (is_woocommerce() || is_cart() || is_checkout())
    ) {
        // poți personaliza următoarea linie în funcție de nevoile tale
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'wpse_131562_redirect');

Ce face acest cod?
Verificăm dacă un utilizator neautentificat încearcă să acceseze o pagină WooCommerce și îl redirecționăm către pagina principală.

29 ian. 2014 00:13:23
Comentarii

Mulțumesc pentru ajutor. Fișierul functions.php se află în folderul temei mele?? Și cum pot apela această funcție de pe pagina de produs? Mulțumesc :-)

Alessandro Alessandro
29 ian. 2014 10:30:46

Mulțumesc foarte mult. Codul tău funcționează perfect pentru mine. Mulțumiri nesfârșite :)

Alessandro Alessandro
29 ian. 2014 11:45:59

Asigură-te că nu setezi nicio pagină WooCommerce ca pagină de start, pentru că atunci site-ul nu va mai funcționa.

SPRBRN SPRBRN
13 nov. 2017 11:23:57
2
10

Tocmai am schimbat redirecționarea către

wp_redirect( site_url('my-account/') )

astfel încât utilizatorii vor fi redirecționați pe pagina "Contul meu" dacă nu sunt autentificați sau înregistrați.

18 nov. 2015 13:28:39
Comentarii

Aceasta nu este cea mai bună metodă pentru redirecționarea către pagina Contul Meu. Este mai bine să obții permalink-ul paginii Contul Meu pe care l-ai configurat în setările WooCommerce. Astfel, ori de câte ori permalink-ul este schimbat sau ai un site multilingvistic, permalink-ul va fi în continuare obținut corect. Pe scurt: Este mai bine să nu hardcodezi permalink-uri/slugs (sau URL-uri în general). O metodă mai bună ar fi: wp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );

Rens Tillmann Rens Tillmann
2 mar. 2018 21:25:29

codul tău lipsește ; la final

user889030 user889030
6 feb. 2019 20:52:46
1

Aș schimba cu aceasta

wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );

în loc de

wp_redirect( site_url('my-account/') );
5 feb. 2020 09:30:07
Comentarii

Puteți să detaliați de ce acest lucru va ajuta, astfel încât alți oameni să poată învăța ceva din răspunsul dumneavoastră?

Krzysiek Dróżdż Krzysiek Dróżdż
5 feb. 2020 10:11:55