1

I want to list out all invoice email templates in my custom module. I want to add one dropdown in my custom admin form.

Deepak Shinde
  • 111
  • 10

1 Answers1

1

List assume, you have form field like:

$fieldset->addField(
            'invoice_template_id', 'select', [
        'label' => __('Select Email Template'),
        'title' => __('Select Email Template'),
        'name' => 'invoice_template_id',
        'required' => true,
        'class' => 'selectopt',
        /* 'css_class' => 'hidden', */
        'values' => $this->getEmailTemplate()
            ]
    );

and write function who can get collection of invoice custom email templates:

/**
  Email Template List
 * */
public function getEmailTemplate() {
    $emailList = array();
    $collection = $this->emailTemplateCollectionFactory->create();
    foreach ($collection as $list) {
        if (($list->getOrigTemplateCode() == "sales_email_invoice_template")) {
            $emailList[$list->getTemplateId()] = $list->getTemplateCode();
        } elseif (($list->getOrigTemplateCode() == "sales_email_invoice_comment_guest_template")) {
            $emailList[$list->getTemplateId()] = $list->getTemplateCode();
        } elseif ($list->getOrigTemplateCode() == "sales_email_invoice_comment_template") {
            $emailList[$list->getTemplateId()] = $list->getTemplateCode();
        }elseif ($list->getOrigTemplateCode() == "sales_email_invoice_guest_template") {
            $emailList[$list->getTemplateId()] = $list->getTemplateCode();
        }
    }
    return $emailList;
}

It will only return Invoice related custom template list.

Pramod Kharade
  • 2,005
  • 1
  • 22
  • 41