PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 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.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Sync / Jobs / Cleanup / CollectionsCleanupJob.php
surecart / app / src / Sync / Jobs / Cleanup Last commit date
CollectionsCleanupJob.php 1 year ago ProductsCleanupJob.php 1 year ago
CollectionsCleanupJob.php
80 lines
1 <?php
2
3 namespace SureCart\Sync\Jobs\Cleanup;
4
5 use SureCart\Background\Job;
6
7 /**
8 * This process fetches and queues all products collections for syncing.
9 */
10 class CollectionsCleanupJob extends Job {
11 /**
12 * The prefix for the action.
13 *
14 * @var string
15 */
16 protected $prefix = 'surecart';
17
18 /**
19 * The action.
20 *
21 * @var string
22 */
23 protected $action = 'cleanup_product_collections';
24
25 /**
26 * Perform task with queued item.
27 *
28 * Override this method to perform any actions required on each
29 * queue item. Return the modified item for further processing
30 * in the next pass through. Or, return false to remove the
31 * item from the queue.
32 *
33 * @param mixed $args Queue item to iterate over.
34 *
35 * @return mixed
36 */
37 protected function task( $args ) {
38 // Delete all terms who have sc_account in term meta as meta key & the value is not equal to the current account id.
39 $batch_size = $args['batch_size'] ?? 25;
40 $page = $args['page'] ?? 1;
41 $offset = ( $page - 1 ) * $batch_size;
42
43 $terms = get_terms(
44 [
45 'number' => $batch_size,
46 'offset' => $offset,
47 'taxonomy' => 'sc_collection',
48 'hide_empty' => false,
49 'fields' => 'ids',
50 'meta_query' => [
51 [
52 'key' => 'sc_account',
53 'value' => \SureCart::account()->id,
54 'compare' => 'NOT IN', // Excludes terms where value is the current account ID.
55 ],
56 ],
57 ]
58 );
59
60 if ( empty( $terms ) ) {
61 return false; // No more terms to delete, stop processing.
62 }
63
64 foreach ( $terms as $term_id ) {
65 $this->task->queue( $term_id );
66 }
67
68 // If we got fewer terms than batch size, assume there are no more terms left.
69 if ( count( $terms ) < $batch_size ) {
70 return false;
71 }
72
73 // Continue processing the next batch.
74 return [
75 'page' => $page + 1,
76 'batch_size' => $batch_size,
77 ];
78 }
79 }
80