automatewoo/admin/Analytics/Rest_API.php
fei-source 47d3c9a8b6 Update to v6.2.2
Source: GrootMade/Festinger Vault
2026-03-15 08:31:15 +08:00

98 lines
2.9 KiB
PHP

<?php
namespace AutomateWoo\Admin\Analytics;
use AutomateWoo\Admin\Analytics;
/**
* AutomateWoo Analytics.
* Formerly AutomateWoo > Reports.
*
* @since 5.6.3
*/
class Rest_API {
/**
* Init.
*/
public static function init() {
add_action( 'init', array( __CLASS__, 'setup' ) );
}
/**
* Setup Analytics.
* Register controllers and data stores.
*/
public static function setup() {
if ( self::is_enabled() ) {
// REST API Controllers.
add_filter( 'woocommerce_admin_rest_controllers', array( __CLASS__, 'add_rest_api_controllers' ) );
// Report CSV Exporter Controllers.
add_filter( 'woocommerce_export_report_controller_map', array( __CLASS__, 'add_csv_export_controllers' ) );
// Register data stores.
add_filter( 'woocommerce_data_stores', array( __CLASS__, 'register_data_stores' ) );
}
}
/**
* Whether or not the Rest APIs for Analytic reports are enabled.
*
* @return bool
*/
public static function is_enabled() {
return Analytics::is_enabled();
}
/**
* Add controllers for CSV exports.
*
* @since 6.1.9
*
* @param array $controllers Original list of controllers for CSV exports.
*
* @return array Updated list of controllers.
*/
public static function add_csv_export_controllers( $controllers ) {
$controllers['conversions'] = 'AutomateWoo\Admin\Analytics\Rest_API\Conversions\Controller';
return $controllers;
}
/**
* Adds Analytics REST contollers.
* To be used with `woocommerce_admin_rest_controllers` filter.
*
* @param array $controllers
* @return array Extended with AW Analytics controllers.
*/
public static function add_rest_api_controllers( $controllers ) {
$controllers[] = 'AutomateWoo\Admin\Analytics\Rest_API\Conversions\Controller';
$controllers[] = 'AutomateWoo\Admin\Analytics\Rest_API\Conversions\Stats\Controller';
$controllers[] = 'AutomateWoo\Admin\Analytics\Rest_API\Email_Tracking\Stats_Controller';
$controllers[] = 'AutomateWoo\Admin\Analytics\Rest_API\Unsubscribers\Stats_Controller';
$controllers[] = 'AutomateWoo\Admin\Analytics\Rest_API\Workflow_Runs\Stats_Controller';
return $controllers;
}
/**
* Register Analytics data stores.
* To be used with `woocommerce_data_stores` filter.
*
* @param array $stores
* @return array Extended with AW Analytics stores.
*/
public static function register_data_stores( $stores ) {
$stores['report-conversions-list'] = 'AutomateWoo\Admin\Analytics\Rest_API\Conversions\Store';
$stores['report-conversions-stats'] = 'AutomateWoo\Admin\Analytics\Rest_API\Conversions\Stats\Store';
$stores['report-email-tracking-stats'] = 'AutomateWoo\Admin\Analytics\Rest_API\Email_Tracking\Data_Store';
$stores['report-unsubscribers-stats'] = 'AutomateWoo\Admin\Analytics\Rest_API\Unsubscribers\Data_Store';
$stores['report-workflow-runs-stats'] = 'AutomateWoo\Admin\Analytics\Rest_API\Workflow_Runs\Data_Store';
return $stores;
}
}