• Resolved atelierdudesign

    (@atelierdudesign)


    Bonjour,

    Je rencontre un problème lors de l’envoi du code de suivi à mes clients suite au passage en “envoi terminé” dans WooCommerce. En effet, le code de suivi n’apparait tout simplement pas. J’ai donc activé le mode débug pour voir ce qui ressortait et je reçois le code d’erreur suivant :

    PHP Notice:  wpdb::prepare est appelée de la mauvaise manière. La requête ne contient pas un nombre correct de substitutifs/placeholders (2) pour le nombre d'arguments proposés (3). Veuillez lire <a href="https://codex.wordpress.org/Debugging_in_WordPress">Débugger dans WordPress</a> (en) pour plus d'informations. (Ce message a été ajouté à la version 4.8.3.) in /web/wp-includes/functions.php on line 4139
    [21-Nov-2017 13:44:32 UTC] *** LOG CDI - LINE:519 FILE:/includes/WC-colissimo-shipping-zone.php ***: Array
    (
        [id] => colissimo_shippingzone_method_home1:8:1
        [label] => Colissimo France
        [cost] => 0
        [calc_tax] => per_order
    )

    Avez-vous déjà rencontré ce problème ? Peut-être un paramétrage manquant de mon côté ?

    Merci d’avance de votre aide,

    Romain

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author Halyra

    (@harasse)

    Bonjour,

    Le premier message est un avertissement sur l’utilisation de wpdb::prepare ce que n’utilise pas CDI. Le 2ème message est un log normal de CDI quand la sélection de tarif s’exécute. A mon avis pas de rapport avec votre problème.

    Pour votre problème, vérifiez que l’onglet ‘Informations au client’ des réglages CDI est correctement paramétré.

    Thread Starter atelierdudesign

    (@atelierdudesign)

    Bonjour,

    Merci pour votre réponse, je pense que l’onglet est bien configuré, sauf si j’ai raté une étape :

    – Menu déroulant sur “mail au client”
    – Le texte précédant le code de suivi est “Votre colis a été expédié. Votre code de suivi est :”
    – L’URL de suivi des colis est “http://www.colissimo.fr/portail_colissimo/suivre.do?colispart=&#8221;

    J’ai un doute sur le dernier champ, mais je ne vois pas ce que je devrais renseigner de plus ?

    En dehors du code d’erreur évoqué plus haut, je ne vois pas d’autre anomalie… J’ai essayé de désactiver tous les plugins autres que WooCommerce, Contact Form 7 et Visual Composer et mis à jour tous les plugins sans succès.

    Plugin Author Halyra

    (@harasse)

    Bonjour,

    Désolé pour mon retard.
    Regardez du coté de Contact Form 7. Il me semble qu’il y a dans le forum un fil évoquant une incompatibilité avec ce plugin.

    Thread Starter atelierdudesign

    (@atelierdudesign)

    Bonjour,

    Pas de souci, j’ai réessayé en désactivant Contact Form 7 et Visual Composer, il ne reste donc que WooCommerce et CDI, mais toujours pas de code de suivi dans le mail envoyé au client lorsque l’on signale que la commande est terminée (après l’utilisation du “Web Service d’Affranchissement Colissimo” qui fonctionne sans souci).

    Une idée sur une méthode permettant de voir ce qui pose problème ?

    Merci pour votre aide.

    Plugin Author Halyra

    (@harasse)

    Bonjour,
    Ce que vous pouvez faire :
    1)lire la valeur réelle de la donnée « wc_settings_tab_colissimo_inserttrackingcode » dans la table options de la BD pour voir si elle est correcte.
    2) mettre une trace après les lignes 54, 42 et 40 du fichier includes/WC-Frontend-Colissimo.php pour voir si on passe bien par ces endroits de la procédure qui met le tracking code dans le mail. Pour cela, la trace peut être une ligne comme error_log('*** Atelierdudesign:' . __LINE__ . ' FILE:' . __FILE__ . ' ***: ' . print_R(‘passe par ici’, TRUE));  . N’oubliez pas de mettre votre fichier wp-config.php en debug pour obtenir une trace (les 3 lignes define (‘WP_DEBUG’, true); define (‘WP_DEBUG_LOG’, true); define (‘WP_DEBUG_DISPLAY’, false)).

    Tout ca nous donnera une idée.

    Thread Starter atelierdudesign

    (@atelierdudesign)

    1)
    – option_name : wc_settings_tab_colissimo_inserttrackingcode
    – option_value : emails
    – autoload : yes

    2)
    J’ai bien appliqué les modifications au fichier WC-Frontend-Colissimo.php, les deux premiers passent sans problème, mais le troisième ne s’affiche pas (celui à l’intérieur de if ( !empty($trackingcode) ) ).

    Je crois du coup comprendre que le code de suivi est vide à ce moment du process. Je viens de vérifier dans la BDD et les champs meta_value, meta_id, post_id sont renseignés.

    Plugin Author Halyra

    (@harasse)

    Ca voudrait donc dire que le numéro de commande est mal récupéré.
    Pouvez-vous ajouter après la ligne 49 (après la fermeture du if) error_log('*** Atelierdudesign:' . __LINE__ . ' FILE:' . __FILE__ . ' ***: ' . print_R($id_order, TRUE)); pour voir la valeur donnée de $id_order.

    Thread Starter atelierdudesign

    (@atelierdudesign)

    Merci pour votre aide, le fait de revoir le numéro de commande m’a fait comprendre ce qui bloquait : J’ai ajouté une fonction qui a pour but d’ajouter la couleur du produit avant son numéro (de manière à avoir “rouge_1499” ou “noir_1500”) et le numéro apparait bien lorsque je supprime cette fonction qui doit interférer avec CDI.

    C’était une demande du client, je dois donc voir avec lui pour supprimer cette fonctionnalité. Connaitriez-vous par hasard un moyen qui permettrait à CDI de fonctionner tout en ajoutant un suffixe aux factures ?

    Quoi qu’il en soit, merci pour votre aide sur ce bug qui était de mon fait.

    Plugin Author Halyra

    (@harasse)

    Compris, bien que cela n’ait un sens que pour les commandes mono produit.
    Mais en changeant le numéro de commande selon le produit en une structure spécifique, vous risquez d’avoir ultérieurement des soucis avec d’autres plugins.
    Votre solution n’est-elle pas plutôt l’utilisation d’un plugin d’édition de factures qui vous permettent de personnaliser le numéro de votre facture selon le produit concerné.

    Thread Starter atelierdudesign

    (@atelierdudesign)

    Il s’agit effectivement d’un e-commerce mono produit dont la seule variante est la couleur. Le client a pour volonté de savoir dès le tableau des commandes la couleur du produit pour faciliter son process d’envoi via Colissimo.

    Je pensais à ajouter une colonne récupérant la variable de l’attribut pour l’afficher en clair sans toucher au numéro de commande… Je vais explorer de ce côté pour permettre aux clients de continuer à recevoir leur numéro de suivi =)

    Merci pour votre aide et votre temps.

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘PHP Notice : wpdb::prepare est appelée de la mauvaise manière’ is closed to new replies.