indirizzare Paypal con lingue differenti

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
Avatar utente
lorex
membro Junior
membro Junior
Messaggi: 28
Iscritto il: 15/03/2005, 1:00
Località: Pisa
Contatta:

indirizzare Paypal con lingue differenti

Messaggio 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!
angelus
membro Junior
membro Junior
Messaggi: 3
Iscritto il: 22/07/2007, 14:33

Messaggio 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!!
angelus
membro Junior
membro Junior
Messaggi: 3
Iscritto il: 22/07/2007, 14:33

Messaggio da angelus »

nessuno sa darmi una risposta? :roll:

per favore... :(
Rispondi