Skip to content

Instantly share code, notes, and snippets.

@femiyb
Forked from andrewlimaza/pmpro-grace-period.php
Created June 25, 2019 11:29
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 femiyb/bf4f0a111429e31bb59ab7acaa9457af to your computer and use it in GitHub Desktop.
Save femiyb/bf4f0a111429e31bb59ab7acaa9457af to your computer and use it in GitHub Desktop.
PMPRO - Grace Period (After expiration date is met)
/*
* Add 15 day grace period when membership expires
*/
function my_pmpro_membership_post_membership_expiry( $user_id, $level_id ) {
// Make sure we aren't already in a grace period for this level
$grace_level = get_user_meta( $user_id, 'grace_level', true );
if ( empty( $grace_level ) || $grace_level !== $level_id ) {
// Give them their level back with 15 day expiration
$grace_level = array(1,2);
$grace_level['user_id'] = $user_id;
$grace_level['membership_id'] = $level_id;
$grace_level['enddate'] = date( 'Y-m-d H:i:s', strtotime( '+15 days', current_time( 'timestamp' ) ) );
$changed = pmpro_changeMembershipLevel( $grace_level, $user_id );
update_user_meta( $user_id, 'grace_level', $level_id );
}
else
delete_user_meta($user_id, 'grace_level');
}
add_action('pmpro_membership_post_membership_expiry', 'my_pmpro_membership_post_membership_expiry', 10, 2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment