2013-07-24 16:01:36 +00:00
< ? php
/**
2015-11-03 13:53:50 +00:00
* Load assets
2013-07-24 16:01:36 +00:00
*
2014-11-30 06:52:32 +00:00
* @ author WooThemes
* @ category Admin
* @ package WooCommerce / Admin
2013-07-24 16:01:36 +00:00
* @ version 2.1 . 0
*/
2014-09-20 19:52:30 +00:00
if ( ! defined ( 'ABSPATH' ) ) {
2015-10-02 05:45:05 +00:00
exit ;
2014-09-20 19:52:30 +00:00
}
2013-07-24 16:01:36 +00:00
2017-02-16 11:46:01 +00:00
if ( ! class_exists ( 'WC_Admin_Assets' , false ) ) :
2013-07-24 16:01:36 +00:00
/**
2015-11-03 12:28:01 +00:00
* WC_Admin_Assets Class .
2013-07-24 16:01:36 +00:00
*/
class WC_Admin_Assets {
/**
* Hook in tabs .
*/
public function __construct () {
add_action ( 'admin_enqueue_scripts' , array ( $this , 'admin_styles' ) );
add_action ( 'admin_enqueue_scripts' , array ( $this , 'admin_scripts' ) );
2014-11-30 06:52:32 +00:00
add_action ( 'admin_head' , array ( $this , 'product_taxonomy_styles' ) );
2013-07-24 16:01:36 +00:00
}
/**
2015-10-02 05:45:05 +00:00
* Enqueue styles .
2013-07-24 16:01:36 +00:00
*/
public function admin_styles () {
2014-02-12 09:23:06 +00:00
global $wp_scripts ;
2013-07-24 16:01:36 +00:00
2015-10-01 14:10:18 +00:00
$screen = get_current_screen ();
2016-02-05 12:16:41 +00:00
$screen_id = $screen ? $screen -> id : '' ;
2016-06-30 18:02:16 +00:00
$jquery_version = isset ( $wp_scripts -> registered [ 'jquery-ui-core' ] -> ver ) ? $wp_scripts -> registered [ 'jquery-ui-core' ] -> ver : '1.11.4' ;
2015-10-01 14:10:18 +00:00
// Register admin styles
wp_register_style ( 'woocommerce_admin_menu_styles' , WC () -> plugin_url () . '/assets/css/menu.css' , array (), WC_VERSION );
wp_register_style ( 'woocommerce_admin_styles' , WC () -> plugin_url () . '/assets/css/admin.css' , array (), WC_VERSION );
2016-06-30 17:06:42 +00:00
wp_register_style ( 'jquery-ui-style' , '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.min.css' , array (), $jquery_version );
2015-10-01 14:10:18 +00:00
wp_register_style ( 'woocommerce_admin_dashboard_styles' , WC () -> plugin_url () . '/assets/css/dashboard.css' , array (), WC_VERSION );
wp_register_style ( 'woocommerce_admin_print_reports_styles' , WC () -> plugin_url () . '/assets/css/reports-print.css' , array (), WC_VERSION , 'print' );
2013-07-24 16:01:36 +00:00
2017-01-20 18:29:48 +00:00
// Add RTL support for admin styles
wp_style_add_data ( 'woocommerce_admin_menu_styles' , 'rtl' , 'replace' );
wp_style_add_data ( 'woocommerce_admin_styles' , 'rtl' , 'replace' );
wp_style_add_data ( 'woocommerce_admin_dashboard_styles' , 'rtl' , 'replace' );
wp_style_add_data ( 'woocommerce_admin_print_reports_styles' , 'rtl' , 'replace' );
2015-10-01 14:10:18 +00:00
// Sitewide menu CSS
wp_enqueue_style ( 'woocommerce_admin_menu_styles' );
2013-07-24 16:01:36 +00:00
2015-10-02 05:45:05 +00:00
// Admin styles for WC pages only
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , wc_get_screen_ids () ) ) {
2015-10-01 14:10:18 +00:00
wp_enqueue_style ( 'woocommerce_admin_styles' );
wp_enqueue_style ( 'jquery-ui-style' );
2013-07-24 16:01:36 +00:00
wp_enqueue_style ( 'wp-color-picker' );
}
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'dashboard' ) ) ) {
2015-10-01 14:10:18 +00:00
wp_enqueue_style ( 'woocommerce_admin_dashboard_styles' );
2013-07-25 14:00:23 +00:00
}
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'woocommerce_page_wc-reports' , 'toplevel_page_wc-reports' ) ) ) {
2015-10-01 14:10:18 +00:00
wp_enqueue_style ( 'woocommerce_admin_print_reports_styles' );
2014-11-12 12:53:57 +00:00
}
2014-10-03 09:07:25 +00:00
/**
* @ deprecated 2.3
*/
if ( has_action ( 'woocommerce_admin_css' ) ) {
2014-12-02 09:26:17 +00:00
do_action ( 'woocommerce_admin_css' );
2016-11-23 16:15:00 +00:00
wc_deprecated_function ( 'The woocommerce_admin_css action' , '2.3' , 'admin_enqueue_scripts' );
2014-10-03 09:07:25 +00:00
}
2013-07-24 16:01:36 +00:00
}
/**
2015-10-02 05:45:05 +00:00
* Enqueue scripts .
2013-07-24 16:01:36 +00:00
*/
public function admin_scripts () {
2016-01-18 14:41:58 +00:00
global $wp_query , $post ;
2013-07-24 16:01:36 +00:00
$screen = get_current_screen ();
2016-02-05 12:16:41 +00:00
$screen_id = $screen ? $screen -> id : '' ;
2014-02-19 14:30:21 +00:00
$wc_screen_id = sanitize_title ( __ ( 'WooCommerce' , 'woocommerce' ) );
2013-07-24 16:01:36 +00:00
$suffix = defined ( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' ;
// Register scripts
2014-02-12 09:23:06 +00:00
wp_register_script ( 'woocommerce_admin' , WC () -> plugin_url () . '/assets/js/admin/woocommerce_admin' . $suffix . '.js' , array ( 'jquery' , 'jquery-blockui' , 'jquery-ui-sortable' , 'jquery-ui-widget' , 'jquery-ui-core' , 'jquery-tiptip' ), WC_VERSION );
2015-05-25 11:18:41 +00:00
wp_register_script ( 'jquery-blockui' , WC () -> plugin_url () . '/assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js' , array ( 'jquery' ), '2.70' , true );
2014-02-12 09:23:06 +00:00
wp_register_script ( 'jquery-tiptip' , WC () -> plugin_url () . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION , true );
2015-10-01 13:46:08 +00:00
wp_register_script ( 'accounting' , WC () -> plugin_url () . '/assets/js/accounting/accounting' . $suffix . '.js' , array ( 'jquery' ), '0.4.2' );
wp_register_script ( 'round' , WC () -> plugin_url () . '/assets/js/round/round' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION );
2015-08-20 11:46:52 +00:00
wp_register_script ( 'wc-admin-meta-boxes' , WC () -> plugin_url () . '/assets/js/admin/meta-boxes' . $suffix . '.js' , array ( 'jquery' , 'jquery-ui-datepicker' , 'jquery-ui-sortable' , 'accounting' , 'round' , 'wc-enhanced-select' , 'plupload-all' , 'stupidtable' , 'jquery-tiptip' ), WC_VERSION );
2015-05-16 03:09:29 +00:00
wp_register_script ( 'zeroclipboard' , WC () -> plugin_url () . '/assets/js/zeroclipboard/jquery.zeroclipboard' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION );
2015-06-08 22:41:35 +00:00
wp_register_script ( 'qrcode' , WC () -> plugin_url () . '/assets/js/jquery-qrcode/jquery.qrcode' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION );
2015-01-09 16:39:10 +00:00
wp_register_script ( 'stupidtable' , WC () -> plugin_url () . '/assets/js/stupidtable/stupidtable' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION );
2017-05-23 14:27:53 +00:00
wp_register_script ( 'serializejson' , WC () -> plugin_url () . '/assets/js/jquery-serializejson/jquery.serializejson' . $suffix . '.js' , array ( 'jquery' ), '2.8.1' );
2015-10-01 14:10:18 +00:00
wp_register_script ( 'flot' , WC () -> plugin_url () . '/assets/js/jquery-flot/jquery.flot' . $suffix . '.js' , array ( 'jquery' ), WC_VERSION );
wp_register_script ( 'flot-resize' , WC () -> plugin_url () . '/assets/js/jquery-flot/jquery.flot.resize' . $suffix . '.js' , array ( 'jquery' , 'flot' ), WC_VERSION );
wp_register_script ( 'flot-time' , WC () -> plugin_url () . '/assets/js/jquery-flot/jquery.flot.time' . $suffix . '.js' , array ( 'jquery' , 'flot' ), WC_VERSION );
wp_register_script ( 'flot-pie' , WC () -> plugin_url () . '/assets/js/jquery-flot/jquery.flot.pie' . $suffix . '.js' , array ( 'jquery' , 'flot' ), WC_VERSION );
wp_register_script ( 'flot-stack' , WC () -> plugin_url () . '/assets/js/jquery-flot/jquery.flot.stack' . $suffix . '.js' , array ( 'jquery' , 'flot' ), WC_VERSION );
2015-12-19 14:12:31 +00:00
wp_register_script ( 'wc-settings-tax' , WC () -> plugin_url () . '/assets/js/admin/settings-views-html-settings-tax' . $suffix . '.js' , array ( 'jquery' , 'wp-util' , 'underscore' , 'backbone' , 'jquery-blockui' ), WC_VERSION );
2016-01-13 15:04:10 +00:00
wp_register_script ( 'wc-backbone-modal' , WC () -> plugin_url () . '/assets/js/admin/backbone-modal' . $suffix . '.js' , array ( 'underscore' , 'backbone' , 'wp-util' ), WC_VERSION );
wp_register_script ( 'wc-shipping-zones' , WC () -> plugin_url () . '/assets/js/admin/wc-shipping-zones' . $suffix . '.js' , array ( 'jquery' , 'wp-util' , 'underscore' , 'backbone' , 'jquery-ui-sortable' , 'wc-enhanced-select' , 'wc-backbone-modal' ), WC_VERSION );
2016-03-24 17:26:40 +00:00
wp_register_script ( 'wc-shipping-zone-methods' , WC () -> plugin_url () . '/assets/js/admin/wc-shipping-zone-methods' . $suffix . '.js' , array ( 'jquery' , 'wp-util' , 'underscore' , 'backbone' , 'jquery-ui-sortable' , 'wc-backbone-modal' ), WC_VERSION );
2016-01-13 16:52:28 +00:00
wp_register_script ( 'wc-shipping-classes' , WC () -> plugin_url () . '/assets/js/admin/wc-shipping-classes' . $suffix . '.js' , array ( 'jquery' , 'wp-util' , 'underscore' , 'backbone' ), WC_VERSION );
2016-12-20 16:45:22 +00:00
wp_register_script ( 'select2' , WC () -> plugin_url () . '/assets/js/select2/select2.full' . $suffix . '.js' , array ( 'jquery' ), '4.0.3' );
2015-01-12 15:43:13 +00:00
wp_register_script ( 'wc-enhanced-select' , WC () -> plugin_url () . '/assets/js/admin/wc-enhanced-select' . $suffix . '.js' , array ( 'jquery' , 'select2' ), WC_VERSION );
2015-03-03 10:58:06 +00:00
wp_localize_script ( 'wc-enhanced-select' , 'wc_enhanced_select_params' , array (
2015-01-19 19:31:22 +00:00
'i18n_no_matches' => _x ( 'No matches found' , 'enhanced select' , 'woocommerce' ),
'i18n_ajax_error' => _x ( 'Loading failed' , 'enhanced select' , 'woocommerce' ),
2015-01-29 03:31:03 +00:00
'i18n_input_too_short_1' => _x ( 'Please enter 1 or more characters' , 'enhanced select' , 'woocommerce' ),
2015-01-19 19:31:22 +00:00
'i18n_input_too_short_n' => _x ( 'Please enter %qty% or more characters' , 'enhanced select' , 'woocommerce' ),
'i18n_input_too_long_1' => _x ( 'Please delete 1 character' , 'enhanced select' , 'woocommerce' ),
'i18n_input_too_long_n' => _x ( 'Please delete %qty% characters' , 'enhanced select' , 'woocommerce' ),
'i18n_selection_too_long_1' => _x ( 'You can only select 1 item' , 'enhanced select' , 'woocommerce' ),
'i18n_selection_too_long_n' => _x ( 'You can only select %qty% items' , 'enhanced select' , 'woocommerce' ),
'i18n_load_more' => _x ( 'Loading more results…' , 'enhanced select' , 'woocommerce' ),
'i18n_searching' => _x ( 'Searching…' , 'enhanced select' , 'woocommerce' ),
2015-03-03 10:58:06 +00:00
'ajax_url' => admin_url ( 'admin-ajax.php' ),
'search_products_nonce' => wp_create_nonce ( 'search-products' ),
2016-08-27 01:46:45 +00:00
'search_customers_nonce' => wp_create_nonce ( 'search-customers' ),
2015-01-12 11:56:44 +00:00
) );
2014-11-26 15:37:06 +00:00
2013-11-12 17:43:30 +00:00
// Accounting
2015-01-12 11:56:44 +00:00
wp_localize_script ( 'accounting' , 'accounting_params' , array (
2016-08-27 01:46:45 +00:00
'mon_decimal_point' => wc_get_price_decimal_separator (),
2015-01-12 11:56:44 +00:00
) );
2013-11-12 17:43:30 +00:00
// WooCommerce admin pages
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , wc_get_screen_ids () ) ) {
2014-08-04 15:42:16 +00:00
wp_enqueue_script ( 'iris' );
2015-10-02 05:45:05 +00:00
wp_enqueue_script ( 'woocommerce_admin' );
2015-01-09 16:39:10 +00:00
wp_enqueue_script ( 'wc-enhanced-select' );
2014-08-04 15:42:16 +00:00
wp_enqueue_script ( 'jquery-ui-sortable' );
wp_enqueue_script ( 'jquery-ui-autocomplete' );
2013-09-27 19:28:42 +00:00
2014-08-04 15:42:16 +00:00
$locale = localeconv ();
$decimal = isset ( $locale [ 'decimal_point' ] ) ? $locale [ 'decimal_point' ] : '.' ;
2013-10-01 16:54:29 +00:00
2014-08-04 15:42:16 +00:00
$params = array (
2016-10-29 10:16:03 +00:00
/* translators: %s: decimal */
2014-08-04 15:49:14 +00:00
'i18n_decimal_error' => sprintf ( __ ( 'Please enter in decimal (%s) format without thousand separators.' , 'woocommerce' ), $decimal ),
2016-10-29 10:16:03 +00:00
/* translators: %s: price decimal separator */
2015-01-23 11:50:32 +00:00
'i18n_mon_decimal_error' => sprintf ( __ ( 'Please enter in monetary decimal (%s) format without thousand separators and currency symbols.' , 'woocommerce' ), wc_get_price_decimal_separator () ),
2014-08-04 15:49:14 +00:00
'i18n_country_iso_error' => __ ( 'Please enter in country code with two capital letters.' , 'woocommerce' ),
'i18_sale_less_than_regular_error' => __ ( 'Please enter in a value less than the regular price.' , 'woocommerce' ),
'decimal_point' => $decimal ,
2016-08-27 01:46:45 +00:00
'mon_decimal_point' => wc_get_price_decimal_separator (),
2017-05-16 14:06:22 +00:00
'strings' => array (
'import_products' => __ ( 'Import' , 'woocommerce' ),
'export_products' => __ ( 'Export' , 'woocommerce' ),
),
'urls' => array (
'import_products' => esc_url_raw ( admin_url ( 'edit.php?post_type=product&page=product_importer' ) ),
'export_products' => esc_url_raw ( admin_url ( 'edit.php?post_type=product&page=product_exporter' ) ),
),
2014-08-04 15:42:16 +00:00
);
2013-09-27 19:28:42 +00:00
2014-08-04 15:42:16 +00:00
wp_localize_script ( 'woocommerce_admin' , 'woocommerce_admin' , $params );
}
2013-07-24 16:01:36 +00:00
2014-08-04 15:42:16 +00:00
// Edit product category pages
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'edit-product_cat' ) ) ) {
2013-07-24 16:01:36 +00:00
wp_enqueue_media ();
2014-08-04 15:42:16 +00:00
}
2013-07-24 16:01:36 +00:00
2013-07-24 18:55:02 +00:00
// Products
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'edit-product' ) ) ) {
2017-06-08 13:24:28 +00:00
wp_enqueue_script ( 'woocommerce_quick-edit' , WC () -> plugin_url () . '/assets/js/admin/quick-edit' . $suffix . '.js' , array ( 'jquery' , 'woocommerce_admin' ), WC_VERSION );
$params = array (
'strings' => array (
'allow_reviews' => esc_js ( __ ( 'Enable reviews' , 'woocommerce' ) ),
),
);
wp_localize_script ( 'woocommerce_quick-edit' , 'woocommerce_quick_edit' , $params );
2014-07-08 13:14:29 +00:00
}
2013-07-24 18:55:02 +00:00
2014-07-08 13:14:29 +00:00
// Meta boxes
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'product' , 'edit-product' ) ) ) {
2013-07-24 16:01:36 +00:00
wp_enqueue_media ();
2016-02-05 11:58:22 +00:00
wp_register_script ( 'wc-admin-product-meta-boxes' , WC () -> plugin_url () . '/assets/js/admin/meta-boxes-product' . $suffix . '.js' , array ( 'wc-admin-meta-boxes' , 'media-models' ), WC_VERSION );
wp_register_script ( 'wc-admin-variation-meta-boxes' , WC () -> plugin_url () . '/assets/js/admin/meta-boxes-product-variation' . $suffix . '.js' , array ( 'wc-admin-meta-boxes' , 'serializejson' , 'media-models' ), WC_VERSION );
2015-10-01 14:10:18 +00:00
wp_enqueue_script ( 'wc-admin-product-meta-boxes' );
wp_enqueue_script ( 'wc-admin-variation-meta-boxes' );
2013-07-24 16:01:36 +00:00
2014-07-08 13:14:29 +00:00
$params = array (
'post_id' => isset ( $post -> ID ) ? $post -> ID : '' ,
'plugin_url' => WC () -> plugin_url (),
2014-11-28 07:21:01 +00:00
'ajax_url' => admin_url ( 'admin-ajax.php' ),
2014-07-08 13:14:29 +00:00
'woocommerce_placeholder_img_src' => wc_placeholder_img_src (),
2015-07-02 20:42:22 +00:00
'add_variation_nonce' => wp_create_nonce ( 'add-variation' ),
'link_variation_nonce' => wp_create_nonce ( 'link-variations' ),
'delete_variations_nonce' => wp_create_nonce ( 'delete-variations' ),
'load_variations_nonce' => wp_create_nonce ( 'load-variations' ),
2015-07-06 04:50:20 +00:00
'save_variations_nonce' => wp_create_nonce ( 'save-variations' ),
2015-07-07 01:50:35 +00:00
'bulk_edit_variations_nonce' => wp_create_nonce ( 'bulk-edit-variations' ),
2016-09-06 11:52:10 +00:00
'i18n_link_all_variations' => esc_js ( sprintf ( __ ( 'Are you sure you want to link all variations? This will create a new variation for each and every possible combination of variation attributes (max %d per run).' , 'woocommerce' ), defined ( 'WC_MAX_LINKED_VARIATIONS' ) ? WC_MAX_LINKED_VARIATIONS : 50 ) ),
2014-07-08 13:14:29 +00:00
'i18n_enter_a_value' => esc_js ( __ ( 'Enter a value' , 'woocommerce' ) ),
2015-07-31 16:14:28 +00:00
'i18n_enter_menu_order' => esc_js ( __ ( 'Variation menu order (determines position in the list of variations)' , 'woocommerce' ) ),
2014-07-08 13:14:29 +00:00
'i18n_enter_a_value_fixed_or_percent' => esc_js ( __ ( 'Enter a value (fixed or %)' , 'woocommerce' ) ),
'i18n_delete_all_variations' => esc_js ( __ ( 'Are you sure you want to delete all variations? This cannot be undone.' , 'woocommerce' ) ),
'i18n_last_warning' => esc_js ( __ ( 'Last warning, are you sure?' , 'woocommerce' ) ),
'i18n_choose_image' => esc_js ( __ ( 'Choose an image' , 'woocommerce' ) ),
'i18n_set_image' => esc_js ( __ ( 'Set variation image' , 'woocommerce' ) ),
'i18n_variation_added' => esc_js ( __ ( " variation added " , 'woocommerce' ) ),
'i18n_variations_added' => esc_js ( __ ( " variations added " , 'woocommerce' ) ),
'i18n_no_variations_added' => esc_js ( __ ( " No variations added " , 'woocommerce' ) ),
2014-11-17 16:50:25 +00:00
'i18n_remove_variation' => esc_js ( __ ( 'Are you sure you want to remove this variation?' , 'woocommerce' ) ),
'i18n_scheduled_sale_start' => esc_js ( __ ( 'Sale start date (YYYY-MM-DD format or leave blank)' , 'woocommerce' ) ),
2015-07-31 11:39:23 +00:00
'i18n_scheduled_sale_end' => esc_js ( __ ( 'Sale end date (YYYY-MM-DD format or leave blank)' , 'woocommerce' ) ),
2015-07-08 20:45:19 +00:00
'i18n_edited_variations' => esc_js ( __ ( 'Save changes before changing page?' , 'woocommerce' ) ),
2015-07-08 22:34:21 +00:00
'i18n_variation_count_single' => esc_js ( __ ( '%qty% variation' , 'woocommerce' ) ),
'i18n_variation_count_plural' => esc_js ( __ ( '%qty% variations' , 'woocommerce' ) ),
2016-08-27 01:46:45 +00:00
'variations_per_page' => absint ( apply_filters ( 'woocommerce_admin_meta_boxes_variations_per_page' , 15 ) ),
2014-07-08 13:14:29 +00:00
);
wp_localize_script ( 'wc-admin-variation-meta-boxes' , 'woocommerce_admin_meta_boxes_variations' , $params );
}
2016-02-05 12:16:41 +00:00
if ( in_array ( str_replace ( 'edit-' , '' , $screen_id ), wc_get_order_types ( 'order-meta-boxes' ) ) ) {
2017-02-08 10:55:57 +00:00
$default_location = wc_get_customer_default_location ();
2013-07-24 16:01:36 +00:00
2017-02-08 10:55:57 +00:00
wp_enqueue_script ( 'wc-admin-order-meta-boxes' , WC () -> plugin_url () . '/assets/js/admin/meta-boxes-order' . $suffix . '.js' , array ( 'wc-admin-meta-boxes' , 'wc-backbone-modal' ), WC_VERSION );
wp_localize_script ( 'wc-admin-order-meta-boxes' , 'woocommerce_admin_meta_boxes_order' , array (
2014-11-11 11:23:44 +00:00
'countries' => json_encode ( array_merge ( WC () -> countries -> get_allowed_country_states (), WC () -> countries -> get_shipping_country_states () ) ),
2016-08-27 01:46:45 +00:00
'i18n_select_state_text' => esc_attr__ ( 'Select an option…' , 'woocommerce' ),
2017-02-08 10:55:57 +00:00
'default_country' => isset ( $default_location [ 'country' ] ) ? $default_location [ 'country' ] : '' ,
'default_state' => isset ( $default_location [ 'state' ] ) ? $default_location [ 'state' ] : '' ,
2017-04-26 10:35:34 +00:00
'placeholder_name' => esc_attr__ ( 'Name (required)' , 'woocommerce' ),
'placeholder_value' => esc_attr__ ( 'Value (required)' , 'woocommerce' ),
2017-02-08 10:55:57 +00:00
) );
2014-07-08 13:14:29 +00:00
}
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'shop_coupon' , 'edit-shop_coupon' ) ) ) {
2017-02-08 10:55:57 +00:00
wp_enqueue_script ( 'wc-admin-coupon-meta-boxes' , WC () -> plugin_url () . '/assets/js/admin/meta-boxes-coupon' . $suffix . '.js' , array ( 'wc-admin-meta-boxes' ), WC_VERSION );
2014-07-08 13:14:29 +00:00
}
2016-02-05 12:16:41 +00:00
if ( in_array ( str_replace ( 'edit-' , '' , $screen_id ), array_merge ( array ( 'shop_coupon' , 'product' ), wc_get_order_types ( 'order-meta-boxes' ) ) ) ) {
2016-04-18 11:36:26 +00:00
$post_id = isset ( $post -> ID ) ? $post -> ID : '' ;
$currency = '' ;
2017-05-10 18:26:30 +00:00
if ( $post_id && in_array ( get_post_type ( $post_id ), wc_get_order_types ( 'order-meta-boxes' ) ) && ( $order = wc_get_order ( $post_id ) ) ) {
2016-08-05 14:49:17 +00:00
$currency = $order -> get_currency ();
2016-04-18 11:36:26 +00:00
}
2013-08-06 10:41:20 +00:00
$params = array (
2017-04-26 12:51:53 +00:00
'remove_item_notice' => __ ( " Are you sure you want to remove the selected items? If you have previously reduced this item's stock, or this order was submitted by a customer, you will need to manually restore the item's stock. " , 'woocommerce' ),
2014-07-10 15:39:10 +00:00
'i18n_select_items' => __ ( 'Please select some items.' , 'woocommerce' ),
'i18n_do_refund' => __ ( 'Are you sure you wish to process this refund? This action cannot be undone.' , 'woocommerce' ),
'i18n_delete_refund' => __ ( 'Are you sure you wish to delete this refund? This action cannot be undone.' , 'woocommerce' ),
2014-07-22 14:26:18 +00:00
'i18n_delete_tax' => __ ( 'Are you sure you wish to delete this tax column? This action cannot be undone.' , 'woocommerce' ),
2014-07-10 15:39:10 +00:00
'remove_item_meta' => __ ( 'Remove this item meta?' , 'woocommerce' ),
'remove_attribute' => __ ( 'Remove this attribute?' , 'woocommerce' ),
'name_label' => __ ( 'Name' , 'woocommerce' ),
'remove_label' => __ ( 'Remove' , 'woocommerce' ),
'click_to_toggle' => __ ( 'Click to toggle' , 'woocommerce' ),
'values_label' => __ ( 'Value(s)' , 'woocommerce' ),
'text_attribute_tip' => __ ( 'Enter some text, or some attributes by pipe (|) separating values.' , 'woocommerce' ),
'visible_label' => __ ( 'Visible on the product page' , 'woocommerce' ),
'used_for_variations_label' => __ ( 'Used for variations' , 'woocommerce' ),
'new_attribute_prompt' => __ ( 'Enter a name for the new attribute term:' , 'woocommerce' ),
2017-04-18 18:44:42 +00:00
'calc_totals' => __ ( 'Recalculate totals? This will calculate taxes based on the customers country (or the store base country) and update totals.' , 'woocommerce' ),
2014-07-10 15:39:10 +00:00
'copy_billing' => __ ( 'Copy billing information to shipping information? This will remove any currently entered shipping information.' , 'woocommerce' ),
2017-04-26 12:51:53 +00:00
'load_billing' => __ ( " Load the customer's billing information? This will remove any currently entered billing information. " , 'woocommerce' ),
'load_shipping' => __ ( " Load the customer's shipping information? This will remove any currently entered shipping information. " , 'woocommerce' ),
2014-07-10 15:39:10 +00:00
'featured_label' => __ ( 'Featured' , 'woocommerce' ),
2014-11-28 07:21:01 +00:00
'prices_include_tax' => esc_attr ( get_option ( 'woocommerce_prices_include_tax' ) ),
2015-10-05 14:31:58 +00:00
'tax_based_on' => esc_attr ( get_option ( 'woocommerce_tax_based_on' ) ),
2014-07-10 15:39:10 +00:00
'round_at_subtotal' => esc_attr ( get_option ( 'woocommerce_tax_round_at_subtotal' ) ),
'no_customer_selected' => __ ( 'No customer selected' , 'woocommerce' ),
'plugin_url' => WC () -> plugin_url (),
2014-11-28 07:21:01 +00:00
'ajax_url' => admin_url ( 'admin-ajax.php' ),
2014-12-16 21:07:48 +00:00
'order_item_nonce' => wp_create_nonce ( 'order-item' ),
'add_attribute_nonce' => wp_create_nonce ( 'add-attribute' ),
'save_attributes_nonce' => wp_create_nonce ( 'save-attributes' ),
'calc_totals_nonce' => wp_create_nonce ( 'calc-totals' ),
'get_customer_details_nonce' => wp_create_nonce ( 'get-customer-details' ),
'search_products_nonce' => wp_create_nonce ( 'search-products' ),
'grant_access_nonce' => wp_create_nonce ( 'grant-access' ),
'revoke_access_nonce' => wp_create_nonce ( 'revoke-access' ),
'add_order_note_nonce' => wp_create_nonce ( 'add-order-note' ),
'delete_order_note_nonce' => wp_create_nonce ( 'delete-order-note' ),
2016-09-01 20:50:14 +00:00
'calendar_image' => WC () -> plugin_url () . '/assets/images/calendar.png' ,
2014-07-10 15:39:10 +00:00
'post_id' => isset ( $post -> ID ) ? $post -> ID : '' ,
'base_country' => WC () -> countries -> get_base_country (),
2015-01-23 11:50:32 +00:00
'currency_format_num_decimals' => wc_get_price_decimals (),
2016-04-18 11:36:26 +00:00
'currency_format_symbol' => get_woocommerce_currency_symbol ( $currency ),
2015-01-23 11:50:32 +00:00
'currency_format_decimal_sep' => esc_attr ( wc_get_price_decimal_separator () ),
'currency_format_thousand_sep' => esc_attr ( wc_get_price_thousand_separator () ),
2014-07-10 15:39:10 +00:00
'currency_format' => esc_attr ( str_replace ( array ( '%1$s' , '%2$s' ), array ( '%s' , '%v' ), get_woocommerce_price_format () ) ), // For accounting JS
2016-07-11 15:26:54 +00:00
'rounding_precision' => wc_get_rounding_precision (),
2013-10-24 18:36:22 +00:00
'tax_rounding_mode' => WC_TAX_ROUNDING_MODE ,
2016-06-20 09:59:54 +00:00
'product_types' => array_unique ( array_merge ( array ( 'simple' , 'grouped' , 'variable' , 'external' ), array_keys ( wc_get_product_types () ) ) ),
2013-11-27 14:03:04 +00:00
'i18n_download_permission_fail' => __ ( 'Could not grant access - the user may already have permission for this file or billing email is not set. Ensure the billing email is set, and the order has been saved.' , 'woocommerce' ),
2014-07-10 15:39:10 +00:00
'i18n_permission_revoke' => __ ( 'Are you sure you want to revoke access to this download?' , 'woocommerce' ),
2014-07-22 15:42:17 +00:00
'i18n_tax_rate_already_exists' => __ ( 'You cannot add the same tax rate twice!' , 'woocommerce' ),
2016-08-27 01:46:45 +00:00
'i18n_delete_note' => __ ( 'Are you sure you wish to delete this note? This action cannot be undone.' , 'woocommerce' ),
2013-08-06 10:41:20 +00:00
);
2014-07-08 13:14:29 +00:00
wp_localize_script ( 'wc-admin-meta-boxes' , 'woocommerce_admin_meta_boxes' , $params );
2013-07-24 16:01:36 +00:00
}
// Term ordering - only when sorting by term_order
2016-02-05 12:16:41 +00:00
if ( ( strstr ( $screen_id , 'edit-pa_' ) || ( ! empty ( $_GET [ 'taxonomy' ] ) && in_array ( $_GET [ 'taxonomy' ], apply_filters ( 'woocommerce_sortable_taxonomies' , array ( 'product_cat' ) ) ) ) ) && ! isset ( $_GET [ 'orderby' ] ) ) {
2013-07-24 16:01:36 +00:00
2015-07-10 04:32:30 +00:00
wp_register_script ( 'woocommerce_term_ordering' , WC () -> plugin_url () . '/assets/js/admin/term-ordering' . $suffix . '.js' , array ( 'jquery-ui-sortable' ), WC_VERSION );
2013-07-24 16:01:36 +00:00
wp_enqueue_script ( 'woocommerce_term_ordering' );
2013-11-25 13:34:21 +00:00
$taxonomy = isset ( $_GET [ 'taxonomy' ] ) ? wc_clean ( $_GET [ 'taxonomy' ] ) : '' ;
2013-07-24 16:01:36 +00:00
$woocommerce_term_order_params = array (
2016-08-27 01:46:45 +00:00
'taxonomy' => $taxonomy ,
2014-11-30 06:52:32 +00:00
);
2013-07-24 16:01:36 +00:00
wp_localize_script ( 'woocommerce_term_ordering' , 'woocommerce_term_ordering_params' , $woocommerce_term_order_params );
}
// Product sorting - only when sorting by menu order on the products page
2016-09-07 22:32:24 +00:00
if ( current_user_can ( 'edit_others_pages' ) && 'edit-product' === $screen_id && isset ( $wp_query -> query [ 'orderby' ] ) && 'menu_order title' === $wp_query -> query [ 'orderby' ] ) {
2015-10-01 14:10:18 +00:00
wp_register_script ( 'woocommerce_product_ordering' , WC () -> plugin_url () . '/assets/js/admin/product-ordering' . $suffix . '.js' , array ( 'jquery-ui-sortable' ), WC_VERSION , true );
wp_enqueue_script ( 'woocommerce_product_ordering' );
2013-07-24 16:01:36 +00:00
}
// Reports Pages
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , apply_filters ( 'woocommerce_reports_screen_ids' , array ( $wc_screen_id . '_page_wc-reports' , 'toplevel_page_wc-reports' , 'dashboard' ) ) ) ) {
2015-10-01 14:10:18 +00:00
wp_register_script ( 'wc-reports' , WC () -> plugin_url () . '/assets/js/admin/reports' . $suffix . '.js' , array ( 'jquery' , 'jquery-ui-datepicker' ), WC_VERSION );
wp_enqueue_script ( 'wc-reports' );
wp_enqueue_script ( 'flot' );
wp_enqueue_script ( 'flot-resize' );
wp_enqueue_script ( 'flot-time' );
wp_enqueue_script ( 'flot-pie' );
wp_enqueue_script ( 'flot-stack' );
2013-07-24 16:01:36 +00:00
}
2013-09-02 13:22:53 +00:00
2015-05-16 03:09:29 +00:00
// API settings
2016-02-05 12:16:41 +00:00
if ( $wc_screen_id . '_page_wc-settings' === $screen_id && isset ( $_GET [ 'section' ] ) && 'keys' == $_GET [ 'section' ] ) {
2015-10-01 14:10:18 +00:00
wp_register_script ( 'wc-api-keys' , WC () -> plugin_url () . '/assets/js/admin/api-keys' . $suffix . '.js' , array ( 'jquery' , 'woocommerce_admin' , 'underscore' , 'backbone' , 'wp-util' , 'qrcode' , 'zeroclipboard' ), WC_VERSION , true );
wp_enqueue_script ( 'wc-api-keys' );
2015-06-08 22:41:35 +00:00
wp_localize_script (
'wc-api-keys' ,
'woocommerce_admin_api_keys' ,
array (
2015-06-08 23:22:49 +00:00
'ajax_url' => admin_url ( 'admin-ajax.php' ),
2016-03-02 18:13:17 +00:00
'update_api_nonce' => wp_create_nonce ( 'update-api-key' ),
2016-03-10 17:09:44 +00:00
'clipboard_failed' => esc_html__ ( 'Copying to clipboard failed. Please press Ctrl/Cmd+C to copy.' , 'woocommerce' ),
2015-06-08 22:41:35 +00:00
)
);
2015-05-16 03:09:29 +00:00
}
2016-11-09 11:36:14 +00:00
// System status.
2016-02-05 12:16:41 +00:00
if ( $wc_screen_id . '_page_wc-status' === $screen_id ) {
2016-11-09 11:36:14 +00:00
wp_register_script ( 'wc-admin-system-status' , WC () -> plugin_url () . '/assets/js/admin/system-status' . $suffix . '.js' , array ( 'zeroclipboard' ), WC_VERSION );
wp_enqueue_script ( 'wc-admin-system-status' );
2017-04-25 21:10:47 +00:00
wp_localize_script (
'wc-admin-system-status' ,
'woocommerce_admin_system_status' ,
array (
2017-04-26 01:45:42 +00:00
'delete_log_confirmation' => esc_js ( __ ( 'Are you sure you want to delete this log?' , 'woocommerce' ) ),
2017-04-25 21:10:47 +00:00
)
);
2014-07-29 15:06:58 +00:00
}
2015-01-12 19:15:37 +00:00
2016-02-05 12:16:41 +00:00
if ( in_array ( $screen_id , array ( 'user-edit' , 'profile' ) ) ) {
2015-10-01 14:10:18 +00:00
wp_register_script ( 'wc-users' , WC () -> plugin_url () . '/assets/js/admin/users' . $suffix . '.js' , array ( 'jquery' , 'wc-enhanced-select' ), WC_VERSION , true );
wp_enqueue_script ( 'wc-users' );
2015-01-12 19:15:37 +00:00
wp_localize_script (
'wc-users' ,
'wc_users_params' ,
array (
'countries' => json_encode ( array_merge ( WC () -> countries -> get_allowed_country_states (), WC () -> countries -> get_shipping_country_states () ) ),
'i18n_select_state_text' => esc_attr__ ( 'Select an option…' , 'woocommerce' ),
)
);
}
2013-07-24 16:01:36 +00:00
}
/**
2015-11-03 12:28:01 +00:00
* Admin Head .
2013-07-24 16:01:36 +00:00
*
2015-11-03 12:28:01 +00:00
* Outputs some styles in the admin < head > to show icons on the woocommerce admin pages .
2013-07-24 16:01:36 +00:00
*/
public function product_taxonomy_styles () {
2017-03-07 20:24:24 +00:00
if ( ! current_user_can ( 'manage_woocommerce' ) ) {
return ;
}
2013-07-24 16:01:36 +00:00
?>
< style type = " text/css " >
2016-08-27 06:06:22 +00:00
< ? php if ( isset ( $_GET [ 'taxonomy' ] ) && 'product_cat' === $_GET [ 'taxonomy' ] ) : ?>
2013-07-24 16:01:36 +00:00
. icon32 - posts - product { background - position : - 243 px - 5 px ! important ; }
2016-08-27 06:06:22 +00:00
< ? php elseif ( isset ( $_GET [ 'taxonomy' ] ) && 'product_tag' === $_GET [ 'taxonomy' ] ) : ?>
2013-07-24 16:01:36 +00:00
. icon32 - posts - product { background - position : - 301 px - 5 px ! important ; }
< ? php endif ; ?>
</ style >
< ? php
}
}
endif ;
2013-11-28 13:12:08 +00:00
return new WC_Admin_Assets ();