कस्टम ईमेल हेडर कैसे बनाएं


18

मैं ट्रांसेक्शनल ईमेल न्यू ऑर्डर टेम्प्लेट में देखता हूं, यह टैग है जो हेडर HTML फ़ाइल को कॉल करता है जो अंदर है app/locale/en_US/template/email/html

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

मैं एक नया हेडर बनाना चाहता हूं इसलिए मैंने नई फाइल बनाई app/local/en_US/template/email/html/header2.htmlऔर कोड का उपयोग किया

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

लेकिन यह काम नहीं करता है। इस कोड के साथ, ईमेल में कोई हेडर शामिल नहीं है। कोई भी विचार क्यों या कस्टम ईमेल हेडर बनाने का उचित तरीका क्या है?


1
क्या आपके पास विन्यास पथ के तहत परिभाषित हैडर हैdesign/email/header2
डेविड मैनर्स

हां मैं करता हूं। मेरा मानना ​​है कि सही रास्ता है। एप्लिकेशन / स्थानीय / en_US / टेम्पलेट / ईमेल / html / header2.html।
जस्टिन लोक

जवाबों:


2

आप कई (हेडर और फ़ुटर) के साथ काम करने के लिए वर्ग डिफ़ॉल्ट मैगनेटो को भी लागू कर सकते हैं।

फ़ाइल बनाएँ:

एप्लिकेशन / स्थानीय / दाना / Adminhtml / मॉडल / सिस्टम / कॉन्फ़िग / स्रोत / ईमेल / 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;
    }

}

फिर अपने कस्टम मॉड्यूल में, आप अपने config.xml में निम्न उदाहरण के रूप में उपयोग कर सकते हैं:

<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>

तो आपके पास इन विकल्पों में से चयन करने के लिए है:

सिस्टम> कॉन्फ़िगरेशन> डिज़ाइन> ट्रांजेक्शनल ईमेल


1

इससे इसे समझाने में मदद मिल सकती है:
ईमेल के लिए कई पाद का उपयोग करें

जो वे पूछते हैं:

ईमेल के लिए कई पाद का उपयोग करें

अप वोट 1 नीचे वोट पसंदीदा क्या ट्रांजेक्शनल ईमेल के लिए कई फुटर्स का उपयोग करना संभव है?

इसलिए मैं एक नए ऑर्डर ईमेल के लिए एक विशिष्ट पाद लेख, और शिपमेंट ईमेल के लिए एक अन्य पाद लेख का उपयोग करना चाहता हूं।

मैं वर्तमान में इस लाइन के साथ पाद लेख लोड कर रहा हूं: {{टेम्पलेट config_path = "डिज़ाइन / ईमेल / पाद लेख"}}

मैं लेन-देन ईमेल में एक विशिष्ट टेम्पलेट कैसे लोड कर सकता हूं?


1

डिजाइन / ईमेल / हेडर यह विन्यास विकल्प को दर्शाता है कि टेम्पलेट को।

आप इस तरह के विकल्प को जोड़ने के लिए एक नया मॉड्यूल बना सकते हैं।

<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>

वैकल्पिक रूप से बस एक नया CMS स्टैटिक ब्लॉक बनाएं और फिर इसे अपनी ईमेल सामग्री के ऊपर डालें।

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

जगह।

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

मुझे cms/blockसिस्टम के तहत अनुमति देने की आवश्यकता थी -> अनुमतियाँ -> ब्लॉक
कॉलिन एंडरसन

1

साथ ही आपको कोड को संशोधित करना होगा 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>

कोर फ़ाइल में ऐसा करने के बजाय, अपने कस्टम मॉड्यूल में ऐसा करने का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.