Smile\ElasticsuiteVirtualCategory\Model\Rule::getSearchQueriesByChildren PHP Method

getSearchQueriesByChildren() public method

Retrieve search queries of children categories.
public getSearchQueriesByChildren ( Magento\Catalog\Api\Data\CategoryInterface $rootCategory ) : Smile\ElasticsuiteCore\Search\Request\QueryInterface[]
$rootCategory Magento\Catalog\Api\Data\CategoryInterface Root category.
return Smile\ElasticsuiteCore\Search\Request\QueryInterface[]
    public function getSearchQueriesByChildren(CategoryInterface $rootCategory)
    {
        $queries = [];
        $childrenIds = $rootCategory->getResource()->getChildren($rootCategory, false);
        if (!empty($childrenIds)) {
            $storeId = $this->getStoreId();
            $categoryCollection = $this->categoryCollectionFactory->create()->setStoreId($storeId);
            $categoryCollection->setStoreId($this->getStoreId())->addIsActiveFilter()->addIdFilter($childrenIds)->addAttributeToSelect(['virtual_category_root', 'is_virtual_category', 'virtual_rule']);
            foreach ($categoryCollection as $category) {
                $queries[$category->getId()] = $this->getCategorySearchQuery($category);
            }
        }
        return $queries;
    }