Magento paypal 快递评论页面和协议

Posted

技术标签:

【中文标题】Magento paypal 快递评论页面和协议【英文标题】:Magento paypal express review page and agreements 【发布时间】:2015-10-13 07:33:37 【问题描述】:

目前我正在尝试对 Magento 的 Paypal Express 扩展进行一些更改。我正在尝试删除评论页面,因为它没有必要。

这里已经描述了它是如何完成的: Magento: easy way to remove "paypal/express/review" step

但当您启用协议时,它将不起作用。 这就是问题所在:

app/code/core/Mage/Paypal/Controller/Express/Abstract.php 

第 314 到 316 行必须取消注释

if (array_diff($requiredAgreements, $postedAgreements)) 
   Mage::throwException(Mage::helper('paypal')->__('Please agree to all the terms and conditions before placing the order.'));

 

app/code/community/Sandfox/RemovePaypalExpressReviewStep/etc/config.xml 

 

<?xml version="1.0"?>
<config>
    <modules>
        <Sandfox_RemovePaypalExpressReviewStep>
            <version>0.1.0</version>
        </Sandfox_RemovePaypalExpressReviewStep>
    </modules>
    <global>
        <models>
            <sandfox_removepaypalexpres-s-reviewstep>
                <class>Sandfox_RemovePaypalExpressReviewStep_Model</class>
            </sandfox_removepaypalexpres-s-reviewstep>
            <paypal>
                <rewrite>
                    <config>Sandfox_RemovePaypalExpressReviewStep_Model_Config</config>
                </rewrite>
            </paypal>
        </models>
        <events>
            <controller_action_predispatch_paypal_express_review>
                <observers>
                    <sandfox_removepaypalexpres-s-reviewstep>
                        <type>singleton</type>
                        <class>sandfox_removepaypalexpres-s-reviewstep/observer</class>
                        <method>controllerActionPredispatchPaypalExpressReview</method>
                    </sandfox_removepaypalexpres-s-reviewstep>
                </observers>
            </controller_action_predispatch_paypal_express_review>
        </events> 
    </global>
    <frontend>
        <routers>
            <paypal>
                <args>
                    <modules>
                         <Sandfox_RemovePaypalExpressReviewStep before="Mage_Paypal">Sandfox_RemovePaypalExpressReviewStep</Sandfox_RemovePaypalExpressReviewStep>
                    </modules>
                </args>
            </paypal>
        </routers>
    </frontend>
</config>

 

现在我尝试重写控制器(它真的是控制器吗?为什么它不在控制器中但有自己的控制器目录?)

app/code/community/Sandfox/RemovePaypalExpressReviewStep/Controller/Express/Abstract.php

 

    <?php
    include_once("Mage/Paypal/Controller/Express/Abstract.php");

    class Sandfox_RemovePaypalExpressReviewStep_Controller_Express_Abstract extends Mage_Paypal_Controller_Express_Abstract
    

        public function placeOrderAction()
        
            try 
            .
            .
            .
                //    if (array_diff($requiredAgreements, $postedAgreements)) 
                 //       Mage::throwException(Mage::helper('paypal')->__('Please agree to all the terms and conditions before placing the order.'));
                  //  
                       
            .
            .
            .       


目前重写不起作用。谁能给我一个提示?

技术: Magento 1.9.2 PHP 5.5 mysql 5.6.19

【问题讨论】:

您使用的是哪个版本的 Magento? 【参考方案1】:

在您的 config.xml 中,删除模块名称后的空格

<Sandfox_RemovePaypalExpressReviewStep before="Mage_Paypal">Sandfox_RemovePaypalExpressReviewStep </Sandfox_RemovePaypalExpressReviewStep>

应该改为

<Sandfox_RemovePaypalExpressReviewStep before="Mage_Paypal">Sandfox_RemovePaypalExpressReviewStep</Sandfox_RemovePaypalExpressReviewStep>

【讨论】:

感谢您对 Rakesh 的回复,但它并没有解决问题。 那之后你清除缓存了吗?如果是,我怀疑您在这个问题中遗漏的内容一定有问题。您可以将完整的 config.xml 文件添加到问题中吗? 是的,我清除了 Magento 后端和目录 var/cache 中的缓存。我更新了上面的 config.xml - 现在它是完整的文件。我发布了我的技术环境规范。感谢您的回复【参考方案2】:

您不能扩展 Abstract 类。你需要复制到本地/法师...

【讨论】:

以上是关于Magento paypal 快递评论页面和协议的主要内容,如果未能解决你的问题,请参考以下文章

如何将订单详细信息传递到 magento 中的 paypal-express-checkout?

Magento:移动购物车上的 Paypal Express 按钮

Magento2 - 使用 Paypal 计费协议创建自定义订单(“强制参数缺少 referenceId 错误”)

Magento:支付完成后,paypal 标准支付未重定向到 Magento 成功页面

Magento 中的 PayPal 订单自动取消

Magento2 - 使用Paypal结算协议创建自定义订单(“强制参数缺少referenceId错误”)