来自 Magento 初学者的问候,我对术语和名称知之甚少,但我会努力尽可能清楚地解释这一点。
我目前正在配置 Magento Contact Form,以便能够从 Product View Page 上的用户那里收集一些数据。
更有趣的是,该表单还必须发送一些有关管理员放置在页面上的产品的数据,具体是产品名称
并非所有产品都有此表格,只有可提供不同(当前不可用)颜色和尺寸的产品。
我将 Magento 联系表复制到我的 Layout->Templates->contact->form.phtml
.将其嵌入产品页面之一,输入:<br/>
Magento Admin Panel-Catalog-Menage Categories-OneOfTheProducts-edit-<b>Custom layout update</b>
以下引用 xml:
<reference>
<block type="core/template" name="customer_request"
template="contacts/form.phtml"/>
</reference>
测试它并且它有效,管理员仍然必须在许多产品自定义布局更新文本框中放置这个 xml,但这不是这个问题的一部分。
Magento 表单包含以下字段:姓名、电子邮件、电话、评论。
但是我需要再发送一个参数给postAction
Mage_Contacts_IndexController
的行动, 即产品名称。
问题
我如何从产品页面获取联系表单中的产品名称,这个子 block 元素是否可以知道嵌入的页面内容? Magento 中是否有一些我可以使用的全局函数以及如何将此参数传递给 Controller ,我应该使用隐藏的输入字段还是...?
任何引用或代码片段对我来说都意味着一个世界
最佳答案
解决方案
在 form.phtml
中将这段代码添加到新的隐藏字段值中,它检索当前页面的 URL 键/值,然后加载传递“id”值的模型对象:
<?php $productId=$this->getRequest()->getParams();
$model = Mage::getModel('catalog/product');
$_product = $model->load($productId["id"]);
echo $_product->getName(); ?>
在引用该隐藏字段值的电子邮件模板中添加了新的 var, 这部分代码也很适合放在助手类中。
关于php - Magento,将产品名称传递给联系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011499/