Created
November 13, 2020 06:18
-
-
Save contemplate/9f9b89a9b28faf5a2c62fe89e7dcb406 to your computer and use it in GitHub Desktop.
PMPro show content before expiration shortcode [pmpro_before_expiration]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*-- 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