Checking the currency
In PrestaShop, the merchant can enable different currencies for each module payment. Go to the Payment menu under Modules in your back office; you will see a section named CURRENCY RESTRICTIONS (you also have other sections such as COUNTRY RESTRICTIONS):
The displayPayment
hook won't display a payment method if the customer has chosen a currency that is not enabled for the payment method in question.
However, it's safer to add security in your payment module. In the initContent
method of your module's Payment
front controller, add the following lines just before assigning data to Smarty:
// Check if currency is accepted if (!$this->checkCurrency()) Tools::redirect('index.php?controller=order');
Then, in this controller, create the checkCurrency
method. We will first retrieve the currency associated with the cart (the one chosen by the customer) and get the currencies enabled for this payment module with the getCurrency
method (native method of the PaymentModule
abstract...