Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
50.00% covered (danger)
50.00%
3 / 6
50.00% covered (danger)
50.00%
2 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
Stats
50.00% covered (danger)
50.00%
2 / 4
50.00% covered (danger)
50.00%
2 / 4
6.00
0.00% covered (danger)
0.00%
0 / 1
 name
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 init_listeners
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 sync_site_stats
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 add_stats
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * Stats sync module.
4 *
5 * @package automattic/jetpack-sync
6 */
7
8namespace Automattic\Jetpack\Sync\Modules;
9
10use Automattic\Jetpack\Heartbeat;
11
12if ( ! defined( 'ABSPATH' ) ) {
13    exit( 0 );
14}
15
16/**
17 * Class to handle sync for stats.
18 */
19class Stats extends Module {
20    /**
21     * Sync module name.
22     *
23     * @access public
24     *
25     * @return string
26     */
27    public function name() {
28        return 'stats';
29    }
30
31    /**
32     * Initialize stats action listeners.
33     *
34     * @access public
35     *
36     * @param callable $callback Unused - required for parent class compatibility.
37     */
38    public function init_listeners( $callback ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
39        add_action( 'jetpack_heartbeat', array( $this, 'sync_site_stats' ), 20 );
40    }
41
42    /**
43     * Send Heartbeat stats immediately.
44     *
45     * @access public
46     */
47    public function sync_site_stats() {
48
49        $this->send_action( 'jetpack_sync_heartbeat_stats', $this->add_stats() );
50    }
51
52    /**
53     * Retrieve the stats data for the site.
54     *
55     * @access public
56     *
57     * @return array Stats data.
58     */
59    public function add_stats() {
60        return array( Heartbeat::generate_stats_array() );
61    }
62}