Jump to content

Cambiare valuta nella fase di ordine affinchè sia una valuta specifica


wss

Recommended Posts

Ciao a tutti,

utilizzo PS 1.7.5.0 , lo store è multivaluta; seguendo in parte un vecchio topic dal forum inglese, ho modificato il mio tools.php per far si che gli ordini vengano sempre effettuati in una valuta specifica

Codice modificato su tools.php

    public static function displayPrice($price, $currency = null, $no_utf8 = false, Context $context = null)
    {
        if (!is_numeric($price)) {
            return $price;
        }
        if (!$context) {
            $context = Context::getContext();
        }
        if ($currency === null) {
        if ($context->controller->php_self == 'order') {
            $currency = Currency::getCurrencyInstance(2);
        } else { $currency = $context->currency;}

        /* your "else in the tutorial" was $currency = Currency::getCurrencyInstance((int)2) ; this code shows always the currency (int)2 when we are not in orders, also when the currency chosen by the visitor is (int)1 or another currency, so I changed the code */


        } elseif (is_int($currency)) {
            if ($context->controller->php_self == 'order') {
            if ( $currency == '3' ) {
            $price = Tools::convertPrice($price, 3, 2, false);
            }
            else $currency = Currency::getCurrencyInstance(2);
            } else
           {            $currency = Currency::getCurrencyInstance((int) $currency);

        /* your "else in the tutorial" was $currency = Currency::getCurrencyInstance((int)2) ; but the code shows always the currency (int)2 when we are not in orders, also when the currency chosen by the visitor is (int)1 or another currency, so I changed the code */
        }
        }

        $cldr = self::getCldr($context);

        return $cldr->getPrice($price, is_array($currency) ? $currency['iso_code'] : $currency->iso_code);
    }

 

La funzione cambia il simbolo della valuta, nella fase di ordine, alla valuta che vorrei, ma non cambia di una virgola il prezzo.

Il problema si pone perchè ho un modulo di pagamento che non accetta valute diverse dall'euro, o meglio, se la merce è pari a 100 dollari o 100 pound, quando viene inviato l'ordine ed il cliente procede con il pagamento, il modulo di pagamento fa pagare al cliente e processa sempre 100 euro (come se non ricevesse info sulla valuta....succede solo con questo modulo, non è un problema del negozio, e purtroppo devo utilizzarlo / non ho scelta in merito al modulo).

Potrei cambiare il codice del modulo di pagamento, ma credo sarebbe più "complicato" e non sono neanche certo che sia possibile, quindi sto cercando di cambiare la fase finale dell'ordine affinchè sia sempre in euro. 

Grazie a chi vorrà darmi una mano!

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...