*/
public function updateAccountRenewalDate( $account )
{
+ // Get billing Settings for the renewal dates.
+ $renewal_day_static = $this->config['settings']['renewal_day_static'];
+ $renewal_day = $this->config['settings']['renewal_day'];
+ $renewal_month = $this->config['settings']['renewal_month'];
$days_after_expired = $this->config['settings']['days_after_expired'];
$days_before_renewal = $this->config['settings']['days_before_renewal'];
- // Grab current renewal date
- $current_renewal_date = $this->wpdb->get_var(
- $this->wpdb->prepare(
- "SELECT renewal_date
- FROM " . GLM_MEMBERS_BILLING_PLUGIN_DB_PREFIX . "accounts
- WHERE id = %d",
- $account
- )
- );
- if ( $current_renewal_date ) {
- $renewal_date = new DateTime( $current_renewal_date );
- // Get earliest date this one can renewal with.
- $earliest_date = $renewal_date->modify( '-' . $days_before_renewal . ' days + 1 year' );
- $year_part = substr( $current_renewal_date, 0, 4 );
- $the_rest = substr( $current_renewal_date, 4 );
- // Adjust the year to current year
- $new_renewal_date = date( 'Y' ) . $the_rest;
- $test_renewal_date = new DateTime( $new_renewal_date );
- if ( $test_renewal_date->getTimestamp() < $earliest_date->getTimestamp() ) {
- // Adjust the year.
- $new_renewal_date = ( date( 'Y' ) - 1 ) . $the_rest;
- }
+ if ( $renewal_day_static ) {
+ // If the renewal days are alway the same then use that date.
+ $new_renewal_date = date(
+ 'Y-m-d',
+ mktime(
+ 0, 0, 0,
+ $renewal_day_static,
+ $renewal_month,
+ date( 'Y' )
+ )
+ );
} else {
- $new_renewal_date = date( 'Y-m-d' );
+ // Calculate the renewal date base on last renewal date.
+ // Grab current renewal date
+ $current_renewal_date = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT renewal_date
+ FROM " . GLM_MEMBERS_BILLING_PLUGIN_DB_PREFIX . "accounts
+ WHERE id = %d",
+ $account
+ )
+ );
+ if ( $current_renewal_date ) {
+ $renewal_date = new DateTime( $current_renewal_date );
+ // Get earliest date this one can renewal with.
+ $earliest_date = $renewal_date->modify( '-' . $days_before_renewal . ' days + 1 year' );
+ $year_part = substr( $current_renewal_date, 0, 4 );
+ $the_rest = substr( $current_renewal_date, 4 );
+ // Adjust the year to current year
+ $new_renewal_date = date( 'Y' ) . $the_rest;
+ $test_renewal_date = new DateTime( $new_renewal_date );
+ if ( $test_renewal_date->getTimestamp() < $earliest_date->getTimestamp() ) {
+ // Adjust the year.
+ $new_renewal_date = ( date( 'Y' ) - 1 ) . $the_rest;
+ }
+ } else {
+ $new_renewal_date = date( 'Y-m-d' );
+ }
}
$this->wpdb->update(