wpbar/layout/is_offset_enabled 0.1.0
Позволяет включить или выключить автокомпенсацию контента под панелью.
/**
* Отключать компенсацию отступа на определенном шаблоне
*/
add_filter( 'wpbar/layout/is_offset_enabled', function ( $enabled, $settings, $bar_id, $context ) {
if ( is_page_template( 'templates/landing.php' ) ) {
return false;
}
return $enabled;
}, 10, 4 );
wpbar/layout/offset_mode 0.1.0
Позволяет переопределить режим компенсации контента.
/**
* Принудительно использовать режим компенсации body
*/
add_filter( 'wpbar/layout/offset_mode', function ( $mode, $settings, $bar_id, $context ) {
if ( is_singular( 'post' ) ) {
return 'body';
}
return $mode;
}, 10, 4 );
wpbar/layout/offset_selector 0.1.0
Позволяет переопределить CSS-селектор целевого контейнера.
/**
* Переопределять CSS-селектор для компенсации отступа
*/
add_filter( 'wpbar/layout/offset_selector', function ( $selector, $settings, $bar_id, $context ) {
if ( ! empty( $settings['offset_mode'] ) && $settings['offset_mode'] === 'custom' ) {
return '.site-footer';
}
return $selector;
}, 10, 4 );
wpbar/items/list 0.1.0
Позволяет изменить список элементов бара перед рендером.
/**
* Скрывать элемент по классу для неавторизованных пользователей
*/
add_filter( 'wpbar/items/list', function ( $items, $context, $bar_id ) {
if ( is_user_logged_in() || ! is_array( $items ) ) {
return $items;
}
return array_values( array_filter( $items, function ( $item ) {
$custom_class = (string) ( $item['custom_class'] ?? '' );
return $custom_class !== 'only-logged-in';
} ) );
}, 10, 3 );
/**
* Скрывать элемент по подписи для авторизованных пользователей
*/
add_filter( 'wpbar/items/list', function ( $items, $context, $bar_id ) {
if ( ! is_user_logged_in() || ! is_array( $items ) ) {
return $items;
}
return array_values( array_filter( $items, function ( $item ) {
$label = (string) ( $item['label'] ?? '' );
return $label !== 'Login';
} ) );
}, 10, 3 );
wpbar/item/classes 0.1.0
Позволяет изменить список CSS-классов элемента перед рендером.
/**
* Добавлять CSS-классы для выбранного типа элемента
*/
add_filter( 'wpbar/item/classes', function ( $classes, $item, $context ) {
if ( ( $item['type'] ?? '' ) === 'woo-cart' ) {
$classes[] = 'wpbar-item--cart-highlight';
}
return $classes;
}, 10, 3 );
wpbar/item/url 0.1.0
Позволяет переопределить URL элемента перед выводом.
/**
* Добавлять UTM-метки к пользовательским ссылкам
*/
add_filter( 'wpbar/item/url', function ( $url, $item, $context ) {
if ( empty( $url ) || ( $item['type'] ?? '' ) !== 'custom' ) {
return $url;
}
return add_query_arg(
[
'utm_source' => 'wpbar',
'utm_medium' => 'bottom_bar',
'utm_campaign' => 'navigation',
],
$url
);
}, 10, 3 );
wpbar/item/counter 0.1.0
Позволяет задать счетчик для любого элемента бара.
Возвращайте пустое значение, чтобы скрыть счетчик.
/**
* Добавлять пользовательский счетчик для выбранного элемента
*/
add_filter( 'wpbar/item/counter', function ( $counter, $item, $context ) {
$custom_class = (string) ( $item['custom_class'] ?? '' );
if ( $custom_class !== 'mail-counter' ) {
return $counter;
}
// Пример: забираем число из user meta.
$mail_count = (int) get_user_meta( get_current_user_id(), 'mail_unread_count', true );
return $mail_count > 0 ? $mail_count : '';
}, 10, 3 );
wpbar/appearance/presets 0.1.0
Позволяет изменить список пресетов внешнего вида.
/**
* Добавлять свой пресет внешнего вида
*/
add_filter( 'wpbar/appearance/presets', function ( $presets ) {
$presets[] = [
'id' => 'client_brand',
'label' => __( 'Client Brand', 'wpbar' ),
'description' => __( 'Example preset with brand colors.', 'wpbar' ),
'appearance' => [
'--wpbar-bg' => '#111827',
'--wpbar-item-color' => '#cbd5e1',
'--wpbar-item-color-active' => '#22d3ee',
],
'custom_css' => '',
];
return $presets;
} );
wpbar/locate_template/located 0.1.0
Позволяет заменить положение файла шаблона
wpbar/rules/result 0.1.0
Позволяет переопределить итог сопоставления правил показа конкретной панели.
/**
* Скрывать бар на конкретных ID записей и страниц
*/
add_filter( 'wpbar/rules/result', function ( $result, $bar_id, $rules, $evaluation ) {
$excluded_ids = [ 42, 108, 256 ];
$post_id = get_queried_object_id();
if ( $post_id && in_array( (int) $post_id, $excluded_ids, true ) ) {
return false;
}
return $result;
}, 10, 4 );
/**
* Показывать бар только для авторизованных пользователей
*/
add_filter( 'wpbar/rules/result', function ( $result, $bar_id, $rules, $evaluation ) {
if ( ! is_user_logged_in() ) {
return false;
}
return $result;
}, 10, 4 );
/**
* Показывать разные бары по языкам (Polylang и WPML)
*/
add_filter( 'wpbar/rules/result', function ( $result, $bar_id, $rules, $evaluation ) {
// Укажи ID баров для языков.
$bar_ids_by_lang = [
'ru' => 101,
'en' => 102,
];
$lang = '';
if ( function_exists( 'pll_current_language' ) ) {
$lang = (string) pll_current_language( 'slug' );
} elseif ( has_filter( 'wpml_current_language' ) ) {
$lang = (string) apply_filters( 'wpml_current_language', null );
} else {
$locale = determine_locale();
$lang = substr( (string) $locale, 0, 2 );
}
if ( ! isset( $bar_ids_by_lang[ $lang ] ) ) {
return false;
}
return (int) $bar_id === (int) $bar_ids_by_lang[ $lang ] ? $result : false;
}, 10, 4 );
/**
* Показывать бар только в рабочие часы
*/
add_filter( 'wpbar/rules/result', function ( $result, $bar_id, $rules, $evaluation ) {
$hour = (int) wp_date( 'G' );
$is_business_hours = $hour >= 9 && $hour < 18;
return $is_business_hours ? $result : false;
}, 10, 4 );
wpbar/rules/is_debug 0.1.0
Позволяет включать/выключать debug правил показа бара.
/**
* Полностью отключать debug комментарии правил показа
*/
add_filter( 'wpbar/rules/is_debug', function ( $enabled ) {
return false;
} );
wpbar/item/is_active 0.1.0
Позволяет переопределить active-состояние элемента.
/**
* Помечать элемент активным для нескольких URL-алиасов
*/
add_filter( 'wpbar/item/is_active', function ( $is_active, $item, $context, $current_url ) {
if ( $is_active ) {
return true;
}
if ( ( $item['type'] ?? '' ) !== 'custom' ) {
return $is_active;
}
$aliases = [
home_url( '/pricing/' ),
home_url( '/tarify/' ),
];
return in_array( untrailingslashit( $current_url ), array_map( 'untrailingslashit', $aliases ), true );
}, 10, 4 );
wpbar/icon/svg_classes 0.1.0
Позволяет переопределить классы svg-иконки.
/**
* Добавлять дополнительный класс для SVG-иконок
*/
add_filter( 'wpbar/icon/svg_classes', function ( $classes, $context ) {
$classes[] = 'wpbar-icon';
return $classes;
}, 10, 2 );
wpbar/admin_menu/capability 0.1.0
Позволяет переопределить capability для доступа к страницам WPBar в админке.
/**
* Ограничивать доступ к меню плагина только для администраторов
*/
add_filter( 'wpbar/admin_menu/capability', function ( $capability ) {
return 'manage_options';
} );
wpbar/admin_bar/is_warning_enabled 0.1.0
Позволяет отключить предупреждение о множественных совпадениях в admin bar.
/**
* Скрывать предупреждение в admin bar при нескольких совпавших барах
*/
add_filter( 'wpbar/admin_bar/is_warning_enabled', function ( $enabled, $matches_count, $matched_ids ) {
return false;
}, 10, 3 );
wpbar/upload/mimes 0.1.0
Позволяет добавить mime-типы для загрузки иконок.
wpshop/icons/list 0.1.0
Общий фильтр списка иконок для продуктов WPShop.
/**
* Добавлять свою иконку в библиотеку иконок
*/
add_filter( 'wpshop/icons/list', function ( $icons ) {
$icons['custom-star'] = [
'width' => 24,
'height' => 24,
'path' => 'M12 2l2.95 6.05L21.5 9l-4.75 4.63L17.9 21 12 17.85 6.1 21l1.15-7.37L2.5 9l6.55-.95L12 2z',
];
return $icons;
} );
wpshop/icons/groups 0.1.0
Общий фильтр групп иконок для продуктов WPShop.
/**
* Добавлять свою группу в библиотеку иконок
*/
add_filter( 'wpshop/icons/groups', function ( $groups ) {
$groups['brand'] = [
'name' => 'Brand',
'order' => 90,
];
return $groups;
} );
wpbar/svg/safe_style_props 0.1.0
Позволяет расширить набор CSS-свойств для inline SVG.
/**
* Разрешать дополнительные CSS-свойства для inline SVG
*/
add_filter( 'wpbar/svg/safe_style_props', function ( $props ) {
$props[] = 'mix-blend-mode';
$props[] = 'isolation';
return $props;
} );
wpbar/assets/script_options 0.1.0
Позволяет поменять параметры для скрипта
/**
* Менять текст уведомлений в фронтовом скрипте
*/
add_filter( 'wpbar/assets/script_options', function ( $options ) {
$options['i18n']['link_copied'] = __( 'Copied successfully.', 'wpbar' );
$options['i18n']['link_copy_error'] = __( 'Copy failed. Please copy link manually.', 'wpbar' );
return $options;
} );