Вы можете попробовать использовать плагин Magento для расширения существующей функциональности любого класса Abstract, хотя область действия функции должна быть Public. Недавно я работал над той же проблемой, в которой мне нужно исключить продукты, имеющие собственный атрибут, назначенный из списка недавно просмотренных продуктов .
Я использовал плагин для функции с именем getItemsCollection из класса с именем Magento \ Reports \ Block \ Product \ AbstractProduct, используя следующий синтаксис:
file: app \ code \ Package \ Module \ etc \ frontend \ di.xml
<type name="Magento\Reports\Block\Product\AbstractProduct">
<plugin name="Package_Module::aroundGetItemsCollection" type="Package\Module\Block\Viewed" sortOrder="20"/>
</type>
file: app \ code \ Package \ Module \ Block \ Viewed.php
public function afterGetItemsCollection(
$subject, $result
) {
$result = $result->addAttributeToFilter('skip_hire_product', [['neq' => 1], ['null' => true]], 'left');
return $result;
}
Вы можете использовать как вокруг, так и перед плагинами тоже. Надеюсь, эта работа для вас.