WordPress.org

Make WordPress Core

Ticket #23216: 23216-3.patch

File 23216-3.patch, 3.7 KB (added by azaozz, 5 years ago)
  • wp-admin/includes/ajax-actions.php

     
    1313        $response = array();
    1414
    1515        // screen_id is the same as $current_screen->id and the JS global 'pagenow'
    16         if ( ! empty($_POST['screenid']) )
    17                 $screen_id = sanitize_key($_POST['screenid']);
     16        if ( ! empty($_POST['screen_id']) )
     17                $screen_id = sanitize_key($_POST['screen_id']);
    1818        else
    19                 $screen_id = 'site';
     19                $screen_id = 'front';
    2020
    2121        if ( ! empty($_POST['data']) ) {
    2222                $data = wp_unslash( (array) $_POST['data'] );
     
    2929        do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
    3030
    3131        // send the current time according to the server
    32         $response['servertime'] = time();
     32        $response['server_time'] = time();
    3333
    3434        wp_send_json($response);
    3535}
     
    20752075        $response = array();
    20762076
    20772077        // screen_id is the same as $current_screen->id and the JS global 'pagenow'
    2078         if ( ! empty($_POST['screenid']) )
    2079                 $screen_id = sanitize_key($_POST['screenid']);
     2078        if ( ! empty($_POST['screen_id']) )
     2079                $screen_id = sanitize_key($_POST['screen_id']);
    20802080        else
    2081                 $screen_id = 'site';
     2081                $screen_id = 'front';
    20822082
    20832083        if ( ! empty($_POST['data']) ) {
    20842084                $data = (array) $_POST['data'];
    2085                 // todo: how much to sanitize and preset and what to leave to be accessed from $data or $_POST..?
    2086                 $user = wp_get_current_user();
    2087                 $data['user_id'] = $user->exists() ? $user->ID : 0;
    20882085
    20892086                // todo: separate filters: 'heartbeat_[action]' so we call different callbacks only when there is data for them,
    20902087                // or all callbacks listen to one filter and run when there is something for them in $data?
     
    20972094        do_action( 'heartbeat_tick', $response, $screen_id );
    20982095
    20992096        // send the current time acording to the server
    2100         $response['servertime'] = time();
     2097        $response['server_time'] = time();
    21012098
    21022099        wp_send_json($response);
    21032100}
  • wp-includes/js/heartbeat.js

     
    1111                        running,
    1212                        beat,
    1313                        nonce,
    14                         screenid = typeof pagenow != 'undefined' ? pagenow : '',
     14                        screenId = typeof pagenow != 'undefined' ? pagenow : '',
    1515                        url = typeof ajaxurl != 'undefined' ? ajaxurl : '',
    1616                        settings,
    1717                        tick = 0,
     
    4242
    4343                        interval = settings.interval || 15; // default interval
    4444                        delete settings.interval;
    45                         // The interval can be from 5 to 60 sec.
    46                         if ( interval < 5 )
    47                                 interval = 5;
     45                        // The interval can be from 15 to 60 sec. and can be set temporarily to 5 sec.
     46                        if ( interval < 15 )
     47                                interval = 15;
    4848                        else if ( interval > 60 )
    4949                                interval = 60;
    5050
    5151                        interval = interval * 1000;
    5252
    53                         // 'screenid' can be added from settings on the front-end where the JS global 'pagenow' is not set
    54                         screenid = screenid || settings.screenid || 'site';
    55                         delete settings.screenid;
     53                        // 'screenId' can be added from settings on the front-end where the JS global 'pagenow' is not set
     54                        screenId = screenId || settings.screenId || 'front';
     55                        delete settings.screenId;
    5656
    5757                        // Add or overwrite public vars
    5858                        $.extend( this, settings );
     
    8383                        return false;
    8484                }
    8585
    86                 // Set error state and fire an event if XHR errors or timeout
     86                // Set error state and fire an event on XHR errors or timeout
    8787                function errorstate( error ) {
    8888                        var trigger;
    8989
     
    148148                        send.interval = interval / 1000;
    149149                        send._nonce = nonce;
    150150                        send.action = 'heartbeat';
    151                         send.screenid = screenid;
     151                        send.screen_id = screenId;
    152152                        send.has_focus = hasFocus;
    153153
    154154                        connecting = true;