PluginProbe
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant / 1.9.10
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant v1.9.10
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.9.10, at admin/class-merchant-admin-loader.php

183 lines 6.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_footer_text', array( $this, 'add_admin_footer_text' ), 999 );
41 add_filter( 'admin_body_class', array( $this, 'add_admin_body_class' ), 999 );
42 }
43
44 /**
45 * No hooked includes.
46 * These files are included without any WordPress hook.
47 */
48 public function includes_not_hooked() {
49 require_once MERCHANT_DIR . 'inc/classes/class-merchant-svg-icons.php';
50 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-modules.php';
51 }
52
53 /**
54 * Include admin classes.
55 */
56 public function includes() {
57
58 // Notices.
59 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice.php';
60 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice-review.php';
61 require_once MERCHANT_DIR . 'admin/notices/class-merchant-notice-upsell.php';
62
63 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-menu.php';
64 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-options.php';
65 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-utils.php';
66 require_once MERCHANT_DIR . 'admin/classes/class-merchant-admin-preview.php';
67 }
68
69 /**
70 * Enqueue admin styles and scripts.
71 */
72 public function enqueue_styles_scripts() {
73
74 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
75
76 wp_register_script( 'merchant-select2', MERCHANT_URI . 'assets/vendor/select2/select2.full.min.js', array( 'jquery' ), '4.0.13', true );
77
78 wp_register_style( 'merchant-select2', MERCHANT_URI . 'assets/vendor/select2/select2.min.css', array(), '4.0.13' );
79
80 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
81
82 wp_enqueue_media();
83
84 wp_enqueue_style( 'merchant-admin', MERCHANT_URI . 'assets/css/admin/admin.min.css', array(), MERCHANT_VERSION );
85
86 if ( is_rtl() ) {
87 wp_enqueue_style( 'merchant-admin-rtl', MERCHANT_URI . 'assets/css/admin/admin-rtl.min.css', array(), MERCHANT_VERSION );
88 }
89
90 wp_enqueue_script( 'merchant-jquery-form', MERCHANT_URI . 'assets/vendor/jquery-form/jquery.form.min.js', array( 'jquery' ), '4.3.0', true );
91
92 wp_enqueue_script( 'merchant-pickr', MERCHANT_URI . 'assets/vendor/pickr/pickr.min.js', array( 'jquery' ), '1.8.2', true );
93
94 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 );
95
96 $localized_data = array(
97 'nonce' => wp_create_nonce( 'merchant' ),
98 'ajax_url' => admin_url( 'admin-ajax.php' ),
99 );
100
101 /**
102 * Hook 'merchant_admin_localize_script'
103 *
104 * @since 1.9.6
105 */
106 $localized_data = apply_filters( 'merchant_admin_localize_script', $localized_data );
107
108 wp_localize_script( 'merchant-admin', 'merchant', $localized_data );
109
110 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
111
112 if( !empty($module) ) {
113 wp_enqueue_script( 'merchant-admin-preview', MERCHANT_URI . 'assets/js/admin/merchant-preview.min.js', array( 'jquery' ), MERCHANT_VERSION, true );
114 }
115 }
116 }
117
118 /**
119 * Add plugin settings link on the plugin page.
120 */
121 public function action_links( $links ) {
122
123 $page_url = add_query_arg( array( 'page' => 'merchant' ), admin_url( 'themes.php' ) );
124
125 $action_links = array(
126 'settings' => '<a href="' . esc_url( $page_url ) . '">' . esc_html__( 'Settings', 'merchant' ) . '</a>',
127 );
128
129 return array_merge( $action_links, $links );
130 }
131
132 /**
133 * Add plugin settings link on the plugin page.
134 */
135 public function add_admin_footer_text( $text ) {
136 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
137 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
138
139 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
140
141 $text = '';
142
143 if ( empty( $module ) ) {
144
145 $text .= sprintf( '<a href="https://www.facebook.com/groups/245922400035997" target="_blank" class="merchant-admin-footer-text-link">%s</a>', esc_html__( 'Join our community', 'merchant' ) );
146 $text .= esc_html__( 'to discuss about the product and ask for support or help the community.', 'merchant' );
147
148 }
149
150 }
151
152 return $text;
153 }
154
155 /**
156 * Add admin body class.
157 */
158 public function add_admin_body_class( $classes ) {
159 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
160 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
161
162 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
163
164 if ( ! empty( $module ) ) {
165
166 $classes .= ' merchant-admin-page-module';
167
168 } else {
169
170 $classes .= ' merchant-admin-page';
171
172 }
173
174 }
175
176 return $classes;
177 }
178 }
179
180 Merchant_Admin_Loader::instance();
181
182 }
183