2012-03-20 28 views
1

我有一個網站完全在意大利旅遊的英語語言。 現在,當用戶點擊「Paypal快速結賬」按鈕時,會發現Paypal頁面的意大利版本。PayPal快速結帳語言 - 如何設置它在Drupal 7 - Ubercart 3

我想強制paypal使用英文,因爲如果客戶在說意大利語時會說英語,他還希望Paypal使用該站點的相同語言,而不是基於他的IP地址,瀏覽器位置,或其他任何東西。

所以,我的問題是:我如何確定所有訪問者都看到貝寶與網站其他部分使用相同的語言(英文)? 我安裝了Drupal 7和Ubercart 3。

我下載了貝寶SDK的PHP 5.2並驗證它足以在NVP字符串添加

&LOCALECODE=en_UK 

。 我必須在哪裏修改Ubercart以集成此更新?

我試圖修改uc_paypal.module加入

watchdog('paypal', "uc_paypal_ec_checkout",$variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL); 
中含有 $ nvp_request數組定義的所有功能

,但我不能看到監視表中的任何新行。 很顯然,我也試圖在數組的定義添加

'LOCALECODE' => 'en_UK', 

行,但沒有效果。

我在購物車中有「Paypal快速結帳」按鈕,當我點擊它時,我獲得了意大利版本的Paypal頁面。

如果您對我需要修改的文件以及在哪裏有任何想法,請幫助我。

如果您需要更多信息,請告訴我。

謝謝

+0

您必須將&LOCALECODE = GB not&LOCALECODE = en_UK添加到nvp字符串。 – 2013-03-01 17:31:48

回答

2

我最近一直在尋找解決方案。有人提到能夠改變實際貝寶賬戶的語言,雖然我還沒有設法找到隱藏在貝寶賬戶設置頁面的選項。另外,有些人可以使用一種語言提供付款頁面,但您的帳戶仍然使用您自己的語言。所以和你一樣,我一直在尋找這個。

我已經通過了uc_paypal模塊代碼望去,似乎沒有被添加到SetExpressCheckout請求整齊沒有簡單的方法,所以修補代碼爲你做似乎是唯一的出路。

您所做的更改與我的相同,只是您使用的區域設置代碼未在我的PayPal指南中列出。我一直在參考PayPal Express Checkout Advanced Features Guide

如果您使用'US'或'UK'作爲您的'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請求中。不知道爲什麼它目前不在那裏,也許貝寶在模塊寫完後添加了這個功能。如果其他人尚未提供補丁,我會考慮提交補丁,但是如果有人能夠更好地進行修改/補丁,那麼就馬上開始吧! :)我只是還沒有完全熟悉所有的Drupal箍,以便獲得提交的補丁。