Skip to content

Instantly share code, notes, and snippets.

@itsjusteileen
Forked from eighty20results/pmpro-append-to-end.php
Last active February 3, 2019 00:10
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 itsjusteileen/89cc06ce17df599ce9dc0b380c0c63b7 to your computer and use it in GitHub Desktop.
Save itsjusteileen/89cc06ce17df599ce9dc0b380c0c63b7 to your computer and use it in GitHub Desktop.
When user renews membership we append the duration to their current enddate
<?php
/*
Plugin Name: Paid Memberships Pro: Extend membership by new level duration
Plugin URI: http://www.paidmembershipspro.com/wp/pmpro-customizations/
Description: On change of level, modify the end date to add the new level's time
Version: 1.0
Requires: 4.5.3
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
function sidetrack_pmp_extend_enddate_by_duration( $enddate, $user_id, $level, $startdate ) {
// If the user has a current membership level
if ( false !== ( $current_level = pmpro_getMembershipLevelForUser( $user_id ) )
&& ! empty( $level->expiration_number ) && ! empty( $level->expiration_period )
) {
$enddate = date( 'Y-m-d', strtotime( "+ {$level->expiration_number} {$level->expiration_period}", $current_level->enddate ) );
}
return $enddate;
}
add_filter( 'pmpro_checkout_end_date', 'sidetrack_pmp_extend_enddate_by_duration', 10, 4 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment