- WordPress :6.6
- Statut : résolu
- Ce sujet contient 14 réponses, 2 participants et a été mis à jour pour la dernière fois par Moulti-Pass, le il y a 1 semaine et 5 jours.
-
AuteurMessages
-
19 novembre 2024 à 16 h 09 min #2482808
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/
19 novembre 2024 à 16 h 14 min #2482809Salut,
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.
19 novembre 2024 à 16 h 17 min #2482811Hello 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.19 novembre 2024 à 16 h 18 min #2482813j’ai update mon message 😉
19 novembre 2024 à 16 h 27 min #2482814Je 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 🫤
19 novembre 2024 à 16 h 30 min #2482815Tu 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.
19 novembre 2024 à 16 h 42 min #2482817Non 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 🤔
19 novembre 2024 à 16 h 50 min #2482819Tu 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 la19 novembre 2024 à 16 h 56 min #2482820Je 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 );19 novembre 2024 à 16 h 57 min #2482821Et voila 🙂
Supprime donc cela 😉
(la dernière ligne c’était ce que je t’ai donné, donc tu peux l’enlever aussi)19 novembre 2024 à 17 h 03 min #2482822J’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.19 novembre 2024 à 17 h 04 min #2482824Car 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.19 novembre 2024 à 17 h 06 min #2482825Cette réponse a été marquée comme privée.19 novembre 2024 à 17 h 10 min #2482826Donc,
Supprime ligne 432 à 441.
Puis 375 à 390
Tout devrait etre ok
19 novembre 2024 à 17 h 14 min #2482828Et la magie opéra 😌 Merci beaucoup Joss pour le temps que tu y a passé ! 😁 Je le passe en résolu 👍
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.