/**
  * Load price input script
  *
  * @return void
  */
 function nyp_scripts()
 {
     wp_enqueue_script('accounting');
     wp_enqueue_script('woocommerce-nyp');
     $params = array('currency_format_num_decimals' => esc_attr(wc_nyp_get_price_decimals()), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(wc_nyp_get_price_decimal_separator()), 'currency_format_thousand_sep' => esc_attr(wc_nyp_get_price_thousand_separator()), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), 'annual_price_factors' => WC_Name_Your_Price_Helpers::annual_price_factors(), 'minimum_error' => WC_Name_Your_Price_Helpers::error_message('minimum_js'));
     wp_localize_script('woocommerce-nyp', 'woocommerce_nyp_params', $params);
 }
 /**
  * Enqueue addon scripts
  */
 public function addon_scripts()
 {
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     wp_register_script('accounting', plugins_url(basename(dirname(dirname(__FILE__)))) . '/assets/js/accounting' . $suffix . '.js', '', '0.3.2');
     wp_enqueue_script('woocommerce-addons', plugins_url(basename(dirname(dirname(__FILE__)))) . '/assets/js/addons' . $suffix . '.js', array('jquery', 'accounting'), '1.0', true);
     $params = array('i18n_addon_total' => __('Options total:', 'woocommerce-product-addons'), 'i18n_grand_total' => __('Grand total:', 'woocommerce-product-addons'), 'i18n_remaining' => __('characters remaining', 'woocommerce-product-addons'), 'currency_format_num_decimals' => absint(get_option('woocommerce_price_num_decimals')), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(stripslashes(get_option('woocommerce_price_decimal_sep'))), 'currency_format_thousand_sep' => esc_attr(stripslashes(get_option('woocommerce_price_thousand_sep'))));
     if (!function_exists('get_woocommerce_price_format')) {
         $currency_pos = get_option('woocommerce_currency_pos');
         switch ($currency_pos) {
             case 'left':
                 $format = '%1$s%2$s';
                 break;
             case 'right':
                 $format = '%2$s%1$s';
                 break;
             case 'left_space':
                 $format = '%1$s %2$s';
                 break;
             case 'right_space':
                 $format = '%2$s %1$s';
                 break;
         }
         $params['currency_format'] = esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), $format));
     } else {
         $params['currency_format'] = esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format()));
     }
     wp_localize_script('woocommerce-addons', 'woocommerce_addons_params', $params);
 }
 /**
  * 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);
 }
 public function wc_ebs_new_price_fragment()
 {
     global $woocommerce, $post, $product;
     header('Content-Type: application/json; charset=utf-8');
     $product_id = isset($_POST['product_id']) && intval($_POST['product_id']) ? $_POST['product_id'] : '';
     $booking_session = WC()->session->get('booking');
     $new_price = $booking_session[$product_id]['new_price'];
     // New booking price
     $currency = get_woocommerce_currency_symbol();
     // Currency
     if ($booking_session[$product_id]['duration']) {
         ob_start();
         $fragments = ob_get_clean();
         $data = array('fragments' => apply_filters('wc_ebs_fragments', array('span.price' => '<span class="price">' . sprintf(get_woocommerce_price_format(), $currency, $new_price) . '</span>')));
         wp_send_json($data);
         die;
     }
 }
Esempio n. 5
0
 /**
  * Replace currency HTML entities with symbol
  *
  * @param string $amount
  * @return string
  */
 function currency_symbol($amount)
 {
     $price = sprintf(get_woocommerce_price_format(), get_woocommerce_currency_symbol(), $amount);
     return html_entity_decode($price);
 }
 /**
  * Format price to WooCommerce standards
  * 
  * @access public
  * @param float $price
  * @return string
  */
 public function format_price($price)
 {
     $num_decimals = absint(get_option('woocommerce_price_num_decimals'));
     $currency_symbol = get_woocommerce_currency_symbol();
     $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
     $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
     $price = number_format($price, $num_decimals, $decimal_sep, $thousands_sep);
     if (apply_filters('woocommerce_price_trim_zeros', false) && $num_decimals > 0) {
         $price = preg_replace('/' . preg_quote(get_option('woocommerce_price_decimal_sep'), '/') . '0++$/', '', $price);
     }
     return sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
 }
/**
 * Format the price with a currency symbol.
 *
 * @access public
 * @param float $price
 * @param array $args (default: array())
 * @return string
 */
function woocommerce_price($price, $args = array())
{
    global $woocommerce;
    extract(shortcode_atts(array('ex_tax_label' => '0'), $args));
    $return = '';
    $num_decimals = (int) get_option('woocommerce_price_num_decimals');
    $currency_pos = get_option('woocommerce_currency_pos');
    $currency_symbol = get_woocommerce_currency_symbol();
    $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
    $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
    $price = apply_filters('raw_woocommerce_price', (double) $price);
    $price = number_format($price, $num_decimals, $decimal_sep, $thousands_sep);
    if (get_option('woocommerce_price_trim_zeros') == 'yes' && $num_decimals > 0) {
        $price = woocommerce_trim_zeros($price);
    }
    $return = '<span class="amount">' . sprintf(get_woocommerce_price_format(), $currency_symbol, $price) . '</span>';
    if ($ex_tax_label && get_option('woocommerce_calc_taxes') == 'yes') {
        $return .= ' <small>' . $woocommerce->countries->ex_tax_or_vat() . '</small>';
    }
    return $return;
}
 /**
  * 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&hellip;', 'enhanced select', 'woocommerce'), 'i18n_searching' => _x('Searching&hellip;', '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&hellip;', '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&hellip;', 'woocommerce')));
     }
 }
 /**
  * Formats a raw price using WooCommerce settings.
  *
  * @param float raw_price The price to format.
  * @param string currency The currency code. If empty, currently selected
  * currency is taken.
  * @return string
  */
 public function format_price($raw_price, $currency = null)
 {
     // Prices may be left empty. In such case, there's no need to format them
     if (!is_numeric($raw_price)) {
         return $raw_price;
     }
     if (empty($currency)) {
         $currency = $this->get_selected_currency();
     }
     $price = number_format($raw_price, $this->price_decimals($currency), $this->decimal_separator(), $this->thousand_separator());
     if (get_option('woocommerce_price_trim_zeros') == 'yes' && $this->price_decimals() > 0) {
         $price = $this->trim_zeroes($price);
     }
     $currency_symbol = get_woocommerce_currency_symbol($currency);
     return '<span class="amount">' . sprintf(get_woocommerce_price_format(), $currency_symbol, $price) . '</span>';
 }
Esempio n. 10
0
 /**
  * Test wc_get_woocommerce_price_format().
  *
  * @since 2.2
  */
 public function test_get_woocommerce_price_format()
 {
     // save default
     $currency_pos = get_option('woocommerce_currency_pos');
     // default format (left)
     $this->assertEquals('%1$s%2$s', get_woocommerce_price_format());
     // right
     update_option('woocommerce_currency_pos', 'right');
     $this->assertEquals('%2$s%1$s', get_woocommerce_price_format());
     // left space
     update_option('woocommerce_currency_pos', 'left_space');
     $this->assertEquals('%1$s&nbsp;%2$s', get_woocommerce_price_format());
     // right space
     update_option('woocommerce_currency_pos', 'right_space');
     $this->assertEquals('%2$s&nbsp;%1$s', get_woocommerce_price_format());
     // restore default
     update_option('woocommerce_currency_pos', $currency_pos);
 }
 function filter_wc_price_args($args)
 {
     if (isset($args['currency'])) {
         if (isset($this->currencies[$args['currency']]['decimal_sep'])) {
             $args['decimal_separator'] = $this->currencies[$args['currency']]['decimal_sep'];
         }
         if (isset($this->currencies[$args['currency']]['thousand_sep'])) {
             $args['thousand_separator'] = $this->currencies[$args['currency']]['thousand_sep'];
         }
         if (isset($this->currencies[$args['currency']]['num_decimals'])) {
             $args['decimals'] = $this->currencies[$args['currency']]['num_decimals'];
         }
         if (isset($this->currencies[$args['currency']]['position'])) {
             $current_currency = $this->client_currency;
             $this->client_currency = $args['currency'];
             $args['price_format'] = get_woocommerce_price_format();
             $this->client_currency = $current_currency;
         }
     }
     return $args;
 }
 /**
  * Enqueue scripts
  */
 public function admin_scripts()
 {
     global $wp_query, $post;
     $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.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('woocommerce_admin_meta_boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes' . $suffix . '.js', array('jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'accounting', 'round'), WC_VERSION);
     wp_register_script('woocommerce_admin_meta_boxes_variations', WC()->plugin_url() . '/assets/js/admin/meta-boxes-variations' . $suffix . '.js', array('jquery', 'jquery-ui-sortable'), WC_VERSION);
     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);
     // Accounting
     $params = array('mon_decimal_point' => get_option('woocommerce_price_decimal_sep'));
     wp_localize_script('accounting', 'accounting_params', $params);
     // WooCommerce admin pages
     if (in_array($screen->id, wc_get_screen_ids())) {
         wp_enqueue_script('woocommerce_admin');
         wp_enqueue_script('iris');
         wp_enqueue_script('ajax-chosen');
         wp_enqueue_script('chosen');
         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'), get_option('woocommerce_price_decimal_sep')), 'decimal_point' => $decimal, 'mon_decimal_point' => get_option('woocommerce_price_decimal_sep'));
         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);
     }
     // Product/Coupon/Orders
     if (in_array($screen->id, array('shop_coupon', 'shop_order', 'product', 'edit-shop_coupon', 'edit-shop_order', 'edit-product'))) {
         wp_enqueue_script('woocommerce_admin_meta_boxes');
         wp_enqueue_script('jquery-ui-datepicker');
         wp_enqueue_media();
         wp_enqueue_script('ajax-chosen');
         wp_enqueue_script('chosen');
         wp_enqueue_script('plupload-all');
         $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'), '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' => absint(get_option('woocommerce_price_num_decimals')), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(stripslashes(get_option('woocommerce_price_decimal_sep'))), 'currency_format_thousand_sep' => esc_attr(stripslashes(get_option('woocommerce_price_thousand_sep'))), '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'));
         wp_localize_script('woocommerce_admin_meta_boxes', 'woocommerce_admin_meta_boxes', $params);
     }
     // Product specific
     if (in_array($screen->id, array('product', 'edit-product'))) {
         wp_enqueue_script('woocommerce_admin_meta_boxes_variations');
         $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_variation_nonce' => wp_create_nonce("delete-variation"), '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')));
         wp_localize_script('woocommerce_admin_meta_boxes_variations', 'woocommerce_admin_meta_boxes_variations', $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.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.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', '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);
     }
     // Chosen RTL
     if (is_rtl()) {
         wp_enqueue_script('chosen-rtl', WC()->plugin_url() . '/assets/js/chosen/chosen-rtl' . $suffix . '.js', array('jquery'), WC_VERSION, true);
     }
 }
function vtmin_format_money_element($price)
{
    //from woocommerce/woocommerce-core-function.php   function woocommerce_price
    $return = '';
    $num_decimals = (int) get_option('woocommerce_price_num_decimals');
    $currency_pos = get_option('woocommerce_currency_pos');
    $currency_symbol = get_woocommerce_currency_symbol();
    $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
    $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
    $price = apply_filters('raw_woocommerce_price', (double) $price);
    $price = number_format($price, $num_decimals, $decimal_sep, $thousands_sep);
    if (get_option('woocommerce_price_trim_zeros') == 'yes' && $num_decimals > 0) {
        $price = woocommerce_trim_zeros($price);
    }
    //$return = '<span class="amount">' . sprintf( get_woocommerce_price_format(), $currency_symbol, $price ) . '</span>';
    $current_version = WOOCOMMERCE_VERSION;
    if (version_compare(strval('2'), strval($current_version), '>') == 1) {
        //'==1' = 2nd value is lower
        $formatted = number_format($price, $num_decimals, stripslashes(get_option('woocommerce_price_decimal_sep')), stripslashes(get_option('woocommerce_price_thousand_sep')));
        $formatted = $currency_symbol . $formatted;
    } else {
        $formatted = sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
    }
    return $formatted;
}
 public static function formatted_price($price)
 {
     $num_decimals = absint(get_option('woocommerce_price_num_decimals'));
     $currency = isset($args['currency']) ? $args['currency'] : '';
     $currency_symbol = get_woocommerce_currency_symbol($currency);
     $decimal_sep = get_option('woocommerce_price_decimal_sep');
     $thousands_sep = get_option('woocommerce_price_thousand_sep');
     $price = apply_filters('raw_woocommerce_price', floatval($price));
     $price = apply_filters('formatted_woocommerce_price', number_format($price, $num_decimals, $decimal_sep, $thousands_sep), $price, $num_decimals, $decimal_sep, $thousands_sep);
     if (apply_filters('woocommerce_price_trim_zeros', true) && $num_decimals > 0) {
         $price = wc_trim_zeros($price);
     }
     $return = sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
     return $return;
 }
Esempio n. 15
0
/**
 * Products slider on single page product
 * @since  1.0.0
 */
function shop_isle_products_slider_on_single_page()
{
    global $wp_customize;
    $shop_isle_products_slider_single_hide = get_theme_mod('shop_isle_products_slider_single_hide');
    if (isset($shop_isle_products_slider_single_hide) && $shop_isle_products_slider_single_hide != 1) {
        echo '<hr class="divider-w">';
        echo '<section class="module module-small-bottom aya">';
    } elseif (isset($wp_customize)) {
        echo '<hr class="divider-w">';
        echo '<section class="module module-small-bottom shop_isle_hidden_if_not_customizer">';
    }
    if (isset($shop_isle_products_slider_single_hide) && $shop_isle_products_slider_single_hide != 1 || isset($wp_customize)) {
        echo '<div class="container">';
        $shop_isle_products_slider_title = get_theme_mod('shop_isle_products_slider_title', __('Exclusive products', 'shop-isle'));
        $shop_isle_products_slider_subtitle = get_theme_mod('shop_isle_products_slider_subtitle', __('Special category of products', 'shop-isle'));
        if (!empty($shop_isle_products_slider_title) || !empty($shop_isle_products_slider_subtitle)) {
            echo '<div class="row">';
            echo '<div class="col-sm-6 col-sm-offset-3">';
            if (!empty($shop_isle_products_slider_title)) {
                echo '<h2 class="module-title font-alt">' . $shop_isle_products_slider_title . '</h2>';
            }
            if (!empty($shop_isle_products_slider_subtitle)) {
                echo '<div class="module-subtitle font-serif">' . $shop_isle_products_slider_subtitle . '</div>';
            }
            echo '</div>';
            echo '</div><!-- .row -->';
        }
        $shop_isle_products_slider_category = get_theme_mod('shop_isle_products_slider_category');
        if (!empty($shop_isle_products_slider_category) && $shop_isle_products_slider_category != '-') {
            $shop_isle_products_slider_args = array('post_type' => 'product', 'posts_per_page' => 10, 'tax_query' => array(array('taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $shop_isle_products_slider_category)));
            $shop_isle_products_slider_loop = new WP_Query($shop_isle_products_slider_args);
            if ($shop_isle_products_slider_loop->have_posts()) {
                echo '<div class="row">';
                echo '<div class="owl-carousel text-center" data-items="5" data-pagination="false" data-navigation="false">';
                while ($shop_isle_products_slider_loop->have_posts()) {
                    $shop_isle_products_slider_loop->the_post();
                    echo '<div class="owl-item">';
                    echo '<div class="col-sm-12">';
                    echo '<div class="ex-product">';
                    echo '<a href="' . get_permalink() . '">' . woocommerce_get_product_thumbnail() . '</a>';
                    echo '<h4 class="shop-item-title font-alt"><a href="' . get_permalink() . '">' . get_the_title() . '</a></h4>';
                    $product = new WC_Product(get_the_ID());
                    $rating_html = $product->get_rating_html($product->get_average_rating());
                    if ($rating_html && get_option('woocommerce_enable_review_rating') === 'yes') {
                        echo '<div class="product-rating-home">' . $rating_html . '</div>';
                    }
                    if (!empty($product)) {
                        if (function_exists('get_woocommerce_price_format')) {
                            $format_string = get_woocommerce_price_format();
                        }
                        if (!empty($format_string)) {
                            switch ($format_string) {
                                case '%1$s%2$s':
                                    echo get_woocommerce_currency_symbol() . $product->price;
                                    break;
                                case '%2$s%1$s':
                                    echo $product->price . get_woocommerce_currency_symbol();
                                    break;
                                case '%1$s&nbsp;%2$s':
                                    echo get_woocommerce_currency_symbol() . ' ' . $product->price;
                                    break;
                                case '%2$s&nbsp;%1$s':
                                    echo $product->price . ' ' . get_woocommerce_currency_symbol();
                                    break;
                            }
                        } else {
                            echo get_woocommerce_currency_symbol() . $product->price;
                        }
                    }
                    echo '</div>';
                    echo '</div>';
                    echo '</div>';
                }
                wp_reset_postdata();
                echo '</div>';
                echo '</div>';
            }
        } else {
            $shop_isle_products_slider_args = array('post_type' => 'product', 'posts_per_page' => 10);
            $shop_isle_products_slider_loop = new WP_Query($shop_isle_products_slider_args);
            if ($shop_isle_products_slider_loop->have_posts()) {
                echo '<div class="row">';
                echo '<div class="owl-carousel text-center" data-items="5" data-pagination="false" data-navigation="false">';
                while ($shop_isle_products_slider_loop->have_posts()) {
                    $shop_isle_products_slider_loop->the_post();
                    echo '<div class="owl-item">';
                    echo '<div class="col-sm-12">';
                    echo '<div class="ex-product">';
                    echo '<a href="' . get_permalink() . '">' . woocommerce_get_product_thumbnail() . '</a>';
                    echo '<h4 class="shop-item-title font-alt"><a href="' . get_permalink() . '">' . get_the_title() . '</a></h4>';
                    $product = new WC_Product(get_the_ID());
                    $rating_html = $product->get_rating_html($product->get_average_rating());
                    if ($rating_html && get_option('woocommerce_enable_review_rating') === 'yes') {
                        echo '<div class="product-rating-home">' . $rating_html . '</div>';
                    }
                    if (!empty($product)) {
                        if (function_exists('get_woocommerce_price_format')) {
                            $format_string = get_woocommerce_price_format();
                        }
                        if (!empty($format_string)) {
                            switch ($format_string) {
                                case '%1$s%2$s':
                                    echo get_woocommerce_currency_symbol() . $product->price;
                                    break;
                                case '%2$s%1$s':
                                    echo $product->price . get_woocommerce_currency_symbol();
                                    break;
                                case '%1$s&nbsp;%2$s':
                                    echo get_woocommerce_currency_symbol() . ' ' . $product->price;
                                    break;
                                case '%2$s&nbsp;%1$s':
                                    echo $product->price . ' ' . get_woocommerce_currency_symbol();
                                    break;
                            }
                        } else {
                            echo get_woocommerce_currency_symbol() . $product->price;
                        }
                    }
                    echo '</div>';
                    echo '</div>';
                    echo '</div>';
                }
                wp_reset_postdata();
                echo '</div>';
                echo '</div>';
            }
        }
        echo '</div>';
        echo '</section>';
    }
}
Esempio n. 16
0
 function sr_admin_init()
 {
     $plugin_info = get_plugins();
     $sr_plugin_info = $plugin_info[SR_PLUGIN_FILE];
     $ext_version = '4.0.1';
     if (is_plugin_active('woocommerce/woocommerce.php') && (defined('WPSC_URL') && is_plugin_active(basename(WPSC_URL) . '/wp-shopping-cart.php')) && !defined('SR_WPSC_WOO_ACTIVATED')) {
         define('SR_WPSC_WOO_ACTIVATED', true);
     } elseif (defined('WPSC_URL') && is_plugin_active(basename(WPSC_URL) . '/wp-shopping-cart.php')) {
         define('SR_WPSC_ACTIVATED', true);
     } elseif (is_plugin_active('woocommerce/woocommerce.php')) {
         define('SR_WOO_ACTIVATED', true);
     }
     wp_register_script('sr_ext_all', plugins_url('resources/ext/ext-all.js', __FILE__), array(), $ext_version);
     if (isset($_GET['post_type']) && $_GET['post_type'] == 'wpsc-product' || isset($_GET['page']) && $_GET['page'] == 'smart-reporter-wpsc') {
         wp_register_script('sr_main', plugins_url('/sr/smart-reporter.js', __FILE__), array('sr_ext_all'), $sr_plugin_info['Version']);
         if (!defined('SR_WPSC_RUNNING')) {
             define('SR_WPSC_RUNNING', true);
         }
         if (!defined('SR_WOO_RUNNING')) {
             define('SR_WOO_RUNNING', false);
         }
         // checking the version for WPSC plugin
         if (!defined('SR_IS_WPSC37')) {
             define('SR_IS_WPSC37', version_compare(WPSC_VERSION, '3.8', '<'));
         }
         if (!defined('SR_IS_WPSC38')) {
             define('SR_IS_WPSC38', version_compare(WPSC_VERSION, '3.8', '>='));
         }
         if (SR_IS_WPSC38) {
             // WPEC 3.8.7 OR 3.8.8
             if (!defined('SR_IS_WPSC387')) {
                 define('SR_IS_WPSC387', version_compare(WPSC_VERSION, '3.8.8', '<'));
             }
             if (!defined('SR_IS_WPSC388')) {
                 define('SR_IS_WPSC388', version_compare(WPSC_VERSION, '3.8.8', '>='));
             }
         }
     } else {
         if (isset($_GET['post_type']) && $_GET['post_type'] == 'product' || isset($_GET['page']) && $_GET['page'] == 'smart-reporter-woo') {
             if (isset($_GET['tab']) && $_GET['tab'] == "smart_reporter_old") {
                 wp_register_script('sr_main', plugins_url('/sr/smart-reporter-woo.js', __FILE__), array('sr_ext_all'), $sr_plugin_info['Version']);
             }
             if (!defined('SR_WPSC_RUNNING')) {
                 define('SR_WPSC_RUNNING', false);
             }
             if (!defined('SR_WOO_RUNNING')) {
                 define('SR_WOO_RUNNING', true);
             }
             //WooCommerce Currency Constants
             define('SR_CURRENCY_SYMBOL', get_woocommerce_currency_symbol());
             define('SR_CURRENCY_POS', get_woocommerce_price_format());
             define('SR_DECIMAL_PLACES', get_option('woocommerce_price_num_decimals'));
         }
     }
     if (file_exists(dirname(__FILE__) . '/pro/sr.js')) {
         wp_register_script('sr_functions', plugins_url('/pro/sr.js', __FILE__), array('sr_main'), $sr_plugin_info['Version']);
         define('SRPRO', true);
     } else {
         define('SRPRO', false);
     }
     if (SRPRO === true) {
         include 'pro/upgrade.php';
         //wp-ajax action
         if (is_admin()) {
             add_action('wp_ajax_top_ababdoned_products_export', 'sr_top_ababdoned_products_export');
             add_action('wp_ajax_sr_save_settings', 'sr_save_settings');
         }
     }
     if (is_plugin_active('woocommerce/woocommerce.php')) {
         add_action('wp_dashboard_setup', 'sr_wp_dashboard_widget');
     }
     // ================================================================================================
     //Registering scripts and stylesheets for SR Beta Version
     // ================================================================================================
     if (!wp_script_is('jquery')) {
         wp_enqueue_script('jquery');
     }
     wp_enqueue_script('sr_jqplot_js', plugins_url('resources/jqplot/jquery.jqplot.min.js', __FILE__), array('jquery'));
     wp_register_script('sr_jqplot_high', plugins_url('resources/jqplot/jqplot.highlighter.min.js', __FILE__), array('sr_jqplot_js'));
     wp_register_script('sr_jqplot_cur', plugins_url('resources/jqplot/jqplot.cursor.min.js', __FILE__), array('sr_jqplot_high'));
     wp_register_script('sr_jqplot_render', plugins_url('resources/jqplot/jqplot.categoryAxisRenderer.min.js', __FILE__), array('sr_jqplot_cur'));
     wp_register_script('sr_jqplot_date_render', plugins_url('resources/jqplot/jqplot.dateAxisRenderer.min.js', __FILE__), array('sr_jqplot_render'));
     wp_register_script('sr_jqplot_pie_render', plugins_url('resources/jqplot/jqplot.pieRenderer.min.js', __FILE__), array('sr_jqplot_date_render'));
     wp_register_script('sr_jqplot_donout_render', plugins_url('resources/jqplot/jqplot.donutRenderer.min.js', __FILE__), array('sr_jqplot_pie_render'));
     wp_register_script('sr_jqplot_funnel_render', plugins_url('resources/jqplot/jqplot.funnelRenderer.min.js', __FILE__), array('sr_jqplot_donout_render'));
     wp_enqueue_script('sr_datepicker', plugins_url('resources/jquery.datepick.package/jquery.datepick.js', __FILE__), array('sr_jqplot_funnel_render'));
     wp_enqueue_script('sr_jvectormap', plugins_url('resources/jvectormap/jquery-jvectormap-1.2.2.min.js', __FILE__), array('sr_datepicker'));
     wp_enqueue_script('sr_jvectormap_world_map', plugins_url('resources/jvectormap/jquery-jvectormap-world-mill-en.js', __FILE__), array('sr_jvectormap'));
     // wp_enqueue_script ( 'sr_jvectormap_world_map', plugins_url ( 'resources/jvectormap/world-map.js', __FILE__ ), array ('sr_jvectormap' ));
     // wp_enqueue_script ( 'sr_jvectormap', plugins_url ( 'resources/jqvmap/jquery.vmap.min.js', __FILE__ ), array ('sr_datepicker' ));
     // wp_enqueue_script ( 'sr_jvectormap_world_map', plugins_url ( 'resources/jqvmap/jquery.vmap.world.js', __FILE__ ), array ('sr_jvectormap' ));
     wp_enqueue_script('sr_magnific_popup', plugins_url('resources/magnific-popup/jquery.magnific-popup.js', __FILE__), array('sr_jvectormap_world_map'));
     wp_register_script('sr_jqplot_all_scripts', plugins_url('resources/jqplot/jqplot.BezierCurveRenderer.min.js', __FILE__), array('sr_magnific_popup'), $sr_plugin_info['Version']);
     wp_register_style('font_awesome', plugins_url("resources/font-awesome/css/font-awesome.min.css", __FILE__), array());
     // wp_register_style ( 'font_awesome', '//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css', array ());
     // wp_register_style ( 'sr_datepicker_css', plugins_url ( 'resources/jquery.datepick.package/redmond.datepick.css', __FILE__ ), array ('font_awesome'));
     wp_register_style('sr_datepicker_css', plugins_url('resources/jquery.datepick.package/smoothness.datepick.css', __FILE__), array('font_awesome'));
     wp_register_style('sr_jqplot_all', plugins_url('resources/jqplot/jquery.jqplot.min.css', __FILE__), array('sr_datepicker_css'));
     wp_register_style('sr_jvectormap', plugins_url('resources/jvectormap/jquery-jvectormap-1.2.2.css', __FILE__), array('sr_jqplot_all'));
     wp_register_style('sr_magnific_popup', plugins_url('resources/magnific-popup/magnific-popup.css', __FILE__), array('sr_jvectormap'));
     // wp_register_style ( 'sr_jvectormap', plugins_url ( 'resources/jqvmap/jqvmap.css', __FILE__ ), array ('sr_jqplot_all'));
     wp_register_style('sr_main_beta', plugins_url('/sr/smart-reporter.css', __FILE__), array('sr_magnific_popup'), $sr_plugin_info['Version']);
     // ================================================================================================
 }
/**
 * Include admin scripts and styles.
 *
 * @access public
 * @return void
 */
function woocommerce_admin_scripts()
{
    global $woocommerce, $pagenow, $post, $wp_query;
    $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
    // Register scripts
    wp_register_script('woocommerce_admin', $woocommerce->plugin_url() . '/assets/js/admin/woocommerce_admin' . $suffix . '.js', array('jquery', 'jquery-blockui', 'jquery-placeholder', 'jquery-ui-widget', 'jquery-ui-core', 'jquery-tiptip'), $woocommerce->version);
    wp_register_script('jquery-blockui', $woocommerce->plugin_url() . '/assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js', array('jquery'), '2.60', true);
    wp_register_script('jquery-placeholder', $woocommerce->plugin_url() . '/assets/js/jquery-placeholder/jquery.placeholder' . $suffix . '.js', array('jquery'), $woocommerce->version, true);
    wp_register_script('jquery-tiptip', $woocommerce->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js', array('jquery'), $woocommerce->version, true);
    wp_register_script('woocommerce_writepanel', $woocommerce->plugin_url() . '/assets/js/admin/write-panels' . $suffix . '.js', array('jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable'), $woocommerce->version);
    wp_register_script('ajax-chosen', $woocommerce->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery', 'chosen'), $woocommerce->version);
    wp_register_script('chosen', $woocommerce->plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), $woocommerce->version);
    // Get admin screen id
    $screen = get_current_screen();
    $wc_screen_id = strtolower(__('WooCommerce', 'woocommerce'));
    // WooCommerce admin pages
    if (in_array($screen->id, apply_filters('woocommerce_screen_ids', array('toplevel_page_' . $wc_screen_id, $wc_screen_id . '_page_woocommerce_settings', $wc_screen_id . '_page_woocommerce_reports', 'toplevel_page_woocommerce', 'woocommerce_page_woocommerce_settings', 'woocommerce_page_woocommerce_reports', 'edit-shop_order', 'edit-shop_coupon', 'shop_coupon', 'shop_order', 'edit-product', 'product')))) {
        wp_enqueue_script('woocommerce_admin');
        wp_enqueue_script('farbtastic');
        wp_enqueue_script('ajax-chosen');
        wp_enqueue_script('chosen');
        wp_enqueue_script('jquery-ui-sortable');
        wp_enqueue_script('jquery-ui-autocomplete');
    }
    // Edit product category pages
    if (in_array($screen->id, array('edit-product_cat'))) {
        wp_enqueue_media();
    }
    // Product/Coupon/Orders
    if (in_array($screen->id, array('shop_coupon', 'shop_order', 'product'))) {
        wp_enqueue_script('woocommerce_writepanel');
        wp_enqueue_script('jquery-ui-datepicker');
        wp_enqueue_media();
        wp_enqueue_script('ajax-chosen');
        wp_enqueue_script('chosen');
        wp_enqueue_script('plupload-all');
        $woocommerce_witepanel_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'), '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' => $woocommerce->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"), 'calendar_image' => $woocommerce->plugin_url() . '/assets/images/calendar.png', 'post_id' => $post->ID, 'base_country' => $woocommerce->countries->get_base_country(), 'currency_format_num_decimals' => absint(get_option('woocommerce_price_num_decimals')), 'currency_format_symbol' => get_woocommerce_currency_symbol(), 'currency_format_decimal_sep' => esc_attr(stripslashes(get_option('woocommerce_price_decimal_sep'))), 'currency_format_thousand_sep' => esc_attr(stripslashes(get_option('woocommerce_price_thousand_sep'))), 'currency_format' => esc_attr(str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format())), '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));
        wp_localize_script('woocommerce_writepanel', 'woocommerce_writepanel_params', $woocommerce_witepanel_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', $woocommerce->plugin_url() . '/assets/js/admin/term-ordering.js', array('jquery-ui-sortable'), $woocommerce->version);
        wp_enqueue_script('woocommerce_term_ordering');
        $taxonomy = isset($_GET['taxonomy']) ? woocommerce_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', $woocommerce->plugin_url() . '/assets/js/admin/product-ordering.js', array('jquery-ui-sortable'), '1.0', true);
    }
    // Reports pages
    if (in_array($screen->id, apply_filters('woocommerce_reports_screen_ids', array($wc_screen_id . '_page_woocommerce_reports', apply_filters('woocommerce_reports_screen_id', 'woocommerce_page_woocommerce_reports'))))) {
        wp_enqueue_script('jquery-ui-datepicker');
        wp_enqueue_script('flot', $woocommerce->plugin_url() . '/assets/js/admin/jquery.flot' . $suffix . '.js', 'jquery', '1.0');
        wp_enqueue_script('flot-resize', $woocommerce->plugin_url() . '/assets/js/admin/jquery.flot.resize' . $suffix . '.js', array('jquery', 'flot'), '1.0');
    }
    // Chosen RTL
    if (is_rtl()) {
        wp_enqueue_script('chosen-rtl', $woocommerce->plugin_url() . '/assets/js/chosen/chosen-rtl' . $suffix . '.js', array('jquery'), $woocommerce->version, true);
    }
}
 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);
             }
         }
     }
 }
Esempio n. 19
0
<?php

add_filter('woocommerce_get_price_html', function ($price, $product) {
    global $woocommerce_loop;
    // check if we are in single product page, in main section, and if product has price and is on sale
    if (is_product() && !isset($woocommerce_loop) && $product->get_price() && $product->is_on_sale()) {
        // collect prices from $price html string
        $prices = array_map(function ($item) {
            return array($item, (double) preg_replace("/[^0-9.]/", "", html_entity_decode($item, ENT_QUOTES, 'UTF-8')));
        }, explode(' ', strip_tags($price)));
        $price = isset($prices[0][0]) ? '<span class="orig-price">Original Price: ' . $prices[0][0] . '</span>' : '';
        $price .= isset($prices[1][0]) ? '<span class="sale-price">Sale Price: ' . $prices[1][0] . '</span>' : '';
        if ($product->get_regular_price()) {
            // set saved amount with currency symbol placed as defined in options
            $price .= '<span class="saved">You saved: ' . sprintf(get_woocommerce_price_format(), get_woocommerce_currency_symbol(), $prices[0][1] - $prices[1][1]) . '</span>';
        }
    }
    return $price;
}, 10, 2);
add_action('check_woocommerce', 'alfw_woocommerce_not_install_notice');
/**
 * @param $atts
 */
function alfw_slider_render_func($atts)
{
    global $wpdb, $lookbook_slider_effects;
    if (!in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
        do_action('check_woocommerce');
        return;
    }
    $upload_dir_info = wp_upload_dir();
Esempio n. 20
0
 function sr_admin_init()
 {
     global $wpdb;
     $plugin_info = get_plugins();
     $sr_plugin_info = $plugin_info[SR_PLUGIN_FILE];
     $ext_version = '4.0.1';
     if (is_plugin_active('woocommerce/woocommerce.php') && (defined('WPSC_URL') && is_plugin_active(basename(WPSC_URL) . '/wp-shopping-cart.php')) || is_plugin_active('woocommerce/woocommerce.php')) {
         define('SR_WOO_ACTIVATED', true);
     } elseif (defined('WPSC_URL') && is_plugin_active(basename(WPSC_URL) . '/wp-shopping-cart.php')) {
         define('SR_WPSC_ACTIVATED', true);
     }
     if (isset($_GET['post_type']) && $_GET['post_type'] == 'wpsc-product' || isset($_GET['page']) && $_GET['page'] == 'smart-reporter-wpsc') {
         if (!defined('SR_WPSC_RUNNING')) {
             define('SR_WPSC_RUNNING', true);
         }
         if (!defined('SR_WOO_RUNNING')) {
             define('SR_WOO_RUNNING', false);
         }
         // checking the version for WPSC plugin
         if (!defined('SR_IS_WPSC37')) {
             define('SR_IS_WPSC37', version_compare(WPSC_VERSION, '3.8', '<'));
         }
         if (!defined('SR_IS_WPSC38')) {
             define('SR_IS_WPSC38', version_compare(WPSC_VERSION, '3.8', '>='));
         }
         if (SR_IS_WPSC38) {
             // WPEC 3.8.7 OR 3.8.8
             if (!defined('SR_IS_WPSC387')) {
                 define('SR_IS_WPSC387', version_compare(WPSC_VERSION, '3.8.8', '<'));
             }
             if (!defined('SR_IS_WPSC388')) {
                 define('SR_IS_WPSC388', version_compare(WPSC_VERSION, '3.8.8', '>='));
             }
         }
     } else {
         if (isset($_GET['page']) && $_GET['page'] == 'wc-reports') {
             if (!defined('SR_WPSC_RUNNING')) {
                 define('SR_WPSC_RUNNING', false);
             }
             if (!defined('SR_WOO_RUNNING')) {
                 define('SR_WOO_RUNNING', true);
             }
         }
     }
     if (file_exists(dirname(__FILE__) . '/pro/sr.js')) {
         define('SRPRO', true);
     } else {
         define('SRPRO', false);
     }
     if (defined('SR_WPSC_ACTIVATED') && SR_WPSC_ACTIVATED === true) {
         $json_filename = 'json';
     } else {
         if (defined('SR_WOO_ACTIVATED') && SR_WOO_ACTIVATED === true) {
             if (isset($_GET['view']) && $_GET['view'] == "smart_reporter_old") {
                 $json_filename = 'json-woo';
             } else {
                 $json_filename = 'json-woo-beta';
             }
             //WooCommerce Currency Constants
             define('SR_CURRENCY_SYMBOL', get_woocommerce_currency_symbol());
             define('SR_CURRENCY_POS', get_woocommerce_price_format());
             define('SR_DECIMAL_PLACES', get_option('woocommerce_price_num_decimals'));
         }
     }
     define('SR_JSON_FILE_NM', $json_filename);
     if (defined('SRPRO') && SRPRO === true) {
         include 'pro/upgrade.php';
         //wp-ajax action
         if (is_admin()) {
             add_action('wp_ajax_top_ababdoned_products_export', 'sr_top_ababdoned_products_export');
             add_action('wp_ajax_sr_save_settings', 'sr_save_settings');
         }
     } else {
         if (is_admin()) {
             if (isset($_GET['sr_dismiss_admin_notice']) && $_GET['sr_dismiss_admin_notice'] == '1') {
                 update_option('sr_dismiss_admin_notice', true);
                 wp_redirect($_SERVER['HTTP_REFERER']);
             }
         }
     }
     //adding the SR dashboard widget
     $table_name = "{$wpdb->prefix}woo_sr_orders";
     if (defined('SR_WOO_ACTIVATED') && SR_WOO_ACTIVATED === true && $wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") == $table_name) {
         add_action('wp_dashboard_setup', 'sr_wp_dashboard_widget');
     }
     if (false !== get_option('_sr_activation_redirect')) {
         // Delete the redirect transient
         delete_option('_sr_activation_redirect');
         if (defined('SR_WPSC_WOO_ACTIVATED') && SR_WPSC_WOO_ACTIVATED === true || defined('SR_WOO_ACTIVATED') && SR_WOO_ACTIVATED === true) {
             if (defined('SR_IS_WOO22') && SR_IS_WOO22 == "true") {
                 wp_redirect(admin_url('admin.php?page=wc-reports&tab=smart_reporter'));
             } else {
                 if (defined('SR_IS_WOO22') && SR_IS_WOO22 == "false") {
                     wp_redirect(admin_url('admin.php?page=wc-reports&tab=smart_reporter_old'));
                 }
             }
         } else {
             if (defined('SR_WPSC_ACTIVATED') && SR_WPSC_ACTIVATED === true) {
                 wp_redirect(admin_url('edit.php?post_type=wpsc-product&page=smart-reporter-wpsc'));
             }
         }
     }
 }
/**
 * Gte woocommerce data for order
 *
 * @param $value
 * @param $data
 *
 * @return string
 */
function vc_gitem_template_attribute_woocommerce_order($value, $data)
{
    $label = '';
    /**
     * @var null|Wp_Post $post ;
     * @var string $data ;
     */
    extract(array_merge(array('post' => null, 'data' => ''), $data));
    require_once WC()->plugin_path() . '/includes/class-wc-order.php';
    $order = new WC_Order($post->ID);
    if (preg_match('/_labeled$/', $data)) {
        $data = preg_replace('/_labeled$/', '', $data);
        $label = apply_filters('vc_gitem_template_attribute_woocommerce_order_' . $data . '_label', Vc_Vendor_Woocommerce::getOrderFieldLabel($data) . ': ');
    }
    switch ($data) {
        case 'id':
            $value = $order->id;
            break;
        case 'order_number':
            $value = $order->get_order_number();
            break;
        case 'total':
            $value = sprintf(get_woocommerce_price_format(), wc_format_decimal($order->get_total(), 2), $order->order_currency);
            break;
        case 'payment_method':
            $value = $order->payment_method_title;
            break;
        case 'billing_address_city':
            $value = $order->billing_city;
            break;
        case 'billing_address_country':
            $value = $order->billing_country;
            break;
        case 'shipping_address_city':
            $value = $order->shipping_city;
            break;
        case 'shipping_address_country':
            $value = $order->shipping_country;
            break;
        default:
            $value = $order->{$data};
    }
    return strlen($value) > 0 ? $label . apply_filters('vc_gitem_template_attribute_woocommerce_order_' . $data . '_value', $value) : '';
}
Esempio n. 22
0
 /**
  * Used throughout the extension instead of 'wc_price'.
  *
  * @param  double $price
  * @return string
  */
 public function get_composited_item_price_string_price($price, $args = array())
 {
     $return = '';
     $num_decimals = $this->wc_option_price_num_decimals;
     $currency = isset($args['currency']) ? $args['currency'] : '';
     $currency_symbol = get_woocommerce_currency_symbol($currency);
     $decimal_sep = $this->wc_option_price_decimal_sep;
     $thousands_sep = $this->wc_option_price_thousand_sep;
     $price = apply_filters('raw_woocommerce_price', floatval($price));
     $price = apply_filters('formatted_woocommerce_price', number_format($price, $num_decimals, $decimal_sep, $thousands_sep), $price, $num_decimals, $decimal_sep, $thousands_sep);
     if (apply_filters('woocommerce_price_trim_zeros', false) && $num_decimals > 0) {
         $price = wc_trim_zeros($price);
     }
     $return = sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
     return $return;
 }
Esempio n. 23
0
 /**
  * Handler for the site fees column
  *
  * @param $item
  *
  * @return string
  */
 public function column_site_fee($item)
 {
     $total = 0;
     $price_format = get_woocommerce_price_format();
     foreach ($this->valid_order_items[$item['id']] as $line_item) {
         $total += $line_item['subtotal'];
     }
     return sprintf($price_format, get_woocommerce_currency_symbol(), number_format($this->calc_site_fee($total), 2));
 }
function uni_cpo_get_formatted_price($sPrice)
{
    $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 = $sPrice < 0;
    $sPrice = apply_filters('raw_woocommerce_price', floatval($negative ? $sPrice * -1 : $sPrice));
    $sPrice = apply_filters('formatted_woocommerce_price', number_format($sPrice, $decimals, $decimal_separator, $thousand_separator), $sPrice, $decimals, $decimal_separator, $thousand_separator);
    if (apply_filters('woocommerce_price_trim_zeros', false) && $decimals > 0) {
        $sPrice = wc_trim_zeros($sPrice);
    }
    $formatted_price = ($negative ? '-' : '') . sprintf($price_format, get_woocommerce_currency_symbol(''), $sPrice);
    return $formatted_price;
}
/**
 * Format the price with a currency symbol.
 *
 * @param float $price
 * @param array $args (default: array())
 * @return string
 */
function wc_price($price, $args = array())
{
    extract(shortcode_atts(array('ex_tax_label' => '0'), $args));
    $return = '';
    $num_decimals = absint(get_option('woocommerce_price_num_decimals'));
    $currency = isset($args['currency']) ? $args['currency'] : '';
    $currency_symbol = get_woocommerce_currency_symbol($currency);
    $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
    $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
    if ($price < 0) {
        $price = $price * -1;
        $negative = true;
    } else {
        $negative = false;
    }
    $price = apply_filters('raw_woocommerce_price', floatval($price));
    $price = apply_filters('formatted_woocommerce_price', number_format($price, $num_decimals, $decimal_sep, $thousands_sep), $price, $num_decimals, $decimal_sep, $thousands_sep);
    if (apply_filters('woocommerce_price_trim_zeros', false) && $num_decimals > 0) {
        $price = wc_trim_zeros($price);
    }
    $formatted_price = ($negative ? '-' : '') . sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
    $return = '<span class="amount">' . $formatted_price . '</span>';
    if ($ex_tax_label && get_option('woocommerce_calc_taxes') == 'yes') {
        $return .= ' <small>' . WC()->countries->ex_tax_or_vat() . '</small>';
    }
    return apply_filters('wc_price', $return, $price, $args);
}
 /**
  * Returns $price formatted with currency symbol and decimals, as
  * configured within WooCommerce settings
  *
  * Annoyingly, WC doesn't seem to offer a function to format a price string
  * without HTML tags, so this method is adapted from the core wc_price()
  * function.
  *
  * @since 2.0
  * @see wc_price()
  * @param string $price the price
  * @return string price formatted
  */
 private function wc_price($price)
 {
     if (0 == $price) {
         return __('Free!', WC_PDF_Product_Vouchers::TEXT_DOMAIN);
     }
     $return = '';
     $num_decimals = absint(get_option('woocommerce_price_num_decimals'));
     $currency_pos = get_option('woocommerce_currency_pos');
     // Don't ask me how, but somehow this works for stuff like '&euro;' when nothing else would
     $currency_symbol = utf8_encode(iconv('UTF-8', 'windows-1252', html_entity_decode(get_woocommerce_currency_symbol(), ENT_QUOTES, "UTF-8")));
     $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
     $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
     $price = apply_filters('raw_woocommerce_price', floatval($price));
     $price = apply_filters('formatted_woocommerce_price', number_format($price, $num_decimals, $decimal_sep, $thousands_sep), $price, $num_decimals, $decimal_sep, $thousands_sep);
     if (apply_filters('woocommerce_price_trim_zeros', true) && $num_decimals > 0) {
         $price = wc_trim_zeros($price);
     }
     $return = sprintf(str_replace('&nbsp;', ' ', get_woocommerce_price_format()), $currency_symbol, $price);
     return $return;
 }
/**
 * 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);
}
 public function wc_ebs_add_price_html($content)
 {
     global $woocommerce, $post, $product;
     $output = isset($_POST['days']) ? $_POST['days'] : 1;
     $product_id = isset($_POST['product_id']) ? $_POST['product_id'] : $product->id;
     $price = get_post_meta($product_id, '_price', true);
     $currency = get_woocommerce_currency_symbol();
     $new_price = $price * $output;
     $wc_ebs_options = get_post_meta($post->ID, '_booking_option', true);
     // Return either the new price or a price / day or normal price
     if (isset($_POST['days']) && $_POST['days'] > 0) {
         return sprintf(get_woocommerce_price_format(), $currency, $new_price);
     } else {
         if (isset($wc_ebs_options) && $wc_ebs_options) {
             return $content . __(' / day', 'wc_ebs');
         } else {
             return $content;
         }
     }
 }
 /**
  * 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');
     }
 }
Esempio n. 30
0
function vtprd_format_money_element($price)
{
    //from woocommerce/woocommerce-core-function.php   function woocommerce_price
    $return = '';
    $num_decimals = (int) get_option('woocommerce_price_num_decimals');
    $currency_pos = get_option('woocommerce_currency_pos');
    $currency_symbol = get_woocommerce_currency_symbol();
    $decimal_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_decimal_sep')), ENT_QUOTES);
    $thousands_sep = wp_specialchars_decode(stripslashes(get_option('woocommerce_price_thousand_sep')), ENT_QUOTES);
    $price = apply_filters('raw_woocommerce_price', (double) $price);
    $price = number_format($price, $num_decimals, $decimal_sep, $thousands_sep);
    if (get_option('woocommerce_price_trim_zeros') == 'yes' && $num_decimals > 0) {
        $price = woocommerce_trim_zeros($price);
    }
    //$return = '<span class="amount">' . sprintf( get_woocommerce_price_format(), $currency_symbol, $price ) . '</span>';
    $formatted = sprintf(get_woocommerce_price_format(), $currency_symbol, $price);
    return $formatted;
}