A payment method disappears from the checkout after a PrestaShop update
A payment module that worked perfectly can stop showing to customers after a PrestaShop update, with no error appearing anywhere in the back office. Three causes come up again and again: a hook the module no longer uses since PrestaShop 1.7, country, currency or customer group restrictions that have reset, or a module automatically disabled because it’s flagged incompatible with the newly installed version.
The hook changed with version 1.7
Before PrestaShop 1.7, payment modules displayed their buttons through the displayPayment hook. From 1.7 onwards, this was replaced by the paymentOptions hook, which works differently: the module has to return payment option objects rather than raw HTML displayed directly.
A module still built for the old hook can install without any error after an upgrade: PrestaShop doesn’t flag an unused hook, it simply ignores it. The module stays visible in Modules and services, active and configured, but nothing shows up in the checkout any more. This is the most common cause of a payment method vanishing after moving to 1.7 or later.
Country, currency and customer group restrictions
Every payment module has its own settings screen, with restrictions by country, currency and customer group. These let you, for example, only offer a payment method to French customers paying in euros.
After the module itself is updated, these settings can reset or fall out of sync: a country that was ticked becomes unticked, or an allowed currency range goes empty. The module stays active, but no longer matches any live order, so it never appears to the customer. This is worth checking before looking any further.
How I check, in order
-
Is the module still active?
I check in Modules and services that it hasn’t been automatically disabled after the update, and that it isn’t flagged as incompatible.
-
Is the expected hook still registered?
I check whether the module is still hooked to paymentOptions (or the older displayPayment for versions before 1.7), and whether it responds correctly to that call.
-
Are the module’s restrictions correct?
Allowed countries, currencies and customer groups: I check none of these lists has emptied out or wrongly excludes the order being tested.
-
Is the module itself up to date?
If it stays incompatible despite these checks, the update needs to come from its publisher, or the module needs adapting to the new payment mechanism.
Related pages
-
Checkout and payment failures
The full diagnosis when a customer can’t pay at all, worked through step by step in the checkout.
-
PrestaShop 1.6 to 1.7 or 8 migration
Why a major version upgrade breaks certain modules, and how to check their compatibility before migrating.
-
Custom PrestaShop module development
When a payment module needs rewriting or adapting to the new mechanism rather than simply reconfiguring.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.