Example #1
0
function check_post_content($id, $content)
{
    $emember_auth = Emember_Auth::getInstance();
    if ($emember_auth->is_my_page_post($id)) {
        return $content;
    }
    if (isset($emember_auth->hasmore[$id])) {
        unset($emember_auth->hasmore[$id]);
        $emember_auth->is_post_visible = true;
        return $content;
    } else {
        global $more;
        $before_more = '';
        $emember_config = Emember_Config::getInstance();
        $enable_more_tag = $emember_config->getValue('eMember_enable_more_tag');
        if ($more && $enable_more_tag) {
            $before_more = explode('<span id="more-' . $id . '"></span>', $content);
            if (count($before_more) == 1) {
                $before_more = '';
            } else {
                $before_more = $before_more[0] . '<br/>';
            }
        }
        if ($emember_auth->is_protected_category($id) || $emember_auth->is_protected_parent_category($id)) {
            if ($emember_auth->isLoggedIn()) {
                $expires = $emember_auth->getUserInfo('account_state');
                if ($expires == 'expired') {
                    return $before_more . get_renewal_link();
                }
                if (!$emember_auth->is_subscription_expired()) {
                    if ($emember_auth->is_permitted_category($id)) {
                        $emember_auth->is_post_visible = true;
                        return $content;
                    } else {
                        //return '<br/><b>'. EMEMBER_LEVEL_NOT_ALLOWED .'</b>';
                        return $before_more . wp_emember_format_message(EMEMBER_LEVEL_NOT_ALLOWED);
                    }
                } else {
                    return $before_more . get_renewal_link();
                }
            } else {
                if (isset($_GET['event']) && $_GET['event'] == 'login') {
                    if (is_single()) {
                        return $before_more . print_eMember_login_form();
                    } else {
                        return $before_more . get_login_link();
                    }
                } else {
                    return $before_more . get_login_link();
                }
            }
        } else {
            if ($emember_auth->is_protected_post($id)) {
                if ($emember_auth->isLoggedIn()) {
                    $expires = $emember_auth->getUserInfo('account_state');
                    if ($expires == 'expired') {
                        return $before_more . get_renewal_link();
                    }
                    if (!$emember_auth->is_subscription_expired()) {
                        if ($emember_auth->is_permitted_post($id)) {
                            $emember_auth->is_post_visible = true;
                            return $content;
                        } else {
                            //return  '<br/><b>' . EMEMBER_CONTENT_RESTRICTED . '</b>';
                            return $before_more . wp_emember_format_message(EMEMBER_CONTENT_RESTRICTED);
                        }
                    } else {
                        return $before_more . get_renewal_link();
                    }
                } else {
                    if (isset($_GET['event']) && $_GET['event'] == 'login') {
                        if (is_single()) {
                            return $before_more . print_eMember_login_form();
                        } else {
                            return $before_more . get_login_link();
                        }
                    } else {
                        return $before_more . get_login_link();
                    }
                }
            } else {
                $emember_auth->is_post_visible = true;
                return $content;
            }
        }
    }
}
Example #2
0
function filter_eMember_login_form($content)
{
    $pattern = '#\\[wp_eMember_login_form:end]#';
    preg_match_all($pattern, $content, $matches);
    foreach ($matches[0] as $match) {
        $replacement = print_eMember_login_form();
        $content = str_replace($match, $replacement, $content);
    }
    return $content;
}