Webkul
Services
Technologies Bagisto QloApps
iOS Android SAP BigCommerce Wix
Trusted by
Samsung Intel Toyota Walmart Disney Nokia Nestlé Decathlon
See all customers
Back to Top
DOC

Get Controller URL in Email Template file in Magento 2

Here, we are discussing how to get a controller URL in the mail template file according to the store.

For example: If you want to add a link to the custom controller or store-wise login URL, then you can follow the given method.

Here, we write the code to send an email to a customer in which we add a customer login URL according to the store.

first, create a method that you call the email template file method to send mail :

<?php
	
	public function generateTemplate(){
	   $customerId = 4;//any customer id
	   $customerModel = $this->_objectManager->get(
             'Magento\Customer\Model\Customer'
           );
        $customer = $customerModel->load($customerId);
        $customerStoreId = $customer->getStoreId();
        //other variables which you want to pass in the template
        $emailTempVariables['store'] = $this->_storeManager->getStore($customerStoreId);
        $this->sendMail($emailTempVariables);
	}
	public function sendMail($variables){
		//code to send mail
	}
?>


Here,

$customerId is a customer ID.

$customerModel is a customer model, that holds the data of the customer which has id $customerId.

$customerStoreId is the store ID of a customer.

$emailtempvariables is an array that holds the values that you want to pass in your email template file.

sendmail is a function in which you write the code to send an email.

You can check our blog “create custom mail template in magento2“
Now, create your template file with the code:

<!--@subject Customer Account Login url mail  @-->


{{template config_path="design/email/header_template"}}

<table>
    <tr class="email-intro">
        <td>
            <p class="greeting">{{trans "Customer"}}</p>
        </td>
    </tr>
    <tr class="email-information">
        <td>
            <table class="query-details">
                <tr>
                    <td class="product-details">
                        <p>
                            {{trans
                                'Please <a href="%reset_url">Click here</a> to login.'

                                reset_url="$this.getUrl($store,'customer/account/login/')"
                            |raw}}
                        </p>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

{{template config_path="design/email/footer_template"}}

Here,

rest_url is a variable in which we get the URL according to the store, and it returns the customer login URL according to the store.

I hope this blog will help you with getting the Controller URL in the Email Template file in Magento 2. You may also check our wide range of best Magento 2 Extensions.

Please reach out to our team via a support ticket if you have any queries.

Try this and if you have any queries then just comment below 🙂

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home