- WordPress :6.4
- Statut : résolu
- Ce sujet contient 11 réponses, 3 participants et a été mis à jour pour la dernière fois par gouyasse, le il y a 5 mois et 1 semaine.
-
AuteurMessages
-
27 mars 2024 à 19 h 16 min #2470251
Bonjour,
Ma configuration WP actuelle
- Version de PHP/MySQL : 7.4
- Thème utilisé : Astra Pro
- Extensions en place :
- Nom de l’hébergeur :
- Adresse du site :
Problème(s) rencontré(s) :
Bonsoir,
j’ai adapté ma page produit unique afin de récolter les avis clients. Là, le client non connecté est invité à le faire s’il souhaite laisser un avis.
Au clic, il est alors renvoyé vers la page mon compte et en ce qui me concerne, je souhaiterais qu’il soit renvoyé vers la page Login que j’ai créé.Il faudrait donc une redirection vers la page souhaitée et j’ai trouvé deux codes PHP
le premier:
add_filter(‘review_order_login_page’, ‘review_custom_login_page’, 10, 3);
function review_custom_login_page(string $url, array $data): string
{
$url = add_query_arg(‘review_redirect’, $data[‘redirect’], ‘https://www.xxxxx/login/’);
return $url;
}
Le second:
add_filter( ‘login_url’, ‘custom_login_url’, 10, 3 );
function custom_login_url( $login_url, $redirect, $force_reauth ) {
$login_page_id = get_permalink( woocommerce_get_page_id( ‘login’ ) );
return get_permalink( $login_page_id );
}
Comme je ne suis pas très bon en PHP je souhaiterai l’avis d’une bonne âme avant de me lancer.
Merci d’avance27 mars 2024 à 20 h 07 min #2470252Salut,
Si ton objectif est de rediriger l’utilisateur vers une page spécifique après la connexion, en particulier dans le contexte de laisser un avis, le premier code est mieux optimisé pour répondre à ce besoin grâce à sa flexibilité de redirection.
Par contre, si l’objectif est simplement de personnaliser l’URL de la page de connexion sans se soucier de la redirection après connexion, le deuxième code pourrait être préférable pour sa robustesse et sa simplicité.29 mars 2024 à 19 h 57 min #2470352Merci pour la réponse mais il doit y avoir un couac dans mon code car le premier ne fonctionne (erreur fatale) et le second est inopérant en ce sens que je suis renvoyé vers la page mon compte en lieu et place de la page « login ».
31 mars 2024 à 14 h 45 min #2470398L’utilisateur doit cliquer sur un élément précis pour être renvoyé ?
Tu peux me donner une URL de fiche produit stp ?.
31 mars 2024 à 16 h 53 min #2470399Bonjour,
voici: https://www.l-oenotheque.be/produit/whisky-pur-malt/merci et bonne fête de Pâques à tous ceux qui me liront.
31 mars 2024 à 18 h 27 min #2470402Bonjour,
Pour mon info. Dans le premier code je ne connais pas le hook « review_order_login_page »
31 mars 2024 à 18 h 35 min #2470403C’est une erreur de ma part car comme indiqué d’entrée de jeu, je maîtrise mal le php, je souhaitais indiquer au code que l’ordre était destiné à la partie « avis client » sur la page produit où celui-ci est invité à se connecter s’il souhaite y déposer un avis.
Mon souhait réside au fait que lorsque le client clique sur le lien indiqué sur la page, il soit envoyé vers la page « login » existante et non pas vers l’option par défaut se trouvant sur « mon-compte »
Merci31 mars 2024 à 18 h 55 min #2470404S’il s’agit bien du lien « connecté » dans l’onglet « avis », il renvoie effectivement vers la page mon compte (connecté). On ne sait pas comment vous avez mis ce lien en place mais il n’est pas possible de le modifier en remplaçant par la bonne url? Sinon, il est possible de faire la redirection en php mais également en javascript (à condition bien sûr de n’ avoir rien contre le javascript)
31 mars 2024 à 19 h 57 min #2470405Il s’agit bien du lien « connecté » mais comme j’ai utilisé le widget d’Elementor, celui me renvoie automatiquement vers la page « mon compte » alors que je voudrais voir le client renvoyé vers la page « login » que j’ai créée.
Pour cette raison que je souhaite réaliser la redirection à l’aide du code php.1 avril 2024 à 0 h 42 min #2470406j’ai utilisé le widget d’Elementor,
Je ne ne saurais pas faire en php (je n’utilise pas elementor) ; seulement en javascript.
1 avril 2024 à 9 h 09 min #2470407Bonjour,
Je ne ne saurais pas faire en php (je n’utilise pas elementor) ; seulement en javascript.
Ce n’est pas tout à fait vrai. J’étais focalisé sur le changement d’url directement au niveau du lien « connecté » et ça je ne sais le faire qu’en javascript. Par contre il est aussi possible de ne pas modifier ce lien mais de rediriger la page « mon compte » vers une autre page (pour vous « login ») et cela peut se faire soit en php soit en javascript. En php cela donne par exemple:
function custom_login_url() {
if (!is_user_logged_in() && is_page(wc_get_page_id( 'myaccount' ))){
exit( wp_redirect( home_url('shop') ) );
}
}
add_action( 'template_redirect','custom_login_url' );Chez moi (je n’ai pas de « custom login), la page « mon compte » est redirigée vers la « page boutique ». C’est à adapter à votre cas.
La différence entre la première approche (modification du lien du widget elementor par js) et la seconde (redirection de la page « mon compte ») est que dans la première l’accès à la page « mon compte » est possible sauf par l’intermédiaire du lien « connecté » alors que dans la seconde la page mon compte est totalement inaccessible aux utilisateurs non-connectés.
2 avril 2024 à 21 h 36 min #2470504Bonsoir Ferman,
un tout grand merci à vous pour votre aide, cela fonctionne parfaitement.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.