Jump to content

appels au fonctions statiques [Résolu]


Broceliande
 Share

Recommended Posts

Bonjour/soir à tous,
Je suis devant un problème idiot, mais j'espère que les bonnes âmes ici présentes pourront me sortir de l'ombre.
Je ne suis pas un pro de prestashop , mais j'ai développé un module paybox pour un ami, histoire de répondre à ses besoins (rien de folichon mais fonctionnel).

Je bloque par contre sur un point :

Il existe une URL transmise à la banque qui est appelée quelque soit l'issue du paiement, et cela même si le client ferme la fenêtre. C'est à partir de cet appel que je collecte les infos paiement, et je souhaite modifier le statut de la commande concernée en fonction de ces infos , et générer le mail adéquat sans avoir à réinventer la roue , puis prestashop sait faire cela très bien.

Je me suis donc penché sur les fonctions statiques de la classe Hook, par exemple , comme Hook::updateOrderStatus(intval($new_order_state), intval($id_order));

Seulement voilà, l'appel à cette fonction ne donne absolument rien :s .
En fin de compte je réalise que dériver d'une classe dans le cadre d'un module est assez facile, meme sans connaitre prestashop sur le bout des ongles, mais qu'en ce qui me concerne je ne sais absolument pas , dans un simple script php, utiliser une des classes. faute aussi peut être de documentation ( pourtant j'ai cherché ).

J'ai juste inclus include('./config/config.inc.php'); dans mon script pensant que cela suffisait, mais nenni ...

D'ou ma question : Quelle est la bonne fonction à appeler pour obtenir le changement de status, la mise en historique, et la génération du mail en un appel, et que dois-je respecter dans mes includes pour être autorisé à appeler cette fonction.
Merci aux âmes charitables.
Eric

Share this post


Link to post
Share on other sites

Bonjour,

Pour faire simple :

$history = new OrderHistory();
$history->id_order = 42; // l'id de votre commande
$history->id_order_state = 42; // l'id de votre statut de commande
$history->addWithEmail();


Et c'est fini !
(notez que ce code est tapé de tête et non testé ^^)

Quant à l'include... jetez un oeil au fichier init.php :)

Share this post


Link to post
Share on other sites

Comme une lettre à la poste !
Un grand merci.
:)
Bon pour résumer mon probleme et sa solution (ça pourrait servir à d'autres) :

J'avais une vision obscure des modalités d'utilisation des objets et classes en dehors du contexte 'module'
Mon script étant appelé hors cadre prestashop , je me faisais un monde de ça au final alors que :

include('./config/config.inc.php');
include('./init.php');

... au debut de mon script , et je peux instancier par exemple l'objet qui m'a servit à updater le statut commande.

Comme sur des roulettes , ces deux lignes d'init toutes bête m'ouvrent bien des portes que je n'avait pas encore poussé.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More