Strona 1 z 1

Język a waluta

PostNapisane: 2 sie 2013, o 15:55
przez tommyk7
Witam
Na początku napiszę że szukałem tematu ale nic nie znalazłem.
Chciałem zapytać czy jest możliwość aby OpenCart wraz z przełączaniem języka zmieniał również walutę na obowiązująca w danym kraju a dopiero później jeśli klient będzie chciał zmieni ją z domyślnej na inną ??
Dodam że mam zainstalowaną wersję OC 1.5.5.1

Re: Język a waluta

PostNapisane: 2 sie 2013, o 16:44
przez schematx.pl
edytuj plik odpowiedzialny za szablon języka catalog/view/theme/SZABLON/template/module/language.php

masz tam kod:
Kod: Zaznacz cały
<?php if (count($languages) > 1) { ?>
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data">
  <div id="language"><?php echo $text_language; ?><br />
    <?php foreach ($languages as $language) { ?>
    <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $(this).parent().parent().submit();" />
    <?php } ?>
    <input type="hidden" name="language_code" value="" />
    <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
  </div>
</form>
<?php } ?>


zamień go na:
Kod: Zaznacz cały
<?php if (count($languages) > 1) { ?>
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data">
  <div id="language"><?php echo $text_language; ?><br />
     <?php foreach ($languages as $language) {
      if($language['code'] == 'en') {
         $cur_ = 'GBP';
      }
      elseif($language['code'] == 'pl') {
         $cur_ = 'PLN';
      }
      elseif($language['code'] == 'de') {
         $cur_ = 'EUR';
      } else {
         $cur_ = 'USD';
      }
    ?>
   <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>');$('input[name=\'currency_code\']').attr('value', '<?php echo $cur_; ?>');  $(this).parent().parent().submit();" />
    <?php } ?>
    <input type="hidden" name="language_code" value="" />
    <input type="hidden" name="currency_code" value="" />
    <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
  </div>
</form>
<?php } ?>


Teraz przejdźmy do pliku kontrolera catalog/controller/module/language.php, tam znajdź linijkę:
Kod: Zaznacz cały
$this->session->data['language'] = $this->request->post['language_code'];


i doklej bezpośrednio pod nią:
Kod: Zaznacz cały
$this->currency->set($this->request->post['currency_code']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['shipping_method']);


jeśli nic nie pokaszaniłem w if/elseif to powinno działać.

Ewentualnie jest taki moduł: http://www.opencart.com/index.php?route ... 20Location który pozwala na automatyczne ustawienie języka i waluty w zalezności od ip klienta.

Re: Język a waluta

PostNapisane: 5 sie 2013, o 21:03
przez tommyk7
Dzięki wielkie.
Zaraz zabieram się do modyfikacji.

Re: Język a waluta

PostNapisane: 11 sie 2013, o 17:16
przez tommyk7
Wszystko działa z małym ale. Nad flagami języków pojawił się napis "Język", "Language" itd a tego opisu wolałbym uniknąć.
Którą część kodu należy wykasować ??

Re: Język a waluta

PostNapisane: 11 sie 2013, o 18:17
przez schematx.pl
usuń: <?php echo $text_language; ?><br />

Re: Język a waluta

PostNapisane: 11 sie 2013, o 18:45
przez tommyk7
Dzięki

Re: Język a waluta

PostNapisane: 13 wrz 2013, o 01:35
przez mireklakowski22
bardzo dobra podpowiedź, trzeba usunac <?php echo $text_language; ?><br /> mialem ten sam problem