phpwordpressintersectionadsenseuser-roles

Show only if user-role is subscriber AND site visitor (Wordpress)


I am a bit stuck with the code below for my Wordpress site:

<?php
    $user = wp_get_current_user();
    $allowed_roles = array('subscriber', 'visitor');
     if ( array_intersect($allowed_roles, $user->roles ) ) echo '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXX" crossorigin="anonymous"></script>' ?>

I want the Adsense code only be shown in the HEAD section for site visitors and the user role SUBSCRIBER. I tried 'visitor' but that didn't worked.

I don't know how to apply "array_diff" in this situation to display the Adsense code in the header for SITE VISITORS and SUBSCRIBER role?


Solution

  • For "subscriber" you can use function current_user_can

    For guests you can use function is_user_logged_in()

    if ( current_user_can( 'subscriber' ) || !is_user_logged_in()) {
               // echo your adsense code
    }