PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.1.10
Adminify – White Label, Admin Menu Editor, Login Customizer v4.1.10
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
← All changes | Inc/Modules/MenuEditor/MenuEditor.php +64 -80 4.2.174.1.10 View file →
@@ -1,11 +1,12 @@
1 1 <?php
2 2
3 -namespace PXLBSAdminify\Inc\Modules\MenuEditor;
3 +namespace WPAdminify\Inc\Modules\MenuEditor;
4 4
5 -use PXLBSAdminify\Inc\Utils;
6 -use PXLBSAdminify\Inc\Admin\AdminSettings;
7 -use PXLBSAdminify\Inc\Modules\MenuEditor\MenuEditorAssets;
5 +use WPAdminify\Inc\Utils;
6 +use WPAdminify\Inc\Admin\AdminSettings;
7 +use WPAdminify\Inc\Modules\MenuEditor\MenuEditorAssets;
8 +use WPAdminify\Inc\Admin\AdminSettingsModel;
8 9 use enshrined\svgSanitize\Sanitizer;
9 10 // no direct access allowed
10 11 if ( !defined( 'ABSPATH' ) ) {
11 12 exit;
@@ -46,23 +47,23 @@
46 47 $this->menu_settings = ( new MenuEditorOptions() )->get();
47 48 $this->options = (array) AdminSettings::get_instance()->get();
48 49 add_filter( 'upload_mimes', [$this, 'custom_icon_mime_types'] );
49 50 add_filter( 'wp_handle_upload_prefilter', [$this, 'sanitize_svg_file'] );
50 - add_filter( 'admin_body_class', [$this, 'menu_editor_body_class'] );
51 + add_filter( 'admin_body_class', [$this, 'jltwp_adminify_menu_editor_body_class'] );
51 52 // add_filter('parent_file', [$this, 'set_menu'], 800);
52 53 // add_filter('parent_file', [$this, 'apply_menu'], 900);
53 - // add_action('modules_menu_editor_render', [$this, 'modules_menu_editor_render']);
54 - if ( apply_filters( 'pxlbsadminify_enable_menu_editor_render', true ) ) {
54 + // add_action('jltwp_adminify_modules_menu_editor_render', [$this, 'jltwp_adminify_modules_menu_editor_render']);
55 + if ( apply_filters( 'enable_jltwp_adminify_menu_editor_render', true ) ) {
55 56 add_filter( 'parent_file', [$this, 'set_menu'], 800 );
56 57 add_filter( 'parent_file', [$this, 'apply_menu'], 900 );
57 58 }
58 - add_action( 'wp_ajax_pxlbsadminify_save_menu_settings', [$this, 'save_menu_settings'] );
59 - add_action( 'wp_ajax_pxlbsadminify_reset_menu_settings', [$this, 'reset_menu_settings'] );
60 - add_action( 'wp_ajax_pxlbsadminify_export_menu_settings', [$this, 'export_menu_settings'] );
61 - add_action( 'wp_ajax_pxlbsadminify_import_menu_settings', [$this, 'import_menu_settings'] );
62 - add_action( 'wp_ajax_pxlbsadminify_file_upload', [$this, 'file_upload_callback'] );
63 - add_action( 'wp_ajax_pxlbsadminify_load_custom_icons', [$this, 'load_custom_icons_callback'] );
64 - add_action( 'wp_ajax_pxlbsadminify_search_users', [$this, 'search_users_callback'] );
59 + add_action( 'wp_ajax_adminify_save_menu_settings', [$this, 'adminify_save_menu_settings'] );
60 + add_action( 'wp_ajax_adminify_reset_menu_settings', [$this, 'adminify_reset_menu_settings'] );
61 + add_action( 'wp_ajax_adminify_export_menu_settings', [$this, 'adminify_export_menu_settings'] );
62 + add_action( 'wp_ajax_adminify_import_menu_settings', [$this, 'adminify_import_menu_settings'] );
63 + add_action( 'wp_ajax_adminify_file_upload', [$this, 'adminify_file_upload_callback'] );
64 + add_action( 'wp_ajax_adminify_load_custom_icons', [$this, 'adminify_load_custom_icons_callback'] );
65 + add_action( 'wp_ajax_adminify_search_users', [$this, 'adminify_search_users_callback'] );
65 66 new MenuEditorAssets();
66 67 }
67 68
68 69 public function custom_icon_mime_types( $mimes ) {
@@ -102,11 +103,11 @@
102 103 // return $value->post_title == 'adminify-custom-icon';
103 104 return strpos( $value->guid, 'adminify-custom-icon' ) !== false;
104 105 }
105 106
106 - public function load_custom_icons_callback() {
107 + public function adminify_load_custom_icons_callback() {
107 108 // Security check - verify nonce and capability
108 - check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' );
109 + check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' );
109 110 if ( !current_user_can( 'manage_options' ) ) {
110 111 wp_send_json_error( array(
111 112 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
112 113 ) );
@@ -123,11 +124,11 @@
123 124 echo wp_json_encode( $result );
124 125 die;
125 126 }
126 127
127 - public function file_upload_callback() {
128 + public function adminify_file_upload_callback() {
128 129 $result['status'] = false;
129 - check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' );
130 + check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' );
130 131 if ( !current_user_can( 'manage_options' ) ) {
131 132 wp_send_json_error( array(
132 133 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
133 134 ) );
@@ -136,15 +137,9 @@
136 137 $targeted_dir = $upload_dir['basedir'] . '/adminify-custom-icons';
137 138 if ( !is_dir( $targeted_dir ) ) {
138 139 wp_mkdir_p( $targeted_dir );
139 140 }
140 - add_filter( 'upload_dir', [$this, 'icon_custom_upload_dir'] );
141 - if ( !isset( $_FILES['my_file_upload'] ) ) {
142 - wp_send_json_error( array(
143 - 'message' => __( 'No file was uploaded.', 'adminify' ),
144 - ) );
145 - }
146 - // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- $_FILES is sanitized by the WP upload handler.
141 + add_filter( 'upload_dir', [$this, 'adminify_icon_custom_upload_dir'] );
147 142 $files = wp_kses_post_deep( wp_unslash( $_FILES['my_file_upload'] ) );
148 143 foreach ( $files['name'] as $key => $value ) {
149 144 if ( $files['name'][$key] ) {
150 145 $file = [
@@ -169,14 +164,14 @@
169 164 $result['images'][$attachment_id] = wp_get_attachment_url( $attachment_id );
170 165 }
171 166 }
172 167 }
173 - remove_filter( 'upload_dir', [$this, 'icon_custom_upload_dir'] );
168 + remove_filter( 'upload_dir', [$this, 'adminify_icon_custom_upload_dir'] );
174 169 echo wp_json_encode( $result );
175 170 wp_die();
176 171 }
177 172
178 - public function icon_custom_upload_dir( $dir_data ) {
173 + public function adminify_icon_custom_upload_dir( $dir_data ) {
179 174 // $dir_data already you might want to use
180 175 $custom_dir = 'adminify-custom-icons';
181 176 return [
182 177 'path' => $dir_data['basedir'] . '/' . $custom_dir,
@@ -191,10 +186,10 @@
191 186 /**
192 187 * AJAX callback to search users for Select2
193 188 * Uses 'fields' parameter for optimized database query performance
194 189 */
195 - public function search_users_callback() {
196 - check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' );
190 + public function adminify_search_users_callback() {
191 + check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' );
197 192 if ( !current_user_can( 'manage_options' ) ) {
198 193 wp_send_json_error( array(
199 194 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
200 195 ) );
@@ -253,9 +248,9 @@
253 248 ) );
254 249 }
255 250
256 251 // Menu Editor Body Class
257 - public function menu_editor_body_class( $classes ) {
252 + public function jltwp_adminify_menu_editor_body_class( $classes ) {
258 253 $classes .= ' adminify_menu_editor ';
259 254 return $classes;
260 255 }
261 256
@@ -270,13 +265,13 @@
270 265 foreach ( $values as $index => $in ) {
271 266 if ( is_array( $in ) ) {
272 267 $values[$index] = $this->clean_ajax_input( $in );
273 268 } else {
274 - $values[$index] = wp_strip_all_tags( $in );
269 + $values[$index] = strip_tags( $in );
275 270 }
276 271 }
277 272 } else {
278 - $values = wp_strip_all_tags( $values );
273 + $values = strip_tags( $values );
279 274 }
280 275 return $values;
281 276 }
282 277
@@ -289,25 +284,23 @@
289 284 public function ajax_error_message( $message ) {
290 285 $returndata = [];
291 286 $returndata['error'] = true;
292 287 $returndata['error_message'] = $message;
293 - return wp_json_encode( $returndata );
288 + return json_encode( $returndata );
294 289 }
295 290
296 - public function save_menu_settings() {
297 - if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' ) > 0 ) {
291 + public function adminify_save_menu_settings() {
292 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' ) > 0 ) {
298 293 if ( !current_user_can( 'manage_options' ) ) {
299 294 wp_send_json_error( array(
300 295 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
301 296 ) );
302 297 }
303 - $options = ( isset( $_POST['options'] ) ? wp_kses_post_deep( wp_unslash( $_POST['options'] ) ) : '' );
304 - // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- sanitized via wp_kses_post_deep() and clean_ajax_input() below.
298 + $options = wp_kses_post_deep( wp_unslash( $_POST['options'] ) );
305 299 $options = $this->clean_ajax_input( $options );
306 300 if ( $options == '' || !is_array( $options ) ) {
307 301 $message = __( 'No options supplied to save', 'adminify' );
308 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
309 - echo Utils::kses_custom( $this->ajax_error_message( $message ) );
302 + echo Utils::wp_kses_custom( $this->ajax_error_message( $message ) );
310 303 die;
311 304 }
312 305 if ( is_array( $options ) ) {
313 306 update_option( $this->prefix, $options );
@@ -313,14 +306,13 @@
313 306 update_option( $this->prefix, $options );
314 307 $returndata = [];
315 308 $returndata['success'] = true;
316 309 $returndata['message'] = __( 'Settings saved', 'adminify' );
317 - echo wp_json_encode( $returndata );
310 + echo json_encode( $returndata );
318 311 die;
319 312 } else {
320 313 $message = __( 'Something went wrong', 'adminify' );
321 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
322 - echo Utils::kses_custom( $this->ajax_error_message( $message ) );
314 + echo Utils::wp_kses_custom( $this->ajax_error_message( $message ) );
323 315 die;
324 316 }
325 317 }
326 318 die;
@@ -330,10 +322,10 @@
330 322 * Menu Editor Settings Reset
331 323 *
332 324 * @return void
333 325 */
334 - public function reset_menu_settings() {
335 - if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' ) > 0 ) {
326 + public function adminify_reset_menu_settings() {
327 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' ) > 0 ) {
336 328 if ( !current_user_can( 'manage_options' ) ) {
337 329 wp_send_json_error( array(
338 330 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
339 331 ) );
@@ -343,14 +335,13 @@
343 335 if ( !$menu_editor_options ) {
344 336 $returndata = [];
345 337 $returndata['success'] = true;
346 338 $returndata['message'] = __( 'Settings reset', 'adminify' );
347 - echo wp_json_encode( $returndata );
339 + echo json_encode( $returndata );
348 340 die;
349 341 } else {
350 342 $message = __( 'Something went wrong', 'adminify' );
351 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
352 - echo Utils::kses_custom( $this->ajax_error_message( $message ) );
343 + echo Utils::wp_kses_custom( $this->ajax_error_message( $message ) );
353 344 die;
354 345 }
355 346 }
356 347 die;
@@ -360,10 +351,10 @@
360 351 * Export Menu Editor Settings
361 352 *
362 353 * @return void
363 354 */
364 - public function export_menu_settings() {
365 - if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' ) > 0 ) {
355 + public function adminify_export_menu_settings() {
356 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' ) > 0 ) {
366 357 if ( !current_user_can( 'manage_options' ) ) {
367 358 wp_send_json_error( array(
368 359 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
369 360 ) );
@@ -368,9 +359,9 @@
368 359 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
369 360 ) );
370 361 }
371 362 $menu_editor_options = get_option( $this->prefix );
372 - echo wp_json_encode( $menu_editor_options );
363 + echo json_encode( $menu_editor_options );
373 364 }
374 365 die;
375 366 }
376 367
@@ -378,21 +369,19 @@
378 369 * Import Menu Editor Settings
379 370 *
380 371 * @since 1.0.0
381 372 */
382 - public function import_menu_settings() {
383 - if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'pxlbsadminify-menu-editor-security-nonce', 'security' ) > 0 ) {
373 + public function adminify_import_menu_settings() {
374 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-menu-editor-security-nonce', 'security' ) > 0 ) {
384 375 if ( !current_user_can( 'manage_options' ) ) {
385 376 wp_send_json_error( array(
386 377 'message' => __( 'You do not have permission to perform this action.', 'adminify' ),
387 378 ) );
388 379 }
389 - $new_options = ( isset( $_POST['settings'] ) ? wp_kses_post_deep( wp_unslash( $_POST['settings'] ) ) : '' );
390 - // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- sanitized via wp_kses_post_deep().
380 + $new_options = wp_kses_post_deep( $_POST['settings'] );
391 381 if ( $new_options == '' || !is_array( $new_options ) ) {
392 382 $message = __( 'No options supplied to save', 'adminify' );
393 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
394 - echo Utils::kses_custom( $this->ajax_error_message( $message ) );
383 + echo Utils::wp_kses_custom( $this->ajax_error_message( $message ) );
395 384 die;
396 385 }
397 386 if ( is_array( $new_options ) ) {
398 387 update_option( $this->prefix, $new_options );
@@ -398,14 +387,13 @@
398 387 update_option( $this->prefix, $new_options );
399 388 $returndata = [];
400 389 $returndata['success'] = true;
401 390 $returndata['message'] = __( 'Menu Imported', 'adminify' );
402 - echo wp_json_encode( $returndata );
391 + echo json_encode( $returndata );
403 392 die;
404 393 } else {
405 394 $message = __( 'Something went wrong', 'adminify' );
406 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
407 - echo Utils::kses_custom( $this->ajax_error_message( $message ) );
395 + echo Utils::wp_kses_custom( $this->ajax_error_message( $message ) );
408 396 die;
409 397 }
410 398 }
411 399 die;
@@ -568,9 +556,9 @@
568 556 $menu_icon = str_replace( 'dashicons ', '', $menu_s['icon'] );
569 557 } else {
570 558 if ( empty( $menu_s['icon'] ) || strpos( $menu_s['icon'], ',' ) !== false ) {
571 559 if ( empty( $menu_s['icon'] ) ) {
572 - $menu_icon = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg';
560 + $menu_icon = WP_ADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg';
573 561 } else {
574 562 $menu_icon = explode( ',', $menu_s['icon'] )[1];
575 563 }
576 564 } else {
@@ -717,9 +705,9 @@
717 705 $separator_order = $this->menu[$key]['order'];
718 706 $empty_separator = array(
719 707 0 => '',
720 708 1 => 'read',
721 - 2 => 'separator_' . wp_rand( 200, 1000 ) * 1000,
709 + 2 => 'separator_' . rand( 200, 1000 ) * 1000,
722 710 3 => '',
723 711 4 => 'wp-menu-separator',
724 712 'order' => $separator_order + 0.5,
725 713 );
@@ -760,9 +748,9 @@
760 748 }
761 749 $submenu_settings = $this->menu_settings[$parentname]['submenu'];
762 750 $tempsub = [];
763 751 foreach ( $subitems as $current_menu_item ) {
764 - $sub_level = apply_filters( 'pxlbsadminify/menu_editor', [
752 + $sub_level = apply_filters( 'adminify/menu_editor', [
765 753 'sub_level' => false,
766 754 ] );
767 755 if ( !empty( $sub_level['sub_level'] ) ) {
768 756 if ( empty( $current_menu_item[0] ) || $current_menu_item[2] === 'wp-adminify-settings-pricing' ) {
@@ -930,11 +918,11 @@
930 918 }
931 919 // Normalize disabled_for array
932 920 $disabled_for_arr = [];
933 921 foreach ( $disabled_for as $v ) {
934 - $disabled_for_arr[] = Utils::sluggify_with_underscores( $v );
922 + $disabled_for_arr[] = jlt_adminify_sluggify_with_underscores( $v );
935 923 }
936 - $slugify_user_login = Utils::sluggify_with_underscores( $current_user->user_login );
924 + $slugify_user_login = jlt_adminify_sluggify_with_underscores( $current_user->user_login );
937 925 // Check Username
938 926 if ( in_array( $current_user->user_login, $disabled_for_arr ) || in_array( $slugify_user_login, $disabled_for_arr ) ) {
939 927 return true;
940 928 }
@@ -1334,9 +1322,8 @@
1334 1322
1335 1323 <div class="select is-small">
1336 1324
1337 1325 <?php
1338 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- generate_user_rules_select_field() returns a trusted <select> template with form inputs that wp_kses_post() would strip; values inside are escaped.
1339 1326 echo $this->generate_user_rules_select_field( $menu_id, $disabled_for );
1340 1327 ?>
1341 1328
1342 1329 </div>
@@ -1471,9 +1458,9 @@
1471 1458 ?>"></i>
1472 1459 <?php
1473 1460 }
1474 1461 } else {
1475 - $adminify_icon = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg';
1462 + $adminify_icon = WP_ADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg';
1476 1463 if ( empty( $icons[$default_icons] ) ) {
1477 1464 echo '<i class=""><img width="24" height="24" src=' . esc_url( $adminify_icon ) . ' ></i>';
1478 1465 } else {
1479 1466 ?>
@@ -1497,9 +1484,9 @@
1497 1484 <?php
1498 1485 $upgrade_pro = '';
1499 1486 $separator_name_attr = '';
1500 1487 $upgrade_pro = 'upgrade-pro';
1501 - $separator_name_attr = Utils::upgrade_pro_notice( 'Add Separator' );
1488 + $separator_name_attr = Utils::adminify_upgrade_pro( 'Add Separator' );
1502 1489 ?>
1503 1490
1504 1491 <div class='column <?php
1505 1492 echo esc_attr( $upgrade_pro );
@@ -1507,11 +1494,11 @@
1507 1494 <label for="seperator-<?php
1508 1495 echo esc_attr( $name_attr );
1509 1496 ?>">
1510 1497 <?php
1511 - $separator_content = apply_filters( 'pxlbsadminify/menu_editor/add_separator', $separator_name_attr, $separator );
1498 + $separator_content = apply_filters( 'adminify/menu_editor/add_separator', $separator_name_attr, $separator );
1512 1499 // Apply the filter
1513 - echo wp_kses_post( $separator_content || "" );
1500 + echo $separator_content;
1514 1501 ?>
1515 1502 </label>
1516 1503 </div>
1517 1504 </div>
@@ -1619,9 +1606,8 @@
1619 1606 ?></label>
1620 1607
1621 1608 <div class="select is-small">
1622 1609 <?php
1623 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- generate_user_rules_select_field() returns a trusted <select> template with form inputs that wp_kses_post() would strip; values inside are escaped.
1624 1610 echo $this->generate_user_rules_select_field( $menu_id, $disabled_for );
1625 1611 ?>
1626 1612 </div>
1627 1613 </div>
@@ -1733,9 +1719,8 @@
1733 1719 ?></label>
1734 1720
1735 1721 <div class="select is-small">
1736 1722 <?php
1737 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- generate_user_rules_select_field() returns a trusted <select> template with form inputs that wp_kses_post() would strip; values inside are escaped.
1738 1723 echo $this->generate_user_rules_select_field( $menu_id, $disabled_for, 'sub_menu' );
1739 1724 ?>
1740 1725 </div>
1741 1726 </div>
@@ -1792,10 +1777,10 @@
1792 1777 /**
1793 1778 * Add New Menu Item.
1794 1779 */
1795 1780 public function render_add_new_menu_item( $submenu = false ) {
1796 - $add_item = apply_filters( 'pxlbsadminify/menu_editor', [
1797 - 'upgrade_pro' => Utils::upgrade_pro_notice( ' ' ),
1781 + $add_item = apply_filters( 'adminify/menu_editor', [
1782 + 'upgrade_pro' => Utils::adminify_upgrade_pro( ' ' ),
1798 1783 'upgrade_class' => 'upgrade-pro',
1799 1784 ] );
1800 1785 ?>
1801 1786 <div class="adminify-accordion adminify-add-new-menu-editor-item upgrade-pro adminify-field adminify-field-switcher adminify-depend-visible adminify-depend-on adminify-pro-notice <?php
@@ -1800,9 +1785,9 @@
1800 1785 ?>
1801 1786 <div class="adminify-accordion adminify-add-new-menu-editor-item upgrade-pro adminify-field adminify-field-switcher adminify-depend-visible adminify-depend-on adminify-pro-notice <?php
1802 1787 echo esc_attr( ( $submenu ? 'submenu' : '' ) );
1803 1788 ?> <?php
1804 - echo esc_attr( $add_item['upgrade_class'] );
1789 + echo Utils::wp_kses_custom( $add_item['upgrade_class'] );
1805 1790 ?>">
1806 1791 <div class="inner-text">
1807 1792 <i class="dashicons dashicons-plus-alt"></i>
1808 1793 <span class="title"><?php
@@ -1809,9 +1794,9 @@
1809 1794 esc_html_e( 'Add Item', 'adminify' );
1810 1795 ?></span>
1811 1796 </div>
1812 1797 <?php
1813 - echo wp_kses( $add_item['upgrade_pro'], Utils::kses_allowed_html() );
1798 + echo Utils::wp_kses_custom( $add_item['upgrade_pro'] );
1814 1799 ?>
1815 1800 </div>
1816 1801 <?php
1817 1802 }
@@ -1826,15 +1811,14 @@
1826 1811
1827 1812 <div class="adminify-flex adminify-flex-center adminify-justify-between">
1828 1813 <div class="adminify-menu-editor-help-urls adminify-flex adminify-flex-center adminify-gap-2">
1829 1814 <?php
1830 - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- help_urls() returns a trusted template containing inline SVG icons that wp_kses_post() would strip; URLs inside are passed through esc_url().
1831 - echo Utils::help_urls(
1815 + echo Utils::adminfiy_help_urls(
1832 1816 __( 'Menu Editor', 'adminify' ),
1833 1817 'https://wpadminify.com/kb/wordpress-dashboard-menu-editor/',
1834 1818 'https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8',
1835 1819 'https://www.facebook.com/groups/jeweltheme',
1836 - esc_url( \PXLBSAdminify\Inc\Admin\AdminSettings::support_url() )
1820 + \WPAdminify\Inc\Admin\AdminSettings::support_url()
1837 1821 );
1838 1822 ?>
1839 1823 </div>
1840 1824
@@ -1890,9 +1874,9 @@
1890 1874 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.00065 1.33334C4.31865 1.33334 1.33398 4.31801 1.33398 8.00001C1.33398 11.682 4.31865 14.6667 8.00065 14.6667C11.6827 14.6667 14.6673 11.682 14.6673 8.00001C14.6673 4.31801 11.6827 1.33334 8.00065 1.33334ZM2.66732 8.00001C2.66732 9.4145 3.22922 10.7711 4.22942 11.7712C5.22961 12.7714 6.58616 13.3333 8.00065 13.3333C9.41514 13.3333 10.7717 12.7714 11.7719 11.7712C12.7721 10.7711 13.334 9.4145 13.334 8.00001C13.334 6.58552 12.7721 5.22897 11.7719 4.22877C10.7717 3.22858 9.41514 2.66668 8.00065 2.66668C6.58616 2.66668 5.22961 3.22858 4.22942 4.22877C3.22922 5.22897 2.66732 6.58552 2.66732 8.00001V8.00001Z" fill="#4E4B66" />
1891 1875 </svg>
1892 1876
1893 1877 <?php
1894 - esc_html_e( 'If you have Adminify Menu Module disabled, icons and label dividers won\'t change.', 'adminify' );
1878 + esc_html_e( 'If you have WP Adminify Menu Module disabled, icons and label dividers won\'t change.', 'adminify' );
1895 1879 ?>
1896 1880
1897 1881 </p>
1898 1882 </div>
@@ -1900,9 +1884,9 @@
1900 1884
1901 1885 <?php
1902 1886 }
1903 1887
1904 - public function menu_editor_contents() {
1888 + public function jltwp_adminify_menu_editor_contents() {
1905 1889 ?>
1906 1890
1907 1891 <div class="wrap">
1908 1892 <div class="wp-adminify--menu--editor--container">