PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.0.6
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.0.6
3.6.0 3.5.3 3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / includes / class-evf-report-cron.php
everest-forms / includes Last commit date
RestApi 1 year ago abstracts 1 year ago admin 1 year ago blocks 1 year ago elementor 2 years ago export 1 year ago fields 1 year ago interfaces 8 years ago libraries 3 years ago log-handlers 4 years ago shortcodes 1 year ago stats 3 years ago templates 5 years ago class-everest-forms.php 1 year ago class-evf-ajax.php 1 year ago class-evf-autoloader.php 8 years ago class-evf-background-process-import-entries.php 2 years ago class-evf-background-updater.php 8 years ago class-evf-cache-helper.php 6 years ago class-evf-cron.php 2 years ago class-evf-deprecated-action-hooks.php 6 years ago class-evf-deprecated-filter-hooks.php 5 years ago class-evf-emails.php 1 year ago class-evf-fields.php 2 years ago class-evf-form-handler.php 2 years ago class-evf-form-task.php 1 year ago class-evf-forms-features.php 2 years ago class-evf-frontend-scripts.php 1 year ago class-evf-install.php 2 years ago class-evf-integrations.php 2 years ago class-evf-log-levels.php 8 years ago class-evf-logger.php 5 years ago class-evf-post-types.php 5 years ago class-evf-privacy.php 6 years ago class-evf-report-cron.php 2 years ago class-evf-reporting.php 2 years ago class-evf-session-handler.php 7 years ago class-evf-shortcodes.php 4 years ago class-evf-smart-tags.php 1 year ago class-evf-template-loader.php 2 years ago class-evf-validation.php 6 years ago evf-conditional-functions.php 6 years ago evf-core-functions.php 1 year ago evf-deprecated-functions.php 6 years ago evf-entry-functions.php 2 years ago evf-formatting-functions.php 4 years ago evf-notice-functions.php 4 years ago evf-template-functions.php 4 years ago evf-template-hooks.php 8 years ago evf-update-functions.php 5 years ago
class-evf-report-cron.php
245 lines
1 <?php
2 /**
3 * Entries Summary report
4 *
5 * Sends the entries summary report the routine basis.
6 *
7 * @package EverestForms\Classes
8 * @version 2.0.9
9 */
10
11 defined( 'ABSPATH' ) || exit;
12
13 /**
14 * EverestForms Entries Summary Class.
15 */
16 class EVF_Report_Cron {
17 /**
18 * EVF_Report_Cron Constructor
19 *
20 * @since 2.0.9
21 */
22 public function __construct() {
23 }
24
25 /**
26 * Function for implementing cron job for reporting.
27 *
28 * @since 2.0.9
29 */
30
31
32 /**
33 * Function to add email schedule task.
34 *
35 * @since 2.0.7
36 *
37 * @param string $evf_recurrence The recurrence time frame for the events.
38 * @param bool $evf_report_next_run The time for running event.
39 * @return void.
40 */
41 public function evf_schedule_add( $evf_recurrence, $evf_report_next_run = false ) {
42 if ( false === $evf_report_next_run ) {
43 $evf_report_next_run = time();
44 }
45 $evf_weekly_day = get_option( 'everest_forms_entries_reporting_day' );
46 if ( ! wp_next_scheduled( 'everest_forms_stats_report_schedule' ) ) {
47 switch ( $evf_recurrence ) {
48 case 'daily':
49 $next_run_time = strtotime( '+1 day', $evf_report_next_run );
50 break;
51 case 'weekly':
52 // Schedule event weekly .
53 switch ( $evf_weekly_day ) {
54 case 'sunday':
55 $next_run_time = strtotime( 'next Sunday', $evf_report_next_run );
56 break;
57 case 'monday':
58 $next_run_time = strtotime( 'next Monday', $evf_report_next_run );
59 break;
60 case 'tuesday':
61 $next_run_time = strtotime( 'next Tuesday', $evf_report_next_run );
62 break;
63 case 'wednesday':
64 $next_run_time = strtotime( 'next Wednesday', $evf_report_next_run );
65 break;
66 case 'thursday':
67 $next_run_time = strtotime( 'next Thursday', $evf_report_next_run );
68 break;
69 case 'friday':
70 $next_run_time = strtotime( 'next Friday', $evf_report_next_run );
71 break;
72 case 'saturday':
73 $next_run_time = strtotime( 'next Saturday', $evf_report_next_run );
74 break;
75 default:
76 return;
77 }
78 break;
79 case 'monthly':
80 $next_run_time = strtotime( '+30 days', $evf_report_next_run );
81 break;
82 default:
83 return;
84 }
85 wp_schedule_event( $next_run_time, $evf_recurrence, 'everest_forms_stats_report_schedule' );
86 }
87
88 }
89
90
91 /**
92 * Clears all the scheduled task need to be done when plugin is deactivated and the setting is changed.
93 *
94 * @since 2.0.7
95 * @return void.
96 */
97 public function evf_schedule_clear_all() {
98
99 $evf_scheduled_events = _get_cron_array();
100
101 // If there are no scheduled events, return.
102 if ( empty( $evf_scheduled_events ) ) {
103 return; }
104
105 // Run through each scheduled event.
106 foreach ( $evf_scheduled_events as $timestamp => $cron ) {
107
108 // Check the cron foe everest forms report scheduling. Skips it if not of Everest forms.
109 if ( ! isset( $cron['everest_forms_stats_report_schedule'] ) ) {
110 continue;
111 }
112
113 // Delete this scheduled event.
114 unset( $evf_scheduled_events[ $timestamp ]['everest_forms_stats_report_schedule'] );
115
116 // If this time stamp is now empty, delete it in its entirety.
117 if ( empty( $evf_scheduled_events[ $timestamp ] ) ) {
118
119 unset( $evf_scheduled_events[ $timestamp ] );
120 }
121 }
122
123 // Save the scheduled events back.
124 _set_cron_array( $evf_scheduled_events );
125 }
126
127 /**
128 * Handles the schedule on deactivation.
129 *
130 * @since 2.0.7
131 */
132 public function deactivate() {
133 self::evf_schedule_clear_all();
134 }
135
136 /**
137 * Schedule form statistics report email
138 *
139 * @since 2.0.7
140 * @return void.
141 */
142 public function evf_report_form_statistics_schedule() {
143
144 // Clear from report schedule (we need to do this in case the scheduling is changed).
145 $this->evf_schedule_clear_all( 'everest_forms_stats_report_schedule' );
146
147 // Check if the routine emailing for form entries is enabled or not.
148 $everest_forms_enable_routine_entries_reporting = get_option( 'everest_forms_enable_entries_reporting' );
149 $everest_forms_entries_reporting_frequency = '';
150 $everest_forms_entries_reporting_day = '';
151
152 if ( isset( $everest_forms_enable_routine_entries_reporting ) && 'yes' === $everest_forms_enable_routine_entries_reporting ) {
153
154 // Get the frequency of sending the summary of routine basis.
155 $everest_forms_entries_reporting_frequency = get_option( 'everest_forms_entries_reporting_frequency' );
156
157 switch ( $everest_forms_entries_reporting_frequency ) {
158
159 case 'Daily':
160 $evf_entries_report_summary_offset = '+1 day';
161 $evf_recurrence = 'daily';
162 break;
163
164 case 'Weekly':
165 $everest_forms_entries_reporting_day = get_option( 'everest_forms_entries_reporting_day' );
166
167 switch ( $everest_forms_entries_reporting_day ) {
168
169 case 'tuesday':
170 $evf_entries_report_summary_offset = 'next tuesday';
171 break;
172 case 'wednesday':
173 $evf_entries_report_summary_offset = 'next wednesday';
174 break;
175 case 'thursday':
176 $evf_entries_report_summary_offset = 'next thursday';
177 break;
178 case 'friday':
179 $evf_entries_report_summary_offset = 'next friday';
180 break;
181 case 'saturday':
182 $evf_entries_report_summary_offset = 'next saturday';
183 break;
184 case 'sunday':
185 $evf_entries_report_summary_offset = 'next sunday';
186 break;
187 default:
188 $evf_entries_report_summary_offset = 'next monday';
189 }
190
191 $evf_recurrence = 'weekly';
192 break;
193
194 case 'Monthly':
195 $evf_entries_report_summary_offset = 'first day of next month';
196 $evf_recurrence = 'monthly';
197 break;
198 }
199
200 // Get midnight time of offset.
201 $evf_midnight_time_offset = gmdate( 'Y-m-d 00:00:00', strtotime( $evf_entries_report_summary_offset ) );
202
203 // Get UTC time of offset.
204 $evf_midnight_time_offset_utc = get_gmt_from_date( $evf_midnight_time_offset );
205
206 // Get next run.
207 $evf_report_next_run = strtotime( $evf_midnight_time_offset_utc . ' +6 hours' );
208
209 // Add to report schedule.
210 $this->evf_schedule_add( $evf_recurrence, $evf_report_next_run );
211 }
212 }
213
214 /**
215 * Report stat data.
216 *
217 * @since 2.0.9
218 */
219 public function evf_report_form_statistics_send() {
220 $evf_headers = array( 'Content-Type: text/html; charset=UTF-8' );
221
222 $evf_stat_subject = get_option( 'everest_forms_entries_reporting_subject' );
223
224 if ( '' === $evf_stat_subject ) {
225 $evf_stat_subject = esc_html__( 'Everest Forms - Entries summary statistics', 'everest-forms' );
226 }
227
228 $evf_stat_email = get_option( 'everest_forms_entries_reporting_email' );
229 if ( '{admin_email}' === $evf_stat_email ) {
230 $evf_stat_email = str_replace( $evf_stat_email, '{admin_email}', get_bloginfo( 'admin_email' ) );
231 }
232 if ( '' === $evf_stat_email && empty( $evf_stat_email ) ) {
233 $evf_stat_email = get_bloginfo( 'admin_email' );
234 }
235
236 // Sending the stat email.
237 $evf_stat_message = '';
238 $evf_send_stat_email = new EVF_Emails();
239 $test = EVF_Reporting::evf_schedule_entries_report_email();
240 $evf_send_stat_email->send( $evf_stat_email, $evf_stat_subject, $evf_stat_message, '', '' );
241 }
242 }
243
244 new EVF_Report_Cron();
245