我希望使用者可以有權限去取消 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 參考列表