<?php
namespace Automattic\Gravatar\GravatarEnhanced\Woocommerce;
use Automattic\Gravatar\GravatarEnhanced\Module;
use Automattic\Gravatar\GravatarEnhanced\Shared\HovercardsI18n;
class AdminCustomers implements Module {
/**
* @var string
*/
const FILTER_GRAVATAR_WC_ADMIN_CUSTOMERS_MODULE_ENABLED = 'gravatar_enhanced_wc_admin_customers_module_enabled';
/**
* Check if the module is disabled by a filter.
*
* @return bool
*/
private function is_module_disabled() {
// Check if module is manually disabled by the filter.
if ( ! apply_filters( self::FILTER_GRAVATAR_WC_ADMIN_CUSTOMERS_MODULE_ENABLED, true ) ) {
return true; // Disabled by filter.
}
return false;
}
/**
* @return void
*/
public function init() {
// Bail if the module is disabled.
if ( $this->is_module_disabled() ) {
return;
}
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
}
/**
* @param string $hook The current admin page hook.
*
* @return void
*/
public function enqueue_scripts( $hook ) {
// Bail if not on the WooCommerce admin page
if ( 'woocommerce_page_wc-admin' !== $hook ) {
return;
}
// Check if we are on the WooCommerce Customers admin page
if ( isset( $_GET['page'], $_GET['path'] ) && 'wc-admin' === $_GET['page'] && '/customers' === $_GET['path'] ) {
// Get the asset file for dependencies and version
$asset_file = dirname( GRAVATAR_ENHANCED_PLUGIN_FILE ) . '/build/wc-admin-customers.asset.php';
$assets = file_exists( $asset_file ) ? require $asset_file : [
'dependencies' => [],
'version' => time(),
];
wp_enqueue_script(
'gravatar-enhanced-wc-admin-customers',
plugins_url( 'build/wc-admin-customers.js', GRAVATAR_ENHANCED_PLUGIN_FILE ),
$assets['dependencies'],
$assets['version'],
true
);
wp_localize_script( 'gravatar-enhanced-wc-admin-customers', 'gravatarEnhancedWcAdminCustomersI18n', HovercardsI18n::get_translations() );
wp_enqueue_style(
'gravatar-enhanced-wc-admin-customers',
plugins_url( 'build/wc-admin-customers.css', GRAVATAR_ENHANCED_PLUGIN_FILE ),
[],
$assets['version']
);
}
}
/**
* @return void
*/
public function uninstall() {}
}