Cách tạo tiêu đề email tùy chỉnh


18

Tôi thấy trong email giao dịch Mẫu đơn đặt hàng mới, có thẻ này gọi tệp html tiêu đề nằm trong app/locale/en_US/template/email/html

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

Tôi muốn tạo một tiêu đề mới vì vậy tôi đã tạo tệp mới app/local/en_US/template/email/html/header2.htmlvà sử dụng mã

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

Nhưng nó không hoạt động. Với mã này, không có tiêu đề được bao gồm trong email. Bất kỳ ý tưởng tại sao hoặc cách thích hợp để tạo một tiêu đề email tùy chỉnh là gì?


1
Bạn có tiêu đề được xác định theo đường dẫn cấu hình khôngdesign/email/header2
David Manners

Vâng tôi đồng ý. Tôi tin rằng con đường chính xác là. ứng dụng / cục bộ / en_US / mẫu / email / html / header2.html.
Justin Lok

Câu trả lời:


2

Bạn cũng có thể triển khai Magento mặc định của lớp để hoạt động với nhiều (đầu trang và chân trang).

Tạo tập tin:

ứng dụng / cục bộ / Mage / adminhtml / Model / System / Config / Source / Email / Template.php

<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magento.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_Adminhtml
 * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */


/**
 * Adminhtml config system template source
 *
 * @category   Mage
 * @package    Mage_Adminhtml
 * @author      Magento Core Team <core@magentocommerce.com>
 */
class Mage_Adminhtml_Model_System_Config_Source_Email_Template extends Varien_Object
{
    /**
     * Config xpath to email template node
     *
     */
    const XML_PATH_TEMPLATE_EMAIL = 'global/template/email/';

    /**
     * Generate list of email templates
     *
     * @return array
     */
    public function toOptionArray()
    {
        if(!$collection = Mage::registry('config_system_email_template')) {
            $collection = Mage::getResourceModel('core/email_template_collection')
            ->load();

            Mage::register('config_system_email_template', $collection);
        }
        $options = $collection->toOptionArray();
        $templateName = Mage::helper('adminhtml')->__('Default Template from Locale');
        $nodeName = str_replace('/', '_', $this->getPath());

        // Implementation for various templates config.
        $templatesNodes = Mage::app()->getConfig()->getNode('global/template/email');
        if(count($templatesNodes)) {
            foreach($templatesNodes as $nodes) {
                foreach($nodes as $code => $config) {
                    if(strpos($code, $nodeName) !== false) {
                        $templateLabelNode = Mage::app()->getConfig()->getNode(self::XML_PATH_TEMPLATE_EMAIL . $code . '/label');
                        if ($templateLabelNode) {
                            $templateName = Mage::helper('adminhtml')->__((string)$templateLabelNode);
                            $templateName = Mage::helper('adminhtml')->__('%s (Default Template from Locale)', $templateName);
                        }
                        array_unshift(
                            $options,
                            array(
                                'value'=> str_replace('/', '_', $code),
                                'label' => $templateName
                                )
                            );
                    }
                }
            }
        }

        return $options;
    }

}

Sau đó, trong mô-đun tùy chỉnh của bạn, bạn có thể sử dụng như trong ví dụ sau trong tệp config.xml của mình:

<global>
    <template>
            <email>
                <design_email_header_custom_black translate="label" module="custom_module">
                    <label>Email - Header (CUSTOM BLACK)</label>
                    <file>html/header-custom-black.html</file>
                    <type>text</type>
                </design_email_header_custom_black>
                <design_email_header_custom_white translate="label" module="custom_module">
                    <label>Email - Header (CUSTOM WHITE)</label>
                    <file>html/header-custom-white.html</file>
                    <type>text</type>
                </design_email_header_custom_white>
                <design_email_footer_custom_black translate="label" module="custom_module">
                    <label>Email - Footer (CUSTOM BLACK)</label>
                    <file>html/footer-custom-black.html</file>
                    <type>text</type>
                </design_email_footer_custom_black>
                <design_email_footer_custom_white translate="label" module="custom_module">
                    <label>Email - Footer (CUSTOM WHITE)</label>
                    <file>html/footer-custom-white.html</file>
                    <type>text</type>
                </design_email_footer_custom_white>
            </email>
        </template>
</global>

Vì vậy, bạn có các tùy chọn này để chọn từ:

Hệ thống> Cấu hình> Thiết kế> Email giao dịch


1

Điều này có thể giúp giải thích nó:
Sử dụng nhiều chân trang cho email

Những gì họ yêu cầu:

Sử dụng nhiều chân trang cho email

bỏ phiếu 1 xuống phiếu yêu thích Có thể sử dụng nhiều chân trang cho Email giao dịch không?

Vì vậy, tôi muốn sử dụng một chân trang cụ thể cho một email đặt hàng mới và một chân trang khác cho email gửi hàng.

Tôi hiện đang tải chân trang với dòng này: {{template config_path = "design / email / footer"}}

Làm cách nào tôi có thể tải một mẫu cụ thể trong email giao dịch?


1

thiết kế / email / tiêu đề Điều này đề cập đến tùy chọn cấu hình KHÔNG phải là mẫu.

Bạn có thể tạo một mô-đun mới để thêm tùy chọn như vậy.

<config>
    <sections>
        <design>
            <groups>
                <email>
                    <fields>
                        <header2 translate="label">
                            <label>Email Header Template 2</label>
                            <frontend_type>select</frontend_type>
                            <source_model>adminhtml/system_config_source_email_template</source_model>
                            <sort_order>30</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                        </header2>

Hoặc chỉ cần tạo một khối tĩnh CMS mới và sau đó chèn nó lên trên nội dung email của bạn như vậy.

{{block type="cms/block" block_id="email-header-sales" }}

Thay thế.

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

Tôi cần phải cho phép cms/blocktrong Hệ thống -> Quyền -> khối
Collin Anderson

1

Ngoài ra, bạn cần sửa đổi mã trong app/code/core/Mage/Core/etc/config.xml

<global>
    <template>
            <email>
                <design_email_header translate="label" module="core">
                    <label>Email - Header</label>
                    <file>html/header2.html(your file name)</file>
                    <type>text</type>
                </design_email_header>

Thay vì làm điều này trong tệp lõi, hãy thử làm điều này trong mô-đun tùy chỉnh của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.