load_user_options(); // We need to fudge the display settings for first time users so not all of the widgets are displayed, we only want to do this on // the first time they visit the dashboard though so check to see if we've been here before. if ( ! $WP_Statistics->get_user_option( 'editor_set' ) ) { $WP_Statistics->update_user_option( 'editor_set', WP_Statistics::$reg['version'] ); $hidden_widgets = get_user_meta( $WP_Statistics->user_id, 'metaboxhidden_post', true ); if ( ! is_array( $hidden_widgets ) ) { $hidden_widgets = array(); } if ( ! in_array( 'wp_statistics_editor_meta_box', $hidden_widgets ) ) { $hidden_widgets[] = 'wp_statistics_editor_meta_box'; } update_user_meta( $WP_Statistics->user_id, 'metaboxhidden_post', $hidden_widgets ); $hidden_widgets = get_user_meta( $WP_Statistics->user_id, 'metaboxhidden_page', true ); if ( ! is_array( $hidden_widgets ) ) { $hidden_widgets = array(); } if ( ! in_array( 'wp_statistics_editor_meta_box', $hidden_widgets ) ) { $hidden_widgets[] = 'wp_statistics_editor_meta_box'; } update_user_meta( $WP_Statistics->user_id, 'metaboxhidden_page', $hidden_widgets ); } // If the user does not have at least read access to the status plugin, just return without adding the widgets. if ( ! current_user_can( wp_statistics_validate_capability( $WP_Statistics->get_option( 'read_capability', 'manage_option' ) ) ) ) { return; } // If the admin has disabled the widgets don't display them. if ( $WP_Statistics->get_option( 'disable_editor' ) ) { return; } $screens = array( 'post', 'page' ); foreach ( $screens as $screen ) { add_meta_box( 'wp_statistics_editor_meta_box', __( 'Hit Statistics', 'wp-statistics' ), 'WP_Statistics_Editor::meta_box', $screen, 'normal', 'high' ); } } static function meta_box( $post ) { // If the post isn't published yet, don't output the stats as they take too much memory and CPU to compute for no reason. if ( $post->post_status != 'publish' && $post->post_status != 'private' ) { _e( 'This post is not yet published.', 'wp-statistics' ); return; } add_action( 'admin_footer', 'WP_Statistics_Editor::inline_javascript' ); WP_Statistics_Editor::generate_postbox_contents( $post->ID, array( 'args' => array( 'widget' => 'page' ) ) ); } static function generate_postbox_contents( $post, $args ) { $loading_img = '
' .
		                __( 'Loading...', 'wp-statistics' ) .
		                '
'; $widget = $args['args']['widget']; $container_id = 'wp-statistics-' . str_replace( '.', '-', $widget ) . '-div'; echo '
' . $loading_img . '
'; echo ''; wp_statistics_generate_widget_load_javascript( $widget, $container_id ); } static function inline_javascript() { $screen = get_current_screen(); if ( 'post' != $screen->id && 'page' != $screen->id ) { return; } WP_Statistics_Dashboard::load_widget_css_and_scripts(); $loading_img = '
' .
		               __( 'Reloading...', 'wp-statistics' ) .
		               '
'; $new_buttons = ''; $new_button = ''; $admin_url = get_admin_url() . "/admin.php?page="; $page_urls = array(); $page_urls['wp_statistics_editor_meta_box_more_button'] = $admin_url . WP_Statistics::$page['pages'] . '&page-id='; ?>