<?php
namespace Automattic\WCShipping\Analytics;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class ShippingLabel {
const ANALYTICS_PATH = '/analytics/shipping';
/**
* Initialize the shipping label analytics
*/
public function init() {
add_filter( 'woocommerce_analytics_report_menu_items', array( $this, 'add_menu_item' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
}
/**
* Add the shipping label analytics menu item
*
* @param array $report_pages Report page menu items.
* @return array
*/
public function add_menu_item( $report_pages ) {
$wcshipping_analytics_menu_item = array(
'id' => 'wcshipping-label-analytics',
'title' => __( 'Shipping Labels', 'woocommerce-shipping' ),
'parent' => 'woocommerce-analytics',
'path' => self::ANALYTICS_PATH,
);
// Insert the shipping label analytics menu item before the settings menu item if it exists
$settings_index = array_search( 'woocommerce-analytics-settings', array_column( $report_pages, 'id' ) );
if ( $settings_index !== false ) {
array_splice(
$report_pages,
$settings_index,
0,
array(
$wcshipping_analytics_menu_item,
)
);
} else {
$report_pages[] = $wcshipping_analytics_menu_item;
}
return $report_pages;
}
public function enqueue_scripts( $current_screen ) {
if ( 'woocommerce_page_wc-admin' !== $current_screen ) {
return;
}
do_action(
'wcshipping_enqueue_script',
'woocommerce-shipping-analytics',
array(
'cacheExpirationInSeconds' => LabelsService::LABELS_TRANSIENT_EXPIRATION_IN_SECONDS,
)
);
}
}