我想通过向页面添加一个 block (无需复制和更改模板页面)来向结帐成功页面添加一些信息。
我查看了可下载模块并尝试复制它,但没有成功。 我有一个自定义模块,我尝试这样做:
1) 添加 block 文件到: ...\app\code\local\SHANI\MyModule\Block\checkout\Details.php
class SHANI_MyModule_Block_Checkout_Details extends Mage_Checkout_Block_Onepage_Success
{
}
2) 添加模板文件到: ...\app\design\frontend\default\default\template\mymodule\checkout\details.phtml
<?php
echo "test ffdagdf";
?>
3) 将 block 添加到:...\app\design\frontend\default\default\layout\mymodule.xml
<default>
</default>
....
....
....
<checkout_onepage_success>
<reference name="checkout.success">
<block type="mymodule/checkout_success" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
是这样做的方法吗?我错过了什么?
/////////////////////////////////////更新//////////////////////////////////////
我试过像 Lrrr 写的那样更改 mymodule.xml 但仍然没有成功......
<checkout_onepage_success>
<reference name="checkout.success">
<block type="mymodule/checkout_details" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
任何其他想法是什么问题?
我正在尝试对产品 View 页面做同样的事情,并且我能够向“product.info.additional”添加一个 block 但不是“product.info”。
这是有效的:
<catalog_product_view>
<reference name="product.info.additional">
<block type="catalog/product_view" name="mymodule.saledetails" before="-" template="mymodule/product/details.phtml"/>
<block type="mymodule/product_participant_list" name="mymodule.participants" before="-" template="mymodule/product/participant/list.phtml"/>
</reference>
</catalog_product_view>
但这不是
<catalog_product_view>
<reference name="product.info">
<block type="catalog/product_view" name="mymodule.saledetails" before="-" template="mymodule/product/details.phtml"/>
</reference>
<reference name="product.info.additional">
<block type="mymodule/product_participant_list" name="mymodule.participants" before="-" template="mymodule/product/participant/list.phtml"/>
</reference>
</catalog_product_view>
我正在尝试将此 block 从“product.info.additional”移动到“product.info”,因为我想在下面显示此 block 快速概览(在默认模板中)而不是在详细信息下。 为什么它在“product.info”下不起作用?
最佳答案
尝试在成功页面布局中引用内容 block
<checkout_onepage_success>
<reference name="content">
<block type="mymodule/checkout_success" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
取而代之的是 checkout.success,您可能需要在模板中调用 $this->getChildHtml('yourblockname')
或将 output="toHtml"
添加到您的 block 中在布局中
关于php - Magento - 如何将自定义 block 添加到结帐成功页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518293/