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.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.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 1 month ago Assets 1 week ago CLI 2 years ago Cache 1 month ago Pages 1 year ago PostTypes 4 months ago Posts 1 year ago Shortcodes 1 month ago Taxonomies 1 year ago Templates 1 year ago Users 4 days ago ActionsService.php 4 years ago CompatibilityService.php 1 week ago CurrencyService.php 6 months ago GoogleMapApiService.php 4 months ago HealthService.php 4 months ago LineItemStateService.php 2 years ago PluginActionLinksService.php 1 year ago PluginService.php 1 week ago PluginServiceProvider.php 1 year ago RecaptchaValidationService.php 2 years ago StateService.php 8 months ago ThemeService.php 5 months ago ThemeServiceProvider.php 8 months ago TranslationsServiceProvider.php 4 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