문제

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