Problème de redirection des permaliens personnalisés des pages produits (Créer un compte)

  • WordPress :5.3
  • Statut : non résolu
  • Ce sujet contient 20 réponses, 2 participants et a été mis à jour pour la dernière fois par ferman, le il y a 11 secondes.
15 sujets de 1 à 15 (sur un total de 21)
  • Auteur
    Messages
  • #2303171
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Bonjour,

    Ma configuration WP actuelle :
    – Version de WordPress : 5.3.2
    – Version de PHP/MySQL : 7.2.22 / 5.6.46
    – Thème utilisé : Rife Free
    – Thème URI : https://apollo13themes.com/rife/free/
    – Extensions en place : Apollo13 Framework Extensions (1.8.2), Better Search Replace (1.3.3), Contact Form 7 (5.1.6), Duplicate Post (3.2.4), Duplicator (1.3.28), Elementor (2.8.3), Flamingo (2.1), Forum_wordpress_fr (4.2), Google Language Translator (6.0.5), Max Mega Menu (2.7.4), Really Simple CAPTCHA (2.0.2), Really Simple SSL (3.2.9), Rife Elementor Extensions & Templates (1.1.2), SearchWP Live Ajax Search (1.4.4), Smart Slider 3 (3.3.25), Smush (3.6.1), UpdraftPlus – Backup/Restore (1.16.22), WooCommerce (3.9.3), WPForms Lite (1.5.9.1), WP Maintenance Mode (2.2.4), Yoast SEO (13.3)
    – Adresse du site : https://www.rokinworld.com
    – Nom de l’hébergeur : Apache

    Problème(s) rencontré(s) :

    Je rencontre un problème avec le module Woocommerce, en effet, le thème que j’utilise exploite “Elementor”, cependant je ne peux pas personnaliser l’esthétique des pages liées à Woocommerce (Boutique, produits, panier,…).
    J’ai donc créer une nouvelle page dans laquelle j’ai inséré le shortcode la page boutique. J’ai fait de même pour les pages produits. Le souci étant que quand je clique sur un produit présent dans la page boutique (“https://www.rokinworld.com/boutique-rokin-2/”), le lien me redirige vers la page produit d’origine (“https://www.rokinworld.com/produit/casquette-rokin/”) et non vers la page produit que j’ai crée avec le shortcode (“https://www.rokinworld.com/test-page-produit/”).

    Serait-il possible de corriger ce problème ? Un grand merci d’avance pour votre aide.

    J’espère avoir été claire. Pour plus de renseignements, n’hésitez pas à me demander. (Ps : actuellement le site est en maintenance).

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2303229
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Bonjour,

    Je ne peux pas bien reproduire votre situation (pas de pages speciales shop ou produit) donc c’est sans garantie.

    D’abord, si vous tapez directement dans la barre du navigateur “https://www.rokinworld.com/test-page-produit/”” vous arrivez bien sur une page produit? Si c’est le cas,  vous pouvez essayer le code ci-dessous(1), à mettre dans le fichier functions.php d’un thème enfant ou bien en utilisant une extension telle que “my custom functions“. Regardez les FAQ’s sur la page de l’extension pour voir ce qu’il faut faire au cas ou votre site se retrouverait bloqué (ne devrait pas arriver mais on ne sait jamais).

    function woocommerce_template_loop_product_link_open() {
           
    	   global $product;
    	   
    		$link = 'https://www.rokinworld.com/test-page-produit/';
    	   
    		$b='/?p=';
    		$c= $product->get_ID();
    		
           echo '<a href="' . esc_url( $link.$b.$c) . '">';
        }

    (1) C’est une modification de la fonction woocommerce du même nom.

    Encore une fois c’est sans garantie. J’ai testé chez moi mais ce n’est pas tout à fait la même chose. Si ça ne marche pas, il suffit d’enlever la fonction.

     

     

     

     

    #2303397
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Merci beaucoup pour votre aide.

    En effet, quand je rentre directement l’url “https://www.rokinworld.com/test-page-produit/&#8221;, j’arrive bien sur la page du produit.

    Je vais regarder pour l’extension que vous m’avez mis en lien. Par contre, serait-il possible de faire ça pour chaque page produit de ma boutique ?

    #2303409
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Bonjour,

    Par contre, serait-il possible de faire ça pour chaque page produit de ma boutique ?

    Si ça marche pour un produit (probable mais pas garanti à 100%), ça marchera pour tous. En effet on ne donne pas l’id d’un produit en particulier. L’id retenue est celle du produit sur lequel on clique (petit morceau de code $product->get_ID()).

    #2305130
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Encore merci beaucoup pour ta réponse.

    Je vais testé avec l’extension my custom functions vu que je n’ai pas de thème enfant.

    Je vous fait un retour dès que j’en sais plus;

    #2305132
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Rebonjour, j’ai bien installé l’extension.

    Après y avoir inséré le code fourni lors de notre échange, premier bon point, le site n’a pas planté !
    Par contre lorsque je me rends sur ma page personnalisé “Boutique Rokin” et que je clic sur le produit “casquette”, le lien me redirige vers la page produit de woocommerce (sans mise en page) et non vers ma page produit personnalisée https://www.rokinworld.com/test-page-produit/&#8221.

    Merci d’avance pour votre aide.

    #2305142
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Bonjour,

    Je pense que je vois l’erreur. C’est de ma faute: remplacez la première ligne par la deuxième (sans le / à la fin) et vérifiez.

    $link = 'https://www.rokinworld.com/test-page-produit/';
    
    $link = 'https://www.rokinworld.com/test-page-produit';

    Si ce n’est toujours pas bon, on fera d’autres vérifications mais pour le moment essayez ça.

    edit. J’oubliais: rafraîchissez bien votre page shop (la nouvelle).

    • Cette réponse a été modifiée le il y a 6 jours et 5 heures par ferman.
    • Cette réponse a été modifiée le il y a 6 jours et 5 heures par ferman.
    • Cette réponse a été modifiée le il y a 6 jours et 5 heures par ferman.
    #2305148
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Non, j’ai essayé entretemps et ce n’est pas le problème. Essayez le code ci-dessous. Si la méthode est applicable dans votre cas, cliquer sur n’importe quel produit devrait vous rediriger vers la page choisie. Rafraîchissez bien entre les essais.

    function woocommerce_template_loop_product_link_open () {
           
    	   global $product;
    	   $link = 'url une page de votre site au choix';
    
           echo '<a href="' . esc_url( $link ) . '">';
        }
    add_filter( 'woocommerce_loop_product_link', 'woocommerce_template_loop_product_link_open' );

    #2305151
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Rebonjour,

    J’ai bien remplacé la fonction php dans l’extension, j’ai bien actualisé les pages après.

    J’ai remplacé l’url par la nouvelle page produit avec le shortcode, soit “https://www.rokinworld.com/test-page-produit/&#8221;.
    En effet, lorsque je clic sur n’importe quels produits de ma page boutique modifié “https://www.rokinworld.com/boutique-rokin-2/&#8221;, la nouvelle page nous amène sur ma nouvelle page produit !!!

    Un grand merci à vous.
    Du coup, j’ai deux questions supplémentaires, j’ai actuellement une  20 de produits sur la page boutique. Pour créer les nouveaux liens, je dois en amont créer une nouvelle page pour chaque produit. Mais une fois ces actions réalisées, dans la fonction php, comment lier chaque produit de la page boutique avec sa page produit unique ?

    De plus, concernant les nouveaux liens “https://www.rokinworld.com/test-page-produit/&#8221; et plus “https://www.rokinworld.com/produit/casquette/&#8221;, le site risque t’il de perdre en référencement naturel ?

    Merci d’avance pour votre retour

    #2305155
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Avant d’aller plus loin, je voudrais être sûr de bien comprendre. Qu’avez vous mis exactement pour $link? Cela ne peut pas être simplement https..//www..rokinworld..com/test-page-produit car la page n’existe pas, donc quoi? A noter: quand on écrit les liens directement dans la réponse, il y a des “parasites” genre ”. Pour que ce soit plus clair, utilisez plutôt le code comme j’ai fait plus haut, ou alors modifiez légèrement l’adresse comme dans la ligne du dessus pour qu’il n’y ait plus de lien.

    Pour créer les nouveaux liens, je dois en amont créer une nouvelle page pour chaque produit.

    Vous n’aviez pas encore créé ces liens?

    • Cette réponse a été modifiée le il y a 6 jours et 3 heures par ferman.
    • Cette réponse a été modifiée le il y a 6 jours et 3 heures par ferman.
    #2305158
    leroyert
    Participant
    Initié WordPress
    16 contributions

    D’accord, voici le code que j’ai mis dans $link

    function woocommerce_template_loop_product_link_open () {
           
    	   global $product;
    	   $link = 'https://www.rokinworld.com/test-page-produit/';
    
           echo '<a href="' . esc_url( $link ) . '">';
        }
    add_filter( 'woocommerce_loop_product_link', 'woocommerce_template_loop_product_link_open' );

    En effet, le copier coller du lien rajoutait des parasites, désolé.

    #2305162
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Mais dans woocommerce  la page indiquée “https..//www..rokinworld..com/test-page-produit” n’existe pas, seules existent les pages produit avec un nom de produit à la fin donc avec ce code vous devriez aboutir sur une page 404 (not found). Ce n’est pas le cas?

     

    Et vous n’aviez pas encore créé les nouvelles pages produits?

    • Cette réponse a été modifiée le il y a 6 jours et 2 heures par ferman.
    #2305167
    leroyert
    Participant
    Initié WordPress
    16 contributions

    Désolé, si je n’ai pas été très clair.

    En fait mon souci initiale, c’est que je veux modifier l’aspect des pages Woocommerce. Je veux pouvoir modifier le header de la page afin que chaque page respecte la charte graphique du site.
    J’ai commencé par la page boutique, j’ai créer un modèle de page avec Elementor et avec le widget shortcode, j’ai inséré ce bout de code “” afin de voir 5 produits par ligne.
    Le souci, c’est que quand on clic sur l’un des produits de cette page boutique, on arrive sur une url du type “https://www.rokinworld.com/produit/toile/” et que le rendu visuel ne colle pas au reste du site. J’ai donc créée une nouvelle page produit testhttps://www.rokinworld.com/test-page-produit/” afin qu’elle respecte le thème, et j’ai rajouter le shortcode ““.

    Pour le moment, vu que j’ai crée cette page, je ne tombe pas sur une page error 404.

    J’ai déjà crée chaque produit mais je n’ai pas encore crée une page produit avec elementor et le shortcode de chaque id produit.

    Navré, j’espère être assez prècis.

    #2305172
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Donc, il est normal que le code du début ne marche pas. Pour qu’il marche, il faut que vous ayez créé  de vraies pages  produit .

    Vous devriez donc avoir quelque chose comme “https://www.rokinworld.com/test-page-produit/toile et si vous tapez cette adresse dans la barre du navigateur il faut que vous arriviez sur une page produit “toile” fonctionnelle. Si vous avez ça c’est bon. Il vous faudra ensuite créer autant de pages de ce genre qu’il y a de produits.

    Le code fonctionne de la manière suivante.

    Les pages produit ont la structure suivante: “http..//www………………./produit/?p=150” (si l’id du produit est 150). On a une partie commune ($link) correspondant à “http..//www………………./produit”  qui est la même pour tous les produits. Une partie  intermédiaire ($b) “/?p=” elle aussi invariable et une troisième partie $c= $product->get_ID(), variable qui est l’identité du produit sur lequel on clique dans la page boutique.

    On rassemble les trois éléments ce qui reconstitue le lien désiré $link.$b.$c = http..//www………………./produit/?p= variable.

    Essayez d’abord avec une seule page: créez la page produit et cliquez sur ce produit dans la page boutique. Vous devriez arriver sur cette nouvelle page produit. Si ça marche faites la même chose pour vos autres produits. Si ça ne marche pas, c’est cuit (mais ça devrait fonctionner).

    Je ne sais pas si c’est clair? J’espère que si.

    • Cette réponse a été modifiée le il y a 6 jours et 1 heure par ferman.
    • Cette réponse a été modifiée le il y a 6 jours et 1 heure par ferman.
    • Cette réponse a été modifiée le il y a 6 jours et 1 heure par ferman.
    #2305241
    ferman
    Participant
    Maître WordPress
    2097 contributions

    Bonjour,

    J’ai reproduit votre problème (et par la même occasion c’est devenu clair; ça ne l’était pas avant!). Voila la solution qui fonctionne chez moi:

    J’ai testé avec trois produits A,B,C ids 2904, 2901 et 2890.

    Pour ces trois produits j’ai créé trois articles avec les permaliens “nom_du_site/test-custom-product-A, ou B ou C”

    j’y ai placé les shortcodes “product_page id=”2904” ou 2901 ou 2890 et noté les ids des articles: 3355, 3359, 3363.

    En utilisant la fonction comme indiqué ci-dessous, vous serez renvoyé vers la page personnalisée correspondante.

    On ne peut malheureusement pas automatiser le système car il n’y a pas de relation logique entre id des produits et id des articles créés mais ce n’est vraiment pas long à écrire (une petite ligne à chaque fois: “if ($c==id du produit) $d= id nouvelle page produit;”

    A noter: dans la fonction, pour $link c’est bien le nom du site et non pas le nom du site/test-page-produit qu’il faut utiliser.

    function woocommerce_template_loop_product_link_open() {
           
    		global $product;
    	   
    		$link = 'https://www.rokinworld.com';
    	   	$b='/?p=';
    		$c= $product->get_ID();
    		
    		if ($c==2904) $d= 3355;
    		if ($c==2901) $d= 3359;
    		if ($c==2890) $d= 3363;
    		
    		
    	echo'<a href="' . esc_url( $link.$b.$d) . '">';
    	return;		
    }

    Voila, maintenant pour moi c’est bon mais si vous avez des problèmes n’hésitez pas à revenir sur le forum, bien sûr.

    Mais n’aurait-il pas été plus simple de personnaliser les pages produit manuellement ou avec un plugin, sans en créer de nouvelles? Comme indiqué ICI et LA ?

     

     

    • Cette réponse a été modifiée le il y a 5 jours et 7 heures par ferman.
15 sujets de 1 à 15 (sur un total de 21)
  • Vous devez être connecté pour répondre à ce sujet.