Magento 2.3: How do I retrieve the product price in form.phtml file and assign it to an HTML attribute data-purchase-amount?

magento.stackexchange https://magento.stackexchange.com/questions/312912

  •  13-04-2021
  •  | 
  •  

Question

How do I retrieve the product price in form.phtml and assign it to an HTML attribute data-purchase-amount ="" as code snippet meant for Klarna tagline placement as seen in the file below.

<div class="product-add-form">
    <form data-product-sku="<?= $block->escapeHtmlAttr($_product->getSku()) ?>"
          action="<?= $block->escapeUrl($block->getSubmitUrl($_product)) ?>" method="post"
          id="product_addtocart_form"<?php if ($_product->getOptions()) :?> enctype="multipart/form-data"<?php endif; ?>>
        <input type="hidden" name="product" value="<?= (int)$_product->getId() ?>" />
        <input type="hidden" name="selected_configurable_option" value="" />
        <input type="hidden" name="related_product" id="related-products-field" value="" />
        <input type="hidden" name="item"  value="<?= (int)$block->getRequest()->getParam('id') ?>" />
        <?= $block->getBlockHtml('formkey') ?>
        <?= $block->getChildHtml('form_top') ?>
        <?php if (!$block->hasOptions()) :?>
            <?= $block->getChildHtml('product_info_form_content') ?>
        <?php else :?>
            <?php if ($_product->isSaleable() && $block->getOptionsContainer() == 'container1') :?>
                <?= $block->getChildChildHtml('options_container') ?>
            <?php endif;?>
        <?php endif; ?>

        <?php if ($_product->isSaleable() && $block->hasOptions() && $block->getOptionsContainer() == 'container2') :?>
            <?= $block->getChildChildHtml('options_container') ?>
        <?php endif;?>
        <?= $block->getChildHtml('form_bottom') ?>
    </form>
</div>
<div class="klarna-placement">
<!-- Placement v2 -->
<klarna-placement
  data-key="credit-promotion-badge"
  data-locale="en-US"
  data-purchase-amount=""
></klarna-placement>
<!-- end Placement -->
</div>
Was it helpful?

Solution

You have product object already. Try following simple way:

<?= $_product->getFinalPrice() ?>

[Update]

After adding following code snippet:

<div class="klarna-placement">
    <!-- Placement v2 -->
    <klarna-placement
        data-key="credit-promotion-badge"
        data-locale="en-US"
        data-purchase-amount="<?= $_product->getFinalPrice() ?>"
    ></klarna-placement>
    <!-- end Placement -->
</div>

I can see the price: enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top