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 / WordPress / StateService.php
surecart / app / src / WordPress Last commit date
Admin 2 months ago Assets 2 weeks ago CLI 2 years ago Cache 2 weeks ago Pages 10 months ago PostTypes 2 months ago Posts 1 year ago Shortcodes 1 month ago Taxonomies 1 year ago Templates 1 year ago Users 2 months ago ActionsService.php 3 years ago CompatibilityService.php 4 months ago CurrencyService.php 4 months ago GoogleMapApiService.php 2 months ago HealthService.php 2 months ago LineItemStateService.php 2 years ago PluginActionLinksService.php 1 year ago PluginService.php 1 year ago PluginServiceProvider.php 1 year ago RecaptchaValidationService.php 2 years ago StateService.php 7 months ago ThemeService.php 4 months ago ThemeServiceProvider.php 7 months ago TranslationsServiceProvider.php 3 months ago UpgradeNoticeService.php 1 year ago
StateService.php
84 lines
1 <?php
2
3 namespace SureCart\WordPress;
4
5 /**
6 * InitialState class
7 *
8 * Manages the initial state of the store in the server and
9 * its serialization so it can be restored in the browser upon hydration.
10 */
11 class StateService {
12 /**
13 * Store data.
14 *
15 * @var array
16 */
17 private $store = array();
18
19 /**
20 * Set the store.
21 *
22 * @param array $store The store data.
23 */
24 public function __construct( $store ) {
25 $this->store = $store;
26 }
27
28 /**
29 * Render the store in the footer.
30 *
31 * @return void
32 */
33 public function bootstrap() {
34 add_action( 'wp_footer', [ $this, 'render' ], 8 );
35 }
36
37 /**
38 * Get store data.
39 *
40 * @return array
41 */
42 public function getData() {
43 return $this->store;
44 }
45
46 /**
47 * Get the line items service.
48 *
49 * @return LineItemStateService
50 */
51 public function lineItems() {
52 return new LineItemStateService();
53 }
54
55 /**
56 * Merge data.
57 *
58 * @param array $data The data that will be merged with the existing store.
59 */
60 public function mergeData( $data ) {
61 $this->store = array_replace_recursive( $this->store, $data );
62 }
63
64 /**
65 * Reset the store data.
66 */
67 public function reset() {
68 $this->store = array();
69 }
70
71 /**
72 * Render the store data.
73 */
74 public function render() {
75 if ( empty( $this->store ) ) {
76 return;
77 }
78 echo sprintf(
79 '<script id="sc-store-data" type="application/json">%s</script>',
80 wp_json_encode( $this->store, JSON_HEX_TAG | JSON_HEX_AMP )
81 );
82 }
83 }
84