0

モジュールコントローラーでトランザクションメールを送信し、magentos バックエンドで構成しようとしています。

これが私の試みです:

私のconfig.xmlで

   under config/global

    <template>
        <email>
            <customer_lowerprice_mail_toshop_template
                translate="label" module="telllowerpricelink">

                <label>The mail from the TellLowerPriceForm to the shop</label>
                <file>tellLowerPriceLink/toShopMail.html</file>
                <type>html</type>
            </customer_lowerprice_mail_toshop_template>
        </email>
    </template>

私のsystem.xmlで

<?xml version="1.0" encoding="UTF-8"?>
    <config>
    <sections>
    <customer translate="label" module="telllowerpricelink">
                <groups>
                    <lowerprice_mail translate="label">
                        <label>Emails to tell a lower price</label>
                            <frontend_type>text</frontend_type>
                                <sort_order>5</sort_order>
                                <show_in_default>1</show_in_default>
                                <show_in_website>0</show_in_website>
                                <show_in_store>0</show_in_store>
                                <fields>
                                    <toshop_template translate="label">
                                        <label>Template for the lower price mail which will be sent to the shop</label>
                                        <frontend_type>select</frontend_type>
                                        <source_model>adminhtml/system_config_source_email_template</source_model>
                                        <sort_order>3</sort_order>
                                        <show_in_default>1</show_in_default>
                                        <show_in_website>1</show_in_website>
                                        <show_in_store>1</show_in_store>
                                    </toshop_template>
                                </fields>
                            </lowerprice_mail>
                        </groups>
                    </customer>
                </sections>
            </config>

私のinstall-0.1.0.phpで

$configValuesMap = array(
        'customer/lowerprice_mail/toshop_template' =>
        'customer_lowerprice_mail_toshop_template',
);

foreach ($configValuesMap as $configPath=>$configValue) {
    $installer->setConfigData($configPath, $configValue);
}

そして最後に私のコントローラー:

    $this->toShopTemplateId = Mage::getStoreConfig('customer/lowerprice_mail/toshop_template');
    var_dump($this->toShopTemplateId);
// output: customer_lowerprice_mail_toshop_template

    $this->toShopSubject = 'my test subject';

        /* Will be set with the submitted mailaddress of the user */
    $this->toShopSender = 'test@me.com';
    $this->toShopRecipients = 'test2@me.com';
    $toShopMailVars = Array(
    );

    /* instantiating the mailtemplatemodel and sending it */
    $toShopMail = Mage::getModel('core/email_template')
            ->setTemplateSubject($this->toShopSubject);
    var_dump($toShopMail->getId());
    //output: NULL

では、構成フィールドの magento バックエンドに表示される ID を持つトランザクション メール テンプレートを取得できないのはなぜですか? 申し訳ありませんが、それは明らかです

どうもありがとう

4

1 に答える 1

4

sendTransactional メソッドを使用する必要があります。お気に入り:

$mail = Mage::getModel('core/email_template');
$mail->setDesignConfig(array('area' => 'frontend', 'store' => Mage::app()->getStore()->getId()))
     ->sendTransactional(
                        Mage::getStoreConfig('customer/lowerprice_mail/toshop_template'),
                        $sender,
                        $email,
                        null,
                        array(
//params array
                ));
于 2013-01-30T23:46:28.317 に答える