Skip to content

Instantly share code, notes, and snippets.

@contemplate
Created November 13, 2020 06:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save contemplate/9f9b89a9b28faf5a2c62fe89e7dcb406 to your computer and use it in GitHub Desktop.
Save contemplate/9f9b89a9b28faf5a2c62fe89e7dcb406 to your computer and use it in GitHub Desktop.
PMPro show content before expiration shortcode [pmpro_before_expiration]
/*-- Show Content Before Expiration Shortcode -----------------*/
function pmpro_before_expiration_shortcode( $atts, $content=null, $code="" ) {
//make sure PMPro is active
if(!function_exists('pmpro_getMembershipLevelForUser'))
return;
//get attributes
$a = shortcode_atts( array(
'user' => '',
'days' => '15',
), $atts );
$days_before = $a['days'];
//find user
if(!empty($a['user']) && is_numeric($a['user'])) {
$user_id = $a['user'];
} elseif(!empty($a['user']) && strpos($a['user'], '@') !== false) {
$user = get_user_by('email', $a['user']);
$user_id = $user->ID;
} elseif(!empty($a['user'])) {
$user = get_user_by('login', $a['user']);
$user_id = $user->ID;
} else {
$user_id = false;
}
//no user ID? bail
if(!isset($user_id))
return "";
//get the user's level
$level = pmpro_getMembershipLevelForUser($user_id);
if(!empty($level) && !empty($level->enddate)) {
$enddate = date("Y-m-d", $level->enddate);
$beforetime = strtotime($enddate.' -'.$days_before.' days');
$beforedate = date("Y-m-d", $beforetime);
$todaydate = date("Y-m-d");
if(($todaydate >= $beforedate) && ($todaydate <= $enddate)){
return do_shortcode($content);
} else {
return "";
}
} else {
return "";
}
//return $content;
}
add_shortcode('pmpro_before_expiration', 'pmpro_before_expiration_shortcode');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment