I have added a new block to my product page. In the block i want to display the product price so I can then take that price and divide it by 3 to show monthly payments. I have tried to get the price by copying code used in other phtml files but it's not even displaying the price.
Can someone advise on what i need to do in order to get the price to show?
Here is the code i have so far in my phtml file.
<div class="klarna_calc"> <img class="klarna_logo" src="/media/Klarna_logo_bw.svg" alt="Klarna logo"/> <i class="far fa-check-circle"></i> <p>Price <?= $price = $block->escapeHtmlAttr($block->getDisplayValue()) ?> <?php echo $price; ?> </p> </div>
Using Object Manager(Not Recommended)
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');//get current product
echo $product->getPrice();
?>Using block
<?php
namespace Vendor\Module\Block;
class BlockClass extends \Magento\Framework\View\Element\Template
{
protected $registry;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
array $data = []
)
{
$this->registry = $registry;
parent::__construct($context, $data);
}
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getCurrentProduct()
{
return $this->_registry->registry('current_product');
}
}
?>
Call function in your .phtml file:
<?php
$currentProduct = $block->getCurrentProduct();
echo $currentProduct->getPrice();
?>