我在Magento 2中创建了一个自定义模块。在该模块中,我想在产品页面上显示一些横幅,倒数计时器和其他详细信息,还在类别页面上显示标签或文本。为此,我扩展了目录销售规则模块。根据我的要求添加了一些额外的字段。现在,我想显示所有已应用销售规则的产品ID,以及所有其他详细信息,例如根据销售等排名最高的横幅广告,倒数计时器等。
我的阻止代码是
<?php
namespace Custom\Sales\Block;
class Flash extends \Magento\Framework\View\Element\Template
{
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\CatalogRule\Model\ResourceModel\Rule\CollectionFactory $ruleFactory,
array $data = []
) {
$this->_ruleFactory = $ruleFactory;
parent::__construct($context, $data);
}
public function getCatalogeRuleId()
{
$catalogRuleCollection = $this->_ruleFactory->create()
->addFieldToFilter('is_active',1);
// return $catalogRuleCollection;
$resultProductIds = [];
foreach ($catalogRuleCollection as $catalogRule) {
$productIdsAccToRule = $catalogRule->getMatchingProductIds();
// echo json_encode($productIdsAccToRule); exit;
$websiteId = $this->_storeManager->getStore()->getWebsiteId();
foreach ($productIdsAccToRule as $productId => $ruleProductArray) {
if (!empty($ruleProductArray[$websiteId])) {
$resultProductIds[$productId] = $catalogRule->getData();
}
}
return $resultProductIds;
}
}
}
现在,当我打印阵列时,我仅获得一个销售规则数据,但是我创建了3个不同的销售