php - Magento - 如何将自定义 block 添加到结帐成功页面

标签 php magento

我想通过向页面添加一个 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/

相关文章:

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - magento 1.9.x 'position' 列

Magento 产品属性获取值

php - 如何在没有js的情况下在magento中结帐?

php - 从 Magento 中的货件跟踪事件获取跟踪 ID

magento - 使用 "catalog/product/list.phtml"模板在指定产品 ID 下在 cms 页面上显示产品

php - 调用css、js文件的最佳方式?

php - AJAX:显示MySQL数据以及多个选择框中的值

php - "Personality quiz"风格比较[PHP]

来自 MySQL 数据库的 UTF-8 字符串的 PHP 输出编码问题