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 / WordPress / StateService.php
surecart / app / src / WordPress Last commit date
Admin 1 year ago Assets 1 year ago CLI 2 years ago Pages 1 year ago PostTypes 1 year ago Posts 1 year ago Shortcodes 1 year ago Taxonomies 1 year ago Templates 1 year ago Users 2 years ago ActionsService.php 3 years ago CompatibilityService.php 1 year ago HealthService.php 1 year ago LineItemStateService.php 2 years ago PluginService.php 1 year ago PluginServiceProvider.php 1 year ago RecaptchaValidationService.php 2 years ago StateService.php 2 years ago ThemeService.php 2 years ago ThemeServiceProvider.php 3 years ago TranslationsServiceProvider.php 1 year 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