Paypal Express Checkout Language - как установить его в Drupal 7 - Ubercart 3 - PullRequest
1 голос
/ 20 марта 2012

У меня есть сайт полностью на английском языке о туризме в Италии. Теперь, когда пользователь нажимает кнопку «Paypal Express Checkout», он находит итальянскую версию страницы Paypal.

Я бы хотел, чтобы PayPal также был на английском языке, потому что, если клиент, говорящий по-английски, приезжает в Италию, он хотел бы также, чтобы PayPal был на том же языке сайта, а не на основе его IP-адреса, Браузер. Местоположение или что-нибудь еще.

Итак, мой вопрос: как я могу быть уверен, что все посетители видят Paypal на одном языке (английском) остальной части сайта? У меня установлены Drupal 7 и Ubercart 3.

Я скачал Paypal SDK для 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 Ответ

2 голосов
/ 10 сентября 2012

Я недавно искал решение этой проблемы.Некоторые упоминают о возможности изменить язык реальной учетной записи Paypal, хотя мне не удалось найти эту опцию, скрытую на страницах настроек учетной записи PayPal.Кроме того, для некоторых полезно предоставить страницы оплаты на одном языке, но при этом иметь свой аккаунт на своем родном языке.Так что, как и вы, я искал именно это.

Я просмотрел код модуля uc_paypal, и, похоже, нет простого способа добавить его в запрос SetExpressCheckout аккуратно, так что исправляя код, выЭто похоже на единственный способ.

Внесенные вами изменения аналогичны моим, за исключением того, что используемый вами код локали не указан в моем руководстве PayPal.Я ссылаюсь на Руководство по расширенным функциям PayPal Express Checkout .

Если вы используете «США» или «Великобритания» для своей записи «LOCALECODE», она должна работать для вас.Это сработало для меня в Ubercart 3.0-rc3, и при сканировании последней версии Ubercart v3.1 не похоже, что многое изменилось, поэтому это тоже должно сработать.

Примечание: есть 2 места, связанные сзапрос PayPal «SetExpressCheckout», для которого необходимо добавить LOCALECODE.(Один в функции uc_paypal_ec_checkout, а другой в uc_paypal_ec_form_submit)

Надеюсь, это поможет вам.

Я ненавижу менять основной код и действительно действительно избегаю делать это любой ценой, и я не согласенс внесением этих типов изменений кода, но это просто невозможно в этом случае.Если у кого-то есть лучший способ сделать это, пожалуйста, предоставьте его.Я думаю, что реальный ответ - это исправить модуль Ubercart uc_paypal, чтобы LOCALECODE был выбран в пользовательском интерфейсе настроек, а затем включить его в запрос SetExpressCheckout.Не уверен, почему его там нет, возможно, Paypal добавил эту функцию после написания модуля.В какой-то момент я посмотрю на представленный патч, если другие еще этого не сделали, но если кто-то из них сможет сделать это изменение или патч, тогда продолжайте!:) Я просто еще не полностью ознакомился со всеми обручами Drupal, чтобы пройти через патч.

...