Customize > Menus section without UM settings // add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( $this, 'wp_nav_menu_item_custom_fields_customize_template' ), 20, 5 ); } public function set_variables() { self::$fields = array( 'um_nav_public' => __( 'Display Mode', 'ultimate-member' ), 'um_nav_roles' => __( 'By Role', 'ultimate-member' ), ); } /** * Fires just before the move buttons of a nav menu item in the menu editor. * Adds block "Ultimate Member Menu Settings" * * @param int $item_id Menu item ID. * @param \WP_Post $item Menu item data object. * @param int $depth Depth of menu item. Used for padding. * @param \stdClass $args An object of menu item arguments. * @param int $id Nav menu ID. */ 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 ); $_nav_roles_meta = get_post_meta( $item->ID, 'menu-item-um_nav_roles', true ); $um_nav_roles = array(); if ( $_nav_roles_meta ) { foreach ( $_nav_roles_meta as $key => $value ) { if ( is_int( $key ) ) { $um_nav_roles[] = $value; } } } $options = UM()->roles()->get_roles( false ); ?>

>
'; 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 ), true, false ); $html .= ""; } $html .= ''; $i++; } echo $html; ?>

Customize > Menus section without UM settings * @return void */ public function wp_nav_menu_item_custom_fields_customize_template() { ?>

$label ) { $key = sprintf( 'menu-item-%s', $_key ); // Sanitize if ( ! empty( $_POST[ $key ][ $menu_item_db_id ] ) ) { // Do some checks here... if ( is_array( $_POST[ $key ][ $menu_item_db_id ] ) ) { $value = array_map( 'sanitize_key', array_keys( $_POST[ $key ][ $menu_item_db_id ] ) ); } else { $value = (int) $_POST[ $key ][ $menu_item_db_id ]; } } else { $value = null; } // phpcs:enable WordPress.Security.NonceVerification // Update if ( ! is_null( $value ) ) { update_post_meta( $menu_item_db_id, $key, $value ); } else { delete_post_meta( $menu_item_db_id, $key ); } } } /** * @todo Deprecate */ function _wp_template() { ?>