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();
   }
}
有帮助吗?

解决方案

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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top