Question

I'm new to prestashop and I need to know if there is a way (via code) by which I can restrict the number of payment gateways available according to customer postcode. For example, let's say that anyone who buys from New York can only pay via PayPal but the rest cities in US can use any payment gateway.

I tried this, but it disables modules for everyone not for a particular client:

if (strcmp($postcode, "12345")) // postcode I want to restrict
{
   // disabling other payment modules
   $modules = PaymentModuleCore::getInstalledPaymentModules();
   foreach ($modules as $module)
   {
      // fetch all installed module names
      $name = $module['name'];
      if (strcmp($name, "Paypal") != 0)
         Module::getInstanceByName($name)->disable();
   }
}
Was it helpful?

Solution

As nobody answers, I've fixed this problem with Jquery, deleting the other options in the module .tpl

-- EDIT --

At the end of the template, I added this line of JS:

<script type="text/javascript"> 
    $(".payment_module").not(".mypaymentmodule").remove();
</script>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top