[Résolu] Bug affichage nom du mode d’expédition (Créer un compte)

  • WordPress :6.6
  • Statut : résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #2482808
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Bonjour,

    J’ai un problème d’affichage pour un de mes modes d’expédition pour ma zone d’expédition woocommerce. J’ai créer deux forfait d’expédition, un forfait à 49,99 € qui s’affiche correctement (Description : « Sur rendez-vous (2 à 4 semaines), à votre domicile, installation, par notre équipe, et reprise si besoin de votre ancien matelas ») et un autre mode d’expédition en livraison à 0 € (offerte), pour celui-ci la mention « offerte » s’affiche bien automatiquement mais pas la description (qui devait être : « Livraison gratuite à domicile 48 à 72 heures »), par contre si j’ajoute par exemple 1 € de livraison, la description apparaît, ça le fait uniquement quand je met 0 €… Je ne sais pas trop ou aller pour corriger ça (je maîtrise FTP, CSS et je bidouille en PHP avec des indications au besoin.

    Pour reproduire le problème il faut mettre au panier un matelas Mae (c’est une livraison spéciale pour lui) : https://doolit.fr/product/matelas-adulte-mae/?attribute_dimensions=160+x+200+cm

    Merci de votre aide par avance !

    Ma configuration WP actuelle

    • Version de WordPress : 6.7
    • Thème utilisé : Hello Elementor
    • Nom de l’hébergeur : O2switch
    • Adresse du site : https://doolit.fr/
    #2482809
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Salut,

    Aoute cela a ton functions.php :

    add_filter('woocommerce_cart_shipping_method_full_label', 'force_shipping_description_for_free', 10, 2);
    function force_shipping_description_for_free($label, $method) {
    // Vérifier si le prix de la méthode d'expédition est à 0 (gratuite)
    if ($method->cost == 0 && isset($method->method_id) && $method->method_id === 'flat_rate:9') {
    // Modifie en fonction de ton id de shipping
    $description = "Livraison gratuite à domicile 48 à 72 heures";
    $label .= '<br><small>' . esc_html($description) . '</small>';
    }
    return $label;
    }

    Ce problème survient probablement parce que WooCommerce gère différemment l’affichage des descriptions des méthodes d’expédition gratuites. Quand une méthode est configurée avec des frais de 0 €, WooCommerce considère cela comme une méthode de livraison gratuite et, par défaut, n’affiche pas la description.

    #2482811
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Hello Joss,

    Merci pour la réponse, à priori si c’est sur le même système que l’option de livraison payante, il ne devrait pas y avoir de raisons, non ?

    Voici la capture d’écran :

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2482813
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    j’ai update mon message 😉

    #2482814
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Je viens de faire l’essai en mettant le code à la fin du functions.php de ce chemin : public_html/wp-content/themes/hello-elementor-child

    Mais il semblerait que ça ne marche pas 🫤

    #2482815
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Tu as fait quelque chose en particulier pour afficher OFFERT ?
    Car de base si je test sur un WP de dev j’ai le titre de ma méthode de shipping offert qui s’affiche quoi qu’il en soit.

    La livraison gratuite doit être utilisé en créant une méthode « Livraison gratuite » ou explique moi comme tu l’as faite car je comprends pas.

    #2482817
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Non je n’ai rien fait de particulier (en tout cas pas à ma connaissance, le site à était créer par une agence de web il y a quelques années, j’ai repris sa gestion).

    Pour créer ça j’ai choisit ma zone d’expédition France, ensuite j’ai fait « ajouter une méthode de livraison » > « forfait » (afin d’appliquer ce tarifs uniquement sur une classe d’expédition).

    Je viens de tester en faisant « ajouter une méthode de livraison » > « livraison gratuite » mais j’ai toujours le même problème 🤔

    #2482819
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Tu ne devrais pas avoir de soucis en ajoutant la méthode livraison gratuite, je viens de le tester sur un WP sans custom fonctions etc.

    Peut être qu’il y a quelque chose dans le code de base qu’ils ont ajoutés, ou une extension qui surpasse les règles d’expédition.
    Peux tu nous lister les extensions ou regarde dans ton functions.php du thème enfant si tu n’as pas déjà des choses qui pourraient poser soucis sur ce point la

    #2482820
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Je voit un code suspect dans le functions.php, est-ce que ce serait pas la raison de mes malheurs ? 🤔

     

    function sww_wc_free_shipping_label( $label, $method ) {

    if ( 0 == $method->cost ) {
    $label_light =strstr($label, ': ', true);
    $new_label=$label_light.': <b>offerte</b>';
    return $new_label;
    }
    else
    {
    return $label;
    }


    }
    add_filter( 'woocommerce_cart_shipping_method_full_label', 'sww_wc_free_shipping_label', 10, 2 );

    #2482821
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Et voila 🙂
    Supprime donc cela 😉
    (la dernière ligne c’était ce que je t’ai donné, donc tu peux l’enlever aussi)

    #2482822
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    J’ai supprimer et j’ai eu droit à une erreur critique 😅 Voir capture d’écran

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2482824
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Car tu as probablement trop supprimé ou mal supprimé des fonctions 🙂
    Mets le contenu de ton fichier functions.php ici stp en mode privé si besoin.

    #2482825
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions
    Cette réponse a été marquée comme privée.
    #2482826
    Joss47
    Modérateur
    Maître WordPress
    5340 contributions

    Donc,

    Supprime ligne 432 à 441.

    Puis 375 à 390

    Tout devrait etre ok

    #2482828
    Moulti-Pass
    Participant
    Initié WordPress
    24 contributions

    Et la magie opéra 😌 Merci beaucoup Joss pour le temps que tu y a passé ! 😁 Je le passe en résolu 👍

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