jlweb Posted July 5, 2016 Share Posted July 5, 2016 Bonjour, Je me trouve confronté à un problème suite à une modification du module natif "Paiement par chèque". Afin de mettre en forme la page de paiement j'ai créé un nouveau hook appelé displayPaymentBis. J'ai pour cela ajouté le code suivant dans /modules/cheque/cheque.php : function hookdisplayPaymentsBis($params) { return $this->hookPayment($params); } J'affiche ce nouveau hook hookdisplayPaymentsBis sur la page order-payment.tpl : <div id="displayPaymentsBis"> {hook h= "displayPaymentsBis"} </div> Je greffe le module "chèque" sur ce nouveau hook. Je dégreffe le module "chèque" du hook displayPayment. Ainsi, mon bouton de paiement par chèque s'affiche sur hookdisplayPaymentsBis et non plus sur displayPayment. Lorsque je clique sur le bouton de paiement par chèque, j'arrive bien sur la page m'invitant à vérifier le montant de ma commande et à cliquer sur "Confirmer ma commande". Lorsque je clique sur "Confirmer ma commande" j'arrive sur une page blanche avec le message suivant : "Ce moyen de paiement n'est pas disponible". Je ne vois malheureusement pas d'ou peut provenir cette erreur. Avez-vous une idée ? Merci d'avance Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted July 5, 2016 Share Posted July 5, 2016 Je suppose que orderController va vérifier si ton mode de paiement est hooker sur displayPAyment. Verifie en regreffant ton module dessus (et laisse le sur le bis). Si ça passe tu aura juste à vider la fonction hookDisplayPayment et mettre son contenu dans hooDisplayPaymentBis. tout en laissant le module greffer sur les deux hook. Link to comment Share on other sites More sharing options...
jlweb Posted July 5, 2016 Author Share Posted July 5, 2016 (edited) Effectivement, le problème est maintenant corrigé => MERCI Cependant j'ai modifié directement la classe du module. Pour une raison que j'ignore, l'override ne fonctionnait pas. Mon code dans override/classes/module/cheque/cheque.php : <?php if (!defined('_PS_VERSION_')) exit; class Cheque extends ChequeCore { public function install(){ if( parent::install() ){ return $this->registerHook('displayPaymentsBis'); }else{ return false; } } function hookdisplayPaymentsBis($params) { return $this->hookPayment($params); } } ?> L'override ne fonctionnant pas j'ai modifié directement la classe du module, ce qui n'est pas très "propre", surtout en cas de mise à jour du module. As-tu une piste sur les raisons du non fonctionnement de mon override ? Edited July 5, 2016 by jlweb (see edit history) Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted July 6, 2016 Share Posted July 6, 2016 Tu dois supprimer le fichier class_index qui se trouve dans le dossier cache pour que ton override soit prit en compte Link to comment Share on other sites More sharing options...
jlweb Posted July 7, 2016 Author Share Posted July 7, 2016 Tu dois supprimer le fichier class_index qui se trouve dans le dossier cache pour que ton override soit prit en compte Oui c'est ce que j'avais fait... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now