| @@ -9,50 +9,30 @@ | ||
| 9 | 9 | exit; |
| 10 | 10 | } |
| 11 | 11 | |
| 12 | 12 | if ( ! is_admin() ) { |
| 13 | - return; | |
| 13 | + return NULL; | |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | -// If is AJAX Call. | |
| 17 | -if ( defined('DOING_AJAX') && DOING_AJAX ) { | |
| 18 | - return; | |
| 19 | -} | |
| 16 | +// Return registered widgets; only on page index/dashboard :( | |
| 17 | +add_action( 'wp_dashboard_setup', '_mw_adminimize_dashboard_setup', 99 ); | |
| 20 | 18 | |
| 21 | -add_action( 'wp_dashboard_setup', '_mw_adminimize_update_dashboard_widgets', 9998 ); | |
| 22 | -/** | |
| 23 | - * Write dashboard widgets in settings. | |
| 24 | - * | |
| 25 | - * @return bool | |
| 26 | - */ | |
| 27 | -function _mw_adminimize_update_dashboard_widgets() { | |
| 19 | +function _mw_adminimize_dashboard_setup() { | |
| 28 | 20 | |
| 29 | - // Only manage options users have the chance to update the settings. | |
| 30 | - if ( ! current_user_can( 'manage_options' ) ) { | |
| 31 | - return FALSE; | |
| 32 | - } | |
| 21 | + $adminimizeoptions = _mw_adminimize_get_option_value(); | |
| 33 | 22 | |
| 34 | - $adminimizeoptions = _mw_adminimize_get_option_value(); | |
| 35 | - $adminimizeoptions[ 'mw_adminimize_dashboard_widgets' ] = _mw_adminimize_get_dashboard_widgets(); | |
| 23 | + $widgets = _mw_adminimize_get_dashboard_widgets(); | |
| 24 | + $adminimizeoptions[ 'mw_adminimize_dashboard_widgets' ] = $widgets; | |
| 36 | 25 | |
| 37 | - return _mw_adminimize_update_option( $adminimizeoptions ); | |
| 38 | -} | |
| 26 | + _mw_adminimize_update_option( $adminimizeoptions ); | |
| 39 | 27 | |
| 40 | -// Return registered widgets; only on page index/dashboard :( | |
| 41 | -add_action( 'wp_dashboard_setup', '_mw_adminimize_dashboard_setup', 9999 ); | |
| 42 | -/** | |
| 43 | - * Set dashboard widget options. | |
| 44 | - */ | |
| 45 | -function _mw_adminimize_dashboard_setup() { | |
| 46 | - | |
| 47 | 28 | // exclude super admin |
| 48 | 29 | if ( _mw_adminimize_exclude_super_admin() ) { |
| 49 | - return; | |
| 30 | + return NULL; | |
| 50 | 31 | } |
| 51 | 32 | |
| 52 | 33 | $user_roles = _mw_adminimize_get_all_user_roles(); |
| 53 | 34 | |
| 54 | - $disabled_dashboard_option_ = array(); | |
| 55 | 35 | foreach ( $user_roles as $role ) { |
| 56 | 36 | $disabled_dashboard_option_[ $role ] = _mw_adminimize_get_option_value( |
| 57 | 37 | 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' |
| 58 | 38 | ); |
| @@ -63,57 +43,46 @@ | ||
| 63 | 43 | $disabled_dashboard_option_[ $role ][ '0' ] = ''; |
| 64 | 44 | } |
| 65 | 45 | } |
| 66 | 46 | |
| 67 | - // Get all widgets. | |
| 68 | - $widgets = _mw_adminimize_get_dashboard_widgets(); | |
| 69 | - // Get current user data. | |
| 70 | - $user = wp_get_current_user(); | |
| 71 | 47 | foreach ( $user_roles as $role ) { |
| 48 | + $user = wp_get_current_user(); | |
| 72 | 49 | |
| 73 | - if ( is_array( $user->roles ) | |
| 74 | - && is_array( $disabled_dashboard_option_[ $role ] ) | |
| 75 | - && in_array( $role, $user->roles ) | |
| 76 | - && _mw_adminimize_current_user_has_role( $role ) | |
| 77 | - ) { | |
| 78 | - foreach ( $disabled_dashboard_option_[ $role ] as $widget ) { | |
| 79 | - if ( isset( $widgets[ $widget ][ 'context' ] ) ) { | |
| 80 | - remove_meta_box( $widget, 'dashboard', $widgets[ $widget ][ 'context' ] ); | |
| 50 | + if ( is_array( $user->roles ) && in_array( $role, $user->roles ) ) { | |
| 51 | + if ( _mw_adminimize_current_user_has_role( $role ) && is_array( $disabled_dashboard_option_[ $role ] ) ) { | |
| 52 | + foreach ( $disabled_dashboard_option_[ $role ] as $widget ) { | |
| 53 | + if ( isset( $widgets[ $widget ][ 'context' ] ) ) { | |
| 54 | + remove_meta_box( $widget, 'dashboard', $widgets[ $widget ][ 'context' ] ); | |
| 55 | + } | |
| 81 | 56 | } |
| 82 | 57 | } |
| 83 | 58 | } |
| 84 | - | |
| 85 | 59 | } |
| 86 | 60 | |
| 87 | 61 | } |
| 88 | 62 | |
| 89 | -/** | |
| 90 | - * Get all registered dashboard widgets. | |
| 91 | - * | |
| 92 | - * @return array | |
| 93 | - */ | |
| 94 | 63 | function _mw_adminimize_get_dashboard_widgets() { |
| 95 | 64 | |
| 96 | 65 | global $wp_meta_boxes; |
| 97 | 66 | |
| 98 | 67 | $widgets = array(); |
| 99 | - if ( ! isset( $wp_meta_boxes[ 'dashboard' ] ) ) { | |
| 100 | - return $widgets; | |
| 101 | - } | |
| 68 | + if ( isset( $wp_meta_boxes[ 'dashboard' ] ) ) { | |
| 102 | 69 | |
| 103 | - foreach ( $wp_meta_boxes[ 'dashboard' ] as $context => $datas ) { | |
| 104 | - foreach ( $datas as $priority => $data ) { | |
| 105 | - foreach ( $data as $widget => $value ) { | |
| 106 | - $widgets[ $widget ] = array( | |
| 107 | - 'id' => $widget, | |
| 108 | - 'title' => strip_tags( | |
| 109 | - preg_replace( '/( |)<span.*span>/im', '', $value[ 'title' ] ) | |
| 110 | - ), | |
| 111 | - 'context' => $context, | |
| 112 | - 'priority' => $priority | |
| 113 | - ); | |
| 70 | + foreach ( $wp_meta_boxes[ 'dashboard' ] as $context => $datas ) { | |
| 71 | + foreach ( $datas as $priority => $data ) { | |
| 72 | + foreach ( $data as $widget => $value ) { | |
| 73 | + $widgets[ $widget ] = array( | |
| 74 | + 'id' => $widget, | |
| 75 | + 'title' => strip_tags( | |
| 76 | + preg_replace( '/( |)<span.*span>/im', '', $value[ 'title' ] ) | |
| 77 | + ), | |
| 78 | + 'context' => $context, | |
| 79 | + 'priority' => $priority | |
| 80 | + ); | |
| 81 | + } | |
| 114 | 82 | } |
| 115 | 83 | } |
| 84 | + | |
| 116 | 85 | } |
| 117 | 86 | |
| 118 | 87 | return $widgets; |
| 119 | 88 | } |