Documentation

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.

Last updated: Oct 23, 2026

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.

FilterWhat it changes
wovie_social_iconsThe icons of the social links, by domain
wovie_header_brandingThe logo block of the header
wovie_footer_brandingThe logo, subtitle and social links of the footer
wovie_footer_navThe link columns of the footer
wovie_tags_footerThe tags of the copyright text
wovie_footer_copyrightThe final copyright text
wovie_drift_pop_enabledWhether the Drift pop ad shows on a page
wovie_drift_pop_debugLogs of the Drift pop in the browser console
wovie_seo_plugin_activeWhether Wovie leaves the SEO tags to a plugin
wovie_membershipThe 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:

php
add_filter('wovie_social_icons', function ($icons) {
    $icons['mastodon.social'] = 'fa-brands fa-mastodon';
    return $icons;
});

A domain also matches its subdomains. See Menus.

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:

php
// Remove the logo and social links row of the footer.
add_filter('wovie_footer_branding', '__return_empty_string');

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:

php
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:

php
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:

php
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.

php
// 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:

HandleFile
wovie-webappThe styles (wovie.min.css) and the script (wovie.min.js) of Wovie
wovie-swiper-css and wovie-swiper-jsSwiper, for the carousels
wovie-fontawesomeFont 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:

php
add_filter('dbmovies_ad_slots', function ($slots) {
    $slots['my_banner'] = 'My banner under the hero';
    return $slots;
});
php
<?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.