Skip to content

Instantly share code, notes, and snippets.

@strangerstudios
Last active May 17, 2021 15:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save strangerstudios/4066459 to your computer and use it in GitHub Desktop.
Save strangerstudios/4066459 to your computer and use it in GitHub Desktop.
Paid Memberships Pro: Hide Old Posts From New Members
/*
This code will create a content filter for all pages and posts to remove access to posts that were published before a member's join date. Only posts or pages which require membership will be hidden. Note that pages and posts that require membership will still be hidden from non-members regardless of the publish date.
The params passed are:
$hasaccess - (bool) what PMPro thinks about whether the user has access
$thepost - (post object) the post being checked, usually the current post
$theuser - (user object) the user being checked, usually the current user
$post_membership_levels - (array of levels) the levels this post requires (if any)
*/
add_filter("pmpro_has_membership_access_filter", "hide_old_posts_from_members", 10, 4);
function hide_old_posts_from_members($hasaccess, $thepost, $theuser, $post_membership_levels)
{
global $wpdb;
//if PMPro says false already, return false
if(!$hasaccess)
return false;
//if the post doesn't require membership, allow access
if(!$post_membership_levels)
return true;
//okay, this post requires membership. start by getting the user's startdate
$startdate = pmpro_getMemberStartdate($theuser->ID);
//no startdate? return false
if(empty($startdate))
return false;
//if the startdate is before the post date, return true
if($startdate < strtotime($thepost->post_date))
return true;
else
{
//in this case we want to also tweak the message shown
add_filter("pmpro_non_member_text_filter", "swap_old_posts_member_text");
return false;
}
}
function swap_old_posts_member_text($s)
{
$s = "This content was published before your membership started.";
return $s;
}
@laurenhagan0306
Copy link

This recipe is included in the blog post on "Hide Previous Content From New Members" at Paid Memberships Pro here: https://www.paidmembershipspro.com/hide-previous-content-from-new-members/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment