PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta2
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 / Support / Scripts / AdminModelEditController.php
surecart / app / src / Support / Scripts Last commit date
AdminModelEditController.php 2 years ago
AdminModelEditController.php
185 lines
1 <?php
2
3 namespace SureCart\Support\Scripts;
4
5 use SureCart\Models\Account;
6 use SureCart\Support\Currency;
7
8 /**
9 * Class for model edit pages to extend.
10 */
11 abstract class AdminModelEditController {
12 /**
13 * Script path.
14 *
15 * @var string
16 */
17 protected $path = '';
18
19 /**
20 * Script handle.
21 *
22 * @var string
23 */
24 protected $handle = '';
25
26 /**
27 * What types of data to add the the page.
28 *
29 * @var array
30 */
31 protected $with_data = [ 'links' ];
32
33 /**
34 * Additional dependencies
35 *
36 * @var array
37 */
38 protected $dependencies = [ 'sc-core-data', 'sc-ui-data' ];
39
40 /**
41 * Data to pass to the page.
42 *
43 * @var array
44 */
45 protected $data = [];
46
47 /**
48 * Optional conditionally load.
49 */
50 protected function condition() {
51 return true;
52 }
53
54 /**
55 * Enqueue needed scripts
56 *
57 * @return void
58 */
59 public function enqueueScriptDependencies() {
60 wp_enqueue_media();
61 wp_enqueue_style( 'wp-components' );
62 }
63
64 public function enqueueComponents() {
65 wp_enqueue_script( 'surecart-components' );
66 wp_enqueue_style( 'surecart-themes-default' );
67 wp_add_inline_style(
68 'surecart-themes-default',
69 ':root { --sc-color-primary-text: #fff; }' // this is important in case the user has a dark primary text.
70 );
71 wp_add_inline_style(
72 'surecart-themes-default',
73 '.sc-dragging { z-index: 1 }' // this is required for dragging.
74 );
75 }
76
77 /**
78 * Enqueue scripts
79 *
80 * @return void
81 */
82 public function enqueue() {
83 if ( ! $this->condition() ) {
84 return;
85 }
86
87 // components are also used on index pages.
88 $this->enqueueComponents();
89
90 // match url query for the scripts.
91 if ( ! empty( $this->url_query ) ) {
92 foreach ( $this->url_query as $param => $value ) {
93 // phpcs:ignore
94 if ( ! isset( $_GET[ $param ] ) || $value !== sanitize_text_field( wp_unslash( $_GET[ $param ] ) ) ) {
95 return;
96 }
97 }
98 }
99
100 // enqueue dependencies.
101 $this->enqueueScriptDependencies();
102
103 // fix shitty jetpack issues key hijacking issues.
104 add_filter(
105 'admin_head',
106 function() {
107 wp_dequeue_script( 'wpcom-notes-common' );
108 wp_dequeue_script( 'wpcom-notes-admin-bar' );
109 wp_dequeue_style( 'wpcom-notes-admin-bar' );
110 wp_dequeue_style( 'noticons' );
111 },
112 200
113 );
114
115 // automatically load dependencies and version.
116 $asset_file = include plugin_dir_path( SURECART_PLUGIN_FILE ) . "dist/$this->path.asset.php";
117
118 // Enqueue scripts.
119 wp_enqueue_script(
120 $this->handle,
121 trailingslashit( \SureCart::core()->assets()->getUrl() ) . "dist/$this->path.js",
122 array_merge( $asset_file['dependencies'], $this->dependencies ),
123 $asset_file['version'],
124 true
125 );
126
127 // pass app url.
128 $this->data['upgrade_url'] = \SureCart::config()->links->purchase;
129 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
130 $this->data['account_id'] = \SureCart::account()->id ?? '';
131 $this->data['account_slug'] = \SureCart::account()->slug ?? '';
132 $this->data['api_url'] = \SureCart::requests()->getBaseUrl();
133 $this->data['plugin_url'] = \SureCart::core()->assets()->getUrl();
134 $this->data['home_url'] = untrailingslashit( get_home_url() );
135 $this->data['buy_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'buy_page' ) );
136 $this->data['product_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'product_page' ) );
137 $this->data['collection_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'collection_page' ) );
138 $this->data['is_block_theme'] = \SureCart::utility()->blockTemplates()->isFSETheme();
139 $this->data['claim_url'] = ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '';
140
141 if ( in_array( 'currency', $this->with_data ) ) {
142 $this->data['currency_code'] = \SureCart::account()->currency;
143 }
144 if ( in_array( 'tax_protocol', $this->with_data ) ) {
145 $this->data['tax_protocol'] = \SureCart::account()->tax_protocol;
146 }
147 if ( in_array( 'shipping_protocol', $this->with_data ) ) {
148 $this->data['shipping_protocol'] = \SureCart::account()->shipping_protocol;
149 }
150 if ( in_array( 'checkout_page_url', $this->with_data ) ) {
151 $this->data['checkout_page_url'] = \SureCart::getUrl()->checkout();
152 }
153 if ( in_array( 'supported_currencies', $this->with_data ) ) {
154 $this->data['supported_currencies'] = Currency::getSupportedCurrencies();
155 }
156 if ( in_array( 'links', $this->with_data ) ) {
157 $this->data['links'] = [];
158 foreach ( array_keys( \SureCart::getAdminPageNames() ) as $name ) {
159 $this->data['links'][ $name ] = esc_url_raw( add_query_arg( [ 'action' => 'edit' ], \SureCart::getUrl()->index( $name ) ) );
160 }
161 }
162
163 // pass entitlements to page.
164 $this->data['entitlements'] = \SureCart::account()->entitlements;
165 $this->data['get_locale'] = str_replace( '_', '-', get_locale() );
166
167 wp_set_script_translations( $this->handle, 'surecart' );
168
169 // common localizations.
170 wp_localize_script(
171 $this->handle,
172 'scData',
173 apply_filters( "$this->handle/data", $this->data )
174 );
175
176 wp_localize_script( $this->handle, 'scIcons', [ 'path' => esc_url_raw( plugin_dir_url( SURECART_PLUGIN_FILE ) . 'dist/icon-assets' ) ] );
177
178 // custom localizations.
179 $this->localize( $this->handle );
180 }
181
182 protected function localize( $handle ) {
183 }
184 }
185