我有一个具有此功能的插件:
function dokan_get_order_status_translated( $status ) {
switch ($status) {
case 'completed':
case 'wc-completed':
return __( 'Completed', 'dokan-lite' );
break;
default:
return apply_filters( 'dokan_get_order_status_translated', '', $status );
break;
}
}
我正在尝试使用以下方法在我的functions.php子主题中覆盖此函数:
function dokan_add_order_status_translated($status){
switch ($status) {
case 'completed':
case 'wc-completed':
return __( 'Completed', 'dokan-lite' );
break;
case 'failed':
case 'wc-failed':
return __( 'Failed', 'dokan-lite' );
break;
}
add_filter( 'dokan_get_order_status_translated','dokan_add_order_status_translated', 99 );
但dokan_add_order_status_translated
从未运行。
任何人都知道为什么吗?
dokan_get_order_status_translated
提供了两个参数:默认为空字符串和$status
,因此您的过滤器应该看起来像这样:add_filter( 'dokan_get_order_status_translated','dokan_add_order_status_translated', 99, 2 );
function dokan_add_order_status_translated( $default, $status ) {
...
}
还请确保您要使用原始功能dokan_get_order_status_translated
中未处理的状态进行测试,因为不会以其他方式调用过滤器。