19
19
// Be careful changing this value, you may send a reminder sooner than expected
20
20
// Also beware any knock-on effect on CCGN_CLOSE_UPDATE_VOUCHERS_AFTER_DAYS
21
21
define ('CCGN_FIRST_REMINDER_UPDATE_DETAILS_AFTER_DAYS ' , 7 );
22
- define ('CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS ' , CCGN_FIRST_REMINDER_UPDATE_DETAILS_AFTER_DAYS + 7 );
23
- //define('CCGN_SEND_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS', CCGN_SEND_REMINDER_UPDATE_DETAILS_AFTER_DAYS + 3 );
24
- define ( 'CCGN_CLOSE_UPDATE_DETAILS_AFTER_DAYS ' , CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS + 10 );
22
+ define ('CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS ' , 7 );
23
+ define ( 'CCGN_CLOSE_UPDATE_DETAILS_AFTER_DAYS ' , 10 );
25
24
26
25
////////////////////////////////////////////////////////////////////////////////
27
26
// Checking and sending
@@ -61,7 +60,7 @@ function ccgn_update_details_set_second_reminder( $applicant_id ) {
61
60
update_user_meta ($ applicant_id , 'ccgn_applicant_update_details_state ' , $ update_details_meta );
62
61
}
63
62
64
- // Send reminders to those that need them
63
+ // Send reminders to those who need them
65
64
66
65
function ccgn_email_update_details_reminders ()
67
66
{
@@ -70,34 +69,36 @@ function ccgn_email_update_details_reminders()
70
69
CCGN_APPLICATION_STATE_UPDATE_DETAILS
71
70
);
72
71
foreach ($ applicants as $ applicant_id ) {
72
+ $ now = new DateTime ( 'now ' );
73
73
$ status = get_user_meta ($ applicant_id , 'ccgn_applicant_update_details_state ' , true );
74
- $ state_date = new DateTime ($ status ['date ' ]);
74
+ if (!empty ($ status )) {
75
+ $ state_date = new DateTime ($ status ['date ' ]);
76
+ } else {
77
+ $ state_date = get_user_meta ($ applicant_id , CCGN_APPLICATION_STATE_DATE , true );
78
+ }
75
79
$ days_in_state = $ state_date ->diff ($ now )->days ;
76
- if ($ days_in_state > CCGN_CLOSE_UPDATE_DETAILS_AFTER_DAYS ) {
77
- if ( ($ status ['state ' ] == 'second-reminder ' ) && ($ status ['done ' ]) ) {
80
+ $ current_state = $ status ['state ' ];
81
+ if ( ( ($ current_state == 'none ' ) || (empty ($ current_state ))) && ($ days_in_state < CCGN_FIRST_REMINDER_UPDATE_DETAILS_AFTER_DAYS ) ) {
82
+ ccgn_update_details_set_first_reminder ($ applicant_id );
83
+ } elseif ( ( ($ current_state == 'first-reminder ' ) ) && ($ days_in_state < CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS ) ) {
84
+ ccgn_update_details_set_second_reminder ($ applicant_id );
85
+ } elseif ( $ days_in_state > CCGN_CLOSE_UPDATE_DETAILS_AFTER_DAYS ) {
86
+ if ( ($ current_state == 'second-reminder ' ) && ($ status ['done ' ]) ) {
78
87
ccgn_close_update_details_applicant ($ applicant_id );
79
- } elseif ( $ status ['state ' ] == 'none ' ) {
88
+ }
89
+ elseif ( $ status ['state ' ] == 'none ' ) {
80
90
ccgn_update_details_set_first_reminder ($ applicant_id );
81
91
} elseif ( $ status ['state ' ] == 'first-reminder ' ) {
82
92
ccgn_update_details_set_second_reminder ($ applicant_id );
83
93
} else {
84
94
//update user status date
95
+ ccgn_update_details_set_first_reminder ($ applicant_id );
85
96
update_user_meta (
86
97
$ applicant_id ,
87
98
CCGN_APPLICATION_STATE_DATE ,
88
99
date ('Y-m-d H:i:s ' , strtotime ('now ' ))
89
100
);
90
101
}
91
- } elseif ( ($ days_in_state > CCGN_FIRST_REMINDER_UPDATE_DETAILS_AFTER_DAYS ) && ($ days_in_state <= CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS ) ) {
92
- // Send first reminder
93
- if (empty ($ status ['state ' ])) {
94
- ccgn_update_details_set_first_reminder ($ applicant_id );
95
- }
96
- } elseif ( ($ days_in_state > CCGN_SECOND_REMINDER_UPDATE_DETAILS_AFTER_DAYS ) && ($ days_in_state <= CCGN_CLOSE_UPDATE_DETAILS_AFTER_DAYS ) ) {
97
- // Send second reminder
98
- if (($ status ['state ' ] == 'first-reminer ' ) && ($ status ['done ' ])) {
99
- ccgn_update_details_set_second_reminder ($ applicant_id );
100
- }
101
102
}
102
103
}
103
104
}
0 commit comments