1

我正在 Magento atm 中构建自己的结帐方法。我创建了一个 PHP 脚本,该脚本具有在将订单详细信息填写到我的自定义付款页面后重定向用户的功能。该脚本本身正在运行,但它在订购过程的早期被触发。启用后,当用户单击“去结帐按钮”而不填写订单详细信息时,他或她会立即被重定向。因此,Magento 看到了我的 PHP 脚本,并且该方法立即被触发(我正在使用 _contruct 方法)。

所以现在是以下过程:用户选择产品 -> 用户进入购物篮 -> 用户点击结帐 -> 用户被重定向。

我希望它如下:用户选择产品->用户进入购物篮->用户单击结帐->用户填写订单详细信息并选择我的送货方式(如果愿意)->用户单击“完成订单并付款” -> 用户被重定向,因为现在脚本已执行。

我对我的 PHP 脚本使用以下语法:

 public function __construct()
{ my PHP code here with the redirect };

当用户完成选择送货地址、账单地址并选择我的付款方式后,如何执行 PHP 脚本?

4

1 回答 1

2

下订单后,您可以使用 magento 的事件/观察者方法来做某事。

你可以使用这个事件sales_order_place_after

只需创建一个模块来监听 magento 观察者/事件。

在您的 /app/code/local/{namespace}/{yourmodule}/etc/config.xml 中:

<config>
        ...
        <frontend>
            ...
            <events>
                <sales_order_place_after>
                    <observers>
                        <unique_event_name>
                            <class>{{modulename}}/observer</class>
                            <method>your function name</method>
                        </unique_event_name>
                    </observers>
                </sales_order_place_after>
            </events>
            ...
        </frontend>
        ...
    </config>

然后在 /app/code/local/{namespace}/{yourmodule}/Model/Observer.php 创建一个 Observer 类

    class <namespace>_<modulename>_Model_Observer
   {
      public function your function name(Varien_Event_Observer $obs)
      {
          whatever your logic put here
      }

   }
于 2013-06-04T04:30:33.650 回答