ID; $roles = $current_user->roles; $show = false; $data = array(); $settings_user = get_option("_admin_menu_pro_settings_$user_id"); if( is_array($settings_user) && count($settings_user)>0 ) { $show = true; $data = $settings_user; }else{ $settings_role = get_option("_admin_menu_pro_settings_{$roles[0]}"); if( is_array($settings_role) && count($settings_role)>0 ) { $show = true; $data = $settings_role; }else{ $settings_all = get_option("_admin_menu_pro_settings_"); if( is_array($settings_all) && count($settings_all)>0 ) { $show = true; $data = $settings_all; } } } if( $show && ( $data["backgound"] != "#23282d" || $data["color"] != "#eee" || $data["backgound_active"] != "#0073aa" || $data["color_active"] != "#fff" ) ) { ?> roles; $user_id = $current_user->ID; $main_menu = get_option("_admin_menu_pro_main_{$user_id}"); $sub_menu = get_option("_admin_menu_pro_sub_{$user_id}"); if( is_array($main_menu) && count($main_menu)>0 ) { $submenu = $sub_menu; $menu = $main_menu; }else{ $main_menu2 = get_option("_admin_menu_pro_main_{$roles[0]}"); $sub_menu2 = get_option("_admin_menu_pro_sub_{$roles[0]}"); if( is_array($main_menu2) && count($main_menu2)>0 ) { $submenu = $sub_menu2; $menu = $main_menu2; }else{ $main_menu1 = get_option("_admin_menu_pro_main_"); $sub_menu1 = get_option("_admin_menu_pro_sub_"); $left_sub = false; $new_menu = array(); if( is_array($main_menu1) && count($main_menu1)>0 ) { foreach( $main_menu1 as $key => $value ) { $url = $value[2]; if( !admin_menu_pro_settings::check_role($roles[0],$value[1])){ //unset($main_menu1[$key]); }else{ $new_menu[$key] = $value; $left_sub = true; } if( @is_array($sub_menu1[$url]) ): foreach( $sub_menu1[$url] as $number => $data) { if( admin_menu_pro_settings::check_role($roles[0],$data[1]) && !$left_sub){ $main_menu1[] = $sub_menu1[$url][$number]; $new_menu[rand(10000,999999)] = $sub_menu1[$url][$number]; } } endif; $left_sub =false; } $submenu = $sub_menu1; $menu = $new_menu; } } } } /* * Update default memu */ public static function set_default_menu($menu_order){ global $menu,$submenu; $current_user = wp_get_current_user(); $roles = $current_user->roles; if( $roles[0] == "administrator") { update_option("_default_menu_pro_main",$menu); update_option("_default_menu_pro_sub",$submenu); } return $menu_order; } /* * Reset default */ function reset_default_menu(){ $role = $_POST["role"]; delete_option("_admin_menu_pro_settings_{$role}"); delete_option("_admin_menu_pro_main_{$role}"); delete_option("_admin_menu_pro_sub_{$role}"); die(); } /* * Save menu */ function save_menu(){ $data = $_POST["data"]; $role = $data[0]["value"]; unset($data[0]); $total_menu = array(); $main = array(); $sub = array(); foreach( $data as $key => $value ){ $name = $value["name"]; preg_match("#\[(.*?)\]#",$name,$rs); $data_key = $rs[1]; $total_menu[$data_key] = $data_key; } //var_dump($total_menu); //die(); $key_parent = ""; foreach( $total_menu as $number ){ $parent_done = 1; foreach( $data as $key => $value ){ //var_dump($value); //die(); $name = $value["name"]; $value = $value["value"]; switch( $name ) { case "menu-item-title[{$number}]": $name_done = $value; break; case "menu-item-classes[{$number}]": if($value == ""){ $value ="admin-menu-class"; } $class_done = trim($value); break; case "menu-item-icon[{$number}]": if( $value == "" ){ $icon_done = "dashicons-admin-generic"; }else{ $icon_done = $value; } break; case "menu-item-target[{$number}]": $target_done = ""; break; case "menu-item-parent-id[{$number}]": $parent_done = $value; //var_dump($number."|".$parent_done."|".$name_done); break; case "menu-item-key[{$number}]": $key_done = $value; break; case "menu-item-capability[{$number}]": $capability_done = $value; break; case "menu-item-key5[{$number}]": $key5_done = $value; break; } } if( $target_done == "_blank"){ if( !preg_match("#admin_menu_blank#",$class_done)){ $class_done .= " admin_menu_blank"; } }else{ if( preg_match("#admin_menu_blank#",$class_done)){ $class_done = preg_replace("#admin_menu_blank#","",$class_done); } } if($parent_done == 0 ){ $key_parent = $key_done; if( !preg_match("#menu-top#",$class_done) ){ if( $class_done == ""){ $class_done = "menu-top"; }else{ $class_done .=" menu-top"; } }; $main[$number] = array(0=>$name_done,1=>$capability_done,2=>$key_done,3=>"",4=>$class_done,5=>$key5_done,6=>$icon_done,7=>1,8=>$target_done); }else{ $class_done = preg_replace("#menu-top#","",$class_done); $sub[$key_parent][] = array(0=>$name_done,1=>$capability_done,2=>$key_done,3=>"",4=>$class_done,5=>$key5_done,6=>$icon_done,7=>1,8=>$target_done); } $target_done =""; } //var_dump($main); //var_dump($_POST["settings"]); update_option("_admin_menu_pro_settings_$role",$_POST["settings"]); update_option("_admin_menu_pro_main_$role",$main); update_option("_admin_menu_pro_sub_$role",$sub); die(); } } new admin_menu_pro;