Preisformat von 30,00 RON auf 30,00 RON ändern


7

Ich versuche diese Änderung zu erreichen. Ich habe überall gesucht und nichts gefunden. Ist es möglich, das Preisformat neu zu ordnen?


Haben Sie versucht, den Block zu ändern, um den Preis zu erhalten?
Julien Lachal

Haben Sie mehrere Geschäfte oder nur ein Geschäft?
Rakesh Jesadiya

Antworten:


4

Wir sollten event verwenden currency_display_options_forming:

app / code / Vendor / Module / etc / events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="currency_display_options_forming">
        <observer name="localize_currencysymbol_currency_display_options" instance="Vendor\Module\Observer\ModifyCurrencyOptions" />
    </event>
</config>

app / code / Vendor / Module / Observer / ModifyCurrencyOptions.php

<?php

namespace Vendor\Module\Observer;

use Magento\Framework\Locale\Currency;
use Magento\Framework\Event\ObserverInterface;

class ModifyCurrencyOptions implements ObserverInterface
{
    /**
     * @var \Magento\CurrencySymbol\Model\System\CurrencysymbolFactory
     */
    protected $symbolFactory;

    const RIGHT = 16;

    /**
     * @param \Magento\CurrencySymbol\Model\System\CurrencysymbolFactory $symbolFactory
     */
    public function __construct(\Magento\CurrencySymbol\Model\System\CurrencysymbolFactory $symbolFactory)
    {
        $this->symbolFactory = $symbolFactory;
    }

    /**
     * Generate options for currency displaying with custom currency symbol
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return $this
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $baseCode = $observer->getEvent()->getBaseCode();
        $currencyOptions = $observer->getEvent()->getCurrencyOptions();
        $originalOptions = $currencyOptions->getData();
        $currencyOptions->setData($this->getCurrencyOptions($baseCode, $originalOptions));

        return $this;
    }

    /**
     * Get currency display options
     *
     * @param string $baseCode
     * @param array $originalOptions
     * @return array
     */
    protected function getCurrencyOptions($baseCode, $originalOptions)
    {
        $currencyOptions = [];

        if ($baseCode == 'RON') {

            $currencyOptions['position'] = self::RIGHT; // switch currency symbol position to the RIGHT
        }

        return array_merge($originalOptions, $currencyOptions);
    }
}

Schauen Sie sich hier das Vendor / Magento / Modul-Währungssymbol und ein gutes Beispielmodul an .


Wie füge ich ein Leerzeichen zwischen Preis und Symbol hinzu? Gibt es eine Chance?
Jafar Pinjar

0
  1. Wechseln Sie von Ihrem Stammordner zu vendor / magento / zendframework1 / library / Zend / Locale / Data / en.xml
  2. Suchen Sie die Sprachdatei. In meinem Fall en.xml
  3. Suchen <currencyFormat>

Eine Zeile direkt darunter finden Sie die <pattern>

Ändern Sie die Seite des seltsamen Symbols und lassen Sie es so:

Vor

<currencyformatlength>
   <currencyformat>
      <pattern>¤ #,##0.00</pattern>
   </currencyformat>
</currencyformatlength>

Nach

<currencyformatlength>
   <currencyformat>
       <pattern>#,##0.00 ¤</pattern>
   </currencyformat>
</currencyformatlength>

2
Wie kann man diese Datei überschreiben?
Rakesh Jesadiya

1
Es kommt auch in magento2, aber wie man es überschreibt, wissen Sie, Anbieter / magento / zendframework1 / Bibliothek / Zend / Gebietsschema / Daten
Rakesh Jesadiya
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.