PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.14.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.14.0
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
186 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 // remove admin notices.
104 remove_all_actions( 'admin_notices' );
105
106 // fix shitty jetpack issues key hijacking issues.
107 add_filter(
108 'admin_head',
109 function() {
110 wp_dequeue_script( 'wpcom-notes-common' );
111 wp_dequeue_script( 'wpcom-notes-admin-bar' );
112 wp_dequeue_style( 'wpcom-notes-admin-bar' );
113 wp_dequeue_style( 'noticons' );
114 },
115 200
116 );
117
118 // automatically load dependencies and version.
119 $asset_file = include plugin_dir_path( SURECART_PLUGIN_FILE ) . "dist/$this->path.asset.php";
120
121 // Enqueue scripts.
122 wp_enqueue_script(
123 $this->handle,
124 trailingslashit( \SureCart::core()->assets()->getUrl() ) . "dist/$this->path.js",
125 array_merge( $asset_file['dependencies'], $this->dependencies ),
126 $asset_file['version'],
127 true
128 );
129
130 // pass app url.
131 $this->data['upgrade_url'] = \SureCart::config()->links->purchase;
132 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
133 $this->data['api_url'] = \SureCart::requests()->getBaseUrl();
134 $this->data['plugin_url'] = \SureCart::core()->assets()->getUrl();
135 $this->data['home_url'] = untrailingslashit( get_home_url() );
136 $this->data['buy_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'buy_page' ) );
137 $this->data['product_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'product_page' ) );
138 $this->data['collection_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'collection_page' ) );
139 $this->data['is_block_theme'] = \SureCart::utility()->blockTemplates()->isFSETheme();
140 $this->data['claim_url'] = ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '';
141
142 if ( in_array( 'currency', $this->with_data ) ) {
143 $this->data['currency_code'] = \SureCart::account()->currency;
144 }
145 if ( in_array( 'tax_protocol', $this->with_data ) ) {
146 $this->data['tax_protocol'] = \SureCart::account()->tax_protocol;
147 }
148 if ( in_array( 'shipping_protocol', $this->with_data ) ) {
149 $this->data['shipping_protocol'] = \SureCart::account()->shipping_protocol;
150 }
151 if ( in_array( 'checkout_page_url', $this->with_data ) ) {
152 $this->data['checkout_page_url'] = \SureCart::getUrl()->checkout();
153 }
154 if ( in_array( 'supported_currencies', $this->with_data ) ) {
155 $this->data['supported_currencies'] = Currency::getSupportedCurrencies();
156 }
157 if ( in_array( 'links', $this->with_data ) ) {
158 $this->data['links'] = [];
159 foreach ( array_keys( \SureCart::getAdminPageNames() ) as $name ) {
160 $this->data['links'][ $name ] = esc_url_raw( add_query_arg( [ 'action' => 'edit' ], \SureCart::getUrl()->index( $name ) ) );
161 }
162 }
163
164 // pass entitlements to page.
165 $this->data['entitlements'] = \SureCart::account()->entitlements;
166 $this->data['get_locale'] = str_replace( '_', '-', get_locale() );
167
168 wp_set_script_translations( $this->handle, 'surecart' );
169
170 // common localizations.
171 wp_localize_script(
172 $this->handle,
173 'scData',
174 apply_filters( "$this->handle/data", $this->data )
175 );
176
177 wp_localize_script( $this->handle, 'scIcons', [ 'path' => esc_url_raw( plugin_dir_url( SURECART_PLUGIN_FILE ) . 'dist/icon-assets' ) ] );
178
179 // custom localizations.
180 $this->localize( $this->handle );
181 }
182
183 protected function localize( $handle ) {
184 }
185 }
186