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

Modification effectuée par cerdic