add_filter()中的函数从不运行

问题描述 投票:0回答:1

我有一个具有此功能的插件:

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从未运行。

任何人都知道为什么吗?

wordpress
1个回答
0
投票
看起来过滤器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中未处理的状态进行测试,因为不会以其他方式调用过滤器。
© www.soinside.com 2019 - 2024. All rights reserved.