Usually, the norm is to have the currency symbol on the left side of the amount. However, there are merchants who wish to have the currency symbol on the right side of the amount.
While speaking English, we speak “twenty dollars” (20$). Therefore, using the dollar sign after the amount is preferred.
Placing the amount and symbol in the order as we speak can also be acceptable.
The default Magento 2 shows the currency symbol on the left side. However, it does not have a feature to change the currency location from left to right.
Hence, I’ve come up with a programmatic solution to change currency symbol position in Magento 2.
Solution to Change Currency Symbol Position in Magento 2
1. Create events.xml file at app/code/vendor/Exenstion/etc/frontend
<?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="change_currency_position" instance="vendor\Exenstion\Observer\ChangeCurrencyPosition"/> </event> </config>
2. Create ChangeCurrencyPosition.php file at app/code/vendor/Exenstion/Observer
<?php namespace vendor\Exenstion\Observer; use Magento\Framework\Event\ObserverInterface; class ChangeCurrencyPosition implements ObserverInterface { public function execute(\Magento\Framework\Event\Observer $observer) { $currencyOptions = $observer->getEvent()->getCurrencyOptions(); $currencyOptions->setData('position', \Magento\Framework\Currency::RIGHT); return $this; } }
That’s it.
Do consider sharing this post with the Magento Community via social media.
Thank you.