PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 / ProductsSyncProcess.php
surecart / app / src / Sync Last commit date
CollectionSyncService.php 1 year ago CustomerSyncService.php 1 year ago PostSyncService.php 1 year ago ProductSyncService.php 1 year ago ProductsSyncProcess.php 1 year ago ProductsSyncService.php 1 year ago StoreSyncService.php 1 year ago SyncService.php 1 year ago SyncServiceProvider.php 1 year ago
ProductsSyncProcess.php
86 lines
1 <?php
2
3 namespace SureCart\Sync;
4
5 use SureCart\Background\BackgroundProcess;
6 use SureCart\Models\Product;
7
8 /**
9 * This process fetches and queues all products for syncing.
10 */
11 class ProductsSyncProcess extends BackgroundProcess {
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 // the current page.
40 $page = $args['page'] ?? 1;
41
42 // get the items (uncached).
43 $products = Product::where( [ 'cached' => false ] )::paginate(
44 [
45 'page' => $page,
46 'per_page' => $args['batch_size'] ?? 25,
47 ]
48 );
49
50 if ( is_wp_error( $products ) ) {
51 error_log( $products->get_error_message() );
52 return false;
53 }
54
55 // add each item to the queue.
56 foreach ( $products->data as $product ) {
57 $product->queueSync( true ); // sync with notice.
58 }
59
60 // we have more to process.
61 if ( $products->hasNextPage() ) {
62 return [
63 'page' => $products->pagination->page + 1,
64 'batch_size' => $args['batch_size'] ?? 25,
65 ];
66 }
67
68 // nothing more to process.
69 return false;
70 }
71
72 /**
73 * Complete processing.
74 *
75 * Override if applicable, but ensure that the below actions are
76 * performed, or, call parent::complete().
77 */
78 protected function complete() {
79 // kick off the queue process immediately (instead of waiting for the next scheduled run).
80 \SureCart::queue()->run();
81
82 // call the parent complete method.
83 parent::complete();
84 }
85 }
86