Extraction, formatage et envoi de données

Cookieweb
Invité n'ayant pas de compte PHPfrance

14 août 2015, 13:04

Bonjour à tous, je retouche en ce moment un module Prestashop permettant d'envoyer les données de commande à un prestataire.

Le dernier point qui me pose problème est le suivant :

Dans le cadre de ventes d'abonnements, le client peut choisir entre des forfaits mensuels de 3, 6, 12 ou 24h.
Je souhaite simplement extraire cette donnée et l'envoyer.

Cette information se trouve dans la colonne product_name de la table order_detail.

Voilà à quoi ressemblent les champs :
0805 000 000 - Forfait : 3h
0805 000 001 - Forfait : 12h
0805 000 002 - Forfait : 3h
0 820 23 98 90

Le dernier numéro correspond à un forfait illimité.

Voilà donc le code que j'ai actuellement :

Code : Tout sélectionner

private function getSubscriptionDuration($product_name) { $array =explode(":",$product_name); if(empty($array[1])) return "0"; else return str_replace("h","",trim($array[1])); }
On demande donc le chiffre correspondant au nombre d'heures du forfait et 0 s'il est illimité.
Et voilà la ligne qui me permet de récupérer la donnée :

Code : Tout sélectionner

$postdata['heureForfait_INFOFACTURE'] = $this->getSubscriptionDuration($product['name']);
Le retour envoie systématiquement 0, même pour les produits comportant un forfait.

Si jamais quelqu'un a une idée cela pourrait me faire gagner beaucoup de temps, merci.

Mammouth du PHP | 1029 Messages

14 août 2015, 14:04

Salut,

Fait un var_dump de $product['name'] pour voir ce que tu renvoie

Code : Tout sélectionner

var_dump($product['name']);
En utilisant tes exemples, j’obtiens bien la réponse attendu
L'expérience est la somme de toutes nos erreurs.

Eléphanteau du PHP | 42 Messages

14 août 2015, 18:05

Salut,

visiblement cela est intégrer dans une classe php.

Je pense que les variables à utiliser dans une classe php doivent être définie dans la classe php avant d'être utilisé dans la classe comme tu le fais dans la fonction getSubscriptionDuration.

la première chose que je ferais, c'est mettre
echo $product_name
dans la fonction getSubscriptionDuration et voir ce que affiche ce echo lorsque tu met différente possibilités de $product_name
Je pense que cela n'affichera rien.