Отключите плагин Календаря событий от загрузки его скриптов
Я только что установил Календарь событий Pro.
В настоящее время я использую следующий пользовательский шаблон, чтобы скрыть любой контент, связанный с плагином, и вместо этого отображать сообщение и ссылку для входа:
<?php if (current_user_can('read_tribe_event')): ?>
<div id="tribe-events-pg-template">
<?php tribe_events_before_html(); ?>
<?php tribe_get_view(); ?>
<?php tribe_events_after_html(); ?>
</div> <!-- #tribe-events-pg-template -->
<?php else: ?>
<?php echo get_template_part('restricted_access'); ?>
<?php endif; ?>
<?php get_footer(); ?>
Что я нахожу, так это то, что javascript для плагина все еще загружается и выдает исключение, предположительно потому, что контента, который он ожидает найти, больше нет. Это останавливает работу javascript другого плагина.
Я есть теперь я думаю, что, возможно, есть какой-то крючок, который я могу использовать, чтобы запретить плагину Календаря событий загружать любой его контент и вместо этого загружать мой контент.
Кто-нибудь знает правильный способ сделать это или у вас есть какие-либо другие идеи?
1 answers
Мне удалось успешно отключить плагин Календаря событий для пользователей, которые не вошли в систему, используя только фильтры (см. Ниже).
Функция dequeue_tec_scripts
выводит из очереди сценарии, загруженные плагином.
Функция restricted_access_template
перенаправляет пользователя на пользовательский шаблон с именем 'restricted_access.php' или'404.php 'если файл шаблона не найден.
Я не утруждал себя попытками отключить какие-либо другие ресурсы, такие как css.
Functions.php :
//
// Hide events from logged out users
//
add_filter('template_include', 'hide_events_for_logged_out_users', 99);
function hide_events_for_logged_out_users($template ) {
if (tribe_is_event_query() && (!is_user_logged_in() || !current_user_can('read_tribe_event'))) {
dequeue_tec_scripts();
return restricted_access_template();
}
return $template;
}
function dequeue_tec_scripts() {
wp_dequeue_script('tribe-events-calendar');
wp_dequeue_script('tribe-events-calendar-script');
wp_dequeue_script('tribe-events-bootstrap-datepicker');
wp_dequeue_script('tribe-events-admin');
wp_dequeue_script('tribe-events-settings');
wp_dequeue_script('tribe-events-ecp-plugins');
wp_dequeue_script('tribe-events-bar');
wp_dequeue_script('tribe-events-calendar');
wp_dequeue_script('tribe-events-list');
wp_dequeue_script('tribe-events-ajax-day');
wp_dequeue_script('tribe-mini-calendar');
wp_dequeue_script('tribe-events-pro-slimscroll');
wp_dequeue_script('tribe-events-pro-week');
wp_dequeue_script('tribe-events-pro-isotope');
wp_dequeue_script('tribe-events-pro-photo');
wp_dequeue_script('tribe-events-pro-geoloc');
wp_dequeue_script('tribe-meta-box');
wp_dequeue_script('tribe-jquery-ui');
wp_dequeue_script('tribe-jquery-ui');
wp_dequeue_script('tribe-timepicker');
wp_dequeue_script('tribe-fac');
wp_dequeue_script('tribe-events-pro');
}
function restricted_access_template() {
$template = locate_template(array('restricted_access.php'));
if ($template != '') {
return $template;
}
else {
global $wp_query;
$wp_query->set_404();
status_header(404);
return get_template_part(404);
}
}