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 🙂
Be the first to comment.