From 307522f7357ee15706a8a4adf87757655abb330b Mon Sep 17 00:00:00 2001 From: Ashley Gibson Date: Thu, 13 Feb 2020 14:24:04 +0000 Subject: [PATCH] Add 2-day grace period to expiration date value. --- rcp-add-expiration-grace-period.php | 33 ++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/rcp-add-expiration-grace-period.php b/rcp-add-expiration-grace-period.php index 969dcca..0cbfe92 100644 --- a/rcp-add-expiration-grace-period.php +++ b/rcp-add-expiration-grace-period.php @@ -22,4 +22,35 @@ function ag_rcp_add_expiration_cron_grace_period( $query_args ) { return $query_args; } -add_filter( 'rcp_check_for_expired_memberships_query_args', 'ag_rcp_add_expiration_cron_grace_period' ); \ No newline at end of file + +add_filter( 'rcp_check_for_expired_memberships_query_args', 'ag_rcp_add_expiration_cron_grace_period' ); + +/** + * Adds a 2-day grace period to the expiration date value. + * + * @param string $expiration_date + * @param bool $formatted + * @param int $membership_id + * @param RCP_Membership $membership + * + * @return string + */ +function ag_rcp_add_expiration_date_grace( $expiration_date, $formatted, $membership_id, $membership ) { + + // Bail if never expires or formatted. + if ( 'none' === $expiration_date || empty( $expiration_date ) || $formatted ) { + return $expiration_date; + } + + try { + $expiration = new DateTime( $expiration_date ); + $expiration->modify( '+2 days' ); + + return $expiration->format( 'Y-m-d H:i:s' ); + } catch ( \Exception $e ) { + return $expiration_date; + } + +} + +add_filter( 'rcp_membership_get_expiration_date', 'ag_rcp_add_expiration_date_grace', 10, 4 ); \ No newline at end of file