From fb8e4648e3052303a1119530a637b8a2bc5103e8 Mon Sep 17 00:00:00 2001 From: ashubawork Date: Fri, 5 Jan 2024 16:52:05 +0200 Subject: [PATCH 1/3] - extend nav menu for extensions --- includes/admin/core/class-admin-navmenu.php | 27 ++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/includes/admin/core/class-admin-navmenu.php b/includes/admin/core/class-admin-navmenu.php index 37ca9824..d994a594 100644 --- a/includes/admin/core/class-admin-navmenu.php +++ b/includes/admin/core/class-admin-navmenu.php @@ -22,7 +22,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { /** * Admin_Navmenu constructor. */ - function __construct() { + public function __construct() { self::$fields = array( 'um_nav_public' => __( 'Display Mode', 'ultimate-member' ), 'um_nav_roles' => __( 'By Role', 'ultimate-member' ), @@ -47,9 +47,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { */ public function wp_nav_menu_item_custom_fields( $item_id, $item, $depth, $args, $id = null ) { - $um_nav_public = get_post_meta( $item->ID, 'menu-item-um_nav_public', true ); + $um_nav_public = get_post_meta( $item->ID, 'menu-item-um_nav_public', true ); $_nav_roles_meta = get_post_meta( $item->ID, 'menu-item-um_nav_roles', true ); - $um_nav_roles = array(); + $um_nav_roles = array(); if ( $_nav_roles_meta ) { foreach ( $_nav_roles_meta as $key => $value ) { if ( is_int( $key ) ) { @@ -95,9 +95,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { $html .= ''; $i++; } + echo $html; ?>

+
$label ) { $key = sprintf( 'menu-item-%s', $_key ); @@ -132,11 +137,21 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { // Sanitize if ( ! empty( $_POST[ $key ][ $menu_item_db_id ] ) ) { // Do some checks here... - $value = is_array( $_POST[ $key ][ $menu_item_db_id ] ) ? - array_map( 'sanitize_key', array_keys( $_POST[ $key ][ $menu_item_db_id ] ) ) : (int) $_POST[ $key ][ $menu_item_db_id ]; + if ( is_array( $_POST[ $key ][ $menu_item_db_id ] ) ) { + $value = $_POST[ $key ][ $menu_item_db_id ]; + $sanitized_keys = array_map( 'sanitize_key', array_keys( $value ) ); + $value = $sanitized_keys; + } else { + if ( 'on' === $_POST[ $key ][ $menu_item_db_id ] ) { + $value = 1; + } else { + $value = (int) $_POST[ $key ][ $menu_item_db_id ]; + } + } } else { $value = null; } + // phpcs:enable WordPress.Security.NonceVerification // Update if ( ! is_null( $value ) ) { From 6b1c0d22a59ad89d03d02c635d7dd00e79237291 Mon Sep 17 00:00:00 2001 From: ashubawork Date: Mon, 8 Jan 2024 11:49:54 +0200 Subject: [PATCH 2/3] - fix wpcs --- includes/admin/core/class-admin-navmenu.php | 27 +++++++++++---------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/includes/admin/core/class-admin-navmenu.php b/includes/admin/core/class-admin-navmenu.php index d994a594..d5948b73 100644 --- a/includes/admin/core/class-admin-navmenu.php +++ b/includes/admin/core/class-admin-navmenu.php @@ -61,35 +61,36 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { ?>
-

+

-

>
+

>
'; foreach ( $section_fields_per_page as $k => $title ) { - $id_attr = ' id="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" '; - $for_attr = ' for="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" '; - $checked_attr = checked( in_array($k,$um_nav_roles), true, false ); - $html .= ""; + $id_attr = ' id="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" '; + $for_attr = ' for="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" '; + $checked_attr = checked( in_array( $k, $um_nav_roles, true ), true, false ); + $html .= ""; } $html .= ''; From 1491f47fb8b2762a59d4e714c5b4e33195b815aa Mon Sep 17 00:00:00 2001 From: ashubawork Date: Mon, 8 Jan 2024 12:45:42 +0200 Subject: [PATCH 3/3] - fix hook params --- includes/admin/core/class-admin-navmenu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/core/class-admin-navmenu.php b/includes/admin/core/class-admin-navmenu.php index d5948b73..611e9636 100644 --- a/includes/admin/core/class-admin-navmenu.php +++ b/includes/admin/core/class-admin-navmenu.php @@ -100,7 +100,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { echo $html; ?>

- +