PHP WordPress Как удалить и заново прицепить фильтр из плагина в чайлд теме

Есть родительская тема + плагин к ней. В плагине есть шаблон, который отвечает за вывод табов в личном кабинете, пример кода:

$tabs = array(
    'my-courses' => esc_html__('My Courses', 'masterstudy-lms-learning-management-system'),
    'my-quizzes' => esc_html__('My Quizzes', 'masterstudy-lms-learning-management-system'),
    'my-orders'  => esc_html__('My Orders', 'masterstudy-lms-learning-management-system'),
);

if (STM_LMS_Subscriptions::subscription_enabled()) $tabs['my-memberships'] = esc_html__('My Memberships', 'masterstudy-lms-learning-management-system');

$tabs = apply_filters("account-private-parts-tabs", $tabs);

$active = 'my-courses';
?>

<ul class="nav nav-tabs" role="tablist">
    <?php foreach ($tabs as $slug => $name): ?>
        <li role="presentation" class="<?php echo ($slug == $active) ? 'active' : '' ?>">
            <a href="#<?php echo esc_attr($slug); ?>" data-toggle="tab">
                <?php echo wp_kses_post($name); ?>
            </a>
        </li>
    <?php endforeach; ?>
</ul>

Мне нужно в чайлд теме убрать фильтр из плагина и создать новый фильтр, где я переопределю шаблоны табов. Как можно это реализовать? Пробовал в functions.php добавить:

remove_filter("account-private-parts-tabs", array($tabs));

Но фильтр не убирается.


Ответы (1 шт):

Автор решения: WP Punk

Насколько я понимаю вашу задачу то выхотите поменять табы. Удалять вам ничего не надо, а нужно просто правильно использовать фильтры:

add_filter( 'account-private-parts-tabs', 'my_account_private_parts_tabs' );
function my_account_private_parts_tabs( $tabs ) {
    unset( $tabs['my-orders'] ); // Удаляем вкладку My Orders.
    $tabs['my-tab'] = 'My tab'; // Добавляем вкладку My tab.

    return $tabs;
}
→ Ссылка