php - Magento 阻止 Paypal 重写

标签 php magento paypal block

我尝试从 Magento 重写核心文件。但是重写 block 后它无法访问,我不知道为什么?

我尝试重写的文件是:Mage_Paypal_Block_Standard_Redirect

xml配置(位于:app/local/Ga/etc/config.xml):

<global>
    <models>
        <ga>
            <class>Ga_Model</class>
        </ga>
    </models>
    <blocks>
        <ga>
            <class>Ga_Block</class>
        </ga>
        <paypal>
            <rewrite>
                <standard_redirect>
                    Ga_Block_Paypal_Standard_Redirect
                </standard_redirect>
            </rewrite>
        </paypal>
    </blocks>
    <helpers>
        <ga>
            <class>Ga_Helper</class>
        </ga>
    </helpers>
</global>

自定义 block (位于:app/local/Ga/Block/Paypal/Standard/Redirect.php):

class Ga_Block_Paypal_Standard_Redirect extends Mage_Paypal_Block_Standard_Redirect {
    protected function _toHtml()
    {
        return 'test';
    }
}

Paypal Controller 这样调用 block :

public function redirectAction()
{
    $session = Mage::getSingleton('checkout/session');
    $session->setPaypalStandardQuoteId($session->getQuoteId());
    $this->getResponse()->setBody($this->getLayout()->createBlock('paypal/standard_redirect')->toHtml());
    $session->unsQuoteId();
    $session->unsRedirectUrl();
}

重写后“createBlock”方法不返回任何内容。

我不知道我做错了什么。

谢谢

编辑: 我找到了解决方案。问题来自于这样一个事实:有必要像这样在一行中编写自定义 block 类:

    <blocks>
        <ga>
            <class>Ga_Block</class>
        </ga>
        <paypal>
            <rewrite>
                <standard_redirect>Ga_Block_Paypal_Standard_Redirect</standard_redirect>
            </rewrite>
        </paypal>
    </blocks>

最佳答案

遵循这个结构

<global>
<blocks>
    <paypal>
        <rewrite>
             <standard_redirect>MyNamespace_MyModule_Block_Standard_Redirect</standard_redirect>
        </rewrite>
    </paypal>
</blocks>
<global>

关于php - Magento 阻止 Paypal 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23489565/

相关文章:

java - 可以执行 JavaScript 的服务器端浏览器

javascript - 如何通过多次提交和 Laravel 路由处理 AJAX 表单提交

Magento 中的 PHP openID 集成

javascript - Magento静态 block javascript变量

php - PayPal IPN - 排队

javascript - 未捕获的类型错误 : Object [object Object] has no method 'select2'

在我的本地服务器 (Mac Snow Leopard) 上运行 PHP 和 HTML 文件时 PHP 未执行更正

json - magento中音频文件的波形

php - 付款为空后来自 paypal 响应的 $_POST

javascript - 在发布之前将信息保存在表单中