2015-12-29 57 views
2

如何在opencart中的購買行爲後處理自定義,而無需修改核心代碼?Opencart事件結帳成功

事件「post.order.add」是在付款前打來電話,我找不到後付款已經完成:(失蹤

+0

opencart version? –

回答

5

我能想到的兩種方法中最重要的動作什麼:

1)您可以使用事件post.order.history,然後檢查歷史記錄行數以確定是否應用操作。如果只有一個表明訂單剛剛被確認。事情是這樣的:

$this->load->model('account/order'); 
if (count($this->model_account_order->getOrderHistories($order_id)) <= 1) { 
    // do stuff 
} 

有可能是你可以用它來決定是否要觸發動作其它標誌 - 問題的關鍵是,你只需要你可以依靠,因爲這個動作被觸發付款確認條件之後每隔一個訂單歷史更新。

2)使用vQmod並應用success.php控制器。 Install vQmod並構建一個這樣的xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<modification> 
    <id>Order Success Event</id> 
    <version>1.0</version> 
    <vqmver>2.4</vqmver> 
    <author>[email protected]</author> 

    <file name="catalog/controller/checkout/success.php"> 
     <operation> 
      <search position="after"><![CDATA[public function index()]]></search> 
      <add><![CDATA[ 
     // Things to do after order success event 
      ]]></add> 
     </operation> 
    </file> 
</modification>