[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 *