PluginProbe
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent / 3.5.4
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent v3.5.4
3.5.4 3.5.3 3.5.2 3.5.1 3.4.9 3.5.0 3.4.8 3.4.7 trunk 2.3.1 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6
← All changes | includes/class-wpsc-cron.php +19 -22 3.5.0 → 3.5.4 View file →
@@ -20,8 +20,9 @@
20 20 // Schedule cron jobs.
21 21 add_action( 'init', array( __CLASS__, 'schedule_events' ) );
22 22
23 23 // cron event callbacks.
24 + add_action( 'wpsc_auto_archive_closed_tickets', array( __CLASS__, 'auto_archive_closed_tickets' ) );
24 25 add_action( 'wpsc_permanently_delete_archive_tickets', array( __CLASS__, 'permanently_delete_archive_tickets' ) );
25 26 add_action( 'wpsc_permanently_delete_tickets', array( __CLASS__, 'permanently_delete_tickets' ) );
26 27
27 28 // run background processes.
@@ -85,10 +86,13 @@
85 86 'wpsc_license_checker'
86 87 );
87 88 }
88 89
89 - // Auto-archive closed tickets cron has been disabled.
90 - wp_clear_scheduled_hook( 'wpsc_auto_archive_closed_tickets' );
90 + // Auto-archive closed tickets.
91 + $auto_archive_time = isset( $advanced['auto-archive-tickets-time'] ) ? $advanced['auto-archive-tickets-time'] : 0;
92 + if ( $auto_archive_time > 0 && ! wp_next_scheduled( 'wpsc_auto_archive_closed_tickets' ) ) {
93 + wp_schedule_single_event( time(), 'wpsc_auto_archive_closed_tickets' );
94 + }
91 95
92 96 // Permanently delete archive tickets.
93 97 $permanent_archive_time = isset( $advanced['permanent-archive-tickets-time'] ) ? $advanced['permanent-archive-tickets-time'] : 0;
94 98 if ( $permanent_archive_time > 0 && ! wp_next_scheduled( 'wpsc_permanently_delete_archive_tickets' ) ) {
@@ -129,11 +133,8 @@
129 133 $timestamp = wp_next_scheduled( 'wpsc_cron_daily' );
130 134 if ( $timestamp ) {
131 135 wp_unschedule_event( $timestamp, 'wpsc_cron_daily' );
132 136 }
133 -
134 - // Remove auto-archive closed tickets cron.
135 - wp_clear_scheduled_hook( 'wpsc_auto_archive_closed_tickets' );
136 137 }
137 138
138 139 /**
139 140 * Provide mid-night unix timestamp
@@ -182,32 +183,28 @@
182 183 break;
183 184 }
184 185
185 186 // Arguments for fetching closed tickets to be archived.
186 - $args = array(
187 + $filters = array(
187 188 'items_per_page' => 20,
188 189 'orderby' => 'date_closed',
189 190 'order' => 'ASC',
190 - );
191 -
192 - // Add closed status condition in arguments.
193 - $filters = array( 'relation' => 'AND' );
194 - $filters[] = array(
195 - array(
196 - 'slug' => 'status',
197 - 'compare' => 'IN',
198 - 'val' => $ad_settings['closed-ticket-statuses'],
191 + 'meta_query' => array(
192 + 'relation' => 'AND',
193 + array(
194 + 'slug' => 'status',
195 + 'compare' => 'IN',
196 + 'val' => $ad_settings['closed-ticket-statuses'],
197 + ),
198 + array(
199 + 'slug' => 'date_closed',
200 + 'compare' => '<',
201 + 'val' => $age->format( 'Y-m-d' ),
202 + ),
199 203 ),
200 - array(
201 - 'slug' => 'date_closed',
202 - 'compare' => '<',
203 - 'val' => $age->format( 'Y-m-d' ),
204 - ),
205 204 );
206 205
207 - $filters = array_merge( $args, array( 'meta_query' => $filters ) );
208 206 $filters = apply_filters( 'wpsc_auto_archive_closed_tickets_query', $filters );
209 -
210 207 // Get tickets to be archive.
211 208 $tickets = WPSC_Ticket::find( $filters );
212 209
213 210 // Archive tickets.