I'm trying to hide prices and "add to shopping cart" for guests. To do that I need to check whether the customer is logged in or not. There are no predefined methods in the Catalog Widget block so I need to extend the class via preference. I've successfully extended the block `Magento\Catalog\Block\Product\ListProduct` but `Magento\CatalogWidget\Block\Product\ProductsList` is trickier. When I try it, I get `main.CRITICAL: Invalid template file: 'product/widget/content/grid.phtml' in module: 'Vendor_Namespace' block's name: 'product\productslist_0'` in system.log. Any solutions to this? # Edit This is the contents of the di.xml file: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="Magento\CatalogWidget\Block\Product\ProductsList" type="Vendor\Namespace\Block\Product\ProductsList" /> </config> This is the contents of the ProductsList.php file: <?php namespace Vendor\Namespace\Block\Product; class ProductsList extends \Magento\CatalogWidget\Block\Product\ProductsList { protected $_httpContext; public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility, \Magento\Framework\App\Http\Context $httpContext, \Magento\Rule\Model\Condition\Sql\Builder $sqlBuilder, \Magento\CatalogWidget\Model\Rule $rule, \Magento\Widget\Helper\Conditions $conditionsHelper, array $data = [] ) { $this->_httpContext = $httpContext; parent::__construct( $context, $productCollectionFactory, $catalogProductVisibility, $httpContext, $sqlBuilder, $rule, $conditionsHelper, $data ); } protected function _construct() { parent::_construct(); // Tested, but does not work // $this->setTemplate('Vendor_Namespace::product/widget/content/grid.phtml'); } public function isCustomerLoggedIn() { return $this->_httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH); } }