Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
Author: Thomas Sjolshagen <thomas@eighty20results.com>
Author URI: http://www.eighty20results.com/thomas-sjolshagen/
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
function e20r_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', 'e20r_extend_enddate_by_duration', 10, 4 );
@nav4050

This comment has been minimized.

Copy link

@nav4050 nav4050 commented Jun 21, 2020

How to apply this to my site?
Please let me know

@eighty20results

This comment has been minimized.

Copy link
Owner Author

@eighty20results eighty20results commented Jun 21, 2020

How to apply this to my site?
Please let me know

Copy the gist to a .php file that you place in a wp-content/plugins/e20r-extend-enddate directory on your web server. Then activate the new plugin on the Plugins page of your WordPress site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.