PluginProbe
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant / 1.10.1
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant v1.10.1
2.3.2 2.3.1 2.3.0 2.2.8 2.2.7 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.11.0 1.11.1 1.11.2 1.6 1.7 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.10 1.9.11 All 60 releases
merchant / admin / class-merchant-admin-loader.php

class-merchant-admin-loader.php in Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant 1.10.1, at admin/class-merchant-admin-loader.php

159 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Merchant_Admin_Loader Class.
4 */
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly
8 }
9
10 if ( ! class_exists( 'Merchant_Admin_Loader' ) ) {
11
12 class Merchant_Admin_Loader {
13
14 /**
15 * The single class instance.
16 */
17 private static $instance = null;
18
19 /**
20 * Instance.
21 */
22 public static function instance() {
23 if ( is_null( self::$instance ) ) {
24 self::$instance = new self();
25 }
26 return self::$instance;
27 }
28
29 /**
30 * Constructor.
31 */
32 public function __construct() {
33
34 $this->includes_not_hooked();
35
36 add_action( 'init', array( $this, 'includes' ) );
37
38 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
39 add_action( 'plugin_action_links_' . MERCHANT_BASE, array( $this, 'action_links' ) );
40 add_filter( 'admin_body_class', array( $this, 'add_admin_body_class' ), 999 );
41 }
42
43 /**
44 * No hooked includes.
45 * These files are included without any WordPress hook.
46 */
47 public function includes_not_hooked() {
48 require_once MERCHANT_DIR . 'inc/classes/class-merchant-svg-icons.php';
49 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-modules.php';
50 }
51
52 /**
53 * Include admin classes.
54 */
55 public function includes() {
56
57 // Notices.
58 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice.php';
59 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice-review.php';
60 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice-upsell.php';
61
62 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-menu.php';
63 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-options.php';
64 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-utils.php';
65 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-preview.php';
66 }
67
68 /**
69 * Enqueue admin styles and scripts.
70 */
71 public function enqueue_styles_scripts() {
72
73 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
74
75 wp_register_script( 'merchant-select2', MERCHANT_URI . 'assets/vendor/select2/select2.full.min.js', array( 'jquery' ), '4.0.13', true );
76
77 wp_register_style( 'merchant-select2', MERCHANT_URI . 'assets/vendor/select2/select2.min.css', array(), '4.0.13' );
78
79 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
80
81 wp_enqueue_media();
82
83 wp_enqueue_style( 'merchant-admin', MERCHANT_URI . 'assets/css/admin/admin.min.css', array(), MERCHANT_VERSION );
84
85 if ( is_rtl() ) {
86 wp_enqueue_style( 'merchant-admin-rtl', MERCHANT_URI . 'assets/css/admin/admin-rtl.min.css', array(), MERCHANT_VERSION );
87 }
88
89 wp_enqueue_script( 'merchant-jquery-form', MERCHANT_URI . 'assets/vendor/jquery-form/jquery.form.min.js', array( 'jquery' ), '4.3.0', true );
90
91 wp_enqueue_script( 'merchant-pickr', MERCHANT_URI . 'assets/vendor/pickr/pickr.min.js', array( 'jquery' ), '1.8.2', true );
92
93 wp_enqueue_script( 'merchant-admin', MERCHANT_URI . 'assets/js/admin/admin.min.js', array( 'jquery', 'jquery-ui-sortable', 'jquery-ui-core', 'jquery-ui-accordion', 'wp-util' ), MERCHANT_VERSION, true );
94
95 $localized_data = array(
96 'nonce' => wp_create_nonce( 'merchant' ),
97 'ajax_url' => admin_url( 'admin-ajax.php' ),
98 );
99
100 /**
101 * Hook 'merchant_admin_localize_script'
102 *
103 * @since 1.9.6
104 */
105 $localized_data = apply_filters( 'merchant_admin_localize_script', $localized_data );
106
107 wp_localize_script( 'merchant-admin', 'merchant', $localized_data );
108
109 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
110
111 if( !empty($module) ) {
112 wp_enqueue_script( 'merchant-admin-preview', MERCHANT_URI . 'assets/js/admin/merchant-preview.min.js', array( 'jquery' ), MERCHANT_VERSION, true );
113 }
114 }
115 }
116
117 /**
118 * Add plugin settings link on the plugin page.
119 */
120 public function action_links( $links ) {
121
122 $page_url = add_query_arg( array( 'page' => 'merchant' ), admin_url( 'themes.php' ) );
123
124 $action_links = array(
125 'settings' => '<a href="' . esc_url( $page_url ) . '">' . esc_html__( 'Settings', 'merchant' ) . '</a>',
126 );
127
128 return array_merge( $action_links, $links );
129 }
130
131 /**
132 * Add admin body class.
133 */
134 public function add_admin_body_class( $classes ) {
135 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
136 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
137
138 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
139
140 if ( ! empty( $module ) ) {
141
142 $classes .= ' merchant-admin-page-module';
143
144 } else {
145
146 $classes .= ' merchant-admin-page';
147
148 }
149
150 }
151
152 return $classes;
153 }
154 }
155
156 Merchant_Admin_Loader::instance();
157
158 }
159