PluginProbe
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO / 1.4.14
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO v1.4.14
1.4.14 1.4.13 1.4.12 1.4.11 1.4.10 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.54 1.3.53 1.3.52 1.3.51 1.3.50 1.3.49 1.3.48 1.3.47 1.3.46 1.3.45 All 177 releases
disco / backend / Enqueue.php

Enqueue.php in Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO 1.4.14, at backend/Enqueue.php

192 lines 7.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Disco
5 *
6 * @package Disco
7 * @author Ohidul Islam <wahid0003@gmail.com>
8 * @link http://domain.tld
9 * @license GPL 2.0+
10 * @copyright 2022 WebAppick
11 */
12
13 namespace Disco\Backend;
14
15 use Disco\App\Disco;
16 use Disco\Engine\Base;
17 use Inpsyde\Assets\Asset;
18 use Inpsyde\Assets\AssetManager;
19 use Inpsyde\Assets\Script;
20 use Inpsyde\Assets\Style;
21
22 /**
23 * This class contain the Enqueue stuff for the backend
24 */
25 class Enqueue extends Base {
26
27 /**
28 * Initialize the class.
29 *
30 * @return void|bool
31 */
32 public function initialize() {
33 if ( ! parent::initialize() ) {
34 return;
35 }
36
37 \add_action( AssetManager::ACTION_SETUP, array( $this, 'enqueue_assets' ) );
38 }
39
40 /**
41 * Enqueue assets with Inpyside library https://inpsyde.github.io/assets
42 *
43 * @param \Inpsyde\Assets\AssetManager $asset_manager The class.
44 * @return void
45 */
46 public function enqueue_assets( AssetManager $asset_manager ) {
47 // Load admin style sheet and JavaScript.
48 $assets = $this->enqueue_admin_styles();
49
50 if ( ! empty( $assets ) ) {
51 foreach ( $assets as $asset ) {
52 $asset_manager->register( $asset );
53 }
54 }
55
56 $assets = $this->enqueue_admin_scripts();
57
58 if ( empty( $assets ) ) {
59 return;
60 }
61
62 foreach ( $assets as $asset ) {
63 $asset_manager->register( $asset );
64 }
65 }
66
67 /**
68 * Register and enqueue admin-specific style sheet.
69 *
70 * @return array
71 * @since 1.0.0
72 */
73 public function enqueue_admin_styles() {
74 $admin_page = \get_current_screen();
75 $styles = array();
76
77 $styles[0] = new Style( DISCO_TEXTDOMAIN . '-admin-style', \plugins_url( 'assets/build/plugin-admin.css', DISCO_PLUGIN_ABSOLUTE ) );
78 $styles[0]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
79 $styles[0]->withDependencies( 'dashicons' );
80
81 if ( ! \is_null( $admin_page ) && in_array( $admin_page->id, array( 'toplevel_page_disco-create-discount', 'disco_page_disco-create-campaign', 'disco_page_disco-settings' ), true ) ) {
82 $styles[1] = new Style( DISCO_TEXTDOMAIN . '-admin-tailwind-style', \plugins_url( 'backend/views/asset/tailwind.css', DISCO_PLUGIN_ABSOLUTE ) );
83 $styles[1]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
84 $styles[1]->withDependencies( 'dashicons' );
85 }
86
87 if ( ! \is_null( $admin_page ) && in_array( $admin_page->id, array( 'disco_page_help-and-docs', 'disco_page_pro-plan', 'disco_page_compatible-plugin-list', 'disco_page_disco-analytics' ), true ) ) {
88 $styles[2] = new Style( DISCO_TEXTDOMAIN . '-admin-common-style', \plugins_url( 'backend/views/asset/common-tailwind.css', DISCO_PLUGIN_ABSOLUTE ) );
89 $styles[2]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
90 }
91
92 return $styles;
93 }
94
95 /**
96 * Register and enqueue admin-specific JavaScript.
97 *
98 * @return array
99 * @since 1.0.0
100 */
101 public function enqueue_admin_scripts() {
102 $admin_page = \get_current_screen();
103 $scripts = array();
104
105 if ( ! \is_null( $admin_page ) && in_array( $admin_page->id, array( 'toplevel_page_disco-create-discount', 'disco_page_disco-create-campaign', 'disco_page_disco-settings' ), true ) ) {
106 $scripts[0] = new Script( DISCO_TEXTDOMAIN . '-settings-admin', \plugins_url( 'assets/build/plugin-admin.js', DISCO_PLUGIN_ABSOLUTE ) );
107 $scripts[0]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
108 $scripts[0]->dependencies();
109 $scripts[0]->withLocalize(
110 'DISCO',
111 array(
112 'ajax_url' => admin_url( 'admin-ajax.php' ),
113 'json_url' => esc_url_raw( rest_url( 'disco/v1' ) ),
114 'is_pretty_url' => (bool) get_option('permalink_structure'),
115 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
116 'admin_url' => admin_url( 'admin.php' ),
117 'site_url' => site_url(),
118 'TEXTDOMAIN' => DISCO_TEXTDOMAIN,
119 'is_pro_active' => Disco::is_pro(),
120 'disco_free_version' => DISCO_VERSION,
121 'DISCO_BADGE_IMAGES_DIR' => DISCO_BADGE_IMAGES_DIR,
122 'active_campaign' => disco_activecampaign_get_localize_data(),
123 )
124 );
125 }
126
127 $scripts[1] = new Script( DISCO_TEXTDOMAIN . '-admin-tailwind-script', \plugins_url( 'assets/build/plugin-notice.js', DISCO_PLUGIN_ABSOLUTE ) );
128 $scripts[1]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
129 $scripts[1]->dependencies();
130 $scripts[1]->withLocalize(
131 'DISCO_NOTICE',
132 array(
133 'ajax_url' => admin_url( 'admin-ajax.php' ),
134 'nonce' => wp_create_nonce( 'disco_dismiss_notice' ),
135 )
136 );
137
138 if ( ! \is_null( $admin_page ) && 'disco_page_help-and-docs' === $admin_page->id ) {
139 $scripts[2] = new Script( DISCO_TEXTDOMAIN . '-admin-help-docs-script', \plugins_url( 'assets/build/plugin-docs.js', DISCO_PLUGIN_ABSOLUTE ) );
140 $scripts[2]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
141 $scripts[2]->dependencies();
142 $scripts[2]->withLocalize(
143 'DISCO',
144 array(
145 'is_pro_active' => Disco::is_pro(),
146 'json_url' => esc_url_raw( rest_url( 'disco/v1/' ) ),
147 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
148 )
149 );
150 }
151
152 if ( ! \is_null( $admin_page ) && 'disco_page_pro-plan' === $admin_page->id ) {
153 $scripts[3] = new Script( DISCO_TEXTDOMAIN . '-admin-pro-plan-script', \plugins_url( 'assets/build/plugin-pro-plan.js', DISCO_PLUGIN_ABSOLUTE ) );
154 $scripts[3]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
155 $scripts[3]->dependencies();
156 }
157
158 if ( ! \is_null( $admin_page ) && 'disco_page_compatible-plugin-list' === $admin_page->id ) {
159 $scripts[4] = new Script( DISCO_TEXTDOMAIN . '-admin-compatible-plugin-list-script', \plugins_url( 'assets/build/plugin-compatible-plugin-list.js', DISCO_PLUGIN_ABSOLUTE ) );
160 $scripts[4]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
161 $scripts[4]->dependencies();
162 $scripts[4]->withLocalize(
163 'DISCO_COMPATIBLE_PLUGINS',
164 array(
165 'active_plugins' => get_option( 'active_plugins', array() ),
166 'is_pro_active' => Disco::is_pro()
167 )
168 );
169 }
170
171 if ( ! \is_null( $admin_page ) && 'disco_page_disco-analytics' === $admin_page->id ) {
172 $scripts[5] = new Script( DISCO_TEXTDOMAIN . '-admin-analytics-script', \plugins_url( 'assets/build/plugin-analytics.js', DISCO_PLUGIN_ABSOLUTE ) );
173 $scripts[5]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
174 $scripts[5]->dependencies();
175 $scripts[5]->withLocalize(
176 'DISCO',
177 array(
178 'is_pro_active' => Disco::is_pro(),
179 'json_url' => esc_url_raw( rest_url( 'disco/v1' ) ),
180 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
181 'base_currency' => get_woocommerce_currency_symbol(),
182 'is_pretty_url' => (bool) get_option('permalink_structure'),
183 )
184 );
185 }
186
187 return $scripts;
188 }
189
190 }
191
192