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