Created
October 10, 2016 16:16
-
-
Save eighty20results/0cf434dbb196ee0fdf7ef3c734865c80 to your computer and use it in GitHub Desktop.
When user renews membership we append the duration to their current enddate
This file contains hidden or 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
<?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 <[email protected]> | |
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 ); |
Hi!
I'm trying to use this but it dosn't work :( When I buy any subscription it will calculated days from today, not from end date. What can I do?
The outcome is going to depend a bit on how the membership level is defined (i.e. is it a recurring membership with the expiration period configured). If the membership level is not a recurring membership level then this gist won't do anything. Another possibility is that the filter name changed in PMPro proper (not sure if that could have happened as I haven't needed to check for a while)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Copy the gist to a
.php
file that you place in awp-content/plugins/e20r-extend-enddate
directory on your web server. Then activate the new plugin on the Plugins page of your WordPress site.