2017-06-02 3 views
1

Je crée un site de vente en gros pour les membres seulement. Je l'ai jusqu'à présent réussi à verrouiller tous WooCommerce vers le bas en créant une redirection vers la page mon compte pour les non utilisateurs connectés en utilisant ce bit de code que je trouve ici sur la pile Exchange-Bypass WooCommerce Mon compte Connexion pour Connexion personnalisée

add_action('template_redirect', 'wc_redirect_non_logged_to_login_access'); 
function wc_redirect_non_logged_to_login_access() { 

    if (!is_user_logged_in() && (is_woocommerce() || is_shop() || 
is_cart() || is_checkout())) { 
     wp_redirect(get_permalink( 
get_option('woocommerce_myaccount_page_id'))); 
     exit(); 
    } 
} 

Il fonctionne parfaitement, mais je veux utiliser une page de connexion personnalisée que j'ai créée. www.example.com/customlogin - Où/Comment est-ce que j'insérerais ceci dans le code ci-dessus? J'ai essayé mais j'ai eu une erreur de syntaxe et j'ai passé la moitié de la journée hors de mon site lol. Ensuite, je dois lier la page de connexion personnalisée à la page de mon compte woocommerce afin que je puisse contourner la connexion par défaut que woocommerce cache dans le code sur la même page. Donc, si un "utilisateur non connecté" clique sur le lien "mon compte", il est redirigé vers la page de connexion personnalisée. De cette façon, je serai en mesure de modifier la page de connexion et les pages de mon compte séparément, ce que je ne peux pas vraiment faire quand ils sont sur la même page et tous mes effets de montage simultanément.

Merci.

Répondre

0

Vous devriez essayer le code ci-dessous qui résoudra vos deux exigences:

add_action('template_redirect', 'wc_redirect_non_logged_to_login_access'); 
function wc_redirect_non_logged_to_login_access() { 

    if (! is_user_logged_in() && (is_woocommerce() || is_shop() || 
is_cart() || is_checkout() || is_account_page())) { 
     wp_redirect(home_url('/customlogin')); 
     exit(); 
    } 
} 

Code va dans le fichier function.php de votre thème enfant actif (ou le thème) ou encore dans un fichier de plug-in.

Adresser état à mes pages de compte, j'utilise la balise WC conditionnel: is_account_page()
Pour la redirection vers votre formulaire personnalisé J'utilise: wp_redirect(home_url('/customlogin'));

Ce code est testé et fonctionne

+0

Fonctionne parfaitement, merci un million! Été essayer de comprendre et/ou de trouver du code sur le web pour le faire pendant des semaines! Tu es incroyable! – Vash