[AAWP + Paid Memberships Pro] Remove AAWP based on User Level/Membership

Hi,

this is a very small, but extremely powerful code snippet, that removes AAWP Boxes on the frontend entirely from users who are subscribed to a specific membership level. In our code, Levels 2 and 3 do not see any AAWP-generated advertisements. To change that, change the level numbers accordingly in

if (pmpro_hasMembershipLevel(array(2,3))) {

Use the following Code Snippet to remove AAWP boxes based on user level:

add_action('wp', 'block_aawp_for_members');
function block_aawp_for_members() {
    if (!function_exists('pmpro_hasMembershipLevel') || !is_user_logged_in()) return;

    if (pmpro_hasMembershipLevel(array(2,3))) {
        // Override AAWP shortcodes with empty handlers
        add_shortcode('amazon', '__return_empty_string');
        add_shortcode('amazon_link', '__return_empty_string');
        add_shortcode('amazon_textlink', '__return_empty_string');
        add_shortcode('amazon_box', '__return_empty_string');

        // Remove AAWP-generated content
        add_filter('the_content', function($content) {
            $patterns = [
                '/\[amazon[^\]]*\]/',
                '/<div class="aawp[^>]*>.*?<\/div>/s',
                '/<a href="[^"]*amazon[^"]*"[^>]*>.*?<\/a>/'
            ];
            return preg_replace($patterns, '', $content);
        }, 999);

        // Disable AAWP assets
        add_action('wp_enqueue_scripts', function() {
            wp_dequeue_style('aawp');
            wp_deregister_style('aawp');
            wp_dequeue_script('aawp');
            wp_deregister_script('aawp');
        }, 100);
    }
}

Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *