在成功支付Magento之前限制客户查看页面?

时间:2014-05-31 09:17:48

标签: php xml magento magento-1.7 magento-1.8

我在自定义模块中创建了一个页面,我希望在成功支付产品后再显示该页面。

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

感谢您的帮助。

感谢。

3 个答案:

答案 0 :(得分:1)

要在成功付款后让客户访问某个页面,请使用事件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>

创建名称空间/模块/ Model / 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 :(得分:0)

  1. 在您的模块中为活动创建一个观察者&#39; sales_order_payment_pay&#39;
  2. 同样在您的模块安装文件中创建一个新的客户属性。您可以使用本教程http://magentotutorial.org/how-to-add-new-customer-attributes-in-magento/或搜索其他教程(您可以在Google上找到很多关于如何使用模块安装属性的示例)。确保该元素在前端
  3. 上不可见
  4. 当客户支付订单时,在事件功能内检查该特定产品是否符合该订单。如果是,请编辑客户并在新创建的属性中添加一些值(true或任何您想要的值)。如果需要监视多个产品,可以通过序列化将数组保存在该属性中。
  5. 查看该自定义页面(控制器操作)时检查客户属性并检查是否允许他查看

答案 2 :(得分:-2)

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

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

建议事件:

sales_order_payment_place_end

sales_order_payment_capture

sales_order_payment_pay