PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.5
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.5
4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 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 / Sync / ProductsSyncJob.php
surecart / app / src / Sync / Jobs / Sync Last commit date
ProductsSyncJob.php 1 year ago
ProductsSyncJob.php
83 lines
1 <?php
2
3 namespace SureCart\Sync\Jobs\Sync;
4
5 use SureCart\Background\Job;
6 use SureCart\Models\Product;
7
8 /**
9 * This process fetches and queues all products for syncing.
10 */
11 class ProductsSyncJob extends Job {
12 /**
13 * The prefix for the action.
14 *
15 * @var string
16 */
17 protected $prefix = 'surecart';
18
19 /**
20 * The action.
21 *
22 * @var string
23 */
24 protected $action = 'queue_products';
25
26 /**
27 * Perform task with queued item.
28 *
29 * Override this method to perform any actions required on each
30 * queue item. Return the modified item for further processing
31 * in the next pass through. Or, return false to remove the
32 * item from the queue.
33 *
34 * @param mixed $args Queue item to iterate over.
35 *
36 * @return mixed
37 */
38 protected function task( $args ) {
39 // get the items (uncached).
40 $products = Product::where( [ 'cached' => false ] )::paginate(
41 [
42 'page' => $args['page'] ?? 1,
43 'per_page' => $args['batch_size'] ?? 25,
44 ]
45 );
46
47 if ( is_wp_error( $products ) ) {
48 error_log( $products->get_error_message() );
49 return false;
50 }
51
52 // add each item to the queue.
53 foreach ( $products->data as $product ) {
54 $this->task->queue( $product->id );
55 }
56
57 // we have more to process.
58 if ( $products->hasNextPage() ) {
59 return [
60 'page' => $products->pagination->page + 1,
61 'batch_size' => $args['batch_size'] ?? 25,
62 ];
63 }
64
65 // nothing more to process.
66 return false;
67 }
68
69 /**
70 * Complete processing.
71 *
72 * Override if applicable, but ensure that the below actions are
73 * performed, or, call parent::complete().
74 */
75 protected function complete() {
76 // kick off the queue process immediately (instead of waiting for the next scheduled run).
77 \SureCart::queue()->run();
78
79 // call the parent complete method.
80 parent::complete();
81 }
82 }
83