Prestashop 基于位置和Paypal支付的货币转换

Prestashop 基于位置和Paypal支付的货币转换,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,在一个基于Prestashop 1.6的商店里,我想通过Paypal只接受一种货币(欧元)的付款。但是,我想根据客户的位置(可能使用其IP地址?)以其他货币显示价格。我该怎么做呢?在模块和服务>付款中,您有一个“货币限制”选项卡,您可以检查希望Paypal使用哪种货币 对于按IP选择的电流: 首先,您应该在获取用户IP之后,设置Prestashop上下文的curency $this->context->currency->id = $id_currency 要获取$id\u货

在一个基于Prestashop 1.6的商店里,我想通过Paypal只接受一种货币(欧元)的付款。但是,我想根据客户的位置(可能使用其IP地址?)以其他货币显示价格。我该怎么做呢?

在模块和服务>付款中,您有一个“货币限制”选项卡,您可以检查希望Paypal使用哪种货币

对于按IP选择的电流: 首先,您应该在获取用户IP之后,设置Prestashop上下文的curency

$this->context->currency->id = $id_currency
要获取$id\u货币,请执行以下步骤

  • 您应该使用此选项获取用户IP的国家/地区
  • 然后按国家代码获取货币代码(您可以从csv文件中获取,或者您应该使用API或数据库)
    • 免费服务在任何给定IP地址的响应中提供货币信息

      例如,
      http://ipfind.co?ip=8.8.8.8

      将返回(除其他外)


      货币:美元

      我知道的是如何根据客户使用其IP的位置以其他货币显示价格。但我不知道如何实现只接受一种货币的贝宝支付的功能。如果有兴趣,请联系。你能解释一下你是如何做到第一部分@Nimish的吗?关于货币限制,我希望所有用户都能使用PayPal,但即使在procust页面上以另一种货币向用户显示价格,我也希望通过PayPal以欧元进行支付。关于地理位置,我认为Prestashop已经对此表示支持。我在工作吗?@notGeek for Paypal你应该改为模块代码,“但即使价格以另一种货币呈现给用户”,你的意思是什么?我的意思是:价格需要以客户货币显示,但当他支付时,我希望付款总是以欧元进行处理。@notGeek我认为您应该为PaymentModuleClass创建一个新的覆盖,并覆盖validateOrder方法,您只需在第181行更改id\U货币=特殊货币?(int)$currency\u special:(int)$this->context->cart->id\u currency;至$id_货币=“$id_欧元”;