在Magento成功付款前,限制客户查看页面


Restrict customer to view the page before successful payment Magento?

我已经在我的自定义模块中创建了一个页面,我想让该页面成功支付产品的费用后。

请建议我如何实现付款限制方法,可以检查产品的付款是否成功完成,然后相应的客户可以访问同一页面。

我很感激你的帮助。

谢谢。

对于让客户在付款成功后访问特定页面的操作,使用事件checkout_onepage_controller_success_action的观察者。

你的模块config.xml应该看起来像:

<config>
    <!-- ... -->
    <global>
        <!-- ... -->
        <events>
            <checkout_onepage_controller_success_action>
                <observers>
                    <namespace_module>
                        <class>namespace_module/observer</class>
                        <method>yourMethod</method>
                    </namespace_module>
                </observers>
            </checkout_onepage_controller_success_action>
        </events>
        <!-- ... -->
    </global>
    <!-- ... -->
</config>

/模块/模型/Observer.php创建名称空间。这个文件看起来应该像:

<?php
class Namespace_Module_Model_Observer extends Mage_Core_Helper_Abstract
{
    public function yourMethod($observer)
    {
         // Your code logic to give customer access to required page
    }
}
  1. 在模块中为事件'sales_order_payment_pay'创建一个观察者
  2. 同样在模块安装文件中创建一个新的customer属性。您可以使用本教程http://magentotutorial.org/how-to-add-new-customer-attributes-in-magento/或搜索另一个教程(您可以在google上找到许多关于如何使用模块安装属性的示例)。确保该属性在前端不可见
  3. 当客户为订单付款时,在事件函数中检查该特定产品是否在该订单中。如果是,编辑客户并在新创建的属性中添加一些值(true或任何您想要的值)。如果你需要监控多个产品,你可以在该属性中保存一个数组,通过序列化它。
  4. 查看自定义页面(控制器动作)时,检查客户属性并检查是否允许查看

您可以创建观察者并查找事件

http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/

建议事件:

sales_order_payment_place_end

sales_order_payment_capture

sales_order_payment_pay