PluginProbe
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO / 1.3.34
Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO v1.3.34
1.4.15 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 All 178 releases
disco / backend / Enqueue.php

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

172 lines 5.7 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 )
146 );
147 }
148
149 if ( ! \is_null( $admin_page ) && 'disco_page_pro-plan' === $admin_page->id ) {
150 $scripts[3] = new Script( DISCO_TEXTDOMAIN . '-admin-pro-plan-script', \plugins_url( 'assets/build/plugin-pro-plan.js', DISCO_PLUGIN_ABSOLUTE ) );
151 $scripts[3]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
152 $scripts[3]->dependencies();
153 }
154
155 if ( ! \is_null( $admin_page ) && 'disco_page_compatible-plugin-list' === $admin_page->id ) {
156 $scripts[4] = new Script( DISCO_TEXTDOMAIN . '-admin-compatible-plugin-list-script', \plugins_url( 'assets/build/plugin-compatible-plugin-list.js', DISCO_PLUGIN_ABSOLUTE ) );
157 $scripts[4]->forLocation( Asset::BACKEND )->withVersion( DISCO_VERSION );
158 $scripts[4]->dependencies();
159 $scripts[4]->withLocalize(
160 'DISCO_COMPATIBLE_PLUGINS',
161 array(
162 'active_plugins' => get_option( 'active_plugins', array() ),
163 'is_pro_active' => Disco::is_pro()
164 )
165 );
166 }
167
168 return $scripts;
169 }
170
171 }
172