70 lines
1.2 KiB
PHP
70 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* MonsterInsights Reporting.
|
|
*
|
|
* Handles aggregating data.
|
|
*
|
|
* @since 7.0.0
|
|
*
|
|
* @package MonsterInsights
|
|
* @subpackage GA Reporting
|
|
* @author Chris Christoff
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
final class MonsterInsights_Reporting {
|
|
|
|
public $reports = array();
|
|
|
|
public function __construct() {
|
|
|
|
}
|
|
|
|
public function add_report( $report = false ) {
|
|
if ( empty( $report ) || ! is_object( $report ) ) {
|
|
return;
|
|
}
|
|
|
|
if ( version_compare( $report->version, '1.0.0', '<' ) ) {
|
|
return;
|
|
}
|
|
|
|
$this->reports[] = $report;
|
|
}
|
|
|
|
public function get_aggregate_data() {
|
|
if ( ! empty( $this->reports ) ) {
|
|
foreach ( $this->reports as $report ) {
|
|
$report->get_data( array( 'default' => true ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
// $where possible values: auto, site, network, both
|
|
public function delete_aggregate_data( $where = 'site' ) {
|
|
if ( ! empty( $this->reports ) ) {
|
|
foreach ( $this->reports as $report ) {
|
|
$report->delete_cache( $where );
|
|
}
|
|
}
|
|
}
|
|
|
|
public function get_report( $name = '' ) {
|
|
if ( empty( $name ) || empty( $this->reports ) ) {
|
|
return false;
|
|
}
|
|
|
|
foreach ( $this->reports as $report ) {
|
|
if ( $name === $report->name ) {
|
|
return $report;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|