Pentru a obține URL-ul curent într-un bloc sau template Magento 2, folosește getCurrentUrl() prin StoreManagerInterface injectat.
Clasa de bloc
namespace Vendor\Module\Block;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
class Test extends Template
{
private $storeManager;
public function __construct(
StoreManagerInterface $storeManager,
Context $context,
array $data = []
) {
$this->storeManager = $storeManager;
parent::__construct($context, $data);
}
public function getCurrentUrl()
{
return $this->storeManager->getStore()->getCurrentUrl();
}
}
În template (.phtml)
<?= $block->escapeUrl($block->getCurrentUrl()) ?>
Alternativ, pentru URL-ul rutei curente: $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true]). Golește cache-ul după modificări.