/** * WooCommerce compatible function to get price decimal separator */ public static function get_price_decimal_separator() { if (self::is_wc_gte_23()) { return wc_get_price_decimal_separator(); } else { return wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES); } }
/** * Uses the WooCommerce currency display settings to format CSV price values instead of machine-readable values * * @param array $item_data the data "items" columns in the CSV Export file * @return array - updated item data */ function sv_wc_csv_export_localize_price_items_columns($item_data) { $decimals = wc_get_price_decimals(); $decimal_separator = wc_get_price_decimal_separator(); $thousand_separator = wc_get_price_thousand_separator(); $price_data = array('subtotal', 'subtotal_tax', 'total', 'total_tax', 'refunded'); // localize price for each piece of price data foreach ($price_data as $data_key) { if (isset($item_data[$data_key])) { $item_data[$data_key] = number_format($item_data[$data_key], $decimals, $decimal_separator, $thousand_separator); } } return $item_data; }
/** * Evaluate a cost from a sum/string. * @param string $sum * @param array $args * @return string */ protected function evaluate_cost($sum, $args = array()) { include_once 'includes/class-wc-eval-math.php'; $locale = localeconv(); $decimals = array(wc_get_price_decimal_separator(), $locale['decimal_point'], $locale['mon_decimal_point']); $this->fee_cost = $args['cost']; // Expand shortcodes add_shortcode('fee', array($this, 'fee')); $sum = do_shortcode(str_replace(array('[qty]', '[cost]'), array($args['qty'], $args['cost']), $sum)); remove_shortcode('fee', array($this, 'fee')); // Remove whitespace from string $sum = preg_replace('/\\s+/', '', $sum); // Remove locale from string $sum = str_replace($decimals, '.', $sum); // Trim invalid start/end characters $sum = rtrim(ltrim($sum, "\t\n\r\v+*/"), "\t\n\r\v+-*/"); // Do the math return $sum ? WC_Eval_Math::evaluate($sum) : 0; }
/** * Enqueue scripts */ public function admin_scripts() { global $post; get_currentuserinfo(); $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; // Register scripts 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); wp_register_script('jquery-blockui', WC()->plugin_url() . '/assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js', array('jquery'), '2.66', true); wp_register_script('jquery-tiptip', WC()->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js', array('jquery'), WC_VERSION, true); wp_register_script('accounting', WC()->plugin_url() . '/assets/js/admin/accounting' . $suffix . '.js', array('jquery'), '0.3.2'); wp_register_script('round', WC()->plugin_url() . '/assets/js/admin/round' . $suffix . '.js', array('jquery'), WC_VERSION); 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'), WC_VERSION); wp_register_script('qrcode', WC()->plugin_url() . '/assets/js/admin/jquery.qrcode.min.js', array('jquery'), WC_VERSION); wp_register_script('stupidtable', WC()->plugin_url() . '/assets/js/stupidtable/stupidtable' . $suffix . '.js', array('jquery'), WC_VERSION); wp_register_script('wc-admin-notices', WC()->plugin_url() . '/assets/js/admin/woocommerce_notices' . $suffix . '.js', array('jquery'), WC_VERSION, true); // Select2 is the replacement for chosen wp_register_script('select2', WC()->plugin_url() . '/assets/js/select2/select2' . $suffix . '.js', array('jquery'), '3.5.2'); wp_register_script('wc-enhanced-select', WC()->plugin_url() . '/assets/js/admin/wc-enhanced-select' . $suffix . '.js', array('jquery', 'select2'), WC_VERSION); wp_localize_script('select2', 'wc_select_params', array('i18n_matches_1' => _x('One result is available, press enter to select it.', 'enhanced select', 'woocommerce'), 'i18n_matches_n' => _x('%qty% results are available, use up and down arrow keys to navigate.', 'enhanced select', 'woocommerce'), 'i18n_no_matches' => _x('No matches found', 'enhanced select', 'woocommerce'), 'i18n_ajax_error' => _x('Loading failed', 'enhanced select', 'woocommerce'), 'i18n_input_too_short_1' => _x('Please enter 1 or more characters', 'enhanced select', 'woocommerce'), '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'))); wp_localize_script('wc-enhanced-select', 'wc_enhanced_select_params', array('ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce('search-products'), 'search_customers_nonce' => wp_create_nonce('search-customers'))); // Accounting wp_localize_script('accounting', 'accounting_params', array('mon_decimal_point' => wc_get_price_decimal_separator())); // WooCommerce admin pages wp_enqueue_script('woocommerce_admin'); wp_enqueue_script('iris'); wp_enqueue_script('wc-enhanced-select'); wp_enqueue_script('jquery-ui-sortable'); wp_enqueue_script('jquery-ui-autocomplete'); $locale = localeconv(); $decimal = isset($locale['decimal_point']) ? $locale['decimal_point'] : '.'; $params = array('i18n_decimal_error' => sprintf(__('Please enter in decimal (%s) format without thousand separators.', 'woocommerce'), $decimal), 'i18n_mon_decimal_error' => sprintf(__('Please enter in monetary decimal (%s) format without thousand separators and currency symbols.', 'woocommerce'), wc_get_price_decimal_separator()), '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, 'mon_decimal_point' => wc_get_price_decimal_separator()); wp_localize_script('woocommerce_admin', 'woocommerce_admin', $params); // Meta boxes wp_enqueue_media(); wp_enqueue_script('wc-admin-product-meta-boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes-product' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); wp_enqueue_script('wc-admin-variation-meta-boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes-product-variation' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); $params = array('post_id' => isset($post->ID) ? $post->ID : '', 'plugin_url' => WC()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), 'woocommerce_placeholder_img_src' => wc_placeholder_img_src(), 'add_variation_nonce' => wp_create_nonce("add-variation"), 'link_variation_nonce' => wp_create_nonce("link-variations"), 'delete_variations_nonce' => wp_create_nonce("delete-variations"), 'i18n_link_all_variations' => esc_js(__('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 50 per run).', 'woocommerce')), 'i18n_enter_a_value' => esc_js(__('Enter a value', 'woocommerce')), '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')), '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')), 'i18n_scheduled_sale_end' => esc_js(__('Sale end date (YYYY-MM-DD format or leave blank)', 'woocommerce'))); wp_localize_script('wc-admin-variation-meta-boxes', 'woocommerce_admin_meta_boxes_variations', $params); $params = array('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'), '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'), 'i18n_delete_tax' => __('Are you sure you wish to delete this tax column? This action cannot be undone.', 'woocommerce'), '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'), 'calc_totals' => __('Calculate totals based on order items, discounts, and shipping?', 'woocommerce'), 'calc_line_taxes' => __('Calculate line taxes? This will calculate taxes based on the customers country. If no billing/shipping is set it will use the store base country.', 'woocommerce'), 'copy_billing' => __('Copy billing information to shipping information? This will remove any currently entered shipping information.', 'woocommerce'), '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'), 'featured_label' => __('Featured', 'woocommerce'), 'prices_include_tax' => esc_attr(get_option('woocommerce_prices_include_tax')), 'round_at_subtotal' => esc_attr(get_option('woocommerce_tax_round_at_subtotal')), 'no_customer_selected' => __('No customer selected', 'woocommerce'), 'plugin_url' => WC()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), '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'), 'calendar_image' => WC()->plugin_url() . '/assets/images/calendar.png', 'post_id' => isset($post->ID) ? $post->ID : '', 'base_country' => WC()->countries->get_base_country(), 'currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'rounding_precision' => WC_ROUNDING_PRECISION, 'tax_rounding_mode' => WC_TAX_ROUNDING_MODE, 'product_types' => array_map('sanitize_title', get_terms('product_type', array('hide_empty' => false, 'fields' => 'names'))), 'default_attribute_visibility' => apply_filters('default_attribute_visibility', false), 'default_attribute_variation' => apply_filters('default_attribute_variation', false), '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'), 'i18n_permission_revoke' => __('Are you sure you want to revoke access to this download?', 'woocommerce'), 'i18n_tax_rate_already_exists' => __('You cannot add the same tax rate twice!', 'woocommerce'), 'i18n_product_type_alert' => __('Your product has variations! Before changing the product type, it is a good idea to delete the variations to avoid errors in the stock reports.', 'woocommerce')); wp_localize_script('wc-admin-meta-boxes', 'woocommerce_admin_meta_boxes', $params); }
/** * Evaluate a cost from a sum/string. * @param string $sum * @param array $args * @return string */ protected function evaluate_cost($sum, $args = array()) { include_once WC()->plugin_path() . '/includes/libraries/class-wc-eval-math.php'; // Allow 3rd parties to process shipping cost arguments $args = apply_filters('woocommerce_evaluate_shipping_cost_args', $args, $sum, $this); $locale = localeconv(); $decimals = array(wc_get_price_decimal_separator(), $locale['decimal_point'], $locale['mon_decimal_point'], ','); $this->fee_cost = $args['cost']; // Expand shortcodes add_shortcode('fee', array($this, 'fee')); $sum = do_shortcode(str_replace(array('[qty]', '[cost]'), array($args['qty'], $args['cost']), $sum)); remove_shortcode('fee', array($this, 'fee')); // Remove whitespace from string $sum = preg_replace('/\\s+/', '', $sum); // Remove locale from string $sum = str_replace($decimals, '.', $sum); // Trim invalid start/end characters $sum = rtrim(ltrim($sum, "\t\n\r\v+*/"), "\t\n\r\v+-*/"); // Do the math return $sum ? WC_Eval_Math::evaluate($sum) : 0; }
/** * Format the price with a currency symbol. * * @param float $price * @param array $args (default: array()) * @return string */ function wc_price($price, $args = array()) { extract(apply_filters('wc_price_args', wp_parse_args($args, array('ex_tax_label' => false, 'currency' => '', 'decimal_separator' => wc_get_price_decimal_separator(), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimals' => wc_get_price_decimals(), 'price_format' => get_woocommerce_price_format())))); $negative = $price < 0; $price = apply_filters('raw_woocommerce_price', floatval($negative ? $price * -1 : $price)); $price = apply_filters('formatted_woocommerce_price', number_format($price, $decimals, $decimal_separator, $thousand_separator), $price, $decimals, $decimal_separator, $thousand_separator); if (apply_filters('woocommerce_price_trim_zeros', false) && $decimals > 0) { $price = wc_trim_zeros($price); } $formatted_price = ($negative ? '-' : '') . sprintf($price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol($currency) . '</span>', $price); $return = '<span class="woocommerce-Price-amount amount">' . $formatted_price . '</span>'; if ($ex_tax_label && wc_tax_enabled()) { $return .= ' <small class="woocommerce-Price-taxLabel tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>'; } return apply_filters('wc_price', $return, $price, $args); }
function wc_nyp_get_price_decimal_separator() { return wc_get_price_decimal_separator(); }
$WOOCS = $GLOBALS['WOOCS']; // if current user currency is different from defaut one and option 'is_multiple_allowed' is off // - 'display_price' is not converted so we need convert it manually if ($WOOCS->default_currency != $WOOCS->current_currency && !$WOOCS->is_multiple_allowed) { if ($config_variations_data) { foreach ($config_variations_data as &$_variation_details) { $_variation_details['display_price'] = (double) $WOOCS->raw_woocommerce_price($_variation_details['display_price']); $_variation_details['display_regular_price'] = (double) $WOOCS->raw_woocommerce_price($_variation_details['display_regular_price']); } } elseif ($plain_price_data) { $plain_price_data['display_price'] = (double) $WOOCS->raw_woocommerce_price($plain_price_data['display_price']); $plain_price_data['display_regular_price'] = (double) $WOOCS->raw_woocommerce_price($plain_price_data['display_regular_price']); } } } TdJsClientScript::addScript('money_formatting_config', 'Theme.formatter.setConfig("money",' . wp_json_encode(array('mask' => sprintf(get_woocommerce_price_format(), get_woocommerce_currency_symbol(), '{amount}'), 'decimal_separator' => wc_get_price_decimal_separator(), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimals' => wc_get_price_decimals())) . ');'); wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_style('jquery-ui-datepicker-custom'); TdJsClientScript::addScript('initTourBookingForm', 'Theme.tourBookingForm.init(' . wp_json_encode(array('formSelector' => '#tourBookingForm', 'availableDates' => $booking_form->get_booking_dates($product, true), 'dateFormat' => $booking_form->get_date_format('datepicker'), 'plainPriceData' => $plain_price_data, 'variationsData' => $config_variations_data, 'disableAjax' => 'yes' != get_option('woocommerce_enable_ajax_add_to_cart'), 'dateCalendarAvailableTicketsMessage' => $booking_form->calendar_show_left_tickets_format, 'timeSeletTextFormat' => $booking_form->time_select_text_format, 'useDatePickerForDateSelection' => $booking_form->user_datepicker_for_date_field, 'itemsDataPriceUrl' => admin_url('admin-ajax.php?action=calculate_booking_items_price'))) . ');'); ?> <a name="tourBooking"></a> <?php $notices = apply_filters('adventure_tours_booking_form_notices', array()); if ($notices) { foreach ($notices as $notice_type => $messages) { adventure_tours_render_template_part('templates/parts/notices', '', array('messages' => $messages, 'type' => $notice_type)); } } ?> <div class="form-block form-block--style3 form-block--tour-booking block-after-indent">
/** * Get some setting values for the site that are useful for debugging * purposes. For full settings access, use the settings api. * * @return array */ public function get_settings() { // Get a list of terms used for product/order taxonomies $term_response = array(); $terms = get_terms('product_type', array('hide_empty' => 0)); foreach ($terms as $term) { $term_response[$term->slug] = strtolower($term->name); } // Return array of useful settings for debugging. return array('api_enabled' => 'yes' === get_option('woocommerce_api_enabled'), 'force_ssl' => 'yes' === get_option('woocommerce_force_ssl_checkout'), 'currency' => get_woocommerce_currency(), 'currency_symbol' => get_woocommerce_currency_symbol(), 'currency_position' => get_option('woocommerce_currency_pos'), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimal_separator' => wc_get_price_decimal_separator(), 'number_of_decimals' => wc_get_price_decimals(), 'geolocation_enabled' => in_array(get_option('woocommerce_default_customer_address'), array('geolocation_ajax', 'geolocation')), 'taxonomies' => $term_response); }
/** * Test wc_get_price_decimal_separator(). * * @since 2.4 */ public function test_wc_get_price_decimal_separator() { $separator = get_option('woocommerce_price_decimal_sep'); // defualt value $this->assertEquals('.', wc_get_price_decimal_separator()); update_option('woocommerce_price_decimal_sep', ','); $this->assertEquals(',', wc_get_price_decimal_separator()); update_option('woocommerce_price_decimal_sep', '<.>'); $this->assertEquals('<.>', wc_get_price_decimal_separator()); update_option('woocommerce_price_decimal_sep', $separator); }
/** * Enqueue scripts */ public function admin_scripts() { global $wp_query, $post, $current_user; get_currentuserinfo(); $screen = get_current_screen(); $wc_screen_id = sanitize_title(__('WooCommerce', 'woocommerce')); $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; // Register scripts 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); wp_register_script('jquery-blockui', WC()->plugin_url() . '/assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js', array('jquery'), '2.70', true); wp_register_script('jquery-tiptip', WC()->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js', array('jquery'), WC_VERSION, true); wp_register_script('accounting', WC()->plugin_url() . '/assets/js/admin/accounting' . $suffix . '.js', array('jquery'), '0.4.2'); wp_register_script('round', WC()->plugin_url() . '/assets/js/admin/round' . $suffix . '.js', array('jquery'), WC_VERSION); 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'), WC_VERSION); wp_register_script('zeroclipboard', WC()->plugin_url() . '/assets/js/zeroclipboard/jquery.zeroclipboard' . $suffix . '.js', array('jquery'), WC_VERSION); wp_register_script('qrcode', WC()->plugin_url() . '/assets/js/jquery-qrcode/jquery.qrcode' . $suffix . '.js', array('jquery'), WC_VERSION); wp_register_script('stupidtable', WC()->plugin_url() . '/assets/js/stupidtable/stupidtable' . $suffix . '.js', array('jquery'), WC_VERSION); // Chosen is @deprecated (2.3) in favour of select2, but is registered for backwards compat wp_register_script('ajax-chosen', WC()->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery', 'chosen'), WC_VERSION); wp_register_script('chosen', WC()->plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), WC_VERSION); // Select2 is the replacement for chosen wp_register_script('select2', WC()->plugin_url() . '/assets/js/select2/select2' . $suffix . '.js', array('jquery'), '3.5.2'); wp_register_script('wc-enhanced-select', WC()->plugin_url() . '/assets/js/admin/wc-enhanced-select' . $suffix . '.js', array('jquery', 'select2'), WC_VERSION); wp_localize_script('wc-enhanced-select', 'wc_enhanced_select_params', array('i18n_matches_1' => _x('One result is available, press enter to select it.', 'enhanced select', 'woocommerce'), 'i18n_matches_n' => _x('%qty% results are available, use up and down arrow keys to navigate.', 'enhanced select', 'woocommerce'), 'i18n_no_matches' => _x('No matches found', 'enhanced select', 'woocommerce'), 'i18n_ajax_error' => _x('Loading failed', 'enhanced select', 'woocommerce'), 'i18n_input_too_short_1' => _x('Please enter 1 or more characters', 'enhanced select', 'woocommerce'), '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'), 'ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce('search-products'), 'search_customers_nonce' => wp_create_nonce('search-customers'))); // Accounting wp_localize_script('accounting', 'accounting_params', array('mon_decimal_point' => wc_get_price_decimal_separator())); // WooCommerce admin pages if (in_array($screen->id, wc_get_screen_ids())) { wp_enqueue_script('woocommerce_admin'); wp_enqueue_script('iris'); wp_enqueue_script('wc-enhanced-select'); wp_enqueue_script('jquery-ui-sortable'); wp_enqueue_script('jquery-ui-autocomplete'); $locale = localeconv(); $decimal = isset($locale['decimal_point']) ? $locale['decimal_point'] : '.'; $params = array('i18n_decimal_error' => sprintf(__('Please enter in decimal (%s) format without thousand separators.', 'woocommerce'), $decimal), 'i18n_mon_decimal_error' => sprintf(__('Please enter in monetary decimal (%s) format without thousand separators and currency symbols.', 'woocommerce'), wc_get_price_decimal_separator()), '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, 'mon_decimal_point' => wc_get_price_decimal_separator()); wp_localize_script('woocommerce_admin', 'woocommerce_admin', $params); } // Edit product category pages if (in_array($screen->id, array('edit-product_cat'))) { wp_enqueue_media(); } // Products if (in_array($screen->id, array('edit-product'))) { wp_enqueue_script('woocommerce_quick-edit', WC()->plugin_url() . '/assets/js/admin/quick-edit' . $suffix . '.js', array('jquery'), WC_VERSION); } // Meta boxes if (in_array($screen->id, array('product', 'edit-product'))) { wp_enqueue_media(); wp_enqueue_script('wc-admin-product-meta-boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes-product' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); wp_enqueue_script('wc-admin-variation-meta-boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes-product-variation' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); $params = array('post_id' => isset($post->ID) ? $post->ID : '', 'plugin_url' => WC()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), 'woocommerce_placeholder_img_src' => wc_placeholder_img_src(), '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'), 'save_variations_nonce' => wp_create_nonce('save-variations'), 'bulk_edit_variations_nonce' => wp_create_nonce('bulk-edit-variations'), 'i18n_link_all_variations' => esc_js(__('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 50 per run).', 'woocommerce')), 'i18n_enter_a_value' => esc_js(__('Enter a value', 'woocommerce')), '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')), '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')), 'i18n_scheduled_sale_end' => esc_js(__('Sale end date (YYYY-MM-DD format or leave blank)', 'woocommerce')), 'i18n_edited_variations' => esc_js(__('Save changes before changing page?', 'woocommerce')), 'i18n_variation_count_single' => esc_js(__('%qty% variation', 'woocommerce')), 'i18n_variation_count_plural' => esc_js(__('%qty% variations', 'woocommerce')), 'variations_per_page' => absint(apply_filters('woocommerce_admin_meta_boxes_variations_per_page', 10))); wp_localize_script('wc-admin-variation-meta-boxes', 'woocommerce_admin_meta_boxes_variations', $params); } if (in_array(str_replace('edit-', '', $screen->id), wc_get_order_types('order-meta-boxes'))) { 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_VERSION); wp_enqueue_script('wc-admin-order-meta-boxes-modal', WC()->plugin_url() . '/assets/js/admin/order-backbone-modal' . $suffix . '.js', array('underscore', 'backbone', 'wc-admin-order-meta-boxes'), WC_VERSION); $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')); wp_localize_script('wc-admin-order-meta-boxes', 'woocommerce_admin_meta_boxes_order', $params); } if (in_array($screen->id, array('shop_coupon', 'edit-shop_coupon'))) { 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); } if (in_array(str_replace('edit-', '', $screen->id), array_merge(array('shop_coupon', 'product'), wc_get_order_types('order-meta-boxes')))) { $params = array('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'), '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'), 'i18n_delete_tax' => __('Are you sure you wish to delete this tax column? This action cannot be undone.', 'woocommerce'), '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'), 'calc_totals' => __('Calculate totals based on order items, discounts, and shipping?', 'woocommerce'), 'calc_line_taxes' => __('Calculate line taxes? This will calculate taxes based on the customers country. If no billing/shipping is set it will use the store base country.', 'woocommerce'), 'copy_billing' => __('Copy billing information to shipping information? This will remove any currently entered shipping information.', 'woocommerce'), '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'), 'featured_label' => __('Featured', 'woocommerce'), 'prices_include_tax' => esc_attr(get_option('woocommerce_prices_include_tax')), 'round_at_subtotal' => esc_attr(get_option('woocommerce_tax_round_at_subtotal')), 'no_customer_selected' => __('No customer selected', 'woocommerce'), 'plugin_url' => WC()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), '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'), 'calendar_image' => WC()->plugin_url() . '/assets/images/calendar.png', 'post_id' => isset($post->ID) ? $post->ID : '', 'base_country' => WC()->countries->get_base_country(), 'currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'rounding_precision' => WC_ROUNDING_PRECISION, 'tax_rounding_mode' => WC_TAX_ROUNDING_MODE, 'product_types' => array_map('sanitize_title', get_terms('product_type', array('hide_empty' => false, 'fields' => 'names'))), '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'), 'i18n_permission_revoke' => __('Are you sure you want to revoke access to this download?', 'woocommerce'), 'i18n_tax_rate_already_exists' => __('You cannot add the same tax rate twice!', 'woocommerce'), 'i18n_product_type_alert' => __('Your product has variations! Before changing the product type, it is a good idea to delete the variations to avoid errors in the stock reports.', 'woocommerce')); wp_localize_script('wc-admin-meta-boxes', 'woocommerce_admin_meta_boxes', $params); } // Term ordering - only when sorting by term_order if ((strstr($screen->id, 'edit-pa_') || !empty($_GET['taxonomy']) && in_array($_GET['taxonomy'], apply_filters('woocommerce_sortable_taxonomies', array('product_cat')))) && !isset($_GET['orderby'])) { wp_register_script('woocommerce_term_ordering', WC()->plugin_url() . '/assets/js/admin/term-ordering' . $suffix . '.js', array('jquery-ui-sortable'), WC_VERSION); wp_enqueue_script('woocommerce_term_ordering'); $taxonomy = isset($_GET['taxonomy']) ? wc_clean($_GET['taxonomy']) : ''; $woocommerce_term_order_params = array('taxonomy' => $taxonomy); 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 if (current_user_can('edit_others_pages') && $screen->id == 'edit-product' && isset($wp_query->query['orderby']) && $wp_query->query['orderby'] == 'menu_order title') { wp_enqueue_script('woocommerce_product_ordering', WC()->plugin_url() . '/assets/js/admin/product-ordering' . $suffix . '.js', array('jquery-ui-sortable'), WC_VERSION, true); } // Reports Pages if (in_array($screen->id, apply_filters('woocommerce_reports_screen_ids', array($wc_screen_id . '_page_wc-reports', 'toplevel_page_wc-reports', 'dashboard')))) { wp_enqueue_script('wc-reports', WC()->plugin_url() . '/assets/js/admin/reports' . $suffix . '.js', array('jquery', 'jquery-ui-datepicker'), WC_VERSION); wp_enqueue_script('flot', WC()->plugin_url() . '/assets/js/admin/jquery.flot' . $suffix . '.js', array('jquery'), WC_VERSION); wp_enqueue_script('flot-resize', WC()->plugin_url() . '/assets/js/admin/jquery.flot.resize' . $suffix . '.js', array('jquery', 'flot'), WC_VERSION); wp_enqueue_script('flot-time', WC()->plugin_url() . '/assets/js/admin/jquery.flot.time' . $suffix . '.js', array('jquery', 'flot'), WC_VERSION); wp_enqueue_script('flot-pie', WC()->plugin_url() . '/assets/js/admin/jquery.flot.pie' . $suffix . '.js', array('jquery', 'flot'), WC_VERSION); wp_enqueue_script('flot-stack', WC()->plugin_url() . '/assets/js/admin/jquery.flot.stack' . $suffix . '.js', array('jquery', 'flot'), WC_VERSION); } // API settings if ($wc_screen_id . '_page_wc-settings' === $screen->id && isset($_GET['section']) && 'keys' == $_GET['section']) { wp_enqueue_script('wc-api-keys', WC()->plugin_url() . '/assets/js/admin/api-keys' . $suffix . '.js', array('jquery', 'woocommerce_admin', 'underscore', 'backbone', 'qrcode', 'zeroclipboard'), WC_VERSION, true); wp_localize_script('wc-api-keys', 'woocommerce_admin_api_keys', array('ajax_url' => admin_url('admin-ajax.php'), 'update_api_nonce' => wp_create_nonce('update-api-key'))); } // System status if ($wc_screen_id . '_page_wc-status' === $screen->id) { wp_enqueue_script('zeroclipboard'); } if (in_array($screen->id, array('user-edit', 'profile'))) { wp_enqueue_script('wc-users', WC()->plugin_url() . '/assets/js/admin/users' . $suffix . '.js', array('jquery', 'wc-enhanced-select'), WC_VERSION, true); 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'))); } }
/** * Enqueue admin CSS and JS dependencies */ public function enqueue_dependencies_admin() { global $post_type, $wp_query, $post, $current_user; $screen = get_current_screen(); $wc_screen_id = sanitize_title(__('WooCommerce', 'woocommerce')); $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; if ($screen->id == 'wc_crm_accounts') { global $post; 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'), WC_VERSION); 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_VERSION); $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')); wp_localize_script('wc-admin-order-meta-boxes', 'woocommerce_admin_meta_boxes_order', $params); $params = array('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'), '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'), 'i18n_delete_tax' => __('Are you sure you wish to delete this tax column? This action cannot be undone.', 'woocommerce'), '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'), 'calc_totals' => __('Calculate totals based on order items, discounts, and shipping?', 'woocommerce'), 'calc_line_taxes' => __('Calculate line taxes? This will calculate taxes based on the customers country. If no billing/shipping is set it will use the store base country.', 'woocommerce'), 'copy_billing' => __('Copy billing information to shipping information? This will remove any currently entered shipping information.', 'woocommerce'), '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'), 'featured_label' => __('Featured', 'woocommerce'), 'prices_include_tax' => esc_attr(get_option('woocommerce_prices_include_tax')), 'round_at_subtotal' => esc_attr(get_option('woocommerce_tax_round_at_subtotal')), 'no_customer_selected' => __('No customer selected', 'woocommerce'), 'plugin_url' => WC()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), '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'), 'calendar_image' => WC()->plugin_url() . '/assets/images/calendar.png', 'post_id' => isset($post->ID) ? $post->ID : '', 'base_country' => WC()->countries->get_base_country(), 'currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'rounding_precision' => WC_ROUNDING_PRECISION, 'tax_rounding_mode' => WC_TAX_ROUNDING_MODE, 'product_types' => array_map('sanitize_title', get_terms('product_type', array('hide_empty' => false, 'fields' => 'names'))), 'default_attribute_visibility' => apply_filters('default_attribute_visibility', false), 'default_attribute_variation' => apply_filters('default_attribute_variation', false), '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'), 'i18n_permission_revoke' => __('Are you sure you want to revoke access to this download?', 'woocommerce'), 'i18n_tax_rate_already_exists' => __('You cannot add the same tax rate twice!', 'woocommerce'), 'i18n_product_type_alert' => __('Your product has variations! Before changing the product type, it is a good idea to delete the variations to avoid errors in the stock reports.', 'woocommerce')); wp_localize_script('wc-admin-meta-boxes', 'woocommerce_admin_meta_boxes', $params); wp_enqueue_script('wc-crm-account', plugins_url('assets/js/account.js', __FILE__), array('jquery')); wp_register_style('wc_crm_accounts', plugins_url('assets/css/admin-accounts.css', __FILE__)); wp_enqueue_style('wc_crm_accounts'); } if ($this->is_crm_page()) { wp_enqueue_media(); wp_enqueue_script(array('jquery', 'editor', 'thickbox', 'media-upload')); wp_enqueue_style('thickbox'); wp_enqueue_style('wp-color-picker'); wp_enqueue_script('custom-background'); wp_register_script('textbox_js', plugins_url('assets/js/TextboxList.js', __FILE__), array('jquery')); wp_enqueue_script('textbox_js'); wp_register_script('timer', plugins_url('assets/js/jquery.timer.js', __FILE__), array('jquery')); wp_enqueue_script('timer'); wp_register_script('jquery-ui', plugins_url('assets/js/jquery-ui.js', __FILE__), array('jquery')); wp_enqueue_script('jquery-ui'); wp_register_script('growing_input', plugins_url('assets/js/GrowingInput.js', __FILE__), array('jquery')); wp_enqueue_script('growing_input'); wp_register_style('textbox_css', plugins_url('assets/css/TextboxList.css', __FILE__)); wp_enqueue_style('textbox_css'); wp_register_style('jquery-ui-css', plugins_url('assets/css/jquery-ui.css', __FILE__)); wp_enqueue_style('jquery-ui-css'); wp_register_style('woocommerce_admin_styles', WC()->plugin_url() . '/assets/css/admin.css'); wp_register_style('woocommerce-customer-relationship-style-admin', plugins_url('assets/css/admin.css', __FILE__), array('textbox_css', 'woocommerce_admin_styles')); wp_enqueue_style('woocommerce-customer-relationship-style-admin'); wp_register_script('woocommerce-customer-relationship-script-admin', plugins_url('assets/js/admin.js', __FILE__), array('jquery', 'textbox_js', 'growing_input')); wp_enqueue_script('woocommerce-customer-relationship-script-admin'); wp_register_script('woocommerce_admin_crm', plugins_url() . '/woocommerce/assets/js/admin/woocommerce_admin.min.js', array('jquery', 'jquery-blockui', 'jquery-placeholder', 'jquery-ui-sortable', 'jquery-ui-widget', 'jquery-ui-core', 'jquery-tiptip')); wp_enqueue_script('woocommerce_admin_crm'); wp_register_script('woocommerce_tiptip_js', plugins_url() . '/woocommerce/assets/js/jquery-tiptip/jquery.tipTip.min.js'); wp_enqueue_script('woocommerce_tiptip_js'); if (!wp_script_is('select2', 'enqueued')) { wp_register_script('select2', WC()->plugin_url() . '/assets/js/select2/select2' . $suffix . '.js', array('jquery'), '3.5.2'); } if (!wp_script_is('wc-enhanced-select', 'enqueued')) { wp_register_script('wc-enhanced-select', WC()->plugin_url() . '/assets/js/admin/wc-enhanced-select' . $suffix . '.js', array('jquery', 'select2'), WC_VERSION); wp_localize_script('select2', 'wc_select_params', array('i18n_matches_1' => _x('One result is available, press enter to select it.', 'enhanced select', 'woocommerce'), 'i18n_matches_n' => _x('%qty% results are available, use up and down arrow keys to navigate.', 'enhanced select', 'woocommerce'), 'i18n_no_matches' => _x('No matches found', 'enhanced select', 'woocommerce'), 'i18n_ajax_error' => _x('Loading failed', 'enhanced select', 'woocommerce'), 'i18n_input_too_short_1' => _x('Please enter 1 or more characters', 'enhanced select', 'woocommerce'), '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'))); wp_localize_script('wc-enhanced-select', 'wc_enhanced_select_params', array('ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce('search-products'), 'search_customers_nonce' => wp_create_nonce('search-customers'))); wp_enqueue_script('wc-enhanced-select'); } wp_register_script('mousewheel', plugins_url('assets/js/jquery.mousewheel.js', __FILE__), array('jquery')); wp_enqueue_script('mousewheel'); if (isset($_GET['page']) && $_GET['page'] == 'wc_new_customer') { wp_register_script('jquery-blockui', WC()->plugin_url() . '/assets/js/jquery-blockui/jquery.blockUI.min.js', array('jquery'), '2.66', true); wp_enqueue_script('jquery-blockui'); if (isset($_GET['user_id']) && !empty($_GET['user_id']) || isset($_GET['order_id']) && !empty($_GET['order_id'])) { if (!class_exists('acf')) { wp_register_script('google_map', '//maps.google.com/maps/api/js?sensor=true', array('jquery'), '3.0', true); wp_register_script('jquery_ui_map', plugins_url('assets/js/jquery.ui.map.full.min.js', __FILE__), array('google_map'), '3.0', true); wp_enqueue_script('google_map'); wp_enqueue_script('jquery_ui_map'); } } $params = array('ajax_loader_url' => apply_filters('woocommerce_ajax_loader_url', WC()->plugin_url() . '/assets/images/ajax-loader@2x.gif'), 'ajax_url' => admin_url('admin-ajax.php'), 'wc_crm_loading_states' => wp_create_nonce("wc_crm_loading_states"), 'update_customer_table' => wp_create_nonce("update_customer_table"), 'copy_billing' => __('Copy billing information to shipping information? This will remove any currently entered shipping information.', 'woocommerce')); wp_localize_script('woocommerce-customer-relationship-script-admin', 'wc_crm_customer_params', $params); } if (isset($_GET['page']) && $_GET['page'] == 'wc-customer-relationship-manager') { $params = array('ajax_url' => admin_url('admin-ajax.php'), 'update_customer_table' => wp_create_nonce("update_customer_table")); wp_localize_script('woocommerce-customer-relationship-script-admin', 'wc_crm_customer_params', $params); } if (isset($_GET['page']) && $_GET['page'] == 'wc-customer-relationship-manager') { $params_crm = array('curent_time' => current_time('Y-m-d'), 'curent_time_h' => current_time('g'), 'curent_time_m' => current_time('i'), 'curent_time_s' => current_time('s')); wp_localize_script('woocommerce-customer-relationship-script-admin', 'wc_crm_params', $params_crm); } if (isset($_GET['page']) && ($_GET['page'] == 'wc_crm_settings' && isset($_GET['tab']) && $_GET['tab'] == 'statuses' || $_GET['page'] == 'wc-customer-relationship-manager')) { wp_enqueue_script('fonticonpicker', plugins_url('/assets/plugins/fontpicker/jquery.fonticonpicker.js', __FILE__)); wp_enqueue_style('fonticonpicker_styles', plugins_url('/assets/plugins/fontpicker/css/jquery.fonticonpicker.css', __FILE__)); wp_enqueue_style('fonticonpicker_theme', plugins_url('/assets/plugins/fontpicker/theme/jquery.fonticonpicker.grey.css', __FILE__)); wp_enqueue_style('fonticonpicker_theme_darkgrey', plugins_url('/assets/plugins/fontpicker/theme/jquery.fonticonpicker.darkgrey.css', __FILE__)); wp_enqueue_style('fonticonpicker_fonts_fontello', plugins_url('/assets/plugins/fontpicker/fonts/fontello/css/fontello.css', __FILE__)); wp_enqueue_style('fonticonpicker_fonts_icomoon', plugins_url('/assets/plugins/fontpicker/fonts/icomoon/style.css', __FILE__)); } add_thickbox(); } else { wp_enqueue_style('woocommerce-customer-relationship-style-admin', plugins_url('assets/css/admin.css', __FILE__)); } }
/** * Show What's the Offer meta box */ function so_whats_the_offer_meta_box() { global $post, $sa_smart_offers; $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; $assets_path = str_replace(array('http:', 'https:'), '', $sa_smart_offers->global_wc()->plugin_url()) . '/assets/'; if ($sa_smart_offers->is_wc_gte_21()) { $woocommerce_witepanel_params = array('ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce("search-products"), 'calendar_image' => $sa_smart_offers->global_wc()->plugin_url() . '/assets/images/calendar.png'); // Register scripts wp_enqueue_script('woocommerce_admin', $sa_smart_offers->global_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'), $sa_smart_offers->global_wc()->version); if ($sa_smart_offers->is_wc_gte_22()) { wp_enqueue_script('wc-admin-meta-boxes', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes' . $suffix . '.js', array('jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'accounting', 'round', 'ajax-chosen', 'chosen', 'plupload-all'), WC_VERSION); wp_enqueue_script('wc-admin-product-meta-boxes', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes-product' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); wp_enqueue_script('wc-admin-variation-meta-boxes', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes-product-variation' . $suffix . '.js', array('wc-admin-meta-boxes'), WC_VERSION); $params = array('post_id' => isset($post->ID) ? $post->ID : '', 'plugin_url' => $sa_smart_offers->global_wc()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), 'woocommerce_placeholder_img_src' => wc_placeholder_img_src(), 'add_variation_nonce' => wp_create_nonce("add-variation"), 'link_variation_nonce' => wp_create_nonce("link-variations"), 'delete_variations_nonce' => wp_create_nonce("delete-variations"), 'i18n_link_all_variations' => esc_js(__('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 50 per run).', SA_Smart_Offers::$text_domain)), 'i18n_enter_a_value' => esc_js(__('Enter a value', SA_Smart_Offers::$text_domain)), 'i18n_enter_a_value_fixed_or_percent' => esc_js(__('Enter a value (fixed or %)', SA_Smart_Offers::$text_domain)), 'i18n_delete_all_variations' => esc_js(__('Are you sure you want to delete all variations? This cannot be undone.', SA_Smart_Offers::$text_domain)), 'i18n_last_warning' => esc_js(__('Last warning, are you sure?', SA_Smart_Offers::$text_domain)), 'i18n_choose_image' => esc_js(__('Choose an image', SA_Smart_Offers::$text_domain)), 'i18n_set_image' => esc_js(__('Set variation image', SA_Smart_Offers::$text_domain)), 'i18n_variation_added' => esc_js(__("variation added", SA_Smart_Offers::$text_domain)), 'i18n_variations_added' => esc_js(__("variations added", SA_Smart_Offers::$text_domain)), 'i18n_no_variations_added' => esc_js(__("No variations added", SA_Smart_Offers::$text_domain)), 'i18n_remove_variation' => esc_js(__('Are you sure you want to remove this variation?', SA_Smart_Offers::$text_domain)), 'i18n_scheduled_sale_start' => esc_js(__('Sale start date (YYYY-MM-DD format or leave blank)', SA_Smart_Offers::$text_domain)), 'i18n_scheduled_sale_end' => esc_js(__('Sale end date (YYYY-MM-DD format or leave blank)', SA_Smart_Offers::$text_domain))); wp_localize_script('wc-admin-meta-boxes', 'woocommerce_admin_meta_boxes', $woocommerce_witepanel_params); wp_localize_script('wc-admin-variation-meta-boxes', 'woocommerce_admin_meta_boxes_variations', $params); } else { wp_enqueue_script('woocommerce_admin_meta_boxes', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes' . $suffix . '.js', array('jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'accounting', 'round'), $sa_smart_offers->global_wc()->version); wp_enqueue_script('woocommerce_admin_meta_boxes_variations', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes-variations' . $suffix . '.js', array('jquery', 'jquery-ui-sortable'), $sa_smart_offers->global_wc()->version); wp_localize_script('woocommerce_admin_meta_boxes', 'woocommerce_admin_meta_boxes', $woocommerce_witepanel_params); } if ($sa_smart_offers->is_wc_gte_23()) { if (!wp_script_is('select2', 'registered')) { wp_register_script('select2', WC()->plugin_url() . '/assets/js/admin/select2' . $suffix . '.js', array('jquery'), '3.5.2'); } if (!wp_script_is('wc-enhanced-select', 'registered')) { wp_register_script('wc-enhanced-select', WC()->plugin_url() . '/assets/js/admin/wc-enhanced-select' . $suffix . '.js', array('jquery', 'select2'), WC_VERSION); } $smart_offers_select_params = array('i18n_matches_1' => _x('One result is available, press enter to select it.', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_matches_n' => _x('%qty% results are available, use up and down arrow keys to navigate.', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_no_matches' => _x('No matches found', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_ajax_error' => _x('Loading failed', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_input_too_short_1' => _x('Please enter 1 or more characters', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_input_too_short_n' => _x('Please enter %qty% or more characters', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_input_too_long_1' => _x('Please delete 1 character', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_input_too_long_n' => _x('Please delete %qty% characters', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_selection_too_long_1' => _x('You can only select 1 item', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_selection_too_long_n' => _x('You can only select %qty% items', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_load_more' => _x('Loading more results…', 'enhanced select', SA_Smart_Offers::$text_domain), 'i18n_searching' => _x('Searching…', 'enhanced select', SA_Smart_Offers::$text_domain), 'ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce('search-products'), 'search_customers_nonce' => wp_create_nonce('search-customers')); wp_localize_script('select2', 'wc_enhanced_select_params', $smart_offers_select_params); $locale = localeconv(); $decimal = isset($locale['decimal_point']) ? $locale['decimal_point'] : '.'; $woocommerce_admin_params = array('i18n_decimal_error' => sprintf(__('Please enter in decimal (%s) format without thousand separators.', SA_Smart_Offers::$text_domain), $decimal), 'i18n_mon_decimal_error' => sprintf(__('Please enter in monetary decimal (%s) format without thousand separators and currency symbols.', SA_Smart_Offers::$text_domain), wc_get_price_decimal_separator()), 'i18n_country_iso_error' => __('Please enter in country code with two capital letters.', SA_Smart_Offers::$text_domain), 'i18_sale_less_than_regular_error' => __('Please enter in a value less than the regular price.', SA_Smart_Offers::$text_domain), 'decimal_point' => $decimal, 'mon_decimal_point' => wc_get_price_decimal_separator()); wp_localize_script('woocommerce_admin', 'woocommerce_admin', $woocommerce_admin_params); } else { wp_enqueue_script('ajax-chosen', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery', 'chosen'), $sa_smart_offers->global_wc()->version); wp_enqueue_script('chosen', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), $sa_smart_offers->global_wc()->version); } wp_enqueue_style('woocommerce_admin_styles', $sa_smart_offers->global_wc()->plugin_url() . '/assets/css/admin.css'); if ($sa_smart_offers->is_wc_gte_23()) { wp_enqueue_script('select2'); wp_enqueue_script('wc-enhanced-select'); wp_enqueue_style('select2', $assets_path . 'css/select2.css'); } else { wp_enqueue_style('woocommerce_chosen_styles', $assets_path . 'css/chosen.css'); } } else { // Register scripts wp_register_script('woocommerce_admin', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/woocommerce_admin' . $suffix . '.js', array('jquery', 'jquery-ui-widget', 'jquery-ui-core'), '1.0'); wp_register_script('woocommerce_writepanel', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/admin/write-panels' . $suffix . '.js', array('jquery')); wp_register_script('ajax-chosen', $sa_smart_offers->global_wc()->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery'), '1.0'); wp_enqueue_script('woocommerce_admin'); wp_enqueue_script('woocommerce_writepanel'); wp_enqueue_script('ajax-chosen'); $woocommerce_witepanel_params = array('ajax_url' => admin_url('admin-ajax.php'), 'search_products_nonce' => wp_create_nonce("search-products"), 'calendar_image' => $sa_smart_offers->global_wc()->plugin_url() . '/assets/images/calendar.png'); wp_localize_script('woocommerce_writepanel', 'woocommerce_writepanel_params', $woocommerce_witepanel_params); wp_enqueue_style('woocommerce_admin_styles', $sa_smart_offers->global_wc()->plugin_url() . '/assets/css/admin.css'); wp_enqueue_style('jquery-ui-style', is_ssl() ? 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' : 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); wp_enqueue_style('woocommerce_chosen_styles', $sa_smart_offers->global_wc()->plugin_url() . '/assets/css/chosen.css'); } ?> <script type="text/javascript"> jQuery(document).ready(function() { <?php if (!$sa_smart_offers->is_wc_gte_23()) { ?> function set_unique_offer_product() { setTimeout(function() { <?php if ($sa_smart_offers->is_wc_gte_21()) { ?> if (jQuery('div#target_product_ids_chosen ul.chosen-choices li').length >= 2) { jQuery('div#target_product_ids_chosen ul.chosen-choices li.search-field').css('visibility', 'hidden'); jQuery('div#target_product_ids_chosen div.chosen-drop').css('display', 'none'); } else { jQuery('div#target_product_ids_chosen ul.chosen-choices li.search-field').css('visibility', 'visible'); jQuery('div#target_product_ids_chosen div.chosen-drop').css('display', 'block'); } <?php } else { ?> if (jQuery('div#target_product_ids_chzn ul.chzn-choices li').length >= 2) { jQuery('div#target_product_ids_chzn ul.chzn-choices li.search-field').css('visibility', 'hidden'); jQuery('div#target_product_ids_chzn div.chzn-drop').css('display', 'none'); } else { jQuery('div#target_product_ids_chzn ul.chzn-choices li.search-field').css('visibility', 'visible'); jQuery('div#target_product_ids_chzn div.chzn-drop').css('display', 'block'); } <?php } ?> }, 300); } set_unique_offer_product(); jQuery('select#target_product_ids').change(function() { set_unique_offer_product(); }); <?php } ?> }); </script> <div id="so_whats_offer_panel" class="panel woocommerce_options_panel"> <p class="form-field"> <label for="target_product_ids"><?php _e('Offered Product', SA_Smart_Offers::$text_domain); ?> </label> <?php if ($sa_smart_offers->is_wc_gte_23()) { ?> <input type="hidden" class="wc-product-search" style="width: 50%;" id="target_product_ids" name="target_product_ids" data-placeholder="<?php _e('Search for a product…', SA_Smart_Offers::$text_domain); ?> " data-action="woocommerce_json_search_products_and_variations" data-multiple="false" data-selected="<?php $product_id = absint(get_post_meta($post->ID, 'target_product_ids', true)); if (!empty($product_id)) { $product = $sa_smart_offers->get_product($product_id); echo esc_attr(wp_kses_post($product->get_formatted_name())); } else { echo ''; } ?> " value="<?php echo !empty($product_id) ? $product_id : ''; ?> " /> <?php } else { ?> <select id="target_product_ids" name="target_product_ids[]" class="ajax_chosen_select_products_and_variations" multiple="multiple" data-placeholder="<?php _e('Search for a product...', SA_Smart_Offers::$text_domain); ?> "> <?php $product_ids = get_post_meta($post->ID, 'target_product_ids', true); if ($product_ids) { $product_ids = explode(',', $product_ids); foreach ($product_ids as $product_id) { $product = $sa_smart_offers->get_product($product_id); $title = $sa_smart_offers->get_formatted_product_name($product); $sku = get_post_meta($product_id, '_sku', true); if (!$title) { continue; } if (isset($sku) && $sku) { $sku = ' (SKU: ' . $sku . ')'; } echo '<option value="' . $product_id . '" selected="selected">' . $title . $sku . '</option>'; } } ?> </select> <?php } ?> <img class="help_tip" data-tip='<?php _e('This product would be shown as an offer and on accepting this offer, this product would be added to cart ', SA_Smart_Offers::$text_domain); ?> ' src="<?php echo $sa_smart_offers->global_wc()->plugin_url(); ?> /assets/images/help.png" /> </p> <?php $discount_types = array('fixed_price' => __(get_woocommerce_currency_symbol() . ' - Fixed Price', SA_Smart_Offers::$text_domain), 'price_discount' => __(get_woocommerce_currency_symbol() . ' - Discount', SA_Smart_Offers::$text_domain), 'percent_discount' => '% - Discount'); ?> <p class="form-field offer_price_field "> <label for="offer_price"><?php _e('Offer At', SA_Smart_Offers::$text_domain); ?> </label> <input type="number" step="any" class="short" name="offer_price" id="offer_price" value="<?php echo get_post_meta($post->ID, 'offer_price', true); ?> "> <select id="discount_type" name="discount_type" class="select short"> <?php foreach ($discount_types as $key => $value) { echo "<option value='{$key}' " . selected($key, get_post_meta($post->ID, 'discount_type', true)) . "> {$value} </option>"; } ?> </select> <span class="description"><?php _e('Enter an amount/discount as a promotional price for above offered product e.g. 2.99', SA_Smart_Offers::$text_domain); ?> </span> </p> </div> <?php }
<td><?php echo wc_get_price_thousand_separator(); ?> </td> </tr> <tr> <td data-export-label="Decimal Separator"><?php _e('Decimal Separator', 'woocommerce'); ?> </td> <td class="help"><?php echo wc_help_tip(__('The decimal separator of displayed prices.', 'woocommerce')); ?> </td> <td><?php echo wc_get_price_decimal_separator(); ?> </td> </tr> <tr> <td data-export-label="Number of Decimals"><?php _e('Number of Decimals', 'woocommerce'); ?> </td> <td class="help"><?php echo wc_help_tip(__('The number of decimal points shown in displayed prices.', 'woocommerce')); ?> </td> <td><?php echo wc_get_price_decimals(); ?>
function uni_cpo_get_formatted_float($sPrice) { $decimal_separator = wc_get_price_decimal_separator(); $thousand_separator = wc_get_price_thousand_separator(); $decimals = wc_get_price_decimals(); $negative = $sPrice < 0; $sPrice = apply_filters('raw_woocommerce_price', floatval($negative ? $sPrice * -1 : $sPrice)); return $sPrice; }
function woocommerce_gravityform_enqueue_scripts() { global $post; if (is_product()) { $gravity_form_data = get_post_meta($post->ID, '_gravity_form_data', true); if ($gravity_form_data && is_array($gravity_form_data)) { //wp_enqueue_script("gforms_gravityforms", GFCommon::get_base_url() . "/js/gravityforms.js", array("jquery"), GFCommon::$version, false); gravity_form_enqueue_scripts($gravity_form_data['id'], false); $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; wp_register_script('accounting', WC()->plugin_url() . '/assets/js/admin/accounting' . $suffix . '.js', array('jquery'), '0.4.2'); wp_enqueue_script('wc-gravityforms-product-addons', woocommerce_gravityforms::plugin_url() . '/assets/js/gravityforms-product-addons.js', array('jquery', 'accounting'), true); $product = wc_get_product(); $prices = array($product->id => $product->get_display_price()); if ($product->has_child()) { foreach ($product->get_children() as $variation_id) { $variation = $product->get_child($variation_id); $prices[$variation_id] = $variation->get_display_price(); } } // Accounting wp_localize_script('accounting', 'accounting_params', array('mon_decimal_point' => wc_get_price_decimal_separator())); $wc_gravityforms_params = array('currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'prices' => $prices); wp_localize_script('wc-gravityforms-product-addons', 'wc_gravityforms_params', $wc_gravityforms_params); } } elseif (is_object($post) && isset($post->post_content) && !empty($post->post_content)) { $enqueue = false; $forms = array(); $prices = array(); if (preg_match_all('/\\[product_page[s]? +.*?((id=.+?)|(name=.+?))\\]/is', $post->post_content, $matches, PREG_SET_ORDER)) { $ajax = false; foreach ($matches as $match) { //parsing shortcode attributes $attr = shortcode_parse_atts($match[1]); $product_id = isset($attr['id']) ? $attr['id'] : false; if (!empty($product_id)) { $gravity_form_data = get_post_meta($product_id, '_gravity_form_data', true); if ($gravity_form_data && is_array($gravity_form_data)) { $enqueue = true; gravity_form_enqueue_scripts($gravity_form_data['id'], false); $product = wc_get_product($product_id); $prices[$product->id] = $product->get_display_price(); if ($product->has_child()) { foreach ($product->get_children() as $variation_id) { $variation = $product->get_child($variation_id); $prices[$variation_id] = $variation->get_display_price(); } } } } } if ($enqueue) { $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; wp_register_script('accounting', WC()->plugin_url() . '/assets/js/admin/accounting' . $suffix . '.js', array('jquery'), '0.4.2'); wp_enqueue_script('wc-gravityforms-product-addons', woocommerce_gravityforms::plugin_url() . '/assets/js/gravityforms-product-addons.js', array('jquery', 'accounting'), true); // Accounting wp_localize_script('accounting', 'accounting_params', array('mon_decimal_point' => wc_get_price_decimal_separator())); $wc_gravityforms_params = array('currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'prices' => $prices); wp_localize_script('wc-gravityforms-product-addons', 'wc_gravityforms_params', $wc_gravityforms_params); } } } }
/** * Remove amount to a gift card prdduct * * @since 1.0 * @author Lorenzo Giuffrida */ public function remove_gift_card_amount_callback() { $amount = number_format($_POST['amount'], 2, wc_get_price_decimal_separator(), ''); $product_id = intval($_POST['product_id']); $res = $this->gift_cards_instance->remove_amount_to_gift_card($product_id, $amount); wp_send_json(array("code" => $res)); }
/** * Format the price with a currency symbol. * * @param float $price * @param array $args (default: array()) * * @return string */ function yith_get_formatted_price($price, $args = array()) { extract(apply_filters('wc_price_args', wp_parse_args($args, array('ex_tax_label' => false, 'currency' => '', 'decimal_separator' => wc_get_price_decimal_separator(), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimals' => wc_get_price_decimals(), 'price_format' => get_woocommerce_price_format())))); $negative = $price < 0; $price = apply_filters('raw_woocommerce_price', floatval($negative ? $price * -1 : $price)); $price = apply_filters('formatted_woocommerce_price', number_format($price, $decimals, $decimal_separator, $thousand_separator), $price, $decimals, $decimal_separator, $thousand_separator); if (apply_filters('woocommerce_price_trim_zeros', false) && $decimals > 0) { $price = wc_trim_zeros($price); } $formatted_price = ($negative ? '-' : '') . sprintf($price_format, get_woocommerce_currency_symbol($currency), $price); $return = $formatted_price; return apply_filters('wc_price', $return, $price, $args); }
/** * Function to include styles & script for 'Generate Coupon' page */ public function generate_coupon_styles_and_scripts() { global $pagenow, $wp_scripts; if (empty($pagenow) || $pagenow != 'admin.php') { return; } if (empty($_GET['page']) || $_GET['page'] != 'woocommerce_smart_coupon_csv_import') { return; } if (!$this->is_wc_gte_21()) { return; } $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; $jquery_version = isset($wp_scripts->registered['jquery-ui-core']->ver) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2'; $locale = localeconv(); $decimal = isset($locale['decimal_point']) ? $locale['decimal_point'] : '.'; wp_enqueue_style('woocommerce_admin_menu_styles', $this->global_wc()->plugin_url() . '/assets/css/menu.css', array(), $this->global_wc()->version); wp_enqueue_style('woocommerce_admin_styles', $this->global_wc()->plugin_url() . '/assets/css/admin.css', array(), $this->global_wc()->version); wp_enqueue_style('jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version); $woocommerce_admin_params = array('i18n_decimal_error' => sprintf(__('Please enter in decimal (%s) format without thousand separators.', 'woocommerce'), $decimal), 'i18n_mon_decimal_error' => sprintf(__('Please enter in monetary decimal (%s) format without thousand separators and currency symbols.', 'woocommerce'), wc_get_price_decimal_separator()), '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, 'mon_decimal_point' => wc_get_price_decimal_separator()); $woocommerce_admin_meta_boxes_params = array('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'), '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'), 'i18n_delete_tax' => __('Are you sure you wish to delete this tax column? This action cannot be undone.', 'woocommerce'), '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'), 'calc_totals' => __('Calculate totals based on order items, discounts, and shipping?', 'woocommerce'), 'calc_line_taxes' => __('Calculate line taxes? This will calculate taxes based on the customers country. If no billing/shipping is set it will use the store base country.', 'woocommerce'), 'copy_billing' => __('Copy billing information to shipping information? This will remove any currently entered shipping information.', 'woocommerce'), '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'), 'featured_label' => __('Featured', 'woocommerce'), 'prices_include_tax' => esc_attr(get_option('woocommerce_prices_include_tax')), 'round_at_subtotal' => esc_attr(get_option('woocommerce_tax_round_at_subtotal')), 'no_customer_selected' => __('No customer selected', 'woocommerce'), 'plugin_url' => $this->global_wc()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), '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'), 'calendar_image' => $this->global_wc()->plugin_url() . '/assets/images/calendar.png', 'post_id' => '', 'base_country' => $this->global_wc()->countries->get_base_country(), 'currency_format_num_decimals' => wc_get_price_decimals(), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'rounding_precision' => WC_ROUNDING_PRECISION, 'tax_rounding_mode' => WC_TAX_ROUNDING_MODE, 'product_types' => array_map('sanitize_title', get_terms('product_type', array('hide_empty' => false, 'fields' => 'names'))), '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'), 'i18n_permission_revoke' => __('Are you sure you want to revoke access to this download?', 'woocommerce'), 'i18n_tax_rate_already_exists' => __('You cannot add the same tax rate twice!', 'woocommerce'), 'i18n_product_type_alert' => __('Your product has variations! Before changing the product type, it is a good idea to delete the variations to avoid errors in the stock reports.', 'woocommerce')); if ($this->is_wc_gte_23()) { if (!wp_script_is('wc-admin-coupon-meta-boxes')) { wp_enqueue_script('wc-admin-coupon-meta-boxes', $this->global_wc()->plugin_url() . '/assets/js/admin/meta-boxes-coupon' . $suffix . '.js', array('woocommerce_admin', 'wc-enhanced-select', 'wc-admin-meta-boxes'), $this->global_wc()->version); wp_localize_script('wc-admin-meta-boxes', 'woocommerce_admin_meta_boxes', $woocommerce_admin_meta_boxes_params); wp_enqueue_script('woocommerce_admin', $this->global_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'), $this->global_wc()->version); wp_localize_script('woocommerce_admin', 'woocommerce_admin', $woocommerce_admin_params); } } else { if (!wp_script_is('ajax-chosen', 'registered')) { wp_register_script('chosen', $this->global_wc()->plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), $this->global_wc()->version); wp_register_script('ajax-chosen', $this->global_wc()->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery', 'woocommerce_admin', 'woocommerce_admin_meta_boxes', 'chosen'), $this->global_wc()->version); } wp_localize_script('woocommerce_admin', 'woocommerce_admin', $woocommerce_admin_params); wp_localize_script('woocommerce_admin_meta_boxes', 'woocommerce_admin_meta_boxes', $woocommerce_admin_meta_boxes_params); wp_enqueue_script('ajax-chosen'); wp_enqueue_style('woocommerce_chosen_styles', $assets_path . 'css/chosen.css'); } }
/** * add_settings. * * @version 2.5.8 * @since 2.5.2 */ function add_settings() { $settings = array(array('title' => __('Formats', 'woocommerce-jetpack'), 'type' => 'title', 'id' => 'wcj_price_formats_options'), array('title' => __('Total Number', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_total_number', 'default' => 1, 'type' => 'custom_number', 'desc' => apply_filters('booster_get_message', '', 'desc'), 'custom_attributes' => array_merge(is_array(apply_filters('booster_get_message', '', 'readonly')) ? apply_filters('booster_get_message', '', 'readonly') : array(), array('step' => '1', 'min' => '0')))); for ($i = 1; $i <= apply_filters('booster_get_option', 1, get_option('wcj_price_formats_total_number', 1)); $i++) { $currency_symbol = wcj_get_currency_symbol(get_option('wcj_price_formats_currency_' . $i, get_woocommerce_currency())); $settings = array_merge($settings, array(array('title' => __('Format', 'woocommerce-jetpack') . ' #' . $i, 'desc' => __('Currency', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_currency_' . $i, 'default' => get_woocommerce_currency(), 'type' => 'select', 'options' => wcj_get_currencies_names_and_symbols(), 'css' => 'width:300px;'), array('desc' => __('Currency Position', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_currency_position_' . $i, 'default' => get_option('woocommerce_currency_pos'), 'type' => 'select', 'options' => array('left' => __('Left', 'woocommerce') . ' (' . $currency_symbol . '99.99)', 'right' => __('Right', 'woocommerce') . ' (99.99' . $currency_symbol . ')', 'left_space' => __('Left with space', 'woocommerce') . ' (' . $currency_symbol . ' 99.99)', 'right_space' => __('Right with space', 'woocommerce') . ' (99.99 ' . $currency_symbol . ')'), 'css' => 'width:300px;'), array('desc' => __('Thousand Separator', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_thousand_separator_' . $i, 'default' => wc_get_price_thousand_separator(), 'type' => 'text', 'css' => 'width:300px;'), array('desc' => __('Decimal Separator', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_decimal_separator_' . $i, 'default' => wc_get_price_decimal_separator(), 'type' => 'text', 'css' => 'width:300px;'), array('desc' => __('Number of Decimals', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_number_of_decimals_' . $i, 'default' => wc_get_price_decimals(), 'type' => 'number', 'custom_attributes' => array('min' => 0, 'step' => 1), 'css' => 'width:300px;'), array('desc' => __('WPML Language Code', 'woocommerce-jetpack'), 'desc_tip' => __('Option to set different price formats for different WPML languages. Can be comma separated list. Leave empty to disable.', 'woocommerce-jetpack'), 'id' => 'wcj_price_formats_wpml_language_' . $i, 'default' => '', 'type' => 'text', 'css' => 'width:300px;'))); } $settings = array_merge($settings, array(array('type' => 'sectionend', 'id' => 'wcj_price_formats_options'))); return $settings; }