PluginProbe
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO / 1.3.48
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO v1.3.48
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 1.3.44 All 176 releases
disco / backend / Enqueue.php

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

174 lines 5.8 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' ), 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 )
123 );
124 }
125
126 $scripts[1] = new Script( DISCO_TEXTDOMAIN . '-admin-tailwind-script', \plugins_url( 'assets/build/plugin-notice.js', DISCO_PLUGIN_ABSOLUTE ) );
127 $scripts[1]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
128 $scripts[1]->dependencies();
129 $scripts[1]->withLocalize(
130 'DISCO_NOTICE',
131 array(
132 'ajax_url' => admin_url( 'admin-ajax.php' ),
133 'nonce' => wp_create_nonce( 'disco_dismiss_notice' ),
134 )
135 );
136
137 if ( ! \is_null( $admin_page ) && 'disco_page_help-and-docs' === $admin_page->id ) {
138 $scripts[2] = new Script( DISCO_TEXTDOMAIN . '-admin-help-docs-script', \plugins_url( 'assets/build/plugin-docs.js', DISCO_PLUGIN_ABSOLUTE ) );
139 $scripts[2]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
140 $scripts[2]->dependencies();
141 $scripts[2]->withLocalize(
142 'DISCO',
143 array(
144 'is_pro_active' => Disco::is_pro(),
145 'json_url' => esc_url_raw( rest_url( 'disco/v1/' ) ),
146 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
147 )
148 );
149 }
150
151 if ( ! \is_null( $admin_page ) && 'disco_page_pro-plan' === $admin_page->id ) {
152 $scripts[3] = new Script( DISCO_TEXTDOMAIN . '-admin-pro-plan-script', \plugins_url( 'assets/build/plugin-pro-plan.js', DISCO_PLUGIN_ABSOLUTE ) );
153 $scripts[3]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
154 $scripts[3]->dependencies();
155 }
156
157 if ( ! \is_null( $admin_page ) && 'disco_page_compatible-plugin-list' === $admin_page->id ) {
158 $scripts[4] = new Script( DISCO_TEXTDOMAIN . '-admin-compatible-plugin-list-script', \plugins_url( 'assets/build/plugin-compatible-plugin-list.js', DISCO_PLUGIN_ABSOLUTE ) );
159 $scripts[4]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
160 $scripts[4]->dependencies();
161 $scripts[4]->withLocalize(
162 'DISCO_COMPATIBLE_PLUGINS',
163 array(
164 'active_plugins' => get_option( 'active_plugins', array() ),
165 'is_pro_active' => Disco::is_pro()
166 )
167 );
168 }
169
170 return $scripts;
171 }
172
173 }
174