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 / StoreSyncService.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
StoreSyncService.php
87 lines
1 <?php
2 namespace SureCart\Sync;
3
4 /**
5 * The store sync service.
6 *
7 * This service is responsible for syncing the store
8 * data when the account id is first set or changed.
9 *
10 * @since 3.0.0
11 * @package SureCart\Sync
12 */
13 class StoreSyncService {
14 /**
15 * The option name for the stored account.
16 *
17 * @var string
18 */
19 protected $option_name = 'surecart_current_account_id';
20
21 /**
22 * Bootstrap the service.
23 *
24 * @return mixed
25 */
26 public function bootstrap() {
27 add_action( 'admin_init', array( $this, 'maybeStartSync' ) );
28 }
29
30 /**
31 * Retrieves the stored account from the WordPress options.
32 *
33 * @return string The stored account.
34 */
35 public function getStoredAccount() {
36 return get_option( $this->option_name, null );
37 }
38
39 /**
40 * Retrieves the current plugin account.
41 *
42 * @return string The current plugin account.
43 */
44 public function currentAccountId() {
45 return \SureCart::account()->id ?? '';
46 }
47
48 /**
49 * Flush the rewrite rules on account change.
50 *
51 * @return boolean
52 */
53 public function maybeStartSync() {
54 $current_account_id = $this->currentAccountId();
55 $stored_account_id = $this->getStoredAccount();
56
57 // there is no current account id, or the stored account id is the same as the current account id.
58 if ( empty( $current_account_id ) || $current_account_id === $stored_account_id ) {
59 return false;
60 }
61
62 return $this->startSync();
63 }
64
65 /**
66 * Flushes the rewrite rules and updates the stored account.
67 *
68 * @return boolean
69 */
70 public function startSync() {
71 $this->sync();
72 return update_option( $this->option_name, $this->currentAccountId(), false );
73 }
74
75 /**
76 * Sync the store data.
77 *
78 * @return mixed
79 */
80 public function sync() {
81 if ( \SureCart::sync()->products()->isActive() ) {
82 return false;
83 }
84 return \SureCart::sync()->products()->dispatch();
85 }
86 }
87