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