[Résolu] code php -votre avis svp- (Créer un compte)

  • WordPress :6.4
  • Statut : résolu
12 sujets de 1 à 12 (sur un total de 12)
  • Auteur
    Messages
  • #2470251
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    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’avance

     

    #2470252
    Joss47
    Modérateur
    Maître WordPress
    5260 contributions

    Salut,

    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é.

    #2470352
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    Merci 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 ».

     

    #2470398
    Joss47
    Modérateur
    Maître WordPress
    5260 contributions

    L’utilisateur doit cliquer sur un élément précis pour être renvoyé ?

    Tu peux me donner une URL de fiche produit stp ?.

    #2470399
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    Bonjour,
    voici:  https://www.l-oenotheque.be/produit/whisky-pur-malt/

    merci et bonne fête de Pâques à tous ceux qui me liront.

    #2470402
    ferman
    Participant
    Maître WordPress
    7079 contributions

    Bonjour,

    Pour mon info. Dans le premier code je ne connais pas le hook « review_order_login_page »

    #2470403
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    C’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 »
    Merci

    #2470404
    ferman
    Participant
    Maître WordPress
    7079 contributions

    S’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)

    #2470405
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    Il 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.

    #2470406
    ferman
    Participant
    Maître WordPress
    7079 contributions

    j’ai utilisé le widget d’Elementor,

    Je ne ne saurais pas faire en php (je n’utilise pas elementor) ; seulement en javascript.

    #2470407
    ferman
    Participant
    Maître WordPress
    7079 contributions

    Bonjour,

    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.

    #2470504
    gouyasse
    Participant
    Chevalier WordPress
    113 contributions

    Bonsoir Ferman,

    un tout grand merci à vous pour votre aide, cela fonctionne parfaitement.

     

12 sujets de 1 à 12 (sur un total de 12)
  • Vous devez être connecté pour répondre à ce sujet.