Create di.xml file at /app/code/Vendor/Module/etc/frontend/di.xml
:
<type name="Magento\Catalog\Block\Product\ListProduct">
<plugin name="block-product-list" type="Vender\Module\Plugin\ProductList"/>
</type>
Create Plugin file ProductList.php at /app/code/Vendor/Module/Plugin
:
<?php
namespace Vender\Module\Plugin;
class ProductList
{
protected $layout;
public function __construct(
\Magento\Framework\View\LayoutInterface $layout
) {
$this->layout = $layout;
}
public function aroundGetProductDetailsHtml(
\Magento\Catalog\Block\Product\ListProduct $subject,
\Closure $proceed,
\Magento\Catalog\Model\Product $product
) {
return $this->layout->createBlock('Vendor\Moduele\Block\YourBlock')->setProduct($product)->setTemplate('Vendor_Module::yourPhtml.phtml')->toHtml();
}
}
UPDATE :
For display in catalog search also you need to create
<virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct">
<plugin name="block-product-list" type="Vendor\Module\Plugin\ProductList" />
</virtualType>
Clean cache and refresh page.