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

174 lines 5.9 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', 'wp-util' ), MERCHANT_VERSION, true );
95
96 wp_localize_script( 'merchant-admin', 'merchant', array(
97 'nonce' => wp_create_nonce( 'merchant' ),
98 'ajax_url' => admin_url( 'admin-ajax.php' ),
99 ) );
100
101 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
102
103 if( !empty($module) ) {
104 wp_enqueue_script( 'merchant-admin-preview', MERCHANT_URI . 'assets/js/admin/merchant-preview.min.js', array( 'jquery' ), MERCHANT_VERSION, true );
105 }
106 }
107 }
108
109 /**
110 * Add plugin settings link on the plugin page.
111 */
112 public function action_links( $links ) {
113
114 $page_url = add_query_arg( array( 'page' => 'merchant' ), admin_url( 'themes.php' ) );
115
116 $action_links = array(
117 'settings' => '<a href="' . esc_url( $page_url ) . '">' . esc_html__( 'Settings', 'merchant' ) . '</a>',
118 );
119
120 return array_merge( $action_links, $links );
121 }
122
123 /**
124 * Add plugin settings link on the plugin page.
125 */
126 public function add_admin_footer_text( $text ) {
127 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
128 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
129
130 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
131
132 $text = '';
133
134 if ( empty( $module ) ) {
135
136 $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' ) );
137 $text .= esc_html__( 'to discuss about the product and ask for support or help the community.', 'merchant' );
138
139 }
140
141 }
142
143 return $text;
144 }
145
146 /**
147 * Add admin body class.
148 */
149 public function add_admin_body_class( $classes ) {
150 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
151 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
152
153 if ( ! empty( $page ) && false !== strpos( $page, 'merchant' ) ) {
154
155 if ( ! empty( $module ) ) {
156
157 $classes .= ' merchant-admin-page-module';
158
159 } else {
160
161 $classes .= ' merchant-admin-page';
162
163 }
164
165 }
166
167 return $classes;
168 }
169 }
170
171 Merchant_Admin_Loader::instance();
172
173 }
174