PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.4.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.4.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
165 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['upgrade_url'] = \SureCart::config()->links->purchase;
120 $this->data['surecart_app_url'] = defined( 'SURECART_APP_URL' ) ? SURECART_APP_URL : '';
121 $this->data['api_url'] = defined( 'SURECART_API_URL' ) ? untrailingslashit( SURECART_API_URL ) : \SureCart::requests()->getBaseUrl();
122 $this->data['plugin_url'] = \SureCart::core()->assets()->getUrl();
123
124 if ( in_array( 'currency', $this->with_data ) ) {
125 $this->data['currency_code'] = \SureCart::account()->currency;
126 }
127 if ( in_array( 'tax_protocol', $this->with_data ) ) {
128 $this->data['tax_protocol'] = \SureCart::account()->tax_protocol;
129 }
130 if ( in_array( 'checkout_page_url', $this->with_data ) ) {
131 $this->data['checkout_page_url'] = \SureCart::getUrl()->checkout();
132 }
133 if ( in_array( 'supported_currencies', $this->with_data ) ) {
134 $this->data['supported_currencies'] = Currency::getSupportedCurrencies();
135 }
136 if ( in_array( 'links', $this->with_data ) ) {
137 $this->data['links'] = [];
138 foreach ( array_keys( \SureCart::getAdminPageNames() ) as $name ) {
139 $this->data['links'][ $name ] = esc_url_raw( add_query_arg( [ 'action' => 'edit' ], \SureCart::getUrl()->index( $name ) ) );
140 }
141 }
142
143 // pass entitlements to page.
144 $this->data['entitlements'] = \SureCart::account()->entitlements;
145 $this->data['get_locale'] = str_replace( '_', '-', get_locale() );
146
147 wp_set_script_translations( $this->handle, 'surecart' );
148
149 // common localizations.
150 wp_localize_script(
151 $this->handle,
152 'scData',
153 apply_filters( "$this->handle/data", $this->data )
154 );
155
156 wp_localize_script( $this->handle, 'scIcons', [ 'path' => esc_url_raw( plugin_dir_url( SURECART_PLUGIN_FILE ) . 'dist/icon-assets' ) ] );
157
158 // custom localizations.
159 $this->localize( $this->handle );
160 }
161
162 protected function localize( $handle ) {
163 }
164 }
165