WordPress教學 – 讓 外掛 與 WordPress 產生互動

我希望使用者可以有權限去取消 Pending 的 Order,

解法:

// define the woocommerce_valid_order_statuses_for_cancel callback 
function filter_woocommerce_valid_order_statuses_for_cancel( $array ) { 
 // make filter magic happen here... 
 return array('on-hold', 'pending', 'failed' ) );
}; 
 
// add the filter 
add_filter( 'woocommerce_valid_order_statuses_for_cancel', 'filter_woocommerce_valid_order_statuses_for_cancel', 10, 1 );

資料來源:

woocommerce_valid_order_statuses_for_cancel
The WordPress Core woocommerce valid order statuses for cancel hook.

http://hookr.io/filters/woocommerce_valid_order_statuses_for_cancel/#


Action and Filter Hook Reference

https://docs.woocommerce.com/wc-apidocs/hook-docs.html


當要嫁接一個 Action 的時候,外掛會使用如下的函式來加入

add_action ( 'hook_name', 'your_function_name', [priority, [accepted_args]] );

當要嫁接一個 Filter 的時候,外掛會使用如下的函式來加入

add_filter ( 'hook_name', 'your_function_name', [priority, [accepted_args]] );

你會發現兩者長相差不多,其各個參數的意義解釋如下
hook_name => 欲嫁接點的 action /filter hook 名稱
your_function_name => 所需要執行的函數名稱
priority => 優先權,預設值為 10,越小的數字越先執行
accepted_args => 你所執行的函數有幾個輸入值(參數),預設為 1。某些 Action (Filter) 提供操過 2 個參數時即可以此設定。

那你會好奇在實際寫作的時候有多少得可以使用呢?
我也不清楚,這一直因為 WordPress 的版本更新而變更者,可以前往官方網站的 Codex 中有詳細說明。
Action 參考列表
Filter 參考列表

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *