如何在 Magento 2 中获取当前产品和当前类别
产品名称、产品 ID、产品价格或类别 URL 等信息对于任何 Magento 2 在线商家都至关重要,因为它使他们能够更好地访问足够的信息来实施合适的业务策略。
在 Magento 2 中获取当前产品和当前类别的 3 个步骤
- 第 1 步:声明
Example_HelloWorld
- 第二步:打印出模板
phtml
文件中当前的产品 - 第三步:打印出模板
phtml
文件中当前的类别
步骤1:在Mageplaza_HelloWorld中声明
您将使用模块 Example_HelloWorld的块类,然后可能\Magento\Framework\Registry
在模块块类的构造函数中注入 的对象。
app/code/Example/HelloWorld/Block/HelloWorld.php
<?php
namespace Example\HelloWorld\Block;
class HelloWorld 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 getCurrentCategory()
{
return $this->_registry->registry('current_category');
}
public function getCurrentProduct()
{
return $this->_registry->registry('current_product');
}
}
?>
步骤2:在模板phtml
文件中获取当前产品
当前产品包括以下信息:名称、SKU、最终价格、URL 和关联的类别 ID。当前类别带有名称和网址等信息。现在请运行命令打印出当前产品和当前类别。
$myBlock = \Magento\Framework\App\ObjectManager::getInstance()->get('Example\HelloWorld\Block\HelloWorld');
// print current product data
if ($currentProduct = $myBlock->getCurrentProduct()) {
echo $currentProduct->getName() . '<br />';
echo $currentProduct->getSku() . '<br />';
echo $currentProduct->getFinalPrice() . '<br />';
echo $currentProduct->getProductUrl() . '<br />';
print_r ($currentProduct->getCategoryIds()) . '<br />';
}
步骤3:获取模板phtml
文件中当前的类别
$myBlock = \Magento\Framework\App\ObjectManager::getInstance()->get('Example\HelloWorld\Block\HelloWorld');
// print current category data
if ($currentCategory = $myBlock->getCurrentCategory()) {
echo $currentCategory->getName() . '<br />';
echo $currentCategory->getUrl() . '<br />';
}
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。