Problème de récupération du pays et du code postal (API commande_infos_client)
Livraison 3.6.1 / SPIP 4.2 / PHP 7.4 + 8
Suite à une mise à jour du plugin dans la dernière version, chez nous le plugin n'arrive plus à retrouver le code postal et le code pays d'une commande avec livraison_commande_choisir_cp_pays()
Et donc dans notre tunnel de commande ça bloque au moment de choisir un mode de livraison, plus possible d'accéder au paiement.
C'est vraisemblablement depuis l'introduction de l'API commande_infos_client.
Contexte
Pour le contexte, on est dans un cas d'utilisation standard prévu par le plugin : les adresses de livraison et de facturation sans enregistrée dans la commande elle-même.
Seule l'adresse de facturation est enregistrée dans la commande si l'adresse de livraison est identique.
Au moment où livraison_commande_choisir_cp_pays() est appelée, les champs facturation_adresse_cp
et facturation_adresse_pays
sont bien remplis.
In fine c'est donc l'API commande_infos_client qui ne parvient pas à retrouver les adresses.
Enfin c'est pas l'API qui pose problème, c'est plutôt son utilisation par le plugin lui-même : il prévoit bien d'aller chercher les adresses dans la commande elle-même avec le pipeline commande_infos_client, mais pour une raison X ou Y il n'y arrive pas.
Cause probable
C'est possiblement cette ligne qui pose problème :
if (!empty($commande["livraison_nom"]) or !empty($commande["livraison_societe"])) {
À ce moment dans notre tunnel la commande n'a aucune adresse de livraison, juste une adresse de facturation, et donc on bypasse le pipeline.
Quel était le but de cette condition ?
HS mais bizarrement le blame de cette ligne m'attribue le commit, alors que j'ai jamais touché à ça :p 3b33be50