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