Wovie
Hooks
The filters of Wovie for developers: social icons, the logos and the footer, the copyright tags, the Drift pop, the SEO detection and the membership shown in the account, with an example for each one.
Overview
Wovie offers WordPress filters to change parts of the theme without editing its files. Add your code to the functions.php of a child theme, or to a small plugin, so updates of Wovie do not remove it. See Child theme.
| Filter | What it changes |
|---|---|
wovie_social_icons | The icons of the social links, by domain |
wovie_header_branding | The logo block of the header |
wovie_footer_branding | The logo, subtitle and social links of the footer |
wovie_footer_nav | The link columns of the footer |
wovie_tags_footer | The tags of the copyright text |
wovie_footer_copyright | The final copyright text |
wovie_drift_pop_enabled | Whether the Drift pop ad shows on a page |
wovie_drift_pop_debug | Logs of the Drift pop in the browser console |
wovie_seo_plugin_active | Whether Wovie leaves the SEO tags to a plugin |
wovie_membership | The membership shown in the account |
Social icons
wovie_social_icons receives the list of domains and their Font Awesome icons. Add a network or change an icon:
add_filter('wovie_social_icons', function ($icons) {
$icons['mastodon.social'] = 'fa-brands fa-mastodon';
return $icons;
});A domain also matches its subdomains. See Menus.
Logos and footer
wovie_header_branding, wovie_footer_branding and wovie_footer_nav receive the HTML of their block, already built. Return it changed, or an empty string to remove the block:
// Remove the logo and social links row of the footer.
add_filter('wovie_footer_branding', '__return_empty_string');Copyright tags
wovie_tags_footer receives the copyright text after {year}, {blogname} and {powered} are replaced. Use it to add your own tags, then write them in Appearance › Customize › Wovie / Footer › Copyright:
add_filter('wovie_tags_footer', function ($text) {
$privacy = sprintf('<a href="%s">%s</a>', esc_url(get_privacy_policy_url()), esc_html__('Privacy', 'wovie-child'));
return str_replace('{privacy}', $privacy, $text);
});wovie_footer_copyright receives the final HTML of the copyright, after the tags.
Drift pop
wovie_drift_pop_enabled decides whether the Drift pop loads on a page. WordPress conditional tags work in it. For example, to keep it off the sign in and account pages:
add_filter('wovie_drift_pop_enabled', function ($enabled) {
if (is_page_template(['pages/page-auth.php', 'pages/page-account.php'])) {
return false;
}
return $enabled;
});wovie_drift_pop_debug writes what the Drift pop does in the browser console, to test it:
add_filter('wovie_drift_pop_debug', '__return_true');See Ad positions.
SEO plugin detection
wovie_seo_plugin_active tells Wovie whether an SEO plugin is active, so it stops adding its own description and social tags. Return true for a plugin that Wovie does not detect. See SEO.
Membership in the account
wovie_membership receives the membership of a member, as Dbmovies resolves it, and their user ID. It changes what the theme shows: the dot on the avatar, the membership card and the Membership section. Access to premium links does not change: Dbmovies checks it.
Its main keys are state (none, processing, pending_manual, active, renewal_off, past_due or expired), plan_name, expires_at, next_billing_at, days_remaining, auto_renew and can_subscribe.
// Do not offer plans to administrators.
add_filter('wovie_membership', function ($membership, $user_id) {
if (user_can($user_id, 'manage_options')) {
$membership['can_subscribe'] = false;
}
return $membership;
}, 10, 2);Styles and scripts
Wovie loads its files with these handles:
| Handle | File |
|---|---|
wovie-webapp | The styles (wovie.min.css) and the script (wovie.min.js) of Wovie |
wovie-swiper-css and wovie-swiper-js | Swiper, for the carousels |
wovie-fontawesome | Font Awesome |
Use wovie-webapp as a dependency to load your own CSS or JavaScript after Wovie.
Your own ad position
The ad positions come from Dbmovies. To add one, register it with the dbmovies_ad_slots filter and show it with dbmovies_ad() in a template of your child theme:
add_filter('dbmovies_ad_slots', function ($slots) {
$slots['my_banner'] = 'My banner under the hero';
return $slots;
});<?php if (function_exists('dbmovies_ad')) dbmovies_ad('my_banner'); ?>The position then appears in Dbmovies › Ads. See Ad Manager.
What a filter cannot change
To change the HTML of a page or a section, replace its template in a child theme instead. See Child theme.