PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 year 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 wp_enqueue_style( 'wp-editor' );
63 }
64
65 public function enqueueComponents() {
66 wp_enqueue_script( 'surecart-components' );
67 wp_enqueue_style( 'surecart-themes-default' );
68 wp_add_inline_style(
69 'surecart-themes-default',
70 ':root { --sc-color-primary-text: #fff; }' // this is important in case the user has a dark primary text.
71 );
72 wp_add_inline_style(
73 'surecart-themes-default',
74 '.sc-dragging { z-index: 1 }' // this is required for dragging.
75 );
76 }
77
78 /**
79 * Enqueue scripts
80 *
81 * @return void
82 */
83 public function enqueue() {
84 if ( ! $this->condition() ) {
85 return;
86 }
87
88 // components are also used on index pages.
89 $this->enqueueComponents();
90
91 // match url query for the scripts.
92 if ( ! empty( $this->url_query ) ) {
93 foreach ( $this->url_query as $param => $value ) {
94 // phpcs:ignore
95 if ( ! isset( $_GET[ $param ] ) || $value !== sanitize_text_field( wp_unslash( $_GET[ $param ] ) ) ) {
96 return;
97 }
98 }
99 }
100
101 // enqueue dependencies.
102 $this->enqueueScriptDependencies();
103
104 // fix shitty jetpack issues key hijacking issues.
105 add_filter(
106 'admin_head',
107 function() {
108 wp_dequeue_script( 'wpcom-notes-common' );
109 wp_dequeue_script( 'wpcom-notes-admin-bar' );
110 wp_dequeue_style( 'wpcom-notes-admin-bar' );
111 wp_dequeue_style( 'noticons' );
112 },
113 200
114 );
115
116 // automatically load dependencies and version.
117 $asset_file = include plugin_dir_path( SURECART_PLUGIN_FILE ) . "dist/$this->path.asset.php";
118
119 // Enqueue scripts.
120 wp_enqueue_script(
121 $this->handle,
122 trailingslashit( \SureCart::core()->assets()->getUrl() ) . "dist/$this->path.js",
123 array_merge( $asset_file['dependencies'], $this->dependencies ),
124 $asset_file['version'],
125 true
126 );
127
128 // pass app url.
129 $this->data['upgrade_url'] = \SureCart::config()->links->purchase;
130 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
131 $this->data['account_id'] = \SureCart::account()->id ?? '';
132 $this->data['account_slug'] = \SureCart::account()->slug ?? '';
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