| @@ -182,30 +182,32 @@ | ||
| 182 | 182 | $age->sub( new DateInterval( 'P' . $time . 'Y' ) ); |
| 183 | 183 | break; |
| 184 | 184 | } |
| 185 | 185 | |
| 186 | - // Get tickets to be archive. | |
| 187 | - $tickets = WPSC_Ticket::find( | |
| 188 | - array( | |
| 189 | - 'items_per_page' => 20, | |
| 190 | - 'orderby' => 'date_closed', | |
| 191 | - 'order' => 'ASC', | |
| 192 | - 'meta_query' => array( | |
| 193 | - 'relation' => 'AND', | |
| 194 | - array( | |
| 195 | - 'slug' => 'status', | |
| 196 | - 'compare' => 'IN', | |
| 197 | - 'val' => $ad_settings['closed-ticket-statuses'], | |
| 198 | - ), | |
| 199 | - array( | |
| 200 | - 'slug' => 'date_closed', | |
| 201 | - 'compare' => '<', | |
| 202 | - 'val' => $age->format( 'Y-m-d' ), | |
| 203 | - ), | |
| 186 | + // Arguments for fetching closed tickets to be archived. | |
| 187 | + $filters = array( | |
| 188 | + 'items_per_page' => 20, | |
| 189 | + 'orderby' => 'date_closed', | |
| 190 | + 'order' => 'ASC', | |
| 191 | + 'meta_query' => array( | |
| 192 | + 'relation' => 'AND', | |
| 193 | + array( | |
| 194 | + 'slug' => 'status', | |
| 195 | + 'compare' => 'IN', | |
| 196 | + 'val' => $ad_settings['closed-ticket-statuses'], | |
| 204 | 197 | ), |
| 205 | - ) | |
| 198 | + array( | |
| 199 | + 'slug' => 'date_closed', | |
| 200 | + 'compare' => '<', | |
| 201 | + 'val' => $age->format( 'Y-m-d' ), | |
| 202 | + ), | |
| 203 | + ), | |
| 206 | 204 | ); |
| 207 | 205 | |
| 206 | + $filters = apply_filters( 'wpsc_auto_archive_closed_tickets_query', $filters ); | |
| 207 | + // Get tickets to be archive. | |
| 208 | + $tickets = WPSC_Ticket::find( $filters ); | |
| 209 | + | |
| 208 | 210 | // Archive tickets. |
| 209 | 211 | if ( $tickets['total_items'] > 0 ) { |
| 210 | 212 | foreach ( $tickets['results'] as $ticket ) { |
| 211 | 213 | WPSC_Individual_Ticket::$ticket = $ticket; |
| @@ -316,25 +318,28 @@ | ||
| 316 | 318 | $age->sub( new DateInterval( 'P' . $time . 'Y' ) ); |
| 317 | 319 | break; |
| 318 | 320 | } |
| 319 | 321 | |
| 322 | + $args = array( | |
| 323 | + 'items_per_page' => 20, | |
| 324 | + 'orderby' => 'date_updated', | |
| 325 | + 'order' => 'ASC', | |
| 326 | + 'is_active' => 0, | |
| 327 | + ); | |
| 328 | + | |
| 329 | + $meta_query = array( 'relation' => 'AND' ); | |
| 330 | + | |
| 331 | + $meta_query[] = array( | |
| 332 | + 'slug' => 'date_updated', | |
| 333 | + 'compare' => '<', | |
| 334 | + 'val' => $age->format( 'Y-m-d' ), | |
| 335 | + ); | |
| 336 | + | |
| 337 | + $filters = array_merge( $args, array( 'meta_query' => $meta_query ) ); | |
| 338 | + $filters = apply_filters( 'wpsc_permanently_delete_tickets_query', $filters ); | |
| 339 | + | |
| 320 | 340 | // get tickets to be deleted. |
| 321 | - $tickets = WPSC_Ticket::find( | |
| 322 | - array( | |
| 323 | - 'items_per_page' => 20, | |
| 324 | - 'orderby' => 'date_closed', | |
| 325 | - 'order' => 'ASC', | |
| 326 | - 'is_active' => 0, | |
| 327 | - 'meta_query' => array( | |
| 328 | - 'relation' => 'AND', | |
| 329 | - array( | |
| 330 | - 'slug' => 'date_updated', | |
| 331 | - 'compare' => '<', | |
| 332 | - 'val' => $age->format( 'Y-m-d' ), | |
| 333 | - ), | |
| 334 | - ), | |
| 335 | - ) | |
| 336 | - ); | |
| 341 | + $tickets = WPSC_Ticket::find( $filters ); | |
| 337 | 342 | |
| 338 | 343 | // Delete tickets. |
| 339 | 344 | if ( $tickets['total_items'] > 0 ) { |
| 340 | 345 | foreach ( $tickets['results'] as $ticket ) { |