PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.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 / BatchCheckService.php
surecart / app / src / Sync Last commit date
Concerns 6 months ago Jobs 1 year ago Tasks 1 year ago WooCommerce 2 weeks ago BatchCheckService.php 6 months ago ContentSyncService.php 6 months ago CustomerSyncService.php 1 year ago ImportState.php 2 months ago PostSyncService.php 5 days ago ProductSyncService.php 1 year ago ProductsSyncService.php 1 year ago StoreSyncService.php 1 year ago SyncService.php 2 months ago SyncServiceProvider.php 2 months ago
BatchCheckService.php
92 lines
1 <?php
2
3 namespace SureCart\Sync;
4
5 /**
6 * Manages the batch check items.
7 *
8 * Allows storing and retrieving batch check items in a single transient.
9 */
10 class BatchCheckService {
11 /**
12 * The batch check transient key.
13 *
14 * @var string
15 */
16 protected const BATCH_CHECK_TRANSIENT = 'surecart_batches_check';
17
18 /**
19 * The batch check transient expiration.
20 *
21 * @var int
22 */
23 protected const BATCH_CHECK_TRANSIENT_EXPIRATION = 10 * MINUTE_IN_SECONDS;
24
25 /**
26 * Get the batch check items.
27 *
28 * @param string $id The id of the batch (optional).
29 *
30 * @return mixed
31 */
32 public function get( $id = '' ) {
33 $items = array_filter( (array) get_transient( self::BATCH_CHECK_TRANSIENT ) );
34
35 if ( ! empty( $id ) ) {
36 return $items[ $id ] ?? false;
37 }
38
39 return $items;
40 }
41
42 /**
43 * Set the batch check item.
44 *
45 * @param string $id The id of the batch.
46 * @param mixed $item The item to set.
47 *
48 * @return boolean
49 */
50 public function set( $id, $item ) {
51 $items = $this->get();
52 $items[ $id ] = $item;
53 return set_transient( self::BATCH_CHECK_TRANSIENT, array_filter( $items ), self::BATCH_CHECK_TRANSIENT_EXPIRATION );
54 }
55
56 /**
57 * Remove the batch check item.
58 *
59 * @param string $id The id of the batch.
60 */
61 public function remove( $id ) {
62 $items = $this->get();
63
64 // remove the item.
65 unset( $items[ $id ] );
66
67 // if there are no items, delete the transient.
68 return empty( $items ) ?
69 delete_transient( self::BATCH_CHECK_TRANSIENT ) :
70 set_transient( self::BATCH_CHECK_TRANSIENT, array_filter( $items ), self::BATCH_CHECK_TRANSIENT_EXPIRATION );
71 }
72
73
74 /**
75 * Get the batches by prefix.
76 *
77 * @param string $prefix The prefix.
78 *
79 * @return array
80 */
81 public function getByPrefix( $prefix ) {
82 $items = $this->get();
83 return array_filter(
84 $items,
85 function ( $item, $key ) use ( $prefix ) {
86 return strpos( $key, $prefix ) === 0;
87 },
88 ARRAY_FILTER_USE_BOTH
89 );
90 }
91 }
92