Pagina 1 di 1

indirizzare Paypal con lingue differenti

Inviato: 08/09/2006, 10:00
da lorex
Avendo fatto un negozio online che vende anche all'estero avevo il problema che il pagamento con paypal veniva sempre indirizzato al sito in italiano.
Sicuramente sarà già stato fatto, ma io non avevo trovato niente in proposito, quindi ho fatto una piccola modifica al codice del modulo di pagamento paypal per far si che il cliente inglese o tedesco o francese etc venga indirizzato alla pagina di paypal nella sua lingua.

questa è la modifica:
nel file catalog/incudes/modules/payment/paypal.php
intorna a riga 75 c'è la funzione:

function process_button() {
global $order, $currencies, $currency;

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}
$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

return $process_button_string;
}

basta modificarla così:

#### Lorenzo - faccio prendere anche il codice della lingua per reindirizzare alla pagina di paypal nella lingua del cliente
function process_button() {
global $order, $currencies, $currency, $languages_id;

$sql = 'SELECT code FROM languages WHERE languages_id = ' . $languages_id;
$query = mysql_query($sql) or die(mysql_error());
$lang = mysql_fetch_row($query);
$lang_code = $lang[0];


if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}
$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('lc', $lang_code) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

return $process_button_string;
}
#### fine Lorenzo

in rosso ho indicato la modifiche.

spero possa essere utile a qualcuno.

Ciao!

Inviato: 22/07/2007, 14:35
da angelus
Ciao io ho lo stesso problema ho effettuato le modifiche ma ora nello shop invece del pulsante in basso a destra c'è questo messaggio

Table 'Sql37229_1.languages' doesn't exist

potresti aiutarmi per favore?

Grazie mille!!

Inviato: 22/07/2007, 18:59
da angelus
nessuno sa darmi una risposta? :roll:

per favore... :(