<?php
if ( ! defined( 'ABSPATH' ) ) exit;
if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
return;
}
class WC_Location_Report {
public static $version = '1.1';
public static $plugin_file = __FILE__;
public static $plugin_dir;
public function init() {
global $wpdb;
self::$plugin_dir = dirname( __FILE__ );
add_action( 'admin_enqueue_scripts', __CLASS__ . '::location_report_admin_css_scripts' );
add_filter( 'woocommerce_admin_reports', __CLASS__ . '::initialize_location_admin_report', 12, 1 );
add_filter( 'wc_admin_reports_path', __CLASS__ . '::initialize_location_admin_reports_path', 12, 3 );
add_action( 'plugins_loaded', __CLASS__ . '::load_plugin_textdomain' );
}
public static function location_report_admin_css_scripts() {
$wc_screen_id = sanitize_title( __( 'WooCommerce', 'woocommerce' ) );
$screen = get_current_screen();
if ( in_array( $screen->id, apply_filters( 'woocommerce_geo_reports_screen_ids', array( $wc_screen_id . '_page_wc-reports' ) ) ) && isset( $_REQUEST['report'] ) && in_array($_REQUEST['report'], apply_filters( 'woocommerce_geo_reports_report_ids', array( 'sales_by_location' ) )) ) {
wp_enqueue_script( 'jvectormap', plugins_url( '/lib/jquery-jvectormap-1.2.2.min.js', self::$plugin_file ), array( 'jquery' ), self::$version, true );
wp_enqueue_script( 'jvectormap-world', plugins_url( '/lib/map-data/jquery-jvectormap-world-mill-en', self::$plugin_file ), array( 'jquery', 'jvectormap' ), self::$version, true );
wp_enqueue_style( 'jvectormap', plugins_url( '/lib/jquery-jvectormap-1.2.2.css', self::$plugin_file ), array( 'woocommerce_admin_styles' ), self::$version );
}
}
public static function initialize_location_admin_report ( $report ) {
$report['orders']['reports']['sales_by_location'] = array (
'title' => __( 'Sales by location', 'woocommerce-location-report' ),
'description' => '',
'hide_title' => true,
'callback' => array( 'WC_Admin_Reports', 'get_report' )
);
return $report;
}
public static function initialize_location_admin_reports_path( $report_path, $name, $class ) {
if ( 'WC_Report_sales_by_location' == $class ) {
$report_path = self::$plugin_dir . '/classes/class-wc-report-' . $name . '.php';
}
return $report_path;
}
public static function load_plugin_textdomain( ) {
load_plugin_textdomain( 'woocommerce-location-report', false, basename( self::$plugin_dir ) . '/languages' );
}
}
WC_Location_Report::init();