PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.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
182 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 }
72
73 /**
74 * Enqueue scripts
75 *
76 * @return void
77 */
78 public function enqueue() {
79 if ( ! $this->condition() ) {
80 return;
81 }
82
83 // components are also used on index pages.
84 $this->enqueueComponents();
85
86 // match url query for the scripts.
87 if ( ! empty( $this->url_query ) ) {
88 foreach ( $this->url_query as $param => $value ) {
89 // phpcs:ignore
90 if ( ! isset( $_GET[ $param ] ) || $value !== sanitize_text_field( wp_unslash( $_GET[ $param ] ) ) ) {
91 return;
92 }
93 }
94 }
95
96 // enqueue dependencies.
97 $this->enqueueScriptDependencies();
98
99 // remove admin notices.
100 remove_all_actions( 'admin_notices' );
101
102 // fix shitty jetpack issues key hijacking issues.
103 add_filter(
104 'admin_head',
105 function() {
106 wp_dequeue_script( 'wpcom-notes-common' );
107 wp_dequeue_script( 'wpcom-notes-admin-bar' );
108 wp_dequeue_style( 'wpcom-notes-admin-bar' );
109 wp_dequeue_style( 'noticons' );
110 },
111 200
112 );
113
114 // automatically load dependencies and version.
115 $asset_file = include plugin_dir_path( SURECART_PLUGIN_FILE ) . "dist/$this->path.asset.php";
116
117 // Enqueue scripts.
118 wp_enqueue_script(
119 $this->handle,
120 trailingslashit( \SureCart::core()->assets()->getUrl() ) . "dist/$this->path.js",
121 array_merge( $asset_file['dependencies'], $this->dependencies ),
122 $asset_file['version'],
123 true
124 );
125
126 // pass app url.
127 $this->data['upgrade_url'] = \SureCart::config()->links->purchase;
128 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
129 $this->data['api_url'] = \SureCart::requests()->getBaseUrl();
130 $this->data['plugin_url'] = \SureCart::core()->assets()->getUrl();
131 $this->data['home_url'] = untrailingslashit( get_home_url() );
132 $this->data['buy_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'buy_page' ) );
133 $this->data['product_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'product_page' ) );
134 $this->data['collection_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'collection_page' ) );
135 $this->data['is_block_theme'] = \SureCart::utility()->blockTemplates()->isFSETheme();
136 $this->data['claim_url'] = ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '';
137
138 if ( in_array( 'currency', $this->with_data ) ) {
139 $this->data['currency_code'] = \SureCart::account()->currency;
140 }
141 if ( in_array( 'tax_protocol', $this->with_data ) ) {
142 $this->data['tax_protocol'] = \SureCart::account()->tax_protocol;
143 }
144 if ( in_array( 'shipping_protocol', $this->with_data ) ) {
145 $this->data['shipping_protocol'] = \SureCart::account()->shipping_protocol;
146 }
147 if ( in_array( 'checkout_page_url', $this->with_data ) ) {
148 $this->data['checkout_page_url'] = \SureCart::getUrl()->checkout();
149 }
150 if ( in_array( 'supported_currencies', $this->with_data ) ) {
151 $this->data['supported_currencies'] = Currency::getSupportedCurrencies();
152 }
153 if ( in_array( 'links', $this->with_data ) ) {
154 $this->data['links'] = [];
155 foreach ( array_keys( \SureCart::getAdminPageNames() ) as $name ) {
156 $this->data['links'][ $name ] = esc_url_raw( add_query_arg( [ 'action' => 'edit' ], \SureCart::getUrl()->index( $name ) ) );
157 }
158 }
159
160 // pass entitlements to page.
161 $this->data['entitlements'] = \SureCart::account()->entitlements;
162 $this->data['get_locale'] = str_replace( '_', '-', get_locale() );
163
164 wp_set_script_translations( $this->handle, 'surecart' );
165
166 // common localizations.
167 wp_localize_script(
168 $this->handle,
169 'scData',
170 apply_filters( "$this->handle/data", $this->data )
171 );
172
173 wp_localize_script( $this->handle, 'scIcons', [ 'path' => esc_url_raw( plugin_dir_url( SURECART_PLUGIN_FILE ) . 'dist/icon-assets' ) ] );
174
175 // custom localizations.
176 $this->localize( $this->handle );
177 }
178
179 protected function localize( $handle ) {
180 }
181 }
182