__( 'Display Mode' ), 'um_nav_roles' => __( 'By Role' ) ); //add_action( 'wp_nav_menu_item_custom_fields', array( __CLASS__, '_fields' ), 1, 4 ); add_action( 'wp_update_nav_menu_item', array( __CLASS__, '_save' ), 10, 3 ); add_filter( 'manage_nav-menus_columns', array( __CLASS__, '_columns' ), 99 ); add_action( 'load-nav-menus.php', array( __CLASS__, 'enqueue_nav_menus_scripts' ) ); add_action( 'admin_footer-nav-menus.php', array( __CLASS__, '_wp_template' ) ); } public static function _save( $menu_id, $menu_item_db_id, $menu_item_args ) { if (defined( 'DOING_AJAX' ) && DOING_AJAX) { return; } foreach (self::$fields as $_key => $label) { if ($_key == 'um_nav_roles') { $key = sprintf( 'menu-item-%s', $_key ); // Sanitize if (!empty( $_POST[$key][$menu_item_db_id] )) { // Do some checks here... $value = $_POST[$key][$menu_item_db_id]; } else { $value = null; } } else { $key = sprintf( 'menu-item-%s', $_key ); // Sanitize if (!empty( $_POST[$key][$menu_item_db_id] )) { // Do some checks here... $value = $_POST[$key][$menu_item_db_id]; } else { $value = null; } } // Update if (!is_null( $value )) { update_post_meta( $menu_item_db_id, $key, $value ); } else { delete_post_meta( $menu_item_db_id, $key ); } } } public static function _fields( $id, $item, $depth, $args ) { ?>

$label) { $key = sprintf( 'menu-item-%s', $_key ); $id = sprintf( 'edit-%s-%s', $key, $item->ID ); $name = sprintf( '%s[%s]', $key, $item->ID ); $value = get_post_meta( $item->ID, $key, true ); $role_name = sprintf( '%s[%s][]', $key, $item->ID ); $class = sprintf( 'field-%s', $_key ); ?>


roles()->get_roles(); $i = 0; $html = ''; $columns = 2; while ($i < $columns) { $per_page = ceil( count( $options ) / $columns ); $section_fields_per_page = array_slice( $options, $i * $per_page, $per_page ); $html .= ''; foreach ($section_fields_per_page as $k => $title) { $id_attr = ' id="' . $id . '_' . $k . '" '; $for_attr = ' for="' . $id . '_' . $k . '" '; $name_attr = ' name="' . $role_name . '" '; $html .= ""; } $html .= ''; $i++; } echo $html; ?>

admin_enqueue()->load_nav_manus_scripts(); $menus = get_posts( 'post_type=nav_menu_item&numberposts=-1' ); $menu_restriction_data = array(); foreach ($menus as $data) { $_nav_roles_meta = get_post_meta( $data->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; } } $menu_restriction_data[$data->ID] = array( 'um_nav_public' => get_post_meta( $data->ID, 'menu-item-um_nav_public', true ), 'um_nav_roles' => $um_nav_roles, ); } wp_localize_script( 'um_admin_nav_manus', 'um_menu_restriction_data', $menu_restriction_data ); } public static function _wp_template() { echo ''; } } endif; UM_Menu_Item_Custom_Fields_Editor::init();