PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
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
180 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 \SureCart::core()->assets()->enqueueScript(
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'] . '-' . \SureCart::plugin()->version()
123 );
124
125 // pass app url.
126 $this->data['upgrade_url'] = \SureCart::config()->links->purchase;
127 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
128 $this->data['api_url'] = \SureCart::requests()->getBaseUrl();
129 $this->data['plugin_url'] = \SureCart::core()->assets()->getUrl();
130 $this->data['home_url'] = untrailingslashit( get_home_url() );
131 $this->data['buy_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'buy_page' ) );
132 $this->data['product_page_slug'] = untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'product_page' ) );
133 $this->data['is_block_theme'] = \SureCart::utility()->blockTemplates()->isFSETheme();
134 $this->data['claim_url'] = ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '';
135
136 if ( in_array( 'currency', $this->with_data ) ) {
137 $this->data['currency_code'] = \SureCart::account()->currency;
138 }
139 if ( in_array( 'tax_protocol', $this->with_data ) ) {
140 $this->data['tax_protocol'] = \SureCart::account()->tax_protocol;
141 }
142 if ( in_array( 'shipping_protocol', $this->with_data ) ) {
143 $this->data['shipping_protocol'] = \SureCart::account()->shipping_protocol;
144 }
145 if ( in_array( 'checkout_page_url', $this->with_data ) ) {
146 $this->data['checkout_page_url'] = \SureCart::getUrl()->checkout();
147 }
148 if ( in_array( 'supported_currencies', $this->with_data ) ) {
149 $this->data['supported_currencies'] = Currency::getSupportedCurrencies();
150 }
151 if ( in_array( 'links', $this->with_data ) ) {
152 $this->data['links'] = [];
153 foreach ( array_keys( \SureCart::getAdminPageNames() ) as $name ) {
154 $this->data['links'][ $name ] = esc_url_raw( add_query_arg( [ 'action' => 'edit' ], \SureCart::getUrl()->index( $name ) ) );
155 }
156 }
157
158 // pass entitlements to page.
159 $this->data['entitlements'] = \SureCart::account()->entitlements;
160 $this->data['get_locale'] = str_replace( '_', '-', get_locale() );
161
162 wp_set_script_translations( $this->handle, 'surecart' );
163
164 // common localizations.
165 wp_localize_script(
166 $this->handle,
167 'scData',
168 apply_filters( "$this->handle/data", $this->data )
169 );
170
171 wp_localize_script( $this->handle, 'scIcons', [ 'path' => esc_url_raw( plugin_dir_url( SURECART_PLUGIN_FILE ) . 'dist/icon-assets' ) ] );
172
173 // custom localizations.
174 $this->localize( $this->handle );
175 }
176
177 protected function localize( $handle ) {
178 }
179 }
180