Hey Guys,
since I use Magento ver. 2.1.7. I Want to add a simple Text under every price in the frontend.
The Text has to inform the customer, that the price includes 19% Taxes and has to include a link to the shippingcosts page. I need to do that, so my site fits to the german laws.
Can anybody help me with this issue, I'm struggling since a week to solve this problem.
Thank you in advance!
Solved! Go to Solution.
Method - 1: If you want to display custom text only in product view page, then create catalog_product_view.xml in your custom theme
app/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xml
<?xml version="1.0" ?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceContainer name="product.info.main"> <block class="Magento\Framework\View\Element\Template" name="custom.text" template="Magento_Catalog::view/customtext.phtml" after="product.info.price"/> </referenceContainer> </body> </page>
Now create customtext.phtml and add your custom text
app/design/frontend/Vendor/theme/Magento_Catalog/templates/view/customtext.phtml
Now flush the cache and check
Method - 2: If you want to display custom text after price at everywhere then override final_price.phtml
FROM
vendor/magento/module-catalog/view/base/templates/product/price/final_price.phtml
TO
app/design/frontend/Vendor/theme/Magento_Catalog/templates/product/price/final_price.phtml
Method - 3: Last and the most simple way to do it with CSS
.product-info-price .price:after { content: 'Custom Text'; }
If Issue Solved, Click Kudos/Accept As solutions.
Method - 1: If you want to display custom text only in product view page, then create catalog_product_view.xml in your custom theme
app/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xml
<?xml version="1.0" ?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceContainer name="product.info.main"> <block class="Magento\Framework\View\Element\Template" name="custom.text" template="Magento_Catalog::view/customtext.phtml" after="product.info.price"/> </referenceContainer> </body> </page>
Now create customtext.phtml and add your custom text
app/design/frontend/Vendor/theme/Magento_Catalog/templates/view/customtext.phtml
Now flush the cache and check
Method - 2: If you want to display custom text after price at everywhere then override final_price.phtml
FROM
vendor/magento/module-catalog/view/base/templates/product/price/final_price.phtml
TO
app/design/frontend/Vendor/theme/Magento_Catalog/templates/product/price/final_price.phtml
Method - 3: Last and the most simple way to do it with CSS
.product-info-price .price:after { content: 'Custom Text'; }
If Issue Solved, Click Kudos/Accept As solutions.
Thank you very much! This solved all my problems!
okay, I tried to display the Text in the product listing page also, but method 2 won't work for me :/
Hello Prince I've been able to create a custom attribute and place the price under the text my issue is getting the attribute inline with the price like so.
Is there a way to add a custom attribute here
Magento/Catalog/Templates/Product/Price/Amount/Default.phtml
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ // @codingStandardsIgnoreFile ?> <?php /** @var \Magento\Framework\Pricing\Render\Amount $block */ ?> <span class="price-container <?= /* @escapeNotVerified */ $block->getAdjustmentCssClasses() ?>" <?= $block->getSchema() ? ' itemprop="offers" itemscope itemtype="http://schema.org/Offer"' : '' ?>> <?php if ($block->getDisplayLabel()): ?> <span class="price-label"><?= /* @escapeNotVerified */ $block->getDisplayLabel() ?></span> <?php endif; ?> <span <?php if ($block->getPriceId()): ?> id="<?= /* @escapeNotVerified */ $block->getPriceId() ?>"<?php endif;?> <?= ($block->getPriceDisplayLabel()) ? 'data-label="' . $block->getPriceDisplayLabel() . $block->getPriceDisplayInclExclTaxes() . '"' : '' ?> data-price-amount="<?= /* @escapeNotVerified */ $block->getDisplayValue() ?>" data-price-type="<?= /* @escapeNotVerified */ $block->getPriceType() ?>" class="price-wrapper <?= /* @escapeNotVerified */ $block->getPriceWrapperCss() ?>"> <?= /* @escapeNotVerified */ $block->formatCurrency($block->getDisplayValue(), (bool)$block->getIncludeContainer()) ?> </span> /* If Code added here it falls in-line */ <?php if ($block->hasAdjustmentsHtml()): ?> <?= $block->getAdjustmentsHtml() ?> <?php endif; ?> <?php if ($block->getSchema()): ?> <meta itemprop="price" content="<?= /* @escapeNotVerified */ $block->getDisplayValue() ?>" /> <meta itemprop="priceCurrency" content="<?= /* @escapeNotVerified */ $block->getDisplayCurrencyCode() ?>" /> <?php endif; ?> </span>
Any suggestions?
How to apply this condition for all pages?
@Prince Patel I just created a static cms block, how to call this into below product price?
app/design/frontend/Codazon/fastest/grocery_gourmet/Magento_Catalog/layout/catalog_product_view.xml
<referenceContainer name="content"> <block class="Magento\Cms\Block\Block" name="block_identifier"> <arguments> <argument name="block_id" xsi:type="string">usa_delivery_message</argument> </arguments> </block> </referenceContainer>
The text display but displayed at bottom of the description box, how to show below the price?
@Prince Patel I am created a custom static CMS Block and call from the product page, how can i exactly place under price but currently showing under description box.
Path : app/design/frontend/Codazon/fastest/grocery_gourmet/Magento_Catalog/layout/catalog_product_view.xml
code: (custom code added Botton of the code - usa_delivery_message )
<?xml version="1.0"?> <!-- /** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <move element="product.info.sku" destination="page.main.title" /> <move element="product.info.review" destination="page.main.title" after="product.info.sku"/> <move element="product.info.stock.sku" destination="product.info.main" after="page.main.title"/> <referenceBlock name="catalog.leftnav" remove="true"/> <move element="product.info.overview" destination="product.info.main" after="product.info.review" /> <referenceBlock name="product.info.overview" template="product/view/short_description.phtml"> <arguments> <argument name="at_call" xsi:type="string">getShortDescription</argument> <argument name="at_code" xsi:type="string">short_description</argument> <argument name="css_class" xsi:type="string">overview</argument> <argument name="at_label" translate="true" xsi:type="string">Overview</argument> <argument name="title" translate="true" xsi:type="string">Overview</argument> <argument name="add_attribute" xsi:type="string">itemprop="description"</argument> </arguments> </referenceBlock> <referenceBlock name="product.info.addto"/> <move element="product.info.addto" destination="product.info" after="-" /> <referenceContainer name="product.info.social"> <block class="Magento\Catalog\Block\Product\View" name="product.info.social.links" as="social" template="product/view/social.phtml" after="-" /> </referenceContainer> <referenceContainer name="product.info"> <container name="product.info.staticblock" label="Product Static Block" htmlTag="div" htmlClass="product-info-staticblock" before="-" /> </referenceContainer> <referenceContainer name="content"> <container name="product.main.content" htmlTag="div" htmlClass="product-main-content" before='-'></container> </referenceContainer> <referenceContainer name="product.main.content"> <container name="product.info.row" htmlTag="div" htmlClass="row"> <container name="product.info.left" label="Product Content Left" htmlTag="div" htmlClass="product-info-left col-sm-19" /> <container name="product.info.right" label="Product Content Right" htmlTag="div" htmlClass="product-info-right col-sm-5" /> </container> </referenceContainer> <move element="product.info.media" destination="product.info.left" before='-'/> <move element="product.info.main" destination="product.info.left" /> <referenceContainer name="content"> <block class="Magento\Cms\Block\Block" name="block_identifier" after="product.info.price"> <arguments> <argument name="block_id" xsi:type="string">usa_delivery_message</argument> </arguments> </block> </referenceContainer> <move element="block.identifier" destination="product.info.main" after="product.info.price"/> </body> </page>
Now display under https://i.imgur.com/VjKTKQp.png