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 / ProductsSyncService.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
ProductsSyncService.php
142 lines
1 <?php
2
3 namespace SureCart\Sync;
4
5 /**
6 * Syncs customer records to WordPress users.
7 */
8 class ProductsSyncService {
9 /**
10 * Application instance.
11 *
12 * @var \SureCart\Application
13 */
14 protected $app = null;
15
16 /**
17 * The notice id.
18 *
19 * @var string
20 */
21 protected $notice_id = 'surecart_products_sync';
22
23 /**
24 * Constructor.
25 *
26 * @param \SureCart\Application $app The application.
27 */
28 public function __construct( $app ) {
29 $this->app = $app;
30 }
31
32 /**
33 * Bootstrap the service.
34 *
35 * @return void
36 */
37 public function bootstrap() {
38 add_action( 'admin_notices', [ $this, 'showMigrationNotice' ] );
39 }
40
41 /**
42 * Get the queue process.
43 *
44 * @return ProductsQueueProcess
45 */
46 public function queue() {
47 return $this->app->resolve( 'surecart.process.products.queue' );
48 }
49
50 /**
51 * Get the sync process.
52 *
53 * @return ProductsSyncProcess
54 */
55 public function sync() {
56 return $this->app->resolve( 'surecart.process.products.sync' );
57 }
58
59 /**
60 * Cancel the process.
61 *
62 * This cancels the queue and sync processes
63 * and also deletes all the queue and sync items.
64 *
65 * @return void
66 */
67 public function cancel() {
68 $this->queue()->cancel();
69 $this->queue()->delete_all();
70 }
71
72 /**
73 * Is this process active?
74 *
75 * @return boolean
76 */
77 public function isActive() {
78 if ( $this->queue()->is_active() ) {
79 return 'queue';
80 }
81
82 if ( \SureCart::queue()->showNotice( 'surecart/sync/product' ) ) {
83 return 'sync';
84 }
85
86 return false;
87 }
88
89 /**
90 * Show the migration notice.
91 *
92 * @return void
93 */
94 public function showMigrationNotice() {
95 if ( ! $this->isActive() ) {
96 return;
97 }
98 echo wp_kses_post(
99 \SureCart::notices()->render(
100 [
101 'name' => $this->notice_id,
102 'type' => 'info',
103 'title' => esc_html__( 'SureCart: Getting things ready...', 'surecart' ),
104 'text' => wp_sprintf(
105 '<p>%s</p>',
106 esc_html__( 'We are getting things ready and optimized in the background. This may take a few minutes.', 'surecart' ),
107 ),
108 ]
109 )
110 );
111 }
112
113 /**
114 * Start the sync process.
115 *
116 * @param boolean $args The arguments.
117 *
118 * @return array|WP_Error The response or WP_Error on failure.
119 */
120 public function dispatch( $args = [] ) {
121 $args = wp_parse_args(
122 $args,
123 [
124 'page' => 1,
125 'per_page' => 25,
126 ]
127 );
128
129 // cancel previous processes.
130 $this->cancel();
131
132 // reset the notice.
133 \SureCart::notices()->reset( $this->notice_id );
134
135 // clear account cache.
136 \SureCart::account()->clearCache();
137
138 // save and dispatch the process.
139 return $this->queue()->push_to_queue( $args )->save()->dispatch();
140 }
141 }
142