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);
}
}
Leave a Reply