Jump to content

Module "Paiement par chèque"


jlweb

Recommended Posts

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

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

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 by jlweb (see edit history)
Link to comment
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
×
×
  • Create New...