# 二開行為說明
文檔最后更新時間:2021-08-18 13:26:35
### 商城行為列表
| 鉤子名稱 | 解釋 |
| --- | --- |
| order\_create\_before | 訂單創建前,檢測用戶購買限制等 |
| order\_create\_after | 訂單創建后,刪除購物車,添加自動關閉隊列等 |
| order\_payed\_after | 訂單支付成功,只是付款成功 |
| order\_close\_before | 訂單關閉前,訂單將自動關閉 |
| order\_close\_after | 訂單關閉后,將積分優惠券等退回 |
| order\_cancel\_before | 訂單取消前,用戶手動取消訂單 |
| order\_cancel\_after | 訂單取消后,將積分優惠券等退回 |
| order\_send\_before | 訂單發貨前,后臺發貨前 |
| order\_send\_after | 訂單發貨后,添加自動收貨隊列 |
| order\_confirm\_before | 訂單確認收貨前 |
| order\_confirm\_after | 訂單確認收貨后,(多個商品會走多次)添加自動評價隊列 |
| order\_confirm\_finish | 訂單全部確認收貨(只會走一次) |
| order\_finish | 訂單完成行為,訂單交易完成(評價完成) |
| order\_comment\_before | 訂單評價前 |
| order\_comment\_after | 訂單評價后,判斷并完成訂單 |
| order\_refund\_before | 訂單退款前 |
| order\_refund\_after | 訂單退款后 |
| aftersale\_finish\_before | 售后完成前 |
| aftersale\_finish\_after | 售后完成后 |
| aftersale\_refuse\_before | 售后拒絕前 |
| aftersale\_refuse\_after | 售后拒絕后 |
| aftersale\_change | 售后變動(包含售后完成/拒絕) |
| activity\_update\_after | 活動更新后,將活動緩存到 redis,添加活動結束隊列 |
| activity\_delete\_after | 活動刪除之后,將活動從 redis 刪除 |
| activity\_groupon\_finish | 拼團成功 |
| activity\_groupon\_fail | 拼團失敗 |
### 二次開發方式
**!!!注意,在研究清楚鉤子邏輯之前,請不要置頂自己定義的行為,更不要覆蓋商城行為**
**!!!注意,在研究清楚鉤子邏輯之前,請不要置頂自己定義的行為,更不要覆蓋商城行為**
**!!!注意,在研究清楚鉤子邏輯之前,請不要置頂自己定義的行為,更不要覆蓋商城行為**
4iOr0rBUjmNJANXa0L5QHg==
**推薦方法**
8lOAJSGVEqCJu8BMzh8grg==
~~~
application/tags.php
return [
// 應用初始化
'app_init' => [],
// 應用開始
'app_begin' => [],
// 模塊初始化
'module_init' => [
'app\\common\\behavior\\Common',
],
// 插件開始
'addon_begin' => [
'app\\common\\behavior\\Common',
],
// 操作開始執行
'action_begin' => [],
// 視圖內容過濾
'view_filter' => [],
// 日志寫入
'log_write' => [],
// 應用結束
'app_end' => [],
// 在此處追加 shopro 的行為,例如
'order_finish' => [
// 自定義類1
// 自定義類2
]
];
~~~
**手動注冊**
Z91n5ribrc3acALIQ5vgQw==
~~~
Hook::add('order_finish','自定義類');
示例
Hook::add('order_finish','app\\index\\behavior\\CheckLang');
~~~
### 重要鉤子說明
#### order\_finish
> 訂單交易完成
**執行時機**
YPjc1MA1dM2ic39jTuoLQw==
* 訂單全部確認收貨,并且全部評價完成,訂單狀態變為交易完成時候執行
**檢測時機**
m56O7zdPHNI8fq/OST+xIQ==
* 訂單里面的商品評價后,檢測用戶訂單是否全部評價完成
* 系統自動好評,檢測用戶訂單是否全部評價完成
**鉤子作用**
+7Uj6eM0iwasgOZHYHHRmQ==
* 可以在這里添加分傭邏輯
**注意**
byhkclnvmUmxI7vjiTlQqA==
* 注意訂單狀態必須變為交易完成才會執行
#### order\_confirm\_finish
> 訂單確認收貨完成
**執行時機**
ECLAWyGh4mZ8AoVnFWBdJw==
* 訂單全部確認收貨完成,不論是否進行了評價
**檢測時機**
Fryfa2bPHAcVqBUawJE+uA==
* 自動發貨訂單已支付,自動確認收貨后檢測是否全部確認收貨
* 用戶手動確認收貨,檢測是否全部確認收貨
* 系統自動確認收貨,檢測是否全部確認收貨
**鉤子作用**
XCAcWejQcb827o28Bl+NMw==
* 可以在這里添加分傭邏輯
**注意**
czM8yynCySoOnCOgAHtwKw==
* 注意這里并不是訂單的狀態,這時訂單狀態為待評價狀態
#### order\_confirm\_after
> 訂單確認收貨之后
**執行時機**
xd0txsNGt8szXcttvUgCmQ==
* 用戶自己點擊確認收貨
* 系統自動確認收貨
* 自動發貨訂單,自動確認收貨
**注意**
slAkcD8Ow2SZJTBFpDGDdQ==
* 一個訂單如果購買了多個商品會執行多次,因為訂單根據商品單獨確認收貨