0

几天前我买了一个基于magento的网站。页面 website.com/service 中有一个表单,
后端的实际代码是:

{{block type="core/template" name="serviceForm" form_action="/contacts/index/service" template="contacts/form_service.phtml"}}

在前端是

<form method="post" id="contactForm" action="/contacts/index/service">

它不完全是联系表格,而是带有许多附加参数的联系表格。
我想要做的是编辑表单提交到的电子邮件地址。

如果表单操作是 /contacts/index/post/ 我可以在以下位置编辑文件

/app/code/core/Mage/Contacts/controllers/IndexController.php 

但我找不到任何可以编辑 /contacts/index/service 的文件。我认为表格正在工作,正如它告诉我的那样

您的询问已提交,我们会尽快回复。感谢您与我们联系。

提交表单后将我重定向到某个页面后。
所以我基本上想编辑电子邮件,需要你的帮助才能找到文件的位置。

@aynber 为我找到了该功能,但我似乎找不到电子邮件。

public function serviceAction()
    {
        $post = $this->getRequest()->getPost();
        if ( $post ) {
            $translate = Mage::getSingleton('core/translate');
            /* @var $translate Mage_Core_Model_Translate */
            $translate->setTranslateInline(false);
            try {
                $postObject = new Varien_Object();
                $postObject->setData($post);

                $error = false;

                if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {
                    $error = true;
                }

                if (!Zend_Validate::is(trim($post['comment']) , 'NotEmpty')) {
                    $error = true;
                }

                if (!Zend_Validate::is(trim($post['email']), 'EmailAddress')) {
                    $error = true;
                }

                if (Zend_Validate::is(trim($post['hideit']), 'NotEmpty')) {
                    $error = true;
                }

                if ($error) {
                    throw new Exception();
                }
                $mailTemplate = Mage::getModel('core/email_template');
                /* @var $mailTemplate Mage_Core_Model_Email_Template */
                $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                    ->setReplyTo($post['email'])
                    ->sendTransactional(
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
                        null,
                        array('data' => $postObject)
                    );

                if (!$mailTemplate->getSentSuccess()) {
                    throw new Exception();
                }

                $translate->setTranslateInline(true);

                Mage::getSingleton('customer/session')->addSuccess(Mage::helper('contacts')->__('Your inquiry was submitted and will be responded to as soon as possible. Thank you for contacting us.'));
                $this->_redirect('*/*/');

                return;
            } catch (Exception $e) {
                $translate->setTranslateInline(true);

                Mage::getSingleton('customer/session')->addError(Mage::helper('contacts')->__('Unable to submit your request. Please, try again later'));
                $this->_redirect('*/*/');
                return;
            }

        } else {
            $this->_redirect('*/*/');
        }
    }
4

2 回答 2

1

它应该仍然在那个文件中,它只是function serviceAction()在 IndexController.php 中。如果不存在,请查看 app/code/local 目录中的某个位置是否有相应的 IndexController.php。通常,表单从联系人下的系统配置中设置的电子邮件地址中提取。

编辑

您要更改的线路是

Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),

该地址是从系统配置中提取的。您可以硬编码电子邮件地址,或将其设置为另一个配置的电子邮件地址。

于 2013-08-12T18:37:27.077 回答
0

您应该能够在系统->配置->常规->存储电子邮件地址的管理面板中更改地址

于 2013-08-12T18:56:58.897 回答