Paypal快速结账语言 - 如何在Drupal 7中设置 - Ubercart 3

时间:2012-03-20 15:56:44

标签: drupal drupal-7 ubercart

我有一个完全用英语写的关于意大利旅游的网站。 现在当用户点击" Paypal快递结账"按钮找到Paypal页面的意大利语版本。

我想强迫paypal使用英语,因为如果客户说意大利语来自意大利,他希望也能使用相同语言的网站,而不是基于他的IP地址,浏览器位置或其他任何内容。

所以,我的问题是:我如何确定所有访问者都能看到Paypal使用与网站其他部分相同的语言(英语)? 我安装了Drupal 7和Ubercart 3。

我下载了 Paypal SDK for PHP 5.2 ,并确认它足以添加

&LOCALECODE=en_UK

在nvp字符串中。 我在哪里修改Ubercart以集成此更新?

我尝试修改 uc_paypal.module 添加

watchdog('paypal', "uc_paypal_ec_checkout",$variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL);

在包含 $ nvp_request 数组定义的所有函数中,但我看不到监视程序表中的任何新行。 显然我也尝试添加

'LOCALECODE' => 'en_UK',

数组定义中的行,但没有效果。

我有" Paypal快递退房"购物车中的按钮,当我点击它时,我获得了Paypal页面的意大利语版本。

如果您对我需要修改的文件以及位置有任何疑问,请帮助我。

如果您需要更多信息,请与我们联系。

谢谢

1 个答案:

答案 0 :(得分:2)

我最近一直在寻找解决方案。有人提到能够改变实际Paypal帐户的语言,虽然我没有设法找到隐藏在paypal帐户设置页面的选项。此外,有些人可以使用一种语言提供付款页面,但仍然使用您自己的语言设置帐户。所以和我一样,我正在寻找这个。

我查看了uc_paypal模块代码,似乎没有任何简单的方法可以整齐地添加到SetExpressCheckout请求中,因此修改代码似乎是唯一的方法。

您所做的更改与我的相同,但您使用的区域设置代码未列在我的PayPal指南中。我一直在引用PayPal Express Checkout Advanced Features Guide

如果您使用“美国”或“英国”作为“LOCALECODE”条目,它应该适合您。这在Ubercart 3.0-rc3中对我有用,并且扫描最新的Ubercart代码v3.1它看起来并没有太大变化所以这也应该在那里工作。

注意:有2个与Paypal“SetExpressCheckout”请求相关的位置需要添加LOCALECODE。 (一个在函数uc_paypal_ec_checkout,一个在uc_paypal_ec_form_submit中)

希望对你有帮助。

我讨厌更改核心代码,并且确实真的避免不惜一切代价去做,而且我不同意这些类型的代码更改,但在这种情况下这是不可能的。如果有人有更好的方法来做到这一点,请提供它。我认为真正的答案是修补Ubercart uc_paypal模块以允许在设置UI中选择LOCALECODE,然后将其合并到SetExpressCheckout请求中。不确定为什么它当前不在那里,也许Paypal在编写模块后添加了这个功能。我会考虑在某些时候提交一个补丁,如果其他人还没有,但是如果有人更好地做出改变/补丁那么就去吧! :)我还没有完全熟悉所有Drupal箍,以便获得提交的补丁。