PHP Opencart -编辑订单


PHP Opencart - Edit Orders

早安,斯塔克斯,

几天以来,我们一直在一个现有的网上商店(openart 1.5.6)内的dropshipping服务工作。我已经准备好了在商店中使用的soap请求(dropshipping),唯一不确定的是所需方法的位置。因为在确认订单之前你需要完成付款,所以我们似乎需要调整

catalog/controller/checkout/confirm.php

然而,当我查找这个文件的代码时,我找不到任何线索在哪里放置方法。在catalog/model/checkout/order.php中,我们可以找到addOrder()方法,看起来这是一个临时订单,直到您成功完成付款并按下确认按钮。

谁能告诉我openart处理订单的方式以及如何在正确的位置以正确的方式调整代码?

我自己刚刚这样做了,虽然我知道这个问题是一段时间以前的问题,但我认为发布我的方法会有所帮助。

我使用的方法是在一个单独的文件中执行一个函数,并从catalog/controller/checkout/success.php

调用它

有两种方法可以做到这一点,要么通过直接更新文件,要么使用vQmod。我不打算在这里详细介绍vQmod,因为它在其他地方有广泛的介绍(https://code.google.com/p/vqmod/)。我更喜欢后者,因为它不需要修改原始文件,但我将讨论这两种方法。

要直接修改文件,只需打开它,在第7行您将看到
if (isset($this->session->data['order_id'])) {

在这行之后,您可以立即添加钩子。我用了

include("catalog/controller/checkout/dropship_order.php");
sendOrderToDropship($this->session->data);

2)或者,使用以下vQmod代码在动态

上执行相同的操作
<file name="catalog/controller/checkout/success.php" error="log">
    <operation error="skip">
    <search position="after"><![CDATA[if (isset($this->session->data['order_id'])) {]]></search>
    <add><![CDATA[
            include("catalog/controller/checkout/dropship_order.php");
            sendOrderToDropship($this->session->data);
    ]]></add>
    </operation>
</file>

这两种方法都将导致在加载成功页面时调用sendOrderToDropship函数;在那个函数中,你可以执行任何你需要的动作。通过发送data数组,您还可以访问订单信息(关键是订单id),这样您就可以执行所需的任何处理。

希望有帮助!