/**
 * hide pages from list/menu, called by template tag wp_list_pages()
 * 
 * @param array $excluded
 * @return array $excluded
 */
function mgm_list_pages_excludes($excluded)
{
    global $wpdb, $user_ID;
    // if loading from feed
    if (is_feed() && isset($_GET['token']) && mgm_use_rss_token()) {
        // get user by rss token, only for feed
        $user = mgm_get_user_by_token(strip_tags($_GET['token']));
        $user_ID = $user->ID;
    } elseif (!$user_ID) {
        $current_user = wp_get_current_user();
        $user_ID = $current_user->ID;
    }
    // get system object
    $system_obj = mgm_get_class('system');
    // update
    $excluded_pages = $system_obj->get_setting('excluded_pages');
    // exclude
    if (is_array($excluded_pages) && is_array($excluded)) {
        $excluded = array_merge($excluded, $excluded_pages);
        // give preference to user settings
    }
    // hide post
    $hide_posts = mgm_content_exclude_by_user($user_ID, 'post');
    // check
    if ($hide_posts && is_array($excluded)) {
        $excluded = array_merge($excluded, $hide_posts);
        // give preference to mgm settings
    }
    // default pages, by session
    $hide_pages = mgm_exclude_default_pages();
    // check
    if ($hide_pages && is_array($excluded)) {
        $excluded = array_merge($excluded, $hide_pages);
        // give preference to mgm settings
    }
    // return array
    return $excluded;
}
function mgm_content_post_access_delay($args = array())
{
    global $user_data, $wpdb;
    // current user
    $current_user = wp_get_current_user();
    // get user by username
    if (isset($_GET['username']) && isset($_GET['password'])) {
        // ? who did this? and why
        $user = wp_authenticate(strip_tags($_GET['username']), strip_tags($_GET['password']));
    } else {
        if (is_feed() && isset($_GET['token']) && mgm_use_rss_token()) {
            // added feed check while updating iss#676
            // get user by rss token, only for feed
            $user = mgm_get_user_by_token(strip_tags($_GET['token']));
        } else {
            // else get current use if logged in
            $user = $current_user;
        }
    }
    //init
    $access_delay = array();
    //check
    if (isset($args['postdelay']) && !empty($args['postdelay'])) {
        $postdelay_membership_levels = explode(',', $args['postdelay']);
        foreach ($postdelay_membership_levels as $postdelay_membership_level) {
            if ($postdelay_membership_level) {
                $postdelay_membership_level = explode(':', $postdelay_membership_level);
                $access_delay[$postdelay_membership_level[0]] = $postdelay_membership_level[1];
            }
        }
    }
    //check
    if (!empty($access_delay) && !empty($user)) {
        // get member
        $member = mgm_get_member($user->ID);
        //check
        $allowed = mgm_check_post_access_delay($member, $user, $access_delay);
        if (!$allowed) {
            return true;
        }
    }
    // return
    return false;
}