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;
}