PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / trunk
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments vtrunk
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
Concerns 5 months ago Jobs 1 year ago Tasks 1 year ago WooCommerce 5 days ago BatchCheckService.php 6 months ago ContentSyncService.php 6 months ago CustomerSyncService.php 1 year ago ImportState.php 1 month ago PostSyncService.php 2 months ago ProductSyncService.php 1 year ago ProductsSyncService.php 1 year ago StoreSyncService.php 1 year ago SyncService.php 1 month ago SyncServiceProvider.php 1 month 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