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

118 lines
3.1 KiB
PHP

<?php
namespace AutomateWoo\Admin;
use Automattic\WooCommerce\Admin\PageController;
/**
* AutomateWoo Analytics.
* Formerly AutomateWoo > Reports.
*
* @since 5.6.1
*/
class Analytics {
/**
* Init.
*/
public static function init() {
add_action( 'init', array( __CLASS__, 'setup' ) );
}
/**
* Setup Analytics.
* Add report items and register scripts.
*/
public static function setup() {
if ( self::is_enabled() ) {
// Analytics init.
add_filter( 'woocommerce_analytics_report_menu_items', array( __CLASS__, 'add_report_menu_item' ) );
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'register_script' ) );
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'register_style' ) );
}
}
/**
* Add "Bundles" as a Analytics submenu item.
*
* @param array $report_pages Report page menu items.
* @return array
*/
public static function add_report_menu_item( $report_pages ) {
$report_pages[] = array(
'id' => 'automatewoo-analytics-runs-by-date',
'title' => '<automatewoo-icon aria-label="AutomateWoo"></automatewoo-icon>' . __( 'Workflows', 'automatewoo' ),
'parent' => 'woocommerce-analytics',
'path' => '/analytics/automatewoo-runs-by-date',
);
$report_pages[] = array(
'id' => 'automatewoo-analytics-email-tracking',
'title' => '<automatewoo-icon aria-label="AutomateWoo"></automatewoo-icon>' . __( 'Email & SMS Tracking', 'automatewoo' ),
'parent' => 'woocommerce-analytics',
'path' => '/analytics/automatewoo-email-tracking',
);
$report_pages[] = array(
'id' => 'automatewoo-analytics-conversions',
'title' => '<automatewoo-icon aria-label="AutomateWoo"></automatewoo-icon>' . __( 'Conversions', 'automatewoo' ),
'parent' => 'woocommerce-analytics',
'path' => '/analytics/automatewoo-conversions',
);
return $report_pages;
}
/**
* Register analytics JS.
*/
public static function register_script() {
if ( ! PageController::is_admin_page() ) {
return;
}
$script_asset = require AW()->admin_path( '/assets/build/analytics.asset.php' );
wp_register_script(
'automatewoo-analytics',
AW()->admin_assets_url( '/build/analytics.js' ),
$script_asset['dependencies'],
$script_asset['version'],
true
);
// Load JS translations.
wp_set_script_translations( 'automatewoo-analytics', 'automatewoo', AW()->path( '/languages' ) );
// Enqueue script.
wp_enqueue_script( 'automatewoo-analytics' );
}
/**
* Register analytics CSS.
*/
public static function register_style() {
if ( PageController::is_admin_page() ) {
wp_enqueue_style(
'automatewoo-analytics',
AW()->admin_assets_url( '/build/analytics.css' ),
[ 'wc-admin-app' ],
AW()->version
);
}
}
/**
* Whether or not the new Analytics reports are enabled.
*
* @return bool
*/
public static function is_enabled() {
$is_enabled = WC()->is_wc_admin_active();
/**
* Whether AutomateWoo's analytics reports should be added to the WooCommerce Analytics menu.
*
* @filter automatewoo/admin/analytics_enabled
*/
return (bool) apply_filters( 'automatewoo/admin/analytics_enabled', $is_enabled );
}
}