templates/content-product.php000066600000003605152133032020012402 0ustar00is_visible() ) { return; } ?>
  • >
  • templates/content-widget-product.php000066600000002230152133032020013654 0ustar00
  • get_image(); ?> get_title(); ?> get_rating_html(); ?> get_price_html(); ?>
  • templates/loop/sale-flash.php000066600000001676152133032020012250 0ustar00 is_on_sale() ) : ?> ' . __( 'Sale!', 'woocommerce' ) . '', $post, $product ); ?> templates/loop/orderby.php000066600000002750152133032020011671 0ustar00
    $val ) { if ( 'orderby' === $key || 'submit' === $key ) { continue; } if ( is_array( $val ) ) { foreach( $val as $innerVal ) { echo ''; } } else { echo ''; } } ?>
    templates/loop/add-to-cart.php000066600000002202152133032020012312 0ustar00%s', esc_url( $product->add_to_cart_url() ), esc_attr( isset( $quantity ) ? $quantity : 1 ), esc_attr( $product->id ), esc_attr( $product->get_sku() ), esc_attr( isset( $class ) ? $class : 'button' ), esc_html( $product->add_to_cart_text() ) ), $product ); templates/loop/no-products-found.php000066600000001573152133032020013613 0ustar00

    templates/loop/loop-end.php000066600000001220152133032020011727 0ustar00 templates/loop/price.php000066600000001535152133032020011325 0ustar00 get_price_html() ) : ?> templates/loop/rating.php000066600000001622152133032020011504 0ustar00 get_rating_html() ) : ?> templates/loop/result-count.php000066600000002740152133032020012666 0ustar00

    get( 'paged' ) ); $per_page = $wp_query->get( 'posts_per_page' ); $total = $wp_query->found_posts; $first = ( $per_page * $paged ) - $per_page + 1; $last = min( $total, $wp_query->get( 'posts_per_page' ) * $paged ); if ( $total <= $per_page || -1 === $per_page ) { printf( _n( 'Showing the single result', 'Showing all %d results', $total, 'woocommerce' ), $total ); } else { printf( _nx( 'Showing the single result', 'Showing %1$d–%2$d of %3$d results', $total, '%1$d = first, %2$d = last, %3$d = total', 'woocommerce' ), $first, $last, $total ); } ?>

    templates/loop/pagination.php000066600000002601152133032020012347 0ustar00max_num_pages <= 1 ) { return; } ?> templates/loop/loop-start.php000066600000001244152133032020012324 0ustar00 ", "
    ", "
      ", "
    ", "
    "].join("")); return container; }, // multi prepareOpts: function () { var opts = this.parent.prepareOpts.apply(this, arguments), self=this; // TODO validate placeholder is a string if specified if (opts.element.get(0).tagName.toLowerCase() === "select") { // install the selection initializer opts.initSelection = function (element, callback) { var data = []; element.find("option").filter(function() { return this.selected && !this.disabled }).each2(function (i, elm) { data.push(self.optionToData(elm)); }); callback(data); }; } else if ("data" in opts) { // install default initSelection when applied to hidden input and data is local opts.initSelection = opts.initSelection || function (element, callback) { var ids = splitVal(element.val(), opts.separator, opts.transformVal); //search in data by array of ids, storing matching items in a list var matches = []; opts.query({ matcher: function(term, text, el){ var is_match = $.grep(ids, function(id) { return equal(id, opts.id(el)); }).length; if (is_match) { matches.push(el); } return is_match; }, callback: !$.isFunction(callback) ? $.noop : function() { // reorder matches based on the order they appear in the ids array because right now // they are in the order in which they appear in data array var ordered = []; for (var i = 0; i < ids.length; i++) { var id = ids[i]; for (var j = 0; j < matches.length; j++) { var match = matches[j]; if (equal(id, opts.id(match))) { ordered.push(match); matches.splice(j, 1); break; } } } callback(ordered); } }); }; } return opts; }, // multi selectChoice: function (choice) { var selected = this.container.find(".select2-search-choice-focus"); if (selected.length && choice && choice[0] == selected[0]) { } else { if (selected.length) { this.opts.element.trigger("choice-deselected", selected); } selected.removeClass("select2-search-choice-focus"); if (choice && choice.length) { this.close(); choice.addClass("select2-search-choice-focus"); this.opts.element.trigger("choice-selected", choice); } } }, // multi destroy: function() { $("label[for='" + this.search.attr('id') + "']") .attr('for', this.opts.element.attr("id")); this.parent.destroy.apply(this, arguments); cleanupJQueryElements.call(this, "searchContainer", "selection" ); }, // multi initContainer: function () { var selector = ".select2-choices", selection; this.searchContainer = this.container.find(".select2-search-field"); this.selection = selection = this.container.find(selector); var _this = this; this.selection.on("click", ".select2-container:not(.select2-container-disabled) .select2-search-choice:not(.select2-locked)", function (e) { _this.search[0].focus(); _this.selectChoice($(this)); }); // rewrite labels from original element to focusser this.search.attr("id", "s2id_autogen"+nextUid()); this.search.prev() .text($("label[for='" + this.opts.element.attr("id") + "']").text()) .attr('for', this.search.attr('id')); this.opts.element.on('focus.select2', this.bind(function () { this.focus(); })); this.search.on("input paste", this.bind(function() { if (this.search.attr('placeholder') && this.search.val().length == 0) return; if (!this.isInterfaceEnabled()) return; if (!this.opened()) { this.open(); } })); this.search.attr("tabindex", this.elementTabIndex); this.keydowns = 0; this.search.on("keydown", this.bind(function (e) { if (!this.isInterfaceEnabled()) return; ++this.keydowns; var selected = selection.find(".select2-search-choice-focus"); var prev = selected.prev(".select2-search-choice:not(.select2-locked)"); var next = selected.next(".select2-search-choice:not(.select2-locked)"); var pos = getCursorInfo(this.search); if (selected.length && (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) { var selectedChoice = selected; if (e.which == KEY.LEFT && prev.length) { selectedChoice = prev; } else if (e.which == KEY.RIGHT) { selectedChoice = next.length ? next : null; } else if (e.which === KEY.BACKSPACE) { if (this.unselect(selected.first())) { this.search.width(10); selectedChoice = prev.length ? prev : next; } } else if (e.which == KEY.DELETE) { if (this.unselect(selected.first())) { this.search.width(10); selectedChoice = next.length ? next : null; } } else if (e.which == KEY.ENTER) { selectedChoice = null; } this.selectChoice(selectedChoice); killEvent(e); if (!selectedChoice || !selectedChoice.length) { this.open(); } return; } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1) || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) { this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last()); killEvent(e); return; } else { this.selectChoice(null); } if (this.opened()) { switch (e.which) { case KEY.UP: case KEY.DOWN: this.moveHighlight((e.which === KEY.UP) ? -1 : 1); killEvent(e); return; case KEY.ENTER: this.selectHighlighted(); killEvent(e); return; case KEY.TAB: this.selectHighlighted({noFocus:true}); this.close(); return; case KEY.ESC: this.cancel(e); killEvent(e); return; } } if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.BACKSPACE || e.which === KEY.ESC) { return; } if (e.which === KEY.ENTER) { if (this.opts.openOnEnter === false) { return; } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) { return; } } this.open(); if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { // prevent the page from scrolling killEvent(e); } if (e.which === KEY.ENTER) { // prevent form from being submitted killEvent(e); } })); this.search.on("keyup", this.bind(function (e) { this.keydowns = 0; this.resizeSearch(); }) ); this.search.on("blur", this.bind(function(e) { this.container.removeClass("select2-container-active"); this.search.removeClass("select2-focused"); this.selectChoice(null); if (!this.opened()) this.clearSearch(); e.stopImmediatePropagation(); this.opts.element.trigger($.Event("select2-blur")); })); this.container.on("click", selector, this.bind(function (e) { if (!this.isInterfaceEnabled()) return; if ($(e.target).closest(".select2-search-choice").length > 0) { // clicked inside a select2 search choice, do not open return; } this.selectChoice(null); this.clearPlaceholder(); if (!this.container.hasClass("select2-container-active")) { this.opts.element.trigger($.Event("select2-focus")); } this.open(); this.focusSearch(); e.preventDefault(); })); this.container.on("focus", selector, this.bind(function () { if (!this.isInterfaceEnabled()) return; if (!this.container.hasClass("select2-container-active")) { this.opts.element.trigger($.Event("select2-focus")); } this.container.addClass("select2-container-active"); this.dropdown.addClass("select2-drop-active"); this.clearPlaceholder(); })); this.initContainerWidth(); this.opts.element.hide(); // set the placeholder if necessary this.clearSearch(); }, // multi enableInterface: function() { if (this.parent.enableInterface.apply(this, arguments)) { this.search.prop("disabled", !this.isInterfaceEnabled()); } }, // multi initSelection: function () { var data; if (this.opts.element.val() === "" && this.opts.element.text() === "") { this.updateSelection([]); this.close(); // set the placeholder if necessary this.clearSearch(); } if (this.select || this.opts.element.val() !== "") { var self = this; this.opts.initSelection.call(null, this.opts.element, function(data){ if (data !== undefined && data !== null) { self.updateSelection(data); self.close(); // set the placeholder if necessary self.clearSearch(); } }); } }, // multi clearSearch: function () { var placeholder = this.getPlaceholder(), maxWidth = this.getMaxSearchWidth(); if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) { this.search.val(placeholder).addClass("select2-default"); // stretch the search box to full width of the container so as much of the placeholder is visible as possible // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944 this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width")); } else { this.search.val("").width(10); } }, // multi clearPlaceholder: function () { if (this.search.hasClass("select2-default")) { this.search.val("").removeClass("select2-default"); } }, // multi opening: function () { this.clearPlaceholder(); // should be done before super so placeholder is not used to search this.resizeSearch(); this.parent.opening.apply(this, arguments); this.focusSearch(); this.prefillNextSearchTerm(); this.updateResults(true); if (this.opts.shouldFocusInput(this)) { this.search.focus(); } this.opts.element.trigger($.Event("select2-open")); }, // multi close: function () { if (!this.opened()) return; this.parent.close.apply(this, arguments); }, // multi focus: function () { this.close(); this.search.focus(); }, // multi isFocused: function () { return this.search.hasClass("select2-focused"); }, // multi updateSelection: function (data) { var ids = {}, filtered = [], self = this; // filter out duplicates $(data).each(function () { if (!(self.id(this) in ids)) { ids[self.id(this)] = 0; filtered.push(this); } }); this.selection.find(".select2-search-choice").remove(); this.addSelectedChoice(filtered); self.postprocessResults(); }, // multi tokenize: function() { var input = this.search.val(); input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts); if (input != null && input != undefined) { this.search.val(input); if (input.length > 0) { this.open(); } } }, // multi onSelect: function (data, options) { if (!this.triggerSelect(data) || data.text === "") { return; } this.addSelectedChoice(data); this.opts.element.trigger({ type: "selected", val: this.id(data), choice: data }); // keep track of the search's value before it gets cleared this.lastSearchTerm = this.search.val(); this.clearSearch(); this.updateResults(); if (this.select || !this.opts.closeOnSelect) this.postprocessResults(data, false, this.opts.closeOnSelect===true); if (this.opts.closeOnSelect) { this.close(); this.search.width(10); } else { if (this.countSelectableResults()>0) { this.search.width(10); this.resizeSearch(); if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) { // if we reached max selection size repaint the results so choices // are replaced with the max selection reached message this.updateResults(true); } else { // initializes search's value with nextSearchTerm and update search result if (this.prefillNextSearchTerm()) { this.updateResults(); } } this.positionDropdown(); } else { // if nothing left to select close this.close(); this.search.width(10); } } // since its not possible to select an element that has already been // added we do not need to check if this is a new element before firing change this.triggerChange({ added: data }); if (!options || !options.noFocus) this.focusSearch(); }, // multi cancel: function () { this.close(); this.focusSearch(); }, addSelectedChoice: function (data) { var val = this.getVal(), self = this; $(data).each(function () { val.push(self.createChoice(this)); }); this.setVal(val); }, createChoice: function (data) { var enableChoice = !data.locked, enabledItem = $( "
  • " + "
    " + " " + "
  • "), disabledItem = $( "
  • " + "
    " + "
  • "); var choice = enableChoice ? enabledItem : disabledItem, id = this.id(data), formatted, cssClass; formatted=this.opts.formatSelection(data, choice.find("div"), this.opts.escapeMarkup); if (formatted != undefined) { choice.find("div").replaceWith($("
    ").html(formatted)); } cssClass=this.opts.formatSelectionCssClass(data, choice.find("div")); if (cssClass != undefined) { choice.addClass(cssClass); } if(enableChoice){ choice.find(".select2-search-choice-close") .on("mousedown", killEvent) .on("click dblclick", this.bind(function (e) { if (!this.isInterfaceEnabled()) return; this.unselect($(e.target)); this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"); killEvent(e); this.close(); this.focusSearch(); })).on("focus", this.bind(function () { if (!this.isInterfaceEnabled()) return; this.container.addClass("select2-container-active"); this.dropdown.addClass("select2-drop-active"); })); } choice.data("select2-data", data); choice.insertBefore(this.searchContainer); return id; }, // multi unselect: function (selected) { var val = this.getVal(), data, index; selected = selected.closest(".select2-search-choice"); if (selected.length === 0) { throw "Invalid argument: " + selected + ". Must be .select2-search-choice"; } data = selected.data("select2-data"); if (!data) { // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued // and invoked on an element already removed return; } var evt = $.Event("select2-removing"); evt.val = this.id(data); evt.choice = data; this.opts.element.trigger(evt); if (evt.isDefaultPrevented()) { return false; } while((index = indexOf(this.id(data), val)) >= 0) { val.splice(index, 1); this.setVal(val); if (this.select) this.postprocessResults(); } selected.remove(); this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data }); this.triggerChange({ removed: data }); return true; }, // multi postprocessResults: function (data, initial, noHighlightUpdate) { var val = this.getVal(), choices = this.results.find(".select2-result"), compound = this.results.find(".select2-result-with-children"), self = this; choices.each2(function (i, choice) { var id = self.id(choice.data("select2-data")); if (indexOf(id, val) >= 0) { choice.addClass("select2-selected"); // mark all children of the selected parent as selected choice.find(".select2-result-selectable").addClass("select2-selected"); } }); compound.each2(function(i, choice) { // hide an optgroup if it doesn't have any selectable children if (!choice.is('.select2-result-selectable') && choice.find(".select2-result-selectable:not(.select2-selected)").length === 0) { choice.addClass("select2-selected"); } }); if (this.highlight() == -1 && noHighlightUpdate !== false && this.opts.closeOnSelect === true){ self.highlight(0); } //If all results are chosen render formatNoMatches if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){ if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) { if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) { this.results.append("
  • " + evaluate(self.opts.formatNoMatches, self.opts.element, self.search.val()) + "
  • "); } } } }, // multi getMaxSearchWidth: function() { return this.selection.width() - getSideBorderPadding(this.search); }, // multi resizeSearch: function () { var minimumWidth, left, maxWidth, containerLeft, searchWidth, sideBorderPadding = getSideBorderPadding(this.search); minimumWidth = measureTextWidth(this.search) + 10; left = this.search.offset().left; maxWidth = this.selection.width(); containerLeft = this.selection.offset().left; searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding; if (searchWidth < minimumWidth) { searchWidth = maxWidth - sideBorderPadding; } if (searchWidth < 40) { searchWidth = maxWidth - sideBorderPadding; } if (searchWidth <= 0) { searchWidth = minimumWidth; } this.search.width(Math.floor(searchWidth)); }, // multi getVal: function () { var val; if (this.select) { val = this.select.val(); return val === null ? [] : val; } else { val = this.opts.element.val(); return splitVal(val, this.opts.separator, this.opts.transformVal); } }, // multi setVal: function (val) { if (this.select) { this.select.val(val); } else { var unique = [], valMap = {}; // filter out duplicates $(val).each(function () { if (!(this in valMap)) { unique.push(this); valMap[this] = 0; } }); this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator)); } }, // multi buildChangeDetails: function (old, current) { var current = current.slice(0), old = old.slice(0); // remove intersection from each array for (var i = 0; i < current.length; i++) { for (var j = 0; j < old.length; j++) { if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) { current.splice(i, 1); i--; old.splice(j, 1); break; } } } return {added: current, removed: old}; }, // multi val: function (val, triggerChange) { var oldData, self=this; if (arguments.length === 0) { return this.getVal(); } oldData=this.data(); if (!oldData.length) oldData=[]; // val is an id. !val is true for [undefined,null,'',0] - 0 is legal if (!val && val !== 0) { this.opts.element.val(""); this.updateSelection([]); this.clearSearch(); if (triggerChange) { this.triggerChange({added: this.data(), removed: oldData}); } return; } // val is a list of ids this.setVal(val); if (this.select) { this.opts.initSelection(this.select, this.bind(this.updateSelection)); if (triggerChange) { this.triggerChange(this.buildChangeDetails(oldData, this.data())); } } else { if (this.opts.initSelection === undefined) { throw new Error("val() cannot be called if initSelection() is not defined"); } this.opts.initSelection(this.opts.element, function(data){ var ids=$.map(data, self.id); self.setVal(ids); self.updateSelection(data); self.clearSearch(); if (triggerChange) { self.triggerChange(self.buildChangeDetails(oldData, self.data())); } }); } this.clearSearch(); }, // multi onSortStart: function() { if (this.select) { throw new Error("Sorting of elements is not supported when attached to instead."); } // collapse search field into 0 width so its container can be collapsed as well this.search.width(0); // hide the container this.searchContainer.hide(); }, // multi onSortEnd:function() { var val=[], self=this; // show search and move it to the end of the list this.searchContainer.show(); // make sure the search container is the last item in the list this.searchContainer.appendTo(this.searchContainer.parent()); // since we collapsed the width in dragStarted, we resize it here this.resizeSearch(); // update selection this.selection.find(".select2-search-choice").each(function() { val.push(self.opts.id($(this).data("select2-data"))); }); this.setVal(val); this.triggerChange(); }, // multi data: function(values, triggerChange) { var self=this, ids, old; if (arguments.length === 0) { return this.selection .children(".select2-search-choice") .map(function() { return $(this).data("select2-data"); }) .get(); } else { old = this.data(); if (!values) { values = []; } ids = $.map(values, function(e) { return self.opts.id(e); }); this.setVal(ids); this.updateSelection(values); this.clearSearch(); if (triggerChange) { this.triggerChange(this.buildChangeDetails(old, this.data())); } } } }); $.fn.select2 = function () { var args = Array.prototype.slice.call(arguments, 0), opts, select2, method, value, multiple, allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "disable", "readonly", "positionDropdown", "data", "search"], valueMethods = ["opened", "isFocused", "container", "dropdown"], propertyMethods = ["val", "data"], methodsMap = { search: "externalSearch" }; this.each(function () { if (args.length === 0 || typeof(args[0]) === "object") { opts = args.length === 0 ? {} : $.extend({}, args[0]); opts.element = $(this); if (opts.element.get(0).tagName.toLowerCase() === "select") { multiple = opts.element.prop("multiple"); } else { multiple = opts.multiple || false; if ("tags" in opts) {opts.multiple = multiple = true;} } select2 = multiple ? new window.Select2["class"].multi() : new window.Select2["class"].single(); select2.init(opts); } else if (typeof(args[0]) === "string") { if (indexOf(args[0], allowedMethods) < 0) { throw "Unknown method: " + args[0]; } value = undefined; select2 = $(this).data("select2"); if (select2 === undefined) return; method=args[0]; if (method === "container") { value = select2.container; } else if (method === "dropdown") { value = select2.dropdown; } else { if (methodsMap[method]) method = methodsMap[method]; value = select2[method].apply(select2, args.slice(1)); } if (indexOf(args[0], valueMethods) >= 0 || (indexOf(args[0], propertyMethods) >= 0 && args.length == 1)) { return false; // abort the iteration, ready to return first matched value } } else { throw "Invalid arguments to select2 plugin: " + args; } }); return (value === undefined) ? this : value; }; // plugin defaults, accessible to users $.fn.select2.defaults = { debug: false, width: "copy", loadMorePadding: 0, closeOnSelect: true, openOnEnter: true, containerCss: {}, dropdownCss: {}, containerCssClass: "", dropdownCssClass: "", formatResult: function(result, container, query, escapeMarkup) { var markup=[]; markMatch(this.text(result), query.term, markup, escapeMarkup); return markup.join(""); }, transformVal: function(val) { return $.trim(val); }, formatSelection: function (data, container, escapeMarkup) { return data ? escapeMarkup(this.text(data)) : undefined; }, sortResults: function (results, container, query) { return results; }, formatResultCssClass: function(data) {return data.css;}, formatSelectionCssClass: function(data, container) {return undefined;}, minimumResultsForSearch: 0, minimumInputLength: 0, maximumInputLength: null, maximumSelectionSize: 0, id: function (e) { return e == undefined ? null : e.id; }, text: function (e) { if (e && this.data && this.data.text) { if ($.isFunction(this.data.text)) { return this.data.text(e); } else { return e[this.data.text]; } } else { return e.text; } }, matcher: function(term, text) { return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase()) >= 0; }, separator: ",", tokenSeparators: [], tokenizer: defaultTokenizer, escapeMarkup: defaultEscapeMarkup, blurOnChange: false, selectOnBlur: false, adaptContainerCssClass: function(c) { return c; }, adaptDropdownCssClass: function(c) { return null; }, nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; }, searchInputPlaceholder: '', createSearchChoicePosition: 'top', shouldFocusInput: function (instance) { // Attempt to detect touch devices var supportsTouchEvents = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0)); // Only devices which support touch events should be special cased if (!supportsTouchEvents) { return true; } // Never focus the input if search is disabled if (instance.opts.minimumResultsForSearch < 0) { return false; } return true; } }; $.fn.select2.locales = []; $.fn.select2.locales['en'] = { formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, formatNoMatches: function () { return "No matches found"; }, formatAjaxError: function (jqXHR, textStatus, errorThrown) { return "Loading failed"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Loading more results…"; }, formatSearching: function () { return "Searching…"; } }; $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); $.fn.select2.ajaxDefaults = { transport: $.ajax, params: { type: "GET", cache: false, dataType: "json" } }; // exports window.Select2 = { query: { ajax: ajax, local: local, tags: tags }, util: { debounce: debounce, markMatch: markMatch, escapeMarkup: defaultEscapeMarkup, stripDiacritics: stripDiacritics }, "class": { "abstract": AbstractSelect2, "single": SingleSelect2, "multi": MultiSelect2 } }; }(jQuery)); assets/js/select2/select2.min.js000066600000201712152133032050012505 0ustar00!function(a){"undefined"==typeof a.fn.each2&&a.extend(a.fn,{each2:function(b){for(var c=a([0]),d=-1,e=this.length;++d=0&&c(a)})}function n(a){a[0]!==document.activeElement&&window.setTimeout(function(){var b,c=a[0],d=a.val().length;a.focus();var e=c.offsetWidth>0||c.offsetHeight>0;e&&c===document.activeElement&&(c.setSelectionRange?c.setSelectionRange(d,d):c.createTextRange&&(b=c.createTextRange(),b.collapse(!1),b.select()))},0)}function o(b){b=a(b)[0];var c=0,d=0;if("selectionStart"in b)c=b.selectionStart,d=b.selectionEnd-c;else if("selection"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart("character",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function p(a){a.preventDefault(),a.stopPropagation()}function q(a){a.preventDefault(),a.stopImmediatePropagation()}function r(b){if(!I){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);I=a(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),I.attr("class","select2-sizer"),a(document.body).append(I)}return I.text(b.val()),I.width()}function s(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each2(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each2(function(){0!==this.indexOf("select2-")&&(f=d(this),f&&g.push(f))})),b.attr("class",g.join(" "))}function t(a,b,c,e){var f=d(a.toUpperCase()).indexOf(d(b.toUpperCase())),g=b.length;return f<0?void c.push(e(a)):(c.push(e(a.substring(0,f))),c.push(""),c.push(e(a.substring(f,f+g))),c.push(""),void c.push(e(a.substring(f+g,a.length))))}function u(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})}function v(c){var d,e=null,f=c.quietMillis||100,g=c.url,h=this;return function(i){window.clearTimeout(d),d=window.setTimeout(function(){var d=c.data,f=g,j=c.transport||a.fn.select2.ajaxDefaults.transport,k={type:c.type||"GET",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||"json"},l=a.extend({},a.fn.select2.ajaxDefaults.params,k);d=d?d.call(h,i.term,i.page,i.context):null,f="function"==typeof f?f.call(h,i.term,i.page,i.context):f,e&&"function"==typeof e.abort&&e.abort(),c.params&&(a.isFunction(c.params)?a.extend(l,c.params.call(h)):a.extend(l,c.params)),a.extend(l,{url:f,dataType:c.dataType,data:d,success:function(a){var b=c.results(a,i.page,i);i.callback(b)},error:function(a,b,c){var d={hasError:!0,jqXHR:a,textStatus:b,errorThrown:c};i.callback(d)}}),e=j.call(h,l)},f)}}function w(b){var c,d,e=b,f=function(a){return""+a.text};a.isArray(e)&&(d=e,e={results:d}),a.isFunction(e)===!1&&(d=e,e=function(){return d});var g=e();return g.text&&(f=g.text,a.isFunction(f)||(c=g.text,f=function(a){return a[c]})),function(b){var c,d=b.term,g={results:[]};return""===d?void b.callback(e()):(c=function(e,g){var h,i;if(e=e[0],e.children){h={};for(i in e)e.hasOwnProperty(i)&&(h[i]=e[i]);h.children=[],a(e.children).each2(function(a,b){c(b,h.children)}),(h.children.length||b.matcher(d,f(h),e))&&g.push(h)}else b.matcher(d,f(e),e)&&g.push(e)},a(e().results).each2(function(a,b){c(b,g.results)}),void b.callback(g))}}function x(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]},h=d?c(e):c;a.isArray(h)&&(a(h).each(function(){var a=this.text!==b,c=a?this.text:this;(""===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g))}}function y(b,c){if(a.isFunction(b))return!0;if(!b)return!1;if("string"==typeof b)return!0;throw new Error(c+" must be a string, function, or falsy value")}function z(b,c){if(a.isFunction(b)){var d=Array.prototype.slice.call(arguments,2);return b.apply(c,d)}return b}function A(b){var c=0;return a.each(b,function(a,b){b.children?c+=A(b.children):c++}),c}function B(a,c,d,e){var f,h,i,j,k,l=a,m=!1;if(!e.createSearchChoice||!e.tokenSeparators||e.tokenSeparators.length<1)return b;for(;;){for(h=-1,i=0,j=e.tokenSeparators.length;i=0));i++);if(h<0)break;if(f=a.substring(0,h),a=a.substring(h+k.length),f.length>0&&(f=e.createSearchChoice.call(this,f,c),f!==b&&null!==f&&e.id(f)!==b&&null!==e.id(f))){for(m=!1,i=0,j=c.length;i=112&&a<=123}},N="
    ",O={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};J=a(document),H=function(){var a=1;return function(){return a++}}(),E=D(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,g=".select2-results";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data("select2")!==b&&null!==c.element.data("select2")&&c.element.data("select2").destroy(),this.container=this.createContainer(),this.liveRegion=a(".select2-hidden-accessible"),0==this.liveRegion.length&&(this.liveRegion=a("",{role:"status","aria-live":"polite"}).addClass("select2-hidden-accessible").appendTo(document.body)),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+H()),this.containerEventName=this.containerId.replace(/([.])/g,"_").replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"),this.container.attr("id",this.containerId),this.container.attr("title",c.element.attr("title")),this.body=a(document.body),s(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.attr("style",c.element.attr("style")),this.container.css(z(c.containerCss,this.opts.element)),this.container.addClass(z(c.containerCssClass,this.opts.element)),this.elementTabIndex=this.opts.element.attr("tabindex"),this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container).on("click.select2",p),this.container.data("select2",this),this.dropdown=this.container.find(".select2-drop"),s(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(z(c.dropdownCssClass,this.opts.element)),this.dropdown.data("select2",this),this.dropdown.on("click",p),this.results=d=this.container.find(g),this.search=e=this.container.find("input.select2-input"),this.queryCount=0,this.resultsPage=0,this.context=null,this.initContainer(),this.container.on("click",p),k(this.results),this.dropdown.on("mousemove-filtered",g,this.bind(this.highlightUnderEvent)),this.dropdown.on("touchstart touchmove touchend",g,this.bind(function(a){this._touchEvent=!0,this.highlightUnderEvent(a)})),this.dropdown.on("touchmove",g,this.bind(this.touchMoved)),this.dropdown.on("touchstart touchend",g,this.bind(this.clearTouchMoved)),this.dropdown.on("click",this.bind(function(a){this._touchEvent&&(this._touchEvent=!1,this.selectHighlighted())})),m(80,this.results),this.dropdown.on("scroll-debounced",g,this.bind(this.loadMoreIfNeeded)),a(this.container).on("change",".select2-input",function(a){a.stopPropagation()}),a(this.dropdown).on("change",".select2-input",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&f-e<=0?(d.scrollTop(0),p(a)):e<0&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),p(a))}),j(e),e.on("keyup-change input paste",this.bind(this.updateResults)),e.on("focus",function(){e.addClass("select2-focused")}),e.on("blur",function(){e.removeClass("select2-focused")}),this.dropdown.on("mouseup",g,this.bind(function(b){a(b.target).closest(".select2-result-selectable").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on("click mouseup mousedown touchstart touchend focusin",function(a){a.stopPropagation()}),this.lastSearchTerm=b,a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr("maxlength",c.maximumInputLength);var h=c.element.prop("disabled");h===b&&(h=!1),this.enable(!h);var i=c.element.prop("readonly");i===b&&(i=!1),this.readonly(i),K=K||f(),this.autofocus=c.element.prop("autofocus"),c.element.prop("autofocus",!1),this.autofocus&&this.focus(),this.search.attr("placeholder",c.searchInputPlaceholder)},destroy:function(){var a=this.opts.element,c=a.data("select2"),d=this;this.close(),a.length&&a[0].detachEvent&&d._sync&&a.each(function(){d._sync&&this.detachEvent("onpropertychange",d._sync)}),this.propertyObserver&&(this.propertyObserver.disconnect(),this.propertyObserver=null),this._sync=null,c!==b&&(c.container.remove(),c.liveRegion.remove(),c.dropdown.remove(),a.removeData("select2").off(".select2"),a.is("input[type='hidden']")?a.css("display",""):(a.show().prop("autofocus",this.autofocus||!1),this.elementTabIndex?a.attr({tabindex:this.elementTabIndex}):a.removeAttr("tabindex"),a.show())),C.call(this,"container","liveRegion","dropdown","results","search")},optionToData:function(a){return a.is("option")?{id:a.prop("value"),text:a.text(),element:a.get(),css:a.attr("class"),disabled:a.prop("disabled"),locked:g(a.attr("locked"),"locked")||g(a.data("locked"),!0)}:a.is("optgroup")?{text:a.attr("label"),children:[],element:a.get(),css:a.attr("class")}:void 0},prepareOpts:function(c){var d,e,f,i,j=this;if(d=c.element,"select"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in c)throw new Error("Option '"+this+"' is not allowed for Select2 when attached to a ","
    "," ","
      ","
    ","
    "].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c,d;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),b=this.search.get(0),b.createTextRange?(c=b.createTextRange(),c.collapse(!1),c.select()):b.setSelectionRange&&(d=this.search.val().length,b.setSelectionRange(d,d))),this.prefillNextSearchTerm(),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){a("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id")),this.parent.destroy.apply(this,arguments),C.call(this,"selection","focusser")},initContainer:function(){var b,d,e=this.container,f=this.dropdown,g=H();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),b.find(".select2-chosen").attr("id","select2-chosen-"+g),this.focusser.attr("aria-labelledby","select2-chosen-"+g),this.results.attr("id","select2-results-"+g),this.search.attr("aria-owns","select2-results-"+g),this.focusser.attr("id","s2id_autogen"+g),d=a("label[for='"+this.opts.element.attr("id")+"']"),this.opts.element.on("focus.select2",this.bind(function(){this.focus()})),this.focusser.prev().text(d.text()).attr("for",this.focusser.attr("id"));var h=this.opts.element.attr("title");this.opts.element.attr("title",h||d.text()),this.focusser.attr("tabindex",this.elementTabIndex),this.search.attr("id",this.focusser.attr("id")+"_search"),this.search.prev().text(a("label[for='"+this.focusser.attr("id")+"']").text()).attr("for",this.search.attr("id")),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&229!=a.keyCode){if(a.which===M.PAGE_UP||a.which===M.PAGE_DOWN)return void p(a);switch(a.which){case M.UP:case M.DOWN:return this.moveHighlight(a.which===M.UP?-1:1),void p(a);case M.ENTER:return this.selectHighlighted(),void p(a);case M.TAB:return void this.selectHighlighted({noFocus:!0});case M.ESC:return this.cancel(a),void p(a)}}})),this.search.on("blur",this.bind(function(a){document.activeElement===this.body.get(0)&&window.setTimeout(this.bind(function(){this.opened()&&this.results&&this.results.length>1&&this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==M.TAB&&!M.isControl(a)&&!M.isFunctionKey(a)&&a.which!==M.ESC){if(this.opts.openOnEnter===!1&&a.which===M.ENTER)return void p(a);if(a.which==M.DOWN||a.which==M.UP||a.which==M.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),void p(a)}return a.which==M.DELETE||a.which==M.BACKSPACE?(this.opts.allowClear&&this.clear(),void p(a)):void 0}})),j(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),b.on("mousedown touchstart","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),q(a),this.close(),this.selection&&this.selection.focus())})),this.supportsTouchEvents?b.on("mousedown touchstart",this.bind(function(d){c(b),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),p(d)})):b.on("mousedown",this.bind(function(d){c(b),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),p(d)})),f.on("mousedown touchstart",this.bind(function(){this.opts.shouldFocusInput(this)&&this.search.focus()})),b.on("focus",this.bind(function(a){p(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.hide(),this.setPlaceholder()},clear:function(b){var c=this.selection.data("select2-data");if(c){var d=a.Event("select2-clearing");if(this.opts.element.trigger(d),d.isDefaultPrevented())return;var e=this.getPlaceholderOption();this.opts.element.val(e?e.val():""),this.selection.find(".select2-chosen").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),b!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection(null),this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.setPlaceholder(),a.lastSearchTerm=a.search.val())})}},isPlaceholderOptionSelected:function(){var a;return this.getPlaceholder()!==b&&((a=this.getPlaceholderOption())!==b&&a.prop("selected")||""===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val())},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find("option").filter(function(){return this.selected&&!this.disabled});b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var h=g(e,b.id(d));return h&&(f=d),h},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,b,c){var d=0,e=this;if(this.findHighlightableChoices().each2(function(a,b){if(g(e.id(b.data("select2-data")),e.opts.element.val()))return d=a,!1}),c!==!1&&(b===!0&&d>=0?this.highlight(d):this.highlight(0)),b===!0){var f=this.opts.minimumResultsForSearch;f>=0&&this.showSearch(A(a.results)>=f)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.close(),b&&b.noFocus||!this.opts.shouldFocusInput(this)||this.focusser.focus(),g(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var c,d,e=this.selection.find(".select2-chosen");this.selection.data("select2-data",a),e.empty(),null!==a&&(c=this.opts.formatSelection(a,e,this.opts.escapeMarkup)),c!==b&&e.append(c),d=this.opts.formatSelectionCssClass(a,e),d!==b&&e.addClass(d),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1],this.opts.debug&&console&&console.warn&&console.warn('Select2: The second option to `select2("val")` is not supported in Select2 4.0.0. The `change` event will always be triggered in 4.0.0.')),this.select)this.opts.debug&&console&&console.warn&&console.warn('Select2: Setting the value on a "," ","","
    ","
      ","
    ","
    "].join(""));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find("option").filter(function(){return this.selected&&!this.disabled}).each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=h(c.val(),b.separator,b.transformVal),f=[];b.query({matcher:function(c,d,h){var i=a.grep(e,function(a){return g(a,b.id(h))}).length;return i&&f.push(h),i},callback:a.isFunction(d)?function(){for(var a=[],c=0;c0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",c,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.hide(),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.prefillNextSearchTerm(),this.updateResults(!0),this.opts.shouldFocusInput(this)&&this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c={},d=[],e=this;a(b).each(function(){e.id(this)in c||(c[e.id(this)]=0,d.push(this))}),this.selection.find(".select2-search-choice").remove(),this.addSelectedChoice(d),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&""!==a.text&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.clearSearch(),this.updateResults(),!this.select&&this.opts.closeOnSelect||this.postprocessResults(a,!1,this.opts.closeOnSelect===!0),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()?this.updateResults(!0):this.prefillNextSearchTerm()&&this.updateResults(),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(b){var c=this.getVal(),d=this;a(b).each(function(){c.push(d.createChoice(this))}),this.setVal(c)},createChoice:function(c){var d,e,f=!c.locked,g=a("
  • "),h=a("
  • "),i=f?g:h,j=this.id(c);return d=this.opts.formatSelection(c,i.find("div"),this.opts.escapeMarkup),d!=b&&i.find("div").replaceWith(a("
    ").html(d)),e=this.opts.formatSelectionCssClass(c,i.find("div")),e!=b&&i.addClass(e),f&&i.find(".select2-search-choice-close").on("mousedown",p).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),p(b),this.close(),this.focusSearch())})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),i.data("select2-data",c),i.insertBefore(this.searchContainer),j},unselect:function(b){var c,d,f=this.getVal();if(b=b.closest(".select2-search-choice"),0===b.length)throw"Invalid argument: "+b+". Must be .select2-search-choice";if(c=b.data("select2-data")){var g=a.Event("select2-removing");if(g.val=this.id(c),g.choice=c,this.opts.element.trigger(g),g.isDefaultPrevented())return!1;for(;(d=e(this.id(c),f))>=0;)f.splice(d,1),this.setVal(f),this.select&&this.postprocessResults();return b.remove(),this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}),!0}},postprocessResults:function(a,b,c){var d=this.getVal(),f=this.results.find(".select2-result"),g=this.results.find(".select2-result-with-children"),h=this;f.each2(function(a,b){var c=h.id(b.data("select2-data"));e(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),g.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),this.highlight()==-1&&c!==!1&&this.opts.closeOnSelect===!0&&h.highlight(0),!this.opts.createSearchChoice&&!f.filter(".select2-result:not(.select2-selected)").length>0&&(!a||a&&!a.more&&0===this.results.find(".select2-no-results").length)&&y(h.opts.formatNoMatches,"formatNoMatches")&&this.results.append("
  • "+z(h.opts.formatNoMatches,h.opts.element,h.search.val())+"
  • ")},getMaxSearchWidth:function(){return this.selection.width()-i(this.search)},resizeSearch:function(){var a,b,c,d,e,f=i(this.search);a=r(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,e. Attach to instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(b,c){var d,e,f=this;return 0===arguments.length?this.selection.children(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(e=this.data(),b||(b=[]),d=a.map(b,function(a){return f.opts.id(a)}),this.setVal(d),this.updateSelection(b),this.clearSearch(),c&&this.triggerChange(this.buildChangeDetails(e,this.data())),void 0)}}),a.fn.select2=function(){var c,d,f,g,h,i=Array.prototype.slice.call(arguments,0),j=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],k=["opened","isFocused","container","dropdown"],l=["val","data"],m={search:"externalSearch"};return this.each(function(){if(0===i.length||"object"==typeof i[0])c=0===i.length?{}:a.extend({},i[0]),c.element=a(this),"select"===c.element.get(0).tagName.toLowerCase()?h=c.element.prop("multiple"):(h=c.multiple||!1,"tags"in c&&(c.multiple=h=!0)),d=h?new window.Select2.class.multi:new window.Select2.class.single,d.init(c);else{if("string"!=typeof i[0])throw"Invalid arguments to select2 plugin: "+i;if(e(i[0],j)<0)throw"Unknown method: "+i[0];if(g=b,d=a(this).data("select2"),d===b)return;if(f=i[0],"container"===f?g=d.container:"dropdown"===f?g=d.dropdown:(m[f]&&(f=m[f]),g=d[f].apply(d,i.slice(1))),e(i[0],k)>=0||e(i[0],l)>=0&&1==i.length)return!1}}),g===b?this:g},a.fn.select2.defaults={debug:!1,width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return t(this.text(a),c.term,e,d),e.join("")},transformVal:function(b){return a.trim(b)},formatSelection:function(a,c,d){return a?d(this.text(a)):b},sortResults:function(a,b,c){return a},formatResultCssClass:function(a){return a.css},formatSelectionCssClass:function(a,c){return b},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a==b?null:a.id},text:function(b){return b&&this.data&&this.data.text?a.isFunction(this.data.text)?this.data.text(b):b[this.data.text]:b.text},matcher:function(a,b){return d(""+b).toUpperCase().indexOf(d(""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:B,escapeMarkup:u,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(a){return null},nextSearchTerm:function(a,c){return b},searchInputPlaceholder:"",createSearchChoicePosition:"top",shouldFocusInput:function(a){ var b="ontouchstart"in window||navigator.msMaxTouchPoints>0;return!b||!(a.opts.minimumResultsForSearch<0)}},a.fn.select2.locales=[],a.fn.select2.locales.en={formatMatches:function(a){return 1===a?"One result is available, press enter to select it.":a+" results are available, use up and down arrow keys to navigate."},formatNoMatches:function(){return"No matches found"},formatAjaxError:function(a,b,c){return"Loading failed"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" or more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(a){return"Loading more results…"},formatSearching:function(){return"Searching…"}},a.extend(a.fn.select2.defaults,a.fn.select2.locales.en),a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:"GET",cache:!1,dataType:"json"}},window.Select2={query:{ajax:v,local:w,tags:x},util:{debounce:l,markMatch:t,escapeMarkup:u,stripDiacritics:d},class:{abstract:E,single:F,multi:G}}}}(jQuery);assets/js/jquery-blockui/jquery.blockUI.min.js000066600000022533152133032050015420 0ustar00/*! * jQuery blockUI plugin * Version 2.70.0-2014.11.23 * Requires jQuery v1.7 or later * * Examples at: http://malsup.com/jquery/block/ * Copyright (c) 2007-2013 M. Alsup * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Thanks to Amir-Hossein Sobhi for some excellent contributions! */ !function(){"use strict";function a(a){function b(b,d){var f,p,q=b==window,r=d&&void 0!==d.message?d.message:void 0;if(d=a.extend({},a.blockUI.defaults,d||{}),!d.ignoreIfBlocked||!a(b).data("blockUI.isBlocked")){if(d.overlayCSS=a.extend({},a.blockUI.defaults.overlayCSS,d.overlayCSS||{}),f=a.extend({},a.blockUI.defaults.css,d.css||{}),d.onOverlayClick&&(d.overlayCSS.cursor="pointer"),p=a.extend({},a.blockUI.defaults.themedCSS,d.themedCSS||{}),r=void 0===r?d.message:r,q&&n&&c(window,{fadeOut:0}),r&&"string"!=typeof r&&(r.parentNode||r.jquery)){var s=r.jquery?r[0]:r,t={};a(b).data("blockUI.history",t),t.el=s,t.parent=s.parentNode,t.display=s.style.display,t.position=s.style.position,t.parent&&t.parent.removeChild(s)}a(b).data("blockUI.onUnblock",d.onUnblock);var u,v,w,x,y=d.baseZ;u=a(k||d.forceIframe?'':''),v=a(d.theme?'':''),d.theme&&q?(x='"):d.theme?(x='"):x=q?'':'',w=a(x),r&&(d.theme?(w.css(p),w.addClass("ui-widget-content")):w.css(f)),d.theme||v.css(d.overlayCSS),v.css("position",q?"fixed":"absolute"),(k||d.forceIframe)&&u.css("opacity",0);var z=[u,v,w],A=a(q?"body":b);a.each(z,function(){this.appendTo(A)}),d.theme&&d.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var B=m&&(!a.support.boxModel||a("object,embed",q?null:b).length>0);if(l||B){if(q&&d.allowBodyStretch&&a.support.boxModel&&a("html,body").css("height","100%"),(l||!a.support.boxModel)&&!q)var C=i(b,"borderTopWidth"),D=i(b,"borderLeftWidth"),E=C?"(0 - "+C+")":0,F=D?"(0 - "+D+")":0;a.each(z,function(a,b){var c=b[0].style;if(c.position="absolute",a<2)q?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+d.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"'),q?c.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"'),F&&c.setExpression("left",F),E&&c.setExpression("top",E);else if(d.centerY)q&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),c.marginTop=0;else if(!d.centerY&&q){var e=d.css&&d.css.top?parseInt(d.css.top,10):0,f="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+e+') + "px"';c.setExpression("top",f)}})}if(r&&(d.theme?w.find(".ui-widget-content").append(r):w.append(r),(r.jquery||r.nodeType)&&a(r).show()),(k||d.forceIframe)&&d.showOverlay&&u.show(),d.fadeIn){var G=d.onBlock?d.onBlock:j,H=d.showOverlay&&!r?G:j,I=r?G:j;d.showOverlay&&v._fadeIn(d.fadeIn,H),r&&w._fadeIn(d.fadeIn,I)}else d.showOverlay&&v.show(),r&&w.show(),d.onBlock&&d.onBlock.bind(w)();if(e(1,b,d),q?(n=w[0],o=a(d.focusableElements,n),d.focusInput&&setTimeout(g,20)):h(w[0],d.centerX,d.centerY),d.timeout){var J=setTimeout(function(){q?a.unblockUI(d):a(b).unblock(d)},d.timeout);a(b).data("blockUI.timeout",J)}}}function c(b,c){var f,g=b==window,h=a(b),i=h.data("blockUI.history"),j=h.data("blockUI.timeout");j&&(clearTimeout(j),h.removeData("blockUI.timeout")),c=a.extend({},a.blockUI.defaults,c||{}),e(0,b,c),null===c.onUnblock&&(c.onUnblock=h.data("blockUI.onUnblock"),h.removeData("blockUI.onUnblock"));var k;k=g?a(document.body).children().filter(".blockUI").add("body > .blockUI"):h.find(">.blockUI"),c.cursorReset&&(k.length>1&&(k[1].style.cursor=c.cursorReset),k.length>2&&(k[2].style.cursor=c.cursorReset)),g&&(n=o=null),c.fadeOut?(f=k.length,k.stop().fadeOut(c.fadeOut,function(){0===--f&&d(k,i,c,b)})):d(k,i,c,b)}function d(b,c,d,e){var f=a(e);if(!f.data("blockUI.isBlocked")){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)}),c&&c.el&&(c.el.style.display=c.display,c.el.style.position=c.position,c.el.style.cursor="default",c.parent&&c.parent.appendChild(c.el),f.removeData("blockUI.history")),f.data("blockUI.static")&&f.css("position","static"),"function"==typeof d.onUnblock&&d.onUnblock(e,d);var g=a(document.body),h=g.width(),i=g[0].style.width;g.width(h-1).width(h),g[0].style.width=i}}function e(b,c,d){var e=c==window,g=a(c);if((b||(!e||n)&&(e||g.data("blockUI.isBlocked")))&&(g.data("blockUI.isBlocked",b),e&&d.bindEvents&&(!b||d.showOverlay))){var h="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";b?a(document).bind(h,d,f):a(document).unbind(h,f)}}function f(b){if("keydown"===b.type&&b.keyCode&&9==b.keyCode&&n&&b.data.constrainTabKey){var c=o,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e)return setTimeout(function(){g(e)},10),!1}var f=b.data,h=a(b.target);return h.hasClass("blockOverlay")&&f.onOverlayClick&&f.onOverlayClick(b),h.parents("div."+f.blockMsgClass).length>0||0===h.parents().children().filter("div.blockUI").length}function g(a){if(o){var b=o[a===!0?o.length-1:0];b&&b.focus()}}function h(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-i(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-i(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0"),c&&(e.top=g>0?g+"px":"0")}function i(b,c){return parseInt(a.css(b,c),10)||0}a.fn._fadeIn=a.fn.fadeIn;var j=a.noop||function(){},k=/MSIE/.test(navigator.userAgent),l=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),m=(document.documentMode||0,a.isFunction(document.createElement("div").style.setExpression));a.blockUI=function(a){b(window,a)},a.unblockUI=function(a){c(window,a)},a.growlUI=function(b,c,d,e){var f=a('
    ');b&&f.append("

    "+b+"

    "),c&&f.append("

    "+c+"

    "),void 0===d&&(d=3e3);var g=function(b){b=b||{},a.blockUI({message:f,fadeIn:"undefined"!=typeof b.fadeIn?b.fadeIn:700,fadeOut:"undefined"!=typeof b.fadeOut?b.fadeOut:1e3,timeout:"undefined"!=typeof b.timeout?b.timeout:d,centerY:!1,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};g();f.css("opacity");f.mouseover(function(){g({fadeIn:0,timeout:3e4});var b=a(".blockMsg");b.stop(),b.fadeTo(300,1)}).mouseout(function(){a(".blockMsg").fadeOut(1e3)})},a.fn.block=function(c){if(this[0]===window)return a.blockUI(c),this;var d=a.extend({},a.blockUI.defaults,c||{});return this.each(function(){var b=a(this);d.ignoreIfBlocked&&b.data("blockUI.isBlocked")||b.unblock({fadeOut:0})}),this.each(function(){"static"==a.css(this,"position")&&(this.style.position="relative",a(this).data("blockUI.static",!0)),this.style.zoom=1,b(this,c)})},a.fn.unblock=function(b){return this[0]===window?(a.unblockUI(b),this):this.each(function(){c(this,b)})},a.blockUI.version=2.7,a.blockUI.defaults={message:"

    Please wait...

    ",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var n=null,o=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],a):a(jQuery)}();assets/js/jquery-blockui/jquery.blockUI.js000066600000047003152133032050014635 0ustar00/*! * jQuery blockUI plugin * Version 2.70.0-2014.11.23 * Requires jQuery v1.7 or later * * Examples at: http://malsup.com/jquery/block/ * Copyright (c) 2007-2013 M. Alsup * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Thanks to Amir-Hossein Sobhi for some excellent contributions! */ ;(function() { /*jshint eqeqeq:false curly:false latedef:false */ "use strict"; function setup($) { $.fn._fadeIn = $.fn.fadeIn; var noOp = $.noop || function() {}; // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle // confusing userAgent strings on Vista) var msie = /MSIE/.test(navigator.userAgent); var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent); var mode = document.documentMode || 0; var setExpr = $.isFunction( document.createElement('div').style.setExpression ); // global $ methods for blocking/unblocking the entire page $.blockUI = function(opts) { install(window, opts); }; $.unblockUI = function(opts) { remove(window, opts); }; // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl) $.growlUI = function(title, message, timeout, onClose) { var $m = $('
    '); if (title) $m.append('

    '+title+'

    '); if (message) $m.append('

    '+message+'

    '); if (timeout === undefined) timeout = 3000; // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications var callBlock = function(opts) { opts = opts || {}; $.blockUI({ message: $m, fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700, fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000, timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout, centerY: false, showOverlay: false, onUnblock: onClose, css: $.blockUI.defaults.growlCSS }); }; callBlock(); var nonmousedOpacity = $m.css('opacity'); $m.mouseover(function() { callBlock({ fadeIn: 0, timeout: 30000 }); var displayBlock = $('.blockMsg'); displayBlock.stop(); // cancel fadeout if it has started displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency }).mouseout(function() { $('.blockMsg').fadeOut(1000); }); // End konapun additions }; // plugin method for blocking element content $.fn.block = function(opts) { if ( this[0] === window ) { $.blockUI( opts ); return this; } var fullOpts = $.extend({}, $.blockUI.defaults, opts || {}); this.each(function() { var $el = $(this); if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked')) return; $el.unblock({ fadeOut: 0 }); }); return this.each(function() { if ($.css(this,'position') == 'static') { this.style.position = 'relative'; $(this).data('blockUI.static', true); } this.style.zoom = 1; // force 'hasLayout' in ie install(this, opts); }); }; // plugin method for unblocking element content $.fn.unblock = function(opts) { if ( this[0] === window ) { $.unblockUI( opts ); return this; } return this.each(function() { remove(this, opts); }); }; $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost! // override these in your code to change the default behavior and style $.blockUI.defaults = { // message displayed when blocking (use null for no message) message: '

    Please wait...

    ', title: null, // title string; only used when theme == true draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded) theme: false, // set to true to use with jQuery UI themes // styles for the message when blocking; if you wish to disable // these and use an external stylesheet then do this in your code: // $.blockUI.defaults.css = {}; css: { padding: 0, margin: 0, width: '30%', top: '40%', left: '35%', textAlign: 'center', color: '#000', border: '3px solid #aaa', backgroundColor:'#fff', cursor: 'wait' }, // minimal style set used when themes are used themedCSS: { width: '30%', top: '40%', left: '35%' }, // styles for the overlay overlayCSS: { backgroundColor: '#000', opacity: 0.6, cursor: 'wait' }, // style to replace wait cursor before unblocking to correct issue // of lingering wait cursor cursorReset: 'default', // styles applied when using $.growlUI growlCSS: { width: '350px', top: '10px', left: '', right: '10px', border: 'none', padding: '5px', opacity: 0.6, cursor: 'default', color: '#fff', backgroundColor: '#000', '-webkit-border-radius':'10px', '-moz-border-radius': '10px', 'border-radius': '10px' }, // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w // (hat tip to Jorge H. N. de Vasconcelos) /*jshint scripturl:true */ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', // force usage of iframe in non-IE browsers (handy for blocking applets) forceIframe: false, // z-index for the blocking overlay baseZ: 1000, // set these to true to have the message automatically centered centerX: true, // <-- only effects element blocking (page block controlled via css above) centerY: true, // allow body element to be stetched in ie6; this makes blocking look better // on "short" pages. disable if you wish to prevent changes to the body height allowBodyStretch: true, // enable if you want key and mouse events to be disabled for content that is blocked bindEvents: true, // be default blockUI will supress tab navigation from leaving blocking content // (if bindEvents is true) constrainTabKey: true, // fadeIn time in millis; set to 0 to disable fadeIn on block fadeIn: 200, // fadeOut time in millis; set to 0 to disable fadeOut on unblock fadeOut: 400, // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock timeout: 0, // disable if you don't want to show the overlay showOverlay: true, // if true, focus will be placed in the first available input field when // page blocking focusInput: true, // elements that can receive focus focusableElements: ':input:enabled:visible', // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity) // no longer needed in 2012 // applyPlatformOpacityRules: true, // callback method invoked when fadeIn has completed and blocking message is visible onBlock: null, // callback method invoked when unblocking has completed; the callback is // passed the element that has been unblocked (which is the window object for page // blocks) and the options that were passed to the unblock call: // onUnblock(element, options) onUnblock: null, // callback method invoked when the overlay area is clicked. // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used. onOverlayClick: null, // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493 quirksmodeOffsetHack: 4, // class name of the message block blockMsgClass: 'blockMsg', // if it is already blocked, then ignore it (don't unblock and reblock) ignoreIfBlocked: false }; // private data and functions follow... var pageBlock = null; var pageBlockEls = []; function install(el, opts) { var css, themedCSS; var full = (el == window); var msg = (opts && opts.message !== undefined ? opts.message : undefined); opts = $.extend({}, $.blockUI.defaults, opts || {}); if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked')) return; opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {}); css = $.extend({}, $.blockUI.defaults.css, opts.css || {}); if (opts.onOverlayClick) opts.overlayCSS.cursor = 'pointer'; themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {}); msg = msg === undefined ? opts.message : msg; // remove the current block (if there is one) if (full && pageBlock) remove(window, {fadeOut:0}); // if an existing element is being used as the blocking content then we capture // its current place in the DOM (and current display style) so we can restore // it when we unblock if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) { var node = msg.jquery ? msg[0] : msg; var data = {}; $(el).data('blockUI.history', data); data.el = node; data.parent = node.parentNode; data.display = node.style.display; data.position = node.style.position; if (data.parent) data.parent.removeChild(node); } $(el).data('blockUI.onUnblock', opts.onUnblock); var z = opts.baseZ; // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform; // layer1 is the iframe layer which is used to supress bleed through of underlying content // layer2 is the overlay layer which has opacity and a wait cursor (by default) // layer3 is the message content that is displayed while blocking var lyr1, lyr2, lyr3, s; if (msie || opts.forceIframe) lyr1 = $(''); else lyr1 = $(''); if (opts.theme) lyr2 = $(''); else lyr2 = $(''); if (opts.theme && full) { s = ''; } else if (opts.theme) { s = ''; } else if (full) { s = ''; } else { s = ''; } lyr3 = $(s); // if we have a message, style it if (msg) { if (opts.theme) { lyr3.css(themedCSS); lyr3.addClass('ui-widget-content'); } else lyr3.css(css); } // style the overlay if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/) lyr2.css(opts.overlayCSS); lyr2.css('position', full ? 'fixed' : 'absolute'); // make iframe layer transparent in IE if (msie || opts.forceIframe) lyr1.css('opacity',0.0); //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el); var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el); $.each(layers, function() { this.appendTo($par); }); if (opts.theme && opts.draggable && $.fn.draggable) { lyr3.draggable({ handle: '.ui-dialog-titlebar', cancel: 'li' }); } // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling) var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0); if (ie6 || expr) { // give body 100% height if (full && opts.allowBodyStretch && $.support.boxModel) $('html,body').css('height','100%'); // fix ie6 issue when blocked element has a border width if ((ie6 || !$.support.boxModel) && !full) { var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth'); var fixT = t ? '(0 - '+t+')' : 0; var fixL = l ? '(0 - '+l+')' : 0; } // simulate fixed position $.each(layers, function(i,o) { var s = o[0].style; s.position = 'absolute'; if (i < 2) { if (full) s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"'); else s.setExpression('height','this.parentNode.offsetHeight + "px"'); if (full) s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'); else s.setExpression('width','this.parentNode.offsetWidth + "px"'); if (fixL) s.setExpression('left', fixL); if (fixT) s.setExpression('top', fixT); } else if (opts.centerY) { if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'); s.marginTop = 0; } else if (!opts.centerY && full) { var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0; var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"'; s.setExpression('top',expression); } }); } // show the message if (msg) { if (opts.theme) lyr3.find('.ui-widget-content').append(msg); else lyr3.append(msg); if (msg.jquery || msg.nodeType) $(msg).show(); } if ((msie || opts.forceIframe) && opts.showOverlay) lyr1.show(); // opacity is zero if (opts.fadeIn) { var cb = opts.onBlock ? opts.onBlock : noOp; var cb1 = (opts.showOverlay && !msg) ? cb : noOp; var cb2 = msg ? cb : noOp; if (opts.showOverlay) lyr2._fadeIn(opts.fadeIn, cb1); if (msg) lyr3._fadeIn(opts.fadeIn, cb2); } else { if (opts.showOverlay) lyr2.show(); if (msg) lyr3.show(); if (opts.onBlock) opts.onBlock.bind(lyr3)(); } // bind key and mouse events bind(1, el, opts); if (full) { pageBlock = lyr3[0]; pageBlockEls = $(opts.focusableElements,pageBlock); if (opts.focusInput) setTimeout(focus, 20); } else center(lyr3[0], opts.centerX, opts.centerY); if (opts.timeout) { // auto-unblock var to = setTimeout(function() { if (full) $.unblockUI(opts); else $(el).unblock(opts); }, opts.timeout); $(el).data('blockUI.timeout', to); } } // remove the block function remove(el, opts) { var count; var full = (el == window); var $el = $(el); var data = $el.data('blockUI.history'); var to = $el.data('blockUI.timeout'); if (to) { clearTimeout(to); $el.removeData('blockUI.timeout'); } opts = $.extend({}, $.blockUI.defaults, opts || {}); bind(0, el, opts); // unbind events if (opts.onUnblock === null) { opts.onUnblock = $el.data('blockUI.onUnblock'); $el.removeData('blockUI.onUnblock'); } var els; if (full) // crazy selector to handle odd field errors in ie6/7 els = $(document.body).children().filter('.blockUI').add('body > .blockUI'); else els = $el.find('>.blockUI'); // fix cursor issue if ( opts.cursorReset ) { if ( els.length > 1 ) els[1].style.cursor = opts.cursorReset; if ( els.length > 2 ) els[2].style.cursor = opts.cursorReset; } if (full) pageBlock = pageBlockEls = null; if (opts.fadeOut) { count = els.length; els.stop().fadeOut(opts.fadeOut, function() { if ( --count === 0) reset(els,data,opts,el); }); } else reset(els, data, opts, el); } // move blocking element back into the DOM where it started function reset(els,data,opts,el) { var $el = $(el); if ( $el.data('blockUI.isBlocked') ) return; els.each(function(i,o) { // remove via DOM calls so we don't lose event handlers if (this.parentNode) this.parentNode.removeChild(this); }); if (data && data.el) { data.el.style.display = data.display; data.el.style.position = data.position; data.el.style.cursor = 'default'; // #59 if (data.parent) data.parent.appendChild(data.el); $el.removeData('blockUI.history'); } if ($el.data('blockUI.static')) { $el.css('position', 'static'); // #22 } if (typeof opts.onUnblock == 'function') opts.onUnblock(el,opts); // fix issue in Safari 6 where block artifacts remain until reflow var body = $(document.body), w = body.width(), cssW = body[0].style.width; body.width(w-1).width(w); body[0].style.width = cssW; } // bind/unbind the handler function bind(b, el, opts) { var full = el == window, $el = $(el); // don't bother unbinding if there is nothing to unbind if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked'))) return; $el.data('blockUI.isBlocked', b); // don't bind events when overlay is not in use or if bindEvents is false if (!full || !opts.bindEvents || (b && !opts.showOverlay)) return; // bind anchors and inputs for mouse and key events var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove'; if (b) $(document).bind(events, opts, handler); else $(document).unbind(events, handler); // former impl... // var $e = $('a,:input'); // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler); } // event handler to suppress keyboard/mouse events when blocking function handler(e) { // allow tab navigation (conditionally) if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) { if (pageBlock && e.data.constrainTabKey) { var els = pageBlockEls; var fwd = !e.shiftKey && e.target === els[els.length-1]; var back = e.shiftKey && e.target === els[0]; if (fwd || back) { setTimeout(function(){focus(back);},10); return false; } } } var opts = e.data; var target = $(e.target); if (target.hasClass('blockOverlay') && opts.onOverlayClick) opts.onOverlayClick(e); // allow events within the message content if (target.parents('div.' + opts.blockMsgClass).length > 0) return true; // allow events for content that is not being blocked return target.parents().children().filter('div.blockUI').length === 0; } function focus(back) { if (!pageBlockEls) return; var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0]; if (e) e.focus(); } function center(el, x, y) { var p = el.parentNode, s = el.style; var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth'); var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth'); if (x) s.left = l > 0 ? (l+'px') : '0'; if (y) s.top = t > 0 ? (t+'px') : '0'; } function sz(el, p) { return parseInt($.css(el,p),10)||0; } } /*global define:true */ if (typeof define === 'function' && define.amd && define.amd.jQuery) { define(['jquery'], setup); } else { setup(jQuery); } })();assets/js/frontend/woocommerce.js000066600000000644152133032050013160 0ustar00jQuery( function( $ ) { // Orderby $( '.woocommerce-ordering' ).on( 'change', 'select.orderby', function() { $( this ).closest( 'form' ).submit(); }); // Target quantity inputs on product pages $( 'input.qty:not(.product-quantity input.qty)' ).each( function() { var min = parseFloat( $( this ).attr( 'min' ) ); if ( min >= 0 && parseFloat( $( this ).val() ) < min ) { $( this ).val( min ); } }); }); assets/js/frontend/address-i18n.js000066600000007606152133032050013050 0ustar00/*global wc_address_i18n_params */ jQuery( function( $ ) { // wc_address_i18n_params is required to continue, ensure the object exists if ( typeof wc_address_i18n_params === 'undefined' ) { return false; } var locale_json = wc_address_i18n_params.locale.replace( /"/g, '"' ), locale = $.parseJSON( locale_json ); function field_is_required( field, is_required ) { if ( is_required ) { field.find( 'label' ).append( ' *' ); field.addClass( 'validate-required' ); } else { field.find( 'label abbr' ).remove(); field.removeClass( 'validate-required' ); } } $( document.body ) // Handle locale .bind( 'country_to_state_changing', function( event, country, wrapper ) { var thisform = wrapper, thislocale; if ( typeof locale[ country ] !== 'undefined' ) { thislocale = locale[ country ]; } else { thislocale = locale['default']; } var $postcodefield = thisform.find( '#billing_postcode_field, #shipping_postcode_field' ), $cityfield = thisform.find( '#billing_city_field, #shipping_city_field' ), $statefield = thisform.find( '#billing_state_field, #shipping_state_field' ); if ( ! $postcodefield.attr( 'data-o_class' ) ) { $postcodefield.attr( 'data-o_class', $postcodefield.attr( 'class' ) ); $cityfield.attr( 'data-o_class', $cityfield.attr( 'class' ) ); $statefield.attr( 'data-o_class', $statefield.attr( 'class' ) ); } // Re-order postcode/city if ( thislocale.postcode_before_city ) { $postcodefield.add( $cityfield ).add( $statefield ).removeClass( 'form-row-first form-row-last' ).addClass( 'form-row-first' ); $cityfield.removeClass( 'form-row-wide form-row-first' ).addClass( 'form-row-last' ); $postcodefield.insertBefore( $cityfield ); } else { // Default $postcodefield.attr( 'class', $postcodefield.attr( 'data-o_class' ) ); $cityfield.attr( 'class', $cityfield.attr( 'data-o_class' ) ); $statefield.attr( 'class', $statefield.attr( 'data-o_class' ) ); $postcodefield.insertAfter( $statefield ); } // Handle locale fields var locale_fields = $.parseJSON( wc_address_i18n_params.locale_fields ); $.each( locale_fields, function( key, value ) { var field = thisform.find( value ); if ( thislocale[ key ] ) { if ( thislocale[ key ].label ) { field.find( 'label' ).html( thislocale[ key ].label ); } if ( thislocale[ key ].placeholder ) { field.find( 'input' ).attr( 'placeholder', thislocale[ key ].placeholder ); } field_is_required( field, false ); if ( typeof thislocale[ key ].required === 'undefined' && locale['default'][ key ].required === true ) { field_is_required( field, true ); } else if ( thislocale[ key ].required === true ) { field_is_required( field, true ); } if ( key !== 'state' ) { if ( thislocale[ key ].hidden === true ) { field.hide().find( 'input' ).val( '' ); } else { field.show(); } } } else if ( locale['default'][ key ] ) { if ( 'state' !== key ) { if ( typeof locale['default'][ key ].hidden === 'undefined' || locale['default'][ key ].hidden === false ) { field.show(); } else if ( locale['default'][ key ].hidden === true ) { field.hide().find( 'input' ).val( '' ); } } if ( 'postcode' === key || 'city' === key || 'state' === key ) { if ( locale['default'][ key ].label ) { field.find( 'label' ).html( locale['default'][ key ].label ); } if ( locale['default'][ key ].placeholder ) { field.find( 'input' ).attr( 'placeholder', locale['default'][ key ].placeholder ); } } if ( locale['default'][ key ].required === true ) { if ( field.find( 'label abbr' ).length === 0 ) { field_is_required( field, true ); } } } }); }); }); assets/js/frontend/geolocation.min.js000066600000002207152133032050013723 0ustar00jQuery(function(a){var b=window.location.toString(),c=function(){wc_geolocation_params.hash&&a('a[href^="'+wc_geolocation_params.home_url+'"]:not(a[href*="v="]), a[href^="/"]:not(a[href*="v="])').each(function(){var b=a(this),c=b.attr("href");c.indexOf("?")>0?b.attr("href",c+"&v="+wc_geolocation_params.hash):b.attr("href",c+"?v="+wc_geolocation_params.hash)})},d=function(a){b=b.indexOf("?v=")>0||b.indexOf("&v=")>0?b.replace(/v=[^&]+/,"v="+a):b.indexOf("?")>0?b+"&v="+a:b+"?v="+a,window.location=b},e={url:wc_geolocation_params.wc_ajax_url.toString().replace("%%endpoint%%","get_customer_location"),type:"GET",success:function(a){a.success&&a.data.hash&&a.data.hash!==wc_geolocation_params.hash&&d(a.data.hash)}};"1"===wc_geolocation_params.is_available&&(a.ajax(e),a("form").each(function(){var b=a(this),c=b.attr("method");if(c&&"get"===c.toLowerCase())b.append('');else{var d=b.attr("action");d&&(d.indexOf("?")>0?b.attr("action",d+"&v="+wc_geolocation_params.hash):b.attr("action",d+"?v="+wc_geolocation_params.hash))}}),c()),a(document.body).on("added_to_cart",function(){c()})});assets/js/frontend/lost-password.js000066600000000236152133032050013457 0ustar00jQuery( function( $ ) { $( '.lost_reset_password' ).on( 'submit', function () { $( 'input[type="submit"]', this ).attr( 'disabled', 'disabled' ); }); }); assets/js/frontend/geolocation.js000066600000004057152133032050013146 0ustar00/*global wc_geolocation_params */ jQuery( function( $ ) { var this_page = window.location.toString(); var $append_hashes = function() { if ( wc_geolocation_params.hash ) { $( 'a[href^="' + wc_geolocation_params.home_url + '"]:not(a[href*="v="]), a[href^="/"]:not(a[href*="v="])' ).each( function() { var $this = $( this ); var href = $this.attr( 'href' ); if ( href.indexOf( '?' ) > 0 ) { $this.attr( 'href', href + '&v=' + wc_geolocation_params.hash ); } else { $this.attr( 'href', href + '?v=' + wc_geolocation_params.hash ); } }); } }; var $geolocation_redirect = function( hash ) { if ( this_page.indexOf( '?v=' ) > 0 || this_page.indexOf( '&v=' ) > 0 ) { this_page = this_page.replace( /v=[^&]+/, 'v=' + hash ); } else if ( this_page.indexOf( '?' ) > 0 ) { this_page = this_page + '&v=' + hash; } else { this_page = this_page + '?v=' + hash; } window.location = this_page; }; var $geolocate_customer = { url: wc_geolocation_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'get_customer_location' ), type: 'GET', success: function( response ) { if ( response.success && response.data.hash && response.data.hash !== wc_geolocation_params.hash ) { $geolocation_redirect( response.data.hash ); } } }; if ( '1' === wc_geolocation_params.is_available ) { $.ajax( $geolocate_customer ); // Support form elements $( 'form' ).each( function() { var $this = $( this ); var method = $this.attr( 'method' ); if ( method && 'get' === method.toLowerCase() ) { $this.append( '' ); } else { var href = $this.attr( 'action' ); if ( href ) { if ( href.indexOf( '?' ) > 0 ) { $this.attr( 'action', href + '&v=' + wc_geolocation_params.hash ); } else { $this.attr( 'action', href + '?v=' + wc_geolocation_params.hash ); } } } }); // Append hashes on load $append_hashes(); } $( document.body ).on( 'added_to_cart', function() { $append_hashes(); }); }); assets/js/frontend/cart-fragments.min.js000066600000004541152133032050014340 0ustar00jQuery(function(a){function b(){e&&sessionStorage.setItem("wc_cart_created",(new Date).getTime())}function c(a){e&&(localStorage.setItem(f,a),sessionStorage.setItem(f,a))}function d(){a.ajax(g)}if("undefined"==typeof wc_cart_fragments_params)return!1;var e,f=wc_cart_fragments_params.ajax_url.toString()+"-wc_cart_hash";try{e="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(a){e=!1}var g={url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_refreshed_fragments"),type:"POST",success:function(d){d&&d.fragments&&(a.each(d.fragments,function(b,c){a(b).replaceWith(c)}),e&&(sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(d.fragments)),c(d.cart_hash),d.cart_hash&&b()),a(document.body).trigger("wc_fragments_refreshed"))}};if(e){var h=null,i=864e5;a(document.body).bind("wc_fragment_refresh updated_wc_div",function(){d()}),a(document.body).bind("added_to_cart",function(a,d,e){var g=sessionStorage.getItem(f);null!==g&&void 0!==g&&""!==g||b(),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(d)),c(e)}),a(document.body).bind("wc_fragments_refreshed",function(){clearTimeout(h),h=setTimeout(d,i)}),a(window).on("storage onstorage",function(a){f===a.originalEvent.key&&localStorage.getItem(f)!==sessionStorage.getItem(f)&&d()});try{var j=a.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),k=sessionStorage.getItem(f),l=a.cookie("woocommerce_cart_hash"),m=sessionStorage.getItem("wc_cart_created");if(null!==k&&void 0!==k&&""!==k||(k=""),null!==l&&void 0!==l&&""!==l||(l=""),k&&(null===m||void 0===m||""===m))throw"No cart_created";if(m){var n=1*m+i,o=(new Date).getTime();if(n0?a(".hide_cart_widget_if_empty").closest(".widget_shopping_cart").show():a(".hide_cart_widget_if_empty").closest(".widget_shopping_cart").hide(),a(document.body).bind("adding_to_cart",function(){a(".hide_cart_widget_if_empty").closest(".widget_shopping_cart").show()})});assets/js/frontend/lost-password.min.js000066600000000203152133032050014233 0ustar00jQuery(function(a){a(".lost_reset_password").on("submit",function(){a('input[type="submit"]',this).attr("disabled","disabled")})});assets/js/frontend/country-select.min.js000066600000006167152133032050014411 0ustar00jQuery(function(a){function b(){var a={formatMatches:function(a){return 1===a?wc_country_select_params.i18n_matches_1:wc_country_select_params.i18n_matches_n.replace("%qty%",a)},formatNoMatches:function(){return wc_country_select_params.i18n_no_matches},formatAjaxError:function(){return wc_country_select_params.i18n_ajax_error},formatInputTooShort:function(a,b){var c=b-a.length;return 1===c?wc_country_select_params.i18n_input_too_short_1:wc_country_select_params.i18n_input_too_short_n.replace("%qty%",c)},formatInputTooLong:function(a,b){var c=a.length-b;return 1===c?wc_country_select_params.i18n_input_too_long_1:wc_country_select_params.i18n_input_too_long_n.replace("%qty%",c)},formatSelectionTooBig:function(a){return 1===a?wc_country_select_params.i18n_selection_too_long_1:wc_country_select_params.i18n_selection_too_long_n.replace("%qty%",a)},formatLoadMore:function(){return wc_country_select_params.i18n_load_more},formatSearching:function(){return wc_country_select_params.i18n_searching}};return a}if("undefined"==typeof wc_country_select_params)return!1;if(a().select2){var c=function(){a("select.country_select:visible, select.state_select:visible").each(function(){var c=a.extend({placeholderOption:"first",width:"100%"},b());a(this).select2(c)})};c(),a(document.body).bind("country_to_state_changed",function(){c()})}var d=wc_country_select_params.countries.replace(/"/g,'"'),e=a.parseJSON(d);a(document.body).on("change","select.country_to_state, input.country_to_state",function(){var b=a(this).closest(".woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator");b.length||(b=a(this).closest(".form-row").parent());var c=a(this).val(),d=b.find("#billing_state, #shipping_state, #calc_shipping_state"),f=d.parent(),g=d.attr("name"),h=d.attr("id"),i=d.val(),j=d.attr("placeholder")||d.attr("data-placeholder")||"";if(e[c])if(a.isEmptyObject(e[c]))d.parent().hide().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[c,b]);else{var k="",l=e[c];for(var m in l)l.hasOwnProperty(m)&&(k=k+'");d.parent().show(),d.is("input")&&(d.replaceWith(''),d=b.find("#billing_state, #shipping_state, #calc_shipping_state")),d.html('"+k),d.val(i).change(),a(document.body).trigger("country_to_state_changed",[c,b])}else d.is("select")?(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[c,b])):d.is('input[type="hidden"]')&&(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[c,b]));a(document.body).trigger("country_to_state_changing",[c,b])}),a(function(){a(":input.country_to_state").change()})});assets/js/frontend/password-strength-meter.js000066600000006314152133032050015451 0ustar00/* global wp, pwsL10n, wc_password_strength_meter_params */ jQuery( function( $ ) { /** * Password Strength Meter class. */ var wc_password_strength_meter = { /** * Initialize strength meter actions. */ init: function() { $( document.body ) .on( 'keyup change', 'form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1', this.strengthMeter ); $( 'form.checkout #createaccount' ).change(); }, /** * Strength Meter. */ strengthMeter: function() { var wrapper = $( 'form.register, form.checkout, form.edit-account, form.lost_reset_password' ), submit = $( 'input[type="submit"]', wrapper ), field = $( '#reg_password, #account_password, #password_1', wrapper ), strength = 1; wc_password_strength_meter.includeMeter( wrapper, field ); strength = wc_password_strength_meter.checkPasswordStrength( wrapper, field ); if ( strength < wc_password_strength_meter_params.min_password_strength && ! wrapper.is( 'form.checkout' ) ) { submit.attr( 'disabled', 'disabled' ).addClass( 'disabled' ); } else { submit.removeAttr( 'disabled', 'disabled' ).removeClass( 'disabled' ); } }, /** * Include meter HTML. * * @param {Object} wrapper * @param {Object} field */ includeMeter: function( wrapper, field ) { var meter = wrapper.find( '.woocommerce-password-strength' ); if ( '' === field.val() ) { meter.remove(); $( document.body ).trigger( 'wc-password-strength-removed' ); } else if ( 0 === meter.length ) { field.after( '
    ' ); $( document.body ).trigger( 'wc-password-strength-added' ); } }, /** * Check password strength. * * @param {Object} field * * @return {Int} */ checkPasswordStrength: function( wrapper, field ) { var meter = wrapper.find( '.woocommerce-password-strength' ); var hint = wrapper.find( '.woocommerce-password-hint' ); var hint_html = '' + wc_password_strength_meter_params.i18n_password_hint + ''; var strength = wp.passwordStrength.meter( field.val(), wp.passwordStrength.userInputBlacklist() ); var error = ''; // Reset meter.removeClass( 'short bad good strong' ); hint.remove(); // Error to append if ( strength < wc_password_strength_meter_params.min_password_strength ) { error = ' - ' + wc_password_strength_meter_params.i18n_password_error; } switch ( strength ) { case 0 : meter.addClass( 'short' ).html( pwsL10n['short'] + error ); meter.after( hint_html ); break; case 1 : meter.addClass( 'bad' ).html( pwsL10n.bad + error ); meter.after( hint_html ); break; case 2 : meter.addClass( 'bad' ).html( pwsL10n.bad + error ); meter.after( hint_html ); break; case 3 : meter.addClass( 'good' ).html( pwsL10n.good + error ); break; case 4 : meter.addClass( 'strong' ).html( pwsL10n.strong + error ); break; case 5 : meter.addClass( 'short' ).html( pwsL10n.mismatch ); break; } return strength; } }; wc_password_strength_meter.init(); }); assets/js/frontend/credit-card-form.min.js000066600000001006152133032050014536 0ustar00jQuery(function(a){a(".wc-credit-card-form-card-number").payment("formatCardNumber"),a(".wc-credit-card-form-card-expiry").payment("formatCardExpiry"),a(".wc-credit-card-form-card-cvc").payment("formatCardCVC"),a(document.body).on("updated_checkout wc-credit-card-form-init",function(){a(".wc-credit-card-form-card-number").payment("formatCardNumber"),a(".wc-credit-card-form-card-expiry").payment("formatCardExpiry"),a(".wc-credit-card-form-card-cvc").payment("formatCardCVC")}).trigger("wc-credit-card-form-init")});assets/js/frontend/cart.js000066600000033667152133032050011605 0ustar00/* global wc_cart_params */ jQuery( function( $ ) { // wc_cart_params is required to continue, ensure the object exists if ( typeof wc_cart_params === 'undefined' ) { return false; } // Utility functions for the file. /** * Gets a url for a given AJAX endpoint. * * @param {String} endpoint The AJAX Endpoint * @return {String} The URL to use for the request */ var get_url = function( endpoint ) { return wc_cart_params.wc_ajax_url.toString().replace( '%%endpoint%%', endpoint ); }; /** * Check if a node is blocked for processing. * * @param {JQuery Object} $node * @return {bool} True if the DOM Element is UI Blocked, false if not. */ var is_blocked = function( $node ) { return $node.is( '.processing' ) || $node.parents( '.processing' ).length; }; /** * Block a node visually for processing. * * @param {JQuery Object} $node */ var block = function( $node ) { if ( ! is_blocked( $node ) ) { $node.addClass( 'processing' ).block( { message: null, overlayCSS: { background: '#fff', opacity: 0.6 } } ); } }; /** * Unblock a node after processing is complete. * * @param {JQuery Object} $node */ var unblock = function( $node ) { $node.removeClass( 'processing' ).unblock(); }; /** * Update the .woocommerce div with a string of html. * * @param {String} html_str The HTML string with which to replace the div. */ var update_wc_div = function( html_str ) { var $html = $.parseHTML( html_str ); var $new_form = $( '.shop_table.cart', $html ).closest( 'form' ); var $new_totals = $( '.cart_totals', $html ); // Error message collection var $error = $( '.woocommerce-error', $html ); var $message = $( '.woocommerce-message', $html ); var $info = $( '.woocommerce-info', $html ); // Remove errors $( '.woocommerce-error, .woocommerce-message, .woocommerce-info' ).remove(); if ( $new_form.length === 0 ) { // If the checkout is also displayed on this page, trigger reload instead. if ( $( '.woocommerce-checkout' ).length ) { window.location.reload(); return; } // No items to display now! Replace all cart content. var $cart_html = $( '.cart-empty', $html ).closest( '.woocommerce' ); $( '.shop_table.cart' ).closest( '.woocommerce' ).replaceWith( $cart_html ); // Display errors if ( $error.length > 0 ) { show_notice( $error, $( '.cart-empty' ).closest( '.woocommerce' ) ); } if ( $message.length > 0 ) { show_notice( $message, $( '.cart-empty' ).closest( '.woocommerce' ) ); } if ( $info.length > 0 ) { show_notice( $info, $( '.cart-empty' ).closest( '.woocommerce' ) ); } } else { // If the checkout is also displayed on this page, trigger update event. if ( $( '.woocommerce-checkout' ).length ) { $( document.body ).trigger( 'update_checkout' ); } $( '.shop_table.cart' ).closest( 'form' ).replaceWith( $new_form ); $( '.shop_table.cart' ).closest( 'form' ).find( 'input[name="update_cart"]' ).prop( 'disabled', true ); if ( $error.length > 0 ) { show_notice( $error ); } if ( $message.length > 0 ) { show_notice( $message ); } if ( $info.length > 0 ) { show_notice( $info ); } update_cart_totals_div( $new_totals ); } $( document.body ).trigger( 'updated_wc_div' ); }; /** * Update the .cart_totals div with a string of html. * * @param {String} html_str The HTML string with which to replace the div. */ var update_cart_totals_div = function( html_str ) { $( '.cart_totals' ).replaceWith( html_str ); $( document.body ).trigger( 'updated_cart_totals' ); }; /** * Clear previous notices and shows new one above form. * * @param {Object} The Notice HTML Element in string or object form. */ var show_notice = function( html_element, $target ) { if ( ! $target ) { $target = $( '.shop_table.cart' ).closest( 'form' ); } $target.before( html_element ); }; /** * Object to handle AJAX calls for cart shipping changes. */ var cart_shipping = { /** * Initialize event handlers and UI state. */ init: function( cart ) { this.cart = cart; this.toggle_shipping = this.toggle_shipping.bind( this ); this.shipping_method_selected = this.shipping_method_selected.bind( this ); this.shipping_calculator_submit = this.shipping_calculator_submit.bind( this ); $( document ).on( 'click', '.shipping-calculator-button', this.toggle_shipping ); $( document ).on( 'change', 'select.shipping_method, input[name^=shipping_method]', this.shipping_method_selected ); $( document ).on( 'submit', 'form.woocommerce-shipping-calculator', this.shipping_calculator_submit ); $( '.shipping-calculator-form' ).hide(); }, /** * Toggle Shipping Calculator panel */ toggle_shipping: function() { $( '.shipping-calculator-form' ).slideToggle( 'slow' ); return false; }, /** * Handles when a shipping method is selected. * * @param {Object} evt The JQuery event. */ shipping_method_selected: function( evt ) { var target = evt.currentTarget; var shipping_methods = {}; $( 'select.shipping_method, input[name^=shipping_method][type=radio]:checked, input[name^=shipping_method][type=hidden]' ).each( function() { shipping_methods[ $( target ).data( 'index' ) ] = $( target ).val(); } ); block( $( 'div.cart_totals' ) ); var data = { security: wc_cart_params.update_shipping_method_nonce, shipping_method: shipping_methods }; $.ajax( { type: 'post', url: get_url( 'update_shipping_method' ), data: data, dataType: 'html', success: function( response ) { update_cart_totals_div( response ); }, complete: function() { unblock( $( 'div.cart_totals' ) ); $( document.body ).trigger( 'updated_shipping_method' ); } } ); }, /** * Handles a shipping calculator form submit. * * @param {Object} evt The JQuery event. */ shipping_calculator_submit: function( evt ) { evt.preventDefault(); var $form = $( evt.currentTarget ); block( $( 'div.cart_totals' ) ); block( $form ); // Provide the submit button value because wc-form-handler expects it. $( '' ).attr( 'type', 'hidden' ) .attr( 'name', 'calc_shipping' ) .attr( 'value', 'x' ) .appendTo( $form ); // Make call to actual form post URL. $.ajax( { type: $form.attr( 'method' ), url: $form.attr( 'action' ), data: $form.serialize(), dataType: 'html', success: function( response ) { update_wc_div( response ); }, complete: function() { unblock( $form ); unblock( $( 'div.cart_totals' ) ); } } ); } }; /** * Object to handle cart UI. */ var cart = { /** * Initialize cart UI events. */ init: function() { this.update_cart_totals = this.update_cart_totals.bind( this ); this.input_keypress = this.input_keypress.bind( this ); this.cart_submit = this.cart_submit.bind( this ); this.submit_click = this.submit_click.bind( this ); this.apply_coupon = this.apply_coupon.bind( this ); this.remove_coupon_clicked = this.remove_coupon_clicked.bind( this ); this.quantity_update = this.quantity_update.bind( this ); this.item_remove_clicked = this.item_remove_clicked.bind( this ); this.update_cart = this.update_cart.bind( this ); $( document ).on( 'wc_update_cart', this.update_cart ); $( document ).on( 'click', 'div.woocommerce > form input[type=submit]', this.submit_click ); $( document ).on( 'keypress', 'div.woocommerce > form input[type=number]', this.input_keypress ); $( document ).on( 'submit', 'div.woocommerce:not(.widget_product_search) > form', this.cart_submit ); $( document ).on( 'click', 'a.woocommerce-remove-coupon', this.remove_coupon_clicked ); $( document ).on( 'click', 'td.product-remove > a', this.item_remove_clicked ); $( document ).on( 'change input', 'div.woocommerce > form .cart_item :input', this.input_changed ); $( 'div.woocommerce > form input[name="update_cart"]' ).prop( 'disabled', true ); }, /** * After an input is changed, enable the update cart button. */ input_changed: function() { $( 'div.woocommerce > form input[name="update_cart"]' ).prop( 'disabled', false ); }, /** * Update entire cart via ajax. */ update_cart: function() { var $form = $( '.shop_table.cart' ).closest( 'form' ); block( $form ); block( $( 'div.cart_totals' ) ); // Make call to actual form post URL. $.ajax( { type: $form.attr( 'method' ), url: $form.attr( 'action' ), data: $form.serialize(), dataType: 'html', success: function( response ) { update_wc_div( response ); }, complete: function() { unblock( $form ); unblock( $( 'div.cart_totals' ) ); } } ); }, /** * Update the cart after something has changed. */ update_cart_totals: function() { block( $( 'div.cart_totals' ) ); $.ajax( { url: get_url( 'get_cart_totals' ), dataType: 'html', success: function( response ) { update_cart_totals_div( response ); }, complete: function() { unblock( $( 'div.cart_totals' ) ); } } ); }, /** * Handle the key for quantity fields. * * @param {Object} evt The JQuery event * * For IE, if you hit enter on a quantity field, it makes the * document.activeElement the first submit button it finds. * For us, that is the Apply Coupon button. This is required * to catch the event before that happens. */ input_keypress: function( evt ) { // Catch the enter key and don't let it submit the form. if ( 13 === evt.keyCode ) { evt.preventDefault(); this.cart_submit( evt ); } }, /** * Handle cart form submit and route to correct logic. * * @param {Object} evt The JQuery event */ cart_submit: function( evt ) { var $submit = $( document.activeElement ); var $clicked = $( 'input[type=submit][clicked=true]' ); var $form = $( evt.currentTarget ); // For submit events, currentTarget is form. // For keypress events, currentTarget is input. if ( ! $form.is( 'form' ) ) { $form = $( evt.currentTarget ).parents( 'form' ); } if ( 0 === $form.find( '.shop_table.cart' ).length ) { return; } if ( is_blocked( $form ) ) { return false; } if ( $clicked.is( '[name="update_cart"]' ) || $submit.is( 'input.qty' ) ) { evt.preventDefault(); this.quantity_update( $form ); } else if ( $clicked.is( '[name="apply_coupon"]' ) || $submit.is( '#coupon_code' ) ) { evt.preventDefault(); this.apply_coupon( $form ); } }, /** * Special handling to identify which submit button was clicked. * * @param {Object} evt The JQuery event */ submit_click: function( evt ) { $( 'input[type=submit]', $( evt.target ).parents( 'form' ) ).removeAttr( 'clicked' ); $( evt.target ).attr( 'clicked', 'true' ); }, /** * Apply Coupon code * * @param {JQuery Object} $form The cart form. */ apply_coupon: function( $form ) { block( $form ); var cart = this; var $text_field = $( '#coupon_code' ); var coupon_code = $text_field.val(); var data = { security: wc_cart_params.apply_coupon_nonce, coupon_code: coupon_code }; $.ajax( { type: 'POST', url: get_url( 'apply_coupon' ), data: data, dataType: 'html', success: function( response ) { $( '.woocommerce-error, .woocommerce-message, .woocommerce-info' ).remove(); show_notice( response ); $( document.body ).trigger( 'applied_coupon' ); }, complete: function() { unblock( $form ); $text_field.val( '' ); cart.update_cart_totals(); } } ); }, /** * Handle when a remove coupon link is clicked. * * @param {Object} evt The JQuery event */ remove_coupon_clicked: function( evt ) { evt.preventDefault(); var cart = this; var $tr = $( evt.currentTarget ).parents( 'tr' ); var coupon = $( evt.currentTarget ).attr( 'data-coupon' ); block( $tr.parents( 'table' ) ); var data = { security: wc_cart_params.remove_coupon_nonce, coupon: coupon }; $.ajax( { type: 'POST', url: get_url( 'remove_coupon' ), data: data, dataType: 'html', success: function( response ) { $( '.woocommerce-error, .woocommerce-message, .woocommerce-info' ).remove(); show_notice( response ); $( document.body ).trigger( 'removed_coupon' ); unblock( $tr.parents( 'table' ) ); }, complete: function() { cart.update_cart_totals(); } } ); }, /** * Handle a cart Quantity Update * * @param {JQuery Object} $form The cart form. */ quantity_update: function( $form ) { // Provide the submit button value because wc-form-handler expects it. $( '' ).attr( 'type', 'hidden' ) .attr( 'name', 'update_cart' ) .attr( 'value', 'Update Cart' ) .appendTo( $form ); block( $form ); block( $( 'div.cart_totals' ) ); // Make call to actual form post URL. $.ajax( { type: $form.attr( 'method' ), url: $form.attr( 'action' ), data: $form.serialize(), dataType: 'html', success: update_wc_div, complete: function() { unblock( $form ); unblock( $( 'div.cart_totals' ) ); } } ); }, /** * Handle when a remove item link is clicked. * * @param {Object} evt The JQuery event */ item_remove_clicked: function( evt ) { evt.preventDefault(); var $a = $( evt.currentTarget ); var $form = $a.parents( 'form' ); block( $form ); block( $( 'div.cart_totals' ) ); $.ajax( { type: 'GET', url: $a.attr( 'href' ), dataType: 'html', success: update_wc_div, complete: function() { unblock( $form ); unblock( $( 'div.cart_totals' ) ); } } ); } }; cart_shipping.init( cart ); cart.init(); } ); assets/js/frontend/tokenization-form.min.js000066600000002614152133032050015101 0ustar00!function(a){a(function(){var b=function(){function b(b){var c=a(b),d=c.closest(".payment_box"),e=this;this.onTokenChange=function(){"new"===a(this).val()?(e.showForm(),e.showSaveNewCheckbox()):(e.hideForm(),e.hideSaveNewCheckbox())},this.onCreateAccountChange=function(){a(this).is(":checked")?e.showSaveNewCheckbox():e.hideSaveNewCheckbox()},this.onDisplay=function(){0===a(":input.woocommerce-SavedPaymentMethods-tokenInput:checked",c).length&&a(":input.woocommerce-SavedPaymentMethods-tokenInput:last",c).prop("checked",!0),0===c.data("count")&&a(".woocommerce-SavedPaymentMethods-new",c).hide(),a(":input.woocommerce-SavedPaymentMethods-tokenInput:checked",c).trigger("change"),a("input#createaccount").length&&!a("input#createaccount").is(":checked")&&e.hideSaveNewCheckbox()},this.hideForm=function(){a(".wc-payment-form",d).hide()},this.showForm=function(){a(".wc-payment-form",d).show()},this.showSaveNewCheckbox=function(){a(".woocommerce-SavedPaymentMethods-saveNew",d).show()},this.hideSaveNewCheckbox=function(){a(".woocommerce-SavedPaymentMethods-saveNew",d).hide()},a(":input.woocommerce-SavedPaymentMethods-tokenInput",c).change(this.onTokenChange),a("input#createaccount").change(this.onCreateAccountChange),this.onDisplay()}return b}();a(document.body).on("updated_checkout wc-credit-card-form-init",function(){var c=a("ul.woocommerce-SavedPaymentMethods");c.each(function(){new b(this)})})})}(jQuery);assets/js/frontend/credit-card-form.js000066600000001114152133032050013754 0ustar00jQuery( function( $ ) { $( '.wc-credit-card-form-card-number' ).payment( 'formatCardNumber' ); $( '.wc-credit-card-form-card-expiry' ).payment( 'formatCardExpiry' ); $( '.wc-credit-card-form-card-cvc' ).payment( 'formatCardCVC' ); $( document.body ) .on( 'updated_checkout wc-credit-card-form-init', function() { $( '.wc-credit-card-form-card-number' ).payment( 'formatCardNumber' ); $( '.wc-credit-card-form-card-expiry' ).payment( 'formatCardExpiry' ); $( '.wc-credit-card-form-card-cvc' ).payment( 'formatCardCVC' ); }) .trigger( 'wc-credit-card-form-init' ); } ); assets/js/frontend/price-slider.min.js000066600000004126152133032050014004 0ustar00jQuery(function(a){if("undefined"==typeof woocommerce_price_slider_params)return!1;a("input#min_price, input#max_price").hide(),a(".price_slider, .price_label").show();var b=a(".price_slider_amount #min_price").data("min"),c=a(".price_slider_amount #max_price").data("max"),d=parseInt(b,10),e=parseInt(c,10);woocommerce_price_slider_params.min_price&&(d=parseInt(woocommerce_price_slider_params.min_price,10)),woocommerce_price_slider_params.max_price&&(e=parseInt(woocommerce_price_slider_params.max_price,10)),a(document.body).bind("price_slider_create price_slider_slide",function(b,c,d){"left"===woocommerce_price_slider_params.currency_pos?(a(".price_slider_amount span.from").html(woocommerce_price_slider_params.currency_symbol+c),a(".price_slider_amount span.to").html(woocommerce_price_slider_params.currency_symbol+d)):"left_space"===woocommerce_price_slider_params.currency_pos?(a(".price_slider_amount span.from").html(woocommerce_price_slider_params.currency_symbol+" "+c),a(".price_slider_amount span.to").html(woocommerce_price_slider_params.currency_symbol+" "+d)):"right"===woocommerce_price_slider_params.currency_pos?(a(".price_slider_amount span.from").html(c+woocommerce_price_slider_params.currency_symbol),a(".price_slider_amount span.to").html(d+woocommerce_price_slider_params.currency_symbol)):"right_space"===woocommerce_price_slider_params.currency_pos&&(a(".price_slider_amount span.from").html(c+" "+woocommerce_price_slider_params.currency_symbol),a(".price_slider_amount span.to").html(d+" "+woocommerce_price_slider_params.currency_symbol)),a(document.body).trigger("price_slider_updated",[c,d])}),a(".price_slider").slider({range:!0,animate:!0,min:b,max:c,values:[d,e],create:function(){a(".price_slider_amount #min_price").val(d),a(".price_slider_amount #max_price").val(e),a(document.body).trigger("price_slider_create",[d,e])},slide:function(b,c){a("input#min_price").val(c.values[0]),a("input#max_price").val(c.values[1]),a(document.body).trigger("price_slider_slide",[c.values[0],c.values[1]])},change:function(b,c){a(document.body).trigger("price_slider_change",[c.values[0],c.values[1]])}})});assets/js/frontend/cart.min.js000066600000015330152133032050012352 0ustar00jQuery(function(a){if("undefined"==typeof wc_cart_params)return!1;var b=function(a){return wc_cart_params.wc_ajax_url.toString().replace("%%endpoint%%",a)},c=function(a){return a.is(".processing")||a.parents(".processing").length},d=function(a){c(a)||a.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},e=function(a){a.removeClass("processing").unblock()},f=function(b){var c=a.parseHTML(b),d=a(".shop_table.cart",c).closest("form"),e=a(".cart_totals",c),f=a(".woocommerce-error",c),i=a(".woocommerce-message",c),j=a(".woocommerce-info",c);if(a(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),0===d.length){if(a(".woocommerce-checkout").length)return void window.location.reload();var k=a(".cart-empty",c).closest(".woocommerce");a(".shop_table.cart").closest(".woocommerce").replaceWith(k),f.length>0&&h(f,a(".cart-empty").closest(".woocommerce")),i.length>0&&h(i,a(".cart-empty").closest(".woocommerce")),j.length>0&&h(j,a(".cart-empty").closest(".woocommerce"))}else a(".woocommerce-checkout").length&&a(document.body).trigger("update_checkout"),a(".shop_table.cart").closest("form").replaceWith(d),a(".shop_table.cart").closest("form").find('input[name="update_cart"]').prop("disabled",!0),f.length>0&&h(f),i.length>0&&h(i),j.length>0&&h(j),g(e);a(document.body).trigger("updated_wc_div")},g=function(b){a(".cart_totals").replaceWith(b),a(document.body).trigger("updated_cart_totals")},h=function(b,c){c||(c=a(".shop_table.cart").closest("form")),c.before(b)},i={init:function(b){this.cart=b,this.toggle_shipping=this.toggle_shipping.bind(this),this.shipping_method_selected=this.shipping_method_selected.bind(this),this.shipping_calculator_submit=this.shipping_calculator_submit.bind(this),a(document).on("click",".shipping-calculator-button",this.toggle_shipping),a(document).on("change","select.shipping_method, input[name^=shipping_method]",this.shipping_method_selected),a(document).on("submit","form.woocommerce-shipping-calculator",this.shipping_calculator_submit),a(".shipping-calculator-form").hide()},toggle_shipping:function(){return a(".shipping-calculator-form").slideToggle("slow"),!1},shipping_method_selected:function(c){var f=c.currentTarget,h={};a("select.shipping_method, input[name^=shipping_method][type=radio]:checked, input[name^=shipping_method][type=hidden]").each(function(){h[a(f).data("index")]=a(f).val()}),d(a("div.cart_totals"));var i={security:wc_cart_params.update_shipping_method_nonce,shipping_method:h};a.ajax({type:"post",url:b("update_shipping_method"),data:i,dataType:"html",success:function(a){g(a)},complete:function(){e(a("div.cart_totals")),a(document.body).trigger("updated_shipping_method")}})},shipping_calculator_submit:function(b){b.preventDefault();var c=a(b.currentTarget);d(a("div.cart_totals")),d(c),a("").attr("type","hidden").attr("name","calc_shipping").attr("value","x").appendTo(c),a.ajax({type:c.attr("method"),url:c.attr("action"),data:c.serialize(),dataType:"html",success:function(a){f(a)},complete:function(){e(c),e(a("div.cart_totals"))}})}},j={init:function(){this.update_cart_totals=this.update_cart_totals.bind(this),this.input_keypress=this.input_keypress.bind(this),this.cart_submit=this.cart_submit.bind(this),this.submit_click=this.submit_click.bind(this),this.apply_coupon=this.apply_coupon.bind(this),this.remove_coupon_clicked=this.remove_coupon_clicked.bind(this),this.quantity_update=this.quantity_update.bind(this),this.item_remove_clicked=this.item_remove_clicked.bind(this),this.update_cart=this.update_cart.bind(this),a(document).on("wc_update_cart",this.update_cart),a(document).on("click","div.woocommerce > form input[type=submit]",this.submit_click),a(document).on("keypress","div.woocommerce > form input[type=number]",this.input_keypress),a(document).on("submit","div.woocommerce:not(.widget_product_search) > form",this.cart_submit),a(document).on("click","a.woocommerce-remove-coupon",this.remove_coupon_clicked),a(document).on("click","td.product-remove > a",this.item_remove_clicked),a(document).on("change input","div.woocommerce > form .cart_item :input",this.input_changed),a('div.woocommerce > form input[name="update_cart"]').prop("disabled",!0)},input_changed:function(){a('div.woocommerce > form input[name="update_cart"]').prop("disabled",!1)},update_cart:function(){var b=a(".shop_table.cart").closest("form");d(b),d(a("div.cart_totals")),a.ajax({type:b.attr("method"),url:b.attr("action"),data:b.serialize(),dataType:"html",success:function(a){f(a)},complete:function(){e(b),e(a("div.cart_totals"))}})},update_cart_totals:function(){d(a("div.cart_totals")),a.ajax({url:b("get_cart_totals"),dataType:"html",success:function(a){g(a)},complete:function(){e(a("div.cart_totals"))}})},input_keypress:function(a){13===a.keyCode&&(a.preventDefault(),this.cart_submit(a))},cart_submit:function(b){var d=a(document.activeElement),e=a("input[type=submit][clicked=true]"),f=a(b.currentTarget);if(f.is("form")||(f=a(b.currentTarget).parents("form")),0!==f.find(".shop_table.cart").length)return!c(f)&&void(e.is('[name="update_cart"]')||d.is("input.qty")?(b.preventDefault(),this.quantity_update(f)):(e.is('[name="apply_coupon"]')||d.is("#coupon_code"))&&(b.preventDefault(),this.apply_coupon(f)))},submit_click:function(b){a("input[type=submit]",a(b.target).parents("form")).removeAttr("clicked"),a(b.target).attr("clicked","true")},apply_coupon:function(c){d(c);var f=this,g=a("#coupon_code"),i=g.val(),j={security:wc_cart_params.apply_coupon_nonce,coupon_code:i};a.ajax({type:"POST",url:b("apply_coupon"),data:j,dataType:"html",success:function(b){a(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),h(b),a(document.body).trigger("applied_coupon")},complete:function(){e(c),g.val(""),f.update_cart_totals()}})},remove_coupon_clicked:function(c){c.preventDefault();var f=this,g=a(c.currentTarget).parents("tr"),i=a(c.currentTarget).attr("data-coupon");d(g.parents("table"));var j={security:wc_cart_params.remove_coupon_nonce,coupon:i};a.ajax({type:"POST",url:b("remove_coupon"),data:j,dataType:"html",success:function(b){a(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),h(b),a(document.body).trigger("removed_coupon"),e(g.parents("table"))},complete:function(){f.update_cart_totals()}})},quantity_update:function(b){a("").attr("type","hidden").attr("name","update_cart").attr("value","Update Cart").appendTo(b),d(b),d(a("div.cart_totals")),a.ajax({type:b.attr("method"),url:b.attr("action"),data:b.serialize(),dataType:"html",success:f,complete:function(){e(b),e(a("div.cart_totals"))}})},item_remove_clicked:function(b){b.preventDefault();var c=a(b.currentTarget),g=c.parents("form");d(g),d(a("div.cart_totals")),a.ajax({type:"GET",url:c.attr("href"),dataType:"html",success:f,complete:function(){e(g),e(a("div.cart_totals"))}})}};i.init(j),j.init()});assets/js/frontend/checkout.min.js000066600000026216152133032050013233 0ustar00jQuery(function(a){if("undefined"==typeof wc_checkout_params)return!1;a.blockUI.defaults.overlayCSS.cursor="default";var b={updateTimer:!1,dirtyInput:!1,xhr:!1,$order_review:a("#order_review"),$checkout_form:a("form.checkout"),init:function(){a(document.body).bind("update_checkout",this.update_checkout),a(document.body).bind("init_checkout",this.init_checkout),this.$checkout_form.on("click",'input[name="payment_method"]',this.payment_method_selected),a(document.body).hasClass("woocommerce-order-pay")&&this.$order_review.on("click",'input[name="payment_method"]',this.payment_method_selected),this.$checkout_form.on("submit",this.submit),this.$checkout_form.on("blur change",".input-text, select, input:checkbox",this.validate_field),this.$checkout_form.on("update",this.trigger_update_checkout),this.$checkout_form.on("change",'select.shipping_method, input[name^="shipping_method"], #ship-to-different-address input, .update_totals_on_change select, .update_totals_on_change input[type="radio"]',this.trigger_update_checkout),this.$checkout_form.on("change",".address-field select",this.input_changed),this.$checkout_form.on("change",".address-field input.input-text, .update_totals_on_change input.input-text",this.maybe_input_changed),this.$checkout_form.on("change keydown",".address-field input.input-text, .update_totals_on_change input.input-text",this.queue_update_checkout),this.$checkout_form.on("change","#ship-to-different-address input",this.ship_to_different_address),this.$checkout_form.find("#ship-to-different-address input").change(),this.init_payment_methods(),"1"===wc_checkout_params.is_checkout&&a(document.body).trigger("init_checkout"),"yes"===wc_checkout_params.option_guest_checkout&&a("input#createaccount").change(this.toggle_create_account).change()},init_payment_methods:function(b){var c=a(".woocommerce-checkout").find('input[name="payment_method"]');1===c.length&&c.eq(0).hide(),b&&a("#"+b).prop("checked",!0),0===c.filter(":checked").length&&c.eq(0).prop("checked",!0),c.filter(":checked").eq(0).trigger("click")},get_payment_method:function(){return b.$order_review.find('input[name="payment_method"]:checked').val()},payment_method_selected:function(){if(a(".payment_methods input.input-radio").length>1){var b=a("div.payment_box."+a(this).attr("ID"));a(this).is(":checked")&&!b.is(":visible")&&(a("div.payment_box").filter(":visible").slideUp(250),a(this).is(":checked")&&a("div.payment_box."+a(this).attr("ID")).slideDown(250))}else a("div.payment_box").show();a(this).data("order_button_text")?a("#place_order").val(a(this).data("order_button_text")):a("#place_order").val(a("#place_order").data("value"))},toggle_create_account:function(){a("div.create-account").hide(),a(this).is(":checked")&&a("div.create-account").slideDown()},init_checkout:function(){a("#billing_country, #shipping_country, .country_to_state").change(),a(document.body).trigger("update_checkout")},maybe_input_changed:function(a){b.dirtyInput&&b.input_changed(a)},input_changed:function(a){b.dirtyInput=a.target,b.maybe_update_checkout()},queue_update_checkout:function(a){var c=a.keyCode||a.which||0;return 9===c||(b.dirtyInput=this,b.reset_update_checkout_timer(),void(b.updateTimer=setTimeout(b.maybe_update_checkout,"1000")))},trigger_update_checkout:function(){b.reset_update_checkout_timer(),b.dirtyInput=!1,a(document.body).trigger("update_checkout")},maybe_update_checkout:function(){var c=!0;if(a(b.dirtyInput).length){var d=a(b.dirtyInput).closest("div").find(".address-field.validate-required");d.length&&d.each(function(){""===a(this).find("input.input-text").val()&&(c=!1)})}c&&b.trigger_update_checkout()},ship_to_different_address:function(){a("div.shipping_address").hide(),a(this).is(":checked")&&a("div.shipping_address").slideDown()},reset_update_checkout_timer:function(){clearTimeout(b.updateTimer)},validate_field:function(){var b=a(this),c=b.closest(".form-row"),d=!0;if(c.is(".validate-required")&&("checkbox"!==b.attr("type")||b.is(":checked")?""===b.val()&&(c.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),d=!1):(c.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),d=!1)),c.is(".validate-email")&&b.val()){var e=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);e.test(b.val())||(c.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-email"),d=!1)}d&&c.removeClass("woocommerce-invalid woocommerce-invalid-required-field").addClass("woocommerce-validated")},update_checkout:function(a,c){b.reset_update_checkout_timer(),b.updateTimer=setTimeout(b.update_checkout_action,"5",c)},update_checkout_action:function(c){if(b.xhr&&b.xhr.abort(),0!==a("form.checkout").length){c="undefined"!=typeof c?c:{update_shipping_method:!0};var d=a("#billing_country").val(),e=a("#billing_state").val(),f=a("input#billing_postcode").val(),g=a("#billing_city").val(),h=a("input#billing_address_1").val(),i=a("input#billing_address_2").val(),j=d,k=e,l=f,m=g,n=h,o=i;a("#ship-to-different-address").find("input").is(":checked")&&(j=a("#shipping_country").val(),k=a("#shipping_state").val(),l=a("input#shipping_postcode").val(),m=a("#shipping_city").val(),n=a("input#shipping_address_1").val(),o=a("input#shipping_address_2").val());var p={security:wc_checkout_params.update_order_review_nonce,payment_method:b.get_payment_method(),country:d,state:e,postcode:f,city:g,address:h,address_2:i,s_country:j,s_state:k,s_postcode:l,s_city:m,s_address:n,s_address_2:o,post_data:a("form.checkout").serialize()};if(!1!==c.update_shipping_method){var q={};a('select.shipping_method, input[name^="shipping_method"][type="radio"]:checked, input[name^="shipping_method"][type="hidden"]').each(function(){q[a(this).data("index")]=a(this).val()}),p.shipping_method=q}a(".woocommerce-checkout-payment, .woocommerce-checkout-review-order-table").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),b.xhr=a.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","update_order_review"),data:p,success:function(c){var d=a('.woocommerce-checkout input[name="payment_method"]:checked').attr("id");if("true"===c.reload)return void window.location.reload();a(".woocommerce-NoticeGroup-updateOrderReview").remove();var e=a("#terms").prop("checked");if(c&&c.fragments&&a.each(c.fragments,function(b,c){a(b).replaceWith(c),a(b).unblock()}),e&&a("#terms").prop("checked",!0),"failure"===c.result){var f=a("form.checkout");a(".woocommerce-error, .woocommerce-message").remove(),c.messages?f.prepend('
    '+c.messages+"
    "):f.prepend(c),f.find(".input-text, select, input:checkbox").blur(),a("html, body").animate({scrollTop:a("form.checkout").offset().top-100},1e3)}b.init_payment_methods(d),a(document.body).trigger("updated_checkout",[c])}})}},submit:function(){b.reset_update_checkout_timer();var c=a(this);if(c.is(".processing"))return!1;if(c.triggerHandler("checkout_place_order")!==!1&&c.triggerHandler("checkout_place_order_"+b.get_payment_method())!==!1){c.addClass("processing");var d=c.data();1!==d["blockUI.isBlocked"]&&c.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajaxSetup({dataFilter:function(b,c){if("json"!==c)return b;try{var d=a.parseJSON(b);if(d&&"object"==typeof d)return b}catch(a){var e=b.match(/{"result.*"}/);null===e?console.log("Unable to fix malformed JSON"):(console.log("Fixed malformed JSON. Original:"),console.log(b),b=e[0])}return b}}),a.ajax({type:"POST",url:wc_checkout_params.checkout_url,data:c.serialize(),dataType:"json",success:function(c){try{if("success"!==c.result)throw"failure"===c.result?"Result failure":"Invalid response";-1===c.redirect.indexOf("https://")||-1===c.redirect.indexOf("http://")?window.location=c.redirect:window.location=decodeURI(c.redirect)}catch(d){if("true"===c.reload)return void window.location.reload();"true"===c.refresh&&a(document.body).trigger("update_checkout"),c.messages?b.submit_error(c.messages):b.submit_error('
    '+wc_checkout_params.i18n_checkout_error+"
    ")}},error:function(a,c,d){b.submit_error('
    '+d+"
    ")}})}return!1},submit_error:function(c){a(".woocommerce-error, .woocommerce-message").remove(),b.$checkout_form.prepend(c),b.$checkout_form.removeClass("processing").unblock(),b.$checkout_form.find(".input-text, select, input:checkbox").blur(),a("html, body").animate({scrollTop:a("form.checkout").offset().top-100},1e3),a(document.body).trigger("checkout_error")}},c={init:function(){a(document.body).on("click","a.showcoupon",this.show_coupon_form),a(document.body).on("click",".woocommerce-remove-coupon",this.remove_coupon),a("form.checkout_coupon").hide().submit(this.submit)},show_coupon_form:function(){return a(".checkout_coupon").slideToggle(400,function(){a(".checkout_coupon").find(":input:eq(0)").focus()}),!1},submit:function(){var b=a(this);if(b.is(".processing"))return!1;b.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var c={security:wc_checkout_params.apply_coupon_nonce,coupon_code:b.find('input[name="coupon_code"]').val()};return a.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","apply_coupon"),data:c,success:function(c){a(".woocommerce-error, .woocommerce-message").remove(),b.removeClass("processing").unblock(),c&&(b.before(c),b.slideUp(),a(document.body).trigger("update_checkout",{update_shipping_method:!1}))},dataType:"html"}),!1},remove_coupon:function(b){b.preventDefault();var c=a(this).parents(".woocommerce-checkout-review-order"),d=a(this).data("coupon");c.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var e={security:wc_checkout_params.remove_coupon_nonce,coupon:d};a.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","remove_coupon"),data:e,success:function(b){a(".woocommerce-error, .woocommerce-message").remove(),c.removeClass("processing").unblock(),b&&(a("form.woocommerce-checkout").before(b),a(document.body).trigger("update_checkout",{update_shipping_method:!1}),a("form.checkout_coupon").find('input[name="coupon_code"]').val(""))},error:function(a){wc_checkout_params.debug_mode&&console.log(a.responseText)},dataType:"html"})}},d={init:function(){a(document.body).on("click","a.showlogin",this.show_login_form)},show_login_form:function(){return a("form.login").slideToggle(),!1}};b.init(),c.init(),d.init()});assets/js/frontend/tokenization-form.js000066600000005453152133032050014323 0ustar00( function( $ ) { $( function() { var wcTokenizationForm = (function() { function wcTokenizationForm( target ) { var $target = $( target ), $formWrap = $target.closest( '.payment_box' ), $wcTokenizationForm = this; this.onTokenChange = function() { if ( 'new' === $( this ).val() ) { $wcTokenizationForm.showForm(); $wcTokenizationForm.showSaveNewCheckbox(); } else { $wcTokenizationForm.hideForm(); $wcTokenizationForm.hideSaveNewCheckbox(); } }; this.onCreateAccountChange = function() { if ( $( this ).is( ':checked' ) ) { $wcTokenizationForm.showSaveNewCheckbox(); } else { $wcTokenizationForm.hideSaveNewCheckbox(); } }; this.onDisplay = function() { // Make sure a radio button is selected if there is no is_default for this payment method.. if ( 0 === $( ':input.woocommerce-SavedPaymentMethods-tokenInput:checked', $target ).length ) { $( ':input.woocommerce-SavedPaymentMethods-tokenInput:last', $target ).prop( 'checked', true ); } // Don't show the "use new" radio button if we only have one method.. if ( 0 === $target.data( 'count' ) ) { $( '.woocommerce-SavedPaymentMethods-new', $target ).hide(); } // Trigger change event $( ':input.woocommerce-SavedPaymentMethods-tokenInput:checked', $target ).trigger( 'change' ); // Hide "save card" if "Create Account" is not checked. // Check that the field is shown in the form - some plugins and force create account remove it if ( $( 'input#createaccount' ).length && ! $('input#createaccount').is( ':checked' ) ) { $wcTokenizationForm.hideSaveNewCheckbox(); } }; this.hideForm = function() { $( '.wc-payment-form', $formWrap ).hide(); }; this.showForm = function() { $( '.wc-payment-form', $formWrap ).show(); }; this.showSaveNewCheckbox = function() { $( '.woocommerce-SavedPaymentMethods-saveNew', $formWrap ).show(); }; this.hideSaveNewCheckbox = function() { $( '.woocommerce-SavedPaymentMethods-saveNew', $formWrap ).hide(); }; // When a radio button is changed, make sure to show/hide our new CC info area $( ':input.woocommerce-SavedPaymentMethods-tokenInput', $target ).change( this.onTokenChange ); // OR if create account is checked $ ( 'input#createaccount' ).change( this.onCreateAccountChange ); this.onDisplay(); } return wcTokenizationForm; })(); $( document.body ).on( 'updated_checkout wc-credit-card-form-init', function() { // Loop over gateways with saved payment methods var $saved_payment_methods = $( 'ul.woocommerce-SavedPaymentMethods' ); $saved_payment_methods.each( function() { new wcTokenizationForm( this ); } ); } ); }); })( jQuery ); assets/js/frontend/country-select.js000066600000012167152133032050013624 0ustar00/*global wc_country_select_params */ jQuery( function( $ ) { // wc_country_select_params is required to continue, ensure the object exists if ( typeof wc_country_select_params === 'undefined' ) { return false; } function getEnhancedSelectFormatString() { var formatString = { formatMatches: function( matches ) { if ( 1 === matches ) { return wc_country_select_params.i18n_matches_1; } return wc_country_select_params.i18n_matches_n.replace( '%qty%', matches ); }, formatNoMatches: function() { return wc_country_select_params.i18n_no_matches; }, formatAjaxError: function() { return wc_country_select_params.i18n_ajax_error; }, formatInputTooShort: function( input, min ) { var number = min - input.length; if ( 1 === number ) { return wc_country_select_params.i18n_input_too_short_1; } return wc_country_select_params.i18n_input_too_short_n.replace( '%qty%', number ); }, formatInputTooLong: function( input, max ) { var number = input.length - max; if ( 1 === number ) { return wc_country_select_params.i18n_input_too_long_1; } return wc_country_select_params.i18n_input_too_long_n.replace( '%qty%', number ); }, formatSelectionTooBig: function( limit ) { if ( 1 === limit ) { return wc_country_select_params.i18n_selection_too_long_1; } return wc_country_select_params.i18n_selection_too_long_n.replace( '%qty%', limit ); }, formatLoadMore: function() { return wc_country_select_params.i18n_load_more; }, formatSearching: function() { return wc_country_select_params.i18n_searching; } }; return formatString; } // Select2 Enhancement if it exists if ( $().select2 ) { var wc_country_select_select2 = function() { $( 'select.country_select:visible, select.state_select:visible' ).each( function() { var select2_args = $.extend({ placeholderOption: 'first', width: '100%' }, getEnhancedSelectFormatString() ); $( this ).select2( select2_args ); }); }; wc_country_select_select2(); $( document.body ).bind( 'country_to_state_changed', function() { wc_country_select_select2(); }); } /* State/Country select boxes */ var states_json = wc_country_select_params.countries.replace( /"/g, '"' ), states = $.parseJSON( states_json ); $( document.body ).on( 'change', 'select.country_to_state, input.country_to_state', function() { // Grab wrapping element to target only stateboxes in same 'group' var $wrapper = $( this ).closest('.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator'); if ( ! $wrapper.length ) { $wrapper = $( this ).closest('.form-row').parent(); } var country = $( this ).val(), $statebox = $wrapper.find( '#billing_state, #shipping_state, #calc_shipping_state' ), $parent = $statebox.parent(), input_name = $statebox.attr( 'name' ), input_id = $statebox.attr( 'id' ), value = $statebox.val(), placeholder = $statebox.attr( 'placeholder' ) || $statebox.attr( 'data-placeholder' ) || ''; if ( states[ country ] ) { if ( $.isEmptyObject( states[ country ] ) ) { $statebox.parent().hide().find( '.select2-container' ).remove(); $statebox.replaceWith( '' ); $( document.body ).trigger( 'country_to_state_changed', [ country, $wrapper ] ); } else { var options = '', state = states[ country ]; for( var index in state ) { if ( state.hasOwnProperty( index ) ) { options = options + ''; } } $statebox.parent().show(); if ( $statebox.is( 'input' ) ) { // Change for select $statebox.replaceWith( '' ); $statebox = $wrapper.find( '#billing_state, #shipping_state, #calc_shipping_state' ); } $statebox.html( '' + options ); $statebox.val( value ).change(); $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] ); } } else { if ( $statebox.is( 'select' ) ) { $parent.show().find( '.select2-container' ).remove(); $statebox.replaceWith( '' ); $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] ); } else if ( $statebox.is( 'input[type="hidden"]' ) ) { $parent.show().find( '.select2-container' ).remove(); $statebox.replaceWith( '' ); $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] ); } } $( document.body ).trigger( 'country_to_state_changing', [country, $wrapper ] ); }); $(function() { $( ':input.country_to_state' ).change(); }); }); assets/js/frontend/checkout.js000066600000044457152133032050012460 0ustar00/* global wc_checkout_params */ jQuery( function( $ ) { // wc_checkout_params is required to continue, ensure the object exists if ( typeof wc_checkout_params === 'undefined' ) { return false; } $.blockUI.defaults.overlayCSS.cursor = 'default'; var wc_checkout_form = { updateTimer: false, dirtyInput: false, xhr: false, $order_review: $( '#order_review' ), $checkout_form: $( 'form.checkout' ), init: function() { $( document.body ).bind( 'update_checkout', this.update_checkout ); $( document.body ).bind( 'init_checkout', this.init_checkout ); // Payment methods this.$checkout_form.on( 'click', 'input[name="payment_method"]', this.payment_method_selected ); if ( $( document.body ).hasClass( 'woocommerce-order-pay' ) ) { this.$order_review.on( 'click', 'input[name="payment_method"]', this.payment_method_selected ); } // Form submission this.$checkout_form.on( 'submit', this.submit ); // Inline validation this.$checkout_form.on( 'blur change', '.input-text, select, input:checkbox', this.validate_field ); // Manual trigger this.$checkout_form.on( 'update', this.trigger_update_checkout ); // Inputs/selects which update totals this.$checkout_form.on( 'change', 'select.shipping_method, input[name^="shipping_method"], #ship-to-different-address input, .update_totals_on_change select, .update_totals_on_change input[type="radio"]', this.trigger_update_checkout ); this.$checkout_form.on( 'change', '.address-field select', this.input_changed ); this.$checkout_form.on( 'change', '.address-field input.input-text, .update_totals_on_change input.input-text', this.maybe_input_changed ); this.$checkout_form.on( 'change keydown', '.address-field input.input-text, .update_totals_on_change input.input-text', this.queue_update_checkout ); // Address fields this.$checkout_form.on( 'change', '#ship-to-different-address input', this.ship_to_different_address ); // Trigger events this.$checkout_form.find( '#ship-to-different-address input' ).change(); this.init_payment_methods(); // Update on page load if ( wc_checkout_params.is_checkout === '1' ) { $( document.body ).trigger( 'init_checkout' ); } if ( wc_checkout_params.option_guest_checkout === 'yes' ) { $( 'input#createaccount' ).change( this.toggle_create_account ).change(); } }, init_payment_methods: function( selectedPaymentMethod ) { var $payment_methods = $( '.woocommerce-checkout' ).find( 'input[name="payment_method"]' ); // If there is one method, we can hide the radio input if ( 1 === $payment_methods.length ) { $payment_methods.eq(0).hide(); } // If there was a previously selected method, check that one. if ( selectedPaymentMethod ) { $( '#' + selectedPaymentMethod ).prop( 'checked', true ); } // If there are none selected, select the first. if ( 0 === $payment_methods.filter( ':checked' ).length ) { $payment_methods.eq(0).prop( 'checked', true ); } // Trigger click event for selected method $payment_methods.filter( ':checked' ).eq(0).trigger( 'click' ); }, get_payment_method: function() { return wc_checkout_form.$order_review.find( 'input[name="payment_method"]:checked' ).val(); }, payment_method_selected: function() { if ( $( '.payment_methods input.input-radio' ).length > 1 ) { var target_payment_box = $( 'div.payment_box.' + $( this ).attr( 'ID' ) ); if ( $( this ).is( ':checked' ) && ! target_payment_box.is( ':visible' ) ) { $( 'div.payment_box' ).filter( ':visible' ).slideUp( 250 ); if ( $( this ).is( ':checked' ) ) { $( 'div.payment_box.' + $( this ).attr( 'ID' ) ).slideDown( 250 ); } } } else { $( 'div.payment_box' ).show(); } if ( $( this ).data( 'order_button_text' ) ) { $( '#place_order' ).val( $( this ).data( 'order_button_text' ) ); } else { $( '#place_order' ).val( $( '#place_order' ).data( 'value' ) ); } }, toggle_create_account: function() { $( 'div.create-account' ).hide(); if ( $( this ).is( ':checked' ) ) { $( 'div.create-account' ).slideDown(); } }, init_checkout: function() { $( '#billing_country, #shipping_country, .country_to_state' ).change(); $( document.body ).trigger( 'update_checkout' ); }, maybe_input_changed: function( e ) { if ( wc_checkout_form.dirtyInput ) { wc_checkout_form.input_changed( e ); } }, input_changed: function( e ) { wc_checkout_form.dirtyInput = e.target; wc_checkout_form.maybe_update_checkout(); }, queue_update_checkout: function( e ) { var code = e.keyCode || e.which || 0; if ( code === 9 ) { return true; } wc_checkout_form.dirtyInput = this; wc_checkout_form.reset_update_checkout_timer(); wc_checkout_form.updateTimer = setTimeout( wc_checkout_form.maybe_update_checkout, '1000' ); }, trigger_update_checkout: function() { wc_checkout_form.reset_update_checkout_timer(); wc_checkout_form.dirtyInput = false; $( document.body ).trigger( 'update_checkout' ); }, maybe_update_checkout: function() { var update_totals = true; if ( $( wc_checkout_form.dirtyInput ).length ) { var $required_inputs = $( wc_checkout_form.dirtyInput ).closest( 'div' ).find( '.address-field.validate-required' ); if ( $required_inputs.length ) { $required_inputs.each( function() { if ( $( this ).find( 'input.input-text' ).val() === '' ) { update_totals = false; } }); } } if ( update_totals ) { wc_checkout_form.trigger_update_checkout(); } }, ship_to_different_address: function() { $( 'div.shipping_address' ).hide(); if ( $( this ).is( ':checked' ) ) { $( 'div.shipping_address' ).slideDown(); } }, reset_update_checkout_timer: function() { clearTimeout( wc_checkout_form.updateTimer ); }, validate_field: function() { var $this = $( this ), $parent = $this.closest( '.form-row' ), validated = true; if ( $parent.is( '.validate-required' ) ) { if ( 'checkbox' === $this.attr( 'type' ) && ! $this.is( ':checked' ) ) { $parent.removeClass( 'woocommerce-validated' ).addClass( 'woocommerce-invalid woocommerce-invalid-required-field' ); validated = false; } else if ( $this.val() === '' ) { $parent.removeClass( 'woocommerce-validated' ).addClass( 'woocommerce-invalid woocommerce-invalid-required-field' ); validated = false; } } if ( $parent.is( '.validate-email' ) ) { if ( $this.val() ) { /* https://stackoverflow.com/questions/2855865/jquery-validate-e-mail-address-regex */ var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); if ( ! pattern.test( $this.val() ) ) { $parent.removeClass( 'woocommerce-validated' ).addClass( 'woocommerce-invalid woocommerce-invalid-email' ); validated = false; } } } if ( validated ) { $parent.removeClass( 'woocommerce-invalid woocommerce-invalid-required-field' ).addClass( 'woocommerce-validated' ); } }, update_checkout: function( event, args ) { // Small timeout to prevent multiple requests when several fields update at the same time wc_checkout_form.reset_update_checkout_timer(); wc_checkout_form.updateTimer = setTimeout( wc_checkout_form.update_checkout_action, '5', args ); }, update_checkout_action: function( args ) { if ( wc_checkout_form.xhr ) { wc_checkout_form.xhr.abort(); } if ( $( 'form.checkout' ).length === 0 ) { return; } args = typeof args !== 'undefined' ? args : { update_shipping_method: true }; var country = $( '#billing_country' ).val(), state = $( '#billing_state' ).val(), postcode = $( 'input#billing_postcode' ).val(), city = $( '#billing_city' ).val(), address = $( 'input#billing_address_1' ).val(), address_2 = $( 'input#billing_address_2' ).val(), s_country = country, s_state = state, s_postcode = postcode, s_city = city, s_address = address, s_address_2 = address_2; if ( $( '#ship-to-different-address' ).find( 'input' ).is( ':checked' ) ) { s_country = $( '#shipping_country' ).val(); s_state = $( '#shipping_state' ).val(); s_postcode = $( 'input#shipping_postcode' ).val(); s_city = $( '#shipping_city' ).val(); s_address = $( 'input#shipping_address_1' ).val(); s_address_2 = $( 'input#shipping_address_2' ).val(); } var data = { security: wc_checkout_params.update_order_review_nonce, payment_method: wc_checkout_form.get_payment_method(), country: country, state: state, postcode: postcode, city: city, address: address, address_2: address_2, s_country: s_country, s_state: s_state, s_postcode: s_postcode, s_city: s_city, s_address: s_address, s_address_2: s_address_2, post_data: $( 'form.checkout' ).serialize() }; if ( false !== args.update_shipping_method ) { var shipping_methods = {}; $( 'select.shipping_method, input[name^="shipping_method"][type="radio"]:checked, input[name^="shipping_method"][type="hidden"]' ).each( function() { shipping_methods[ $( this ).data( 'index' ) ] = $( this ).val(); } ); data.shipping_method = shipping_methods; } $( '.woocommerce-checkout-payment, .woocommerce-checkout-review-order-table' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); wc_checkout_form.xhr = $.ajax({ type: 'POST', url: wc_checkout_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'update_order_review' ), data: data, success: function( data ) { var selectedPaymentMethod = $( '.woocommerce-checkout input[name="payment_method"]:checked' ).attr( 'id' ); // Reload the page if requested if ( 'true' === data.reload ) { window.location.reload(); return; } // Remove any notices added previously $( '.woocommerce-NoticeGroup-updateOrderReview' ).remove(); var termsCheckBoxChecked = $( '#terms' ).prop( 'checked' ); // Always update the fragments if ( data && data.fragments ) { $.each( data.fragments, function ( key, value ) { $( key ).replaceWith( value ); $( key ).unblock(); } ); } // Recheck the terms and conditions box, if needed if ( termsCheckBoxChecked ) { $( '#terms' ).prop( 'checked', true ); } // Check for error if ( 'failure' === data.result ) { var $form = $( 'form.checkout' ); // Remove notices from all sources $( '.woocommerce-error, .woocommerce-message' ).remove(); // Add new errors returned by this event if ( data.messages ) { $form.prepend( '
    ' + data.messages + '
    ' ); } else { $form.prepend( data ); } // Lose focus for all fields $form.find( '.input-text, select, input:checkbox' ).blur(); // Scroll to top $( 'html, body' ).animate( { scrollTop: ( $( 'form.checkout' ).offset().top - 100 ) }, 1000 ); } // Re-init methods wc_checkout_form.init_payment_methods( selectedPaymentMethod ); // Fire updated_checkout e $( document.body ).trigger( 'updated_checkout', [ data ] ); } }); }, submit: function() { wc_checkout_form.reset_update_checkout_timer(); var $form = $( this ); if ( $form.is( '.processing' ) ) { return false; } // Trigger a handler to let gateways manipulate the checkout if needed if ( $form.triggerHandler( 'checkout_place_order' ) !== false && $form.triggerHandler( 'checkout_place_order_' + wc_checkout_form.get_payment_method() ) !== false ) { $form.addClass( 'processing' ); var form_data = $form.data(); if ( 1 !== form_data['blockUI.isBlocked'] ) { $form.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } // ajaxSetup is global, but we use it to ensure JSON is valid once returned. $.ajaxSetup( { dataFilter: function( raw_response, dataType ) { // We only want to work with JSON if ( 'json' !== dataType ) { return raw_response; } try { // Check for valid JSON var data = $.parseJSON( raw_response ); if ( data && 'object' === typeof data ) { // Valid - return it so it can be parsed by Ajax handler return raw_response; } } catch ( e ) { // Attempt to fix the malformed JSON var valid_json = raw_response.match( /{"result.*"}/ ); if ( null === valid_json ) { console.log( 'Unable to fix malformed JSON' ); } else { console.log( 'Fixed malformed JSON. Original:' ); console.log( raw_response ); raw_response = valid_json[0]; } } return raw_response; } } ); $.ajax({ type: 'POST', url: wc_checkout_params.checkout_url, data: $form.serialize(), dataType: 'json', success: function( result ) { try { if ( result.result === 'success' ) { if ( -1 === result.redirect.indexOf( 'https://' ) || -1 === result.redirect.indexOf( 'http://' ) ) { window.location = result.redirect; } else { window.location = decodeURI( result.redirect ); } } else if ( result.result === 'failure' ) { throw 'Result failure'; } else { throw 'Invalid response'; } } catch( err ) { // Reload page if ( result.reload === 'true' ) { window.location.reload(); return; } // Trigger update in case we need a fresh nonce if ( result.refresh === 'true' ) { $( document.body ).trigger( 'update_checkout' ); } // Add new errors if ( result.messages ) { wc_checkout_form.submit_error( result.messages ); } else { wc_checkout_form.submit_error( '
    ' + wc_checkout_params.i18n_checkout_error + '
    ' ); } } }, error: function( jqXHR, textStatus, errorThrown ) { wc_checkout_form.submit_error( '
    ' + errorThrown + '
    ' ); } }); } return false; }, submit_error: function( error_message ) { $( '.woocommerce-error, .woocommerce-message' ).remove(); wc_checkout_form.$checkout_form.prepend( error_message ); wc_checkout_form.$checkout_form.removeClass( 'processing' ).unblock(); wc_checkout_form.$checkout_form.find( '.input-text, select, input:checkbox' ).blur(); $( 'html, body' ).animate({ scrollTop: ( $( 'form.checkout' ).offset().top - 100 ) }, 1000 ); $( document.body ).trigger( 'checkout_error' ); } }; var wc_checkout_coupons = { init: function() { $( document.body ).on( 'click', 'a.showcoupon', this.show_coupon_form ); $( document.body ).on( 'click', '.woocommerce-remove-coupon', this.remove_coupon ); $( 'form.checkout_coupon' ).hide().submit( this.submit ); }, show_coupon_form: function() { $( '.checkout_coupon' ).slideToggle( 400, function() { $( '.checkout_coupon' ).find( ':input:eq(0)' ).focus(); }); return false; }, submit: function() { var $form = $( this ); if ( $form.is( '.processing' ) ) { return false; } $form.addClass( 'processing' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { security: wc_checkout_params.apply_coupon_nonce, coupon_code: $form.find( 'input[name="coupon_code"]' ).val() }; $.ajax({ type: 'POST', url: wc_checkout_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'apply_coupon' ), data: data, success: function( code ) { $( '.woocommerce-error, .woocommerce-message' ).remove(); $form.removeClass( 'processing' ).unblock(); if ( code ) { $form.before( code ); $form.slideUp(); $( document.body ).trigger( 'update_checkout', { update_shipping_method: false } ); } }, dataType: 'html' }); return false; }, remove_coupon: function( e ) { e.preventDefault(); var container = $( this ).parents( '.woocommerce-checkout-review-order' ), coupon = $( this ).data( 'coupon' ); container.addClass( 'processing' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { security: wc_checkout_params.remove_coupon_nonce, coupon: coupon }; $.ajax({ type: 'POST', url: wc_checkout_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'remove_coupon' ), data: data, success: function( code ) { $( '.woocommerce-error, .woocommerce-message' ).remove(); container.removeClass( 'processing' ).unblock(); if ( code ) { $( 'form.woocommerce-checkout' ).before( code ); $( document.body ).trigger( 'update_checkout', { update_shipping_method: false } ); // Remove coupon code from coupon field $( 'form.checkout_coupon' ).find( 'input[name="coupon_code"]' ).val( '' ); } }, error: function ( jqXHR ) { if ( wc_checkout_params.debug_mode ) { /* jshint devel: true */ console.log( jqXHR.responseText ); } }, dataType: 'html' }); } }; var wc_checkout_login_form = { init: function() { $( document.body ).on( 'click', 'a.showlogin', this.show_login_form ); }, show_login_form: function() { $( 'form.login' ).slideToggle(); return false; } }; wc_checkout_form.init(); wc_checkout_coupons.init(); wc_checkout_login_form.init(); }); assets/js/frontend/add-to-cart.min.js000066600000003347152133032050013525 0ustar00/*! * WooCommerce Add to Cart JS */ jQuery(function(a){return"undefined"!=typeof wc_add_to_cart_params&&void a(document).on("click",".add_to_cart_button",function(){var b=a(this);if(b.is(".ajax_add_to_cart")){if(!b.attr("data-product_id"))return!0;b.removeClass("added"),b.addClass("loading");var c={};return a.each(b.data(),function(a,b){c[a]=b}),a(document.body).trigger("adding_to_cart",[b,c]),a.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%","add_to_cart"),c,function(c){if(c){var d=window.location.toString();if(d=d.replace("add-to-cart","added-to-cart"),c.error&&c.product_url)return void(window.location=c.product_url);if("yes"===wc_add_to_cart_params.cart_redirect_after_add)return void(window.location=wc_add_to_cart_params.cart_url);b.removeClass("loading");var e=c.fragments,f=c.cart_hash;e&&a.each(e,function(b){a(b).addClass("updating")}),a(".shop_table.cart, .updating, .cart_totals").fadeTo("400","0.6").block({message:null,overlayCSS:{opacity:.6}}),b.addClass("added"),wc_add_to_cart_params.is_cart||0!==b.parent().find(".added_to_cart").length||b.after(' '+wc_add_to_cart_params.i18n_view_cart+""),e&&a.each(e,function(b,c){a(b).replaceWith(c)}),a(".widget_shopping_cart, .updating").stop(!0).css("opacity","1").unblock(),a(".shop_table.cart").load(d+" .shop_table.cart:eq(0) > *",function(){a(".shop_table.cart").stop(!0).css("opacity","1").unblock(),a(document.body).trigger("cart_page_refreshed")}),a(".cart_totals").load(d+" .cart_totals:eq(0) > *",function(){a(".cart_totals").stop(!0).css("opacity","1").unblock()}),a(document.body).trigger("added_to_cart",[e,f,b])}}),!1}return!0})});assets/js/frontend/add-payment-method.js000066600000002103152133032050014312 0ustar00jQuery( function( $ ) { // woocommerce_params is required to continue, ensure the object exists if ( typeof woocommerce_params === 'undefined' ) { return false; } $( '#add_payment_method' ) /* Payment option selection */ .on( 'click init_add_payment_method', '.payment_methods input.input-radio', function() { if ( $( '.payment_methods input.input-radio' ).length > 1 ) { var target_payment_box = $( 'div.payment_box.' + $( this ).attr( 'ID' ) ); if ( $( this ).is( ':checked' ) && ! target_payment_box.is( ':visible' ) ) { $( 'div.payment_box' ).filter( ':visible' ).slideUp( 250 ); if ( $( this ).is( ':checked' ) ) { $( 'div.payment_box.' + $( this ).attr( 'ID' ) ).slideDown( 250 ); } } } else { $( 'div.payment_box' ).show(); } }) // Trigger initial click .find( 'input[name=payment_method]:checked' ).click(); $( '#add_payment_method' ).submit( function() { $( '#add_payment_method' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }); $( document.body ).trigger( 'init_add_payment_method' ); }); assets/js/frontend/add-payment-method.min.js000066600000001334152133032050015101 0ustar00jQuery(function(a){return"undefined"!=typeof woocommerce_params&&(a("#add_payment_method").on("click init_add_payment_method",".payment_methods input.input-radio",function(){if(a(".payment_methods input.input-radio").length>1){var b=a("div.payment_box."+a(this).attr("ID"));a(this).is(":checked")&&!b.is(":visible")&&(a("div.payment_box").filter(":visible").slideUp(250),a(this).is(":checked")&&a("div.payment_box."+a(this).attr("ID")).slideDown(250))}else a("div.payment_box").show()}).find("input[name=payment_method]:checked").click(),a("#add_payment_method").submit(function(){a("#add_payment_method").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}),void a(document.body).trigger("init_add_payment_method"))});assets/js/frontend/address-i18n.min.js000066600000003676152133032050013635 0ustar00jQuery(function(a){function b(a,b){b?(a.find("label").append(' *'),a.addClass("validate-required")):(a.find("label abbr").remove(),a.removeClass("validate-required"))}if("undefined"==typeof wc_address_i18n_params)return!1;var c=wc_address_i18n_params.locale.replace(/"/g,'"'),d=a.parseJSON(c);a(document.body).bind("country_to_state_changing",function(c,e,f){var g,h=f;g="undefined"!=typeof d[e]?d[e]:d.default;var i=h.find("#billing_postcode_field, #shipping_postcode_field"),j=h.find("#billing_city_field, #shipping_city_field"),k=h.find("#billing_state_field, #shipping_state_field");i.attr("data-o_class")||(i.attr("data-o_class",i.attr("class")),j.attr("data-o_class",j.attr("class")),k.attr("data-o_class",k.attr("class"))),g.postcode_before_city?(i.add(j).add(k).removeClass("form-row-first form-row-last").addClass("form-row-first"),j.removeClass("form-row-wide form-row-first").addClass("form-row-last"),i.insertBefore(j)):(i.attr("class",i.attr("data-o_class")),j.attr("class",j.attr("data-o_class")),k.attr("class",k.attr("data-o_class")),i.insertAfter(k));var l=a.parseJSON(wc_address_i18n_params.locale_fields);a.each(l,function(a,c){var e=h.find(c);g[a]?(g[a].label&&e.find("label").html(g[a].label),g[a].placeholder&&e.find("input").attr("placeholder",g[a].placeholder),b(e,!1),"undefined"==typeof g[a].required&&d.default[a].required===!0?b(e,!0):g[a].required===!0&&b(e,!0),"state"!==a&&(g[a].hidden===!0?e.hide().find("input").val(""):e.show())):d.default[a]&&("state"!==a&&("undefined"==typeof d.default[a].hidden||d.default[a].hidden===!1?e.show():d.default[a].hidden===!0&&e.hide().find("input").val("")),"postcode"!==a&&"city"!==a&&"state"!==a||(d.default[a].label&&e.find("label").html(d.default[a].label),d.default[a].placeholder&&e.find("input").attr("placeholder",d.default[a].placeholder)),d.default[a].required===!0&&0===e.find("label abbr").length&&b(e,!0))})})});assets/js/frontend/add-to-cart-variation.js000066600000050353152133032050014734 0ustar00/*global wc_add_to_cart_variation_params, wc_cart_fragments_params */ ;(function ( $, window, document, undefined ) { /** * VariationForm class which handles variation forms and attributes. */ var VariationForm = function( $form ) { this.$form = $form; this.$attributeFields = $form.find( '.variations select' ); this.$singleVariation = $form.find( '.single_variation' ), this.$singleVariationWrap = $form.find( '.single_variation_wrap' ); this.$resetVariations = $form.find( '.reset_variations' ); this.$product = $form.closest( '.product' ); this.variationData = $form.data( 'product_variations' ); this.useAjax = false === this.variationData; this.xhr = false; // Initial state. this.$singleVariationWrap.show(); this.$form.unbind( 'check_variations update_variation_values found_variation' ); this.$resetVariations.unbind( 'click' ); this.$attributeFields.unbind( 'change ' ); // Methods. this.getChosenAttributes = this.getChosenAttributes.bind( this ); this.findMatchingVariations = this.findMatchingVariations.bind( this ); this.isMatch = this.isMatch.bind( this ); this.toggleResetLink = this.toggleResetLink.bind( this ); // Events. $form.on( 'click', '.reset_variations', { variationForm: this }, this.onReset ); $form.on( 'reload_product_variations', { variationForm: this }, this.onReload ); $form.on( 'hide_variation', { variationForm: this }, this.onHide ); $form.on( 'show_variation', { variationForm: this }, this.onShow ); $form.on( 'click', '.single_add_to_cart_button', { variationForm: this }, this.onAddToCart ); $form.on( 'reset_data', { variationForm: this }, this.onResetDisplayedVariation ); $form.on( 'reset_image', { variationForm: this }, this.onResetImage ); $form.on( 'change', '.variations select', { variationForm: this }, this.onChange ); $form.on( 'found_variation', { variationForm: this }, this.onFoundVariation ); $form.on( 'check_variations', { variationForm: this }, this.onFindVariation ); $form.on( 'update_variation_values', { variationForm: this }, this.onUpdateAttributes ); // Check variations once init. $form.trigger( 'check_variations' ); $form.trigger( 'wc_variation_form' ); }; /** * Reset all fields. */ VariationForm.prototype.onReset = function( event ) { event.preventDefault(); event.data.variationForm.$attributeFields.val( '' ).change(); event.data.variationForm.$form.trigger( 'reset_data' ); }; /** * Reload variation data from the DOM. */ VariationForm.prototype.onReload = function( event ) { var form = event.data.variationForm; form.variationData = form.$form.data( 'product_variations' ); form.useAjax = false === form.variationData; form.$form.trigger( 'check_variations' ); }; /** * When a variation is hidden. */ VariationForm.prototype.onHide = function( event ) { event.preventDefault(); event.data.variationForm.$form.find( '.single_add_to_cart_button' ).removeClass( 'wc-variation-is-unavailable' ).addClass( 'disabled wc-variation-selection-needed' ); event.data.variationForm.$form.find( '.woocommerce-variation-add-to-cart' ).removeClass( 'woocommerce-variation-add-to-cart-enabled' ).addClass( 'woocommerce-variation-add-to-cart-disabled' ); }; /** * When a variation is shown. */ VariationForm.prototype.onShow = function( event, variation, purchasable ) { event.preventDefault(); if ( purchasable ) { event.data.variationForm.$form.find( '.single_add_to_cart_button' ).removeClass( 'disabled wc-variation-selection-needed wc-variation-is-unavailable' ); event.data.variationForm.$form.find( '.woocommerce-variation-add-to-cart' ).removeClass( 'woocommerce-variation-add-to-cart-disabled' ).addClass( 'woocommerce-variation-add-to-cart-enabled' ); } else { event.data.variationForm.$form.find( '.single_add_to_cart_button' ).removeClass( 'wc-variation-selection-needed' ).addClass( 'disabled wc-variation-is-unavailable' ); event.data.variationForm.$form.find( '.woocommerce-variation-add-to-cart' ).removeClass( 'woocommerce-variation-add-to-cart-enabled' ).addClass( 'woocommerce-variation-add-to-cart-disabled' ); } }; /** * When the cart button is pressed. */ VariationForm.prototype.onAddToCart = function( event ) { if ( $( this ).is('.disabled') ) { event.preventDefault(); if ( $( this ).is('.wc-variation-is-unavailable') ) { window.alert( wc_add_to_cart_variation_params.i18n_unavailable_text ); } else if ( $( this ).is('.wc-variation-selection-needed') ) { window.alert( wc_add_to_cart_variation_params.i18n_make_a_selection_text ); } } }; /** * When displayed variation data is reset. */ VariationForm.prototype.onResetDisplayedVariation = function( event ) { var form = event.data.variationForm; form.$product.find( '.product_meta' ).find( '.sku' ).wc_reset_content(); form.$product.find( '.product_weight' ).wc_reset_content(); form.$product.find( '.product_dimensions' ).wc_reset_content(); form.$form.trigger( 'reset_image' ); form.$singleVariation.slideUp( 200 ).trigger( 'hide_variation' ); }; /** * When the product image is reset. */ VariationForm.prototype.onResetImage = function( event ) { event.data.variationForm.$form.wc_variations_image_update( false ); }; /** * Looks for matching variations for current selected attributes. */ VariationForm.prototype.onFindVariation = function( event ) { var form = event.data.variationForm, attributes = form.getChosenAttributes(), currentAttributes = attributes.data; if ( attributes.count === attributes.chosenCount ) { if ( form.useAjax ) { if ( form.xhr ) { form.xhr.abort(); } form.$form.block( { message: null, overlayCSS: { background: '#fff', opacity: 0.6 } } ); currentAttributes.product_id = parseInt( form.$form.data( 'product_id' ), 10 ); currentAttributes.custom_data = form.$form.data( 'custom_data' ); form.xhr = $.ajax( { url: wc_cart_fragments_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'get_variation' ), type: 'POST', data: currentAttributes, success: function( variation ) { if ( variation ) { form.$form.trigger( 'found_variation', [ variation ] ); } else { form.$form.trigger( 'reset_data' ); form.$form.find( '.single_variation' ).after( '

    ' + wc_add_to_cart_variation_params.i18n_no_matching_variations_text + '

    ' ); form.$form.find( '.wc-no-matching-variations' ).slideDown( 200 ); } }, complete: function() { form.$form.unblock(); } } ); } else { form.$form.trigger( 'update_variation_values' ); var matching_variations = form.findMatchingVariations( form.variationData, currentAttributes ), variation = matching_variations.shift(); if ( variation ) { form.$form.trigger( 'found_variation', [ variation ] ); } else { window.alert( wc_add_to_cart_variation_params.i18n_no_matching_variations_text ); form.$form.trigger( 'reset_data' ); } } } else { form.$form.trigger( 'update_variation_values' ); form.$form.trigger( 'reset_data' ); } // Show reset link. form.toggleResetLink( attributes.chosenCount > 0 ); // added to get around variation image flicker issue $( '.product.has-default-attributes > .images' ).fadeTo( 200, 1 ); }; /** * Triggered when a variation has been found which matches all attributes. */ VariationForm.prototype.onFoundVariation = function( event, variation ) { var form = event.data.variationForm, $sku = form.$product.find( '.product_meta' ).find( '.sku' ), $weight = form.$product.find( '.product_weight' ), $dimensions = form.$product.find( '.product_dimensions' ), $qty = form.$singleVariationWrap.find( '.quantity' ), purchasable = true, variation_id = '', template = false, $template_html = ''; if ( variation.sku ) { $sku.wc_set_content( variation.sku ); } else { $sku.wc_reset_content(); } if ( variation.weight ) { $weight.wc_set_content( variation.weight ); } else { $weight.wc_reset_content(); } if ( variation.dimensions ) { $dimensions.wc_set_content( variation.dimensions ); } else { $dimensions.wc_reset_content(); } form.$form.wc_variations_image_update( variation ); if ( ! variation.variation_is_visible ) { template = wp.template( 'unavailable-variation-template' ); } else { template = wp.template( 'variation-template' ); variation_id = variation.variation_id; } $template_html = template( { variation: variation } ); $template_html = $template_html.replace( '/**/', '' ); form.$singleVariation.html( $template_html ); form.$form.find( 'input[name="variation_id"], input.variation_id' ).val( variation.variation_id ).change(); // Hide or show qty input if ( variation.is_sold_individually === 'yes' ) { $qty.find( 'input.qty' ).val( '1' ).attr( 'min', '1' ).attr( 'max', '' ); $qty.hide(); } else { $qty.find( 'input.qty' ).attr( 'min', variation.min_qty ).attr( 'max', variation.max_qty ); $qty.show(); } // Enable or disable the add to cart button if ( ! variation.is_purchasable || ! variation.is_in_stock || ! variation.variation_is_visible ) { purchasable = false; } // Reveal if ( $.trim( form.$singleVariation.text() ) ) { form.$singleVariation.slideDown( 200 ).trigger( 'show_variation', [ variation, purchasable ] ); } else { form.$singleVariation.show().trigger( 'show_variation', [ variation, purchasable ] ); } }; /** * Triggered when an attribute field changes. */ VariationForm.prototype.onChange = function( event ) { var form = event.data.variationForm; form.$form.find( 'input[name="variation_id"], input.variation_id' ).val( '' ).change(); form.$form.find( '.wc-no-matching-variations' ).remove(); if ( form.useAjax ) { form.$form.trigger( 'check_variations' ); } else { form.$form.trigger( 'woocommerce_variation_select_change' ); form.$form.trigger( 'check_variations' ); $( this ).blur(); } // Custom event for when variation selection has been changed form.$form.trigger( 'woocommerce_variation_has_changed' ); }; /** * Escape quotes in a string. * @param {string} string * @return {string} */ VariationForm.prototype.addSlashes = function( string ) { string = string.replace( /'/g, '\\\'' ); string = string.replace( /"/g, '\\\"' ); return string; }; /** * Updates attributes in the DOM to show valid values. */ VariationForm.prototype.onUpdateAttributes = function( event ) { var form = event.data.variationForm, attributes = form.getChosenAttributes(), currentAttributes = attributes.data; if ( form.useAjax ) { return; } // Loop through selects and disable/enable options based on selections. form.$attributeFields.each( function( index, el ) { var current_attr_select = $( el ), current_attr_name = current_attr_select.data( 'attribute_name' ) || current_attr_select.attr( 'name' ), show_option_none = $( el ).data( 'show_option_none' ), option_gt_filter = ':gt(0)', attached_options_count = 0, new_attr_select = $( '"),l=f.val()||"",m=!0;if(!f.data("attribute_html")){var n=f.clone();n.find("option").removeAttr("disabled attached").removeAttr("selected"),f.data("attribute_options",n.find("option"+i).get()),f.data("attribute_html",n.html())}k.html(f.data("attribute_html"));var o=a.extend(!0,{},e);o[g]="";var p=c.findMatchingVariations(c.variationData,o);for(var q in p)if("undefined"!=typeof p[q]){var r=p[q].attributes;for(var s in r)if(r.hasOwnProperty(s)){var t=r[s],u="";s===g&&(p[q].variation_is_active&&(u="enabled"),t?(t=a("
    ").html(t).text(),k.find('option[value="'+c.addSlashes(t)+'"]').addClass("attached "+u)):k.find("option:gt(0)").addClass("attached "+u))}}j=k.find("option.attached").length,!l||0!==j&&0!==k.find('option.attached.enabled[value="'+c.addSlashes(l)+'"]').length||(m=!1),j>0&&l&&m&&"no"===h&&(k.find("option:first").remove(),i=""),k.find("option"+i+":not(.attached)").remove(),f.html(k.html()),f.find("option"+i+":not(.enabled)").prop("disabled",!0),l?m?f.val(l):f.val("").change():f.val("")}),c.$form.trigger("woocommerce_update_variation_values"))},e.prototype.getChosenAttributes=function(){var b={},c=0,d=0;return this.$attributeFields.each(function(){var e=a(this).data("attribute_name")||a(this).attr("name"),f=a(this).val()||"";f.length>0&&d++,c++,b[e]=f}),{count:c,chosenCount:d,data:b}},e.prototype.findMatchingVariations=function(a,b){for(var c=[],d=0;d1?(d.wc_set_variation_attr("src",a.image_src),d.wc_set_variation_attr("title",a.image_title),d.wc_set_variation_attr("alt",a.image_alt),d.wc_set_variation_attr("srcset",a.image_srcset),d.wc_set_variation_attr("sizes",a.image_sizes),e.wc_set_variation_attr("href",a.image_link),e.wc_set_variation_attr("title",a.image_caption)):(d.wc_reset_variation_attr("src"),d.wc_reset_variation_attr("title"),d.wc_reset_variation_attr("alt"),d.wc_reset_variation_attr("srcset"),d.wc_reset_variation_attr("sizes"),e.wc_reset_variation_attr("href"),e.wc_reset_variation_attr("title"))},a(function(){"undefined"!=typeof wc_add_to_cart_variation_params&&a(".variations_form").each(function(){a(this).wc_variation_form()})})}(jQuery,window,document);assets/js/frontend/add-to-cart.js000066600000006120152133032050012733 0ustar00/*! * WooCommerce Add to Cart JS */ jQuery( function( $ ) { /* global wc_add_to_cart_params */ if ( typeof wc_add_to_cart_params === 'undefined' ) { return false; } // Ajax add to cart $( document ).on( 'click', '.add_to_cart_button', function() { // AJAX add to cart request var $thisbutton = $( this ); if ( $thisbutton.is( '.ajax_add_to_cart' ) ) { if ( ! $thisbutton.attr( 'data-product_id' ) ) { return true; } $thisbutton.removeClass( 'added' ); $thisbutton.addClass( 'loading' ); var data = {}; $.each( $thisbutton.data(), function( key, value ) { data[key] = value; }); // Trigger event $( document.body ).trigger( 'adding_to_cart', [ $thisbutton, data ] ); // Ajax action $.post( wc_add_to_cart_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'add_to_cart' ), data, function( response ) { if ( ! response ) { return; } var this_page = window.location.toString(); this_page = this_page.replace( 'add-to-cart', 'added-to-cart' ); if ( response.error && response.product_url ) { window.location = response.product_url; return; } // Redirect to cart option if ( wc_add_to_cart_params.cart_redirect_after_add === 'yes' ) { window.location = wc_add_to_cart_params.cart_url; return; } else { $thisbutton.removeClass( 'loading' ); var fragments = response.fragments; var cart_hash = response.cart_hash; // Block fragments class if ( fragments ) { $.each( fragments, function( key ) { $( key ).addClass( 'updating' ); }); } // Block widgets and fragments $( '.shop_table.cart, .updating, .cart_totals' ).fadeTo( '400', '0.6' ).block({ message: null, overlayCSS: { opacity: 0.6 } }); // Changes button classes $thisbutton.addClass( 'added' ); // View cart text if ( ! wc_add_to_cart_params.is_cart && $thisbutton.parent().find( '.added_to_cart' ).length === 0 ) { $thisbutton.after( ' ' + wc_add_to_cart_params.i18n_view_cart + '' ); } // Replace fragments if ( fragments ) { $.each( fragments, function( key, value ) { $( key ).replaceWith( value ); }); } // Unblock $( '.widget_shopping_cart, .updating' ).stop( true ).css( 'opacity', '1' ).unblock(); // Cart page elements $( '.shop_table.cart' ).load( this_page + ' .shop_table.cart:eq(0) > *', function() { $( '.shop_table.cart' ).stop( true ).css( 'opacity', '1' ).unblock(); $( document.body ).trigger( 'cart_page_refreshed' ); }); $( '.cart_totals' ).load( this_page + ' .cart_totals:eq(0) > *', function() { $( '.cart_totals' ).stop( true ).css( 'opacity', '1' ).unblock(); }); // Trigger event so themes can refresh other areas $( document.body ).trigger( 'added_to_cart', [ fragments, cart_hash, $thisbutton ] ); } }); return false; } return true; }); }); assets/js/frontend/password-strength-meter.min.js000066600000003550152133032050016232 0ustar00jQuery(function(a){var b={init:function(){a(document.body).on("keyup change","form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1",this.strengthMeter),a("form.checkout #createaccount").change()},strengthMeter:function(){var c=a("form.register, form.checkout, form.edit-account, form.lost_reset_password"),d=a('input[type="submit"]',c),e=a("#reg_password, #account_password, #password_1",c),f=1;b.includeMeter(c,e),f=b.checkPasswordStrength(c,e),f
    '),a(document.body).trigger("wc-password-strength-added"))},checkPasswordStrength:function(a,b){var c=a.find(".woocommerce-password-strength"),d=a.find(".woocommerce-password-hint"),e=''+wc_password_strength_meter_params.i18n_password_hint+"",f=wp.passwordStrength.meter(b.val(),wp.passwordStrength.userInputBlacklist()),g="";switch(c.removeClass("short bad good strong"),d.remove(),f=0||"#reviews"===b||"#tab-reviews"===b?d.find("li.reviews_tab a").click():c.indexOf("comment-page-")>0||c.indexOf("cpage=")>0?d.find("li.reviews_tab a").click():d.find("li:first a").click()}).on("click",".wc-tabs li a, ul.tabs li a",function(b){b.preventDefault();var c=a(this),d=c.closest(".wc-tabs-wrapper, .woocommerce-tabs"),e=d.find(".wc-tabs, ul.tabs");e.find("li").removeClass("active"),d.find(".wc-tab, .panel:not(.panel .panel)").hide(),c.closest("li").addClass("active"),d.find(c.attr("href")).show()}).on("click","a.woocommerce-review-link",function(){return a(".reviews_tab a").click(),!0}).on("init","#rating",function(){a("#rating").hide().before('

    12345

    ')}).on("click","#respond p.stars a",function(){var b=a(this),c=a(this).closest("#respond").find("#rating"),d=a(this).closest(".stars");return c.val(b.text()),b.siblings("a").removeClass("active"),b.addClass("active"),d.addClass("selected"),!1}).on("click","#respond #submit",function(){var b=a(this).closest("#respond").find("#rating"),c=b.val();if(b.length>0&&!c&&"yes"===wc_single_product_params.review_rating_required)return window.alert(wc_single_product_params.i18n_required_rating_text),!1}),void a(".wc-tabs-wrapper, .woocommerce-tabs, #rating").trigger("init"))});assets/js/frontend/woocommerce.min.js000066600000000425152133032050013737 0ustar00jQuery(function(a){a(".woocommerce-ordering").on("change","select.orderby",function(){a(this).closest("form").submit()}),a("input.qty:not(.product-quantity input.qty)").each(function(){var b=parseFloat(a(this).attr("min"));b>=0&&parseFloat(a(this).val()) 0 ) { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).show(); } else { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).hide(); } $( document.body ).bind( 'adding_to_cart', function() { $( '.hide_cart_widget_if_empty' ).closest( '.widget_shopping_cart' ).show(); }); }); assets/js/frontend/single-product.js000066600000005075152133032050013603 0ustar00/*global wc_single_product_params */ jQuery( function( $ ) { // wc_single_product_params is required to continue, ensure the object exists if ( typeof wc_single_product_params === 'undefined' ) { return false; } // Tabs $( 'body' ) .on( 'init', '.wc-tabs-wrapper, .woocommerce-tabs', function() { $( '.wc-tab, .woocommerce-tabs .panel:not(.panel .panel)' ).hide(); var hash = window.location.hash; var url = window.location.href; var $tabs = $( this ).find( '.wc-tabs, ul.tabs' ).first(); if ( hash.toLowerCase().indexOf( 'comment-' ) >= 0 || hash === '#reviews' || hash === '#tab-reviews' ) { $tabs.find( 'li.reviews_tab a' ).click(); } else if ( url.indexOf( 'comment-page-' ) > 0 || url.indexOf( 'cpage=' ) > 0 ) { $tabs.find( 'li.reviews_tab a' ).click(); } else { $tabs.find( 'li:first a' ).click(); } }) .on( 'click', '.wc-tabs li a, ul.tabs li a', function( e ) { e.preventDefault(); var $tab = $( this ); var $tabs_wrapper = $tab.closest( '.wc-tabs-wrapper, .woocommerce-tabs' ); var $tabs = $tabs_wrapper.find( '.wc-tabs, ul.tabs' ); $tabs.find( 'li' ).removeClass( 'active' ); $tabs_wrapper.find( '.wc-tab, .panel:not(.panel .panel)' ).hide(); $tab.closest( 'li' ).addClass( 'active' ); $tabs_wrapper.find( $tab.attr( 'href' ) ).show(); }) // Review link .on( 'click', 'a.woocommerce-review-link', function() { $( '.reviews_tab a' ).click(); return true; }) // Star ratings for comments .on( 'init', '#rating', function() { $( '#rating' ).hide().before( '

    12345

    ' ); }) .on( 'click', '#respond p.stars a', function() { var $star = $( this ), $rating = $( this ).closest( '#respond' ).find( '#rating' ), $container = $( this ).closest( '.stars' ); $rating.val( $star.text() ); $star.siblings( 'a' ).removeClass( 'active' ); $star.addClass( 'active' ); $container.addClass( 'selected' ); return false; }) .on( 'click', '#respond #submit', function() { var $rating = $( this ).closest( '#respond' ).find( '#rating' ), rating = $rating.val(); if ( $rating.length > 0 && ! rating && wc_single_product_params.review_rating_required === 'yes' ) { window.alert( wc_single_product_params.i18n_required_rating_text ); return false; } }); //Init Tabs and Star Ratings $( '.wc-tabs-wrapper, .woocommerce-tabs, #rating' ).trigger( 'init' ); }); assets/js/frontend/price-slider.js000066600000005715152133032050013227 0ustar00/* global woocommerce_price_slider_params */ jQuery( function( $ ) { // woocommerce_price_slider_params is required to continue, ensure the object exists if ( typeof woocommerce_price_slider_params === 'undefined' ) { return false; } // Get markup ready for slider $( 'input#min_price, input#max_price' ).hide(); $( '.price_slider, .price_label' ).show(); // Price slider uses jquery ui var min_price = $( '.price_slider_amount #min_price' ).data( 'min' ), max_price = $( '.price_slider_amount #max_price' ).data( 'max' ), current_min_price = parseInt( min_price, 10 ), current_max_price = parseInt( max_price, 10 ); if ( woocommerce_price_slider_params.min_price ) { current_min_price = parseInt( woocommerce_price_slider_params.min_price, 10 ); } if ( woocommerce_price_slider_params.max_price ) { current_max_price = parseInt( woocommerce_price_slider_params.max_price, 10 ); } $( document.body ).bind( 'price_slider_create price_slider_slide', function( event, min, max ) { if ( woocommerce_price_slider_params.currency_pos === 'left' ) { $( '.price_slider_amount span.from' ).html( woocommerce_price_slider_params.currency_symbol + min ); $( '.price_slider_amount span.to' ).html( woocommerce_price_slider_params.currency_symbol + max ); } else if ( woocommerce_price_slider_params.currency_pos === 'left_space' ) { $( '.price_slider_amount span.from' ).html( woocommerce_price_slider_params.currency_symbol + ' ' + min ); $( '.price_slider_amount span.to' ).html( woocommerce_price_slider_params.currency_symbol + ' ' + max ); } else if ( woocommerce_price_slider_params.currency_pos === 'right' ) { $( '.price_slider_amount span.from' ).html( min + woocommerce_price_slider_params.currency_symbol ); $( '.price_slider_amount span.to' ).html( max + woocommerce_price_slider_params.currency_symbol ); } else if ( woocommerce_price_slider_params.currency_pos === 'right_space' ) { $( '.price_slider_amount span.from' ).html( min + ' ' + woocommerce_price_slider_params.currency_symbol ); $( '.price_slider_amount span.to' ).html( max + ' ' + woocommerce_price_slider_params.currency_symbol ); } $( document.body ).trigger( 'price_slider_updated', [ min, max ] ); }); $( '.price_slider' ).slider({ range: true, animate: true, min: min_price, max: max_price, values: [ current_min_price, current_max_price ], create: function() { $( '.price_slider_amount #min_price' ).val( current_min_price ); $( '.price_slider_amount #max_price' ).val( current_max_price ); $( document.body ).trigger( 'price_slider_create', [ current_min_price, current_max_price ] ); }, slide: function( event, ui ) { $( 'input#min_price' ).val( ui.values[0] ); $( 'input#max_price' ).val( ui.values[1] ); $( document.body ).trigger( 'price_slider_slide', [ ui.values[0], ui.values[1] ] ); }, change: function( event, ui ) { $( document.body ).trigger( 'price_slider_change', [ ui.values[0], ui.values[1] ] ); } }); }); assets/js/zeroclipboard/jquery.zeroclipboard.min.js000066600000057314152133032050016626 0ustar00/*! * jquery.zeroclipboard * Bind to the `beforecopy`, `copy`, `aftercopy`, and `copy-error` events, custom DOM-like events for clipboard injection generated using jQuery's Special Events API and ZeroClipboard's Core module. * Copyright (c) 2014 * Licensed MIT * https://github.com/zeroclipboard/jquery.zeroclipboard * v0.2.0 */ !function(a,b,c){"use strict";var d,e=!!b.ZeroClipboard;/*! * ZeroClipboard * The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. * Copyright (c) 2014 Jon Rohan, James M. Greene * Licensed MIT * http://zeroclipboard.org/ * v2.1.2 */ !function(a,b){var c,e=a,f=e.document,g=e.navigator,h=e.setTimeout,i=e.encodeURIComponent,j=e.ActiveXObject,k=e.Number.parseInt||e.parseInt,l=e.Number.parseFloat||e.parseFloat,m=e.Number.isNaN||e.isNaN,n=e.Math.round,o=e.Date.now,p=e.Object.keys,q=e.Object.defineProperty,r=e.Object.prototype.hasOwnProperty,s=e.Array.prototype.slice,t=function(a){return s.call(a,0)},u=function(){var a,c,d,e,f,g,h=t(arguments),i=h[0]||{};for(a=1,c=h.length;a=0&&h(function(){"boolean"!=typeof A.deactivated&&(A.deactivated=!0),A.deactivated===!0&&ya.emit({type:"error",name:"flash-deactivated"})},a),A.overdue=!1,ga()}},Q=function(){ya.clearData(),ya.blur(),ya.emit("destroy"),ha(),ya.off()},R=function(a,b){var c;if("object"==typeof a&&a&&"undefined"==typeof b)c=a,ya.clearData();else{if("string"!=typeof a||!a)return;c={},c[a]=b}for(var d in c)"string"==typeof d&&d&&r.call(c,d)&&"string"==typeof c[d]&&c[d]&&(D[d]=c[d])},S=function(a){"undefined"==typeof a?(y(D),E=null):"string"==typeof a&&r.call(D,a)&&delete D[a]},T=function(a){return"undefined"==typeof a?v(D):"string"==typeof a&&r.call(D,a)?D[a]:void 0},U=function(a){if(a&&1===a.nodeType){c&&(qa(c,H.activeClass),c!==a&&qa(c,H.hoverClass)),c=a,pa(a,H.hoverClass);var b=a.getAttribute("title")||H.title;if("string"==typeof b&&b){var d=fa(A.bridge);d&&d.setAttribute("title",b)}var e=H.forceHandCursor===!0||"pointer"===ra(a,"cursor");va(e),ua()}},V=function(){var a=fa(A.bridge);a&&(a.removeAttribute("title"),a.style.left="0px",a.style.top="-9999px",a.style.width="1px",a.style.top="1px"),c&&(qa(c,H.hoverClass),qa(c,H.activeClass),c=null)},W=function(){return c||null},X=function(a){return"string"==typeof a&&a&&/^[A-Za-z][A-Za-z0-9_:\-\.]*$/.test(a)},Y=function(a){var b;if("string"==typeof a&&a?(b=a,a={}):"object"==typeof a&&a&&"string"==typeof a.type&&a.type&&(b=a.type),b){u(a,{type:b.toLowerCase(),target:a.target||c||null,relatedTarget:a.relatedTarget||null,currentTarget:A&&A.bridge||null,timeStamp:a.timeStamp||o()||null});var d=F[a.type];return"error"===a.type&&a.name&&d&&(d=d[a.name]),d&&(a.message=d),"ready"===a.type&&u(a,{target:null,version:A.version}),"error"===a.type&&(/^flash-(disabled|outdated|unavailable|deactivated|overdue)$/.test(a.name)&&u(a,{target:null,minimumVersion:B}),/^flash-(outdated|unavailable|deactivated|overdue)$/.test(a.name)&&u(a,{version:A.version})),"copy"===a.type&&(a.clipboardData={setData:ya.setData,clearData:ya.clearData}),"aftercopy"===a.type&&(a=ja(a,E)),a.target&&!a.relatedTarget&&(a.relatedTarget=Z(a.target)),a=$(a)}},Z=function(a){var b=a&&a.getAttribute&&a.getAttribute("data-clipboard-target");return b?f.getElementById(b):null},$=function(a){if(a&&/^_(?:click|mouse(?:over|out|down|up|move))$/.test(a.type)){var c=a.target,d="_mouseover"===a.type&&a.relatedTarget?a.relatedTarget:b,g="_mouseout"===a.type&&a.relatedTarget?a.relatedTarget:b,h=ta(c),i=e.screenLeft||e.screenX||0,j=e.screenTop||e.screenY||0,k=f.body.scrollLeft+f.documentElement.scrollLeft,l=f.body.scrollTop+f.documentElement.scrollTop,m=h.left+("number"==typeof a._stageX?a._stageX:0),n=h.top+("number"==typeof a._stageY?a._stageY:0),o=m-k,p=n-l,q=i+o,r=j+p,s="number"==typeof a.movementX?a.movementX:0,t="number"==typeof a.movementY?a.movementY:0;delete a._stageX,delete a._stageY,u(a,{srcElement:c,fromElement:d,toElement:g,screenX:q,screenY:r,pageX:m,pageY:n,clientX:o,clientY:p,x:o,y:p,movementX:s,movementY:t,offsetX:0,offsetY:0,layerX:0,layerY:0})}return a},_=function(a){var b=a&&"string"==typeof a.type&&a.type||"";return!/^(?:(?:before)?copy|destroy)$/.test(b)},aa=function(a,b,c,d){d?h(function(){a.apply(b,c)},0):a.apply(b,c)},ba=function(a){if("object"==typeof a&&a&&a.type){var b=_(a),c=C["*"]||[],d=C[a.type]||[],f=c.concat(d);if(f&&f.length){var g,h,i,j,k,l=this;for(g=0,h=f.length;g"+(l?'':"")+'',b=k.firstChild,k=null,b.ZeroClipboard=ya,c.replaceChild(b,j)}return b||(b=f[H.swfObjectId],b&&(a=b.length)&&(b=b[a-1]),!b&&c&&(b=c.firstChild)),A.bridge=b||null,b},ha=function(){var a=A.bridge;if(a){var b=fa(a);b&&("activex"===A.pluginType&&"readyState"in a?(a.style.display="none",function c(){if(4===a.readyState){for(var d in a)"function"==typeof a[d]&&(a[d]=null);a.parentNode&&a.parentNode.removeChild(a),b.parentNode&&b.parentNode.removeChild(b)}else h(c,10)}()):(a.parentNode&&a.parentNode.removeChild(a),b.parentNode&&b.parentNode.removeChild(b))),A.ready=null,A.bridge=null,A.deactivated=null}},ia=function(a){var b={},c={};if("object"==typeof a&&a){for(var d in a)if(d&&r.call(a,d)&&"string"==typeof a[d]&&a[d])switch(d.toLowerCase()){case"text/plain":case"text":case"air:text":case"flash:text":b.text=a[d],c.text=d;break;case"text/html":case"html":case"air:html":case"flash:html":b.html=a[d],c.html=d;break;case"application/rtf":case"text/rtf":case"rtf":case"richtext":case"air:rtf":case"flash:rtf":b.rtf=a[d],c.rtf=d}return{data:b,formatMap:c}}},ja=function(a,b){if("object"!=typeof a||!a||"object"!=typeof b||!b)return a;var c={};for(var d in a)if(r.call(a,d)){if("success"!==d&&"data"!==d){c[d]=a[d];continue}c[d]={};var e=a[d];for(var f in e)f&&r.call(e,f)&&r.call(b,f)&&(c[d][b[f]]=e[f])}return c},ka=function(a,b){var c=null==b||b&&b.cacheBust===!0;return c?(a.indexOf("?")===-1?"?":"&")+"noCache="+o():""},la=function(a){var b,c,d,f,g="",h=[];if(a.trustedDomains&&("string"==typeof a.trustedDomains?f=[a.trustedDomains]:"object"==typeof a.trustedDomains&&"length"in a.trustedDomains&&(f=a.trustedDomains)),f&&f.length)for(b=0,c=f.length;b0){if(1===f&&"*"===e[0])return"always";if(e.indexOf(b)!==-1)return 1===f&&b===d?"sameDomain":"always"}return"never"}}(),oa=function(){try{return f.activeElement}catch(a){return null}},pa=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)||a.classList.add(b),a;if(b&&"string"==typeof b){var c=(b||"").split(/\s+/);if(1===a.nodeType)if(a.className){for(var d=" "+a.className+" ",e=a.className,f=0,g=c.length;f]*)?\s*[\/]?>/gi,"{\\pard \\brdrb \\brdrs \\brdrw10 \\brsp20 \\par}\n{\\pard\\par}\n"),d=d.replace(/<(?:br)(?:\s+[^>]*)?\s*[\/]?>/gi,"{\\pard\\par}\n"),d=d.replace(/<(?:p|div|section|article)(?:\s+[^>]*)?\s*[\/]>/gi,"{\\pard\\par}\n"),d=d.replace(/<(?:[^>]+)\/>/g,""),d=d.replace(/]*)?(?:\s+href=(["'])(?:javascript:void\(0?\);?|#|return false;?|void\(0?\);?|)\1)(?:\s+[^>]*)?>/gi,"{{{\n"),b=d,d=d.replace(/]*)?(?:\s+href=(["'])(.+)\1)(?:\s+[^>]*)?>/gi,'{\\field{\\*\\fldinst{HYPERLINK\n "$2"\n}}{\\fldrslt{\\ul\\cf1\n'),c=d!==b,d=d.replace(/]*)?>/gi,"{{{\n"),d=d.replace(/<\/a(?:\s+[^>]*)?>/gi,"\n}}}"),d=d.replace(/<(?:b|strong)(?:\s+[^>]*)?>/gi,"{\\b\n"),d=d.replace(/<(?:i|em)(?:\s+[^>]*)?>/gi,"{\\i\n"),d=d.replace(/<(?:u|ins)(?:\s+[^>]*)?>/gi,"{\\ul\n"),d=d.replace(/<(?:strike|del)(?:\s+[^>]*)?>/gi,"{\\strike\n"),d=d.replace(/]*)?>/gi,"{\\super\n"),d=d.replace(/]*)?>/gi,"{\\sub\n"),d=d.replace(/<(?:p|div|section|article)(?:\s+[^>]*)?>/gi,"{\\pard\n"),d=d.replace(/<\/(?:p|div|section|article)(?:\s+[^>]*)?>/gi,"\n\\par}\n"),d=d.replace(/<\/(?:b|strong|i|em|u|ins|strike|del|sup|sub)(?:\s+[^>]*)?>/gi,"\n}"),d=d.replace(/<(?:[^>]+)>/g,""),d="{\\rtf1\\ansi\n"+(c?"{\\colortbl\n;\n\\red0\\green0\\blue255;\n}\n":"")+d+"\n}"}function f(b){var c=a.Event(b.type,a.extend(b,{_source:"swf"}));if(a(b.target).trigger(c),"copy"===c.type){if(a.event.special.copy.options.requirePreventDefault===!0&&!c.isDefaultPrevented()){b.clipboardData.clearData();var f=d();(f["text/plain"]||f["text/html"])&&b.clipboardData.setData(f)}var g=o.getData();if(a.event.special.copy.options.autoConvertHtmlToRtf===!0&&g["text/html"]&&!g["application/rtf"]){var h=e(g["text/html"]);b.clipboardData.setData("application/rtf",h)}}}function g(b){var c=a.Event("copy-error",a.extend(b,{type:"copy-error",_source:"swf"}));a(b.target).trigger(c)}function h(){a.event.props.push("clipboardData"),o.config(a.extend(!0,{autoActivate:!1},q.options)),o.on("beforecopy copy aftercopy",f),o.on("error",g),o.create()}function i(){o.destroy();var b=a.event.props.indexOf("clipboardData");b!==-1&&a.event.props.splice(b,1)}function j(b){l(b),b.target&&b.target!==o.activeElement()&&b.target!==a("#"+o.config("containerId"))[0]&&b.target!==a("#"+o.config("swfObjectId"))[0]&&o.focus(b.target)}function k(b){l(b),b.relatedTarget&&b.relatedTarget!==o.activeElement()&&b.relatedTarget!==a("#"+o.config("containerId"))[0]&&b.relatedTarget!==a("#"+o.config("swfObjectId"))[0]&&o.blur()}function l(a){o.isFlashUnusable()||"js"===a.originalEvent._source||(a.stopImmediatePropagation(),a.preventDefault())}var m=0,n=".zeroclipboard",o=b.ZeroClipboard,p=o.config("trustedDomains"),q={add:function(b){0===m++&&h();var c=n+(b.namespace?"."+b.namespace:""),d=b.selector,e="zc|{"+d+"}|{"+c+"}|count",f=a(this);"number"!=typeof f.data(e)&&f.data(e,0),0===f.data(e)&&(f.on("mouseenter"+c,d,j),f.on("mouseleave"+c,d,k),f.on("mouseover"+c,d,l),f.on("mouseout"+c,d,l),f.on("mousemove"+c,d,l),f.on("mousedown"+c,d,l),f.on("mouseup"+c,d,l),f.on("click"+c,d,l)),f.data(e,f.data(e)+1)},remove:function(b){var c=n+(b.namespace?"."+b.namespace:""),d=b.selector,e="zc|{"+d+"}|{"+c+"}|count",f=a(this);f.data(e,f.data(e)-1),0===f.data(e)&&(f.off("click"+c,d,l),f.off("mouseup"+c,d,l),f.off("mousedown"+c,d,l),f.off("mousemove"+c,d,l),f.off("mouseout"+c,d,l),f.off("mouseover"+c,d,l),f.off("mouseleave"+c,d,k),f.off("mouseenter"+c,d,j),f.removeData(e)),0===--m&&i()},trigger:function(b){if("copy"===b.type){var c=a(this),d="swf"===b._source;delete b._source,d||(c.trigger(a.extend(!0,{},b,{type:"beforecopy"})),c.one("copy",function(){var d={},e=o.getData();a.each(e,function(a){d[a]=!1});var f=a.extend(!0,{},b,{type:"aftercopy",data:a.extend(!0,{},e),success:d});c.trigger(f)}))}},_default:function(){return!0},options:{requirePreventDefault:!0,autoConvertHtmlToRtf:!0,trustedDomains:p,hoverClass:"hover",activeClass:"active"}};a.event.special.beforecopy=q,a.event.special.copy=q,a.event.special.aftercopy=q,a.event.special["copy-error"]=q}(jQuery,function(){return this||b}()),e||delete b.ZeroClipboard}(jQuery,function(){return this||window}());assets/js/zeroclipboard/jquery.zeroclipboard.js000066600000202325152133032050016036 0ustar00/*! * jquery.zeroclipboard * Bind to the `beforecopy`, `copy`, `aftercopy`, and `copy-error` events, custom DOM-like events for clipboard injection generated using jQuery's Special Events API and ZeroClipboard's Core module. * Copyright (c) 2014 * Licensed MIT * https://github.com/zeroclipboard/jquery.zeroclipboard * v0.2.0 */ (function($, window, undefined) { "use strict"; var require, module, exports; var zcExistsAlready = !!window.ZeroClipboard; /*! * ZeroClipboard * The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. * Copyright (c) 2014 Jon Rohan, James M. Greene * Licensed MIT * http://zeroclipboard.org/ * v2.1.2 */ (function(window, undefined) { /** * Store references to critically important global functions that may be * overridden on certain web pages. */ var _window = window, _document = _window.document, _navigator = _window.navigator, _setTimeout = _window.setTimeout, _encodeURIComponent = _window.encodeURIComponent, _ActiveXObject = _window.ActiveXObject, _parseInt = _window.Number.parseInt || _window.parseInt, _parseFloat = _window.Number.parseFloat || _window.parseFloat, _isNaN = _window.Number.isNaN || _window.isNaN, _round = _window.Math.round, _now = _window.Date.now, _keys = _window.Object.keys, _defineProperty = _window.Object.defineProperty, _hasOwn = _window.Object.prototype.hasOwnProperty, _slice = _window.Array.prototype.slice; /** * Convert an `arguments` object into an Array. * * @returns The arguments as an Array * @private */ var _args = function(argumentsObj) { return _slice.call(argumentsObj, 0); }; /** * Shallow-copy the owned, enumerable properties of one object over to another, similar to jQuery's `$.extend`. * * @returns The target object, augmented * @private */ var _extend = function() { var i, len, arg, prop, src, copy, args = _args(arguments), target = args[0] || {}; for (i = 1, len = args.length; i < len; i++) { if ((arg = args[i]) != null) { for (prop in arg) { if (_hasOwn.call(arg, prop)) { src = target[prop]; copy = arg[prop]; if (target !== copy && copy !== undefined) { target[prop] = copy; } } } } } return target; }; /** * Return a deep copy of the source object or array. * * @returns Object or Array * @private */ var _deepCopy = function(source) { var copy, i, len, prop; if (typeof source !== "object" || source == null) { copy = source; } else if (typeof source.length === "number") { copy = []; for (i = 0, len = source.length; i < len; i++) { if (_hasOwn.call(source, i)) { copy[i] = _deepCopy(source[i]); } } } else { copy = {}; for (prop in source) { if (_hasOwn.call(source, prop)) { copy[prop] = _deepCopy(source[prop]); } } } return copy; }; /** * Makes a shallow copy of `obj` (like `_extend`) but filters its properties based on a list of `keys` to keep. * The inverse of `_omit`, mostly. The big difference is that these properties do NOT need to be enumerable to * be kept. * * @returns A new filtered object. * @private */ var _pick = function(obj, keys) { var newObj = {}; for (var i = 0, len = keys.length; i < len; i++) { if (keys[i] in obj) { newObj[keys[i]] = obj[keys[i]]; } } return newObj; }; /** * Makes a shallow copy of `obj` (like `_extend`) but filters its properties based on a list of `keys` to omit. * The inverse of `_pick`. * * @returns A new filtered object. * @private */ var _omit = function(obj, keys) { var newObj = {}; for (var prop in obj) { if (keys.indexOf(prop) === -1) { newObj[prop] = obj[prop]; } } return newObj; }; /** * Remove all owned, enumerable properties from an object. * * @returns The original object without its owned, enumerable properties. * @private */ var _deleteOwnProperties = function(obj) { if (obj) { for (var prop in obj) { if (_hasOwn.call(obj, prop)) { delete obj[prop]; } } } return obj; }; /** * Determine if an element is contained within another element. * * @returns Boolean * @private */ var _containedBy = function(el, ancestorEl) { if (el && el.nodeType === 1 && el.ownerDocument && ancestorEl && (ancestorEl.nodeType === 1 && ancestorEl.ownerDocument && ancestorEl.ownerDocument === el.ownerDocument || ancestorEl.nodeType === 9 && !ancestorEl.ownerDocument && ancestorEl === el.ownerDocument)) { do { if (el === ancestorEl) { return true; } el = el.parentNode; } while (el); } return false; }; /** * Keep track of the state of the Flash object. * @private */ var _flashState = { bridge: null, version: "0.0.0", pluginType: "unknown", disabled: null, outdated: null, unavailable: null, deactivated: null, overdue: null, ready: null }; /** * The minimum Flash Player version required to use ZeroClipboard completely. * @readonly * @private */ var _minimumFlashVersion = "11.0.0"; /** * Keep track of all event listener registrations. * @private */ var _handlers = {}; /** * Keep track of the currently activated element. * @private */ var _currentElement; /** * Keep track of data for the pending clipboard transaction. * @private */ var _clipData = {}; /** * Keep track of data formats for the pending clipboard transaction. * @private */ var _clipDataFormatMap = null; /** * The `message` store for events * @private */ var _eventMessages = { ready: "Flash communication is established", error: { "flash-disabled": "Flash is disabled or not installed", "flash-outdated": "Flash is too outdated to support ZeroClipboard", "flash-unavailable": "Flash is unable to communicate bidirectionally with JavaScript", "flash-deactivated": "Flash is too outdated for your browser and/or is configured as click-to-activate", "flash-overdue": "Flash communication was established but NOT within the acceptable time limit" } }; /** * The presumed location of the "ZeroClipboard.swf" file, based on the location * of the executing JavaScript file (e.g. "ZeroClipboard.js", etc.). * @private */ var _swfPath = function() { var i, jsDir, tmpJsPath, jsPath, swfPath = "ZeroClipboard.swf"; if (!(_document.currentScript && (jsPath = _document.currentScript.src))) { var scripts = _document.getElementsByTagName("script"); if ("readyState" in scripts[0]) { for (i = scripts.length; i--; ) { if (scripts[i].readyState === "interactive" && (jsPath = scripts[i].src)) { break; } } } else if (_document.readyState === "loading") { jsPath = scripts[scripts.length - 1].src; } else { for (i = scripts.length; i--; ) { tmpJsPath = scripts[i].src; if (!tmpJsPath) { jsDir = null; break; } tmpJsPath = tmpJsPath.split("#")[0].split("?")[0]; tmpJsPath = tmpJsPath.slice(0, tmpJsPath.lastIndexOf("/") + 1); if (jsDir == null) { jsDir = tmpJsPath; } else if (jsDir !== tmpJsPath) { jsDir = null; break; } } if (jsDir !== null) { jsPath = jsDir; } } } if (jsPath) { jsPath = jsPath.split("#")[0].split("?")[0]; swfPath = jsPath.slice(0, jsPath.lastIndexOf("/") + 1) + swfPath; } return swfPath; }(); /** * ZeroClipboard configuration defaults for the Core module. * @private */ var _globalConfig = { swfPath: _swfPath, trustedDomains: window.location.host ? [ window.location.host ] : [], cacheBust: true, forceEnhancedClipboard: false, flashLoadTimeout: 3e4, autoActivate: true, bubbleEvents: true, containerId: "global-zeroclipboard-html-bridge", containerClass: "global-zeroclipboard-container", swfObjectId: "global-zeroclipboard-flash-bridge", hoverClass: "zeroclipboard-is-hover", activeClass: "zeroclipboard-is-active", forceHandCursor: false, title: null, zIndex: 999999999 }; /** * The underlying implementation of `ZeroClipboard.config`. * @private */ var _config = function(options) { if (typeof options === "object" && options !== null) { for (var prop in options) { if (_hasOwn.call(options, prop)) { if (/^(?:forceHandCursor|title|zIndex|bubbleEvents)$/.test(prop)) { _globalConfig[prop] = options[prop]; } else if (_flashState.bridge == null) { if (prop === "containerId" || prop === "swfObjectId") { if (_isValidHtml4Id(options[prop])) { _globalConfig[prop] = options[prop]; } else { throw new Error("The specified `" + prop + "` value is not valid as an HTML4 Element ID"); } } else { _globalConfig[prop] = options[prop]; } } } } } if (typeof options === "string" && options) { if (_hasOwn.call(_globalConfig, options)) { return _globalConfig[options]; } return; } return _deepCopy(_globalConfig); }; /** * The underlying implementation of `ZeroClipboard.state`. * @private */ var _state = function() { return { browser: _pick(_navigator, [ "userAgent", "platform", "appName" ]), flash: _omit(_flashState, [ "bridge" ]), zeroclipboard: { version: ZeroClipboard.version, config: ZeroClipboard.config() } }; }; /** * The underlying implementation of `ZeroClipboard.isFlashUnusable`. * @private */ var _isFlashUnusable = function() { return !!(_flashState.disabled || _flashState.outdated || _flashState.unavailable || _flashState.deactivated); }; /** * The underlying implementation of `ZeroClipboard.on`. * @private */ var _on = function(eventType, listener) { var i, len, events, added = {}; if (typeof eventType === "string" && eventType) { events = eventType.toLowerCase().split(/\s+/); } else if (typeof eventType === "object" && eventType && typeof listener === "undefined") { for (i in eventType) { if (_hasOwn.call(eventType, i) && typeof i === "string" && i && typeof eventType[i] === "function") { ZeroClipboard.on(i, eventType[i]); } } } if (events && events.length) { for (i = 0, len = events.length; i < len; i++) { eventType = events[i].replace(/^on/, ""); added[eventType] = true; if (!_handlers[eventType]) { _handlers[eventType] = []; } _handlers[eventType].push(listener); } if (added.ready && _flashState.ready) { ZeroClipboard.emit({ type: "ready" }); } if (added.error) { var errorTypes = [ "disabled", "outdated", "unavailable", "deactivated", "overdue" ]; for (i = 0, len = errorTypes.length; i < len; i++) { if (_flashState[errorTypes[i]] === true) { ZeroClipboard.emit({ type: "error", name: "flash-" + errorTypes[i] }); break; } } } } return ZeroClipboard; }; /** * The underlying implementation of `ZeroClipboard.off`. * @private */ var _off = function(eventType, listener) { var i, len, foundIndex, events, perEventHandlers; if (arguments.length === 0) { events = _keys(_handlers); } else if (typeof eventType === "string" && eventType) { events = eventType.split(/\s+/); } else if (typeof eventType === "object" && eventType && typeof listener === "undefined") { for (i in eventType) { if (_hasOwn.call(eventType, i) && typeof i === "string" && i && typeof eventType[i] === "function") { ZeroClipboard.off(i, eventType[i]); } } } if (events && events.length) { for (i = 0, len = events.length; i < len; i++) { eventType = events[i].toLowerCase().replace(/^on/, ""); perEventHandlers = _handlers[eventType]; if (perEventHandlers && perEventHandlers.length) { if (listener) { foundIndex = perEventHandlers.indexOf(listener); while (foundIndex !== -1) { perEventHandlers.splice(foundIndex, 1); foundIndex = perEventHandlers.indexOf(listener, foundIndex); } } else { perEventHandlers.length = 0; } } } } return ZeroClipboard; }; /** * The underlying implementation of `ZeroClipboard.handlers`. * @private */ var _listeners = function(eventType) { var copy; if (typeof eventType === "string" && eventType) { copy = _deepCopy(_handlers[eventType]) || null; } else { copy = _deepCopy(_handlers); } return copy; }; /** * The underlying implementation of `ZeroClipboard.emit`. * @private */ var _emit = function(event) { var eventCopy, returnVal, tmp; event = _createEvent(event); if (!event) { return; } if (_preprocessEvent(event)) { return; } if (event.type === "ready" && _flashState.overdue === true) { return ZeroClipboard.emit({ type: "error", name: "flash-overdue" }); } eventCopy = _extend({}, event); _dispatchCallbacks.call(this, eventCopy); if (event.type === "copy") { tmp = _mapClipDataToFlash(_clipData); returnVal = tmp.data; _clipDataFormatMap = tmp.formatMap; } return returnVal; }; /** * The underlying implementation of `ZeroClipboard.create`. * @private */ var _create = function() { if (typeof _flashState.ready !== "boolean") { _flashState.ready = false; } if (!ZeroClipboard.isFlashUnusable() && _flashState.bridge === null) { var maxWait = _globalConfig.flashLoadTimeout; if (typeof maxWait === "number" && maxWait >= 0) { _setTimeout(function() { if (typeof _flashState.deactivated !== "boolean") { _flashState.deactivated = true; } if (_flashState.deactivated === true) { ZeroClipboard.emit({ type: "error", name: "flash-deactivated" }); } }, maxWait); } _flashState.overdue = false; _embedSwf(); } }; /** * The underlying implementation of `ZeroClipboard.destroy`. * @private */ var _destroy = function() { ZeroClipboard.clearData(); ZeroClipboard.blur(); ZeroClipboard.emit("destroy"); _unembedSwf(); ZeroClipboard.off(); }; /** * The underlying implementation of `ZeroClipboard.setData`. * @private */ var _setData = function(format, data) { var dataObj; if (typeof format === "object" && format && typeof data === "undefined") { dataObj = format; ZeroClipboard.clearData(); } else if (typeof format === "string" && format) { dataObj = {}; dataObj[format] = data; } else { return; } for (var dataFormat in dataObj) { if (typeof dataFormat === "string" && dataFormat && _hasOwn.call(dataObj, dataFormat) && typeof dataObj[dataFormat] === "string" && dataObj[dataFormat]) { _clipData[dataFormat] = dataObj[dataFormat]; } } }; /** * The underlying implementation of `ZeroClipboard.clearData`. * @private */ var _clearData = function(format) { if (typeof format === "undefined") { _deleteOwnProperties(_clipData); _clipDataFormatMap = null; } else if (typeof format === "string" && _hasOwn.call(_clipData, format)) { delete _clipData[format]; } }; /** * The underlying implementation of `ZeroClipboard.getData`. * @private */ var _getData = function(format) { if (typeof format === "undefined") { return _deepCopy(_clipData); } else if (typeof format === "string" && _hasOwn.call(_clipData, format)) { return _clipData[format]; } }; /** * The underlying implementation of `ZeroClipboard.focus`/`ZeroClipboard.activate`. * @private */ var _focus = function(element) { if (!(element && element.nodeType === 1)) { return; } if (_currentElement) { _removeClass(_currentElement, _globalConfig.activeClass); if (_currentElement !== element) { _removeClass(_currentElement, _globalConfig.hoverClass); } } _currentElement = element; _addClass(element, _globalConfig.hoverClass); var newTitle = element.getAttribute("title") || _globalConfig.title; if (typeof newTitle === "string" && newTitle) { var htmlBridge = _getHtmlBridge(_flashState.bridge); if (htmlBridge) { htmlBridge.setAttribute("title", newTitle); } } var useHandCursor = _globalConfig.forceHandCursor === true || _getStyle(element, "cursor") === "pointer"; _setHandCursor(useHandCursor); _reposition(); }; /** * The underlying implementation of `ZeroClipboard.blur`/`ZeroClipboard.deactivate`. * @private */ var _blur = function() { var htmlBridge = _getHtmlBridge(_flashState.bridge); if (htmlBridge) { htmlBridge.removeAttribute("title"); htmlBridge.style.left = "0px"; htmlBridge.style.top = "-9999px"; htmlBridge.style.width = "1px"; htmlBridge.style.top = "1px"; } if (_currentElement) { _removeClass(_currentElement, _globalConfig.hoverClass); _removeClass(_currentElement, _globalConfig.activeClass); _currentElement = null; } }; /** * The underlying implementation of `ZeroClipboard.activeElement`. * @private */ var _activeElement = function() { return _currentElement || null; }; /** * Check if a value is a valid HTML4 `ID` or `Name` token. * @private */ var _isValidHtml4Id = function(id) { return typeof id === "string" && id && /^[A-Za-z][A-Za-z0-9_:\-\.]*$/.test(id); }; /** * Create or update an `event` object, based on the `eventType`. * @private */ var _createEvent = function(event) { var eventType; if (typeof event === "string" && event) { eventType = event; event = {}; } else if (typeof event === "object" && event && typeof event.type === "string" && event.type) { eventType = event.type; } if (!eventType) { return; } _extend(event, { type: eventType.toLowerCase(), target: event.target || _currentElement || null, relatedTarget: event.relatedTarget || null, currentTarget: _flashState && _flashState.bridge || null, timeStamp: event.timeStamp || _now() || null }); var msg = _eventMessages[event.type]; if (event.type === "error" && event.name && msg) { msg = msg[event.name]; } if (msg) { event.message = msg; } if (event.type === "ready") { _extend(event, { target: null, version: _flashState.version }); } if (event.type === "error") { if (/^flash-(disabled|outdated|unavailable|deactivated|overdue)$/.test(event.name)) { _extend(event, { target: null, minimumVersion: _minimumFlashVersion }); } if (/^flash-(outdated|unavailable|deactivated|overdue)$/.test(event.name)) { _extend(event, { version: _flashState.version }); } } if (event.type === "copy") { event.clipboardData = { setData: ZeroClipboard.setData, clearData: ZeroClipboard.clearData }; } if (event.type === "aftercopy") { event = _mapClipResultsFromFlash(event, _clipDataFormatMap); } if (event.target && !event.relatedTarget) { event.relatedTarget = _getRelatedTarget(event.target); } event = _addMouseData(event); return event; }; /** * Get a relatedTarget from the target's `data-clipboard-target` attribute * @private */ var _getRelatedTarget = function(targetEl) { var relatedTargetId = targetEl && targetEl.getAttribute && targetEl.getAttribute("data-clipboard-target"); return relatedTargetId ? _document.getElementById(relatedTargetId) : null; }; /** * Add element and position data to `MouseEvent` instances * @private */ var _addMouseData = function(event) { if (event && /^_(?:click|mouse(?:over|out|down|up|move))$/.test(event.type)) { var srcElement = event.target; var fromElement = event.type === "_mouseover" && event.relatedTarget ? event.relatedTarget : undefined; var toElement = event.type === "_mouseout" && event.relatedTarget ? event.relatedTarget : undefined; var pos = _getDOMObjectPosition(srcElement); var screenLeft = _window.screenLeft || _window.screenX || 0; var screenTop = _window.screenTop || _window.screenY || 0; var scrollLeft = _document.body.scrollLeft + _document.documentElement.scrollLeft; var scrollTop = _document.body.scrollTop + _document.documentElement.scrollTop; var pageX = pos.left + (typeof event._stageX === "number" ? event._stageX : 0); var pageY = pos.top + (typeof event._stageY === "number" ? event._stageY : 0); var clientX = pageX - scrollLeft; var clientY = pageY - scrollTop; var screenX = screenLeft + clientX; var screenY = screenTop + clientY; var moveX = typeof event.movementX === "number" ? event.movementX : 0; var moveY = typeof event.movementY === "number" ? event.movementY : 0; delete event._stageX; delete event._stageY; _extend(event, { srcElement: srcElement, fromElement: fromElement, toElement: toElement, screenX: screenX, screenY: screenY, pageX: pageX, pageY: pageY, clientX: clientX, clientY: clientY, x: clientX, y: clientY, movementX: moveX, movementY: moveY, offsetX: 0, offsetY: 0, layerX: 0, layerY: 0 }); } return event; }; /** * Determine if an event's registered handlers should be execute synchronously or asynchronously. * * @returns {boolean} * @private */ var _shouldPerformAsync = function(event) { var eventType = event && typeof event.type === "string" && event.type || ""; return !/^(?:(?:before)?copy|destroy)$/.test(eventType); }; /** * Control if a callback should be executed asynchronously or not. * * @returns `undefined` * @private */ var _dispatchCallback = function(func, context, args, async) { if (async) { _setTimeout(function() { func.apply(context, args); }, 0); } else { func.apply(context, args); } }; /** * Handle the actual dispatching of events to client instances. * * @returns `undefined` * @private */ var _dispatchCallbacks = function(event) { if (!(typeof event === "object" && event && event.type)) { return; } var async = _shouldPerformAsync(event); var wildcardTypeHandlers = _handlers["*"] || []; var specificTypeHandlers = _handlers[event.type] || []; var handlers = wildcardTypeHandlers.concat(specificTypeHandlers); if (handlers && handlers.length) { var i, len, func, context, eventCopy, originalContext = this; for (i = 0, len = handlers.length; i < len; i++) { func = handlers[i]; context = originalContext; if (typeof func === "string" && typeof _window[func] === "function") { func = _window[func]; } if (typeof func === "object" && func && typeof func.handleEvent === "function") { context = func; func = func.handleEvent; } if (typeof func === "function") { eventCopy = _extend({}, event); _dispatchCallback(func, context, [ eventCopy ], async); } } } return this; }; /** * Preprocess any special behaviors, reactions, or state changes after receiving this event. * Executes only once per event emitted, NOT once per client. * @private */ var _preprocessEvent = function(event) { var element = event.target || _currentElement || null; var sourceIsSwf = event._source === "swf"; delete event._source; var flashErrorNames = [ "flash-disabled", "flash-outdated", "flash-unavailable", "flash-deactivated", "flash-overdue" ]; switch (event.type) { case "error": if (flashErrorNames.indexOf(event.name) !== -1) { _extend(_flashState, { disabled: event.name === "flash-disabled", outdated: event.name === "flash-outdated", unavailable: event.name === "flash-unavailable", deactivated: event.name === "flash-deactivated", overdue: event.name === "flash-overdue", ready: false }); } break; case "ready": var wasDeactivated = _flashState.deactivated === true; _extend(_flashState, { disabled: false, outdated: false, unavailable: false, deactivated: false, overdue: wasDeactivated, ready: !wasDeactivated }); break; case "copy": var textContent, htmlContent, targetEl = event.relatedTarget; if (!(_clipData["text/html"] || _clipData["text/plain"]) && targetEl && (htmlContent = targetEl.value || targetEl.outerHTML || targetEl.innerHTML) && (textContent = targetEl.value || targetEl.textContent || targetEl.innerText)) { event.clipboardData.clearData(); event.clipboardData.setData("text/plain", textContent); if (htmlContent !== textContent) { event.clipboardData.setData("text/html", htmlContent); } } else if (!_clipData["text/plain"] && event.target && (textContent = event.target.getAttribute("data-clipboard-text"))) { event.clipboardData.clearData(); event.clipboardData.setData("text/plain", textContent); } break; case "aftercopy": ZeroClipboard.clearData(); if (element && element !== _safeActiveElement() && element.focus) { element.focus(); } break; case "_mouseover": ZeroClipboard.focus(element); if (_globalConfig.bubbleEvents === true && sourceIsSwf) { if (element && element !== event.relatedTarget && !_containedBy(event.relatedTarget, element)) { _fireMouseEvent(_extend({}, event, { type: "mouseenter", bubbles: false, cancelable: false })); } _fireMouseEvent(_extend({}, event, { type: "mouseover" })); } break; case "_mouseout": ZeroClipboard.blur(); if (_globalConfig.bubbleEvents === true && sourceIsSwf) { if (element && element !== event.relatedTarget && !_containedBy(event.relatedTarget, element)) { _fireMouseEvent(_extend({}, event, { type: "mouseleave", bubbles: false, cancelable: false })); } _fireMouseEvent(_extend({}, event, { type: "mouseout" })); } break; case "_mousedown": _addClass(element, _globalConfig.activeClass); if (_globalConfig.bubbleEvents === true && sourceIsSwf) { _fireMouseEvent(_extend({}, event, { type: event.type.slice(1) })); } break; case "_mouseup": _removeClass(element, _globalConfig.activeClass); if (_globalConfig.bubbleEvents === true && sourceIsSwf) { _fireMouseEvent(_extend({}, event, { type: event.type.slice(1) })); } break; case "_click": case "_mousemove": if (_globalConfig.bubbleEvents === true && sourceIsSwf) { _fireMouseEvent(_extend({}, event, { type: event.type.slice(1) })); } break; } if (/^_(?:click|mouse(?:over|out|down|up|move))$/.test(event.type)) { return true; } }; /** * Dispatch a synthetic MouseEvent. * * @returns `undefined` * @private */ var _fireMouseEvent = function(event) { if (!(event && typeof event.type === "string" && event)) { return; } var e, target = event.target || null, doc = target && target.ownerDocument || _document, defaults = { view: doc.defaultView || _window, canBubble: true, cancelable: true, detail: event.type === "click" ? 1 : 0, button: typeof event.which === "number" ? event.which - 1 : typeof event.button === "number" ? event.button : doc.createEvent ? 0 : 1 }, args = _extend(defaults, event); if (!target) { return; } if (doc.createEvent && target.dispatchEvent) { args = [ args.type, args.canBubble, args.cancelable, args.view, args.detail, args.screenX, args.screenY, args.clientX, args.clientY, args.ctrlKey, args.altKey, args.shiftKey, args.metaKey, args.button, args.relatedTarget ]; e = doc.createEvent("MouseEvents"); if (e.initMouseEvent) { e.initMouseEvent.apply(e, args); e._source = "js"; target.dispatchEvent(e); } } }; /** * Create the HTML bridge element to embed the Flash object into. * @private */ var _createHtmlBridge = function() { var container = _document.createElement("div"); container.id = _globalConfig.containerId; container.className = _globalConfig.containerClass; container.style.position = "absolute"; container.style.left = "0px"; container.style.top = "-9999px"; container.style.width = "1px"; container.style.height = "1px"; container.style.zIndex = "" + _getSafeZIndex(_globalConfig.zIndex); return container; }; /** * Get the HTML element container that wraps the Flash bridge object/element. * @private */ var _getHtmlBridge = function(flashBridge) { var htmlBridge = flashBridge && flashBridge.parentNode; while (htmlBridge && htmlBridge.nodeName === "OBJECT" && htmlBridge.parentNode) { htmlBridge = htmlBridge.parentNode; } return htmlBridge || null; }; /** * Create the SWF object. * * @returns The SWF object reference. * @private */ var _embedSwf = function() { var len, flashBridge = _flashState.bridge, container = _getHtmlBridge(flashBridge); if (!flashBridge) { var allowScriptAccess = _determineScriptAccess(_window.location.host, _globalConfig); var allowNetworking = allowScriptAccess === "never" ? "none" : "all"; var flashvars = _vars(_globalConfig); var swfUrl = _globalConfig.swfPath + _cacheBust(_globalConfig.swfPath, _globalConfig); container = _createHtmlBridge(); var divToBeReplaced = _document.createElement("div"); container.appendChild(divToBeReplaced); _document.body.appendChild(container); var tmpDiv = _document.createElement("div"); var oldIE = _flashState.pluginType === "activex"; tmpDiv.innerHTML = '" + (oldIE ? '' : "") + '' + '' + '' + '' + '' + ""; flashBridge = tmpDiv.firstChild; tmpDiv = null; flashBridge.ZeroClipboard = ZeroClipboard; container.replaceChild(flashBridge, divToBeReplaced); } if (!flashBridge) { flashBridge = _document[_globalConfig.swfObjectId]; if (flashBridge && (len = flashBridge.length)) { flashBridge = flashBridge[len - 1]; } if (!flashBridge && container) { flashBridge = container.firstChild; } } _flashState.bridge = flashBridge || null; return flashBridge; }; /** * Destroy the SWF object. * @private */ var _unembedSwf = function() { var flashBridge = _flashState.bridge; if (flashBridge) { var htmlBridge = _getHtmlBridge(flashBridge); if (htmlBridge) { if (_flashState.pluginType === "activex" && "readyState" in flashBridge) { flashBridge.style.display = "none"; (function removeSwfFromIE() { if (flashBridge.readyState === 4) { for (var prop in flashBridge) { if (typeof flashBridge[prop] === "function") { flashBridge[prop] = null; } } if (flashBridge.parentNode) { flashBridge.parentNode.removeChild(flashBridge); } if (htmlBridge.parentNode) { htmlBridge.parentNode.removeChild(htmlBridge); } } else { _setTimeout(removeSwfFromIE, 10); } })(); } else { if (flashBridge.parentNode) { flashBridge.parentNode.removeChild(flashBridge); } if (htmlBridge.parentNode) { htmlBridge.parentNode.removeChild(htmlBridge); } } } _flashState.ready = null; _flashState.bridge = null; _flashState.deactivated = null; } }; /** * Map the data format names of the "clipData" to Flash-friendly names. * * @returns A new transformed object. * @private */ var _mapClipDataToFlash = function(clipData) { var newClipData = {}, formatMap = {}; if (!(typeof clipData === "object" && clipData)) { return; } for (var dataFormat in clipData) { if (dataFormat && _hasOwn.call(clipData, dataFormat) && typeof clipData[dataFormat] === "string" && clipData[dataFormat]) { switch (dataFormat.toLowerCase()) { case "text/plain": case "text": case "air:text": case "flash:text": newClipData.text = clipData[dataFormat]; formatMap.text = dataFormat; break; case "text/html": case "html": case "air:html": case "flash:html": newClipData.html = clipData[dataFormat]; formatMap.html = dataFormat; break; case "application/rtf": case "text/rtf": case "rtf": case "richtext": case "air:rtf": case "flash:rtf": newClipData.rtf = clipData[dataFormat]; formatMap.rtf = dataFormat; break; default: break; } } } return { data: newClipData, formatMap: formatMap }; }; /** * Map the data format names from Flash-friendly names back to their original "clipData" names (via a format mapping). * * @returns A new transformed object. * @private */ var _mapClipResultsFromFlash = function(clipResults, formatMap) { if (!(typeof clipResults === "object" && clipResults && typeof formatMap === "object" && formatMap)) { return clipResults; } var newResults = {}; for (var prop in clipResults) { if (_hasOwn.call(clipResults, prop)) { if (prop !== "success" && prop !== "data") { newResults[prop] = clipResults[prop]; continue; } newResults[prop] = {}; var tmpHash = clipResults[prop]; for (var dataFormat in tmpHash) { if (dataFormat && _hasOwn.call(tmpHash, dataFormat) && _hasOwn.call(formatMap, dataFormat)) { newResults[prop][formatMap[dataFormat]] = tmpHash[dataFormat]; } } } } return newResults; }; /** * Will look at a path, and will create a "?noCache={time}" or "&noCache={time}" * query param string to return. Does NOT append that string to the original path. * This is useful because ExternalInterface often breaks when a Flash SWF is cached. * * @returns The `noCache` query param with necessary "?"/"&" prefix. * @private */ var _cacheBust = function(path, options) { var cacheBust = options == null || options && options.cacheBust === true; if (cacheBust) { return (path.indexOf("?") === -1 ? "?" : "&") + "noCache=" + _now(); } else { return ""; } }; /** * Creates a query string for the FlashVars param. * Does NOT include the cache-busting query param. * * @returns FlashVars query string * @private */ var _vars = function(options) { var i, len, domain, domains, str = "", trustedOriginsExpanded = []; if (options.trustedDomains) { if (typeof options.trustedDomains === "string") { domains = [ options.trustedDomains ]; } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) { domains = options.trustedDomains; } } if (domains && domains.length) { for (i = 0, len = domains.length; i < len; i++) { if (_hasOwn.call(domains, i) && domains[i] && typeof domains[i] === "string") { domain = _extractDomain(domains[i]); if (!domain) { continue; } if (domain === "*") { trustedOriginsExpanded.length = 0; trustedOriginsExpanded.push(domain); break; } trustedOriginsExpanded.push.apply(trustedOriginsExpanded, [ domain, "//" + domain, _window.location.protocol + "//" + domain ]); } } } if (trustedOriginsExpanded.length) { str += "trustedOrigins=" + _encodeURIComponent(trustedOriginsExpanded.join(",")); } if (options.forceEnhancedClipboard === true) { str += (str ? "&" : "") + "forceEnhancedClipboard=true"; } if (typeof options.swfObjectId === "string" && options.swfObjectId) { str += (str ? "&" : "") + "swfObjectId=" + _encodeURIComponent(options.swfObjectId); } return str; }; /** * Extract the domain (e.g. "github.com") from an origin (e.g. "https://github.com") or * URL (e.g. "https://github.com/zeroclipboard/zeroclipboard/"). * * @returns the domain * @private */ var _extractDomain = function(originOrUrl) { if (originOrUrl == null || originOrUrl === "") { return null; } originOrUrl = originOrUrl.replace(/^\s+|\s+$/g, ""); if (originOrUrl === "") { return null; } var protocolIndex = originOrUrl.indexOf("//"); originOrUrl = protocolIndex === -1 ? originOrUrl : originOrUrl.slice(protocolIndex + 2); var pathIndex = originOrUrl.indexOf("/"); originOrUrl = pathIndex === -1 ? originOrUrl : protocolIndex === -1 || pathIndex === 0 ? null : originOrUrl.slice(0, pathIndex); if (originOrUrl && originOrUrl.slice(-4).toLowerCase() === ".swf") { return null; } return originOrUrl || null; }; /** * Set `allowScriptAccess` based on `trustedDomains` and `window.location.host` vs. `swfPath`. * * @returns The appropriate script access level. * @private */ var _determineScriptAccess = function() { var _extractAllDomains = function(origins) { var i, len, tmp, resultsArray = []; if (typeof origins === "string") { origins = [ origins ]; } if (!(typeof origins === "object" && origins && typeof origins.length === "number")) { return resultsArray; } for (i = 0, len = origins.length; i < len; i++) { if (_hasOwn.call(origins, i) && (tmp = _extractDomain(origins[i]))) { if (tmp === "*") { resultsArray.length = 0; resultsArray.push("*"); break; } if (resultsArray.indexOf(tmp) === -1) { resultsArray.push(tmp); } } } return resultsArray; }; return function(currentDomain, configOptions) { var swfDomain = _extractDomain(configOptions.swfPath); if (swfDomain === null) { swfDomain = currentDomain; } var trustedDomains = _extractAllDomains(configOptions.trustedDomains); var len = trustedDomains.length; if (len > 0) { if (len === 1 && trustedDomains[0] === "*") { return "always"; } if (trustedDomains.indexOf(currentDomain) !== -1) { if (len === 1 && currentDomain === swfDomain) { return "sameDomain"; } return "always"; } } return "never"; }; }(); /** * Get the currently active/focused DOM element. * * @returns the currently active/focused element, or `null` * @private */ var _safeActiveElement = function() { try { return _document.activeElement; } catch (err) { return null; } }; /** * Add a class to an element, if it doesn't already have it. * * @returns The element, with its new class added. * @private */ var _addClass = function(element, value) { if (!element || element.nodeType !== 1) { return element; } if (element.classList) { if (!element.classList.contains(value)) { element.classList.add(value); } return element; } if (value && typeof value === "string") { var classNames = (value || "").split(/\s+/); if (element.nodeType === 1) { if (!element.className) { element.className = value; } else { var className = " " + element.className + " ", setClass = element.className; for (var c = 0, cl = classNames.length; c < cl; c++) { if (className.indexOf(" " + classNames[c] + " ") < 0) { setClass += " " + classNames[c]; } } element.className = setClass.replace(/^\s+|\s+$/g, ""); } } } return element; }; /** * Remove a class from an element, if it has it. * * @returns The element, with its class removed. * @private */ var _removeClass = function(element, value) { if (!element || element.nodeType !== 1) { return element; } if (element.classList) { if (element.classList.contains(value)) { element.classList.remove(value); } return element; } if (typeof value === "string" && value) { var classNames = value.split(/\s+/); if (element.nodeType === 1 && element.className) { var className = (" " + element.className + " ").replace(/[\n\t]/g, " "); for (var c = 0, cl = classNames.length; c < cl; c++) { className = className.replace(" " + classNames[c] + " ", " "); } element.className = className.replace(/^\s+|\s+$/g, ""); } } return element; }; /** * Attempt to interpret the element's CSS styling. If `prop` is `"cursor"`, * then we assume that it should be a hand ("pointer") cursor if the element * is an anchor element ("a" tag). * * @returns The computed style property. * @private */ var _getStyle = function(el, prop) { var value = _window.getComputedStyle(el, null).getPropertyValue(prop); if (prop === "cursor") { if (!value || value === "auto") { if (el.nodeName === "A") { return "pointer"; } } } return value; }; /** * Get the zoom factor of the browser. Always returns `1.0`, except at * non-default zoom levels in IE<8 and some older versions of WebKit. * * @returns Floating unit percentage of the zoom factor (e.g. 150% = `1.5`). * @private */ var _getZoomFactor = function() { var rect, physicalWidth, logicalWidth, zoomFactor = 1; if (typeof _document.body.getBoundingClientRect === "function") { rect = _document.body.getBoundingClientRect(); physicalWidth = rect.right - rect.left; logicalWidth = _document.body.offsetWidth; zoomFactor = _round(physicalWidth / logicalWidth * 100) / 100; } return zoomFactor; }; /** * Get the DOM positioning info of an element. * * @returns Object containing the element's position, width, and height. * @private */ var _getDOMObjectPosition = function(obj) { var info = { left: 0, top: 0, width: 0, height: 0 }; if (obj.getBoundingClientRect) { var rect = obj.getBoundingClientRect(); var pageXOffset, pageYOffset, zoomFactor; if ("pageXOffset" in _window && "pageYOffset" in _window) { pageXOffset = _window.pageXOffset; pageYOffset = _window.pageYOffset; } else { zoomFactor = _getZoomFactor(); pageXOffset = _round(_document.documentElement.scrollLeft / zoomFactor); pageYOffset = _round(_document.documentElement.scrollTop / zoomFactor); } var leftBorderWidth = _document.documentElement.clientLeft || 0; var topBorderWidth = _document.documentElement.clientTop || 0; info.left = rect.left + pageXOffset - leftBorderWidth; info.top = rect.top + pageYOffset - topBorderWidth; info.width = "width" in rect ? rect.width : rect.right - rect.left; info.height = "height" in rect ? rect.height : rect.bottom - rect.top; } return info; }; /** * Reposition the Flash object to cover the currently activated element. * * @returns `undefined` * @private */ var _reposition = function() { var htmlBridge; if (_currentElement && (htmlBridge = _getHtmlBridge(_flashState.bridge))) { var pos = _getDOMObjectPosition(_currentElement); _extend(htmlBridge.style, { width: pos.width + "px", height: pos.height + "px", top: pos.top + "px", left: pos.left + "px", zIndex: "" + _getSafeZIndex(_globalConfig.zIndex) }); } }; /** * Sends a signal to the Flash object to display the hand cursor if `true`. * * @returns `undefined` * @private */ var _setHandCursor = function(enabled) { if (_flashState.ready === true) { if (_flashState.bridge && typeof _flashState.bridge.setHandCursor === "function") { _flashState.bridge.setHandCursor(enabled); } else { _flashState.ready = false; } } }; /** * Get a safe value for `zIndex` * * @returns an integer, or "auto" * @private */ var _getSafeZIndex = function(val) { if (/^(?:auto|inherit)$/.test(val)) { return val; } var zIndex; if (typeof val === "number" && !_isNaN(val)) { zIndex = val; } else if (typeof val === "string") { zIndex = _getSafeZIndex(_parseInt(val, 10)); } return typeof zIndex === "number" ? zIndex : "auto"; }; /** * Detect the Flash Player status, version, and plugin type. * * @see {@link https://code.google.com/p/doctype-mirror/wiki/ArticleDetectFlash#The_code} * @see {@link http://stackoverflow.com/questions/12866060/detecting-pepper-ppapi-flash-with-javascript} * * @returns `undefined` * @private */ var _detectFlashSupport = function(ActiveXObject) { var plugin, ax, mimeType, hasFlash = false, isActiveX = false, isPPAPI = false, flashVersion = ""; /** * Derived from Apple's suggested sniffer. * @param {String} desc e.g. "Shockwave Flash 7.0 r61" * @returns {String} "7.0.61" * @private */ function parseFlashVersion(desc) { var matches = desc.match(/[\d]+/g); matches.length = 3; return matches.join("."); } function isPepperFlash(flashPlayerFileName) { return !!flashPlayerFileName && (flashPlayerFileName = flashPlayerFileName.toLowerCase()) && (/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(flashPlayerFileName) || flashPlayerFileName.slice(-13) === "chrome.plugin"); } function inspectPlugin(plugin) { if (plugin) { hasFlash = true; if (plugin.version) { flashVersion = parseFlashVersion(plugin.version); } if (!flashVersion && plugin.description) { flashVersion = parseFlashVersion(plugin.description); } if (plugin.filename) { isPPAPI = isPepperFlash(plugin.filename); } } } if (_navigator.plugins && _navigator.plugins.length) { plugin = _navigator.plugins["Shockwave Flash"]; inspectPlugin(plugin); if (_navigator.plugins["Shockwave Flash 2.0"]) { hasFlash = true; flashVersion = "2.0.0.11"; } } else if (_navigator.mimeTypes && _navigator.mimeTypes.length) { mimeType = _navigator.mimeTypes["application/x-shockwave-flash"]; plugin = mimeType && mimeType.enabledPlugin; inspectPlugin(plugin); } else if (typeof ActiveXObject !== "undefined") { isActiveX = true; try { ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); hasFlash = true; flashVersion = parseFlashVersion(ax.GetVariable("$version")); } catch (e1) { try { ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); hasFlash = true; flashVersion = "6.0.21"; } catch (e2) { try { ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); hasFlash = true; flashVersion = parseFlashVersion(ax.GetVariable("$version")); } catch (e3) { isActiveX = false; } } } } _flashState.disabled = hasFlash !== true; _flashState.outdated = flashVersion && _parseFloat(flashVersion) < _parseFloat(_minimumFlashVersion); _flashState.version = flashVersion || "0.0.0"; _flashState.pluginType = isPPAPI ? "pepper" : isActiveX ? "activex" : hasFlash ? "netscape" : "unknown"; }; /** * Invoke the Flash detection algorithms immediately upon inclusion so we're not waiting later. */ _detectFlashSupport(_ActiveXObject); /** * A shell constructor for `ZeroClipboard` client instances. * * @constructor */ var ZeroClipboard = function() { if (!(this instanceof ZeroClipboard)) { return new ZeroClipboard(); } if (typeof ZeroClipboard._createClient === "function") { ZeroClipboard._createClient.apply(this, _args(arguments)); } }; /** * The ZeroClipboard library's version number. * * @static * @readonly * @property {string} */ _defineProperty(ZeroClipboard, "version", { value: "2.1.2", writable: false, configurable: true, enumerable: true }); /** * Update or get a copy of the ZeroClipboard global configuration. * Returns a copy of the current/updated configuration. * * @returns Object * @static */ ZeroClipboard.config = function() { return _config.apply(this, _args(arguments)); }; /** * Diagnostic method that describes the state of the browser, Flash Player, and ZeroClipboard. * * @returns Object * @static */ ZeroClipboard.state = function() { return _state.apply(this, _args(arguments)); }; /** * Check if Flash is unusable for any reason: disabled, outdated, deactivated, etc. * * @returns Boolean * @static */ ZeroClipboard.isFlashUnusable = function() { return _isFlashUnusable.apply(this, _args(arguments)); }; /** * Register an event listener. * * @returns `ZeroClipboard` * @static */ ZeroClipboard.on = function() { return _on.apply(this, _args(arguments)); }; /** * Unregister an event listener. * If no `listener` function/object is provided, it will unregister all listeners for the provided `eventType`. * If no `eventType` is provided, it will unregister all listeners for every event type. * * @returns `ZeroClipboard` * @static */ ZeroClipboard.off = function() { return _off.apply(this, _args(arguments)); }; /** * Retrieve event listeners for an `eventType`. * If no `eventType` is provided, it will retrieve all listeners for every event type. * * @returns array of listeners for the `eventType`; if no `eventType`, then a map/hash object of listeners for all event types; or `null` */ ZeroClipboard.handlers = function() { return _listeners.apply(this, _args(arguments)); }; /** * Event emission receiver from the Flash object, forwarding to any registered JavaScript event listeners. * * @returns For the "copy" event, returns the Flash-friendly "clipData" object; otherwise `undefined`. * @static */ ZeroClipboard.emit = function() { return _emit.apply(this, _args(arguments)); }; /** * Create and embed the Flash object. * * @returns The Flash object * @static */ ZeroClipboard.create = function() { return _create.apply(this, _args(arguments)); }; /** * Self-destruct and clean up everything, including the embedded Flash object. * * @returns `undefined` * @static */ ZeroClipboard.destroy = function() { return _destroy.apply(this, _args(arguments)); }; /** * Set the pending data for clipboard injection. * * @returns `undefined` * @static */ ZeroClipboard.setData = function() { return _setData.apply(this, _args(arguments)); }; /** * Clear the pending data for clipboard injection. * If no `format` is provided, all pending data formats will be cleared. * * @returns `undefined` * @static */ ZeroClipboard.clearData = function() { return _clearData.apply(this, _args(arguments)); }; /** * Get a copy of the pending data for clipboard injection. * If no `format` is provided, a copy of ALL pending data formats will be returned. * * @returns `String` or `Object` * @static */ ZeroClipboard.getData = function() { return _getData.apply(this, _args(arguments)); }; /** * Sets the current HTML object that the Flash object should overlay. This will put the global * Flash object on top of the current element; depending on the setup, this may also set the * pending clipboard text data as well as the Flash object's wrapping element's title attribute * based on the underlying HTML element and ZeroClipboard configuration. * * @returns `undefined` * @static */ ZeroClipboard.focus = ZeroClipboard.activate = function() { return _focus.apply(this, _args(arguments)); }; /** * Un-overlays the Flash object. This will put the global Flash object off-screen; depending on * the setup, this may also unset the Flash object's wrapping element's title attribute based on * the underlying HTML element and ZeroClipboard configuration. * * @returns `undefined` * @static */ ZeroClipboard.blur = ZeroClipboard.deactivate = function() { return _blur.apply(this, _args(arguments)); }; /** * Returns the currently focused/"activated" HTML element that the Flash object is wrapping. * * @returns `HTMLElement` or `null` * @static */ ZeroClipboard.activeElement = function() { return _activeElement.apply(this, _args(arguments)); }; if (typeof define === "function" && define.amd) { define(function() { return ZeroClipboard; }); } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) { module.exports = ZeroClipboard; } else { window.ZeroClipboard = ZeroClipboard; } })(function() { return this || window; }()); (function($, window, undefined) { var mouseEnterBindingCount = 0, customEventNamespace = ".zeroclipboard", ZeroClipboard = window.ZeroClipboard, _trustedDomains = ZeroClipboard.config("trustedDomains"); function getSelectionData() { var range, selectedText = "", selectedData = {}, sel = window.getSelection(), tmp = document.createElement("div"); for (var i = 0, len = sel.rangeCount; i < len; i++) { range = sel.getRangeAt(i); selectedText += range.toString(); tmp.appendChild(range.cloneContents()); } selectedData["text/plain"] = selectedText; if (selectedText.replace(/\s/g, "")) { selectedData["text/html"] = tmp.innerHTML; } return selectedData; } function convertHtmlToRtf(html) { if (!(typeof html === "string" && html)) { return null; } var tmpRichText, hasHyperlinks, richText = html; richText = richText.replace(/<(?:hr)(?:\s+[^>]*)?\s*[\/]?>/gi, "{\\pard \\brdrb \\brdrs \\brdrw10 \\brsp20 \\par}\n{\\pard\\par}\n"); richText = richText.replace(/<(?:br)(?:\s+[^>]*)?\s*[\/]?>/gi, "{\\pard\\par}\n"); richText = richText.replace(/<(?:p|div|section|article)(?:\s+[^>]*)?\s*[\/]>/gi, "{\\pard\\par}\n"); richText = richText.replace(/<(?:[^>]+)\/>/g, ""); richText = richText.replace(/]*)?(?:\s+href=(["'])(?:javascript:void\(0?\);?|#|return false;?|void\(0?\);?|)\1)(?:\s+[^>]*)?>/gi, "{{{\n"); tmpRichText = richText; richText = richText.replace(/]*)?(?:\s+href=(["'])(.+)\1)(?:\s+[^>]*)?>/gi, '{\\field{\\*\\fldinst{HYPERLINK\n "$2"\n}}{\\fldrslt{\\ul\\cf1\n'); hasHyperlinks = richText !== tmpRichText; richText = richText.replace(/]*)?>/gi, "{{{\n"); richText = richText.replace(/<\/a(?:\s+[^>]*)?>/gi, "\n}}}"); richText = richText.replace(/<(?:b|strong)(?:\s+[^>]*)?>/gi, "{\\b\n"); richText = richText.replace(/<(?:i|em)(?:\s+[^>]*)?>/gi, "{\\i\n"); richText = richText.replace(/<(?:u|ins)(?:\s+[^>]*)?>/gi, "{\\ul\n"); richText = richText.replace(/<(?:strike|del)(?:\s+[^>]*)?>/gi, "{\\strike\n"); richText = richText.replace(/]*)?>/gi, "{\\super\n"); richText = richText.replace(/]*)?>/gi, "{\\sub\n"); richText = richText.replace(/<(?:p|div|section|article)(?:\s+[^>]*)?>/gi, "{\\pard\n"); richText = richText.replace(/<\/(?:p|div|section|article)(?:\s+[^>]*)?>/gi, "\n\\par}\n"); richText = richText.replace(/<\/(?:b|strong|i|em|u|ins|strike|del|sup|sub)(?:\s+[^>]*)?>/gi, "\n}"); richText = richText.replace(/<(?:[^>]+)>/g, ""); richText = "{\\rtf1\\ansi\n" + (hasHyperlinks ? "{\\colortbl\n;\n\\red0\\green0\\blue255;\n}\n" : "") + richText + "\n}"; return richText; } function zcEventHandler(e) { var $event = $.Event(e.type, $.extend(e, { _source: "swf" })); $(e.target).trigger($event); if ($event.type === "copy") { if ($.event.special.copy.options.requirePreventDefault === true && !$event.isDefaultPrevented()) { e.clipboardData.clearData(); var selectionData = getSelectionData(); if (selectionData["text/plain"] || selectionData["text/html"]) { e.clipboardData.setData(selectionData); } } var _clipData = ZeroClipboard.getData(); if ($.event.special.copy.options.autoConvertHtmlToRtf === true && _clipData["text/html"] && !_clipData["application/rtf"]) { var richText = convertHtmlToRtf(_clipData["text/html"]); e.clipboardData.setData("application/rtf", richText); } } } function zcErrorHandler(e) { var $event = $.Event("copy-error", $.extend(e, { type: "copy-error", _source: "swf" })); $(e.target).trigger($event); } function setup() { $.event.props.push("clipboardData"); ZeroClipboard.config($.extend(true, { autoActivate: false }, copyEventDef.options)); ZeroClipboard.on("beforecopy copy aftercopy", zcEventHandler); ZeroClipboard.on("error", zcErrorHandler); ZeroClipboard.create(); } function teardown() { ZeroClipboard.destroy(); var indy = $.event.props.indexOf("clipboardData"); if (indy !== -1) { $.event.props.splice(indy, 1); } } function mouseEnterHandler($event) { mouseSuppressor($event); if ($event.target && $event.target !== ZeroClipboard.activeElement() && $event.target !== $("#" + ZeroClipboard.config("containerId"))[0] && $event.target !== $("#" + ZeroClipboard.config("swfObjectId"))[0]) { ZeroClipboard.focus($event.target); } } function mouseLeaveHandler($event) { mouseSuppressor($event); if ($event.relatedTarget && $event.relatedTarget !== ZeroClipboard.activeElement() && $event.relatedTarget !== $("#" + ZeroClipboard.config("containerId"))[0] && $event.relatedTarget !== $("#" + ZeroClipboard.config("swfObjectId"))[0]) { ZeroClipboard.blur(); } } function mouseSuppressor($event) { if (!ZeroClipboard.isFlashUnusable() && $event.originalEvent._source !== "js") { $event.stopImmediatePropagation(); $event.preventDefault(); } } var copyEventDef = { add: function(handleObj) { if (0 === mouseEnterBindingCount++) { setup(); } var namespaces = customEventNamespace + (handleObj.namespace ? "." + handleObj.namespace : ""), selector = handleObj.selector, zcDataKey = "zc|{" + selector + "}|{" + namespaces + "}|count", $this = $(this); if (typeof $this.data(zcDataKey) !== "number") { $this.data(zcDataKey, 0); } if ($this.data(zcDataKey) === 0) { $this.on("mouseenter" + namespaces, selector, mouseEnterHandler); $this.on("mouseleave" + namespaces, selector, mouseLeaveHandler); $this.on("mouseover" + namespaces, selector, mouseSuppressor); $this.on("mouseout" + namespaces, selector, mouseSuppressor); $this.on("mousemove" + namespaces, selector, mouseSuppressor); $this.on("mousedown" + namespaces, selector, mouseSuppressor); $this.on("mouseup" + namespaces, selector, mouseSuppressor); $this.on("click" + namespaces, selector, mouseSuppressor); } $this.data(zcDataKey, $this.data(zcDataKey) + 1); }, remove: function(handleObj) { var namespaces = customEventNamespace + (handleObj.namespace ? "." + handleObj.namespace : ""), selector = handleObj.selector, zcDataKey = "zc|{" + selector + "}|{" + namespaces + "}|count", $this = $(this); $this.data(zcDataKey, $this.data(zcDataKey) - 1); if ($this.data(zcDataKey) === 0) { $this.off("click" + namespaces, selector, mouseSuppressor); $this.off("mouseup" + namespaces, selector, mouseSuppressor); $this.off("mousedown" + namespaces, selector, mouseSuppressor); $this.off("mousemove" + namespaces, selector, mouseSuppressor); $this.off("mouseout" + namespaces, selector, mouseSuppressor); $this.off("mouseover" + namespaces, selector, mouseSuppressor); $this.off("mouseleave" + namespaces, selector, mouseLeaveHandler); $this.off("mouseenter" + namespaces, selector, mouseEnterHandler); $this.removeData(zcDataKey); } if (0 === --mouseEnterBindingCount) { teardown(); } }, trigger: function($event) { if ($event.type === "copy") { var $this = $(this); var sourceIsSwf = $event._source === "swf"; delete $event._source; if (!sourceIsSwf) { $this.trigger($.extend(true, {}, $event, { type: "beforecopy" })); $this.one("copy", function() { var successData = {}, _clipData = ZeroClipboard.getData(); $.each(_clipData, function(key) { successData[key] = false; }); var $e = $.extend(true, {}, $event, { type: "aftercopy", data: $.extend(true, {}, _clipData), success: successData }); $this.trigger($e); }); } } }, _default: function() { return true; }, options: { requirePreventDefault: true, autoConvertHtmlToRtf: true, trustedDomains: _trustedDomains, hoverClass: "hover", activeClass: "active" } }; $.event.special.beforecopy = copyEventDef; $.event.special.copy = copyEventDef; $.event.special.aftercopy = copyEventDef; $.event.special["copy-error"] = copyEventDef; })(jQuery, function() { return this || window; }()); if (!zcExistsAlready) { delete window.ZeroClipboard; } })(jQuery, function() { return this || window; }());assets/js/zeroclipboard/ZeroClipboard.swf000066600000007715152133032050014611 0ustar00CWSqxڍXwGr1@(RZ4)C:VkQMDZ2d,=HxföZ{8eNI*ws|Hɬ^^>C zIyoAtuuXE#m:1H@osnȨeFat~ёᕓÎ4r̙3##'N ĐfLPtlS 4P&hZd0B-Z>@¨eݿW*YWr Ve:dXW:7#o cE'OՌEWS@:aE/2Sg Ny:jt2*X{ T镨{j߳p.)T<6oRU_&_@GݧzH?FvxM$?ƹgϞVx8a }6 >r;8WnSJ"A{z?B0 W/(!CϿ`$,;f\tv<8U,}MOc!.3U:UN2Z҂/i/E2UT\W_QFMMߧ.]s52ra[&ٔ ôM_t~86 bNB/e.ZϛEӥnE;E}eu-!x.Fnz޼oZ^;.v:Jfd[]tӞ~ֶR!o{Ʉ-VWIôsNyz{L0=h#MLLN,eg.M2촩+嫾ƫm.-;tb9zS(V]n '<07Y\Qo}H=9r">=yݾ'F`˜t܁c~ M٠LC?{wfy/@K^i.MVzsl>BOY3tgxaOnP5LÚ;A܅{xk0WBL[B8+NlY[rVlJ;9 SURz^4%1Ai*T4ԣZ:'i{_Qb,eZ`[){*WdUGAp|GSkm[kr?צGU2 fQF?M:˭YtV}%{{Ř~uVTG&gf39}FF-8UڎZ\]9Yޱ &EqS;ݪRڠu`NUw_˩&R`C'|nZSE̲3fKvd.{mdfNٰ%JI:E*O6/QyM89;G%Ŵ')l1-K j 藢yK%?Rtvt%n = vɴJBтSYC ("^P' ,.][ktMUOI!]b>L#gθS%f%$ao5ZXy_P_ËQ߹Pw\(A 5C\> \9z$$築W_k}TgjiǏ.-2 pm&'D TnP=;% e;LY;?&i6|&lu9,Ц&Y^K:lS?Qk.A93Wh3*]&|yGcgEZw^"`R&U_(ew}#6W iRs hvuU { v1P{P*{Q/4|i\PԻ;<Į_j2v8zѹɛQٙcsg;F/]W]:?a;zˋyB~*N3)"ENuź>u]/wxE۬Kv%k,D,BKk"j#!~,,ŕa9y‰'G V#b-Dj%bHI"Fv"#bDH$|DRID!>_$DH(?HKkD"xOJgI|"$>!Ob"ED$"r \ \`JA%K%em+-*bĿ1?}7 ń9L >d/2o 䯁^пԷ0hc''XVy `!Hc|F ??+Lx } 3|= d`, ĉD łyK^jHH (tF.ZbڍQ!QQje3T{1yCG0^q}IŤOB`Y(c~|H@[8"%\,+J=]Bl+ME0(snjȾā σD pJ! abXƬŽ"DRe8wn̋8Nka` <>Fb BNdv",IZs/e_e>9e &m3OR"/uvlMմZMRӮִkZ]ioԴ6pj|M7j͚P\$sQ} 1:znD3]( ݇zlN@@׵7;<ζH,$tҐPi JnU} Ƹ>/-,zC5{G{W{O}`KX2aT7Br^ʋp=/df0  76 '$1ϞE}<8G5چu_o6Bezz='7F;#ov;;䝺!.xB tn!{+[Lr7QO)ɠCc^+A1V 8/˲)dzs2y 8c#?#XO~_3P''hpk0 Ş_nw^g/_^2pXne0R0b}N_߀ !xjˤS=pXA]G"OAnXuodJ82pRRHXPmu{ts 38  3f܀xkBmV 4~ ׶>0dzg [6^i͚]\ Ζ1)8M^pi7qO)춝k8^im`gѹejb{"}=Jťa0r5pRp{ҡKG~8X{~nn8zQv&ٱvq/遧[{wH_~b/om>6>^:W5PY S?OY,0auL/ j(A aALfUC mmc[jSfcs@_=! *!F\z4R&#,7⍈{Kăiʌq񢨼s+O7\n-;B᥾e&˼ݞp '^.7ރ,tXOmX}v6ѿ`}QG.NU }q8~"/^5^@o_NQp> ->l5a:jA 73s7!_c,p_a=m󽿤Cassets/js/jquery-cookie/jquery.cookie.js000066600000006060152133032050014375 0ustar00/*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ (function (factory) { if (typeof define === 'function' && define.amd) { // AMD define(['jquery'], factory); } else if (typeof exports === 'object') { // CommonJS factory(require('jquery')); } else { // Browser globals factory(jQuery); } }(function ($) { var pluses = /\+/g; function encode(s) { return config.raw ? s : encodeURIComponent(s); } function decode(s) { return config.raw ? s : decodeURIComponent(s); } function stringifyCookieValue(value) { return encode(config.json ? JSON.stringify(value) : String(value)); } function parseCookieValue(s) { if (s.indexOf('"') === 0) { // This is a quoted cookie as according to RFC2068, unescape... s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); } try { // Replace server-side written pluses with spaces. // If we can't decode the cookie, ignore it, it's unusable. // If we can't parse the cookie, ignore it, it's unusable. s = decodeURIComponent(s.replace(pluses, ' ')); return config.json ? JSON.parse(s) : s; } catch(e) {} } function read(s, converter) { var value = config.raw ? s : parseCookieValue(s); return $.isFunction(converter) ? converter(value) : value; } var config = $.cookie = function (key, value, options) { // Write if (value !== undefined && !$.isFunction(value)) { options = $.extend({}, config.defaults, options); if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setTime(+t + days * 864e+5); } return (document.cookie = [ encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } // Read var result = key ? undefined : {}; // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. Also prevents odd result when // calling $.cookie(). var cookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, l = cookies.length; i < l; i++) { var parts = cookies[i].split('='); var name = decode(parts.shift()); var cookie = parts.join('='); if (key && key === name) { // If second argument (value) is a function it's a converter... result = read(cookie, value); break; } // Prevent storing a cookie that we couldn't decode. if (!key && (cookie = read(cookie)) !== undefined) { result[name] = cookie; } } return result; }; config.defaults = {}; $.removeCookie = function (key, options) { if ($.cookie(key) === undefined) { return false; } // Must not alter options, thus extending a fresh object... $.cookie(key, '', $.extend({}, options, { expires: -1 })); return !$.cookie(key); }; }));assets/js/jquery-cookie/jquery.cookie.min.js000066600000002604152133032050015157 0ustar00/*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(a){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;n0)return b.stopPropagation(),a("#woocommerce-coupon-description").focus(),!1}),a(".wc-metaboxes-wrapper").on("click",".wc-metabox > h3",function(){a(this).parent(".wc-metabox").toggleClass("closed").toggleClass("open")}),a(document.body).on("wc-init-tabbed-panels",function(){a("ul.wc-tabs").show(),a("ul.wc-tabs a").click(function(b){b.preventDefault();var c=a(this).closest("div.panel-wrap");a("ul.wc-tabs li",c).removeClass("active"),a(this).parent().addClass("active"),a("div.panel",c).hide(),a(a(this).attr("href")).show()}),a("div.panel-wrap").each(function(){a(this).find("ul.wc-tabs li").eq(0).find("a").click()})}).trigger("wc-init-tabbed-panels"),a(document.body).on("wc-init-datepickers",function(){a(".date-picker-field, .date-picker").datepicker({dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0})}).trigger("wc-init-datepickers"),a(".wc-metaboxes-wrapper").on("click",".wc-metabox h3",function(b){a(b.target).filter(":input, option, .sort").length||a(this).next(".wc-metabox-content").stop().slideToggle()}).on("click",".expand_all",function(){return a(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox > .wc-metabox-content").show(),!1}).on("click",".close_all",function(){return a(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox > .wc-metabox-content").hide(),!1}),a(".wc-metabox.closed").each(function(){a(this).find(".wc-metabox-content").hide()})});assets/js/admin/settings.min.js000066600000003716152133032050012537 0ustar00!function(a){a("select#woocommerce_allowed_countries").change(function(){"specific"===a(this).val()?(a(this).closest("tr").next("tr").hide(),a(this).closest("tr").next().next("tr").show()):"all_except"===a(this).val()?(a(this).closest("tr").next("tr").show(),a(this).closest("tr").next().next("tr").hide()):(a(this).closest("tr").next("tr").hide(),a(this).closest("tr").next().next("tr").hide())}).change(),a("select#woocommerce_ship_to_countries").change(function(){"specific"===a(this).val()?a(this).closest("tr").next("tr").show():a(this).closest("tr").next("tr").hide()}).change(),a(".colorpick").iris({change:function(b,c){a(this).parent().find(".colorpickpreview").css({backgroundColor:c.color.toString()})},hide:!0,border:!0}).click(function(){a(".iris-picker").hide(),a(this).closest("td").find(".iris-picker").show()}),a("body").click(function(){a(".iris-picker").hide()}),a(".colorpick").click(function(a){a.stopPropagation()}),a(function(){var b=!1;a("input, textarea, select, checkbox").change(function(){b=!0}),a(".woo-nav-tab-wrapper a").click(function(){b?window.onbeforeunload=function(){return woocommerce_settings_params.i18n_nav_warning}:window.onbeforeunload=""}),a(".submit input").click(function(){window.onbeforeunload=""})}),a("table.wc_gateways tbody, table.wc_shipping tbody").sortable({items:"tr",cursor:"move",axis:"y",handle:"td.sort",scrollSensitivity:40,helper:function(b,c){return c.children().each(function(){a(this).width(a(this).width())}),c.css("left","0"),c},start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style")}}),a(".woocommerce").on("click",".select_all",function(){return a(this).closest("td").find("select option").attr("selected","selected"),a(this).closest("td").find("select").trigger("change"),!1}),a(".woocommerce").on("click",".select_none",function(){return a(this).closest("td").find("select option").removeAttr("selected"),a(this).closest("td").find("select").trigger("change"),!1})}(jQuery);assets/js/admin/settings.js000066600000005322152133032050011750 0ustar00/* global woocommerce_settings_params */ ( function( $ ) { // Sell Countries $( 'select#woocommerce_allowed_countries' ).change( function() { if ( 'specific' === $( this ).val() ) { $( this ).closest('tr').next( 'tr' ).hide(); $( this ).closest('tr').next().next( 'tr' ).show(); } else if ( 'all_except' === $( this ).val() ) { $( this ).closest('tr').next( 'tr' ).show(); $( this ).closest('tr').next().next( 'tr' ).hide(); } else { $( this ).closest('tr').next( 'tr' ).hide(); $( this ).closest('tr').next().next( 'tr' ).hide(); } }).change(); // Ship Countries $( 'select#woocommerce_ship_to_countries' ).change( function() { if ( 'specific' === $( this ).val() ) { $( this ).closest('tr').next( 'tr' ).show(); } else { $( this ).closest('tr').next( 'tr' ).hide(); } }).change(); // Color picker $( '.colorpick' ).iris({ change: function( event, ui ) { $( this ).parent().find( '.colorpickpreview' ).css({ backgroundColor: ui.color.toString() }); }, hide: true, border: true }).click( function() { $( '.iris-picker' ).hide(); $( this ).closest( 'td' ).find( '.iris-picker' ).show(); }); $( 'body' ).click( function() { $( '.iris-picker' ).hide(); }); $( '.colorpick' ).click( function( event ) { event.stopPropagation(); }); // Edit prompt $( function() { var changed = false; $( 'input, textarea, select, checkbox' ).change( function() { changed = true; }); $( '.woo-nav-tab-wrapper a' ).click( function() { if ( changed ) { window.onbeforeunload = function() { return woocommerce_settings_params.i18n_nav_warning; }; } else { window.onbeforeunload = ''; } }); $( '.submit input' ).click( function() { window.onbeforeunload = ''; }); }); // Sorting $( 'table.wc_gateways tbody, table.wc_shipping tbody' ).sortable({ items: 'tr', cursor: 'move', axis: 'y', handle: 'td.sort', scrollSensitivity: 40, helper: function( event, ui ) { ui.children().each( function() { $( this ).width( $( this ).width() ); }); ui.css( 'left', '0' ); return ui; }, start: function( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); } }); // Select all/none $( '.woocommerce' ).on( 'click', '.select_all', function() { $( this ).closest( 'td' ).find( 'select option' ).attr( 'selected', 'selected' ); $( this ).closest( 'td' ).find( 'select' ).trigger( 'change' ); return false; }); $( '.woocommerce' ).on( 'click', '.select_none', function() { $( this ).closest( 'td' ).find( 'select option' ).removeAttr( 'selected' ); $( this ).closest( 'td' ).find( 'select' ).trigger( 'change' ); return false; }); })( jQuery ); assets/js/admin/woocommerce_admin.min.js000066600000014406152133032050014364 0ustar00jQuery(function(a){a(document.body).on("wc_add_error_tip",function(b,c,d){var e=c.position();0===c.parent().find(".wc_error_tip").length&&(c.after('
    '+woocommerce_admin[d]+"
    "),c.parent().find(".wc_error_tip").css("left",e.left+c.width()-c.width()/2-a(".wc_error_tip").width()/2).css("top",e.top+c.height()).fadeIn("100"))}).on("wc_remove_error_tip",function(b,c,d){c.parent().find(".wc_error_tip."+d).fadeOut("100",function(){a(this).remove()})}).on("click",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",function(){var b;b=a(this).is(".wc_input_price")||a(this).is("#refund_amount")?new RegExp("[^-0-9%\\"+woocommerce_admin.mon_decimal_point+"]+","gi"):new RegExp("[^-0-9%\\"+woocommerce_admin.decimal_point+"]+","gi");var c=a(this).val(),d=c.replace(b,"");c!==d&&a(this).val(d)}).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",function(){var b,c;a(this).is(".wc_input_price")||a(this).is("#refund_amount")?(b=new RegExp("[^-0-9%\\"+woocommerce_admin.mon_decimal_point+"]+","gi"),c="i18n_mon_decimal_error"):a(this).is(".wc_input_country_iso")?(b=new RegExp("([^A-Z])+|(.){3,}","im"),c="i18n_country_iso_error"):(b=new RegExp("[^-0-9%\\"+woocommerce_admin.decimal_point+"]+","gi"),c="i18n_decimal_error");var d=a(this).val(),e=d.replace(b,"");d!==e?a(document.body).triggerHandler("wc_add_error_tip",[a(this),c]):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),c])}).on("change","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]",function(){var b,c=a(this);b=c.attr("name").indexOf("variable")!==-1?c.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):a("#_regular_price");var d=parseFloat(window.accounting.unformat(c.val(),woocommerce_admin.mon_decimal_point)),e=parseFloat(window.accounting.unformat(b.val(),woocommerce_admin.mon_decimal_point));d>=e&&a(this).val("")}).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]",function(){var b,c=a(this);b=c.attr("name").indexOf("variable")!==-1?c.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):a("#_regular_price");var d=parseFloat(window.accounting.unformat(c.val(),woocommerce_admin.mon_decimal_point)),e=parseFloat(window.accounting.unformat(b.val(),woocommerce_admin.mon_decimal_point));d>=e?a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18_sale_less_than_regular_error"]):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18_sale_less_than_regular_error"])}).on("init_tooltips",function(){var b={attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200};a(".tips, .help_tip, .woocommerce-help-tip").tipTip(b),a(".parent-tips").each(function(){a(this).closest("a, th").attr("data-tip",a(this).data("tip")).tipTip(b).css("cursor","help")})}),a(document.body).trigger("init_tooltips"),a(".wc_input_table.sortable tbody").sortable({items:"tr",cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style")}}),a(".wc_input_table .remove_rows").click(function(){var b=a(this).closest(".wc_input_table").find("tbody");if(b.find("tr.current").length>0){var c=b.find("tr.current");c.each(function(){a(this).remove()})}return!1});var b=!1,c=!1,d=!1;a(document.body).bind("keyup keydown",function(a){c=a.shiftKey,b=a.ctrlKey||a.metaKey}),a(".wc_input_table").on("focus click","input",function(e){var f=a(this).closest("table, tbody"),g=a(this).closest("tr");("focus"===e.type&&d!==g.index()||"click"===e.type&&a(this).is(":focus"))&&(d=g.index(),c||b?c?(a("tr",f).removeClass("current"),g.addClass("selected_now").addClass("current"),a("tr.last_selected",f).length>0&&(g.index()>a("tr.last_selected",f).index()?a("tr",f).slice(a("tr.last_selected",f).index(),g.index()).addClass("current"):a("tr",f).slice(g.index(),a("tr.last_selected",f).index()+1).addClass("current")),a("tr",f).removeClass("last_selected"),g.addClass("last_selected")):(a("tr",f).removeClass("last_selected"),b&&a(this).closest("tr").is(".current")?g.removeClass("current"):g.addClass("current").addClass("last_selected")):(a("tr",f).removeClass("current").removeClass("last_selected"),g.addClass("current").addClass("last_selected")),a("tr",f).removeClass("selected_now"))}).on("blur","input",function(){d=!1}),a(".woocommerce_page_wc-settings .shippingrows tbody tr:even, table.attributes-table tbody tr:nth-child(odd)").addClass("alternate"),a(document.body).on("click",".show_order_items",function(){return a(this).closest("td").find("table").toggle(),!1}),a("select.availability").change(function(){"all"===a(this).val()?a(this).closest("tr").next("tr").hide():a(this).closest("tr").next("tr").show()}).change(),a(".hide_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show()}).change()}),a(".show_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide()}).change()}),a("input#woocommerce_demo_store").change(function(){a(this).is(":checked")?a("#woocommerce_demo_store_notice").closest("tr").show():a("#woocommerce_demo_store_notice").closest("tr").hide()}).change(),a("table.attributes-table tbody tr:nth-child(odd)").addClass("alternate"),a("#contextual-help-link").on("click",function(){var b=a("#tab-panel-woocommerce_101_tab iframe");b.attr("src",b.data("src"))})});assets/js/admin/meta-boxes-product-variation.js000066600000077460152133032050015640 0ustar00/* global wp, woocommerce_admin_meta_boxes_variations, woocommerce_admin, accounting */ jQuery( function( $ ) { /** * Variations actions */ var wc_meta_boxes_product_variations_actions = { /** * Initialize variations actions */ init: function() { $( '#variable_product_options' ) .on( 'change', 'input.variable_is_downloadable', this.variable_is_downloadable ) .on( 'change', 'input.variable_is_virtual', this.variable_is_virtual ) .on( 'change', 'input.variable_manage_stock', this.variable_manage_stock ) .on( 'click', 'button.notice-dismiss', this.notice_dismiss ) .on( 'click', 'h3 .sort', this.set_menu_order ) .on( 'reload', this.reload ); $( 'input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock' ).change(); $( '#woocommerce-product-data' ).on( 'woocommerce_variations_loaded', this.variations_loaded ); $( document.body ).on( 'woocommerce_variations_added', this.variation_added ); }, /** * Reload UI * * @param {Object} event * @param {Int} qty */ reload: function() { wc_meta_boxes_product_variations_ajax.load_variations( 1 ); }, /** * Check if variation is downloadable and show/hide elements */ variable_is_downloadable: function() { $( this ).closest( '.woocommerce_variation' ).find( '.show_if_variation_downloadable' ).hide(); if ( $( this ).is( ':checked' ) ) { $( this ).closest( '.woocommerce_variation' ).find( '.show_if_variation_downloadable' ).show(); } }, /** * Check if variation is virtual and show/hide elements */ variable_is_virtual: function() { $( this ).closest( '.woocommerce_variation' ).find( '.hide_if_variation_virtual' ).show(); if ( $( this ).is( ':checked' ) ) { $( this ).closest( '.woocommerce_variation' ).find( '.hide_if_variation_virtual' ).hide(); } }, /** * Check if variation manage stock and show/hide elements */ variable_manage_stock: function() { $( this ).closest( '.woocommerce_variation' ).find( '.show_if_variation_manage_stock' ).hide(); if ( $( this ).is( ':checked' ) ) { $( this ).closest( '.woocommerce_variation' ).find( '.show_if_variation_manage_stock' ).show(); } }, /** * Notice dismiss */ notice_dismiss: function() { $( this ).closest( 'div.notice' ).remove(); }, /** * Run actions when variations is loaded * * @param {Object} event * @param {Int} needsUpdate */ variations_loaded: function( event, needsUpdate ) { needsUpdate = needsUpdate || false; var wrapper = $( '#woocommerce-product-data' ); if ( ! needsUpdate ) { // Show/hide downloadable, virtual and stock fields $( 'input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock', wrapper ).change(); // Open sale schedule fields when have some sale price date $( '.woocommerce_variation', wrapper ).each( function( index, el ) { var $el = $( el ), date_from = $( '.sale_price_dates_from', $el ).val(), date_to = $( '.sale_price_dates_to', $el ).val(); if ( '' !== date_from || '' !== date_to ) { $( 'a.sale_schedule', $el ).click(); } }); // Remove variation-needs-update classes $( '.woocommerce_variations .variation-needs-update', wrapper ).removeClass( 'variation-needs-update' ); // Disable cancel and save buttons $( 'button.cancel-variation-changes, button.save-variation-changes', wrapper ).attr( 'disabled', 'disabled' ); } // Init TipTip $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); $( '.woocommerce_variations .tips, .woocommerce_variations .help_tip, .woocommerce_variations .woocommerce-help-tip', wrapper ).tipTip({ 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 200 }); // Datepicker fields $( '.sale_price_dates_fields', wrapper ).each( function() { var dates = $( this ).find( 'input' ).datepicker({ defaultDate: '', dateFormat: 'yy-mm-dd', numberOfMonths: 1, showButtonPanel: true, onSelect: function( selectedDate ) { var option = $( this ).is( '.sale_price_dates_from' ) ? 'minDate' : 'maxDate', instance = $( this ).data( 'datepicker' ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( 'option', option, date ); $( this ).change(); } }); }); // Allow sorting $( '.woocommerce_variations', wrapper ).sortable({ items: '.woocommerce_variation', cursor: 'move', axis: 'y', handle: '.sort', scrollSensitivity: 40, forcePlaceholderSize: true, helper: 'clone', opacity: 0.65, stop: function() { wc_meta_boxes_product_variations_actions.variation_row_indexes(); } }); $( document.body ).trigger( 'wc-enhanced-select-init' ); }, /** * Run actions when added a variation * * @param {Object} event * @param {Int} qty */ variation_added: function( event, qty ) { if ( 1 === qty ) { wc_meta_boxes_product_variations_actions.variations_loaded( null, true ); } }, /** * Lets the user manually input menu order to move items around pages */ set_menu_order: function( event ) { event.preventDefault(); var $menu_order = $( this ).closest( '.woocommerce_variation' ).find('.variation_menu_order'); var value = window.prompt( woocommerce_admin_meta_boxes_variations.i18n_enter_menu_order, $menu_order.val() ); if ( value != null ) { // Set value, save changes and reload view $menu_order.val( parseInt( value, 10 ) ).change(); wc_meta_boxes_product_variations_ajax.save_variations(); } }, /** * Set menu order */ variation_row_indexes: function() { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), current_page = parseInt( wrapper.attr( 'data-page' ), 10 ), offset = parseInt( ( current_page - 1 ) * woocommerce_admin_meta_boxes_variations.variations_per_page, 10 ); $( '.woocommerce_variations .woocommerce_variation' ).each( function ( index, el ) { $( '.variation_menu_order', el ).val( parseInt( $( el ).index( '.woocommerce_variations .woocommerce_variation' ), 10 ) + 1 + offset ).change(); }); } }; /** * Variations media actions */ var wc_meta_boxes_product_variations_media = { /** * wp.media frame object * * @type {Object} */ variable_image_frame: null, /** * Variation image ID * * @type {Int} */ setting_variation_image_id: null, /** * Variation image object * * @type {Object} */ setting_variation_image: null, /** * wp.media post ID * * @type {Int} */ wp_media_post_id: wp.media.model.settings.post.id, /** * Initialize media actions */ init: function() { $( '#variable_product_options' ).on( 'click', '.upload_image_button', this.add_image ); $( 'a.add_media' ).on( 'click', this.restore_wp_media_post_id ); }, /** * Added new image * * @param {Object} event */ add_image: function( event ) { var $button = $( this ), post_id = $button.attr( 'rel' ), $parent = $button.closest( '.upload_image' ); wc_meta_boxes_product_variations_media.setting_variation_image = $parent; wc_meta_boxes_product_variations_media.setting_variation_image_id = post_id; event.preventDefault(); if ( $button.is( '.remove' ) ) { $( '.upload_image_id', wc_meta_boxes_product_variations_media.setting_variation_image ).val( '' ).change(); wc_meta_boxes_product_variations_media.setting_variation_image.find( 'img' ).eq( 0 ).attr( 'src', woocommerce_admin_meta_boxes_variations.woocommerce_placeholder_img_src ); wc_meta_boxes_product_variations_media.setting_variation_image.find( '.upload_image_button' ).removeClass( 'remove' ); } else { // If the media frame already exists, reopen it. if ( wc_meta_boxes_product_variations_media.variable_image_frame ) { wc_meta_boxes_product_variations_media.variable_image_frame.uploader.uploader.param( 'post_id', wc_meta_boxes_product_variations_media.setting_variation_image_id ); wc_meta_boxes_product_variations_media.variable_image_frame.open(); return; } else { wp.media.model.settings.post.id = wc_meta_boxes_product_variations_media.setting_variation_image_id; } // Create the media frame. wc_meta_boxes_product_variations_media.variable_image_frame = wp.media.frames.variable_image = wp.media({ // Set the title of the modal. title: woocommerce_admin_meta_boxes_variations.i18n_choose_image, button: { text: woocommerce_admin_meta_boxes_variations.i18n_set_image }, states: [ new wp.media.controller.Library({ title: woocommerce_admin_meta_boxes_variations.i18n_choose_image, filterable: 'all' }) ] }); // When an image is selected, run a callback. wc_meta_boxes_product_variations_media.variable_image_frame.on( 'select', function () { var attachment = wc_meta_boxes_product_variations_media.variable_image_frame.state().get( 'selection' ).first().toJSON(), url = attachment.sizes && attachment.sizes.thumbnail ? attachment.sizes.thumbnail.url : attachment.url; $( '.upload_image_id', wc_meta_boxes_product_variations_media.setting_variation_image ).val( attachment.id ).change(); wc_meta_boxes_product_variations_media.setting_variation_image.find( '.upload_image_button' ).addClass( 'remove' ); wc_meta_boxes_product_variations_media.setting_variation_image.find( 'img' ).eq( 0 ).attr( 'src', url ); wp.media.model.settings.post.id = wc_meta_boxes_product_variations_media.wp_media_post_id; }); // Finally, open the modal. wc_meta_boxes_product_variations_media.variable_image_frame.open(); } }, /** * Restore wp.media post ID. */ restore_wp_media_post_id: function() { wp.media.model.settings.post.id = wc_meta_boxes_product_variations_media.wp_media_post_id; } }; /** * Product variations metabox ajax methods */ var wc_meta_boxes_product_variations_ajax = { /** * Initialize variations ajax methods */ init: function() { $( 'li.variations_tab a' ).on( 'click', this.initial_load ); $( '#variable_product_options' ) .on( 'click', 'button.save-variation-changes', this.save_variations ) .on( 'click', 'button.cancel-variation-changes', this.cancel_variations ) .on( 'click', '.remove_variation', this.remove_variation ); $( document.body ) .on( 'change', '#variable_product_options .woocommerce_variations :input', this.input_changed ) .on( 'change', '.variations-defaults select', this.defaults_changed ); $( 'form#post' ).on( 'submit', this.save_on_submit ); $( '.wc-metaboxes-wrapper' ).on( 'click', 'a.do_variation_action', this.do_variation_action ); }, /** * Check if have some changes before leave the page * * @return {Bool} */ check_for_changes: function() { var need_update = $( '#variable_product_options' ).find( '.woocommerce_variations .variation-needs-update' ); if ( 0 < need_update.length ) { if ( window.confirm( woocommerce_admin_meta_boxes_variations.i18n_edited_variations ) ) { wc_meta_boxes_product_variations_ajax.save_changes(); } else { need_update.removeClass( 'variation-needs-update' ); return false; } } return true; }, /** * Block edit screen */ block: function() { $( '#woocommerce-product-data' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, /** * Unblock edit screen */ unblock: function() { $( '#woocommerce-product-data' ).unblock(); }, /** * Initial load variations * * @return {Bool} */ initial_load: function() { if ( 0 === $( '#variable_product_options' ).find( '.woocommerce_variations .woocommerce_variation' ).length ) { wc_meta_boxes_product_variations_pagenav.go_to_page(); } }, /** * Load variations via Ajax * * @param {Int} page (default: 1) * @param {Int} per_page (default: 10) */ load_variations: function( page, per_page ) { page = page || 1; per_page = per_page || woocommerce_admin_meta_boxes_variations.variations_per_page; var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ); wc_meta_boxes_product_variations_ajax.block(); $.ajax({ url: woocommerce_admin_meta_boxes_variations.ajax_url, data: { action: 'woocommerce_load_variations', security: woocommerce_admin_meta_boxes_variations.load_variations_nonce, product_id: woocommerce_admin_meta_boxes_variations.post_id, attributes: wrapper.data( 'attributes' ), page: page, per_page: per_page }, type: 'POST', success: function( response ) { wrapper.empty().append( response ).attr( 'data-page', page ); $( '#woocommerce-product-data' ).trigger( 'woocommerce_variations_loaded' ); wc_meta_boxes_product_variations_ajax.unblock(); } }); }, /** * Ger variations fields and convert to object * * @param {Object} fields * * @return {Object} */ get_variations_fields: function( fields ) { var data = $( ':input', fields ).serializeJSON(); $( '.variations-defaults select' ).each( function( index, element ) { var select = $( element ); data[ select.attr( 'name' ) ] = select.val(); }); return data; }, /** * Save variations changes * * @param {Function} callback Called once saving is complete */ save_changes: function( callback ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), need_update = $( '.variation-needs-update', wrapper ), data = {}; // Save only with products need update. if ( 0 < need_update.length ) { wc_meta_boxes_product_variations_ajax.block(); data = wc_meta_boxes_product_variations_ajax.get_variations_fields( need_update ); data.action = 'woocommerce_save_variations'; data.security = woocommerce_admin_meta_boxes_variations.save_variations_nonce; data.product_id = woocommerce_admin_meta_boxes_variations.post_id; data['product-type'] = $( '#product-type' ).val(); $.ajax({ url: woocommerce_admin_meta_boxes_variations.ajax_url, data: data, type: 'POST', success: function( response ) { // Allow change page, delete and add new variations need_update.removeClass( 'variation-needs-update' ); $( 'button.cancel-variation-changes, button.save-variation-changes' ).attr( 'disabled', 'disabled' ); $( '#woocommerce-product-data' ).trigger( 'woocommerce_variations_saved' ); if ( typeof callback === 'function' ) { callback( response ); } wc_meta_boxes_product_variations_ajax.unblock(); } }); } }, /** * Save variations * * @return {Bool} */ save_variations: function() { $( '#variable_product_options' ).trigger( 'woocommerce_variations_save_variations_button' ); wc_meta_boxes_product_variations_ajax.save_changes( function( error ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), current = wrapper.attr( 'data-page' ); $( '#variable_product_options' ).find( '#woocommerce_errors' ).remove(); if ( error ) { wrapper.before( error ); } $( '.variations-defaults select' ).each( function() { $( this ).attr( 'data-current', $( this ).val() ); }); wc_meta_boxes_product_variations_pagenav.go_to_page( current ); }); return false; }, /** * Save on post form submit */ save_on_submit: function( e ) { var need_update = $( '#variable_product_options' ).find( '.woocommerce_variations .variation-needs-update' ); if ( 0 < need_update.length ) { e.preventDefault(); $( '#variable_product_options' ).trigger( 'woocommerce_variations_save_variations_on_submit' ); wc_meta_boxes_product_variations_ajax.save_changes( wc_meta_boxes_product_variations_ajax.save_on_submit_done ); } }, /** * After saved, continue with form submission */ save_on_submit_done: function() { $( 'form#post' ).submit(); }, /** * Discart changes. * * @return {Bool} */ cancel_variations: function() { var current = parseInt( $( '#variable_product_options' ).find( '.woocommerce_variations' ).attr( 'data-page' ), 10 ); $( '#variable_product_options' ).find( '.woocommerce_variations .variation-needs-update' ).removeClass( 'variation-needs-update' ); $( '.variations-defaults select' ).each( function() { $( this ).val( $( this ).attr( 'data-current' ) ); }); wc_meta_boxes_product_variations_pagenav.go_to_page( current ); return false; }, /** * Add variation * * @return {Bool} */ add_variation: function() { wc_meta_boxes_product_variations_ajax.block(); var data = { action: 'woocommerce_add_variation', post_id: woocommerce_admin_meta_boxes_variations.post_id, loop: $( '.woocommerce_variation' ).length, security: woocommerce_admin_meta_boxes_variations.add_variation_nonce }; $.post( woocommerce_admin_meta_boxes_variations.ajax_url, data, function( response ) { var variation = $( response ); variation.addClass( 'variation-needs-update' ); $( '#variable_product_options' ).find( '.woocommerce_variations' ).prepend( variation ); $( 'button.cancel-variation-changes, button.save-variation-changes' ).removeAttr( 'disabled' ); $( '#variable_product_options' ).trigger( 'woocommerce_variations_added', 1 ); wc_meta_boxes_product_variations_ajax.unblock(); }); return false; }, /** * Remove variation * * @return {Bool} */ remove_variation: function() { wc_meta_boxes_product_variations_ajax.check_for_changes(); if ( window.confirm( woocommerce_admin_meta_boxes_variations.i18n_remove_variation ) ) { var variation = $( this ).attr( 'rel' ), variation_ids = [], data = { action: 'woocommerce_remove_variations' }; wc_meta_boxes_product_variations_ajax.block(); if ( 0 < variation ) { variation_ids.push( variation ); data.variation_ids = variation_ids; data.security = woocommerce_admin_meta_boxes_variations.delete_variations_nonce; $.post( woocommerce_admin_meta_boxes_variations.ajax_url, data, function() { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), current_page = parseInt( wrapper.attr( 'data-page' ), 10 ), total_pages = Math.ceil( ( parseInt( wrapper.attr( 'data-total' ), 10 ) - 1 ) / woocommerce_admin_meta_boxes_variations.variations_per_page ), page = 1; $( '#woocommerce-product-data' ).trigger( 'woocommerce_variations_removed' ); if ( current_page === total_pages || current_page <= total_pages ) { page = current_page; } else if ( current_page > total_pages && 0 !== total_pages ) { page = total_pages; } wc_meta_boxes_product_variations_pagenav.go_to_page( page, -1 ); }); } else { wc_meta_boxes_product_variations_ajax.unblock(); } } return false; }, /** * Link all variations (or at least try :p) * * @return {Bool} */ link_all_variations: function() { wc_meta_boxes_product_variations_ajax.check_for_changes(); if ( window.confirm( woocommerce_admin_meta_boxes_variations.i18n_link_all_variations ) ) { wc_meta_boxes_product_variations_ajax.block(); var data = { action: 'woocommerce_link_all_variations', post_id: woocommerce_admin_meta_boxes_variations.post_id, security: woocommerce_admin_meta_boxes_variations.link_variation_nonce }; $.post( woocommerce_admin_meta_boxes_variations.ajax_url, data, function( response ) { var count = parseInt( response, 10 ); if ( 1 === count ) { window.alert( count + ' ' + woocommerce_admin_meta_boxes_variations.i18n_variation_added ); } else if ( 0 === count || count > 1 ) { window.alert( count + ' ' + woocommerce_admin_meta_boxes_variations.i18n_variations_added ); } else { window.alert( woocommerce_admin_meta_boxes_variations.i18n_no_variations_added ); } if ( count > 0 ) { wc_meta_boxes_product_variations_pagenav.go_to_page( 1, count ); $( '#variable_product_options' ).trigger( 'woocommerce_variations_added', count ); } else { wc_meta_boxes_product_variations_ajax.unblock(); } }); } return false; }, /** * Add new class when have changes in some input */ input_changed: function() { $( this ) .closest( '.woocommerce_variation' ) .addClass( 'variation-needs-update' ); $( 'button.cancel-variation-changes, button.save-variation-changes' ).removeAttr( 'disabled' ); $( '#variable_product_options' ).trigger( 'woocommerce_variations_input_changed' ); }, /** * Added new .variation-needs-update class when defaults is changed */ defaults_changed: function() { $( this ) .closest( '#variable_product_options' ) .find( '.woocommerce_variation:first' ) .addClass( 'variation-needs-update' ); $( 'button.cancel-variation-changes, button.save-variation-changes' ).removeAttr( 'disabled' ); $( '#variable_product_options' ).trigger( 'woocommerce_variations_defaults_changed' ); }, /** * Actions */ do_variation_action: function() { var do_variation_action = $( 'select.variation_actions' ).val(), data = {}, changes = 0, value; switch ( do_variation_action ) { case 'add_variation' : wc_meta_boxes_product_variations_ajax.add_variation(); return; case 'link_all_variations' : wc_meta_boxes_product_variations_ajax.link_all_variations(); return; case 'delete_all' : if ( window.confirm( woocommerce_admin_meta_boxes_variations.i18n_delete_all_variations ) ) { if ( window.confirm( woocommerce_admin_meta_boxes_variations.i18n_last_warning ) ) { data.allowed = true; changes = parseInt( $( '#variable_product_options' ).find( '.woocommerce_variations' ).attr( 'data-total' ), 10 ) * -1; } } break; case 'variable_regular_price_increase' : case 'variable_regular_price_decrease' : case 'variable_sale_price_increase' : case 'variable_sale_price_decrease' : value = window.prompt( woocommerce_admin_meta_boxes_variations.i18n_enter_a_value_fixed_or_percent ); if ( value != null ) { if ( value.indexOf( '%' ) >= 0 ) { data.value = accounting.unformat( value.replace( /\%/, '' ), woocommerce_admin.mon_decimal_point ) + '%'; } else { data.value = accounting.unformat( value, woocommerce_admin.mon_decimal_point ); } } break; case 'variable_regular_price' : case 'variable_sale_price' : case 'variable_stock' : case 'variable_weight' : case 'variable_length' : case 'variable_width' : case 'variable_height' : case 'variable_download_limit' : case 'variable_download_expiry' : value = window.prompt( woocommerce_admin_meta_boxes_variations.i18n_enter_a_value ); if ( value != null ) { data.value = value; } break; case 'variable_sale_schedule' : data.date_from = window.prompt( woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_start ); data.date_to = window.prompt( woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_end ); if ( null === data.date_from ) { data.date_from = false; } if ( null === data.date_to ) { data.date_to = false; } break; default : $( 'select.variation_actions' ).trigger( do_variation_action ); data = $( 'select.variation_actions' ).triggerHandler( do_variation_action + '_ajax_data', data ); break; } if ( 'delete_all' === do_variation_action && data.allowed ) { $( '#variable_product_options' ).find( '.variation-needs-update' ).removeClass( 'variation-needs-update' ); } else { wc_meta_boxes_product_variations_ajax.check_for_changes(); } wc_meta_boxes_product_variations_ajax.block(); $.ajax({ url: woocommerce_admin_meta_boxes_variations.ajax_url, data: { action: 'woocommerce_bulk_edit_variations', security: woocommerce_admin_meta_boxes_variations.bulk_edit_variations_nonce, product_id: woocommerce_admin_meta_boxes_variations.post_id, product_type: $( '#product-type' ).val(), bulk_action: do_variation_action, data: data }, type: 'POST', success: function() { wc_meta_boxes_product_variations_pagenav.go_to_page( 1, changes ); } }); } }; /** * Product variations pagenav */ var wc_meta_boxes_product_variations_pagenav = { /** * Initialize products variations meta box */ init: function() { $( document.body ) .on( 'woocommerce_variations_added', this.update_single_quantity ) .on( 'change', '.variations-pagenav .page-selector', this.page_selector ) .on( 'click', '.variations-pagenav .first-page', this.first_page ) .on( 'click', '.variations-pagenav .prev-page', this.prev_page ) .on( 'click', '.variations-pagenav .next-page', this.next_page ) .on( 'click', '.variations-pagenav .last-page', this.last_page ); }, /** * Set variations count * * @param {Int} qty * * @return {Int} */ update_variations_count: function( qty ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), total = parseInt( wrapper.attr( 'data-total' ), 10 ) + qty, displaying_num = $( '.variations-pagenav .displaying-num' ); // Set the new total of variations wrapper.attr( 'data-total', total ); if ( 1 === total ) { displaying_num.text( woocommerce_admin_meta_boxes_variations.i18n_variation_count_single.replace( '%qty%', total ) ); } else { displaying_num.text( woocommerce_admin_meta_boxes_variations.i18n_variation_count_plural.replace( '%qty%', total ) ); } return total; }, /** * Update variations quantity when add a new variation * * @param {Object} event * @param {Int} qty */ update_single_quantity: function( event, qty ) { if ( 1 === qty ) { var page_nav = $( '.variations-pagenav' ); wc_meta_boxes_product_variations_pagenav.update_variations_count( qty ); if ( page_nav.is( ':hidden' ) ) { $( 'option, optgroup', '.variation_actions' ).show(); $( '.variation_actions' ).val( 'add_variation' ); $( '#variable_product_options' ).find( '.toolbar' ).show(); page_nav.show(); $( '.pagination-links', page_nav ).hide(); } } }, /** * Set the pagenav fields * * @param {Int} qty */ set_paginav: function( qty ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), new_qty = wc_meta_boxes_product_variations_pagenav.update_variations_count( qty ), toolbar = $( '#variable_product_options' ).find( '.toolbar' ), variation_action = $( '.variation_actions' ), page_nav = $( '.variations-pagenav' ), displaying_links = $( '.pagination-links', page_nav ), total_pages = Math.ceil( new_qty / woocommerce_admin_meta_boxes_variations.variations_per_page ), options = ''; // Set the new total of pages wrapper.attr( 'data-total_pages', total_pages ); $( '.total-pages', page_nav ).text( total_pages ); // Set the new pagenav options for ( var i = 1; i <= total_pages; i++ ) { options += ''; } $( '.page-selector', page_nav ).empty().html( options ); // Show/hide pagenav if ( 0 === new_qty ) { toolbar.not( '.toolbar-top, .toolbar-buttons' ).hide(); page_nav.hide(); $( 'option, optgroup', variation_action ).hide(); $( '.variation_actions' ).val( 'add_variation' ); $( 'option[data-global="true"]', variation_action ).show(); } else { toolbar.show(); page_nav.show(); $( 'option, optgroup', variation_action ).show(); $( '.variation_actions' ).val( 'add_variation' ); // Show/hide links if ( 1 === total_pages ) { displaying_links.hide(); } else { displaying_links.show(); } } }, /** * Check button if enabled and if don't have changes * * @return {Bool} */ check_is_enabled: function( current ) { return ! $( current ).hasClass( 'disabled' ); }, /** * Change "disabled" class on pagenav */ change_classes: function( selected, total ) { var first_page = $( '.variations-pagenav .first-page' ), prev_page = $( '.variations-pagenav .prev-page' ), next_page = $( '.variations-pagenav .next-page' ), last_page = $( '.variations-pagenav .last-page' ); if ( 1 === selected ) { first_page.addClass( 'disabled' ); prev_page.addClass( 'disabled' ); } else { first_page.removeClass( 'disabled' ); prev_page.removeClass( 'disabled' ); } if ( total === selected ) { next_page.addClass( 'disabled' ); last_page.addClass( 'disabled' ); } else { next_page.removeClass( 'disabled' ); last_page.removeClass( 'disabled' ); } }, /** * Set page */ set_page: function( page ) { $( '.variations-pagenav .page-selector' ).val( page ).first().change(); }, /** * Navigate on variations pages * * @param {Int} page * @param {Int} qty */ go_to_page: function( page, qty ) { page = page || 1; qty = qty || 0; wc_meta_boxes_product_variations_pagenav.set_paginav( qty ); wc_meta_boxes_product_variations_pagenav.set_page( page ); }, /** * Paginav pagination selector */ page_selector: function() { var selected = parseInt( $( this ).val(), 10 ), wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ); $( '.variations-pagenav .page-selector' ).val( selected ); wc_meta_boxes_product_variations_ajax.check_for_changes(); wc_meta_boxes_product_variations_pagenav.change_classes( selected, parseInt( wrapper.attr( 'data-total_pages' ), 10 ) ); wc_meta_boxes_product_variations_ajax.load_variations( selected ); }, /** * Go to first page * * @return {Bool} */ first_page: function() { if ( wc_meta_boxes_product_variations_pagenav.check_is_enabled( this ) ) { wc_meta_boxes_product_variations_pagenav.set_page( 1 ); } return false; }, /** * Go to previous page * * @return {Bool} */ prev_page: function() { if ( wc_meta_boxes_product_variations_pagenav.check_is_enabled( this ) ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), prev_page = parseInt( wrapper.attr( 'data-page' ), 10 ) - 1, new_page = ( 0 < prev_page ) ? prev_page : 1; wc_meta_boxes_product_variations_pagenav.set_page( new_page ); } return false; }, /** * Go to next page * * @return {Bool} */ next_page: function() { if ( wc_meta_boxes_product_variations_pagenav.check_is_enabled( this ) ) { var wrapper = $( '#variable_product_options' ).find( '.woocommerce_variations' ), total_pages = parseInt( wrapper.attr( 'data-total_pages' ), 10 ), next_page = parseInt( wrapper.attr( 'data-page' ), 10 ) + 1, new_page = ( total_pages >= next_page ) ? next_page : total_pages; wc_meta_boxes_product_variations_pagenav.set_page( new_page ); } return false; }, /** * Go to last page * * @return {Bool} */ last_page: function() { if ( wc_meta_boxes_product_variations_pagenav.check_is_enabled( this ) ) { var last_page = $( '#variable_product_options' ).find( '.woocommerce_variations' ).attr( 'data-total_pages' ); wc_meta_boxes_product_variations_pagenav.set_page( last_page ); } return false; } }; wc_meta_boxes_product_variations_actions.init(); wc_meta_boxes_product_variations_media.init(); wc_meta_boxes_product_variations_ajax.init(); wc_meta_boxes_product_variations_pagenav.init(); }); assets/js/admin/meta-boxes-product.min.js000066600000027576152133032050014433 0ustar00jQuery(function(a){function b(){var b=a("select#product-type").val(),c=a("input#_virtual:checked").length,d=a("input#_downloadable:checked").length,e=".hide_if_downloadable, .hide_if_virtual",f=".show_if_downloadable, .show_if_virtual";a.each(woocommerce_admin_meta_boxes.product_types,function(a,b){e=e+", .hide_if_"+b,f=f+", .show_if_"+b}),a(e).show(),a(f).hide(),d&&a(".show_if_downloadable").show(),c&&a(".show_if_virtual").show(),a(".show_if_"+b).show(),d&&a(".hide_if_downloadable").hide(),c&&a(".hide_if_virtual").hide(),a(".hide_if_"+b).hide(),a("input#_manage_stock").change(),a(".woocommerce_options_panel").each(function(){var b=a(this).children(".options_group");if(0!==b.length){var c=b.filter(function(){return"none"===a(this).css("display")});if(c.length===b.length){var d=a(this).prop("id");a(".product_data_tabs").find('li a[href="#'+d+'"]').parent().hide()}}})}function c(){a(".product_attributes .woocommerce_attribute").each(function(b,c){a(".attribute_position",c).val(parseInt(a(c).index(".product_attributes .woocommerce_attribute"),10))})}a(function(){a('[id$="-all"] > ul.categorychecklist').each(function(){var b=a(this),c=b.find(":checked").first();if(c.length){var d=b.find("input").position().top,e=c.position().top;b.closest(".tabs-panel").scrollTop(e-d+5)}})}),a("#upsell_product_data").bind("keypress",function(a){if(13===a.keyCode)return!1}),a(".type_box").appendTo("#woocommerce-product-data .hndle span"),a(function(){a("#woocommerce-product-data").find(".hndle").unbind("click.postboxes"),a("#woocommerce-product-data").on("click",".hndle",function(b){a(b.target).filter("input, option, label, select").length||a("#woocommerce-product-data").toggleClass("closed")})}),a("#catalog-visibility").find(".edit-catalog-visibility").click(function(){return a("#catalog-visibility-select").is(":hidden")&&(a("#catalog-visibility-select").slideDown("fast"),a(this).hide()),!1}),a("#catalog-visibility").find(".save-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("input[name=_visibility]:checked").attr("data-label");return a("input[name=_featured]").is(":checked")&&(b=b+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")),a("#catalog-visibility-display").text(b),!1}),a("#catalog-visibility").find(".cancel-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("#current_visibility").val(),c=a("#current_featured").val();a("input[name=_visibility]").removeAttr("checked"),a("input[name=_visibility][value="+b+"]").attr("checked","checked");var d=a("input[name=_visibility]:checked").attr("data-label");return"yes"===c?(d=d+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")):a("input[name=_featured]").removeAttr("checked"),a("#catalog-visibility-display").text(d),!1}),a("select#product-type").change(function(){var c=a(this).val();"variable"===c?(a("input#_manage_stock").change(),a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"grouped"===c?(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"external"===c&&(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")),b(),a("ul.wc-tabs li:visible").eq(0).find("a").click(),a(document.body).trigger("woocommerce-product-type-change",c,a(this))}).change(),a(document.body).on("woocommerce-product-type-change",function(b,c){"variable"!==c&&0e?1:0}),a(d).each(function(b,c){a(".product_attributes").append(c)}),a(".product_attributes .woocommerce_attribute").each(function(b,c){"none"!==a(c).css("display")&&a(c).is(".taxonomy")&&a("select.attribute_taxonomy").find('option[value="'+a(c).data("taxonomy")+'"]').attr("disabled","disabled")}),a("button.add_attribute").on("click",function(){var b=a(".product_attributes .woocommerce_attribute").length,d=a("select.attribute_taxonomy").val(),e=a(this).closest("#product_attributes"),f=e.find(".product_attributes"),g=a("select#product-type").val(),h={action:"woocommerce_add_attribute",taxonomy:d,i:b,security:woocommerce_admin_meta_boxes.add_attribute_nonce};return e.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.post(woocommerce_admin_meta_boxes.ajax_url,h,function(b){f.append(b),"variable"!==g&&f.find(".enable_variation").hide(),a(document.body).trigger("wc-enhanced-select-init"),c(),e.unblock(),a(document.body).trigger("woocommerce_added_attribute")}),d&&(a("select.attribute_taxonomy").find('option[value="'+d+'"]').attr("disabled","disabled"),a("select.attribute_taxonomy").val("")),!1}),a(".product_attributes").on("blur","input.attribute_name",function(){a(this).closest(".woocommerce_attribute").find("strong.attribute_name").text(a(this).val())}),a(".product_attributes").on("click","button.select_all_attributes",function(){return a(this).closest("td").find("select option").attr("selected","selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click","button.select_no_attributes",function(){return a(this).closest("td").find("select option").removeAttr("selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click",".remove_row",function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_attribute)){var b=a(this).parent().parent();b.is(".taxonomy")?(b.find("select, input[type=text]").val(""),b.hide(),a("select.attribute_taxonomy").find('option[value="'+b.data("taxonomy")+'"]').removeAttr("disabled")):(b.find("select, input[type=text]").val(""),b.hide(),c())}return!1}),a(".product_attributes").sortable({items:".woocommerce_attribute",cursor:"move",axis:"y",handle:"h3",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style"),c()}}),a(".product_attributes").on("click","button.add_new_attribute",function(){a(".product_attributes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b=a(this).closest(".woocommerce_attribute"),c=b.data("taxonomy"),d=window.prompt(woocommerce_admin_meta_boxes.new_attribute_prompt);if(d){var e={action:"woocommerce_add_new_attribute",taxonomy:c,term:d,security:woocommerce_admin_meta_boxes.add_attribute_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,e,function(c){c.error?window.alert(c.error):c.slug&&(b.find("select.attribute_values").append('"),b.find("select.attribute_values").change()),a(".product_attributes").unblock()})}else a(".product_attributes").unblock();return!1}),a(".save_attributes").on("click",function(){a("#woocommerce-product-data").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b={post_id:woocommerce_admin_meta_boxes.post_id,data:a(".product_attributes").find("input, select, textarea").serialize(),action:"woocommerce_save_attributes",security:woocommerce_admin_meta_boxes.save_attributes_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,b,function(){var b=window.location.toString();b=b.replace("post-new.php?","post.php?post="+woocommerce_admin_meta_boxes.post_id+"&action=edit&"),a("#variable_product_options").load(b+" #variable_product_options_inner",function(){a("#variable_product_options").trigger("reload")})})});var e,f;a(document.body).on("click",".upload_file_button",function(b){var c=a(this);if(f=c.closest("tr").find("td.file_url input"),b.preventDefault(),e)return void e.open();var d=[new wp.media.controller.Library({library:wp.media.query(),multiple:!0,title:c.data("choose"),priority:20,filterable:"uploaded"})];e=wp.media.frames.downloadable_file=wp.media({title:c.data("choose"),library:{type:""},button:{text:c.data("update")},multiple:!0,states:d}),e.on("select",function(){var a="",b=e.state().get("selection");b.map(function(b){b=b.toJSON(),b.url&&(a=b.url)}),f.val(a).change()}),e.on("ready",function(){e.uploader.options.uploader.params={type:"downloadable_product"}}),e.open()}),a(".downloadable_files tbody").sortable({items:"tr",cursor:"move",axis:"y",handle:"td.sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65});var g,h=a("#product_image_gallery"),i=a("#product_images_container").find("ul.product_images");a(".add_product_images").on("click","a",function(b){var c=a(this);return b.preventDefault(),g?void g.open():(g=wp.media.frames.product_gallery=wp.media({title:c.data("choose"),button:{text:c.data("update")},states:[new wp.media.controller.Library({title:c.data("choose"),filterable:"all",multiple:!0})]}),g.on("select",function(){var a=g.state().get("selection"),b=h.val();a.map(function(a){if(a=a.toJSON(),a.id){b=b?b+","+a.id:a.id;var d=a.sizes&&a.sizes.thumbnail?a.sizes.thumbnail.url:a.url;i.append('
  • ")}}),h.val(b)}),void g.open())}),i.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style")},update:function(){var b="";a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var c=a(this).attr("data-attachment_id");b=b+c+","}),h.val(b)}}),a("#product_images_container").on("click","a.delete",function(){a(this).closest("li.image").remove();var b="";return a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var c=a(this).attr("data-attachment_id");b=b+c+","}),h.val(b),a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),!1})});assets/js/admin/wc-shipping-classes.js000066600000017646152133032050014007 0ustar00/* global shippingClassesLocalizeScript, ajaxurl */ ( function( $, data, wp, ajaxurl ) { $( function() { var $tbody = $( '.wc-shipping-class-rows' ), $save_button = $( '.wc-shipping-class-save' ), $row_template = wp.template( 'wc-shipping-class-row' ), $blank_template = wp.template( 'wc-shipping-class-row-blank' ), // Backbone model ShippingClass = Backbone.Model.extend({ changes: {}, logChanges: function( changedRows ) { var changes = this.changes || {}; _.each( changedRows, function( row, id ) { changes[ id ] = _.extend( changes[ id ] || { term_id : id }, row ); } ); this.changes = changes; this.trigger( 'change:classes' ); }, save: function() { if ( _.size( this.changes ) ) { $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_classes_save_changes', { wc_shipping_classes_nonce : data.wc_shipping_classes_nonce, changes : this.changes }, this.onSaveResponse, 'json' ); } else { shippingClass.trigger( 'saved:classes' ); } }, discardChanges: function( id ) { var changes = this.changes || {}; // Delete all changes delete changes[ id ]; // No changes? Disable save button. if ( 0 === _.size( this.changes ) ) { shippingClassView.clearUnloadConfirmation(); } }, onSaveResponse: function( response, textStatus ) { if ( 'success' === textStatus ) { if ( response.success ) { shippingClass.set( 'classes', response.data.shipping_classes ); shippingClass.trigger( 'change:classes' ); shippingClass.changes = {}; shippingClass.trigger( 'saved:classes' ); } else if ( response.data ) { window.alert( response.data ); } else { window.alert( data.strings.save_failed ); } } shippingClassView.unblock(); } } ), // Backbone view ShippingClassView = Backbone.View.extend({ rowTemplate: $row_template, initialize: function() { this.listenTo( this.model, 'change:classes', this.setUnloadConfirmation ); this.listenTo( this.model, 'saved:classes', this.clearUnloadConfirmation ); this.listenTo( this.model, 'saved:classes', this.render ); $tbody.on( 'change', { view: this }, this.updateModelOnChange ); $( window ).on( 'beforeunload', { view: this }, this.unloadConfirmation ); $save_button.on( 'click', { view: this }, this.onSubmit ); $( document.body ).on( 'click', '.wc-shipping-class-add', { view: this }, this.onAddNewRow ); $( document.body ).on( 'click', '.wc-shipping-class-save-changes', { view: this }, this.onSubmit ); }, block: function() { $( this.el ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( this.el ).unblock(); }, render: function() { var classes = _.indexBy( this.model.get( 'classes' ), 'term_id' ), view = this; this.$el.empty(); this.unblock(); if ( _.size( classes ) ) { // Sort classes classes = _.sortBy( classes, function( shipping_class ) { return shipping_class.name; } ); // Populate $tbody with the current classes $.each( classes, function( id, rowData ) { view.renderRow( rowData ); } ); } else { view.$el.append( $blank_template ); } }, renderRow: function( rowData ) { var view = this; view.$el.append( view.rowTemplate( rowData ) ); view.initRow( rowData ); }, initRow: function( rowData ) { var view = this; var $tr = view.$el.find( 'tr[data-id="' + rowData.term_id + '"]'); // Support select boxes $tr.find( 'select' ).each( function() { var attribute = $( this ).data( 'attribute' ); $( this ).find( 'option[value="' + rowData[ attribute ] + '"]' ).prop( 'selected', true ); } ); // Make the rows function $tr.find( '.view' ).show(); $tr.find( '.edit' ).hide(); $tr.find( '.wc-shipping-class-edit' ).on( 'click', { view: this }, this.onEditRow ); $tr.find( '.wc-shipping-class-delete' ).on( 'click', { view: this }, this.onDeleteRow ); $tr.find( '.editing .wc-shipping-class-edit' ).trigger('click'); $tr.find( '.wc-shipping-class-cancel-edit' ).on( 'click', { view: this }, this.onCancelEditRow ); // Editing? if ( true === rowData.editing ) { $tr.addClass( 'editing' ); $tr.find( '.wc-shipping-class-edit' ).trigger( 'click' ); } }, onSubmit: function( event ) { event.data.view.block(); event.data.view.model.save(); event.preventDefault(); }, onAddNewRow: function( event ) { event.preventDefault(); var view = event.data.view, model = view.model, classes = _.indexBy( model.get( 'classes' ), 'term_id' ), changes = {}, size = _.size( classes ), newRow = _.extend( {}, data.default_class, { term_id: 'new-' + size + '-' + Date.now(), editing: true, newRow : true } ); changes[ newRow.term_id ] = newRow; model.logChanges( changes ); view.renderRow( newRow ); $( '.wc-shipping-classes-blank-state' ).remove(); }, onEditRow: function( event ) { event.preventDefault(); $( this ).closest('tr').addClass('editing'); $( this ).closest('tr').find('.view').hide(); $( this ).closest('tr').find('.edit').show(); event.data.view.model.trigger( 'change:classes' ); }, onDeleteRow: function( event ) { var view = event.data.view, model = view.model, classes = _.indexBy( model.get( 'classes' ), 'term_id' ), changes = {}, term_id = $( this ).closest('tr').data('id'); event.preventDefault(); if ( classes[ term_id ] ) { delete classes[ term_id ]; changes[ term_id ] = _.extend( changes[ term_id ] || {}, { deleted : 'deleted' } ); model.set( 'classes', classes ); model.logChanges( changes ); } view.render(); }, onCancelEditRow: function( event ) { var view = event.data.view, model = view.model, row = $( this ).closest('tr'), term_id = $( this ).closest('tr').data('id'), classes = _.indexBy( model.get( 'classes' ), 'term_id' ); event.preventDefault(); model.discardChanges( term_id ); if ( classes[ term_id ] ) { classes[ term_id ].editing = false; row.after( view.rowTemplate( classes[ term_id ] ) ); view.initRow( classes[ term_id ] ); } row.remove(); }, setUnloadConfirmation: function() { this.needsUnloadConfirm = true; $save_button.removeAttr( 'disabled' ); }, clearUnloadConfirmation: function() { this.needsUnloadConfirm = false; $save_button.attr( 'disabled', 'disabled' ); }, unloadConfirmation: function( event ) { if ( event.data.view.needsUnloadConfirm ) { event.returnValue = data.strings.unload_confirmation_msg; window.event.returnValue = data.strings.unload_confirmation_msg; return data.strings.unload_confirmation_msg; } }, updateModelOnChange: function( event ) { var model = event.data.view.model, $target = $( event.target ), term_id = $target.closest( 'tr' ).data( 'id' ), attribute = $target.data( 'attribute' ), value = $target.val(), classes = _.indexBy( model.get( 'classes' ), 'term_id' ), changes = {}; if ( ! classes[ term_id ] || classes[ term_id ][ attribute ] !== value ) { changes[ term_id ] = {}; changes[ term_id ][ attribute ] = value; } model.logChanges( changes ); } } ), shippingClass = new ShippingClass({ classes: data.classes } ), shippingClassView = new ShippingClassView({ model: shippingClass, el: $tbody } ); shippingClassView.render(); }); })( jQuery, shippingClassesLocalizeScript, wp, ajaxurl ); assets/js/admin/wc-setup.js000066600000004270152133032050011660 0ustar00/*global wc_setup_params */ jQuery( function( $ ) { var locale_info = $.parseJSON( wc_setup_params.locale_info ); $( 'select[name="store_location"]' ).change( function() { var country_option = $(this).val(); var country = country_option.split( ':' )[0]; var country_locale_info = locale_info[ country ]; var hide_if_set = [ 'thousand_sep', 'decimal_sep', 'num_decimals', 'currency_pos' ]; if ( country_locale_info ) { $.each( country_locale_info, function( index, value) { $(':input[name="' + index + '"]').val( value ).change(); if ( -1 !== $.inArray( index, hide_if_set ) ) { $(':input[name="' + index + '"]').closest('tr').hide(); } } ); } else { $(':input[name="currency_pos"]').closest('tr').show(); $(':input[name="thousand_sep"]').closest('tr').show(); $(':input[name="decimal_sep"]').closest('tr').show(); $(':input[name="num_decimals"]').closest('tr').show(); } } ).change(); $( 'input[name="woocommerce_calc_taxes"]' ).change( function() { if ( $(this).is( ':checked' ) ) { $(':input[name="woocommerce_prices_include_tax"], :input[name="woocommerce_import_tax_rates"]').closest('tr').show(); $('tr.tax-rates').show(); } else { $(':input[name="woocommerce_prices_include_tax"], :input[name="woocommerce_import_tax_rates"]').closest('tr').hide(); $('tr.tax-rates').hide(); } } ).change(); $( '.button-next' ).on( 'click', function() { $('.wc-setup-content').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); return true; } ); $( '.wc-wizard-payment-gateways' ).on( 'change', '.wc-wizard-gateway-enable input', function() { if ( $( this ).is( ':checked' ) ) { $( this ).closest( 'li' ).addClass( 'checked' ); } else { $( this ).closest( 'li' ).removeClass( 'checked' ); } } ); $( '.wc-wizard-payment-gateways' ).on( 'click', 'li.wc-wizard-gateway', function() { var $enabled = $( this ).find( '.wc-wizard-gateway-enable input' ); $enabled.prop( 'checked', ! $enabled.prop( 'checked' ) ).change(); } ); $( '.wc-wizard-payment-gateways' ).on( 'click', 'li.wc-wizard-gateway table, li.wc-wizard-gateway a', function( e ) { e.stopPropagation(); } ); } ); assets/js/admin/term-ordering.js000066600000005611152133032050012667 0ustar00/*global ajaxurl, woocommerce_term_ordering_params */ /* Modifided script from the simple-page-ordering plugin */ jQuery( function( $ ) { $( 'table.widefat.wp-list-table tbody th, table.widefat tbody td' ).css( 'cursor', 'move' ); $( 'table.widefat.wp-list-table' ).sortable({ items: 'tbody tr:not(.inline-edit-row)', cursor: 'move', axis: 'y', forcePlaceholderSize: true, helper: 'clone', opacity: 0.65, placeholder: 'product-cat-placeholder', scrollSensitivity: 40, start: function( event, ui ) { if ( ! ui.item.hasClass( 'alternate' ) ) { ui.item.css( 'background-color', '#ffffff' ); } ui.item.children( 'td, th' ).css( 'border-bottom-width', '0' ); ui.item.css( 'outline', '1px solid #aaa' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); ui.item.children( 'td, th' ).css( 'border-bottom-width', '1px' ); }, update: function( event, ui ) { var termid = ui.item.find( '.check-column input' ).val(); // this post id var termparent = ui.item.find( '.parent' ).html(); // post parent var prevtermid = ui.item.prev().find( '.check-column input' ).val(); var nexttermid = ui.item.next().find( '.check-column input' ).val(); // Can only sort in same tree var prevtermparent, nexttermparent; if ( prevtermid !== undefined ) { prevtermparent = ui.item.prev().find( '.parent' ).html(); if ( prevtermparent !== termparent) { prevtermid = undefined; } } if ( nexttermid !== undefined ) { nexttermparent = ui.item.next().find( '.parent' ).html(); if ( nexttermparent !== termparent) { nexttermid = undefined; } } // If previous and next not at same tree level, or next not at same tree level and the previous is the parent of the next, or just moved item beneath its own children if ( ( prevtermid === undefined && nexttermid === undefined ) || ( nexttermid === undefined && nexttermparent === prevtermid ) || ( nexttermid !== undefined && prevtermparent === termid ) ) { $( 'table.widefat.wp-list-table' ).sortable( 'cancel' ); return; } // Show Spinner ui.item.find( '.check-column input' ).hide().after( 'processing' ); // Go do the sorting stuff via ajax $.post( ajaxurl, { action: 'woocommerce_term_ordering', id: termid, nextid: nexttermid, thetaxonomy: woocommerce_term_ordering_params.taxonomy }, function(response){ if ( response === 'children' ) { window.location.reload(); } else { ui.item.find( '.check-column input' ).show().siblings( 'img' ).remove(); } }); // Fix cell colors $( 'table.widefat tbody tr' ).each( function() { var i = jQuery( 'table.widefat tbody tr' ).index( this ); if ( i%2 === 0 ) { jQuery( this ).addClass( 'alternate' ); } else { jQuery( this ).removeClass( 'alternate' ); } }); } }); }); assets/js/admin/settings-views-html-settings-tax.js000066600000032044152133032050016476 0ustar00/* global htmlSettingsTaxLocalizeScript, ajaxurl */ /** * Used by woocommerce/includes/admin/settings/views/html-settings-tax.php */ ( function( $, data, wp, ajaxurl ) { $( function() { if ( ! String.prototype.trim ) { String.prototype.trim = function () { return this.replace( /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '' ); }; } var rowTemplate = wp.template( 'wc-tax-table-row' ), rowTemplateEmpty = wp.template( 'wc-tax-table-row-empty' ), paginationTemplate = wp.template( 'wc-tax-table-pagination' ), $table = $( '.wc_tax_rates' ), $tbody = $( '#rates' ), $save_button = $( 'input[name="save"]' ), $pagination = $( '#rates-pagination' ), $search_field = $( '#rates-search .wc-tax-rates-search-field' ), $submit = $( '.submit .button-primary[type=submit]' ), WCTaxTableModelConstructor = Backbone.Model.extend({ changes: {}, setRateAttribute: function( rateID, attribute, value ) { var rates = _.indexBy( this.get( 'rates' ), 'tax_rate_id' ), changes = {}; if ( rates[ rateID ][ attribute ] !== value ) { changes[ rateID ] = {}; changes[ rateID ][ attribute ] = value; rates[ rateID ][ attribute ] = value; } this.logChanges( changes ); }, logChanges: function( changedRows ) { var changes = this.changes || {}; _.each( changedRows, function( row, id ) { changes[ id ] = _.extend( changes[ id ] || { tax_rate_id : id }, row ); } ); this.changes = changes; this.trigger( 'change:rates' ); }, getFilteredRates: function() { var rates = this.get( 'rates' ), search = $search_field.val().toLowerCase(); if ( search.length ) { rates = _.filter( rates, function( rate ) { var search_text = _.toArray( rate ).join( ' ' ).toLowerCase(); return ( -1 !== search_text.indexOf( search ) ); } ); } rates = _.sortBy( rates, function( rate ) { return parseInt( rate.tax_rate_order, 10 ); } ); return rates; }, block: function() { $( '.wc_tax_rates' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( '.wc_tax_rates' ).unblock(); }, save: function() { var self = this; self.block(); Backbone.ajax({ method: 'POST', dataType: 'json', url: ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_tax_rates_save_changes', data: { current_class: data.current_class, wc_tax_nonce: data.wc_tax_nonce, changes: self.changes }, success: function( response, textStatus ) { if ( 'success' === textStatus ) { WCTaxTableModelInstance.set( 'rates', response.data.rates ); WCTaxTableModelInstance.trigger( 'change:rates' ); WCTaxTableModelInstance.changes = {}; WCTaxTableModelInstance.trigger( 'saved:rates' ); // Reload view. WCTaxTableInstance.render(); } self.unblock(); } }); } } ), WCTaxTableViewConstructor = Backbone.View.extend({ rowTemplate: rowTemplate, per_page: data.limit, page: data.page, initialize: function() { var qty_pages = Math.ceil( _.toArray( this.model.get( 'rates' ) ).length / this.per_page ); this.qty_pages = 0 === qty_pages ? 1 : qty_pages; this.page = this.sanitizePage( data.page ); this.listenTo( this.model, 'change:rates', this.setUnloadConfirmation ); this.listenTo( this.model, 'saved:rates', this.clearUnloadConfirmation ); $tbody.on( 'change autocompletechange', ':input', { view: this }, this.updateModelOnChange ); $tbody.on( 'sortupdate', { view: this }, this.updateModelOnSort ); $search_field.on( 'keyup search', { view: this }, this.onSearchField ); $pagination.on( 'click', 'a', { view: this }, this.onPageChange ); $pagination.on( 'change', 'input', { view: this }, this.onPageChange ); $( window ).on( 'beforeunload', { view: this }, this.unloadConfirmation ); $submit.on( 'click', { view: this }, this.onSubmit ); $save_button.attr( 'disabled','disabled' ); // Can bind these directly to the buttons, as they won't get overwritten. $table.find( '.insert' ).on( 'click', { view: this }, this.onAddNewRow ); $table.find( '.remove_tax_rates' ).on( 'click', { view: this }, this.onDeleteRow ); $table.find( '.export' ).on( 'click', { view: this }, this.onExport ); }, render: function() { var rates = this.model.getFilteredRates(), qty_rates = _.size( rates ), qty_pages = Math.ceil( qty_rates / this.per_page ), first_index = 0 === qty_rates ? 0 : this.per_page * ( this.page - 1 ), last_index = this.per_page * this.page, paged_rates = _.toArray( rates ).slice( first_index, last_index ), view = this; // Blank out the contents. this.$el.empty(); if ( paged_rates.length ) { // Populate $tbody with the current page of results. $.each( paged_rates, function( id, rowData ) { view.$el.append( view.rowTemplate( rowData ) ); } ); } else { view.$el.append( rowTemplateEmpty() ); } // Initialize autocomplete for countries. this.$el.find( 'td.country input' ).autocomplete({ source: data.countries, minLength: 2 }); // Initialize autocomplete for states. this.$el.find( 'td.state input' ).autocomplete({ source: data.states, minLength: 3 }); // Postcode and city don't have `name` values by default. They're only created if the contents changes, to save on database queries (I think) this.$el.find( 'td.postcode input, td.city input' ).change( function() { $( this ).attr( 'name', $( this ).data( 'name' ) ); }); if ( qty_pages > 1 ) { // We've now displayed our initial page, time to render the pagination box. $pagination.html( paginationTemplate( { qty_rates: qty_rates, current_page: this.page, qty_pages: qty_pages } ) ); } else { $pagination.empty(); view.page = 1; } // Disable sorting if there is a search term filtering the items. if ( $search_field.val() ) { $tbody.sortable( 'disable' ); } else { $tbody.sortable( 'enable' ); } }, updateUrl: function() { if ( ! window.history.replaceState ) { return; } var url = data.base_url, search = $search_field.val(); if ( 1 < this.page ) { url += '&p=' + encodeURIComponent( this.page ); } if ( search.length ) { url += '&s=' + encodeURIComponent( search ); } window.history.replaceState( {}, '', url ); }, onSubmit: function( event ) { event.data.view.model.save(); event.preventDefault(); }, onAddNewRow: function( event ) { var view = event.data.view, model = view.model, rates = _.indexBy( model.get( 'rates' ), 'tax_rate_id' ), changes = {}, size = _.size( rates ), newRow = _.extend( {}, data.default_rate, { tax_rate_id: 'new-' + size + '-' + Date.now(), newRow: true } ), $current, current_id, current_order, rates_to_reorder, reordered_rates; $current = $tbody.children( '.current' ); if ( $current.length ) { current_id = $current.last().data( 'id' ); current_order = parseInt( rates[ current_id ].tax_rate_order, 10 ); newRow.tax_rate_order = 1 + current_order; rates_to_reorder = _.filter( rates, function( rate ) { if ( parseInt( rate.tax_rate_order, 10 ) > current_order ) { return true; } return false; } ); reordered_rates = _.map( rates_to_reorder, function( rate ) { rate.tax_rate_order++; changes[ rate.tax_rate_id ] = _.extend( changes[ rate.tax_rate_id ] || {}, { tax_rate_order : rate.tax_rate_order } ); return rate; } ); } else { newRow.tax_rate_order = 1 + _.max( _.pluck( rates, 'tax_rate_order' ), function ( val ) { // Cast them all to integers, because strings compare funky. Sighhh. return parseInt( val, 10 ); } ); // Move the last page view.page = view.qty_pages; } rates[ newRow.tax_rate_id ] = newRow; changes[ newRow.tax_rate_id ] = newRow; model.set( 'rates', rates ); model.logChanges( changes ); view.render(); }, onDeleteRow: function( event ) { var view = event.data.view, model = view.model, rates = _.indexBy( model.get( 'rates' ), 'tax_rate_id' ), changes = {}, $current, current_id; event.preventDefault(); if ( $current = $tbody.children( '.current' ) ) { $current.each(function(){ current_id = $( this ).data('id'); delete rates[ current_id ]; changes[ current_id ] = _.extend( changes[ current_id ] || {}, { deleted : 'deleted' } ); }); model.set( 'rates', rates ); model.logChanges( changes ); view.render(); } else { window.alert( data.strings.no_rows_selected ); } }, onSearchField: function( event ){ event.data.view.updateUrl(); event.data.view.render(); }, onPageChange: function( event ) { var $target = $( event.currentTarget ); event.preventDefault(); event.data.view.page = $target.data( 'goto' ) ? $target.data( 'goto' ) : $target.val(); event.data.view.render(); event.data.view.updateUrl(); }, onExport: function( event ) { var csv_data = 'data:application/csv;charset=utf-8,' + data.strings.csv_data_cols.join(',') + '\n'; $.each( event.data.view.model.getFilteredRates(), function( id, rowData ) { var row = ''; row += rowData.tax_rate_country + ','; row += rowData.tax_rate_state + ','; row += ( rowData.postcode ? rowData.postcode.join( '; ' ) : '' ) + ','; row += ( rowData.city ? rowData.city.join( '; ' ) : '' ) + ','; row += rowData.tax_rate + ','; row += rowData.tax_rate_name + ','; row += rowData.tax_rate_priority + ','; row += rowData.tax_rate_compound + ','; row += rowData.tax_rate_shipping + ','; row += data.current_class; csv_data += row + '\n'; }); $( this ).attr( 'href', encodeURI( csv_data ) ); return true; }, setUnloadConfirmation: function() { this.needsUnloadConfirm = true; $save_button.removeAttr( 'disabled' ); }, clearUnloadConfirmation: function() { this.needsUnloadConfirm = false; $save_button.attr( 'disabled', 'disabled' ); }, unloadConfirmation: function( event ) { if ( event.data.view.needsUnloadConfirm ) { event.returnValue = data.strings.unload_confirmation_msg; window.event.returnValue = data.strings.unload_confirmation_msg; return data.strings.unload_confirmation_msg; } }, updateModelOnChange: function( event ) { var model = event.data.view.model, $target = $( event.target ), id = $target.closest( 'tr' ).data( 'id' ), attribute = $target.data( 'attribute' ), val = $target.val(); if ( 'city' === attribute || 'postcode' === attribute ) { val = val.split( ';' ); val = $.map( val, function( thing ) { return thing.trim(); }); } if ( 'tax_rate_compound' === attribute || 'tax_rate_shipping' === attribute ) { if ( $target.is( ':checked' ) ) { val = 1; } else { val = 0; } } model.setRateAttribute( id, attribute, val ); }, updateModelOnSort: function( event ) { var view = event.data.view, model = view.model, rates = _.indexBy( model.get( 'rates' ), 'tax_rate_id' ), changes = {}; _.each( rates, function( rate ) { var new_position = 0; var old_position = parseInt( rate.tax_rate_order, 10 ); if ( $table.find( 'tr[data-id="' + rate.tax_rate_id + '"]').length ) { new_position = parseInt( $table.find( 'tr[data-id="' + rate.tax_rate_id + '"]').index(), 10 ) + parseInt( ( view.page - 1 ) * view.per_page, 10 ); } else { new_position = old_position; } if ( old_position !== new_position ) { changes[ rate.tax_rate_id ] = _.extend( changes[ rate.tax_rate_id ] || {}, { tax_rate_order : new_position } ); } } ); if ( _.size( changes ) ) { model.logChanges( changes ); } }, sanitizePage: function( page_num ) { page_num = parseInt( page_num, 10 ); if ( page_num < 1 ) { page_num = 1; } else if ( page_num > this.qty_pages ) { page_num = this.qty_pages; } return page_num; } } ), WCTaxTableModelInstance = new WCTaxTableModelConstructor({ rates: data.rates } ), WCTaxTableInstance = new WCTaxTableViewConstructor({ model: WCTaxTableModelInstance, el: '#rates' } ); WCTaxTableInstance.render(); }); })( jQuery, htmlSettingsTaxLocalizeScript, wp, ajaxurl ); assets/js/admin/reports.js000066600000014330152133032050011605 0ustar00jQuery(function( $ ) { function showTooltip( x, y, contents ) { $( '
    ' + contents + '
    ' ).css( { top: y - 16, left: x + 20 }).appendTo( 'body' ).fadeIn( 200 ); } var prev_data_index = null; var prev_series_index = null; $( '.chart-placeholder' ).bind( 'plothover', function ( event, pos, item ) { if ( item ) { if ( prev_data_index !== item.dataIndex || prev_series_index !== item.seriesIndex ) { prev_data_index = item.dataIndex; prev_series_index = item.seriesIndex; $( '.chart-tooltip' ).remove(); if ( item.series.points.show || item.series.enable_tooltip ) { var y = item.series.data[item.dataIndex][1], tooltip_content = ''; if ( item.series.prepend_label ) { tooltip_content = tooltip_content + item.series.label + ': '; } if ( item.series.prepend_tooltip ) { tooltip_content = tooltip_content + item.series.prepend_tooltip; } tooltip_content = tooltip_content + y; if ( item.series.append_tooltip ) { tooltip_content = tooltip_content + item.series.append_tooltip; } if ( item.series.pie.show ) { showTooltip( pos.pageX, pos.pageY, tooltip_content ); } else { showTooltip( item.pageX, item.pageY, tooltip_content ); } } } } else { $( '.chart-tooltip' ).remove(); prev_data_index = null; } }); $( '.wc_sparkline.bars' ).each( function() { var chart_data = $( this ).data( 'sparkline' ); var options = { grid: { show: false } }; // main series var series = [{ data: chart_data, color: $( this ).data( 'color' ), bars: { fillColor: $( this ).data( 'color' ), fill: true, show: true, lineWidth: 1, barWidth: $( this ).data( 'barwidth' ), align: 'center' }, shadowSize: 0 }]; // draw the sparkline $.plot( $( this ), series, options ); }); $( '.wc_sparkline.lines' ).each( function() { var chart_data = $( this ).data( 'sparkline' ); var options = { grid: { show: false } }; // main series var series = [{ data: chart_data, color: $( this ).data( 'color' ), lines: { fill: false, show: true, lineWidth: 1, align: 'center' }, shadowSize: 0 }]; // draw the sparkline $.plot( $( this ), series, options ); }); var dates = $( '.range_datepicker' ).datepicker({ changeMonth: true, changeYear: true, defaultDate: '', dateFormat: 'yy-mm-dd', numberOfMonths: 1, maxDate: '+0D', showButtonPanel: true, showOn: 'focus', buttonImageOnly: true, onSelect: function( selectedDate ) { var option = $( this ).is( '.from' ) ? 'minDate' : 'maxDate', instance = $( this ).data( 'datepicker' ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( 'option', option, date ); } }); var a = document.createElement( 'a' ); if ( typeof a.download === 'undefined' ) { $( '.export_csv' ).hide(); } // Export $( '.export_csv' ).click( function() { var exclude_series = $( this ).data( 'exclude_series' ) || ''; exclude_series = exclude_series.toString(); exclude_series = exclude_series.split( ',' ); var xaxes_label = $( this ).data( 'xaxes' ); var groupby = $( this ) .data( 'groupby' ); var export_format = $( this ).data( 'export' ); var csv_data = 'data:application/csv;charset=utf-8,'; var s, series_data, d; if ( 'table' === export_format ) { $( this ).offsetParent().find( 'thead tr,tbody tr' ).each( function() { $( this ).find( 'th, td' ).each( function() { var value = $( this ).text(); value = value.replace( '[?]', '' ).replace( '#', '' ); csv_data += '"' + value + '"' + ','; }); csv_data = csv_data.substring( 0, csv_data.length - 1 ); csv_data += '\n'; }); $( this ).offsetParent().find( 'tfoot tr' ).each( function() { $( this ).find( 'th, td' ).each( function() { var value = $( this ).text(); value = value.replace( '[?]', '' ).replace( '#', '' ); csv_data += '"' + value + '"' + ','; if ( $( this ).attr( 'colspan' ) > 0 ) { for ( i = 1; i < $(this).attr('colspan'); i++ ) { csv_data += '"",'; } } }); csv_data = csv_data.substring( 0, csv_data.length - 1 ); csv_data += '\n'; }); } else { if ( ! window.main_chart ) { return false; } var the_series = window.main_chart.getData(); var series = []; csv_data += '"' + xaxes_label + '",'; $.each( the_series, function( index, value ) { if ( ! exclude_series || $.inArray( index.toString(), exclude_series ) === -1 ) { series.push( value ); } }); // CSV Headers for ( s = 0; s < series.length; ++s ) { csv_data += '"' + series[s].label + '",'; } csv_data = csv_data.substring( 0, csv_data.length - 1 ); csv_data += '\n'; // Get x axis values var xaxis = {}; for ( s = 0; s < series.length; ++s ) { series_data = series[s].data; for ( d = 0; d < series_data.length; ++d ) { xaxis[series_data[d][0]] = []; // Zero values to start for ( var i = 0; i < series.length; ++i ) { xaxis[series_data[d][0]].push(0); } } } // Add chart data for ( s = 0; s < series.length; ++s ) { series_data = series[s].data; for ( d = 0; d < series_data.length; ++d ) { xaxis[series_data[d][0]][s] = series_data[d][1]; } } // Loop data and output to csv string $.each( xaxis, function( index, value ) { var date = new Date( parseInt( index, 10 ) ); if ( groupby === 'day' ) { csv_data += '"' + date.getUTCFullYear() + '-' + parseInt( date.getUTCMonth() + 1, 10 ) + '-' + date.getUTCDate() + '",'; } else { csv_data += '"' + date.getUTCFullYear() + '-' + parseInt( date.getUTCMonth() + 1, 10 ) + '",'; } for ( var d = 0; d < value.length; ++d ) { var val = value[d]; if ( Math.round( val ) !== val ) { val = parseFloat( val ); val = val.toFixed( 2 ); } csv_data += '"' + val + '",'; } csv_data = csv_data.substring( 0, csv_data.length - 1 ); csv_data += '\n'; } ); } // Set data as href and return $( this ).attr( 'href', encodeURI( csv_data ) ); return true; }); }); assets/js/admin/users.js000066600000005455152133032050011260 0ustar00/*global wc_users_params */ jQuery( function ( $ ) { /** * Users country and state fields */ var wc_users_fields = { states: null, init: function() { if ( typeof wc_users_params.countries !== 'undefined' ) { /* State/Country select boxes */ this.states = $.parseJSON( wc_users_params.countries.replace( /"/g, '"' ) ); } $( '.js_field-country' ).select2().change( this.change_country ); $( '.js_field-country' ).trigger( 'change', [ true ] ); $( document.body ).on( 'change', 'select.js_field-state', this.change_state ); }, change_country: function( e, stickValue ) { // Check for stickValue before using it if ( typeof stickValue === 'undefined' ) { stickValue = false; } // Prevent if we don't have the metabox data if ( wc_users_fields.states === null ) { return; } var $this = $( this ), country = $this.val(), $state = $this.parents( '.form-table' ).find( ':input.js_field-state' ), $parent = $state.parent(), input_name = $state.attr( 'name' ), input_id = $state.attr( 'id' ), value = $this.data( 'woocommerce.stickState-' + country ) ? $this.data( 'woocommerce.stickState-' + country ) : $state.val(); if ( stickValue ){ $this.data( 'woocommerce.stickState-' + country, value ); } // Remove the previous DOM element $parent.show().find( '.select2-container' ).remove(); if ( ! $.isEmptyObject( wc_users_fields.states[ country ] ) ) { var $states_select = $( '' ), state = wc_users_fields.states[ country ]; $states_select.append( $( '' ) ); $.each( state, function( index ) { $states_select.append( $( '' ) ); } ); $states_select.val( value ); $state.replaceWith( $states_select ); $states_select.show().select2().hide().change(); } else { $state.replaceWith( '' ); } // This event has a typo - deprecated in 2.5.0 $( document.body ).trigger( 'contry-change.woocommerce', [country, $( this ).closest( 'div' )] ); $( document.body ).trigger( 'country-change.woocommerce', [country, $( this ).closest( 'div' )] ); }, change_state: function() { // Here we will find if state value on a select has changed and stick it to the country data var $this = $( this ), state = $this.val(), $country = $this.parents( '.form-table' ).find( ':input.js_field-country' ), country = $country.val(); $country.data( 'woocommerce.stickState-' + country, state ); } }; wc_users_fields.init(); }); assets/js/admin/term-ordering.min.js000066600000003201152133032050013442 0ustar00jQuery(function(a){a("table.widefat.wp-list-table tbody th, table.widefat tbody td").css("cursor","move"),a("table.widefat.wp-list-table").sortable({items:"tbody tr:not(.inline-edit-row)",cursor:"move",axis:"y",forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"product-cat-placeholder",scrollSensitivity:40,start:function(a,b){b.item.hasClass("alternate")||b.item.css("background-color","#ffffff"),b.item.children("td, th").css("border-bottom-width","0"),b.item.css("outline","1px solid #aaa")},stop:function(a,b){b.item.removeAttr("style"),b.item.children("td, th").css("border-bottom-width","1px")},update:function(b,c){var d,e,f=c.item.find(".check-column input").val(),g=c.item.find(".parent").html(),h=c.item.prev().find(".check-column input").val(),i=c.item.next().find(".check-column input").val();return void 0!==h&&(d=c.item.prev().find(".parent").html(),d!==g&&(h=void 0)),void 0!==i&&(e=c.item.next().find(".parent").html(),e!==g&&(i=void 0)),void 0===h&&void 0===i||void 0===i&&e===h||void 0!==i&&d===f?void a("table.widefat.wp-list-table").sortable("cancel"):(c.item.find(".check-column input").hide().after('processing'),a.post(ajaxurl,{action:"woocommerce_term_ordering",id:f,nextid:i,thetaxonomy:woocommerce_term_ordering_params.taxonomy},function(a){"children"===a?window.location.reload():c.item.find(".check-column input").show().siblings("img").remove()}),void a("table.widefat tbody tr").each(function(){var a=jQuery("table.widefat tbody tr").index(this);a%2===0?jQuery(this).addClass("alternate"):jQuery(this).removeClass("alternate")}))}})});assets/js/admin/meta-boxes-coupon.js000066600000001174152133032050013456 0ustar00jQuery(function( $ ) { /** * Coupon actions */ var wc_meta_boxes_coupon_actions = { /** * Initialize variations actions */ init: function() { $( 'select#discount_type' ) .on( 'change', this.type_options ) .change(); }, /** * Show/hide fields by coupon type options */ type_options: function() { // Get value var select_val = $( this ).val(); if ( select_val === 'fixed_product' || select_val === 'percent_product' ) { $( '.limit_usage_to_x_items_field' ).show(); } else { $( '.limit_usage_to_x_items_field' ).hide(); } } }; wc_meta_boxes_coupon_actions.init(); }); assets/js/admin/wc-shipping-zone-methods.js000066600000030514152133032050014753 0ustar00/* global shippingZoneMethodsLocalizeScript, ajaxurl */ ( function( $, data, wp, ajaxurl ) { $( function() { var $table = $( '.wc-shipping-zone-methods' ), $tbody = $( '.wc-shipping-zone-method-rows' ), $save_button = $( '.wc-shipping-zone-method-save' ), $row_template = wp.template( 'wc-shipping-zone-method-row' ), $blank_template = wp.template( 'wc-shipping-zone-method-row-blank' ), // Backbone model ShippingMethod = Backbone.Model.extend({ changes: {}, logChanges: function( changedRows ) { var changes = this.changes || {}; _.each( changedRows, function( row, id ) { changes[ id ] = _.extend( changes[ id ] || { instance_id : id }, row ); } ); this.changes = changes; this.trigger( 'change:methods' ); }, save: function() { if ( _.size( this.changes ) ) { $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_zone_methods_save_changes', { wc_shipping_zones_nonce : data.wc_shipping_zones_nonce, changes : this.changes, zone_id : data.zone_id }, this.onSaveResponse, 'json' ); } else { shippingMethod.trigger( 'saved:methods' ); } }, onSaveResponse: function( response, textStatus ) { if ( 'success' === textStatus ) { if ( response.success ) { shippingMethod.set( 'methods', response.data.methods ); shippingMethod.trigger( 'change:methods' ); shippingMethod.changes = {}; shippingMethod.trigger( 'saved:methods' ); } else { window.alert( data.strings.save_failed ); } } } } ), // Backbone view ShippingMethodView = Backbone.View.extend({ rowTemplate: $row_template, initialize: function() { this.listenTo( this.model, 'change:methods', this.setUnloadConfirmation ); this.listenTo( this.model, 'saved:methods', this.clearUnloadConfirmation ); this.listenTo( this.model, 'saved:methods', this.render ); $tbody.on( 'change', { view: this }, this.updateModelOnChange ); $tbody.on( 'sortupdate', { view: this }, this.updateModelOnSort ); $( window ).on( 'beforeunload', { view: this }, this.unloadConfirmation ); $save_button.on( 'click', { view: this }, this.onSubmit ); // Settings modals $( document.body ).on( 'click', '.wc-shipping-zone-method-settings', { view: this }, this.onConfigureShippingMethod ); $( document.body ).on( 'click', '.wc-shipping-zone-add-method', { view: this }, this.onAddShippingMethod ); $( document.body ).on( 'wc_backbone_modal_response', this.onConfigureShippingMethodSubmitted ); $( document.body ).on( 'wc_backbone_modal_response', this.onAddShippingMethodSubmitted ); $( document.body ).on( 'change', '.wc-shipping-zone-method-selector select', this.onChangeShippingMethodSelector ); }, block: function() { $( this.el ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( this.el ).unblock(); }, render: function() { var methods = _.indexBy( this.model.get( 'methods' ), 'instance_id' ), view = this; // Blank out the contents. this.$el.empty(); this.unblock(); if ( _.size( methods ) ) { // Sort methods methods = _.sortBy( methods, function( method ) { return parseInt( method.method_order, 10 ); } ); // Populate $tbody with the current methods $.each( methods, function( id, rowData ) { if ( 'yes' === rowData.enabled ) { rowData.enabled_icon = '' + data.strings.yes + ''; } else { rowData.enabled_icon = '' + data.strings.no + ''; } view.$el.append( view.rowTemplate( rowData ) ); var $tr = view.$el.find( 'tr[data-id="' + rowData.instance_id + '"]'); if ( ! rowData.has_settings ) { $tr.find( '.wc-shipping-zone-method-title a').replaceWith( $tr.find( '.wc-shipping-zone-method-title' ).text() ); $tr.find( '.wc-shipping-zone-method-settings' ).remove(); } } ); // Make the rows function this.$el.find( '.wc-shipping-zone-method-delete' ).on( 'click', { view: this }, this.onDeleteRow ); this.$el.find( '.wc-shipping-zone-method-enabled a').on( 'click', { view: this }, this.onToggleEnabled ); } else { view.$el.append( $blank_template ); } this.initTooltips(); }, initTooltips: function() { $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); $( '.tips' ).tipTip({ 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 50 }); }, onSubmit: function( event ) { event.data.view.block(); event.data.view.model.save(); event.preventDefault(); }, onDeleteRow: function( event ) { var view = event.data.view, model = view.model, methods = _.indexBy( model.get( 'methods' ), 'instance_id' ), changes = {}, instance_id = $( this ).closest('tr').data('id'); event.preventDefault(); delete methods[ instance_id ]; changes[ instance_id ] = _.extend( changes[ instance_id ] || {}, { deleted : 'deleted' } ); model.set( 'methods', methods ); model.logChanges( changes ); view.render(); }, onToggleEnabled: function( event ) { var view = event.data.view, $target = $( event.target ), model = view.model, methods = _.indexBy( model.get( 'methods' ), 'instance_id' ), instance_id = $target.closest( 'tr' ).data( 'id' ), enabled = $target.closest( 'tr' ).data( 'enabled' ) === 'yes' ? 'no' : 'yes', changes = {}; event.preventDefault(); methods[ instance_id ].enabled = enabled; changes[ instance_id ] = _.extend( changes[ instance_id ] || {}, { enabled : enabled } ); model.set( 'methods', methods ); model.logChanges( changes ); view.render(); }, setUnloadConfirmation: function() { this.needsUnloadConfirm = true; $save_button.removeAttr( 'disabled' ); }, clearUnloadConfirmation: function() { this.needsUnloadConfirm = false; $save_button.attr( 'disabled', 'disabled' ); }, unloadConfirmation: function( event ) { if ( event.data.view.needsUnloadConfirm ) { event.returnValue = data.strings.unload_confirmation_msg; window.event.returnValue = data.strings.unload_confirmation_msg; return data.strings.unload_confirmation_msg; } }, updateModelOnChange: function( event ) { var model = event.data.view.model, $target = $( event.target ), instance_id = $target.closest( 'tr' ).data( 'id' ), attribute = $target.data( 'attribute' ), value = $target.val(), methods = _.indexBy( model.get( 'methods' ), 'instance_id' ), changes = {}; if ( methods[ instance_id ][ attribute ] !== value ) { changes[ instance_id ] = {}; changes[ instance_id ][ attribute ] = value; methods[ instance_id ][ attribute ] = value; } model.logChanges( changes ); }, updateModelOnSort: function( event ) { var view = event.data.view, model = view.model, methods = _.indexBy( model.get( 'methods' ), 'instance_id' ), changes = {}; _.each( methods, function( method ) { var old_position = parseInt( method.method_order, 10 ); var new_position = parseInt( $table.find( 'tr[data-id="' + method.instance_id + '"]').index() + 1, 10 ); if ( old_position !== new_position ) { changes[ method.instance_id ] = _.extend( changes[ method.instance_id ] || {}, { method_order : new_position } ); } } ); if ( _.size( changes ) ) { model.logChanges( changes ); } }, onConfigureShippingMethod: function( event ) { var instance_id = $( this ).closest( 'tr' ).data( 'id' ), model = event.data.view.model, methods = _.indexBy( model.get( 'methods' ), 'instance_id' ), method = methods[ instance_id ]; // Only load modal if supported if ( ! method.settings_html ) { return true; } event.preventDefault(); $( this ).WCBackboneModal({ template : 'wc-modal-shipping-method-settings', variable : { instance_id : instance_id, method : method }, data : { instance_id : instance_id, method : method } }); $( document.body ).trigger( 'init_tooltips' ); }, onConfigureShippingMethodSubmitted: function( event, target, posted_data ) { if ( 'wc-modal-shipping-method-settings' === target ) { shippingMethodView.block(); // Save method settings via ajax call $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_zone_methods_save_settings', { wc_shipping_zones_nonce : data.wc_shipping_zones_nonce, instance_id : posted_data.instance_id, data : posted_data }, function( response, textStatus ) { if ( 'success' === textStatus && response.success ) { $( 'table.wc-shipping-zone-methods' ).parent().find( '#woocommerce_errors' ).remove(); // If there were errors, prepend the form. if ( response.data.errors.length > 0 ) { this.showErrors( response.data.errors ); } // Method was saved. Re-render. if ( _.size( shippingMethodView.model.changes ) ) { shippingMethodView.model.save(); } else { shippingMethodView.model.onSaveResponse( response, textStatus ); } } else { window.alert( data.strings.save_failed ); shippingMethodView.unblock(); } }, 'json' ); } }, showErrors: function( errors ) { var error_html = '
    '; $( errors ).each( function( index, value ) { error_html = error_html + '

    ' + value + '

    '; } ); error_html = error_html + '
    '; $( 'table.wc-shipping-zone-methods' ).before( error_html ); }, onAddShippingMethod: function( event ) { event.preventDefault(); $( this ).WCBackboneModal({ template : 'wc-modal-add-shipping-method', variable : { zone_id : data.zone_id } }); $( '.wc-shipping-zone-method-selector select' ).change(); }, onAddShippingMethodSubmitted: function( event, target, posted_data ) { if ( 'wc-modal-add-shipping-method' === target ) { shippingMethodView.block(); // Add method to zone via ajax call $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_zone_add_method', { wc_shipping_zones_nonce : data.wc_shipping_zones_nonce, method_id : posted_data.add_method_id, zone_id : data.zone_id }, function( response, textStatus ) { if ( 'success' === textStatus && response.success ) { // Trigger save if there are changes, or just re-render if ( _.size( shippingMethodView.model.changes ) ) { shippingMethodView.model.save(); } else { shippingMethodView.model.set( 'methods', response.data.methods ); shippingMethodView.model.trigger( 'change:methods' ); shippingMethodView.model.changes = {}; shippingMethodView.model.trigger( 'saved:methods' ); } } shippingMethodView.unblock(); }, 'json' ); } }, onChangeShippingMethodSelector: function() { var description = $( this ).find( 'option:selected' ).data( 'description' ); $( this ).parent().find( '.wc-shipping-zone-method-description' ).remove(); $( this ).after( '

    ' + description + '

    ' ); $( this ).closest( 'article' ).height( $( this ).parent().height() ); } } ), shippingMethod = new ShippingMethod({ methods: data.methods } ), shippingMethodView = new ShippingMethodView({ model: shippingMethod, el: $tbody } ); shippingMethodView.render(); $tbody.sortable({ items: 'tr', cursor: 'move', axis: 'y', handle: 'td.wc-shipping-zone-method-sort', scrollSensitivity: 40 }); }); })( jQuery, shippingZoneMethodsLocalizeScript, wp, ajaxurl ); assets/js/admin/wc-enhanced-select.min.js000066600000010045152133032050014321 0ustar00jQuery(function(a){function b(){var a={formatMatches:function(a){return 1===a?wc_enhanced_select_params.i18n_matches_1:wc_enhanced_select_params.i18n_matches_n.replace("%qty%",a)},formatNoMatches:function(){return wc_enhanced_select_params.i18n_no_matches},formatAjaxError:function(){return wc_enhanced_select_params.i18n_ajax_error},formatInputTooShort:function(a,b){var c=b-a.length;return 1===c?wc_enhanced_select_params.i18n_input_too_short_1:wc_enhanced_select_params.i18n_input_too_short_n.replace("%qty%",c)},formatInputTooLong:function(a,b){var c=a.length-b;return 1===c?wc_enhanced_select_params.i18n_input_too_long_1:wc_enhanced_select_params.i18n_input_too_long_n.replace("%qty%",c)},formatSelectionTooBig:function(a){return 1===a?wc_enhanced_select_params.i18n_selection_too_long_1:wc_enhanced_select_params.i18n_selection_too_long_n.replace("%qty%",a)},formatLoadMore:function(){return wc_enhanced_select_params.i18n_load_more},formatSearching:function(){return wc_enhanced_select_params.i18n_searching}};return a}a(document.body).on("wc-enhanced-select-init",function(){a(":input.wc-enhanced-select, :input.chosen_select").filter(":not(.enhanced)").each(function(){var c=a.extend({minimumResultsForSearch:10,allowClear:!!a(this).data("allow_clear"),placeholder:a(this).data("placeholder")},b());a(this).select2(c).addClass("enhanced")}),a(":input.wc-enhanced-select-nostd, :input.chosen_select_nostd").filter(":not(.enhanced)").each(function(){var c=a.extend({minimumResultsForSearch:10,allowClear:!0,placeholder:a(this).data("placeholder")},b());a(this).select2(c).addClass("enhanced")}),a(":input.wc-product-search").filter(":not(.enhanced)").each(function(){var c={allowClear:!!a(this).data("allow_clear"),placeholder:a(this).data("placeholder"),minimumInputLength:a(this).data("minimum_input_length")?a(this).data("minimum_input_length"):"3",escapeMarkup:function(a){return a},ajax:{url:wc_enhanced_select_params.ajax_url,dataType:"json",quietMillis:250,data:function(b){return{term:b,action:a(this).data("action")||"woocommerce_json_search_products_and_variations",security:wc_enhanced_select_params.search_products_nonce,exclude:a(this).data("exclude"),include:a(this).data("include"),limit:a(this).data("limit")}},results:function(b){var c=[];return b&&a.each(b,function(a,b){c.push({id:a,text:b})}),{results:c}},cache:!0}};a(this).data("multiple")===!0?(c.multiple=!0,c.initSelection=function(b,c){var d=a.parseJSON(b.attr("data-selected")),e=[];return a(b.val().split(",")).each(function(a,b){e.push({id:b,text:d[b]})}),c(e)},c.formatSelection=function(a){return'
    '+a.text+"
    "}):(c.multiple=!1,c.initSelection=function(a,b){var c={id:a.val(),text:a.attr("data-selected")};return b(c)}),c=a.extend(c,b()),a(this).select2(c).addClass("enhanced")}),a(":input.wc-customer-search").filter(":not(.enhanced)").each(function(){var c={allowClear:!!a(this).data("allow_clear"),placeholder:a(this).data("placeholder"),minimumInputLength:a(this).data("minimum_input_length")?a(this).data("minimum_input_length"):"3",escapeMarkup:function(a){return a},ajax:{url:wc_enhanced_select_params.ajax_url,dataType:"json",quietMillis:250,data:function(b){return{term:b,action:"woocommerce_json_search_customers",security:wc_enhanced_select_params.search_customers_nonce,exclude:a(this).data("exclude")}},results:function(b){var c=[];return b&&a.each(b,function(a,b){c.push({id:a,text:b})}),{results:c}},cache:!0}};a(this).data("multiple")===!0?(c.multiple=!0,c.initSelection=function(b,c){var d=a.parseJSON(b.attr("data-selected")),e=[];return a(b.val().split(",")).each(function(a,b){e.push({id:b,text:d[b]})}),c(e)},c.formatSelection=function(a){return'
    '+a.text+"
    "}):(c.multiple=!1,c.initSelection=function(a,b){var c={id:a.val(),text:a.attr("data-selected")};return b(c)}),c=a.extend(c,b()),a(this).select2(c).addClass("enhanced")})}).on("wc_backbone_modal_before_remove",function(){a(":input.wc-enhanced-select, :input.wc-product-search, :input.wc-customer-search").select2("close")}).trigger("wc-enhanced-select-init")});assets/js/admin/wc-shipping-classes.min.js000066600000010663152133032050014561 0ustar00!function(a,b,c,d){a(function(){var e=a(".wc-shipping-class-rows"),f=a(".wc-shipping-class-save"),g=c.template("wc-shipping-class-row"),h=c.template("wc-shipping-class-row-blank"),i=Backbone.Model.extend({changes:{},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{term_id:c},a)}),this.changes=b,this.trigger("change:classes")},save:function(){_.size(this.changes)?a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_classes_save_changes",{wc_shipping_classes_nonce:b.wc_shipping_classes_nonce,changes:this.changes},this.onSaveResponse,"json"):k.trigger("saved:classes")},discardChanges:function(a){var b=this.changes||{};delete b[a],0===_.size(this.changes)&&l.clearUnloadConfirmation()},onSaveResponse:function(a,c){"success"===c&&(a.success?(k.set("classes",a.data.shipping_classes),k.trigger("change:classes"),k.changes={},k.trigger("saved:classes")):a.data?window.alert(a.data):window.alert(b.strings.save_failed)),l.unblock()}}),j=Backbone.View.extend({rowTemplate:g,initialize:function(){this.listenTo(this.model,"change:classes",this.setUnloadConfirmation),this.listenTo(this.model,"saved:classes",this.clearUnloadConfirmation),this.listenTo(this.model,"saved:classes",this.render),e.on("change",{view:this},this.updateModelOnChange),a(window).on("beforeunload",{view:this},this.unloadConfirmation),f.on("click",{view:this},this.onSubmit),a(document.body).on("click",".wc-shipping-class-add",{view:this},this.onAddNewRow),a(document.body).on("click",".wc-shipping-class-save-changes",{view:this},this.onSubmit)},block:function(){a(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(this.el).unblock()},render:function(){var b=_.indexBy(this.model.get("classes"),"term_id"),c=this;this.$el.empty(),this.unblock(),_.size(b)?(b=_.sortBy(b,function(a){return a.name}),a.each(b,function(a,b){c.renderRow(b)})):c.$el.append(h)},renderRow:function(a){var b=this;b.$el.append(b.rowTemplate(a)),b.initRow(a)},initRow:function(b){var c=this,d=c.$el.find('tr[data-id="'+b.term_id+'"]');d.find("select").each(function(){var c=a(this).data("attribute");a(this).find('option[value="'+b[c]+'"]').prop("selected",!0)}),d.find(".view").show(),d.find(".edit").hide(),d.find(".wc-shipping-class-edit").on("click",{view:this},this.onEditRow),d.find(".wc-shipping-class-delete").on("click",{view:this},this.onDeleteRow),d.find(".editing .wc-shipping-class-edit").trigger("click"),d.find(".wc-shipping-class-cancel-edit").on("click",{view:this},this.onCancelEditRow),!0===b.editing&&(d.addClass("editing"),d.find(".wc-shipping-class-edit").trigger("click"))},onSubmit:function(a){a.data.view.block(),a.data.view.model.save(),a.preventDefault()},onAddNewRow:function(c){c.preventDefault();var d=c.data.view,e=d.model,f=_.indexBy(e.get("classes"),"term_id"),g={},h=_.size(f),i=_.extend({},b.default_class,{term_id:"new-"+h+"-"+Date.now(),editing:!0,newRow:!0});g[i.term_id]=i,e.logChanges(g),d.renderRow(i),a(".wc-shipping-classes-blank-state").remove()},onEditRow:function(b){b.preventDefault(),a(this).closest("tr").addClass("editing"),a(this).closest("tr").find(".view").hide(),a(this).closest("tr").find(".edit").show(),b.data.view.model.trigger("change:classes")},onDeleteRow:function(b){var c=b.data.view,d=c.model,e=_.indexBy(d.get("classes"),"term_id"),f={},g=a(this).closest("tr").data("id");b.preventDefault(),e[g]&&(delete e[g],f[g]=_.extend(f[g]||{},{deleted:"deleted"}),d.set("classes",e),d.logChanges(f)),c.render()},onCancelEditRow:function(b){var c=b.data.view,d=c.model,e=a(this).closest("tr"),f=a(this).closest("tr").data("id"),g=_.indexBy(d.get("classes"),"term_id");b.preventDefault(),d.discardChanges(f),g[f]&&(g[f].editing=!1,e.after(c.rowTemplate(g[f])),c.initRow(g[f])),e.remove()},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,f.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,f.attr("disabled","disabled")},unloadConfirmation:function(a){if(a.data.view.needsUnloadConfirm)return a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val(),h=_.indexBy(c.get("classes"),"term_id"),i={};h[e]&&h[e][f]===g||(i[e]={},i[e][f]=g),c.logChanges(i)}}),k=new i({classes:b.classes}),l=new j({model:k,el:e});l.render()})}(jQuery,shippingClassesLocalizeScript,wp,ajaxurl);assets/js/admin/wc-setup.min.js000066600000003134152133032050012440 0ustar00jQuery(function(a){var b=a.parseJSON(wc_setup_params.locale_info);a('select[name="store_location"]').change(function(){var c=a(this).val(),d=c.split(":")[0],e=b[d],f=["thousand_sep","decimal_sep","num_decimals","currency_pos"];e?a.each(e,function(b,c){a(':input[name="'+b+'"]').val(c).change(),-1!==a.inArray(b,f)&&a(':input[name="'+b+'"]').closest("tr").hide()}):(a(':input[name="currency_pos"]').closest("tr").show(),a(':input[name="thousand_sep"]').closest("tr").show(),a(':input[name="decimal_sep"]').closest("tr").show(),a(':input[name="num_decimals"]').closest("tr").show())}).change(),a('input[name="woocommerce_calc_taxes"]').change(function(){a(this).is(":checked")?(a(':input[name="woocommerce_prices_include_tax"], :input[name="woocommerce_import_tax_rates"]').closest("tr").show(),a("tr.tax-rates").show()):(a(':input[name="woocommerce_prices_include_tax"], :input[name="woocommerce_import_tax_rates"]').closest("tr").hide(),a("tr.tax-rates").hide())}).change(),a(".button-next").on("click",function(){return a(".wc-setup-content").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),!0}),a(".wc-wizard-payment-gateways").on("change",".wc-wizard-gateway-enable input",function(){a(this).is(":checked")?a(this).closest("li").addClass("checked"):a(this).closest("li").removeClass("checked")}),a(".wc-wizard-payment-gateways").on("click","li.wc-wizard-gateway",function(){var b=a(this).find(".wc-wizard-gateway-enable input");b.prop("checked",!b.prop("checked")).change()}),a(".wc-wizard-payment-gateways").on("click","li.wc-wizard-gateway table, li.wc-wizard-gateway a",function(a){a.stopPropagation()})});assets/js/admin/meta-boxes-product-variation.min.js000066600000043121152133032050016405 0ustar00jQuery(function(a){var b={init:function(){a("#variable_product_options").on("change","input.variable_is_downloadable",this.variable_is_downloadable).on("change","input.variable_is_virtual",this.variable_is_virtual).on("change","input.variable_manage_stock",this.variable_manage_stock).on("click","button.notice-dismiss",this.notice_dismiss).on("click","h3 .sort",this.set_menu_order).on("reload",this.reload),a("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock").change(),a("#woocommerce-product-data").on("woocommerce_variations_loaded",this.variations_loaded),a(document.body).on("woocommerce_variations_added",this.variation_added)},reload:function(){d.load_variations(1)},variable_is_downloadable:function(){a(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").hide(),a(this).is(":checked")&&a(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").show()},variable_is_virtual:function(){a(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").show(),a(this).is(":checked")&&a(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").hide()},variable_manage_stock:function(){a(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").hide(),a(this).is(":checked")&&a(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").show()},notice_dismiss:function(){a(this).closest("div.notice").remove()},variations_loaded:function(c,d){d=d||!1;var e=a("#woocommerce-product-data");d||(a("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock",e).change(),a(".woocommerce_variation",e).each(function(b,c){var d=a(c),e=a(".sale_price_dates_from",d).val(),f=a(".sale_price_dates_to",d).val();""===e&&""===f||a("a.sale_schedule",d).click()}),a(".woocommerce_variations .variation-needs-update",e).removeClass("variation-needs-update"),a("button.cancel-variation-changes, button.save-variation-changes",e).attr("disabled","disabled")),a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),a(".woocommerce_variations .tips, .woocommerce_variations .help_tip, .woocommerce_variations .woocommerce-help-tip",e).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),a(".sale_price_dates_fields",e).each(function(){var b=a(this).find("input").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,onSelect:function(c){var d=a(this).is(".sale_price_dates_from")?"minDate":"maxDate",e=a(this).data("datepicker"),f=a.datepicker.parseDate(e.settings.dateFormat||a.datepicker._defaults.dateFormat,c,e.settings);b.not(this).datepicker("option",d,f),a(this).change()}})}),a(".woocommerce_variations",e).sortable({items:".woocommerce_variation",cursor:"move",axis:"y",handle:".sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,stop:function(){b.variation_row_indexes()}}),a(document.body).trigger("wc-enhanced-select-init")},variation_added:function(a,c){1===c&&b.variations_loaded(null,!0)},set_menu_order:function(b){b.preventDefault();var c=a(this).closest(".woocommerce_variation").find(".variation_menu_order"),e=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_menu_order,c.val());null!=e&&(c.val(parseInt(e,10)).change(),d.save_variations())},variation_row_indexes:function(){var b=a("#variable_product_options").find(".woocommerce_variations"),c=parseInt(b.attr("data-page"),10),d=parseInt((c-1)*woocommerce_admin_meta_boxes_variations.variations_per_page,10);a(".woocommerce_variations .woocommerce_variation").each(function(b,c){a(".variation_menu_order",c).val(parseInt(a(c).index(".woocommerce_variations .woocommerce_variation"),10)+1+d).change()})}},c={variable_image_frame:null,setting_variation_image_id:null,setting_variation_image:null,wp_media_post_id:wp.media.model.settings.post.id,init:function(){a("#variable_product_options").on("click",".upload_image_button",this.add_image),a("a.add_media").on("click",this.restore_wp_media_post_id)},add_image:function(b){var d=a(this),e=d.attr("rel"),f=d.closest(".upload_image");if(c.setting_variation_image=f,c.setting_variation_image_id=e,b.preventDefault(),d.is(".remove"))a(".upload_image_id",c.setting_variation_image).val("").change(),c.setting_variation_image.find("img").eq(0).attr("src",woocommerce_admin_meta_boxes_variations.woocommerce_placeholder_img_src),c.setting_variation_image.find(".upload_image_button").removeClass("remove");else{if(c.variable_image_frame)return c.variable_image_frame.uploader.uploader.param("post_id",c.setting_variation_image_id),void c.variable_image_frame.open();wp.media.model.settings.post.id=c.setting_variation_image_id,c.variable_image_frame=wp.media.frames.variable_image=wp.media({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,button:{text:woocommerce_admin_meta_boxes_variations.i18n_set_image},states:[new wp.media.controller.Library({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,filterable:"all"})]}),c.variable_image_frame.on("select",function(){var b=c.variable_image_frame.state().get("selection").first().toJSON(),d=b.sizes&&b.sizes.thumbnail?b.sizes.thumbnail.url:b.url;a(".upload_image_id",c.setting_variation_image).val(b.id).change(),c.setting_variation_image.find(".upload_image_button").addClass("remove"),c.setting_variation_image.find("img").eq(0).attr("src",d),wp.media.model.settings.post.id=c.wp_media_post_id}),c.variable_image_frame.open()}},restore_wp_media_post_id:function(){wp.media.model.settings.post.id=c.wp_media_post_id}},d={init:function(){a("li.variations_tab a").on("click",this.initial_load),a("#variable_product_options").on("click","button.save-variation-changes",this.save_variations).on("click","button.cancel-variation-changes",this.cancel_variations).on("click",".remove_variation",this.remove_variation),a(document.body).on("change","#variable_product_options .woocommerce_variations :input",this.input_changed).on("change",".variations-defaults select",this.defaults_changed),a("form#post").on("submit",this.save_on_submit),a(".wc-metaboxes-wrapper").on("click","a.do_variation_action",this.do_variation_action)},check_for_changes:function(){var b=a("#variable_product_options").find(".woocommerce_variations .variation-needs-update");if(0d&&0!==d&&(f=d),e.go_to_page(f,-1)})):d.unblock()}return!1},link_all_variations:function(){if(d.check_for_changes(),window.confirm(woocommerce_admin_meta_boxes_variations.i18n_link_all_variations)){d.block();var b={action:"woocommerce_link_all_variations",post_id:woocommerce_admin_meta_boxes_variations.post_id,security:woocommerce_admin_meta_boxes_variations.link_variation_nonce};a.post(woocommerce_admin_meta_boxes_variations.ajax_url,b,function(b){var c=parseInt(b,10);1===c?window.alert(c+" "+woocommerce_admin_meta_boxes_variations.i18n_variation_added):0===c||c>1?window.alert(c+" "+woocommerce_admin_meta_boxes_variations.i18n_variations_added):window.alert(woocommerce_admin_meta_boxes_variations.i18n_no_variations_added),c>0?(e.go_to_page(1,c),a("#variable_product_options").trigger("woocommerce_variations_added",c)):d.unblock()})}return!1},input_changed:function(){a(this).closest(".woocommerce_variation").addClass("variation-needs-update"),a("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),a("#variable_product_options").trigger("woocommerce_variations_input_changed")},defaults_changed:function(){a(this).closest("#variable_product_options").find(".woocommerce_variation:first").addClass("variation-needs-update"),a("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),a("#variable_product_options").trigger("woocommerce_variations_defaults_changed")},do_variation_action:function(){var b,c=a("select.variation_actions").val(),f={},g=0;switch(c){case"add_variation":return void d.add_variation();case"link_all_variations":return void d.link_all_variations();case"delete_all":window.confirm(woocommerce_admin_meta_boxes_variations.i18n_delete_all_variations)&&window.confirm(woocommerce_admin_meta_boxes_variations.i18n_last_warning)&&(f.allowed=!0,g=parseInt(a("#variable_product_options").find(".woocommerce_variations").attr("data-total"),10)*-1);break;case"variable_regular_price_increase":case"variable_regular_price_decrease":case"variable_sale_price_increase":case"variable_sale_price_decrease":b=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value_fixed_or_percent),null!=b&&(b.indexOf("%")>=0?f.value=accounting.unformat(b.replace(/\%/,""),woocommerce_admin.mon_decimal_point)+"%":f.value=accounting.unformat(b,woocommerce_admin.mon_decimal_point));break;case"variable_regular_price":case"variable_sale_price":case"variable_stock":case"variable_weight":case"variable_length":case"variable_width":case"variable_height":case"variable_download_limit":case"variable_download_expiry":b=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value),null!=b&&(f.value=b);break;case"variable_sale_schedule":f.date_from=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_start),f.date_to=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_end),null===f.date_from&&(f.date_from=!1),null===f.date_to&&(f.date_to=!1);break;default:a("select.variation_actions").trigger(c),f=a("select.variation_actions").triggerHandler(c+"_ajax_data",f)}"delete_all"===c&&f.allowed?a("#variable_product_options").find(".variation-needs-update").removeClass("variation-needs-update"):d.check_for_changes(),d.block(),a.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:{action:"woocommerce_bulk_edit_variations",security:woocommerce_admin_meta_boxes_variations.bulk_edit_variations_nonce,product_id:woocommerce_admin_meta_boxes_variations.post_id,product_type:a("#product-type").val(),bulk_action:c,data:f},type:"POST",success:function(){e.go_to_page(1,g)}})}},e={init:function(){a(document.body).on("woocommerce_variations_added",this.update_single_quantity).on("change",".variations-pagenav .page-selector",this.page_selector).on("click",".variations-pagenav .first-page",this.first_page).on("click",".variations-pagenav .prev-page",this.prev_page).on("click",".variations-pagenav .next-page",this.next_page).on("click",".variations-pagenav .last-page",this.last_page)},update_variations_count:function(b){var c=a("#variable_product_options").find(".woocommerce_variations"),d=parseInt(c.attr("data-total"),10)+b,e=a(".variations-pagenav .displaying-num");return c.attr("data-total",d),1===d?e.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_single.replace("%qty%",d)):e.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_plural.replace("%qty%",d)),d},update_single_quantity:function(b,c){if(1===c){var d=a(".variations-pagenav");e.update_variations_count(c),d.is(":hidden")&&(a("option, optgroup",".variation_actions").show(),a(".variation_actions").val("add_variation"),a("#variable_product_options").find(".toolbar").show(),d.show(),a(".pagination-links",d).hide())}},set_paginav:function(b){var c=a("#variable_product_options").find(".woocommerce_variations"),d=e.update_variations_count(b),f=a("#variable_product_options").find(".toolbar"),g=a(".variation_actions"),h=a(".variations-pagenav"),i=a(".pagination-links",h),j=Math.ceil(d/woocommerce_admin_meta_boxes_variations.variations_per_page),k="";c.attr("data-total_pages",j),a(".total-pages",h).text(j);for(var l=1;l<=j;l++)k+='";a(".page-selector",h).empty().html(k),0===d?(f.not(".toolbar-top, .toolbar-buttons").hide(),h.hide(),a("option, optgroup",g).hide(),a(".variation_actions").val("add_variation"),a('option[data-global="true"]',g).show()):(f.show(),h.show(),a("option, optgroup",g).show(),a(".variation_actions").val("add_variation"),1===j?i.hide():i.show())},check_is_enabled:function(b){return!a(b).hasClass("disabled")},change_classes:function(b,c){var d=a(".variations-pagenav .first-page"),e=a(".variations-pagenav .prev-page"),f=a(".variations-pagenav .next-page"),g=a(".variations-pagenav .last-page");1===b?(d.addClass("disabled"),e.addClass("disabled")):(d.removeClass("disabled"),e.removeClass("disabled")),c===b?(f.addClass("disabled"),g.addClass("disabled")):(f.removeClass("disabled"),g.removeClass("disabled"))},set_page:function(b){a(".variations-pagenav .page-selector").val(b).first().change()},go_to_page:function(a,b){a=a||1,b=b||0,e.set_paginav(b),e.set_page(a)},page_selector:function(){var b=parseInt(a(this).val(),10),c=a("#variable_product_options").find(".woocommerce_variations");a(".variations-pagenav .page-selector").val(b),d.check_for_changes(),e.change_classes(b,parseInt(c.attr("data-total_pages"),10)),d.load_variations(b)},first_page:function(){return e.check_is_enabled(this)&&e.set_page(1),!1},prev_page:function(){if(e.check_is_enabled(this)){var b=a("#variable_product_options").find(".woocommerce_variations"),c=parseInt(b.attr("data-page"),10)-1,d=0=d?d:c;e.set_page(f)}return!1},last_page:function(){if(e.check_is_enabled(this)){var b=a("#variable_product_options").find(".woocommerce_variations").attr("data-total_pages");e.set_page(b)}return!1}};b.init(),c.init(),d.init(),e.init()});assets/js/admin/settings-views-html-settings-tax.min.js000066600000015023152133032050017256 0ustar00!function(a,b,c,d){a(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var e=c.template("wc-tax-table-row"),f=c.template("wc-tax-table-row-empty"),g=c.template("wc-tax-table-pagination"),h=a(".wc_tax_rates"),i=a("#rates"),j=a('input[name="save"]'),k=a("#rates-pagination"),l=a("#rates-search .wc-tax-rates-search-field"),m=a(".submit .button-primary[type=submit]"),n=Backbone.Model.extend({changes:{},setRateAttribute:function(a,b,c){var d=_.indexBy(this.get("rates"),"tax_rate_id"),e={};d[a][b]!==c&&(e[a]={},e[a][b]=c,d[a][b]=c),this.logChanges(e)},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{tax_rate_id:c},a)}),this.changes=b,this.trigger("change:rates")},getFilteredRates:function(){var a=this.get("rates"),b=l.val().toLowerCase();return b.length&&(a=_.filter(a,function(a){var c=_.toArray(a).join(" ").toLowerCase();return-1!==c.indexOf(b)})),a=_.sortBy(a,function(a){return parseInt(a.tax_rate_order,10)})},block:function(){a(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(".wc_tax_rates").unblock()},save:function(){var a=this;a.block(),Backbone.ajax({method:"POST",dataType:"json",url:d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_tax_rates_save_changes",data:{current_class:b.current_class,wc_tax_nonce:b.wc_tax_nonce,changes:a.changes},success:function(b,c){"success"===c&&(p.set("rates",b.data.rates),p.trigger("change:rates"),p.changes={},p.trigger("saved:rates"),q.render()),a.unblock()}})}}),o=Backbone.View.extend({rowTemplate:e,per_page:b.limit,page:b.page,initialize:function(){var c=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===c?1:c,this.page=this.sanitizePage(b.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),i.on("change autocompletechange",":input",{view:this},this.updateModelOnChange),i.on("sortupdate",{view:this},this.updateModelOnSort),l.on("keyup search",{view:this},this.onSearchField),k.on("click","a",{view:this},this.onPageChange),k.on("change","input",{view:this},this.onPageChange),a(window).on("beforeunload",{view:this},this.unloadConfirmation),m.on("click",{view:this},this.onSubmit),j.attr("disabled","disabled"),h.find(".insert").on("click",{view:this},this.onAddNewRow),h.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),h.find(".export").on("click",{view:this},this.onExport)},render:function(){var c=this.model.getFilteredRates(),d=_.size(c),e=Math.ceil(d/this.per_page),h=0===d?0:this.per_page*(this.page-1),j=this.per_page*this.page,m=_.toArray(c).slice(h,j),n=this;this.$el.empty(),m.length?a.each(m,function(a,b){n.$el.append(n.rowTemplate(b))}):n.$el.append(f()),this.$el.find("td.country input").autocomplete({source:b.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:b.states,minLength:3}),this.$el.find("td.postcode input, td.city input").change(function(){a(this).attr("name",a(this).data("name"))}),e>1?k.html(g({qty_rates:d,current_page:this.page,qty_pages:e})):(k.empty(),n.page=1),l.val()?i.sortable("disable"):i.sortable("enable")},updateUrl:function(){if(window.history.replaceState){var a=b.base_url,c=l.val();1e}),g=_.map(f,function(a){return a.tax_rate_order++,l[a.tax_rate_id]=_.extend(l[a.tax_rate_id]||{},{tax_rate_order:a.tax_rate_order}),a})):(n.tax_rate_order=1+_.max(_.pluck(k,"tax_rate_order"),function(a){return parseInt(a,10)}),h.page=h.qty_pages),k[n.tax_rate_id]=n,l[n.tax_rate_id]=n,j.set("rates",k),j.logChanges(l),h.render()},onDeleteRow:function(c){var d,e,f=c.data.view,g=f.model,h=_.indexBy(g.get("rates"),"tax_rate_id"),j={};c.preventDefault(),(d=i.children(".current"))?(d.each(function(){e=a(this).data("id"),delete h[e],j[e]=_.extend(j[e]||{},{deleted:"deleted"})}),g.set("rates",h),g.logChanges(j),f.render()):window.alert(b.strings.no_rows_selected)},onSearchField:function(a){a.data.view.updateUrl(),a.data.view.render()},onPageChange:function(b){var c=a(b.currentTarget);b.preventDefault(),b.data.view.page=c.data("goto")?c.data("goto"):c.val(),b.data.view.render(),b.data.view.updateUrl()},onExport:function(c){var d="data:application/csv;charset=utf-8,"+b.strings.csv_data_cols.join(",")+"\n";return a.each(c.data.view.model.getFilteredRates(),function(a,c){var e="";e+=c.tax_rate_country+",",e+=c.tax_rate_state+",",e+=(c.postcode?c.postcode.join("; "):"")+",",e+=(c.city?c.city.join("; "):"")+",",e+=c.tax_rate+",",e+=c.tax_rate_name+",",e+=c.tax_rate_priority+",",e+=c.tax_rate_compound+",",e+=c.tax_rate_shipping+",",e+=b.current_class,d+=e+"\n"}),a(this).attr("href",encodeURI(d)),!0},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,j.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,j.attr("disabled","disabled")},unloadConfirmation:function(a){if(a.data.view.needsUnloadConfirm)return a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val();"city"!==f&&"postcode"!==f||(g=g.split(";"),g=a.map(g,function(a){return a.trim()})),"tax_rate_compound"!==f&&"tax_rate_shipping"!==f||(g=d.is(":checked")?1:0),c.setRateAttribute(e,f,g)},updateModelOnSort:function(a){var b=a.data.view,c=b.model,d=_.indexBy(c.get("rates"),"tax_rate_id"),e={};_.each(d,function(a){var c=0,d=parseInt(a.tax_rate_order,10);c=h.find('tr[data-id="'+a.tax_rate_id+'"]').length?parseInt(h.find('tr[data-id="'+a.tax_rate_id+'"]').index(),10)+parseInt((b.page-1)*b.per_page,10):d,d!==c&&(e[a.tax_rate_id]=_.extend(e[a.tax_rate_id]||{},{tax_rate_order:c}))}),_.size(e)&&c.logChanges(e)},sanitizePage:function(a){return a=parseInt(a,10),a<1?a=1:a>this.qty_pages&&(a=this.qty_pages),a}}),p=new n({rates:b.rates}),q=new o({model:p,el:"#rates"});q.render()})}(jQuery,htmlSettingsTaxLocalizeScript,wp,ajaxurl);assets/js/admin/meta-boxes.js000066600000004630152133032050012155 0ustar00jQuery( function ( $ ) { // Run tipTip function runTipTip() { // Remove any lingering tooltips $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); $( '.tips' ).tipTip({ 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 200 }); } runTipTip(); // Allow Tabbing $( '#titlediv' ).find( '#title' ).keyup( function( event ) { var code = event.keyCode || event.which; // Tab key if ( code === '9' && $( '#woocommerce-coupon-description' ).length > 0 ) { event.stopPropagation(); $( '#woocommerce-coupon-description' ).focus(); return false; } }); $( '.wc-metaboxes-wrapper' ).on( 'click', '.wc-metabox > h3', function() { $( this ).parent( '.wc-metabox' ).toggleClass( 'closed' ).toggleClass( 'open' ); }); // Tabbed Panels $( document.body ).on( 'wc-init-tabbed-panels', function() { $( 'ul.wc-tabs' ).show(); $( 'ul.wc-tabs a' ).click( function( e ) { e.preventDefault(); var panel_wrap = $( this ).closest( 'div.panel-wrap' ); $( 'ul.wc-tabs li', panel_wrap ).removeClass( 'active' ); $( this ).parent().addClass( 'active' ); $( 'div.panel', panel_wrap ).hide(); $( $( this ).attr( 'href' ) ).show(); }); $( 'div.panel-wrap' ).each( function() { $( this ).find( 'ul.wc-tabs li' ).eq( 0 ).find( 'a' ).click(); }); }).trigger( 'wc-init-tabbed-panels' ); // Date Picker $( document.body ).on( 'wc-init-datepickers', function() { $( '.date-picker-field, .date-picker' ).datepicker({ dateFormat: 'yy-mm-dd', numberOfMonths: 1, showButtonPanel: true }); }).trigger( 'wc-init-datepickers' ); // Meta-Boxes - Open/close $( '.wc-metaboxes-wrapper' ).on( 'click', '.wc-metabox h3', function( event ) { // If the user clicks on some form input inside the h3, like a select list (for variations), the box should not be toggled if ( $( event.target ).filter( ':input, option, .sort' ).length ) { return; } $( this ).next( '.wc-metabox-content' ).stop().slideToggle(); }) .on( 'click', '.expand_all', function() { $( this ).closest( '.wc-metaboxes-wrapper' ).find( '.wc-metabox > .wc-metabox-content' ).show(); return false; }) .on( 'click', '.close_all', function() { $( this ).closest( '.wc-metaboxes-wrapper' ).find( '.wc-metabox > .wc-metabox-content' ).hide(); return false; }); $( '.wc-metabox.closed' ).each( function() { $( this ).find( '.wc-metabox-content' ).hide(); }); }); assets/js/admin/quick-edit.js000066600000013313152133032050012146 0ustar00/*global ajaxurl, inlineEditPost, inlineEditL10n, woocommerce_admin */ jQuery(function( $ ) { $( '#the-list' ).on( 'click', '.editinline', function() { inlineEditPost.revert(); var post_id = $( this ).closest( 'tr' ).attr( 'id' ); post_id = post_id.replace( 'post-', '' ); var $wc_inline_data = $( '#woocommerce_inline_' + post_id ); var sku = $wc_inline_data.find( '.sku' ).text(), regular_price = $wc_inline_data.find( '.regular_price' ).text(), sale_price = $wc_inline_data.find( '.sale_price ').text(), weight = $wc_inline_data.find( '.weight' ).text(), length = $wc_inline_data.find( '.length' ).text(), width = $wc_inline_data.find( '.width' ).text(), height = $wc_inline_data.find( '.height' ).text(), shipping_class = $wc_inline_data.find( '.shipping_class' ).text(), visibility = $wc_inline_data.find( '.visibility' ).text(), stock_status = $wc_inline_data.find( '.stock_status' ).text(), stock = $wc_inline_data.find( '.stock' ).text(), featured = $wc_inline_data.find( '.featured' ).text(), manage_stock = $wc_inline_data.find( '.manage_stock' ).text(), menu_order = $wc_inline_data.find( '.menu_order' ).text(), tax_status = $wc_inline_data.find( '.tax_status' ).text(), tax_class = $wc_inline_data.find( '.tax_class' ).text(), backorders = $wc_inline_data.find( '.backorders' ).text(); var formatted_regular_price = regular_price.replace('.', woocommerce_admin.mon_decimal_point ), formatted_sale_price = sale_price.replace('.', woocommerce_admin.mon_decimal_point ); $( 'input[name="_sku"]', '.inline-edit-row' ).val( sku ); $( 'input[name="_regular_price"]', '.inline-edit-row' ).val( formatted_regular_price ); $( 'input[name="_sale_price"]', '.inline-edit-row' ).val( formatted_sale_price ); $( 'input[name="_weight"]', '.inline-edit-row' ).val( weight ); $( 'input[name="_length"]', '.inline-edit-row' ).val( length ); $( 'input[name="_width"]', '.inline-edit-row' ).val( width ); $( 'input[name="_height"]', '.inline-edit-row' ).val( height ); $( 'select[name="_shipping_class"] option:selected', '.inline-edit-row' ).attr( 'selected', false ).change(); $( 'select[name="_shipping_class"] option[value="' + shipping_class + '"]' ).attr( 'selected', 'selected' ).change(); $( 'input[name="_stock"]', '.inline-edit-row' ).val( stock ); $( 'input[name="menu_order"]', '.inline-edit-row' ).val( menu_order ); $( 'select[name="_tax_status"] option, select[name="_tax_class"] option, select[name="_visibility"] option, select[name="_stock_status"] option, select[name="_backorders"] option' ).removeAttr( 'selected' ); $( 'select[name="_tax_status"] option[value="' + tax_status + '"]', '.inline-edit-row' ).attr( 'selected', 'selected' ); $( 'select[name="_tax_class"] option[value="' + tax_class + '"]', '.inline-edit-row' ).attr( 'selected', 'selected' ); $( 'select[name="_visibility"] option[value="' + visibility + '"]', '.inline-edit-row' ).attr( 'selected', 'selected' ); $( 'select[name="_stock_status"] option[value="' + stock_status + '"]', '.inline-edit-row' ).attr( 'selected', 'selected' ); $( 'select[name="_backorders"] option[value="' + backorders + '"]', '.inline-edit-row' ).attr( 'selected', 'selected' ); if ( 'yes' === featured ) { $( 'input[name="_featured"]', '.inline-edit-row' ).attr( 'checked', 'checked' ); } else { $( 'input[name="_featured"]', '.inline-edit-row' ).removeAttr( 'checked' ); } if ( 'yes' === manage_stock ) { $( '.stock_qty_field', '.inline-edit-row' ).show().removeAttr( 'style' ); $( 'input[name="_manage_stock"]', '.inline-edit-row' ).attr( 'checked', 'checked' ); } else { $( '.stock_qty_field', '.inline-edit-row' ).hide(); $( 'input[name="_manage_stock"]', '.inline-edit-row' ).removeAttr( 'checked' ); } // Conditional display var product_type = $wc_inline_data.find( '.product_type' ).text(), product_is_virtual = $wc_inline_data.find( '.product_is_virtual' ).text(); if ( 'simple' === product_type || 'external' === product_type ) { $( '.price_fields', '.inline-edit-row' ).show().removeAttr( 'style' ); } else { $( '.price_fields', '.inline-edit-row' ).hide(); } if ( 'yes' === product_is_virtual ) { $( '.dimension_fields', '.inline-edit-row' ).hide(); } else { $( '.dimension_fields', '.inline-edit-row' ).show().removeAttr( 'style' ); } if ( 'grouped' === product_type ) { $( '.stock_fields', '.inline-edit-row' ).hide(); } else { $( '.stock_fields', '.inline-edit-row' ).show().removeAttr( 'style' ); } }); $( '#the-list' ).on( 'change', '.inline-edit-row input[name="_manage_stock"]', function() { if ( $( this ).is( ':checked' ) ) { $( '.stock_qty_field', '.inline-edit-row' ).show().removeAttr( 'style' ); } else { $( '.stock_qty_field', '.inline-edit-row' ).hide(); } }); $( '#wpbody' ).on( 'click', '#doaction, #doaction2', function() { $( 'input.text', '.inline-edit-row' ).val( '' ); $( '#woocommerce-fields' ).find( 'select' ).prop( 'selectedIndex', 0 ); $( '#woocommerce-fields-bulk' ).find( '.inline-edit-group .change-input' ).hide(); // Autosuggest product tags on bulk edit var tax = 'product_tag'; $( 'tr.inline-editor textarea[name="tax_input[' + tax + ']"]' ).suggest( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma } ); }); $( '#wpbody' ).on( 'change', '#woocommerce-fields-bulk .inline-edit-group .change_to', function() { if ( 0 < $( this ).val() ) { $( this ).closest( 'div' ).find( '.change-input' ).show(); } else { $( this ).closest( 'div' ).find( '.change-input' ).hide(); } }); }); assets/js/admin/reports.min.js000066600000006325152133032050012374 0ustar00jQuery(function(a){function b(b,c,d){a('
    '+d+"
    ").css({top:c-16,left:b+20}).appendTo("body").fadeIn(200)}var c=null,d=null;a(".chart-placeholder").bind("plothover",function(e,f,g){if(g){if((c!==g.dataIndex||d!==g.seriesIndex)&&(c=g.dataIndex,d=g.seriesIndex,a(".chart-tooltip").remove(),g.series.points.show||g.series.enable_tooltip)){var h=g.series.data[g.dataIndex][1],i="";g.series.prepend_label&&(i=i+g.series.label+": "),g.series.prepend_tooltip&&(i+=g.series.prepend_tooltip),i+=h,g.series.append_tooltip&&(i+=g.series.append_tooltip),g.series.pie.show?b(f.pageX,f.pageY,i):b(g.pageX,g.pageY,i)}}else a(".chart-tooltip").remove(),c=null}),a(".wc_sparkline.bars").each(function(){var b=a(this).data("sparkline"),c={grid:{show:!1}},d=[{data:b,color:a(this).data("color"),bars:{fillColor:a(this).data("color"),fill:!0,show:!0,lineWidth:1,barWidth:a(this).data("barwidth"),align:"center"},shadowSize:0}];a.plot(a(this),d,c)}),a(".wc_sparkline.lines").each(function(){var b=a(this).data("sparkline"),c={grid:{show:!1}},d=[{data:b,color:a(this).data("color"),lines:{fill:!1,show:!0,lineWidth:1,align:"center"},shadowSize:0}];a.plot(a(this),d,c)});var e=a(".range_datepicker").datepicker({changeMonth:!0,changeYear:!0,defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,maxDate:"+0D",showButtonPanel:!0,showOn:"focus",buttonImageOnly:!0,onSelect:function(b){var c=a(this).is(".from")?"minDate":"maxDate",d=a(this).data("datepicker"),f=a.datepicker.parseDate(d.settings.dateFormat||a.datepicker._defaults.dateFormat,b,d.settings);e.not(this).datepicker("option",c,f)}}),f=document.createElement("a");"undefined"==typeof f.download&&a(".export_csv").hide(),a(".export_csv").click(function(){var b=a(this).data("exclude_series")||"";b=b.toString(),b=b.split(",");var c,d,e,f=a(this).data("xaxes"),g=a(this).data("groupby"),h=a(this).data("export"),i="data:application/csv;charset=utf-8,";if("table"===h)a(this).offsetParent().find("thead tr,tbody tr").each(function(){a(this).find("th, td").each(function(){var b=a(this).text();b=b.replace("[?]","").replace("#",""),i+='"'+b+'",'}),i=i.substring(0,i.length-1),i+="\n"}),a(this).offsetParent().find("tfoot tr").each(function(){a(this).find("th, td").each(function(){var b=a(this).text();if(b=b.replace("[?]","").replace("#",""),i+='"'+b+'",',a(this).attr("colspan")>0)for(m=1;m');else{var m=a(''),n=b.states[f];m.append(a('")),a.each(n,function(b){m.append(a('"))}),m.val(k),g.replaceWith(m),m.show().select2().hide().change()}a(document.body).trigger("contry-change.woocommerce",[f,a(this).closest("div")]),a(document.body).trigger("country-change.woocommerce",[f,a(this).closest("div")])}},change_state:function(){var b=a(this),c=b.val(),d=b.parents("div.edit_address").find(":input.js_field-country"),e=d.val();d.data("woocommerce.stickState-"+e,c)},init_tiptip:function(){a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),a(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})},edit_address:function(b){b.preventDefault(),a(this).hide(),a(this).parent().find("a:not(.edit_address)").show(),a(this).closest(".order_data_column").find("div.address").hide(),a(this).closest(".order_data_column").find("div.edit_address").show()},change_customer_user:function(){a("#_billing_country").val()||(a("a.edit_address").click(),b.load_billing(!0),b.load_shipping(!0))},load_billing:function(b){if(!0===b||window.confirm(woocommerce_admin_meta_boxes.load_billing)){var c=a("#customer_user").val();if(!c)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var d={user_id:c,type_to_load:"billing",action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};a(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:d,type:"POST",success:function(b){b&&a.each(b,function(b,c){a(":input#_"+b).val(c).change()}),a("div.edit_address").unblock()}})}return!1},load_shipping:function(b){if(!0===b||window.confirm(woocommerce_admin_meta_boxes.load_shipping)){var c=a("#customer_user").val();if(!c)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var d={user_id:c,type_to_load:"shipping",action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};a(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:d,type:"POST",success:function(b){b&&a.each(b,function(b,c){a(":input#_"+b).val(c).change()}),a("div.edit_address").unblock()}})}return!1},copy_billing_to_shipping:function(){return window.confirm(woocommerce_admin_meta_boxes.copy_billing)&&a('.order_data_column :input[name^="_billing_"]').each(function(){var b=a(this).attr("name");b=b.replace("_billing_","_shipping_"),a(":input#"+b).val(a(this).val()).change()}),!1}},c={init:function(){this.stupidtable.init(),a("#woocommerce-order-items").on("click","button.add-line-item",this.add_line_item).on("click","button.refund-items",this.refund_items).on("click",".cancel-action",this.cancel).on("click","button.add-order-item",this.add_item).on("click","button.add-order-fee",this.add_fee).on("click","button.add-order-shipping",this.add_shipping).on("click","button.add-order-tax",this.add_tax).on("click","button.calculate-action",this.calculate_totals).on("click","button.save-action",this.save_line_items).on("click","a.delete-order-tax",this.delete_tax).on("click","button.calculate-tax-action",this.calculate_tax).on("click","a.edit-order-item",this.edit_item).on("click","a.delete-order-item",this.delete_item).on("click","tr.item, tr.fee, tr.shipping, tr.refund",this.select_row).on("click","tr.item :input, tr.fee :input, tr.shipping :input, tr.refund :input, tr.item a, tr.fee a, tr.shipping a, tr.refund a",this.select_row_child).on("click","button.bulk-delete-items",this.bulk_actions.do_delete).on("click","button.bulk-increase-stock",this.bulk_actions.do_increase_stock).on("click","button.bulk-decrease-stock",this.bulk_actions.do_reduce_stock).on("click",".delete_refund",this.refunds.delete_refund).on("click","button.do-api-refund, button.do-manual-refund",this.refunds.do_refund).on("change",".refund input.refund_line_total, .refund input.refund_line_tax",this.refunds.input_changed).on("change keyup",".wc-order-refund-items #refund_amount",this.refunds.amount_changed).on("change","input.refund_order_item_qty",this.refunds.refund_quantity_changed).on("change","input.quantity",this.quantity_changed).on("keyup change",".split-input :input",function(){var b=a(this).parent().prev().find(":input");b&&(""===b.val()||b.is(".match-total"))&&b.val(a(this).val()).addClass("match-total")}).on("keyup",".split-input :input",function(){a(this).removeClass("match-total")}).on("click","button.add_order_item_meta",this.item_meta.add).on("click","button.remove_order_item_meta",this.item_meta.remove),a(document.body).on("wc_backbone_modal_loaded",this.backbone.init).on("wc_backbone_modal_response",this.backbone.response)},block:function(){a("#woocommerce-order-items").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a("#woocommerce-order-items").unblock()},reload_items:function(){var d={order_id:woocommerce_admin_meta_boxes.post_id,action:"woocommerce_load_order_items",security:woocommerce_admin_meta_boxes.order_item_nonce};c.block(),a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:d,type:"POST",success:function(d){a("#woocommerce-order-items").find(".inside").empty(),a("#woocommerce-order-items").find(".inside").append(d),b.init_tiptip(),c.unblock(),c.stupidtable.init()}})},quantity_changed:function(){var b=a(this).closest("tr.item"),c=a(this).val(),d=a(this).attr("data-qty"),e=a("input.line_total",b),f=a("input.line_subtotal",b),g=accounting.unformat(e.attr("data-total"),woocommerce_admin.mon_decimal_point)/d;e.val(parseFloat(accounting.formatNumber(g*c,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point));var h=accounting.unformat(f.attr("data-subtotal"),woocommerce_admin.mon_decimal_point)/d;f.val(parseFloat(accounting.formatNumber(h*c,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)),a("input.line_tax",b).each(function(){var e=a(this),f=e.data("tax_id"),g=accounting.unformat(e.attr("data-total_tax"),woocommerce_admin.mon_decimal_point)/d,h=a('input.line_subtotal_tax[data-tax_id="'+f+'"]',b),i=accounting.unformat(h.attr("data-subtotal_tax"),woocommerce_admin.mon_decimal_point)/d;00?a("#restock_refunded_items").closest("tr").show():(a("#restock_refunded_items").closest("tr").hide(),a(".woocommerce_order_items input.refund_order_item_qty").each(function(){a(this).val()>0&&a("#restock_refunded_items").closest("tr").show()})),a(this).trigger("refund_quantity_changed")}},item_meta:{add:function(){var b=a(this),d=b.closest("tr.item, tr.shipping"),e={order_item_id:d.attr("data-order_item_id"),action:"woocommerce_add_order_item_meta",security:woocommerce_admin_meta_boxes.order_item_nonce};return c.block(),a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(a){d.find("tbody.meta_items").append(a),c.unblock()}}),!1},remove:function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_item_meta)){var b=a(this).closest("tr"),d={meta_id:b.attr("data-meta_id"),action:"woocommerce_remove_order_item_meta",security:woocommerce_admin_meta_boxes.order_item_nonce};c.block(),a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:d,type:"POST",success:function(){b.remove(),c.unblock()}})}return!1}},select_row:function(){var b=!1;b=a(this).is("tr")?a(this):a(this).closest("tr");var c=a(this).closest("table");b.is(".selected")?b.removeClass("selected"):b.addClass("selected");var d=c.find("tr.selected");if(d.length){a("div.wc-order-item-bulk-edit").slideDown();var e=!1;d.each(function(){a(this).is("tr.item")&&(e=!0)}),e?a(".bulk-increase-stock, .bulk-decrease-stock").show():a(".bulk-increase-stock, .bulk-decrease-stock").hide()}else a("div.wc-order-item-bulk-edit").slideUp()},select_row_child:function(a){a.stopPropagation()},bulk_actions:{do_delete:function(b){b.preventDefault();var d=a("table.woocommerce_order_items"),e=d.find("tr.selected");if(e.length&&window.confirm(woocommerce_admin_meta_boxes.remove_item_notice)){c.block();var f=[],g=[],h=[];a.map(e,function(b){var c=a(b);c.is(".refund")?g.push(parseInt(a(c).data("order_refund_id"),10)):f.push(parseInt(a(c).data("order_item_id"),10))}),f.length&&h.push(a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:{order_item_ids:f,action:"woocommerce_remove_order_item",security:woocommerce_admin_meta_boxes.order_item_nonce},type:"POST"})),g.length&&h.push(a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:{action:"woocommerce_delete_refund",refund_id:g,security:woocommerce_admin_meta_boxes.order_item_nonce},type:"POST"})),h?a.when.apply(a,h).done(function(){c.reload_items(),c.unblock()}):c.unblock()}},do_increase_stock:function(b){b.preventDefault(),c.block();var d=a("table.woocommerce_order_items"),e=d.find("tr.selected"),f={},g=a.map(e,function(b){return parseInt(a(b).data("order_item_id"),10)});e.each(function(){a(this).find("input.quantity").length&&(f[a(this).attr("data-order_item_id")]=a(this).find("input.quantity").val())});var h={order_id:woocommerce_admin_meta_boxes.post_id,order_item_ids:g,order_item_qty:f,action:"woocommerce_increase_order_item_stock",security:woocommerce_admin_meta_boxes.order_item_nonce};a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:h,type:"POST",success:function(a){window.alert(a),c.unblock()}})},do_reduce_stock:function(b){b.preventDefault(),c.block();var d=a("table.woocommerce_order_items"),e=d.find("tr.selected"),f={},g=a.map(e,function(b){return parseInt(a(b).data("order_item_id"),10)});e.each(function(){a(this).find("input.quantity").length&&(f[a(this).attr("data-order_item_id")]=a(this).find("input.quantity").val())});var h={order_id:woocommerce_admin_meta_boxes.post_id,order_item_ids:g,order_item_qty:f,action:"woocommerce_reduce_order_item_stock",security:woocommerce_admin_meta_boxes.order_item_nonce};a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:h,type:"POST",success:function(a){window.alert(a),c.unblock()}})}},backbone:{init:function(b,c){"wc-modal-add-products"===c&&a(document.body).trigger("wc-enhanced-select-init")},response:function(a,b,d){if("wc-modal-add-tax"===b){var e=d.add_order_tax,f="";d.manual_tax_rate_id&&(f=d.manual_tax_rate_id),c.backbone.add_tax(e,f)}"wc-modal-add-products"===b&&c.backbone.add_item(d.add_order_items)},add_item:function(d){if(d=d.split(",")){var e=d.length;c.block(),a.each(d,function(d,f){var g={action:"woocommerce_add_order_item",item_to_add:f,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,g,function(d){a("table.woocommerce_order_items tbody#order_line_items").append(d),--e||(b.init_tiptip(),c.unblock())})})}},add_tax:function(d,e){if(e&&(d=e),!d)return!1;var f=a(".order-tax-id").map(function(){return a(this).val()}).get();if(-1===a.inArray(d,f)){c.block();var g={action:"woocommerce_add_order_tax",rate_id:d,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};a.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:g,type:"POST",success:function(d){a("#woocommerce-order-items").find(".inside").empty(),a("#woocommerce-order-items").find(".inside").append(d),b.init_tiptip(),c.unblock(),c.stupidtable.init()}})}else window.alert(woocommerce_admin_meta_boxes.i18n_tax_rate_already_exists)}},stupidtable:{init:function(){a(".woocommerce_order_items").stupidtable(),a(".woocommerce_order_items").on("aftertablesort",this.add_arrows)},add_arrows:function(b,c){var d=a(this).find("th"),e="asc"===c.direction?"↑":"↓",f=c.column;d.find(".wc-arrow").remove(),d.eq(f).append(''+e+"")}}},d={init:function(){a("#woocommerce-order-notes").on("click","a.add_note",this.add_order_note).on("click","a.delete_note",this.delete_order_note)},add_order_note:function(){if(a("textarea#add_order_note").val()){a("#woocommerce-order-notes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b={action:"woocommerce_add_order_note",post_id:woocommerce_admin_meta_boxes.post_id,note:a("textarea#add_order_note").val(),note_type:a("select#order_note_type").val(),security:woocommerce_admin_meta_boxes.add_order_note_nonce};return a.post(woocommerce_admin_meta_boxes.ajax_url,b,function(b){a("ul.order_notes").prepend(b),a("#woocommerce-order-notes").unblock(),a("#add_order_note").val("")}),!1}},delete_order_note:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_note)){var b=a(this).closest("li.note");a(b).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var c={action:"woocommerce_delete_order_note",note_id:a(b).attr("rel"),security:woocommerce_admin_meta_boxes.delete_order_note_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,c,function(){a(b).remove()})}return!1}},e={init:function(){a(".order_download_permissions").on("click","button.grant_access",this.grant_access).on("click","button.revoke_access",this.revoke_access)},grant_access:function(){var b=a("#grant_access_id").val();if(b){a(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var c={action:"woocommerce_grant_access_to_download",product_ids:b,loop:a(".order_download_permissions .wc-metabox").length,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.grant_access_nonce};return a.post(woocommerce_admin_meta_boxes.ajax_url,c,function(b){b?a(".order_download_permissions .wc-metaboxes").append(b):window.alert(woocommerce_admin_meta_boxes.i18n_download_permission_fail),a(document.body).trigger("wc-init-datepickers"),a("#grant_access_id").val("").change(),a(".order_download_permissions").unblock()}),!1}},revoke_access:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_permission_revoke)){var b=a(this).parent().parent(),c=a(this).attr("rel").split(",")[0],d=a(this).attr("rel").split(",")[1],e=a(this).data("permission_id");if(c>0){a(b).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var f={action:"woocommerce_revoke_access_to_download",product_id:c,download_id:d,permission_id:e,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.revoke_access_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,f,function(){a(b).fadeOut("300",function(){a(b).remove()})})}else a(b).fadeOut("300",function(){a(b).remove()})}return!1}};b.init(),c.init(),d.init(),e.init()});assets/js/admin/quick-edit.min.js000066600000007656152133032050012745 0ustar00jQuery(function(a){a("#the-list").on("click",".editinline",function(){inlineEditPost.revert();var b=a(this).closest("tr").attr("id");b=b.replace("post-","");var c=a("#woocommerce_inline_"+b),d=c.find(".sku").text(),e=c.find(".regular_price").text(),f=c.find(".sale_price ").text(),g=c.find(".weight").text(),h=c.find(".length").text(),i=c.find(".width").text(),j=c.find(".height").text(),k=c.find(".shipping_class").text(),l=c.find(".visibility").text(),m=c.find(".stock_status").text(),n=c.find(".stock").text(),o=c.find(".featured").text(),p=c.find(".manage_stock").text(),q=c.find(".menu_order").text(),r=c.find(".tax_status").text(),s=c.find(".tax_class").text(),t=c.find(".backorders").text(),u=e.replace(".",woocommerce_admin.mon_decimal_point),v=f.replace(".",woocommerce_admin.mon_decimal_point);a('input[name="_sku"]',".inline-edit-row").val(d),a('input[name="_regular_price"]',".inline-edit-row").val(u),a('input[name="_sale_price"]',".inline-edit-row").val(v),a('input[name="_weight"]',".inline-edit-row").val(g),a('input[name="_length"]',".inline-edit-row").val(h),a('input[name="_width"]',".inline-edit-row").val(i),a('input[name="_height"]',".inline-edit-row").val(j),a('select[name="_shipping_class"] option:selected',".inline-edit-row").attr("selected",!1).change(),a('select[name="_shipping_class"] option[value="'+k+'"]').attr("selected","selected").change(),a('input[name="_stock"]',".inline-edit-row").val(n),a('input[name="menu_order"]',".inline-edit-row").val(q),a('select[name="_tax_status"] option, select[name="_tax_class"] option, select[name="_visibility"] option, select[name="_stock_status"] option, select[name="_backorders"] option').removeAttr("selected"),a('select[name="_tax_status"] option[value="'+r+'"]',".inline-edit-row").attr("selected","selected"),a('select[name="_tax_class"] option[value="'+s+'"]',".inline-edit-row").attr("selected","selected"),a('select[name="_visibility"] option[value="'+l+'"]',".inline-edit-row").attr("selected","selected"),a('select[name="_stock_status"] option[value="'+m+'"]',".inline-edit-row").attr("selected","selected"),a('select[name="_backorders"] option[value="'+t+'"]',".inline-edit-row").attr("selected","selected"),"yes"===o?a('input[name="_featured"]',".inline-edit-row").attr("checked","checked"):a('input[name="_featured"]',".inline-edit-row").removeAttr("checked"),"yes"===p?(a(".stock_qty_field",".inline-edit-row").show().removeAttr("style"),a('input[name="_manage_stock"]',".inline-edit-row").attr("checked","checked")):(a(".stock_qty_field",".inline-edit-row").hide(),a('input[name="_manage_stock"]',".inline-edit-row").removeAttr("checked"));var w=c.find(".product_type").text(),x=c.find(".product_is_virtual").text();"simple"===w||"external"===w?a(".price_fields",".inline-edit-row").show().removeAttr("style"):a(".price_fields",".inline-edit-row").hide(),"yes"===x?a(".dimension_fields",".inline-edit-row").hide():a(".dimension_fields",".inline-edit-row").show().removeAttr("style"),"grouped"===w?a(".stock_fields",".inline-edit-row").hide():a(".stock_fields",".inline-edit-row").show().removeAttr("style")}),a("#the-list").on("change",'.inline-edit-row input[name="_manage_stock"]',function(){a(this).is(":checked")?a(".stock_qty_field",".inline-edit-row").show().removeAttr("style"):a(".stock_qty_field",".inline-edit-row").hide()}),a("#wpbody").on("click","#doaction, #doaction2",function(){a("input.text",".inline-edit-row").val(""),a("#woocommerce-fields").find("select").prop("selectedIndex",0),a("#woocommerce-fields-bulk").find(".inline-edit-group .change-input").hide();var b="product_tag";a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+(ajaxurl.indexOf("?")>0?"&":"?")+"action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma})}),a("#wpbody").on("change","#woocommerce-fields-bulk .inline-edit-group .change_to",function(){0');else{var l=a(''),m=b.states[f];l.append(a('")),a.each(m,function(b){l.append(a('"))}),l.val(k),g.replaceWith(l),l.show().select2().hide().change()}a(document.body).trigger("contry-change.woocommerce",[f,a(this).closest("div")]),a(document.body).trigger("country-change.woocommerce",[f,a(this).closest("div")])}},change_state:function(){var b=a(this),c=b.val(),d=b.parents(".form-table").find(":input.js_field-country"),e=d.val();d.data("woocommerce.stickState-"+e,c)}};b.init()});assets/js/admin/meta-boxes-order.js000066600000117703152133032050013274 0ustar00/*global woocommerce_admin_meta_boxes, woocommerce_admin, accounting, woocommerce_admin_meta_boxes_order */ jQuery( function ( $ ) { /** * Order Data Panel */ var wc_meta_boxes_order = { states: null, init: function() { if ( ! ( typeof woocommerce_admin_meta_boxes_order === 'undefined' || typeof woocommerce_admin_meta_boxes_order.countries === 'undefined' ) ) { /* State/Country select boxes */ this.states = $.parseJSON( woocommerce_admin_meta_boxes_order.countries.replace( /"/g, '"' ) ); } $( '.js_field-country' ).select2().change( this.change_country ); $( '.js_field-country' ).trigger( 'change', [ true ] ); $( document.body ).on( 'change', 'select.js_field-state', this.change_state ); $( '#woocommerce-order-actions input, #woocommerce-order-actions a' ).click(function() { window.onbeforeunload = ''; }); $( 'a.edit_address' ).click( this.edit_address ); $( 'a.billing-same-as-shipping' ).on( 'click', this.copy_billing_to_shipping ); $( 'a.load_customer_billing' ).on( 'click', this.load_billing ); $( 'a.load_customer_shipping' ).on( 'click', this.load_shipping ); $( '#customer_user' ).on( 'change', this.change_customer_user ); }, change_country: function( e, stickValue ) { // Check for stickValue before using it if ( typeof stickValue === 'undefined' ){ stickValue = false; } // Prevent if we don't have the metabox data if ( wc_meta_boxes_order.states === null ){ return; } var $this = $( this ), country = $this.val(), $state = $this.parents( 'div.edit_address' ).find( ':input.js_field-state' ), $parent = $state.parent(), input_name = $state.attr( 'name' ), input_id = $state.attr( 'id' ), value = $this.data( 'woocommerce.stickState-' + country ) ? $this.data( 'woocommerce.stickState-' + country ) : $state.val(), placeholder = $state.attr( 'placeholder' ); if ( stickValue ){ $this.data( 'woocommerce.stickState-' + country, value ); } // Remove the previous DOM element $parent.show().find( '.select2-container' ).remove(); if ( ! $.isEmptyObject( wc_meta_boxes_order.states[ country ] ) ) { var $states_select = $( '' ), state = wc_meta_boxes_order.states[ country ]; $states_select.append( $( '' ) ); $.each( state, function( index ) { $states_select.append( $( '' ) ); } ); $states_select.val( value ); $state.replaceWith( $states_select ); $states_select.show().select2().hide().change(); } else { $state.replaceWith( '' ); } // This event has a typo - deprecated in 2.5.0 $( document.body ).trigger( 'contry-change.woocommerce', [country, $( this ).closest( 'div' )] ); $( document.body ).trigger( 'country-change.woocommerce', [country, $( this ).closest( 'div' )] ); }, change_state: function() { // Here we will find if state value on a select has changed and stick it to the country data var $this = $( this ), state = $this.val(), $country = $this.parents( 'div.edit_address' ).find( ':input.js_field-country' ), country = $country.val(); $country.data( 'woocommerce.stickState-' + country, state ); }, init_tiptip: function() { $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); $( '.tips' ).tipTip({ 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 200 }); }, edit_address: function( e ) { e.preventDefault(); $( this ).hide(); $( this ).parent().find( 'a:not(.edit_address)' ).show(); $( this ).closest( '.order_data_column' ).find( 'div.address' ).hide(); $( this ).closest( '.order_data_column' ).find( 'div.edit_address' ).show(); }, change_customer_user: function() { if ( ! $( '#_billing_country' ).val() ) { $( 'a.edit_address' ).click(); wc_meta_boxes_order.load_billing( true ); wc_meta_boxes_order.load_shipping( true ); } }, load_billing: function( force ) { if ( true === force || window.confirm( woocommerce_admin_meta_boxes.load_billing ) ) { // Get user ID to load data for var user_id = $( '#customer_user' ).val(); if ( ! user_id ) { window.alert( woocommerce_admin_meta_boxes.no_customer_selected ); return false; } var data = { user_id: user_id, type_to_load: 'billing', action: 'woocommerce_get_customer_details', security: woocommerce_admin_meta_boxes.get_customer_details_nonce }; $( this ).closest( 'div.edit_address' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { if ( response ) { $.each( response, function( key, data ) { $( ':input#_' + key ).val( data ).change(); }); } $( 'div.edit_address' ).unblock(); } }); } return false; }, load_shipping: function( force ) { if ( true === force || window.confirm( woocommerce_admin_meta_boxes.load_shipping ) ) { // Get user ID to load data for var user_id = $( '#customer_user' ).val(); if ( ! user_id ) { window.alert( woocommerce_admin_meta_boxes.no_customer_selected ); return false; } var data = { user_id: user_id, type_to_load: 'shipping', action: 'woocommerce_get_customer_details', security: woocommerce_admin_meta_boxes.get_customer_details_nonce }; $( this ).closest( 'div.edit_address' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { if ( response ) { $.each( response, function( key, data ) { $( ':input#_' + key ).val( data ).change(); }); } $( 'div.edit_address' ).unblock(); } }); } return false; }, copy_billing_to_shipping: function() { if ( window.confirm( woocommerce_admin_meta_boxes.copy_billing ) ) { $('.order_data_column :input[name^="_billing_"]').each( function() { var input_name = $(this).attr('name'); input_name = input_name.replace( '_billing_', '_shipping_' ); $( ':input#' + input_name ).val( $(this).val() ).change(); }); } return false; } }; /** * Order Items Panel */ var wc_meta_boxes_order_items = { init: function() { this.stupidtable.init(); $( '#woocommerce-order-items' ) .on( 'click', 'button.add-line-item', this.add_line_item ) .on( 'click', 'button.refund-items', this.refund_items ) .on( 'click', '.cancel-action', this.cancel ) .on( 'click', 'button.add-order-item', this.add_item ) .on( 'click', 'button.add-order-fee', this.add_fee ) .on( 'click', 'button.add-order-shipping', this.add_shipping ) .on( 'click', 'button.add-order-tax', this.add_tax ) .on( 'click', 'button.calculate-action', this.calculate_totals ) .on( 'click', 'button.save-action', this.save_line_items ) .on( 'click', 'a.delete-order-tax', this.delete_tax ) .on( 'click', 'button.calculate-tax-action', this.calculate_tax ) .on( 'click', 'a.edit-order-item', this.edit_item ) .on( 'click', 'a.delete-order-item', this.delete_item ) .on( 'click', 'tr.item, tr.fee, tr.shipping, tr.refund', this.select_row ) .on( 'click', 'tr.item :input, tr.fee :input, tr.shipping :input, tr.refund :input, tr.item a, tr.fee a, tr.shipping a, tr.refund a', this.select_row_child ) .on( 'click', 'button.bulk-delete-items', this.bulk_actions.do_delete ) .on( 'click', 'button.bulk-increase-stock', this.bulk_actions.do_increase_stock ) .on( 'click', 'button.bulk-decrease-stock', this.bulk_actions.do_reduce_stock ) // Refunds .on( 'click', '.delete_refund', this.refunds.delete_refund ) .on( 'click', 'button.do-api-refund, button.do-manual-refund', this.refunds.do_refund ) .on( 'change', '.refund input.refund_line_total, .refund input.refund_line_tax', this.refunds.input_changed ) .on( 'change keyup', '.wc-order-refund-items #refund_amount', this.refunds.amount_changed ) .on( 'change', 'input.refund_order_item_qty', this.refunds.refund_quantity_changed ) // Qty .on( 'change', 'input.quantity', this.quantity_changed ) // Subtotal/total .on( 'keyup change', '.split-input :input', function() { var $subtotal = $( this ).parent().prev().find(':input'); if ( $subtotal && ( $subtotal.val() === '' || $subtotal.is( '.match-total' ) ) ) { $subtotal.val( $( this ).val() ).addClass( 'match-total' ); } }) .on( 'keyup', '.split-input :input', function() { $( this ).removeClass( 'match-total' ); }) // Meta .on( 'click', 'button.add_order_item_meta', this.item_meta.add ) .on( 'click', 'button.remove_order_item_meta', this.item_meta.remove ); $( document.body ) .on( 'wc_backbone_modal_loaded', this.backbone.init ) .on( 'wc_backbone_modal_response', this.backbone.response ); }, block: function() { $( '#woocommerce-order-items' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( '#woocommerce-order-items' ).unblock(); }, reload_items: function() { var data = { order_id: woocommerce_admin_meta_boxes.post_id, action: 'woocommerce_load_order_items', security: woocommerce_admin_meta_boxes.order_item_nonce }; wc_meta_boxes_order_items.block(); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $( '#woocommerce-order-items' ).find( '.inside' ).empty(); $( '#woocommerce-order-items' ).find( '.inside' ).append( response ); wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); wc_meta_boxes_order_items.stupidtable.init(); } }); }, // When the qty is changed, increase or decrease costs quantity_changed: function() { var $row = $( this ).closest( 'tr.item' ); var qty = $( this ).val(); var o_qty = $( this ).attr( 'data-qty' ); var line_total = $( 'input.line_total', $row ); var line_subtotal = $( 'input.line_subtotal', $row ); // Totals var unit_total = accounting.unformat( line_total.attr( 'data-total' ), woocommerce_admin.mon_decimal_point ) / o_qty; line_total.val( parseFloat( accounting.formatNumber( unit_total * qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ); var unit_subtotal = accounting.unformat( line_subtotal.attr( 'data-subtotal' ), woocommerce_admin.mon_decimal_point ) / o_qty; line_subtotal.val( parseFloat( accounting.formatNumber( unit_subtotal * qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ); // Taxes $( 'input.line_tax', $row ).each( function() { var $line_total_tax = $( this ); var tax_id = $line_total_tax.data( 'tax_id' ); var unit_total_tax = accounting.unformat( $line_total_tax.attr( 'data-total_tax' ), woocommerce_admin.mon_decimal_point ) / o_qty; var $line_subtotal_tax = $( 'input.line_subtotal_tax[data-tax_id="' + tax_id + '"]', $row ); var unit_subtotal_tax = accounting.unformat( $line_subtotal_tax.attr( 'data-subtotal_tax' ), woocommerce_admin.mon_decimal_point ) / o_qty; if ( 0 < unit_total_tax ) { $line_total_tax.val( parseFloat( accounting.formatNumber( unit_total_tax * qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ); } if ( 0 < unit_subtotal_tax ) { $line_subtotal_tax.val( parseFloat( accounting.formatNumber( unit_subtotal_tax * qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ); } }); $( this ).trigger( 'quantity_changed' ); }, add_line_item: function() { $( 'div.wc-order-add-item' ).slideDown(); $( 'div.wc-order-data-row-toggle' ).not( 'div.wc-order-add-item' ).slideUp(); return false; }, refund_items: function() { $( 'div.wc-order-refund-items' ).slideDown(); $( 'div.wc-order-data-row-toggle' ).not( 'div.wc-order-refund-items' ).slideUp(); $( 'div.wc-order-totals-items' ).slideUp(); $( '#woocommerce-order-items' ).find( 'div.refund' ).show(); $( '.wc-order-edit-line-item .wc-order-edit-line-item-actions' ).hide(); return false; }, cancel: function() { $( 'div.wc-order-data-row-toggle' ).not( 'div.wc-order-bulk-actions' ).slideUp(); $( 'div.wc-order-bulk-actions' ).slideDown(); $( 'div.wc-order-totals-items' ).slideDown(); $( '#woocommerce-order-items' ).find( 'div.refund' ).hide(); $( '.wc-order-edit-line-item .wc-order-edit-line-item-actions' ).show(); // Reload the items if ( 'true' === $( this ).attr( 'data-reload' ) ) { wc_meta_boxes_order_items.reload_items(); } return false; }, add_item: function() { $( this ).WCBackboneModal({ template: 'wc-modal-add-products' }); return false; }, add_fee: function() { wc_meta_boxes_order_items.block(); var data = { action: 'woocommerce_add_order_fee', order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { $( 'table.woocommerce_order_items tbody#order_fee_line_items' ).append( response ); wc_meta_boxes_order_items.unblock(); }); return false; }, add_shipping: function() { wc_meta_boxes_order_items.block(); var data = { action: 'woocommerce_add_order_shipping', order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { $( 'table.woocommerce_order_items tbody#order_shipping_line_items' ).append( response ); wc_meta_boxes_order_items.unblock(); }); return false; }, add_tax: function() { $( this ).WCBackboneModal({ template: 'wc-modal-add-tax' }); return false; }, edit_item: function() { $( this ).closest( 'tr' ).find( '.view' ).hide(); $( this ).closest( 'tr' ).find( '.edit' ).show(); $( this ).hide(); $( 'button.add-line-item' ).click(); $( 'button.cancel-action' ).attr( 'data-reload', true ); return false; }, delete_item: function() { var answer = window.confirm( woocommerce_admin_meta_boxes.remove_item_notice ); if ( answer ) { var $item = $( this ).closest( 'tr.item, tr.fee, tr.shipping' ); var order_item_id = $item.attr( 'data-order_item_id' ); wc_meta_boxes_order_items.block(); var data = { order_item_ids: order_item_id, action: 'woocommerce_remove_order_item', security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function() { $item.remove(); wc_meta_boxes_order_items.unblock(); } }); } return false; }, delete_tax: function() { if ( window.confirm( woocommerce_admin_meta_boxes.i18n_delete_tax ) ) { wc_meta_boxes_order_items.block(); var data = { action: 'woocommerce_remove_order_tax', rate_id: $( this ).attr( 'data-rate_id' ), order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $( '#woocommerce-order-items' ).find( '.inside' ).empty(); $( '#woocommerce-order-items' ).find( '.inside' ).append( response ); wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); wc_meta_boxes_order_items.stupidtable.init(); } }); } return false; }, calculate_tax: function() { if ( window.confirm( woocommerce_admin_meta_boxes.calc_line_taxes ) ) { wc_meta_boxes_order_items.block(); var country = ''; var state = ''; var postcode = ''; var city = ''; if ( 'shipping' === woocommerce_admin_meta_boxes.tax_based_on ) { country = $( '#_shipping_country' ).val(); state = $( '#_shipping_state' ).val(); postcode = $( '#_shipping_postcode' ).val(); city = $( '#_shipping_city' ).val(); } if ( 'billing' === woocommerce_admin_meta_boxes.tax_based_on || ! country ) { country = $( '#_billing_country' ).val(); state = $( '#_billing_state' ).val(); postcode = $( '#_billing_postcode' ).val(); city = $( '#_billing_city' ).val(); } var data = { action: 'woocommerce_calc_line_taxes', order_id: woocommerce_admin_meta_boxes.post_id, items: $( 'table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]' ).serialize(), country: country, state: state, postcode: postcode, city: city, security: woocommerce_admin_meta_boxes.calc_totals_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $( '#woocommerce-order-items' ).find( '.inside' ).empty(); $( '#woocommerce-order-items' ).find( '.inside' ).append( response ); wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); wc_meta_boxes_order_items.stupidtable.init(); } }); } return false; }, calculate_totals: function() { if ( window.confirm( woocommerce_admin_meta_boxes.calc_totals ) ) { wc_meta_boxes_order_items.block(); // Get row totals var line_totals = 0; var tax = 0; var shipping = 0; $( '.woocommerce_order_items tr.shipping input.line_total' ).each(function() { var cost = $( this ).val() || '0'; cost = accounting.unformat( cost, woocommerce_admin.mon_decimal_point ); shipping = shipping + parseFloat( cost ); }); $( '.woocommerce_order_items input.line_tax' ).each(function() { var cost = $( this ).val() || '0'; cost = accounting.unformat( cost, woocommerce_admin.mon_decimal_point ); tax = tax + parseFloat( cost ); }); $( '.woocommerce_order_items tr.item, .woocommerce_order_items tr.fee' ).each(function() { var line_total = $( this ).find( 'input.line_total' ).val() || '0'; line_totals = line_totals + accounting.unformat( line_total.replace( ',', '.' ) ); }); // Tax if ( 'yes' === woocommerce_admin_meta_boxes.round_at_subtotal ) { tax = parseFloat( accounting.toFixed( tax, woocommerce_admin_meta_boxes.rounding_precision ) ); } // Set Total $( '#_order_total' ) .val( accounting.formatNumber( line_totals + tax + shipping, woocommerce_admin_meta_boxes.currency_format_num_decimals, '', woocommerce_admin.mon_decimal_point ) ) .change(); $( 'button.save-action' ).click(); } return false; }, save_line_items: function() { var data = { order_id: woocommerce_admin_meta_boxes.post_id, items: $( 'table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]' ).serialize(), action: 'woocommerce_save_order_items', security: woocommerce_admin_meta_boxes.order_item_nonce }; wc_meta_boxes_order_items.block(); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $( '#woocommerce-order-items' ).find( '.inside' ).empty(); $( '#woocommerce-order-items' ).find( '.inside' ).append( response ); wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); wc_meta_boxes_order_items.stupidtable.init(); } }); $( this ).trigger( 'items_saved' ); return false; }, refunds: { do_refund: function() { wc_meta_boxes_order_items.block(); if ( window.confirm( woocommerce_admin_meta_boxes.i18n_do_refund ) ) { var refund_amount = $( 'input#refund_amount' ).val(); var refund_reason = $( 'input#refund_reason' ).val(); // Get line item refunds var line_item_qtys = {}; var line_item_totals = {}; var line_item_tax_totals = {}; $( '.refund input.refund_order_item_qty' ).each(function( index, item ) { if ( $( item ).closest( 'tr' ).data( 'order_item_id' ) ) { if ( item.value ) { line_item_qtys[ $( item ).closest( 'tr' ).data( 'order_item_id' ) ] = item.value; } } }); $( '.refund input.refund_line_total' ).each(function( index, item ) { if ( $( item ).closest( 'tr' ).data( 'order_item_id' ) ) { line_item_totals[ $( item ).closest( 'tr' ).data( 'order_item_id' ) ] = accounting.unformat( item.value, woocommerce_admin.mon_decimal_point ); } }); $( '.refund input.refund_line_tax' ).each(function( index, item ) { if ( $( item ).closest( 'tr' ).data( 'order_item_id' ) ) { var tax_id = $( item ).data( 'tax_id' ); if ( ! line_item_tax_totals[ $( item ).closest( 'tr' ).data( 'order_item_id' ) ] ) { line_item_tax_totals[ $( item ).closest( 'tr' ).data( 'order_item_id' ) ] = {}; } line_item_tax_totals[ $( item ).closest( 'tr' ).data( 'order_item_id' ) ][ tax_id ] = accounting.unformat( item.value, woocommerce_admin.mon_decimal_point ); } }); var data = { action: 'woocommerce_refund_line_items', order_id: woocommerce_admin_meta_boxes.post_id, refund_amount: refund_amount, refund_reason: refund_reason, line_item_qtys: JSON.stringify( line_item_qtys, null, '' ), line_item_totals: JSON.stringify( line_item_totals, null, '' ), line_item_tax_totals: JSON.stringify( line_item_tax_totals, null, '' ), api_refund: $( this ).is( '.do-api-refund' ), restock_refunded_items: $( '#restock_refunded_items:checked' ).length ? 'true' : 'false', security: woocommerce_admin_meta_boxes.order_item_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { if ( true === response.success ) { wc_meta_boxes_order_items.reload_items(); if ( 'fully_refunded' === response.data.status ) { // Redirect to same page for show the refunded status window.location.href = window.location.href; } } else { window.alert( response.data.error ); wc_meta_boxes_order_items.unblock(); } }); } else { wc_meta_boxes_order_items.unblock(); } }, delete_refund: function() { if ( window.confirm( woocommerce_admin_meta_boxes.i18n_delete_refund ) ) { var $refund = $( this ).closest( 'tr.refund' ); var refund_id = $refund.attr( 'data-order_refund_id' ); wc_meta_boxes_order_items.block(); var data = { action: 'woocommerce_delete_refund', refund_id: refund_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function() { wc_meta_boxes_order_items.reload_items(); } }); } return false; }, input_changed: function() { var refund_amount = 0; var $items = $( '.woocommerce_order_items' ).find( 'tr.item, tr.fee, tr.shipping' ); $items.each(function() { var $row = $( this ); var refund_cost_fields = $row.find( '.refund input:not(.refund_order_item_qty)' ); refund_cost_fields.each(function( index, el ) { refund_amount += parseFloat( accounting.unformat( $( el ).val() || 0, woocommerce_admin.mon_decimal_point ) ); }); }); $( '#refund_amount' ) .val( accounting.formatNumber( refund_amount, woocommerce_admin_meta_boxes.currency_format_num_decimals, '', woocommerce_admin.mon_decimal_point ) ) .change(); }, amount_changed: function() { var total = accounting.unformat( $( this ).val(), woocommerce_admin.mon_decimal_point ); $( 'button .wc-order-refund-amount .amount' ).text( accounting.formatMoney( total, { symbol: woocommerce_admin_meta_boxes.currency_format_symbol, decimal: woocommerce_admin_meta_boxes.currency_format_decimal_sep, thousand: woocommerce_admin_meta_boxes.currency_format_thousand_sep, precision: woocommerce_admin_meta_boxes.currency_format_num_decimals, format: woocommerce_admin_meta_boxes.currency_format } ) ); }, // When the refund qty is changed, increase or decrease costs refund_quantity_changed: function() { var $row = $( this ).closest( 'tr.item' ); var qty = $row.find( 'input.quantity' ).val(); var refund_qty = $( this ).val(); var line_total = $( 'input.line_total', $row ); var refund_line_total = $( 'input.refund_line_total', $row ); // Totals var unit_total = accounting.unformat( line_total.attr( 'data-total' ), woocommerce_admin.mon_decimal_point ) / qty; refund_line_total.val( parseFloat( accounting.formatNumber( unit_total * refund_qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ).change(); // Taxes $( '.refund_line_tax', $row ).each( function() { var $refund_line_total_tax = $( this ); var tax_id = $refund_line_total_tax.data( 'tax_id' ); var line_total_tax = $( 'input.line_tax[data-tax_id="' + tax_id + '"]', $row ); var unit_total_tax = accounting.unformat( line_total_tax.data( 'total_tax' ), woocommerce_admin.mon_decimal_point ) / qty; if ( 0 < unit_total_tax ) { $refund_line_total_tax.val( parseFloat( accounting.formatNumber( unit_total_tax * refund_qty, woocommerce_admin_meta_boxes.rounding_precision, '' ) ) .toString() .replace( '.', woocommerce_admin.mon_decimal_point ) ).change(); } else { $refund_line_total_tax.val( 0 ).change(); } }); // Restock checkbox if ( refund_qty > 0 ) { $( '#restock_refunded_items' ).closest( 'tr' ).show(); } else { $( '#restock_refunded_items' ).closest( 'tr' ).hide(); $( '.woocommerce_order_items input.refund_order_item_qty' ).each( function() { if ( $( this ).val() > 0 ) { $( '#restock_refunded_items' ).closest( 'tr' ).show(); } }); } $( this ).trigger( 'refund_quantity_changed' ); } }, item_meta: { add: function() { var $button = $( this ); var $item = $button.closest( 'tr.item, tr.shipping' ); var data = { order_item_id: $item.attr( 'data-order_item_id' ), action: 'woocommerce_add_order_item_meta', security: woocommerce_admin_meta_boxes.order_item_nonce }; wc_meta_boxes_order_items.block(); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $item.find('tbody.meta_items').append( response ); wc_meta_boxes_order_items.unblock(); } }); return false; }, remove: function() { if ( window.confirm( woocommerce_admin_meta_boxes.remove_item_meta ) ) { var $row = $( this ).closest( 'tr' ); var data = { meta_id: $row.attr( 'data-meta_id' ), action: 'woocommerce_remove_order_item_meta', security: woocommerce_admin_meta_boxes.order_item_nonce }; wc_meta_boxes_order_items.block(); $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function() { $row.remove(); wc_meta_boxes_order_items.unblock(); } }); } return false; } }, select_row: function() { var $row = false; if ( $( this ).is( 'tr' ) ) { $row = $( this ); } else { $row = $( this ).closest( 'tr' ); } var $table = $( this ).closest( 'table' ); if ( $row.is( '.selected' ) ) { $row.removeClass( 'selected' ); } else { $row.addClass( 'selected' ); } var $rows = $table.find( 'tr.selected' ); if ( $rows.length ) { $( 'div.wc-order-item-bulk-edit' ).slideDown(); var selected_product = false; $rows.each( function() { if ( $( this ).is( 'tr.item' ) ) { selected_product = true; } } ); if ( selected_product ) { $( '.bulk-increase-stock, .bulk-decrease-stock' ).show(); } else { $( '.bulk-increase-stock, .bulk-decrease-stock' ).hide(); } } else { $( 'div.wc-order-item-bulk-edit' ).slideUp(); } }, select_row_child: function( e ) { e.stopPropagation(); }, bulk_actions: { do_delete: function( e ) { e.preventDefault(); var $table = $( 'table.woocommerce_order_items' ); var $rows = $table.find( 'tr.selected' ); if ( $rows.length && window.confirm( woocommerce_admin_meta_boxes.remove_item_notice ) ) { wc_meta_boxes_order_items.block(); var delete_items = []; var delete_refunds = []; var deferred = []; $.map( $rows, function( row ) { var $row = $( row ); if ( $row.is( '.refund' ) ) { delete_refunds.push( parseInt( $( $row ).data( 'order_refund_id' ), 10 ) ); } else { delete_items.push( parseInt( $( $row ).data( 'order_item_id' ), 10 ) ); } return ; }); if ( delete_items.length ) { deferred.push( $.ajax({ url : woocommerce_admin_meta_boxes.ajax_url, data: { order_item_ids: delete_items, action: 'woocommerce_remove_order_item', security: woocommerce_admin_meta_boxes.order_item_nonce }, type: 'POST' } ) ); } if ( delete_refunds.length ) { deferred.push( $.ajax( { url : woocommerce_admin_meta_boxes.ajax_url, data: { action: 'woocommerce_delete_refund', refund_id: delete_refunds, security: woocommerce_admin_meta_boxes.order_item_nonce }, type: 'POST' } ) ); } if ( deferred ) { $.when.apply( $, deferred ).done( function() { wc_meta_boxes_order_items.reload_items(); wc_meta_boxes_order_items.unblock(); } ); } else { wc_meta_boxes_order_items.unblock(); } } }, do_increase_stock: function( e ) { e.preventDefault(); wc_meta_boxes_order_items.block(); var $table = $( 'table.woocommerce_order_items' ); var $rows = $table.find( 'tr.selected' ); var quantities = {}; var item_ids = $.map( $rows, function( $row ) { return parseInt( $( $row ).data( 'order_item_id' ), 10 ); }); $rows.each(function() { if ( $( this ).find( 'input.quantity' ).length ) { quantities[ $( this ).attr( 'data-order_item_id' ) ] = $( this ).find( 'input.quantity' ).val(); } }); var data = { order_id: woocommerce_admin_meta_boxes.post_id, order_item_ids: item_ids, order_item_qty: quantities, action: 'woocommerce_increase_order_item_stock', security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { window.alert( response ); wc_meta_boxes_order_items.unblock(); } }); }, do_reduce_stock: function( e ) { e.preventDefault(); wc_meta_boxes_order_items.block(); var $table = $( 'table.woocommerce_order_items' ); var $rows = $table.find( 'tr.selected' ); var quantities = {}; var item_ids = $.map( $rows, function( $row ) { return parseInt( $( $row ).data( 'order_item_id' ), 10 ); }); $rows.each(function() { if ( $( this ).find( 'input.quantity' ).length ) { quantities[ $( this ).attr( 'data-order_item_id' ) ] = $( this ).find( 'input.quantity' ).val(); } }); var data = { order_id: woocommerce_admin_meta_boxes.post_id, order_item_ids: item_ids, order_item_qty: quantities, action: 'woocommerce_reduce_order_item_stock', security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { window.alert( response ); wc_meta_boxes_order_items.unblock(); } }); } }, backbone: { init: function( e, target ) { if ( 'wc-modal-add-products' === target ) { $( document.body ).trigger( 'wc-enhanced-select-init' ); } }, response: function( e, target, data ) { if ( 'wc-modal-add-tax' === target ) { var rate_id = data.add_order_tax; var manual_rate_id = ''; if ( data.manual_tax_rate_id ) { manual_rate_id = data.manual_tax_rate_id; } wc_meta_boxes_order_items.backbone.add_tax( rate_id, manual_rate_id ); } if ( 'wc-modal-add-products' === target ) { wc_meta_boxes_order_items.backbone.add_item( data.add_order_items ); } }, add_item: function( add_item_ids ) { add_item_ids = add_item_ids.split( ',' ); if ( add_item_ids ) { var count = add_item_ids.length; wc_meta_boxes_order_items.block(); $.each( add_item_ids, function( index, value ) { var data = { action: 'woocommerce_add_order_item', item_to_add: value, order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { $( 'table.woocommerce_order_items tbody#order_line_items' ).append( response ); if ( !--count ) { wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); } }); }); } }, add_tax: function( rate_id, manual_rate_id ) { if ( manual_rate_id ) { rate_id = manual_rate_id; } if ( ! rate_id ) { return false; } var rates = $( '.order-tax-id' ).map( function() { return $( this ).val(); }).get(); // Test if already exists if ( -1 === $.inArray( rate_id, rates ) ) { wc_meta_boxes_order_items.block(); var data = { action: 'woocommerce_add_order_tax', rate_id: rate_id, order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.order_item_nonce }; $.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { $( '#woocommerce-order-items' ).find( '.inside' ).empty(); $( '#woocommerce-order-items' ).find( '.inside' ).append( response ); wc_meta_boxes_order.init_tiptip(); wc_meta_boxes_order_items.unblock(); wc_meta_boxes_order_items.stupidtable.init(); } }); } else { window.alert( woocommerce_admin_meta_boxes.i18n_tax_rate_already_exists ); } } }, stupidtable: { init: function() { $( '.woocommerce_order_items' ).stupidtable(); $( '.woocommerce_order_items' ).on( 'aftertablesort', this.add_arrows ); }, add_arrows: function( event, data ) { var th = $( this ).find( 'th' ); var arrow = data.direction === 'asc' ? '↑' : '↓'; var index = data.column; th.find( '.wc-arrow' ).remove(); th.eq( index ).append( '' + arrow + '' ); } } }; /** * Order Notes Panel */ var wc_meta_boxes_order_notes = { init: function() { $( '#woocommerce-order-notes' ) .on( 'click', 'a.add_note', this.add_order_note ) .on( 'click', 'a.delete_note', this.delete_order_note ); }, add_order_note: function() { if ( ! $( 'textarea#add_order_note' ).val() ) { return; } $( '#woocommerce-order-notes' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { action: 'woocommerce_add_order_note', post_id: woocommerce_admin_meta_boxes.post_id, note: $( 'textarea#add_order_note' ).val(), note_type: $( 'select#order_note_type' ).val(), security: woocommerce_admin_meta_boxes.add_order_note_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { $( 'ul.order_notes' ).prepend( response ); $( '#woocommerce-order-notes' ).unblock(); $( '#add_order_note' ).val( '' ); }); return false; }, delete_order_note: function() { if ( window.confirm( woocommerce_admin_meta_boxes.i18n_delete_note ) ) { var note = $( this ).closest( 'li.note' ); $( note ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { action: 'woocommerce_delete_order_note', note_id: $( note ).attr( 'rel' ), security: woocommerce_admin_meta_boxes.delete_order_note_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function() { $( note ).remove(); }); } return false; } }; /** * Order Downloads Panel */ var wc_meta_boxes_order_downloads = { init: function() { $( '.order_download_permissions' ) .on( 'click', 'button.grant_access', this.grant_access ) .on( 'click', 'button.revoke_access', this.revoke_access ); }, grant_access: function() { var products = $( '#grant_access_id' ).val(); if ( ! products ) { return; } $( '.order_download_permissions' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { action: 'woocommerce_grant_access_to_download', product_ids: products, loop: $('.order_download_permissions .wc-metabox').length, order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.grant_access_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { if ( response ) { $( '.order_download_permissions .wc-metaboxes' ).append( response ); } else { window.alert( woocommerce_admin_meta_boxes.i18n_download_permission_fail ); } $( document.body ).trigger( 'wc-init-datepickers' ); $( '#grant_access_id' ).val( '' ).change(); $( '.order_download_permissions' ).unblock(); }); return false; }, revoke_access: function () { if ( window.confirm( woocommerce_admin_meta_boxes.i18n_permission_revoke ) ) { var el = $( this ).parent().parent(); var product = $( this ).attr( 'rel' ).split( ',' )[0]; var file = $( this ).attr( 'rel' ).split( ',' )[1]; var permission_id = $( this ).data( 'permission_id' ); if ( product > 0 ) { $( el ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { action: 'woocommerce_revoke_access_to_download', product_id: product, download_id: file, permission_id: permission_id, order_id: woocommerce_admin_meta_boxes.post_id, security: woocommerce_admin_meta_boxes.revoke_access_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function() { // Success $( el ).fadeOut( '300', function () { $( el ).remove(); }); }); } else { $( el ).fadeOut( '300', function () { $( el ).remove(); }); } } return false; } }; wc_meta_boxes_order.init(); wc_meta_boxes_order_items.init(); wc_meta_boxes_order_notes.init(); wc_meta_boxes_order_downloads.init(); }); assets/js/admin/backbone-modal.min.js000066600000004037152133032050013532 0ustar00!function(a,b,c){"use strict";a.fn.WCBackboneModal=function(b){return this.each(function(){new a.WCBackboneModal(a(this),b)})},a.WCBackboneModal=function(b,c){var d=a.extend({},a.WCBackboneModal.defaultOptions,c);d.template&&new a.WCBackboneModal.View({target:d.template,string:d.variable})},a.WCBackboneModal.defaultOptions={template:"",variable:{}},a.WCBackboneModal.View=b.View.extend({tagName:"div",id:"wc-backbone-modal-dialog",_target:void 0,_string:void 0,events:{"click .modal-close":"closeButton","click #btn-ok":"addButton","touchstart #btn-ok":"addButton",keydown:"keyboardActions"},resizeContent:function(){var b=a(".wc-backbone-modal-content").find("article"),c=.75*a(window).height();b.css({"max-height":c+"px"})},initialize:function(b){var d=this;this._target=b.target,this._string=b.string,c.bindAll(this,"render"),this.render(),a(window).resize(function(){d.resizeContent()})},render:function(){var b=wp.template(this._target);this.$el.attr("tabindex","0").append(b(this._string)),a(document.body).css({overflow:"hidden"}).append(this.$el),this.resizeContent(),a(document.body).trigger("wc_backbone_modal_loaded",this._target)},closeButton:function(b){b.preventDefault(),a(document.body).trigger("wc_backbone_modal_before_remove",this._target),this.undelegateEvents(),a(document).off("focusin"),a(document.body).css({overflow:"auto"}),this.remove(),a(document.body).trigger("wc_backbone_modal_removed",this._target)},addButton:function(b){a(document.body).trigger("wc_backbone_modal_response",[this._target,this.getFormData()]),this.closeButton(b)},getFormData:function(){var b={};return a(document.body).trigger("wc_backbone_modal_before_update",this._target),a.each(a("form",this.$el).serializeArray(),function(c,d){b.hasOwnProperty(d.name)?(b[d.name]=a.makeArray(b[d.name]),b[d.name].push(d.value)):b[d.name]=d.value}),b},keyboardActions:function(a){var b=a.keyCode||a.which;13!==b||a.target.tagName&&("input"===a.target.tagName.toLowerCase()||"textarea"===a.target.tagName.toLowerCase())||this.addButton(a),27===b&&this.closeButton(a)}})}(jQuery,Backbone,_);assets/js/admin/api-keys.js000066600000007546152133032050011644 0ustar00/*global jQuery, Backbone, _, woocommerce_admin_api_keys */ (function( $ ) { var APIView = Backbone.View.extend({ /** * Element * * @param {Object} '#key-fields' */ el: $( '#key-fields' ), /** * Events * * @type {Object} */ events: { 'click input#update_api_key': 'saveKey' }, /** * Initialize actions */ initialize: function(){ _.bindAll( this, 'saveKey' ); }, /** * Init jQuery.BlockUI */ block: function() { $( this.el ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, /** * Remove jQuery.BlockUI */ unblock: function() { $( this.el ).unblock(); }, /** * Init TipTip */ initTipTip: function( css_class ) { $( document.body ) .on( 'aftercopy', css_class, function( e ) { if ( true === e.success['text/plain'] ) { $( '#copy-error' ).text( '' ); $( css_class ).tipTip( { 'attribute': 'data-tip', 'activation': 'focus', 'fadeIn': 50, 'fadeOut': 50, 'delay': 0 } ).focus(); } else { $( css_class ).parent().find( 'input' ).focus().select(); $( '#copy-error' ).text( woocommerce_admin_api_keys.clipboard_failed ); } } ) .on( 'click', css_class, function() { if ( ! document.queryCommandSupported( 'copy' ) ) { $( css_class ).parent().find( 'input' ).focus().select(); $( '#copy-error' ).text( woocommerce_admin_api_keys.clipboard_failed ); } } ) .on( 'copy', css_class, function( e ) { $( '#copy-error' ).text( '' ); e.clipboardData.clearData(); e.clipboardData.setData( 'text/plain', $.trim( $( this ).prev( 'input' ).val() ) ); e.preventDefault(); } ); }, /** * Create qrcode * * @param {string} consumer_key * @param {string} consumer_secret */ createQRCode: function( consumer_key, consumer_secret ) { $( '#keys-qrcode' ).qrcode({ text: consumer_key + '|' + consumer_secret, width: 120, height: 120 }); }, /** * Save API Key using ajax * * @param {Object} e */ saveKey: function( e ) { e.preventDefault(); var self = this; self.block(); Backbone.ajax({ method: 'POST', dataType: 'json', url: woocommerce_admin_api_keys.ajax_url, data: { action: 'woocommerce_update_api_key', security: woocommerce_admin_api_keys.update_api_nonce, key_id: $( '#key_id', self.el ).val(), description: $( '#key_description', self.el ).val(), user: $( '#key_user', self.el ).val(), permissions: $( '#key_permissions', self.el ).val() }, success: function( response ) { $( '.wc-api-message', self.el ).remove(); if ( response.success ) { var data = response.data; $( 'h3', self.el ).first().append( '

    ' + data.message + '

    ' ); if ( 0 < data.consumer_key.length && 0 < data.consumer_secret.length ) { $( '#api-keys-options', self.el ).remove(); $( 'p.submit', self.el ).empty().append( data.revoke_url ); var template = wp.template( 'api-keys-template' ); $( 'p.submit', self.el ).before( template({ consumer_key: data.consumer_key, consumer_secret: data.consumer_secret }) ); self.createQRCode( data.consumer_key, data.consumer_secret ); self.initTipTip( '.copy-key' ); self.initTipTip( '.copy-secret' ); } else { $( '#key_description', self.el ).val( data.description ); $( '#key_user', self.el ).val( data.user_id ); $( '#key_permissions', self.el ).val( data.permissions ); } } else { $( 'h3', self.el ).first().append( '

    ' + response.data.message + '

    ' ); } self.unblock(); } }); } }); new APIView(); })( jQuery ); assets/js/admin/wc-shipping-zone-methods.min.js000066600000015622152133032050015540 0ustar00!function(a,b,c,d){a(function(){var e=a(".wc-shipping-zone-methods"),f=a(".wc-shipping-zone-method-rows"),g=a(".wc-shipping-zone-method-save"),h=c.template("wc-shipping-zone-method-row"),i=c.template("wc-shipping-zone-method-row-blank"),j=Backbone.Model.extend({changes:{},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{instance_id:c},a)}),this.changes=b,this.trigger("change:methods")},save:function(){_.size(this.changes)?a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_zone_methods_save_changes",{wc_shipping_zones_nonce:b.wc_shipping_zones_nonce,changes:this.changes,zone_id:b.zone_id},this.onSaveResponse,"json"):l.trigger("saved:methods")},onSaveResponse:function(a,c){"success"===c&&(a.success?(l.set("methods",a.data.methods),l.trigger("change:methods"),l.changes={},l.trigger("saved:methods")):window.alert(b.strings.save_failed))}}),k=Backbone.View.extend({rowTemplate:h,initialize:function(){this.listenTo(this.model,"change:methods",this.setUnloadConfirmation),this.listenTo(this.model,"saved:methods",this.clearUnloadConfirmation),this.listenTo(this.model,"saved:methods",this.render),f.on("change",{view:this},this.updateModelOnChange),f.on("sortupdate",{view:this},this.updateModelOnSort),a(window).on("beforeunload",{view:this},this.unloadConfirmation),g.on("click",{view:this},this.onSubmit),a(document.body).on("click",".wc-shipping-zone-method-settings",{view:this},this.onConfigureShippingMethod),a(document.body).on("click",".wc-shipping-zone-add-method",{view:this},this.onAddShippingMethod),a(document.body).on("wc_backbone_modal_response",this.onConfigureShippingMethodSubmitted),a(document.body).on("wc_backbone_modal_response",this.onAddShippingMethodSubmitted),a(document.body).on("change",".wc-shipping-zone-method-selector select",this.onChangeShippingMethodSelector)},block:function(){a(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(this.el).unblock()},render:function(){var c=_.indexBy(this.model.get("methods"),"instance_id"),d=this;this.$el.empty(),this.unblock(),_.size(c)?(c=_.sortBy(c,function(a){return parseInt(a.method_order,10)}),a.each(c,function(a,c){"yes"===c.enabled?c.enabled_icon=''+b.strings.yes+"":c.enabled_icon=''+b.strings.no+"",d.$el.append(d.rowTemplate(c));var e=d.$el.find('tr[data-id="'+c.instance_id+'"]');c.has_settings||(e.find(".wc-shipping-zone-method-title a").replaceWith(e.find(".wc-shipping-zone-method-title").text()),e.find(".wc-shipping-zone-method-settings").remove())}),this.$el.find(".wc-shipping-zone-method-delete").on("click",{view:this},this.onDeleteRow),this.$el.find(".wc-shipping-zone-method-enabled a").on("click",{view:this},this.onToggleEnabled)):d.$el.append(i),this.initTooltips()},initTooltips:function(){a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),a(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:50})},onSubmit:function(a){a.data.view.block(),a.data.view.model.save(),a.preventDefault()},onDeleteRow:function(b){var c=b.data.view,d=c.model,e=_.indexBy(d.get("methods"),"instance_id"),f={},g=a(this).closest("tr").data("id");b.preventDefault(),delete e[g],f[g]=_.extend(f[g]||{},{deleted:"deleted"}),d.set("methods",e),d.logChanges(f),c.render()},onToggleEnabled:function(b){var c=b.data.view,d=a(b.target),e=c.model,f=_.indexBy(e.get("methods"),"instance_id"),g=d.closest("tr").data("id"),h="yes"===d.closest("tr").data("enabled")?"no":"yes",i={};b.preventDefault(),f[g].enabled=h,i[g]=_.extend(i[g]||{},{enabled:h}),e.set("methods",f),e.logChanges(i),c.render()},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,g.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,g.attr("disabled","disabled")},unloadConfirmation:function(a){if(a.data.view.needsUnloadConfirm)return a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val(),h=_.indexBy(c.get("methods"),"instance_id"),i={};h[e][f]!==g&&(i[e]={},i[e][f]=g,h[e][f]=g),c.logChanges(i)},updateModelOnSort:function(a){var b=a.data.view,c=b.model,d=_.indexBy(c.get("methods"),"instance_id"),f={};_.each(d,function(a){var b=parseInt(a.method_order,10),c=parseInt(e.find('tr[data-id="'+a.instance_id+'"]').index()+1,10);b!==c&&(f[a.instance_id]=_.extend(f[a.instance_id]||{},{method_order:c}))}),_.size(f)&&c.logChanges(f)},onConfigureShippingMethod:function(b){var c=a(this).closest("tr").data("id"),d=b.data.view.model,e=_.indexBy(d.get("methods"),"instance_id"),f=e[c];return!f.settings_html||(b.preventDefault(),a(this).WCBackboneModal({template:"wc-modal-shipping-method-settings",variable:{instance_id:c,method:f},data:{instance_id:c,method:f}}),void a(document.body).trigger("init_tooltips"))},onConfigureShippingMethodSubmitted:function(c,e,f){"wc-modal-shipping-method-settings"===e&&(m.block(),a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_zone_methods_save_settings",{wc_shipping_zones_nonce:b.wc_shipping_zones_nonce,instance_id:f.instance_id,data:f},function(c,d){"success"===d&&c.success?(a("table.wc-shipping-zone-methods").parent().find("#woocommerce_errors").remove(),c.data.errors.length>0&&this.showErrors(c.data.errors),_.size(m.model.changes)?m.model.save():m.model.onSaveResponse(c,d)):(window.alert(b.strings.save_failed),m.unblock())},"json"))},showErrors:function(b){var c='
    ';a(b).each(function(a,b){c=c+"

    "+b+"

    "}),c+="
    ",a("table.wc-shipping-zone-methods").before(c)},onAddShippingMethod:function(c){c.preventDefault(),a(this).WCBackboneModal({template:"wc-modal-add-shipping-method",variable:{zone_id:b.zone_id}}),a(".wc-shipping-zone-method-selector select").change()},onAddShippingMethodSubmitted:function(c,e,f){"wc-modal-add-shipping-method"===e&&(m.block(),a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_zone_add_method",{wc_shipping_zones_nonce:b.wc_shipping_zones_nonce,method_id:f.add_method_id,zone_id:b.zone_id},function(a,b){"success"===b&&a.success&&(_.size(m.model.changes)?m.model.save():(m.model.set("methods",a.data.methods),m.model.trigger("change:methods"),m.model.changes={},m.model.trigger("saved:methods"))),m.unblock()},"json"))},onChangeShippingMethodSelector:function(){var b=a(this).find("option:selected").data("description");a(this).parent().find(".wc-shipping-zone-method-description").remove(),a(this).after('

    '+b+"

    "),a(this).closest("article").height(a(this).parent().height())}}),l=new j({methods:b.methods}),m=new k({model:l,el:f});m.render(),f.sortable({items:"tr",cursor:"move",axis:"y",handle:"td.wc-shipping-zone-method-sort",scrollSensitivity:40})})}(jQuery,shippingZoneMethodsLocalizeScript,wp,ajaxurl);assets/js/admin/product-ordering.js000066600000005060152133032050013376 0ustar00/*global ajaxurl */ /** * Based on Simple Page Ordering by 10up (https://wordpress.org/extend/plugins/simple-page-ordering/) * * Modified - products have no children (non hierarchical) */ jQuery( function( $ ) { $( 'table.widefat tbody th, table.widefat tbody td' ).css( 'cursor', 'move' ); $( 'table.widefat tbody' ).sortable({ items: 'tr:not(.inline-edit-row)', cursor: 'move', axis: 'y', containment: 'table.widefat', scrollSensitivity: 40, helper: function( event, ui ) { ui.each( function() { $( this ).width( $( this ).width() ); }); return ui; }, start: function( event, ui ) { ui.placeholder.children().each( function() { var $original = ui.item.children().eq( ui.placeholder.children().index( this ) ), $this = $( this ); $.each( $original[0].attributes, function( k, attr ) { $this.attr( attr.name, attr.value ); }); }); if ( ! ui.item.hasClass( 'alternate' ) ) { ui.item.css( 'background-color', '#ffffff' ); } ui.item.children( 'td, th' ).css( 'border-bottom-width', '0' ); ui.item.css( 'outline', '1px solid #dfdfdf' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); ui.item.children( 'td,th' ).css( 'border-bottom-width', '1px' ); }, update: function( event, ui ) { $( 'table.widefat tbody th, table.widefat tbody td' ).css( 'cursor', 'default' ); $( 'table.widefat tbody' ).sortable( 'disable' ); var postid = ui.item.find( '.check-column input' ).val(); var prevpostid = ui.item.prev().find( '.check-column input' ).val(); var nextpostid = ui.item.next().find( '.check-column input' ).val(); // Show Spinner ui.item.find( '.check-column input' ).hide().after( 'processing' ); // Go do the sorting stuff via ajax $.post( ajaxurl, { action: 'woocommerce_product_ordering', id: postid, previd: prevpostid, nextid: nextpostid }, function( response ) { $.each( response, function( key, value ) { $( '#inline_' + key + ' .menu_order' ).html( value ); }); ui.item.find( '.check-column input' ).show().siblings( 'img' ).remove(); $( 'table.widefat tbody th, table.widefat tbody td' ).css( 'cursor', 'move' ); $( 'table.widefat tbody' ).sortable( 'enable' ); }); // fix cell colors $( 'table.widefat tbody tr' ).each( function() { var i = $( 'table.widefat tbody tr' ).index( this ); if ( i%2 === 0 ) { $( this ).addClass( 'alternate' ); } else { $( this ).removeClass( 'alternate' ); } }); } }); }); assets/js/admin/meta-boxes-coupon.min.js000066600000000445152133032050014240 0ustar00jQuery(function(a){var b={init:function(){a("select#discount_type").on("change",this.type_options).change()},type_options:function(){var b=a(this).val();"fixed_product"===b||"percent_product"===b?a(".limit_usage_to_x_items_field").show():a(".limit_usage_to_x_items_field").hide()}};b.init()});assets/js/admin/woocommerce_admin.js000066600000022734152133032050013605 0ustar00/* global woocommerce_admin */ /** * WooCommerce Admin JS */ jQuery( function ( $ ) { // Field validation error tips $( document.body ) .on( 'wc_add_error_tip', function( e, element, error_type ) { var offset = element.position(); if ( element.parent().find( '.wc_error_tip' ).length === 0 ) { element.after( '
    ' + woocommerce_admin[error_type] + '
    ' ); element.parent().find( '.wc_error_tip' ) .css( 'left', offset.left + element.width() - ( element.width() / 2 ) - ( $( '.wc_error_tip' ).width() / 2 ) ) .css( 'top', offset.top + element.height() ) .fadeIn( '100' ); } }) .on( 'wc_remove_error_tip', function( e, element, error_type ) { element.parent().find( '.wc_error_tip.' + error_type ).fadeOut( '100', function() { $( this ).remove(); } ); }) .on( 'click', function() { $( '.wc_error_tip' ).fadeOut( '100', function() { $( this ).remove(); } ); }) .on( 'blur', '.wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]', function() { $( '.wc_error_tip' ).fadeOut( '100', function() { $( this ).remove(); } ); }) .on( 'change', '.wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]', function() { var regex; if ( $( this ).is( '.wc_input_price' ) || $( this ).is( '#refund_amount' ) ) { regex = new RegExp( '[^\-0-9\%\\' + woocommerce_admin.mon_decimal_point + ']+', 'gi' ); } else { regex = new RegExp( '[^\-0-9\%\\' + woocommerce_admin.decimal_point + ']+', 'gi' ); } var value = $( this ).val(); var newvalue = value.replace( regex, '' ); if ( value !== newvalue ) { $( this ).val( newvalue ); } }) .on( 'keyup', '.wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]', function() { var regex, error; if ( $( this ).is( '.wc_input_price' ) || $( this ).is( '#refund_amount' ) ) { regex = new RegExp( '[^\-0-9\%\\' + woocommerce_admin.mon_decimal_point + ']+', 'gi' ); error = 'i18n_mon_decimal_error'; } else if ( $( this ).is( '.wc_input_country_iso' ) ) { regex = new RegExp( '([^A-Z])+|(.){3,}', 'im' ); error = 'i18n_country_iso_error'; } else { regex = new RegExp( '[^\-0-9\%\\' + woocommerce_admin.decimal_point + ']+', 'gi' ); error = 'i18n_decimal_error'; } var value = $( this ).val(); var newvalue = value.replace( regex, '' ); if ( value !== newvalue ) { $( document.body ).triggerHandler( 'wc_add_error_tip', [ $( this ), error ] ); } else { $( document.body ).triggerHandler( 'wc_remove_error_tip', [ $( this ), error ] ); } }) .on( 'change', '#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]', function() { var sale_price_field = $( this ), regular_price_field; if( sale_price_field.attr( 'name' ).indexOf( 'variable' ) !== -1 ) { regular_price_field = sale_price_field.parents( '.variable_pricing' ).find( '.wc_input_price[name^=variable_regular_price]' ); } else { regular_price_field = $( '#_regular_price' ); } var sale_price = parseFloat( window.accounting.unformat( sale_price_field.val(), woocommerce_admin.mon_decimal_point ) ); var regular_price = parseFloat( window.accounting.unformat( regular_price_field.val(), woocommerce_admin.mon_decimal_point ) ); if ( sale_price >= regular_price ) { $( this ).val( '' ); } }) .on( 'keyup', '#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]', function() { var sale_price_field = $( this ), regular_price_field; if( sale_price_field.attr( 'name' ).indexOf( 'variable' ) !== -1 ) { regular_price_field = sale_price_field.parents( '.variable_pricing' ).find( '.wc_input_price[name^=variable_regular_price]' ); } else { regular_price_field = $( '#_regular_price' ); } var sale_price = parseFloat( window.accounting.unformat( sale_price_field.val(), woocommerce_admin.mon_decimal_point ) ); var regular_price = parseFloat( window.accounting.unformat( regular_price_field.val(), woocommerce_admin.mon_decimal_point ) ); if ( sale_price >= regular_price ) { $( document.body ).triggerHandler( 'wc_add_error_tip', [ $(this), 'i18_sale_less_than_regular_error' ] ); } else { $( document.body ).triggerHandler( 'wc_remove_error_tip', [ $(this), 'i18_sale_less_than_regular_error' ] ); } }) .on( 'init_tooltips', function() { var tiptip_args = { 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 200 }; $( '.tips, .help_tip, .woocommerce-help-tip' ).tipTip( tiptip_args ); // Add tiptip to parent element for widefat tables $( '.parent-tips' ).each( function() { $( this ).closest( 'a, th' ).attr( 'data-tip', $( this ).data( 'tip' ) ).tipTip( tiptip_args ).css( 'cursor', 'help' ); }); }); // Tooltips $( document.body ).trigger( 'init_tooltips' ); // wc_input_table tables $( '.wc_input_table.sortable tbody' ).sortable({ items: 'tr', cursor: 'move', axis: 'y', scrollSensitivity: 40, forcePlaceholderSize: true, helper: 'clone', opacity: 0.65, placeholder: 'wc-metabox-sortable-placeholder', start: function( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); } }); $( '.wc_input_table .remove_rows' ).click( function() { var $tbody = $( this ).closest( '.wc_input_table' ).find( 'tbody' ); if ( $tbody.find( 'tr.current' ).length > 0 ) { var $current = $tbody.find( 'tr.current' ); $current.each( function() { $( this ).remove(); }); } return false; }); var controlled = false; var shifted = false; var hasFocus = false; $( document.body ).bind( 'keyup keydown', function( e ) { shifted = e.shiftKey; controlled = e.ctrlKey || e.metaKey; }); $( '.wc_input_table' ).on( 'focus click', 'input', function( e ) { var $this_table = $( this ).closest( 'table, tbody' ); var $this_row = $( this ).closest( 'tr' ); if ( ( e.type === 'focus' && hasFocus !== $this_row.index() ) || ( e.type === 'click' && $( this ).is( ':focus' ) ) ) { hasFocus = $this_row.index(); if ( ! shifted && ! controlled ) { $( 'tr', $this_table ).removeClass( 'current' ).removeClass( 'last_selected' ); $this_row.addClass( 'current' ).addClass( 'last_selected' ); } else if ( shifted ) { $( 'tr', $this_table ).removeClass( 'current' ); $this_row.addClass( 'selected_now' ).addClass( 'current' ); if ( $( 'tr.last_selected', $this_table ).length > 0 ) { if ( $this_row.index() > $( 'tr.last_selected', $this_table ).index() ) { $( 'tr', $this_table ).slice( $( 'tr.last_selected', $this_table ).index(), $this_row.index() ).addClass( 'current' ); } else { $( 'tr', $this_table ).slice( $this_row.index(), $( 'tr.last_selected', $this_table ).index() + 1 ).addClass( 'current' ); } } $( 'tr', $this_table ).removeClass( 'last_selected' ); $this_row.addClass( 'last_selected' ); } else { $( 'tr', $this_table ).removeClass( 'last_selected' ); if ( controlled && $( this ).closest( 'tr' ).is( '.current' ) ) { $this_row.removeClass( 'current' ); } else { $this_row.addClass( 'current' ).addClass( 'last_selected' ); } } $( 'tr', $this_table ).removeClass( 'selected_now' ); } }).on( 'blur', 'input', function() { hasFocus = false; }); // Additional cost and Attribute term tables $( '.woocommerce_page_wc-settings .shippingrows tbody tr:even, table.attributes-table tbody tr:nth-child(odd)' ).addClass( 'alternate' ); // Show order items on orders page $( document.body ).on( 'click', '.show_order_items', function() { $( this ).closest( 'td' ).find( 'table' ).toggle(); return false; }); // Select availability $( 'select.availability' ).change( function() { if ( $( this ).val() === 'all' ) { $( this ).closest( 'tr' ).next( 'tr' ).hide(); } else { $( this ).closest( 'tr' ).next( 'tr' ).show(); } }).change(); // Hidden options $( '.hide_options_if_checked' ).each( function() { $( this ).find( 'input:eq(0)' ).change( function() { if ( $( this ).is( ':checked' ) ) { $( this ).closest( 'fieldset, tr' ).nextUntil( '.hide_options_if_checked, .show_options_if_checked', '.hidden_option' ).hide(); } else { $( this ).closest( 'fieldset, tr' ).nextUntil( '.hide_options_if_checked, .show_options_if_checked', '.hidden_option' ).show(); } }).change(); }); $( '.show_options_if_checked' ).each( function() { $( this ).find( 'input:eq(0)' ).change( function() { if ( $( this ).is( ':checked' ) ) { $( this ).closest( 'fieldset, tr' ).nextUntil( '.hide_options_if_checked, .show_options_if_checked', '.hidden_option' ).show(); } else { $( this ).closest( 'fieldset, tr' ).nextUntil( '.hide_options_if_checked, .show_options_if_checked', '.hidden_option' ).hide(); } }).change(); }); // Demo store notice $( 'input#woocommerce_demo_store' ).change(function() { if ( $( this ).is( ':checked' ) ) { $( '#woocommerce_demo_store_notice' ).closest( 'tr' ).show(); } else { $( '#woocommerce_demo_store_notice' ).closest( 'tr' ).hide(); } }).change(); // Attribute term table $( 'table.attributes-table tbody tr:nth-child(odd)' ).addClass( 'alternate' ); // Load videos when help button is clicked. $( '#contextual-help-link' ).on( 'click', function() { var frame = $( '#tab-panel-woocommerce_101_tab iframe' ); frame.attr( 'src', frame.data( 'src' ) ); }); }); assets/js/admin/api-keys.min.js000066600000004354152133032050012420 0ustar00!function(a){var b=Backbone.View.extend({el:a("#key-fields"),events:{"click input#update_api_key":"saveKey"},initialize:function(){_.bindAll(this,"saveKey")},block:function(){a(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(this.el).unblock()},initTipTip:function(b){a(document.body).on("aftercopy",b,function(c){!0===c.success["text/plain"]?(a("#copy-error").text(""),a(b).tipTip({attribute:"data-tip",activation:"focus",fadeIn:50,fadeOut:50,delay:0}).focus()):(a(b).parent().find("input").focus().select(),a("#copy-error").text(woocommerce_admin_api_keys.clipboard_failed))}).on("click",b,function(){document.queryCommandSupported("copy")||(a(b).parent().find("input").focus().select(),a("#copy-error").text(woocommerce_admin_api_keys.clipboard_failed))}).on("copy",b,function(b){a("#copy-error").text(""),b.clipboardData.clearData(),b.clipboardData.setData("text/plain",a.trim(a(this).prev("input").val())),b.preventDefault()})},createQRCode:function(b,c){a("#keys-qrcode").qrcode({text:b+"|"+c,width:120,height:120})},saveKey:function(b){b.preventDefault();var c=this;c.block(),Backbone.ajax({method:"POST",dataType:"json",url:woocommerce_admin_api_keys.ajax_url,data:{action:"woocommerce_update_api_key",security:woocommerce_admin_api_keys.update_api_nonce,key_id:a("#key_id",c.el).val(),description:a("#key_description",c.el).val(),user:a("#key_user",c.el).val(),permissions:a("#key_permissions",c.el).val()},success:function(b){if(a(".wc-api-message",c.el).remove(),b.success){var d=b.data;if(a("h3",c.el).first().append('

    '+d.message+"

    "),0

    '+b.data.message+"

    ");c.unblock()}})}});new b}(jQuery);assets/js/admin/wc-enhanced-select.js000066600000015533152133032050013546 0ustar00/*global wc_enhanced_select_params */ jQuery( function( $ ) { function getEnhancedSelectFormatString() { var formatString = { formatMatches: function( matches ) { if ( 1 === matches ) { return wc_enhanced_select_params.i18n_matches_1; } return wc_enhanced_select_params.i18n_matches_n.replace( '%qty%', matches ); }, formatNoMatches: function() { return wc_enhanced_select_params.i18n_no_matches; }, formatAjaxError: function() { return wc_enhanced_select_params.i18n_ajax_error; }, formatInputTooShort: function( input, min ) { var number = min - input.length; if ( 1 === number ) { return wc_enhanced_select_params.i18n_input_too_short_1; } return wc_enhanced_select_params.i18n_input_too_short_n.replace( '%qty%', number ); }, formatInputTooLong: function( input, max ) { var number = input.length - max; if ( 1 === number ) { return wc_enhanced_select_params.i18n_input_too_long_1; } return wc_enhanced_select_params.i18n_input_too_long_n.replace( '%qty%', number ); }, formatSelectionTooBig: function( limit ) { if ( 1 === limit ) { return wc_enhanced_select_params.i18n_selection_too_long_1; } return wc_enhanced_select_params.i18n_selection_too_long_n.replace( '%qty%', limit ); }, formatLoadMore: function() { return wc_enhanced_select_params.i18n_load_more; }, formatSearching: function() { return wc_enhanced_select_params.i18n_searching; } }; return formatString; } $( document.body ) .on( 'wc-enhanced-select-init', function() { // Regular select boxes $( ':input.wc-enhanced-select, :input.chosen_select' ).filter( ':not(.enhanced)' ).each( function() { var select2_args = $.extend({ minimumResultsForSearch: 10, allowClear: $( this ).data( 'allow_clear' ) ? true : false, placeholder: $( this ).data( 'placeholder' ) }, getEnhancedSelectFormatString() ); $( this ).select2( select2_args ).addClass( 'enhanced' ); }); $( ':input.wc-enhanced-select-nostd, :input.chosen_select_nostd' ).filter( ':not(.enhanced)' ).each( function() { var select2_args = $.extend({ minimumResultsForSearch: 10, allowClear: true, placeholder: $( this ).data( 'placeholder' ) }, getEnhancedSelectFormatString() ); $( this ).select2( select2_args ).addClass( 'enhanced' ); }); // Ajax product search box $( ':input.wc-product-search' ).filter( ':not(.enhanced)' ).each( function() { var select2_args = { allowClear: $( this ).data( 'allow_clear' ) ? true : false, placeholder: $( this ).data( 'placeholder' ), minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3', escapeMarkup: function( m ) { return m; }, ajax: { url: wc_enhanced_select_params.ajax_url, dataType: 'json', quietMillis: 250, data: function( term ) { return { term: term, action: $( this ).data( 'action' ) || 'woocommerce_json_search_products_and_variations', security: wc_enhanced_select_params.search_products_nonce, exclude: $( this ).data( 'exclude' ), include: $( this ).data( 'include' ), limit: $( this ).data( 'limit' ) }; }, results: function( data ) { var terms = []; if ( data ) { $.each( data, function( id, text ) { terms.push( { id: id, text: text } ); }); } return { results: terms }; }, cache: true } }; if ( $( this ).data( 'multiple' ) === true ) { select2_args.multiple = true; select2_args.initSelection = function( element, callback ) { var data = $.parseJSON( element.attr( 'data-selected' ) ); var selected = []; $( element.val().split( ',' ) ).each( function( i, val ) { selected.push({ id: val, text: data[ val ] }); }); return callback( selected ); }; select2_args.formatSelection = function( data ) { return '
    ' + data.text + '
    '; }; } else { select2_args.multiple = false; select2_args.initSelection = function( element, callback ) { var data = { id: element.val(), text: element.attr( 'data-selected' ) }; return callback( data ); }; } select2_args = $.extend( select2_args, getEnhancedSelectFormatString() ); $( this ).select2( select2_args ).addClass( 'enhanced' ); }); // Ajax customer search boxes $( ':input.wc-customer-search' ).filter( ':not(.enhanced)' ).each( function() { var select2_args = { allowClear: $( this ).data( 'allow_clear' ) ? true : false, placeholder: $( this ).data( 'placeholder' ), minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3', escapeMarkup: function( m ) { return m; }, ajax: { url: wc_enhanced_select_params.ajax_url, dataType: 'json', quietMillis: 250, data: function( term ) { return { term: term, action: 'woocommerce_json_search_customers', security: wc_enhanced_select_params.search_customers_nonce, exclude: $( this ).data( 'exclude' ) }; }, results: function( data ) { var terms = []; if ( data ) { $.each( data, function( id, text ) { terms.push({ id: id, text: text }); }); } return { results: terms }; }, cache: true } }; if ( $( this ).data( 'multiple' ) === true ) { select2_args.multiple = true; select2_args.initSelection = function( element, callback ) { var data = $.parseJSON( element.attr( 'data-selected' ) ); var selected = []; $( element.val().split( ',' ) ).each( function( i, val ) { selected.push({ id: val, text: data[ val ] }); }); return callback( selected ); }; select2_args.formatSelection = function( data ) { return '
    ' + data.text + '
    '; }; } else { select2_args.multiple = false; select2_args.initSelection = function( element, callback ) { var data = { id: element.val(), text: element.attr( 'data-selected' ) }; return callback( data ); }; } select2_args = $.extend( select2_args, getEnhancedSelectFormatString() ); $( this ).select2( select2_args ).addClass( 'enhanced' ); }); }) // WooCommerce Backbone Modal .on( 'wc_backbone_modal_before_remove', function() { $( ':input.wc-enhanced-select, :input.wc-product-search, :input.wc-customer-search' ).select2( 'close' ); }) .trigger( 'wc-enhanced-select-init' ); }); assets/js/admin/product-ordering.min.js000066600000003307152133032050014162 0ustar00jQuery(function(a){a("table.widefat tbody th, table.widefat tbody td").css("cursor","move"),a("table.widefat tbody").sortable({items:"tr:not(.inline-edit-row)",cursor:"move",axis:"y",containment:"table.widefat",scrollSensitivity:40,helper:function(b,c){return c.each(function(){a(this).width(a(this).width())}),c},start:function(b,c){c.placeholder.children().each(function(){var b=c.item.children().eq(c.placeholder.children().index(this)),d=a(this);a.each(b[0].attributes,function(a,b){d.attr(b.name,b.value)})}),c.item.hasClass("alternate")||c.item.css("background-color","#ffffff"),c.item.children("td, th").css("border-bottom-width","0"),c.item.css("outline","1px solid #dfdfdf")},stop:function(a,b){b.item.removeAttr("style"),b.item.children("td,th").css("border-bottom-width","1px")},update:function(b,c){a("table.widefat tbody th, table.widefat tbody td").css("cursor","default"),a("table.widefat tbody").sortable("disable");var d=c.item.find(".check-column input").val(),e=c.item.prev().find(".check-column input").val(),f=c.item.next().find(".check-column input").val();c.item.find(".check-column input").hide().after('processing'),a.post(ajaxurl,{action:"woocommerce_product_ordering",id:d,previd:e,nextid:f},function(b){a.each(b,function(b,c){a("#inline_"+b+" .menu_order").html(c)}),c.item.find(".check-column input").show().siblings("img").remove(),a("table.widefat tbody th, table.widefat tbody td").css("cursor","move"),a("table.widefat tbody").sortable("enable")}),a("table.widefat tbody tr").each(function(){var b=a("table.widefat tbody tr").index(this);b%2===0?a(this).addClass("alternate"):a(this).removeClass("alternate")})}})});assets/js/admin/meta-boxes-product.js000066600000046323152133032050013640 0ustar00/*global woocommerce_admin_meta_boxes */ jQuery( function( $ ) { // Scroll to first checked category - https://github.com/scribu/wp-category-checklist-tree/blob/d1c3c1f449e1144542efa17dde84a9f52ade1739/category-checklist-tree.php $( function() { $( '[id$="-all"] > ul.categorychecklist' ).each( function() { var $list = $( this ); var $firstChecked = $list.find( ':checked' ).first(); if ( ! $firstChecked.length ) { return; } var pos_first = $list.find( 'input' ).position().top; var pos_checked = $firstChecked.position().top; $list.closest( '.tabs-panel' ).scrollTop( pos_checked - pos_first + 5 ); }); }); // Prevent enter submitting post form. $( '#upsell_product_data' ).bind( 'keypress', function( e ) { if ( e.keyCode === 13 ) { return false; } }); // Type box. $( '.type_box' ).appendTo( '#woocommerce-product-data .hndle span' ); $( function() { // Prevent inputs in meta box headings opening/closing contents. $( '#woocommerce-product-data' ).find( '.hndle' ).unbind( 'click.postboxes' ); $( '#woocommerce-product-data' ).on( 'click', '.hndle', function( event ) { // If the user clicks on some form input inside the h3 the box should not be toggled. if ( $( event.target ).filter( 'input, option, label, select' ).length ) { return; } $( '#woocommerce-product-data' ).toggleClass( 'closed' ); }); }); // Catalog Visibility. $( '#catalog-visibility' ).find( '.edit-catalog-visibility' ).click( function() { if ( $( '#catalog-visibility-select' ).is( ':hidden' ) ) { $( '#catalog-visibility-select' ).slideDown( 'fast' ); $( this ).hide(); } return false; }); $( '#catalog-visibility' ).find( '.save-post-visibility' ).click( function() { $( '#catalog-visibility-select' ).slideUp( 'fast' ); $( '#catalog-visibility' ).find( '.edit-catalog-visibility' ).show(); var label = $( 'input[name=_visibility]:checked' ).attr( 'data-label' ); if ( $( 'input[name=_featured]' ).is( ':checked' ) ) { label = label + ', ' + woocommerce_admin_meta_boxes.featured_label; $( 'input[name=_featured]' ).attr( 'checked', 'checked' ); } $( '#catalog-visibility-display' ).text( label ); return false; }); $( '#catalog-visibility' ).find( '.cancel-post-visibility' ).click( function() { $( '#catalog-visibility-select' ).slideUp( 'fast' ); $( '#catalog-visibility' ).find( '.edit-catalog-visibility' ).show(); var current_visibility = $( '#current_visibility' ).val(); var current_featured = $( '#current_featured' ).val(); $( 'input[name=_visibility]' ).removeAttr( 'checked' ); $( 'input[name=_visibility][value=' + current_visibility + ']' ).attr( 'checked', 'checked' ); var label = $( 'input[name=_visibility]:checked' ).attr( 'data-label' ); if ( 'yes' === current_featured ) { label = label + ', ' + woocommerce_admin_meta_boxes.featured_label; $( 'input[name=_featured]' ).attr( 'checked', 'checked' ); } else { $( 'input[name=_featured]' ).removeAttr( 'checked' ); } $( '#catalog-visibility-display' ).text( label ); return false; }); // PRODUCT TYPE SPECIFIC OPTIONS. $( 'select#product-type' ).change( function() { // Get value. var select_val = $( this ).val(); if ( 'variable' === select_val ) { $( 'input#_manage_stock' ).change(); $( 'input#_downloadable' ).prop( 'checked', false ); $( 'input#_virtual' ).removeAttr( 'checked' ); } else if ( 'grouped' === select_val ) { $( 'input#_downloadable' ).prop( 'checked', false ); $( 'input#_virtual' ).removeAttr( 'checked' ); } else if ( 'external' === select_val ) { $( 'input#_downloadable' ).prop( 'checked', false ); $( 'input#_virtual' ).removeAttr( 'checked' ); } show_and_hide_panels(); $( 'ul.wc-tabs li:visible' ).eq( 0 ).find( 'a' ).click(); $( document.body ).trigger( 'woocommerce-product-type-change', select_val, $( this ) ); }).change(); $( document.body ).on( 'woocommerce-product-type-change', function( e, select_val ) { if ( 'variable' !== select_val && 0 < $( '#variable_product_options' ).find( 'input[name^=variable_sku]' ).length && $( document.body ).triggerHandler( 'woocommerce-display-product-type-alert', select_val ) !== false ) { window.alert( woocommerce_admin_meta_boxes.i18n_product_type_alert ); } }); $( 'input#_downloadable, input#_virtual' ).change( function() { show_and_hide_panels(); }); function show_and_hide_panels() { var product_type = $( 'select#product-type' ).val(); var is_virtual = $( 'input#_virtual:checked' ).length; var is_downloadable = $( 'input#_downloadable:checked' ).length; // Hide/Show all with rules. var hide_classes = '.hide_if_downloadable, .hide_if_virtual'; var show_classes = '.show_if_downloadable, .show_if_virtual'; $.each( woocommerce_admin_meta_boxes.product_types, function( index, value ) { hide_classes = hide_classes + ', .hide_if_' + value; show_classes = show_classes + ', .show_if_' + value; }); $( hide_classes ).show(); $( show_classes ).hide(); // Shows rules. if ( is_downloadable ) { $( '.show_if_downloadable' ).show(); } if ( is_virtual ) { $( '.show_if_virtual' ).show(); } $( '.show_if_' + product_type ).show(); // Hide rules. if ( is_downloadable ) { $( '.hide_if_downloadable' ).hide(); } if ( is_virtual ) { $( '.hide_if_virtual' ).hide(); } $( '.hide_if_' + product_type ).hide(); $( 'input#_manage_stock' ).change(); // Hide empty panels/tabs after display. $( '.woocommerce_options_panel' ).each( function() { var $children = $( this ).children( '.options_group' ); if ( 0 === $children.length ) { return; } var $invisble = $children.filter( function() { return 'none' === $( this ).css( 'display' ); }); // Hide panel. if ( $invisble.length === $children.length ) { var $id = $( this ).prop( 'id' ); $( '.product_data_tabs' ).find( 'li a[href="#' + $id + '"]' ).parent().hide(); } }); } // Sale price schedule. $( '.sale_price_dates_fields' ).each( function() { var $these_sale_dates = $( this ); var sale_schedule_set = false; var $wrap = $these_sale_dates.closest( 'div, table' ); $these_sale_dates.find( 'input' ).each( function() { if ( '' !== $( this ).val() ) { sale_schedule_set = true; } }); if ( sale_schedule_set ) { $wrap.find( '.sale_schedule' ).hide(); $wrap.find( '.sale_price_dates_fields' ).show(); } else { $wrap.find( '.sale_schedule' ).show(); $wrap.find( '.sale_price_dates_fields' ).hide(); } }); $( '#woocommerce-product-data' ).on( 'click', '.sale_schedule', function() { var $wrap = $( this ).closest( 'div, table' ); $( this ).hide(); $wrap.find( '.cancel_sale_schedule' ).show(); $wrap.find( '.sale_price_dates_fields' ).show(); return false; }); $( '#woocommerce-product-data' ).on( 'click', '.cancel_sale_schedule', function() { var $wrap = $( this ).closest( 'div, table' ); $( this ).hide(); $wrap.find( '.sale_schedule' ).show(); $wrap.find( '.sale_price_dates_fields' ).hide(); $wrap.find( '.sale_price_dates_fields' ).find( 'input' ).val(''); return false; }); // File inputs. $( '#woocommerce-product-data' ).on( 'click','.downloadable_files a.insert', function() { $( this ).closest( '.downloadable_files' ).find( 'tbody' ).append( $( this ).data( 'row' ) ); return false; }); $( '#woocommerce-product-data' ).on( 'click','.downloadable_files a.delete',function() { $( this ).closest( 'tr' ).remove(); return false; }); // STOCK OPTIONS. $( 'input#_manage_stock' ).change( function() { if ( $( this ).is( ':checked' ) ) { $( 'div.stock_fields' ).show(); } else { $( 'div.stock_fields' ).hide(); } }).change(); // DATE PICKER FIELDS. $( '.sale_price_dates_fields' ).each( function() { var dates = $( this ).find( 'input' ).datepicker({ defaultDate: '', dateFormat: 'yy-mm-dd', numberOfMonths: 1, showButtonPanel: true, onSelect: function( selectedDate ) { var option = $( this ).is( '#_sale_price_dates_from, .sale_price_dates_from' ) ? 'minDate' : 'maxDate'; var instance = $( this ).data( 'datepicker' ); var date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( 'option', option, date ); } }); }); // ATTRIBUTE TABLES. // Initial order. var woocommerce_attribute_items = $( '.product_attributes' ).find( '.woocommerce_attribute' ).get(); woocommerce_attribute_items.sort( function( a, b ) { var compA = parseInt( $( a ).attr( 'rel' ), 10 ); var compB = parseInt( $( b ).attr( 'rel' ), 10 ); return ( compA < compB ) ? -1 : ( compA > compB ) ? 1 : 0; }); $( woocommerce_attribute_items ).each( function( index, el ) { $( '.product_attributes' ).append( el ); }); function attribute_row_indexes() { $( '.product_attributes .woocommerce_attribute' ).each( function( index, el ) { $( '.attribute_position', el ).val( parseInt( $( el ).index( '.product_attributes .woocommerce_attribute' ), 10 ) ); }); } $( '.product_attributes .woocommerce_attribute' ).each( function( index, el ) { if ( $( el ).css( 'display' ) !== 'none' && $( el ).is( '.taxonomy' ) ) { $( 'select.attribute_taxonomy' ).find( 'option[value="' + $( el ).data( 'taxonomy' ) + '"]' ).attr( 'disabled', 'disabled' ); } }); // Add rows. $( 'button.add_attribute' ).on( 'click', function() { var size = $( '.product_attributes .woocommerce_attribute' ).length; var attribute = $( 'select.attribute_taxonomy' ).val(); var $wrapper = $( this ).closest( '#product_attributes' ); var $attributes = $wrapper.find( '.product_attributes' ); var product_type = $( 'select#product-type' ).val(); var data = { action: 'woocommerce_add_attribute', taxonomy: attribute, i: size, security: woocommerce_admin_meta_boxes.add_attribute_nonce }; $wrapper.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { $attributes.append( response ); if ( 'variable' !== product_type ) { $attributes.find( '.enable_variation' ).hide(); } $( document.body ).trigger( 'wc-enhanced-select-init' ); attribute_row_indexes(); $wrapper.unblock(); $( document.body ).trigger( 'woocommerce_added_attribute' ); }); if ( attribute ) { $( 'select.attribute_taxonomy' ).find( 'option[value="' + attribute + '"]' ).attr( 'disabled','disabled' ); $( 'select.attribute_taxonomy' ).val( '' ); } return false; }); $( '.product_attributes' ).on( 'blur', 'input.attribute_name', function() { $( this ).closest( '.woocommerce_attribute' ).find( 'strong.attribute_name' ).text( $( this ).val() ); }); $( '.product_attributes' ).on( 'click', 'button.select_all_attributes', function() { $( this ).closest( 'td' ).find( 'select option' ).attr( 'selected', 'selected' ); $( this ).closest( 'td' ).find( 'select' ).change(); return false; }); $( '.product_attributes' ).on( 'click', 'button.select_no_attributes', function() { $( this ).closest( 'td' ).find( 'select option' ).removeAttr( 'selected' ); $( this ).closest( 'td' ).find( 'select' ).change(); return false; }); $( '.product_attributes' ).on( 'click', '.remove_row', function() { if ( window.confirm( woocommerce_admin_meta_boxes.remove_attribute ) ) { var $parent = $( this ).parent().parent(); if ( $parent.is( '.taxonomy' ) ) { $parent.find( 'select, input[type=text]' ).val( '' ); $parent.hide(); $( 'select.attribute_taxonomy' ).find( 'option[value="' + $parent.data( 'taxonomy' ) + '"]' ).removeAttr( 'disabled' ); } else { $parent.find( 'select, input[type=text]' ).val( '' ); $parent.hide(); attribute_row_indexes(); } } return false; }); // Attribute ordering. $( '.product_attributes' ).sortable({ items: '.woocommerce_attribute', cursor: 'move', axis: 'y', handle: 'h3', scrollSensitivity: 40, forcePlaceholderSize: true, helper: 'clone', opacity: 0.65, placeholder: 'wc-metabox-sortable-placeholder', start: function( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); attribute_row_indexes(); } }); // Add a new attribute (via ajax). $( '.product_attributes' ).on( 'click', 'button.add_new_attribute', function() { $( '.product_attributes' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var $wrapper = $( this ).closest( '.woocommerce_attribute' ); var attribute = $wrapper.data( 'taxonomy' ); var new_attribute_name = window.prompt( woocommerce_admin_meta_boxes.new_attribute_prompt ); if ( new_attribute_name ) { var data = { action: 'woocommerce_add_new_attribute', taxonomy: attribute, term: new_attribute_name, security: woocommerce_admin_meta_boxes.add_attribute_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { if ( response.error ) { // Error. window.alert( response.error ); } else if ( response.slug ) { // Success. $wrapper.find( 'select.attribute_values' ).append( '' ); $wrapper.find( 'select.attribute_values' ).change(); } $( '.product_attributes' ).unblock(); }); } else { $( '.product_attributes' ).unblock(); } return false; }); // Save attributes and update variations. $( '.save_attributes' ).on( 'click', function() { $( '#woocommerce-product-data' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { post_id: woocommerce_admin_meta_boxes.post_id, data: $( '.product_attributes' ).find( 'input, select, textarea' ).serialize(), action: 'woocommerce_save_attributes', security: woocommerce_admin_meta_boxes.save_attributes_nonce }; $.post( woocommerce_admin_meta_boxes.ajax_url, data, function() { // Reload variations panel. var this_page = window.location.toString(); this_page = this_page.replace( 'post-new.php?', 'post.php?post=' + woocommerce_admin_meta_boxes.post_id + '&action=edit&' ); // Load variations panel. $( '#variable_product_options' ).load( this_page + ' #variable_product_options_inner', function() { $( '#variable_product_options' ).trigger( 'reload' ); }); }); }); // Uploading files. var downloadable_file_frame; var file_path_field; $( document.body ).on( 'click', '.upload_file_button', function( event ) { var $el = $( this ); file_path_field = $el.closest( 'tr' ).find( 'td.file_url input' ); event.preventDefault(); // If the media frame already exists, reopen it. if ( downloadable_file_frame ) { downloadable_file_frame.open(); return; } var downloadable_file_states = [ // Main states. new wp.media.controller.Library({ library: wp.media.query(), multiple: true, title: $el.data('choose'), priority: 20, filterable: 'uploaded' }) ]; // Create the media frame. downloadable_file_frame = wp.media.frames.downloadable_file = wp.media({ // Set the title of the modal. title: $el.data('choose'), library: { type: '' }, button: { text: $el.data('update') }, multiple: true, states: downloadable_file_states }); // When an image is selected, run a callback. downloadable_file_frame.on( 'select', function() { var file_path = ''; var selection = downloadable_file_frame.state().get( 'selection' ); selection.map( function( attachment ) { attachment = attachment.toJSON(); if ( attachment.url ) { file_path = attachment.url; } }); file_path_field.val( file_path ).change(); }); // Set post to 0 and set our custom type. downloadable_file_frame.on( 'ready', function() { downloadable_file_frame.uploader.options.uploader.params = { type: 'downloadable_product' }; }); // Finally, open the modal. downloadable_file_frame.open(); }); // Download ordering. $( '.downloadable_files tbody' ).sortable({ items: 'tr', cursor: 'move', axis: 'y', handle: 'td.sort', scrollSensitivity: 40, forcePlaceholderSize: true, helper: 'clone', opacity: 0.65 }); // Product gallery file uploads. var product_gallery_frame; var $image_gallery_ids = $( '#product_image_gallery' ); var $product_images = $( '#product_images_container' ).find( 'ul.product_images' ); $( '.add_product_images' ).on( 'click', 'a', function( event ) { var $el = $( this ); event.preventDefault(); // If the media frame already exists, reopen it. if ( product_gallery_frame ) { product_gallery_frame.open(); return; } // Create the media frame. product_gallery_frame = wp.media.frames.product_gallery = wp.media({ // Set the title of the modal. title: $el.data( 'choose' ), button: { text: $el.data( 'update' ) }, states: [ new wp.media.controller.Library({ title: $el.data( 'choose' ), filterable: 'all', multiple: true }) ] }); // When an image is selected, run a callback. product_gallery_frame.on( 'select', function() { var selection = product_gallery_frame.state().get( 'selection' ); var attachment_ids = $image_gallery_ids.val(); selection.map( function( attachment ) { attachment = attachment.toJSON(); if ( attachment.id ) { attachment_ids = attachment_ids ? attachment_ids + ',' + attachment.id : attachment.id; var attachment_image = attachment.sizes && attachment.sizes.thumbnail ? attachment.sizes.thumbnail.url : attachment.url; $product_images.append( '
  • ' ); } }); $image_gallery_ids.val( attachment_ids ); }); // Finally, open the modal. product_gallery_frame.open(); }); // Image ordering. $product_images.sortable({ items: 'li.image', cursor: 'move', scrollSensitivity: 40, forcePlaceholderSize: true, forceHelperSize: false, helper: 'clone', opacity: 0.65, placeholder: 'wc-metabox-sortable-placeholder', start: function( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); }, update: function() { var attachment_ids = ''; $( '#product_images_container' ).find( 'ul li.image' ).css( 'cursor', 'default' ).each( function() { var attachment_id = $( this ).attr( 'data-attachment_id' ); attachment_ids = attachment_ids + attachment_id + ','; }); $image_gallery_ids.val( attachment_ids ); } }); // Remove images. $( '#product_images_container' ).on( 'click', 'a.delete', function() { $( this ).closest( 'li.image' ).remove(); var attachment_ids = ''; $( '#product_images_container' ).find( 'ul li.image' ).css( 'cursor', 'default' ).each( function() { var attachment_id = $( this ).attr( 'data-attachment_id' ); attachment_ids = attachment_ids + attachment_id + ','; }); $image_gallery_ids.val( attachment_ids ); // Remove any lingering tooltips. $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); return false; }); }); assets/js/admin/backbone-modal.js000066600000006444152133032050012754 0ustar00/*global jQuery, Backbone, _ */ ( function( $, Backbone, _ ) { 'use strict'; /** * WooCommerce Backbone Modal plugin * * @param {object} options */ $.fn.WCBackboneModal = function( options ) { return this.each( function() { ( new $.WCBackboneModal( $( this ), options ) ); }); }; /** * Initialize the Backbone Modal * * @param {object} element [description] * @param {object} options [description] */ $.WCBackboneModal = function( element, options ) { // Set settings var settings = $.extend( {}, $.WCBackboneModal.defaultOptions, options ); if ( settings.template ) { new $.WCBackboneModal.View({ target: settings.template, string: settings.variable }); } }; /** * Set default options * * @type {object} */ $.WCBackboneModal.defaultOptions = { template: '', variable: {} }; /** * Create the Backbone Modal * * @return {null} */ $.WCBackboneModal.View = Backbone.View.extend({ tagName: 'div', id: 'wc-backbone-modal-dialog', _target: undefined, _string: undefined, events: { 'click .modal-close': 'closeButton', 'click #btn-ok' : 'addButton', 'touchstart #btn-ok': 'addButton', 'keydown' : 'keyboardActions' }, resizeContent: function() { var $content = $( '.wc-backbone-modal-content' ).find( 'article' ); var max_h = $( window ).height() * 0.75; $content.css({ 'max-height': max_h + 'px' }); }, initialize: function( data ) { var view = this; this._target = data.target; this._string = data.string; _.bindAll( this, 'render' ); this.render(); $( window ).resize(function() { view.resizeContent(); }); }, render: function() { var template = wp.template( this._target ); this.$el.attr( 'tabindex' , '0' ).append( template( this._string ) ); $( document.body ).css({ 'overflow': 'hidden' }).append( this.$el ); this.resizeContent(); $( document.body ).trigger( 'wc_backbone_modal_loaded', this._target ); }, closeButton: function( e ) { e.preventDefault(); $( document.body ).trigger( 'wc_backbone_modal_before_remove', this._target ); this.undelegateEvents(); $( document ).off( 'focusin' ); $( document.body ).css({ 'overflow': 'auto' }); this.remove(); $( document.body ).trigger( 'wc_backbone_modal_removed', this._target ); }, addButton: function( e ) { $( document.body ).trigger( 'wc_backbone_modal_response', [ this._target, this.getFormData() ] ); this.closeButton( e ); }, getFormData: function() { var data = {}; $( document.body ).trigger( 'wc_backbone_modal_before_update', this._target ); $.each( $( 'form', this.$el ).serializeArray(), function( index, item ) { if ( data.hasOwnProperty( item.name ) ) { data[ item.name ] = $.makeArray( data[ item.name ] ); data[ item.name ].push( item.value ); } else { data[ item.name ] = item.value; } }); return data; }, keyboardActions: function( e ) { var button = e.keyCode || e.which; // Enter key if ( 13 === button && ! ( e.target.tagName && ( e.target.tagName.toLowerCase() === 'input' || e.target.tagName.toLowerCase() === 'textarea' ) ) ) { this.addButton( e ); } // ESC key if ( 27 === button ) { this.closeButton( e ); } } }); }( jQuery, Backbone, _ )); assets/js/admin/wc-shipping-zones.min.js000066600000022731152133032050014261 0ustar00!function(a,b,c,d){a(function(){function e(){var a={formatMatches:function(a){return 1===a?wc_enhanced_select_params.i18n_matches_1:wc_enhanced_select_params.i18n_matches_n.replace("%qty%",a)},formatNoMatches:function(){return wc_enhanced_select_params.i18n_no_matches},formatAjaxError:function(){return wc_enhanced_select_params.i18n_ajax_error},formatInputTooShort:function(a,b){var c=b-a.length;return 1===c?wc_enhanced_select_params.i18n_input_too_short_1:wc_enhanced_select_params.i18n_input_too_short_n.replace("%qty%",c)},formatInputTooLong:function(a,b){var c=a.length-b;return 1===c?wc_enhanced_select_params.i18n_input_too_long_1:wc_enhanced_select_params.i18n_input_too_long_n.replace("%qty%",c)},formatSelectionTooBig:function(a){return 1===a?wc_enhanced_select_params.i18n_selection_too_long_1:wc_enhanced_select_params.i18n_selection_too_long_n.replace("%qty%",a)},formatLoadMore:function(){return wc_enhanced_select_params.i18n_load_more},formatSearching:function(){return wc_enhanced_select_params.i18n_searching}};return a}var f=a(".wc-shipping-zones"),g=a(".wc-shipping-zone-rows"),h=a(".wc-shipping-zone-save"),i=c.template("wc-shipping-zone-row"),j=c.template("wc-shipping-zone-row-blank"),k=a.extend({minimumResultsForSearch:10,allowClear:!!a(this).data("allow_clear"),placeholder:a(this).data("placeholder"),matcher:function(a,b,c){return b.toUpperCase().indexOf(a.toUpperCase())>=0||c.attr("alt").toUpperCase().indexOf(a.toUpperCase())>=0}},e()),l=Backbone.Model.extend({changes:{},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{zone_id:c},a)}),this.changes=b,this.trigger("change:zones")},discardChanges:function(a){var b=this.changes||{},c=null,d=_.indexBy(this.get("zones"),"zone_id");b[a]&&void 0!==b[a].zone_order&&(c=b[a].zone_order),delete b[a],null!==c&&d[a]&&d[a].zone_order!==c&&(b[a]=_.extend(b[a]||{},{zone_id:a,zone_order:c})),this.changes=b,0===_.size(this.changes)&&o.clearUnloadConfirmation()},save:function(){_.size(this.changes)?a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_zones_save_changes",{wc_shipping_zones_nonce:b.wc_shipping_zones_nonce,changes:this.changes},this.onSaveResponse,"json"):n.trigger("saved:zones")},onSaveResponse:function(a,c){"success"===c&&(a.success?(n.set("zones",a.data.zones),n.trigger("change:zones"),n.changes={},n.trigger("saved:zones")):window.alert(b.strings.save_failed))}}),m=Backbone.View.extend({rowTemplate:i,initialize:function(){this.listenTo(this.model,"change:zones",this.setUnloadConfirmation),this.listenTo(this.model,"saved:zones",this.clearUnloadConfirmation),this.listenTo(this.model,"saved:zones",this.render),g.on("change",{view:this},this.updateModelOnChange),g.on("sortupdate",{view:this},this.updateModelOnSort),a(window).on("beforeunload",{view:this},this.unloadConfirmation),h.on("click",{view:this},this.onSubmit),a(document.body).on("click",".add_shipping_method:not(.disabled)",{view:this},this.onAddShippingMethod),a(document.body).on("click",".wc-shipping-zone-add",{view:this},this.onAddNewRow),a(document.body).on("wc_backbone_modal_response",this.onAddShippingMethodSubmitted),a(document.body).on("change",".wc-shipping-zone-method-selector select",this.onChangeShippingMethodSelector)},block:function(){a(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(this.el).unblock()},render:function(){var b=_.indexBy(this.model.get("zones"),"zone_id"),c=this;c.$el.empty(),c.unblock(),_.size(b)?(b=_.sortBy(b,function(a){return parseInt(a.zone_order,10)}),a.each(b,function(a,b){c.renderRow(b)})):c.$el.append(j),c.initRows()},renderRow:function(a){var b=this;b.$el.append(b.rowTemplate(a)),b.initRow(a)},initRow:function(a){var b=this,c=b.$el.find('tr[data-id="'+a.zone_id+'"]');_.each(a.zone_locations,function(a){if("string"===jQuery.type(a))c.find('option[value="'+a+'"]').prop("selected",!0);else if("postcode"===a.type){var b=c.find(".wc-shipping-zone-postcodes :input");b.val()?b.val(b.val()+"\n"+a.code):b.val(a.code),c.find(".wc-shipping-zone-postcodes").show(),c.find(".wc-shipping-zone-postcodes-toggle").hide()}else c.find('option[value="'+a.type+":"+a.code+'"]').prop("selected",!0)}),a.zone_postcodes&&_.each(a.zone_postcodes,function(a){var b=c.find(".wc-shipping-zone-postcodes :input");b.val()?b.val(b.val()+"\n"+a.code):b.val(a.code),c.find(".wc-shipping-zone-postcodes").show(),c.find(".wc-shipping-zone-postcodes-toggle").hide()}),b.renderShippingMethods(a.zone_id,a.shipping_methods),c.find(".view").show(),c.find(".edit").hide(),c.find(".wc-shipping-zone-edit").on("click",{view:this},this.onEditRow),c.find(".wc-shipping-zone-cancel-edit").on("click",{view:this},this.onCancelEditRow),c.find(".wc-shipping-zone-delete").on("click",{view:this},this.onDeleteRow),c.find(".wc-shipping-zone-postcodes-toggle").on("click",{view:this},this.onTogglePostcodes),!0===a.editing&&(c.addClass("editing"),c.find(".wc-shipping-zone-edit").trigger("click"))},initRows:function(){0===a("tbody.wc-shipping-zone-rows tr").length%2?f.find("tbody.wc-shipping-zone-rows").next("tbody").find("tr").addClass("odd"):f.find("tbody.wc-shipping-zone-rows").next("tbody").find("tr").removeClass("odd"),a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),a(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:50})},renderShippingMethods:function(c,d){var e=a('.wc-shipping-zones tr[data-id="'+c+'"]'),f=e.find(".wc-shipping-zone-methods ul");f.find(".wc-shipping-zone-method").remove(),_.size(d)?_.each(d,function(a,b){var c="method_disabled";"yes"===a.enabled&&(c="method_enabled"),f.prepend('
  • '+a.title+"
  • ")}):f.prepend('
  • '+b.strings.no_shipping_methods_offered+"
  • ")},onSubmit:function(a){a.data.view.block(),a.data.view.model.save(),a.preventDefault()},onAddNewRow:function(c){c.preventDefault();var d=c.data.view,e=d.model,f=_.indexBy(e.get("zones"),"zone_id"),g={},h=_.size(f),i=_.extend({},b.default_zone,{zone_id:"new-"+h+"-"+Date.now(),editing:!0});a(".wc-shipping-zones-blank-state").closest("tr").remove(),i.zone_order=1+_.max(_.pluck(f,"zone_order"),function(a){return parseInt(a,10)}),g[i.zone_id]=i,e.logChanges(g),d.renderRow(i),d.initRows()},onTogglePostcodes:function(b){b.preventDefault();var c=a(this).closest("tr");c.find(".wc-shipping-zone-postcodes").show(),c.find(".wc-shipping-zone-postcodes-toggle").hide()},onEditRow:function(b){b.preventDefault(),b.data.view.model.trigger("change:zones"),a(this).closest("tr").addClass("editing"),a(this).closest("tr").find(".view").hide(),a(this).closest("tr").find(".edit").show(),a(".wc-shipping-zone-region-select:not(.enhanced)").select2(k),a(".wc-shipping-zone-region-select:not(.enhanced)").addClass("enhanced");var c=a(this).closest("tr").find(".add_shipping_method");c.addClass("disabled"),c.tipTip({attribute:"data-disabled-tip",fadeIn:50,fadeOut:50,delay:50})},onCancelEditRow:function(b){var c=b.data.view,d=c.model,e=a(this).closest("tr"),f=e.data("id"),g=_.indexBy(d.get("zones"),"zone_id");b.preventDefault(),d.discardChanges(f),g[f]&&(g[f].editing=!1,e.after(c.rowTemplate(g[f])),c.initRow(g[f])),e.remove(),c.initRows()},onDeleteRow:function(b){var c=b.data.view,d=c.model,e=_.indexBy(d.get("zones"),"zone_id"),f={},g=a(this).closest("tr"),h=a(this).closest("tr").data("id");b.preventDefault(),e[h]&&(delete e[h],f[h]=_.extend(f[h]||{},{deleted:"deleted"}),d.set("zones",e),d.logChanges(f)),g.remove(),c.initRows()},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,h.prop("disabled",!1)},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,h.prop("disabled",!0)},unloadConfirmation:function(a){if(a.data.view.needsUnloadConfirm)return a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val(),h=_.indexBy(c.get("zones"),"zone_id"),i={};h[e]&&h[e][f]===g||(i[e]={},i[e][f]=g),c.logChanges(i)},updateModelOnSort:function(b){var c=b.data.view,d=c.model,e=_.indexBy(d.get("zones"),"zone_id"),f=a("tbody.wc-shipping-zone-rows tr"),g={};_.each(f,function(b){var c=a(b).data("id"),d=null,f=parseInt(a(b).index(),10);e[c]&&(d=parseInt(e[c].zone_order,10)),d!==f&&(g[c]=_.extend(g[c]||{},{zone_order:f}))}),_.size(g)&&d.logChanges(g)},onAddShippingMethod:function(b){var c=a(this).closest("tr").data("id");b.preventDefault(),a(this).WCBackboneModal({template:"wc-modal-add-shipping-method",variable:{zone_id:c}}),a(".wc-shipping-zone-method-selector select").change()},onAddShippingMethodSubmitted:function(c,e,f){"wc-modal-add-shipping-method"===e&&(o.block(),a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_shipping_zone_add_method",{wc_shipping_zones_nonce:b.wc_shipping_zones_nonce,method_id:f.add_method_id,zone_id:f.zone_id},function(a,b){"success"===b&&a.success&&o.renderShippingMethods(f.zone_id,a.data.methods),o.unblock()},"json"))},onChangeShippingMethodSelector:function(){var b=a(this).find("option:selected").data("description");a(this).parent().find(".wc-shipping-zone-method-description").remove(),a(this).after('

    '+b+"

    "),a(this).closest("article").height(a(this).parent().height())}}),n=new l({zones:b.zones}),o=new m({model:n,el:g});o.render(),g.sortable({items:"tr",cursor:"move",axis:"y",handle:"td.wc-shipping-zone-sort",scrollSensitivity:40})})}(jQuery,shippingZonesLocalizeScript,wp,ajaxurl);assets/js/admin/wc-shipping-zones.js000066600000041140152133032050013472 0ustar00/* global wc_enhanced_select_params, shippingZonesLocalizeScript, ajaxurl */ ( function( $, data, wp, ajaxurl ) { $( function() { var $table = $( '.wc-shipping-zones' ), $tbody = $( '.wc-shipping-zone-rows' ), $save_button = $( '.wc-shipping-zone-save' ), $row_template = wp.template( 'wc-shipping-zone-row' ), $blank_template = wp.template( 'wc-shipping-zone-row-blank' ), select2_args = $.extend({ minimumResultsForSearch: 10, allowClear: $( this ).data( 'allow_clear' ) ? true : false, placeholder: $( this ).data( 'placeholder' ), matcher: function( term, text, opt ) { return text.toUpperCase().indexOf( term.toUpperCase() ) >= 0 || opt.attr( 'alt' ).toUpperCase().indexOf( term.toUpperCase() ) >= 0; } }, getEnhancedSelectFormatString() ), // Backbone model ShippingZone = Backbone.Model.extend({ changes: {}, logChanges: function( changedRows ) { var changes = this.changes || {}; _.each( changedRows, function( row, id ) { changes[ id ] = _.extend( changes[ id ] || { zone_id : id }, row ); } ); this.changes = changes; this.trigger( 'change:zones' ); }, discardChanges: function( id ) { var changes = this.changes || {}, set_position = null, zones = _.indexBy( this.get( 'zones' ), 'zone_id' ); // Find current set position if it has moved since last save if ( changes[ id ] && changes[ id ].zone_order !== undefined ) { set_position = changes[ id ].zone_order; } // Delete all changes delete changes[ id ]; // If the position was set, and this zone does exist in DB, set the position again so the changes are not lost. if ( set_position !== null && zones[ id ] && zones[ id ].zone_order !== set_position ) { changes[ id ] = _.extend( changes[ id ] || {}, { zone_id : id, zone_order : set_position } ); } this.changes = changes; // No changes? Disable save button. if ( 0 === _.size( this.changes ) ) { shippingZoneView.clearUnloadConfirmation(); } }, save: function() { if ( _.size( this.changes ) ) { $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_zones_save_changes', { wc_shipping_zones_nonce : data.wc_shipping_zones_nonce, changes : this.changes }, this.onSaveResponse, 'json' ); } else { shippingZone.trigger( 'saved:zones' ); } }, onSaveResponse: function( response, textStatus ) { if ( 'success' === textStatus ) { if ( response.success ) { shippingZone.set( 'zones', response.data.zones ); shippingZone.trigger( 'change:zones' ); shippingZone.changes = {}; shippingZone.trigger( 'saved:zones' ); } else { window.alert( data.strings.save_failed ); } } } } ), // Backbone view ShippingZoneView = Backbone.View.extend({ rowTemplate: $row_template, initialize: function() { this.listenTo( this.model, 'change:zones', this.setUnloadConfirmation ); this.listenTo( this.model, 'saved:zones', this.clearUnloadConfirmation ); this.listenTo( this.model, 'saved:zones', this.render ); $tbody.on( 'change', { view: this }, this.updateModelOnChange ); $tbody.on( 'sortupdate', { view: this }, this.updateModelOnSort ); $( window ).on( 'beforeunload', { view: this }, this.unloadConfirmation ); $save_button.on( 'click', { view: this }, this.onSubmit ); $( document.body ).on( 'click', '.add_shipping_method:not(.disabled)', { view: this }, this.onAddShippingMethod ); $( document.body ).on( 'click', '.wc-shipping-zone-add', { view: this }, this.onAddNewRow ); $( document.body ).on( 'wc_backbone_modal_response', this.onAddShippingMethodSubmitted ); $( document.body ).on( 'change', '.wc-shipping-zone-method-selector select', this.onChangeShippingMethodSelector ); }, block: function() { $( this.el ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( this.el ).unblock(); }, render: function() { var zones = _.indexBy( this.model.get( 'zones' ), 'zone_id' ), view = this; view.$el.empty(); view.unblock(); if ( _.size( zones ) ) { // Sort zones zones = _.sortBy( zones, function( zone ) { return parseInt( zone.zone_order, 10 ); } ); // Populate $tbody with the current zones $.each( zones, function( id, rowData ) { view.renderRow( rowData ); } ); } else { view.$el.append( $blank_template ); } view.initRows(); }, renderRow: function( rowData ) { var view = this; view.$el.append( view.rowTemplate( rowData ) ); view.initRow( rowData ); }, initRow: function( rowData ) { var view = this; var $tr = view.$el.find( 'tr[data-id="' + rowData.zone_id + '"]'); // Select values in region select _.each( rowData.zone_locations, function( location ) { if ( 'string' === jQuery.type( location ) ) { $tr.find( 'option[value="' + location + '"]' ).prop( 'selected', true ); } else { if ( 'postcode' === location.type ) { var postcode_field = $tr.find( '.wc-shipping-zone-postcodes :input' ); if ( postcode_field.val() ) { postcode_field.val( postcode_field.val() + '\n' + location.code ); } else { postcode_field.val( location.code ); } $tr.find( '.wc-shipping-zone-postcodes' ).show(); $tr.find( '.wc-shipping-zone-postcodes-toggle' ).hide(); } else { $tr.find( 'option[value="' + location.type + ':' + location.code + '"]' ).prop( 'selected', true ); } } } ); if ( rowData.zone_postcodes ) { _.each( rowData.zone_postcodes, function( location ) { var postcode_field = $tr.find( '.wc-shipping-zone-postcodes :input' ); if ( postcode_field.val() ) { postcode_field.val( postcode_field.val() + '\n' + location.code ); } else { postcode_field.val( location.code ); } $tr.find( '.wc-shipping-zone-postcodes' ).show(); $tr.find( '.wc-shipping-zone-postcodes-toggle' ).hide(); } ); } // List shipping methods view.renderShippingMethods( rowData.zone_id, rowData.shipping_methods ); // Make the row function $tr.find( '.view' ).show(); $tr.find( '.edit' ).hide(); $tr.find( '.wc-shipping-zone-edit' ).on( 'click', { view: this }, this.onEditRow ); $tr.find( '.wc-shipping-zone-cancel-edit' ).on( 'click', { view: this }, this.onCancelEditRow ); $tr.find( '.wc-shipping-zone-delete' ).on( 'click', { view: this }, this.onDeleteRow ); $tr.find( '.wc-shipping-zone-postcodes-toggle' ).on( 'click', { view: this }, this.onTogglePostcodes ); // Editing? if ( true === rowData.editing ) { $tr.addClass( 'editing' ); $tr.find( '.wc-shipping-zone-edit' ).trigger( 'click' ); } }, initRows: function() { // Stripe if ( 0 === ( $( 'tbody.wc-shipping-zone-rows tr' ).length % 2 ) ) { $table.find( 'tbody.wc-shipping-zone-rows' ).next( 'tbody' ).find( 'tr' ).addClass( 'odd' ); } else { $table.find( 'tbody.wc-shipping-zone-rows' ).next( 'tbody' ).find( 'tr' ).removeClass( 'odd' ); } // Tooltips $( '#tiptip_holder' ).removeAttr( 'style' ); $( '#tiptip_arrow' ).removeAttr( 'style' ); $( '.tips' ).tipTip({ 'attribute': 'data-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 50 }); }, renderShippingMethods: function( zone_id, shipping_methods ) { var $tr = $( '.wc-shipping-zones tr[data-id="' + zone_id + '"]'); var $method_list = $tr.find('.wc-shipping-zone-methods ul'); $method_list.find( '.wc-shipping-zone-method' ).remove(); if ( _.size( shipping_methods ) ) { _.each( shipping_methods, function( shipping_method, instance_id ) { var class_name = 'method_disabled'; if ( 'yes' === shipping_method.enabled ) { class_name = 'method_enabled'; } $method_list.prepend( '
  • ' + shipping_method.title + '
  • ' ); } ); } else { $method_list.prepend( '
  • ' + data.strings.no_shipping_methods_offered + '
  • ' ); } }, onSubmit: function( event ) { event.data.view.block(); event.data.view.model.save(); event.preventDefault(); }, onAddNewRow: function( event ) { event.preventDefault(); var view = event.data.view, model = view.model, zones = _.indexBy( model.get( 'zones' ), 'zone_id' ), changes = {}, size = _.size( zones ), newRow = _.extend( {}, data.default_zone, { zone_id : 'new-' + size + '-' + Date.now(), editing : true } ); $( '.wc-shipping-zones-blank-state' ).closest( 'tr' ).remove(); newRow.zone_order = 1 + _.max( _.pluck( zones, 'zone_order' ), function ( val ) { // Cast them all to integers, because strings compare funky. Sighhh. return parseInt( val, 10 ); } ); changes[ newRow.zone_id ] = newRow; model.logChanges( changes ); view.renderRow( newRow ); view.initRows(); }, onTogglePostcodes: function( event ) { event.preventDefault(); var $tr = $( this ).closest( 'tr'); $tr.find( '.wc-shipping-zone-postcodes' ).show(); $tr.find( '.wc-shipping-zone-postcodes-toggle' ).hide(); }, onEditRow: function( event ) { event.preventDefault(); event.data.view.model.trigger( 'change:zones' ); $( this ).closest('tr').addClass( 'editing' ); $( this ).closest('tr').find('.view').hide(); $( this ).closest('tr').find('.edit').show(); $( '.wc-shipping-zone-region-select:not(.enhanced)' ).select2( select2_args ); $( '.wc-shipping-zone-region-select:not(.enhanced)' ).addClass('enhanced'); var addShippingMethod = $( this ).closest('tr').find('.add_shipping_method'); addShippingMethod.addClass( 'disabled' ); addShippingMethod.tipTip({ 'attribute': 'data-disabled-tip', 'fadeIn': 50, 'fadeOut': 50, 'delay': 50 }); }, onCancelEditRow: function( event ) { var view = event.data.view, model = view.model, row = $( this ).closest('tr'), zone_id = row.data('id'), zones = _.indexBy( model.get( 'zones' ), 'zone_id' ); event.preventDefault(); model.discardChanges( zone_id ); if ( zones[ zone_id ] ) { zones[ zone_id ].editing = false; row.after( view.rowTemplate( zones[ zone_id ] ) ); view.initRow( zones[ zone_id ] ); } row.remove(); view.initRows(); }, onDeleteRow: function( event ) { var view = event.data.view, model = view.model, zones = _.indexBy( model.get( 'zones' ), 'zone_id' ), changes = {}, row = $( this ).closest('tr'), zone_id = $( this ).closest('tr').data('id'); event.preventDefault(); if ( zones[ zone_id ] ) { delete zones[ zone_id ]; changes[ zone_id ] = _.extend( changes[ zone_id ] || {}, { deleted : 'deleted' } ); model.set( 'zones', zones ); model.logChanges( changes ); } row.remove(); view.initRows(); }, setUnloadConfirmation: function() { this.needsUnloadConfirm = true; $save_button.prop( 'disabled', false ); }, clearUnloadConfirmation: function() { this.needsUnloadConfirm = false; $save_button.prop( 'disabled', true ); }, unloadConfirmation: function( event ) { if ( event.data.view.needsUnloadConfirm ) { event.returnValue = data.strings.unload_confirmation_msg; window.event.returnValue = data.strings.unload_confirmation_msg; return data.strings.unload_confirmation_msg; } }, updateModelOnChange: function( event ) { var model = event.data.view.model, $target = $( event.target ), zone_id = $target.closest( 'tr' ).data( 'id' ), attribute = $target.data( 'attribute' ), value = $target.val(), zones = _.indexBy( model.get( 'zones' ), 'zone_id' ), changes = {}; if ( ! zones[ zone_id ] || zones[ zone_id ][ attribute ] !== value ) { changes[ zone_id ] = {}; changes[ zone_id ][ attribute ] = value; } model.logChanges( changes ); }, updateModelOnSort: function( event ) { var view = event.data.view, model = view.model, zones = _.indexBy( model.get( 'zones' ), 'zone_id' ), rows = $( 'tbody.wc-shipping-zone-rows tr' ), changes = {}; // Update sorted row position _.each( rows, function( row ) { var zone_id = $( row ).data( 'id' ), old_position = null, new_position = parseInt( $( row ).index(), 10 ); if ( zones[ zone_id ] ) { old_position = parseInt( zones[ zone_id ].zone_order, 10 ); } if ( old_position !== new_position ) { changes[ zone_id ] = _.extend( changes[ zone_id ] || {}, { zone_order : new_position } ); } } ); if ( _.size( changes ) ) { model.logChanges( changes ); } }, onAddShippingMethod: function( event ) { var zone_id = $( this ).closest('tr').data('id'); event.preventDefault(); $( this ).WCBackboneModal({ template : 'wc-modal-add-shipping-method', variable : { zone_id : zone_id } }); $( '.wc-shipping-zone-method-selector select' ).change(); }, onAddShippingMethodSubmitted: function( event, target, posted_data ) { if ( 'wc-modal-add-shipping-method' === target ) { shippingZoneView.block(); // Add method to zone via ajax call $.post( ajaxurl + ( ajaxurl.indexOf( '?' ) > 0 ? '&' : '?' ) + 'action=woocommerce_shipping_zone_add_method', { wc_shipping_zones_nonce : data.wc_shipping_zones_nonce, method_id : posted_data.add_method_id, zone_id : posted_data.zone_id }, function( response, textStatus ) { if ( 'success' === textStatus && response.success ) { // Method was added. Render methods. shippingZoneView.renderShippingMethods( posted_data.zone_id, response.data.methods ); } shippingZoneView.unblock(); }, 'json' ); } }, onChangeShippingMethodSelector: function() { var description = $( this ).find( 'option:selected' ).data( 'description' ); $( this ).parent().find( '.wc-shipping-zone-method-description' ).remove(); $( this ).after( '

    ' + description + '

    ' ); $( this ).closest( 'article' ).height( $( this ).parent().height() ); } } ), shippingZone = new ShippingZone({ zones: data.zones } ), shippingZoneView = new ShippingZoneView({ model: shippingZone, el: $tbody } ); shippingZoneView.render(); $tbody.sortable({ items: 'tr', cursor: 'move', axis: 'y', handle: 'td.wc-shipping-zone-sort', scrollSensitivity: 40 }); function getEnhancedSelectFormatString() { var formatString = { formatMatches: function( matches ) { if ( 1 === matches ) { return wc_enhanced_select_params.i18n_matches_1; } return wc_enhanced_select_params.i18n_matches_n.replace( '%qty%', matches ); }, formatNoMatches: function() { return wc_enhanced_select_params.i18n_no_matches; }, formatAjaxError: function() { return wc_enhanced_select_params.i18n_ajax_error; }, formatInputTooShort: function( input, min ) { var number = min - input.length; if ( 1 === number ) { return wc_enhanced_select_params.i18n_input_too_short_1; } return wc_enhanced_select_params.i18n_input_too_short_n.replace( '%qty%', number ); }, formatInputTooLong: function( input, max ) { var number = input.length - max; if ( 1 === number ) { return wc_enhanced_select_params.i18n_input_too_long_1; } return wc_enhanced_select_params.i18n_input_too_long_n.replace( '%qty%', number ); }, formatSelectionTooBig: function( limit ) { if ( 1 === limit ) { return wc_enhanced_select_params.i18n_selection_too_long_1; } return wc_enhanced_select_params.i18n_selection_too_long_n.replace( '%qty%', limit ); }, formatLoadMore: function() { return wc_enhanced_select_params.i18n_load_more; }, formatSearching: function() { return wc_enhanced_select_params.i18n_searching; } }; return formatString; } }); })( jQuery, shippingZonesLocalizeScript, wp, ajaxurl ); assets/js/round/round.min.js000066600000000472152133032050012061 0ustar00function round(a,b,c){var d,e,f,g;if(b|=0,d=Math.pow(10,b),a*=d,g=a>0|-(a<0),f=a%1===.5*g,e=Math.floor(a),f)switch(c){case"2":case"PHP_ROUND_HALF_DOWN":a=e+(g<0);break;case"3":case"PHP_ROUND_HALF_EVEN":a=e+e%2*g;break;case"4":case"PHP_ROUND_HALF_ODD":a=e+!(e%2);break;default:a=e+(g>0)}return(f?a:Math.round(a))/d}assets/js/round/round.js000066600000003650152133032050011300 0ustar00function round (value, precision, mode) { // http://kevin.vanzonneveld.net // + original by: Philip Peterson // + revised by: Onno Marsman // + input by: Greenseed // + revised by: T.Wild // + input by: meo // + input by: William // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + input by: Josep Sanz (http://www.ws3.es/) // + revised by: Rafał Kukawski (http://blog.kukawski.pl/) // % note 1: Great work. Ideas for improvement: // % note 1: - code more compliant with developer guidelines // % note 1: - for implementing PHP constant arguments look at // % note 1: the pathinfo() function, it offers the greatest // % note 1: flexibility & compatibility possible // * example 1: round(1241757, -3); // * returns 1: 1242000 // * example 2: round(3.6); // * returns 2: 4 // * example 3: round(2.835, 2); // * returns 3: 2.84 // * example 4: round(1.1749999999999, 2); // * returns 4: 1.17 // * example 5: round(58551.799999999996, 2); // * returns 5: 58551.8 var m, f, isHalf, sgn; // helper variables precision |= 0; // making sure precision is integer m = Math.pow(10, precision); value *= m; sgn = (value > 0) | -(value < 0); // sign of the number isHalf = value % 1 === 0.5 * sgn; f = Math.floor(value); if (isHalf) { switch (mode) { case '2': case 'PHP_ROUND_HALF_DOWN': value = f + (sgn < 0); // rounds .5 toward zero break; case '3': case 'PHP_ROUND_HALF_EVEN': value = f + (f % 2 * sgn); // rouds .5 towards the next even integer break; case '4': case 'PHP_ROUND_HALF_ODD': value = f + !(f % 2); // rounds .5 towards the next odd integer break; default: value = f + (sgn > 0); // rounds .5 away from zero } } return (isHalf ? value : Math.round(value)) / m; }assets/js/stupidtable/stupidtable.js000066600000010217152133032050013657 0ustar00// Stupid jQuery table plugin. // Call on a table // sortFns: Sort functions for your datatypes. (function($) { $.fn.stupidtable = function(sortFns) { return this.each(function() { var $table = $(this); sortFns = sortFns || {}; // Merge sort functions with some default sort functions. sortFns = $.extend({}, $.fn.stupidtable.default_sort_fns, sortFns); // ==================================================== // // Begin execution! // // ==================================================== // // Do sorting when THs are clicked $table.on("click.stupidtable", "thead th", function() { var $this = $(this); var th_index = 0; var dir = $.fn.stupidtable.dir; // Account for colspans $this.parents("tr").find("th").slice(0, $this.index() + 1).each(function() { var cols = $(this).attr("colspan") || 1; th_index += parseInt(cols,10); }); th_index = th_index - 1; // Determine (and/or reverse) sorting direction, default `asc` var sort_dir = $this.data("sort-default") || dir.ASC; if ($this.data("sort-dir")) sort_dir = $this.data("sort-dir") === dir.ASC ? dir.DESC : dir.ASC; // Choose appropriate sorting function. var type = $this.data("sort") || null; // Prevent sorting if no type defined if (type === null) { return; } // Trigger `beforetablesort` event that calling scripts can hook into; // pass parameters for sorted column index and sorting direction $table.trigger("beforetablesort", {column: $this.index(), direction: sort_dir}); // More reliable method of forcing a redraw $table.css("display"); // Run sorting asynchronously on a timeout to force browser redraw after // `beforetablesort` callback. Also avoids locking up the browser too much. setTimeout(function() { // Gather the elements for this column var sortMethod = sortFns[type]; $table.children("tbody").each(function(index,tbody){ var column = []; var $tbody = $(tbody); var trs = $tbody.children("tr").not('[data-sort-ignore]'); // Extract the data for the column that needs to be sorted and pair it up // with the TR itself into a tuple trs.each(function(index,tr) { var $e = $(tr).children().eq(th_index); var sort_val = $e.data("sort-value"); var order_by = typeof(sort_val) !== "undefined" ? sort_val : $e.text(); column.push([order_by, tr]); }); // Sort by the data-order-by value column.sort(function(a, b) { return sortMethod(a[0], b[0]); }); if (sort_dir != dir.ASC) column.reverse(); // Replace the content of tbody with the sorted rows. Strangely (and // conveniently!) enough, .append accomplishes this for us. trs = $.map(column, function(kv) { return kv[1]; }); $tbody.append(trs); }); // Reset siblings $table.find("th").data("sort-dir", null).removeClass("sorting-desc sorting-asc"); $this.data("sort-dir", sort_dir).addClass("sorting-"+sort_dir); // Trigger `aftertablesort` event. Similar to `beforetablesort` $table.trigger("aftertablesort", {column: $this.index(), direction: sort_dir}); // More reliable method of forcing a redraw $table.css("display"); }, 10); }); }); }; // Enum containing sorting directions $.fn.stupidtable.dir = {ASC: "asc", DESC: "desc"}; $.fn.stupidtable.default_sort_fns = { "int": function(a, b) { return parseInt(a, 10) - parseInt(b, 10); }, "float": function(a, b) { return parseFloat(a) - parseFloat(b); }, "string": function(a, b) { return a.localeCompare(b); }, "string-ins": function(a, b) { a = a.toLocaleLowerCase(); b = b.toLocaleLowerCase(); return a.localeCompare(b); } }; })(jQuery); assets/js/stupidtable/stupidtable.min.js000066600000002731152133032050014443 0ustar00!function(a){a.fn.stupidtable=function(b){return this.each(function(){var c=a(this);b=b||{},b=a.extend({},a.fn.stupidtable.default_sort_fns,b),c.on("click.stupidtable","thead th",function(){var d=a(this),e=0,f=a.fn.stupidtable.dir;d.parents("tr").find("th").slice(0,d.index()+1).each(function(){var b=a(this).attr("colspan")||1;e+=parseInt(b,10)}),e-=1;var g=d.data("sort-default")||f.ASC;d.data("sort-dir")&&(g=d.data("sort-dir")===f.ASC?f.DESC:f.ASC);var h=d.data("sort")||null;null!==h&&(c.trigger("beforetablesort",{column:d.index(),direction:g}),c.css("display"),setTimeout(function(){var i=b[h];c.children("tbody").each(function(b,c){var d=[],h=a(c),j=h.children("tr").not("[data-sort-ignore]");j.each(function(b,c){var f=a(c).children().eq(e),g=f.data("sort-value"),h="undefined"!=typeof g?g:f.text();d.push([h,c])}),d.sort(function(a,b){return i(a[0],b[0])}),g!=f.ASC&&d.reverse(),j=a.map(d,function(a){return a[1]}),h.append(j)}),c.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc"),d.data("sort-dir",g).addClass("sorting-"+g),c.trigger("aftertablesort",{column:d.index(),direction:g}),c.css("display")},10))})})},a.fn.stupidtable.dir={ASC:"asc",DESC:"desc"},a.fn.stupidtable.default_sort_fns={int:function(a,b){return parseInt(a,10)-parseInt(b,10)},float:function(a,b){return parseFloat(a)-parseFloat(b)},string:function(a,b){return a.localeCompare(b)},"string-ins":function(a,b){return a=a.toLocaleLowerCase(),b=b.toLocaleLowerCase(),a.localeCompare(b)}}}(jQuery);assets/js/jquery-flot/jquery.flot.stack.min.js000066600000002443152133032050015452 0ustar00!function(a){function b(a){function b(a,b){for(var c=null,d=0;d2&&(t?d.format[2].x:d.format[2].y),v=s&&c.lines.steps,w=!0,x=t?1:0,y=t?0:1,z=0,A=0;;){if(z>=o.length)break;if(l=r.length,null==o[z]){for(m=0;m=q.length){if(!s)for(m=0;mi){if(s&&z>0&&null!=o[z-n]){for(h=g+(o[z-n+y]-g)*(i-f)/(o[z-n+x]-f),r.push(i),r.push(h+j),m=2;m0&&null!=q[A-p]&&(k=j+(q[A-p+y]-j)*(f-i)/(q[A-p+x]-i)),r[l+y]+=k,z+=n}w=!1,l!=r.length&&u&&(r[l+2]+=k)}if(v&&l!=r.length&&l>0&&null!=r[l]&&r[l]!=r[l-n]&&r[l+1]!=r[l-n+1]){for(m=0;me.series.pie.combine.threshold)&&h.push({data:[[1,j]],color:b[i].color,label:b[i].label,angle:j*Math.PI*2/c,percent:j/(c/100)})}return f>1&&h.push({data:[[1,d]],color:g,label:e.series.pie.combine.label,angle:d*Math.PI*2/c,percent:d/(c/100)}),h}function h(b,f){function g(){y.clearRect(0,0,k,l),t.children().filter(".pieLabel, .pieLabelBackground").remove()}function h(){var a=e.series.pie.shadow.left,b=e.series.pie.shadow.top,c=10,d=e.series.pie.shadow.alpha,f=e.series.pie.radius>1?e.series.pie.radius:u*e.series.pie.radius;if(!(f>=k/2-a||f*e.series.pie.tilt>=l/2-b||f<=c)){y.save(),y.translate(a,b),y.globalAlpha=d,y.fillStyle="#000",y.translate(v,w),y.scale(1,e.series.pie.tilt);for(var g=1;g<=c;g++)y.beginPath(),y.arc(0,0,f,0,2*Math.PI,!1),y.fill(),f-=g;y.restore()}}function j(){function b(a,b,c){a<=0||isNaN(a)||(c?y.fillStyle=b:(y.strokeStyle=b,y.lineJoin="round"),y.beginPath(),Math.abs(a-2*Math.PI)>1e-9&&y.moveTo(0,0),y.arc(0,0,f,g,g+a/2,!1),y.arc(0,0,f,g+a/2,g+a,!1),y.closePath(),g+=a,c?y.fill():y.stroke())}function c(){function b(b,c,d){if(0==b.data[0][1])return!0;var g,h=e.legend.labelFormatter,i=e.series.pie.label.formatter;g=h?h(b.label,b):b.label,i&&(g=i(g,b));var j=(c+b.angle+c)/2,m=v+Math.round(Math.cos(j)*f),n=w+Math.round(Math.sin(j)*f)*e.series.pie.tilt,o=""+g+"";t.append(o);var p=t.children("#pieLabel"+d),q=n-p.height()/2,r=m-p.width()/2;if(p.css("top",q),p.css("left",r),0-q>0||0-r>0||l-(q+p.height())<0||k-(r+p.width())<0)return!1;if(0!=e.series.pie.label.background.opacity){var s=e.series.pie.label.background.color;null==s&&(s=b.color);var u="top:"+q+"px;left:"+r+"px;";a("
    ").css("opacity",e.series.pie.label.background.opacity).insertBefore(p)}return!0}for(var c=d,f=e.series.pie.label.radius>1?e.series.pie.label.radius:u*e.series.pie.label.radius,g=0;g=100*e.series.pie.label.threshold&&!b(n[g],c,g))return!1;c+=n[g].angle}return!0}var d=Math.PI*e.series.pie.startAngle,f=e.series.pie.radius>1?e.series.pie.radius:u*e.series.pie.radius;y.save(),y.translate(v,w),y.scale(1,e.series.pie.tilt),y.save();for(var g=d,h=0;h0){y.save(),y.lineWidth=e.series.pie.stroke.width,g=d;for(var h=0;hk-u&&(v=k-u);var n=b.getData(),o=0;do o>0&&(u*=d),o+=1,g(),e.series.pie.tilt<=.8&&h();while(!j()&&o=c&&(g(),t.prepend("
    Could not draw pie with labels contained inside canvas
    ")),b.setSeries&&b.insertLegend&&(b.setSeries(n),b.insertLegend())}}function i(a){if(e.series.pie.innerRadius>0){a.save();var b=e.series.pie.innerRadius>1?e.series.pie.innerRadius:u*e.series.pie.innerRadius;a.globalCompositeOperation="destination-out",a.beginPath(),a.fillStyle=e.series.pie.stroke.color,a.arc(0,0,b,0,2*Math.PI,!1),a.fill(),a.closePath(),a.restore(),a.save(),a.beginPath(),a.strokeStyle=e.series.pie.stroke.color,a.arc(0,0,b,0,2*Math.PI,!1),a.stroke(),a.closePath(),a.restore()}}function j(a,b){for(var c=!1,d=-1,e=a.length,f=e-1;++d1?g.series.pie.radius:u*g.series.pie.radius,i=0;i1e-9&&b.moveTo(0,0),b.arc(0,0,e,a.startAngle,a.startAngle+a.angle/2,!1),b.arc(0,0,e,a.startAngle+a.angle/2,a.startAngle+a.angle,!1),b.closePath(),b.fill())}var d=a.getOptions(),e=d.series.pie.radius>1?d.series.pie.radius:u*d.series.pie.radius;b.save(),b.translate(v,w),b.scale(1,d.series.pie.tilt);for(var f=0;f1?b.series.pie.tilt=1:b.series.pie.tilt<0&&(b.series.pie.tilt=0))}),b.hooks.bindEvents.push(function(a,b){var c=a.getOptions();c.series.pie.show&&(c.grid.hoverable&&b.unbind("mousemove").mousemove(l),c.grid.clickable&&b.unbind("click").click(m))}),b.hooks.processDatapoints.push(function(a,b,c,d){var e=a.getOptions();e.series.pie.show&&f(a,b,c,d)}),b.hooks.drawOverlay.push(function(a,b){var c=a.getOptions();c.series.pie.show&&r(a,b)}),b.hooks.draw.push(function(a,b){var c=a.getOptions();c.series.pie.show&&h(a,b)})}var c=10,d=.95,e={series:{pie:{show:!1,radius:"auto",innerRadius:0,startAngle:1.5,tilt:1,shadow:{left:5,top:15,alpha:.02},offset:{top:0,left:"auto"},stroke:{color:"#fff",width:1},label:{show:"auto",formatter:function(a,b){return"
    "+a+"
    "+Math.round(b.percent)+"%
    "},radius:1,background:{color:null,opacity:0},threshold:0},combine:{threshold:-1,color:null,label:"Other"},highlight:{opacity:.5}}}};a.plot.plugins.push({init:b,options:e,name:"pie",version:"1.1"})}(jQuery);assets/js/jquery-flot/jquery.flot.min.js000066600000106023152133032050014345 0ustar00!function(a){a.color={},a.color.make=function(b,c,d,e){var f={};return f.r=b||0,f.g=c||0,f.b=d||0,f.a=null!=e?e:1,f.add=function(a,b){for(var c=0;c=1?"rgb("+[f.r,f.g,f.b].join(",")+")":"rgba("+[f.r,f.g,f.b,f.a].join(",")+")"},f.normalize=function(){function a(a,b,c){return bc?c:b}return f.r=a(0,parseInt(f.r),255),f.g=a(0,parseInt(f.g),255),f.b=a(0,parseInt(f.b),255),f.a=a(0,f.a,1),f},f.clone=function(){return a.color.make(f.r,f.b,f.g,f.a)},f.normalize()},a.color.extract=function(b,c){var d;do{if(d=b.css(c).toLowerCase(),""!=d&&"transparent"!=d)break;b=b.parent()}while(!a.nodeName(b.get(0),"body"));return"rgba(0, 0, 0, 0)"==d&&(d="transparent"),a.color.parse(d)},a.color.parse=function(c){var d,e=a.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return e(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10));if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c))return e(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]));if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return e(2.55*parseFloat(d[1]),2.55*parseFloat(d[2]),2.55*parseFloat(d[3]));if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c))return e(2.55*parseFloat(d[1]),2.55*parseFloat(d[2]),2.55*parseFloat(d[3]),parseFloat(d[4]));if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return e(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16));if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return e(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16));var f=a.trim(c).toLowerCase();return"transparent"==f?e(255,255,255,0):(d=b[f]||[0,0,0],e(d[0],d[1],d[2]))};var b={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),function(a){function b(b,c){var d=c.children("."+b)[0];if(null==d&&(d=document.createElement("canvas"),d.className=b,a(d).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(c),!d.getContext)){if(!window.G_vmlCanvasManager)throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");d=window.G_vmlCanvasManager.initElement(d)}this.element=d;var e=this.context=d.getContext("2d"),f=window.devicePixelRatio||1,g=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;this.pixelRatio=f/g,this.resize(c.width(),c.height()),this.textContainer=null,this.text={},this._textCache={}}function c(c,e,f,g){function h(a,b){b=[qa].concat(b);for(var c=0;cd&&(d=e))}c<=d&&(c=d+1);var f,g=[],h=ea.colors,i=h.length,j=0;for(b=0;b=0?j<.5?-j-.2:0:-j),g[b]=f.scale("rgb",1+j);var k,l=0;for(b=0;ba.datamax&&c!=s&&(a.datamax=c)}var c,d,e,f,g,i,j,k,l,m,o,p,q=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=Number.MAX_VALUE;for(a.each(n(),function(a,b){b.datamin=q,b.datamax=r,b.used=!1}),c=0;c0&&null!=i[e-j]&&i[e-j]!=i[e]&&i[e-j+1]!=i[e+1]){for(f=0;fy&&(y=k)),l.y&&(kz&&(z=k)));if(g.bars.show){var A;switch(g.bars.align){case"left":A=0;break;case"right":A=-g.bars.barWidth;break;case"center":A=-g.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+g.bars.align)}g.bars.horizontal?(x+=A,z+=A+g.bars.barWidth):(w+=A,y+=A+g.bars.barWidth)}b(g.xaxis,w,y),b(g.yaxis,x,z)}a.each(n(),function(a,b){b.datamin==q&&(b.datamin=null),b.datamax==r&&(b.datamax=null)})}function t(){c.css("padding",0).children(":not(.flot-base,.flot-overlay)").remove(),"static"==c.css("position")&&c.css("position","relative"),fa=new b("flot-base",c),ga=new b("flot-overlay",c),ia=fa.context,ja=ga.context,ha=a(ga.element).unbind();var d=c.data("plot");d&&(d.shutdown(),ga.clear()),c.data("plot",qa)}function u(){ea.grid.hoverable&&(ha.mousemove(T),ha.bind("mouseleave",U)),ea.grid.clickable&&ha.click(V),h(pa.bindEvents,[ha])}function v(){sa&&clearTimeout(sa),ha.unbind("mousemove",T),ha.unbind("mouseleave",U),ha.unbind("click",V),h(pa.shutdown,[ha])}function w(a){function b(a){return a}var c,d,e=a.options.transform||b,f=a.options.inverseTransform;"x"==a.direction?(c=a.scale=na/Math.abs(e(a.max)-e(a.min)),d=Math.min(e(a.max),e(a.min))):(c=a.scale=oa/Math.abs(e(a.max)-e(a.min)),c=-c,d=Math.max(e(a.max),e(a.min))),e==b?a.p2c=function(a){return(a-d)*c}:a.p2c=function(a){return(e(a)-d)*c},f?a.c2p=function(a){return f(d+a/c)}:a.c2p=function(a){return d+a/c}}function x(a){var b=a.options,c=a.ticks||[],d=b.labelWidth||0,e=b.labelHeight||0,f=d||"x"==a.direction?Math.floor(fa.width/(c.length||1)):null;legacyStyles=a.direction+"Axis "+a.direction+a.n+"Axis",layer="flot-"+a.direction+"-axis flot-"+a.direction+a.n+"-axis "+legacyStyles,font=b.font||"flot-tick-label tickLabel";for(var g=0;g=0;--b)y(g[b]);A(),a.each(g,function(a,b){z(b)})}na=fa.width-ma.left-ma.right,oa=fa.height-ma.bottom-ma.top,a.each(c,function(a,b){w(b)}),d&&K(),R()}function C(a){var b=a.options,c=+(null!=b.min?b.min:a.datamin),d=+(null!=b.max?b.max:a.datamax),e=d-c;if(0==e){var f=0==d?1:.01;null==b.min&&(c-=f),null!=b.max&&null==b.min||(d+=f)}else{var g=b.autoscaleMargin;null!=g&&(null==b.min&&(c-=e*g,c<0&&null!=a.datamin&&a.datamin>=0&&(c=0)),null==b.max&&(d+=e*g,d>0&&null!=a.datamax&&a.datamax<=0&&(d=0)))}a.min=c,a.max=d}function D(b){var c,e=b.options;c="number"==typeof e.ticks&&e.ticks>0?e.ticks:.3*Math.sqrt("x"==b.direction?fa.width:fa.height);var f=(b.max-b.min)/c,g=-Math.floor(Math.log(f)/Math.LN10),h=e.tickDecimals;null!=h&&g>h&&(g=h);var i,j=Math.pow(10,-g),k=f/j;if(k<1.5?i=1:k<3?(i=2,k>2.25&&(null==h||g+1<=h)&&(i=2.5,++g)):i=k<7.5?5:10,i*=j,null!=e.minTickSize&&i0&&(null==e.min&&(b.min=Math.min(b.min,m[0])),null==e.max&&m.length>1&&(b.max=Math.max(b.max,m[m.length-1]))),b.tickGenerator=function(a){var b,c,d=[];for(c=0;c1&&/\..*0$/.test((o[1]-o[0]).toFixed(n))||(b.tickDecimals=n)}}}}function E(b){var c=b.options.ticks,d=[];null==c||"number"==typeof c&&c>0?d=b.tickGenerator(b):c&&(d=a.isFunction(c)?c(b):c);var e,f;for(b.ticks=[],e=0;e1&&(g=h[1])):f=+h,null==g&&(g=b.tickFormatter(f,b)),isNaN(f)||b.ticks.push({v:f,label:g})}}function F(a,b){a.options.autoscaleMargin&&b.length>0&&(null==a.options.min&&(a.min=Math.min(a.min,b[0].v)),null==a.options.max&&b.length>1&&(a.max=Math.max(a.max,b[b.length-1].v)))}function G(){fa.clear(),h(pa.drawBackground,[ia]);var a=ea.grid;a.show&&a.backgroundColor&&I(),a.show&&!a.aboveData&&J();for(var b=0;be){var i=d;d=e,e=i}return{from:d,to:e,axis:c}}function I(){ia.save(),ia.translate(ma.left,ma.top),ia.fillStyle=ca(ea.grid.backgroundColor,oa,0,"rgba(255, 255, 255, 0)"),ia.fillRect(0,0,na,oa),ia.restore()}function J(){var b,c,d,e;ia.save(),ia.translate(ma.left,ma.top);var f=ea.grid.markings;if(f)for(a.isFunction(f)&&(c=qa.getAxes(),c.xmin=c.xaxis.min,c.xmax=c.xaxis.max,c.ymin=c.yaxis.min,c.ymax=c.yaxis.max,f=f(c)),b=0;bh.axis.max||i.toi.axis.max||(h.from=Math.max(h.from,h.axis.min),h.to=Math.min(h.to,h.axis.max),i.from=Math.max(i.from,i.axis.min),i.to=Math.min(i.to,i.axis.max),h.from==h.to&&i.from==i.to||(h.from=h.axis.p2c(h.from),h.to=h.axis.p2c(h.to),i.from=i.axis.p2c(i.from),i.to=i.axis.p2c(i.to),h.from==h.to||i.from==i.to?(ia.beginPath(),ia.strokeStyle=g.color||ea.grid.markingsColor,ia.lineWidth=g.lineWidth||ea.grid.markingsLineWidth,ia.moveTo(h.from,i.from),ia.lineTo(h.to,i.to),ia.stroke()):(ia.fillStyle=g.color||ea.grid.markingsColor,ia.fillRect(h.from,i.to,h.to-h.from,i.from-i.to))))}c=n(),d=ea.grid.borderWidth;for(var j=0;jp.max||"full"==r&&("object"==typeof d&&d[p.position]>0||d>0)&&(s==p.min||s==p.max)||("x"==p.direction?(k=p.p2c(s),o="full"==r?-oa:r,"top"==p.position&&(o=-o)):(l=p.p2c(s),m="full"==r?-na:r,"left"==p.position&&(m=-m)),1==ia.lineWidth&&("x"==p.direction?k=Math.floor(k)+.5:l=Math.floor(l)+.5),ia.moveTo(k,l),ia.lineTo(k+m,l+o))}ia.stroke()}}d&&(e=ea.grid.borderColor,"object"==typeof d||"object"==typeof e?("object"!=typeof d&&(d={top:d,right:d,bottom:d,left:d}),"object"!=typeof e&&(e={top:e,right:e,bottom:e,left:e}),d.top>0&&(ia.strokeStyle=e.top,ia.lineWidth=d.top,ia.beginPath(),ia.moveTo(0-d.left,0-d.top/2),ia.lineTo(na,0-d.top/2),ia.stroke()),d.right>0&&(ia.strokeStyle=e.right,ia.lineWidth=d.right,ia.beginPath(),ia.moveTo(na+d.right/2,0-d.top),ia.lineTo(na+d.right/2,oa),ia.stroke()),d.bottom>0&&(ia.strokeStyle=e.bottom,ia.lineWidth=d.bottom,ia.beginPath(),ia.moveTo(na+d.right,oa+d.bottom/2),ia.lineTo(0,oa+d.bottom/2),ia.stroke()),d.left>0&&(ia.strokeStyle=e.left,ia.lineWidth=d.left,ia.beginPath(),ia.moveTo(0-d.left/2,oa+d.bottom),ia.lineTo(0-d.left/2,0),ia.stroke())):(ia.lineWidth=d,ia.strokeStyle=ea.grid.borderColor,ia.strokeRect(-d/2,-d/2,na+d,oa+d))),ia.restore()}function K(){a.each(n(),function(a,b){if(b.show&&0!=b.ticks.length){var c,d,e,f,g,h=b.box,i=b.direction+"Axis "+b.direction+b.n+"Axis",j="flot-"+b.direction+"-axis flot-"+b.direction+b.n+"-axis "+i,k=b.options.font||"flot-tick-label tickLabel";fa.removeText(j);for(var l=0;lb.max||("x"==b.direction?(f="center",d=ma.left+b.p2c(c.v),"bottom"==b.position?e=h.top+h.padding:(e=h.top+h.height-h.padding,g="bottom")):(g="middle",e=ma.top+b.p2c(c.v),"left"==b.position?(d=h.left+h.width-h.padding,f="right"):d=h.left+h.padding),fa.addText(j,d,e,c.label,k,null,null,f,g))}})}function L(a){a.lines.show&&M(a),a.bars.show&&P(a),a.points.show&&N(a)}function M(a){function b(a,b,c,d,e){var f=a.points,g=a.pointsize,h=null,i=null;ia.beginPath();for(var j=g;j=n&&l>e.max){if(n>e.max)continue;k=(e.max-l)/(n-l)*(m-k)+k,l=e.max}else if(n>=l&&n>e.max){if(l>e.max)continue;m=(e.max-l)/(n-l)*(m-k)+k,n=e.max}if(k<=m&&k=m&&k>d.max){if(m>d.max)continue;l=(d.max-k)/(m-k)*(n-l)+l,k=d.max}else if(m>=k&&m>d.max){if(k>d.max)continue;n=(d.max-k)/(m-k)*(n-l)+l,m=d.max}k==h&&l==i||ia.moveTo(d.p2c(k)+b,e.p2c(l)+c),h=m,i=n,ia.lineTo(d.p2c(m)+b,e.p2c(n)+c)}}ia.stroke()}function c(a,b,c){for(var d=a.points,e=a.pointsize,f=Math.min(Math.max(0,c.min),c.max),g=0,h=!1,i=1,j=0,k=0;;){if(e>0&&g>d.length+e)break;g+=e;var l=d[g-e],m=d[g-e+i],n=d[g],o=d[g+i];if(h){if(e>0&&null!=l&&null==n){k=g,e=-e,i=2;continue}if(e<0&&g==j+e){ia.fill(),h=!1,e=-e,i=1,g=j=k+e;continue}}if(null!=l&&null!=n){if(l<=n&&l=n&&l>b.max){if(n>b.max)continue;m=(b.max-l)/(n-l)*(o-m)+m,l=b.max}else if(n>=l&&n>b.max){if(l>b.max)continue;o=(b.max-l)/(n-l)*(o-m)+m,n=b.max}if(h||(ia.beginPath(),ia.moveTo(b.p2c(l),c.p2c(f)),h=!0),m>=c.max&&o>=c.max)ia.lineTo(b.p2c(l),c.p2c(c.max)),ia.lineTo(b.p2c(n),c.p2c(c.max));else if(m<=c.min&&o<=c.min)ia.lineTo(b.p2c(l),c.p2c(c.min)),ia.lineTo(b.p2c(n),c.p2c(c.min));else{var p=l,q=n;m<=o&&m=c.min?(l=(c.min-m)/(o-m)*(n-l)+l,m=c.min):o<=m&&o=c.min&&(n=(c.min-m)/(o-m)*(n-l)+l,o=c.min),m>=o&&m>c.max&&o<=c.max?(l=(c.max-m)/(o-m)*(n-l)+l,m=c.max):o>=m&&o>c.max&&m<=c.max&&(n=(c.max-m)/(o-m)*(n-l)+l,o=c.max),l!=p&&ia.lineTo(b.p2c(p),c.p2c(m)),ia.lineTo(b.p2c(l),c.p2c(m)),ia.lineTo(b.p2c(n),c.p2c(o)),n!=q&&(ia.lineTo(b.p2c(n),c.p2c(o)),ia.lineTo(b.p2c(q),c.p2c(o)))}}}}ia.save(),ia.translate(ma.left,ma.top),ia.lineJoin="round";var d=a.lines.lineWidth,e=a.shadowSize;if(d>0&&e>0){ia.lineWidth=e,ia.strokeStyle="rgba(0,0,0,0.1)";var f=Math.PI/18;b(a.datapoints,Math.sin(f)*(d/2+e/2),Math.cos(f)*(d/2+e/2),a.xaxis,a.yaxis),ia.lineWidth=e/2,b(a.datapoints,Math.sin(f)*(d/2+e/4),Math.cos(f)*(d/2+e/4),a.xaxis,a.yaxis)}ia.lineWidth=d,ia.strokeStyle=a.color;var g=Q(a.lines,a.color,0,oa);g&&(ia.fillStyle=g,c(a.datapoints,a.xaxis,a.yaxis)),d>0&&b(a.datapoints,0,0,a.xaxis,a.yaxis),ia.restore()}function N(a){function b(a,b,c,d,e,f,g,h){for(var i=a.points,j=a.pointsize,k=0;kf.max||mg.max||(ia.beginPath(),l=f.p2c(l),m=g.p2c(m)+d,"circle"==h?ia.arc(l,m,b,0,e?Math.PI:2*Math.PI,!1):h(ia,l,m,b,e),ia.closePath(),c&&(ia.fillStyle=c,ia.fill()),ia.stroke())}}ia.save(),ia.translate(ma.left,ma.top);var c=a.points.lineWidth,d=a.shadowSize,e=a.points.radius,f=a.points.symbol;if(0==c&&(c=1e-4),c>0&&d>0){var g=d/2;ia.lineWidth=g,ia.strokeStyle="rgba(0,0,0,0.1)",b(a.datapoints,e,null,g+g/2,!0,a.xaxis,a.yaxis,f),ia.strokeStyle="rgba(0,0,0,0.2)",b(a.datapoints,e,null,g/2,!0,a.xaxis,a.yaxis,f)}ia.lineWidth=c,ia.strokeStyle=a.color,b(a.datapoints,e,Q(a.points,a.color),0,!1,a.xaxis,a.yaxis,f),ia.restore()}function O(a,b,c,d,e,f,g,h,i,j,k,l){var m,n,o,p,q,r,s,t,u;k?(t=r=s=!0,q=!1,m=c,n=a,p=b+d,o=b+e,nh.max||pi.max||(mh.max&&(n=h.max,r=!1),oi.max&&(p=i.max,s=!1),m=h.p2c(m),o=i.p2c(o),n=h.p2c(n),p=i.p2c(p),g&&(j.beginPath(),j.moveTo(m,o),j.lineTo(m,p),j.lineTo(n,p),j.lineTo(n,o),j.fillStyle=g(o,p),j.fill()),l>0&&(q||r||s||t)&&(j.beginPath(),j.moveTo(m,o+f),q?j.lineTo(m,p+f):j.moveTo(m,p+f),s?j.lineTo(n,p+f):j.moveTo(n,p+f),r?j.lineTo(n,o+f):j.moveTo(n,o+f),t?j.lineTo(m,o+f):j.moveTo(m,o+f),j.stroke()))}function P(a){function b(b,c,d,e,f,g,h){for(var i=b.points,j=b.pointsize,k=0;k"),e.push(""),g=!0),e.push('
    '+k.label+"")}if(g&&e.push(""),0!=e.length){var l=''+e.join("")+"
    ";if(null!=ea.legend.container)a(ea.legend.container).html(l);else{var m="",n=ea.legend.position,o=ea.legend.margin;null==o[0]&&(o=[o,o]),"n"==n.charAt(0)?m+="top:"+(o[1]+ma.top)+"px;":"s"==n.charAt(0)&&(m+="bottom:"+(o[1]+ma.bottom)+"px;"),"e"==n.charAt(1)?m+="right:"+(o[0]+ma.right)+"px;":"w"==n.charAt(1)&&(m+="left:"+(o[0]+ma.left)+"px;");var p=a('
    '+l.replace('style="','style="position:absolute;'+m+";")+"
    ").appendTo(c);if(0!=ea.legend.backgroundOpacity){var q=ea.legend.backgroundColor;null==q&&(q=ea.grid.backgroundColor,q=q&&"string"==typeof q?a.color.parse(q):a.color.extract(p,"background-color"),q.a=1,q=q.toString());var r=p.children();a('
    ').prependTo(p).css("opacity",ea.legend.backgroundOpacity)}}}}}function S(a,b,c){var d,e,f,g=ea.grid.mouseActiveRadius,h=g*g+1,i=null;for(d=da.length-1;d>=0;--d)if(c(da[d])){var j=da[d],k=j.xaxis,l=j.yaxis,m=j.datapoints.points,n=k.c2p(a),o=l.c2p(b),p=g/k.scale,q=g/l.scale;if(f=j.datapoints.pointsize,k.options.inverseTransform&&(p=Number.MAX_VALUE),l.options.inverseTransform&&(q=Number.MAX_VALUE),j.lines.show||j.points.show)for(e=0;ep||r-n<-p||s-o>q||s-o<-q)){var t=Math.abs(k.p2c(r)-a),u=Math.abs(l.p2c(s)-b),v=t*t+u*u;v=Math.min(y,r)&&o>=s+w&&o<=s+x:n>=r+w&&n<=r+x&&o>=Math.min(y,s)&&o<=Math.max(y,s))&&(i=[d,e/f])}}}return i?(d=i[0],e=i[1],f=da[d].datapoints.pointsize,{datapoint:da[d].datapoints.points.slice(e*f,(e+1)*f),dataIndex:e,series:da[d],seriesIndex:d}):null}function T(a){ea.grid.hoverable&&W("plothover",a,function(a){return 0!=a.hoverable})}function U(a){ea.grid.hoverable&&W("plothover",a,function(a){return!1})}function V(a){W("plotclick",a,function(a){return 0!=a.clickable})}function W(a,b,d){var e=ha.offset(),f=b.pageX-e.left-ma.left,g=b.pageY-e.top-ma.top,h=o({left:f,top:g});h.pageX=b.pageX,h.pageY=b.pageY;var i=S(f,g,d);if(i&&(i.pageX=parseInt(i.series.xaxis.p2c(i.datapoint[0])+e.left+ma.left,10),i.pageY=parseInt(i.series.yaxis.p2c(i.datapoint[1])+e.top+ma.top,10)),ea.grid.autoHighlight){for(var j=0;jf.max||eg.max)){var i=b.points.radius+b.points.lineWidth/2;ja.lineWidth=i,ja.strokeStyle=h;var j=1.5*i;d=f.p2c(d),e=g.p2c(e),ja.beginPath(),"circle"==b.points.symbol?ja.arc(d,e,j,0,2*Math.PI,!1):b.points.symbol(ja,d,e,j,!1),ja.closePath(),ja.stroke()}}function ba(b,c){var d="string"==typeof b.highlightColor?b.highlightColor:a.color.parse(b.color).scale("a",.5).toString(),e=d,f="left"==b.bars.align?0:-b.bars.barWidth/2;ja.lineWidth=b.bars.lineWidth,ja.strokeStyle=d,O(c[0],c[1],c[2]||0,f,f+b.bars.barWidth,0,function(){return e},b.xaxis,b.yaxis,ja,b.bars.horizontal,b.bars.lineWidth)}function ca(b,c,d,e){if("string"==typeof b)return b;for(var f=ia.createLinearGradient(0,d,0,c),g=0,h=b.colors.length;g").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)),c=this.text[b]=a("
    ").addClass(b).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)),c},b.prototype.getTextInfo=function(b,c,d,e,f){var g,h,i,j;if(c=""+c,g="object"==typeof d?d.style+" "+d.variant+" "+d.weight+" "+d.size+"px/"+d.lineHeight+"px "+d.family:d,h=this._textCache[b],null==h&&(h=this._textCache[b]={}),i=h[g],null==i&&(i=h[g]={}),j=i[c],null==j){var k=a("
    ").html(c).css({position:"absolute","max-width":f,top:-9999}).appendTo(this.getTextLayer(b));"object"==typeof d?k.css({font:g,color:d.color}):"string"==typeof d&&k.addClass(d),j=i[c]={width:k.outerWidth(!0),height:k.outerHeight(!0),element:k,positions:[]},k.detach()}return j},b.prototype.addText=function(a,b,c,d,e,f,g,h,i){var j=this.getTextInfo(a,d,e,f,g),k=j.positions;"center"==h?b-=j.width/2:"right"==h&&(b-=j.width),"middle"==i?c-=j.height/2:"bottom"==i&&(c-=j.height);for(var l,m=0;l=k[m];m++)if(l.x==b&&l.y==c)return void(l.active=!0);l={active:!0,rendered:!1,element:k.length?j.element.clone():j.element,x:b,y:c},k.push(l),l.element.css({top:Math.round(c),left:Math.round(b),"text-align":h})},b.prototype.removeText=function(a,b,c,d,f,g){if(null==d){var h=this._textCache[a];if(null!=h)for(var i in h)if(e.call(h,i)){var j=h[i];for(var k in j)if(e.call(j,k))for(var l,m=j[k].positions,n=0;l=m[n];n++)l.active=!1}}else for(var l,m=this.getTextInfo(a,d,f,g).positions,n=0;l=m[n];n++)l.x==b&&l.y==c&&(l.active=!1)},a.plot=function(b,d,e){var f=new c(a(b),d,e,a.plot.plugins);return f},a.plot.version="0.8.1",a.plot.plugins=[],a.fn.plot=function(b,c){return this.each(function(){a.plot(this,b,c)})}}(jQuery);assets/js/jquery-flot/jquery.flot.resize.js000066600000004710152133032050015063 0ustar00/* Flot plugin for automatically redrawing plots as the placeholder resizes. Copyright (c) 2007-2013 IOLA and Ole Laursen. Licensed under the MIT license. It works by listening for changes on the placeholder div (through the jQuery resize event plugin) - if the size changes, it will redraw the plot. There are no options. If you need to disable the plugin for some plots, you can just fix the size of their placeholders. */ /* Inline dependency: * jQuery resize event - v1.1 - 3/14/2010 * http://benalman.com/projects/jquery-resize-plugin/ * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ (function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); (function ($) { var options = { }; // no options function init(plot) { function onResize() { var placeholder = plot.getPlaceholder(); // somebody might have hidden us and we can't plot // when we don't have the dimensions if (placeholder.width() == 0 || placeholder.height() == 0) return; plot.resize(); plot.setupGrid(); plot.draw(); } function bindEvents(plot, eventHolder) { plot.getPlaceholder().resize(onResize); } function shutdown(plot, eventHolder) { plot.getPlaceholder().unbind("resize", onResize); } plot.hooks.bindEvents.push(bindEvents); plot.hooks.shutdown.push(shutdown); } $.plot.plugins.push({ init: init, options: options, name: 'resize', version: '1.0' }); })(jQuery); assets/js/jquery-flot/jquery.flot.js000066600000350414152133032050013570 0ustar00/* Javascript plotting library for jQuery, version 0.8.1. Copyright (c) 2007-2013 IOLA and Ole Laursen. Licensed under the MIT license. */ // first an inline dependency, jquery.colorhelpers.js, we inline it here // for convenience /* Plugin for jQuery for working with colors. * * Version 1.1. * * Inspiration from jQuery color animation plugin by John Resig. * * Released under the MIT license by Ole Laursen, October 2009. * * Examples: * * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() * var c = $.color.extract($("#mydiv"), 'background-color'); * console.log(c.r, c.g, c.b, c.a); * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" * * Note that .scale() and .add() return the same modified object * instead of making a new one. * * V. 1.1: Fix error handling so e.g. parsing an empty string does * produce a color rather than just crashing. */ (function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return KI?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); // the actual Flot code (function($) { // Cache the prototype hasOwnProperty for faster access var hasOwnProperty = Object.prototype.hasOwnProperty; /////////////////////////////////////////////////////////////////////////// // The Canvas object is a wrapper around an HTML5 tag. // // @constructor // @param {string} cls List of classes to apply to the canvas. // @param {element} container Element onto which to append the canvas. // // Requiring a container is a little iffy, but unfortunately canvas // operations don't work unless the canvas is attached to the DOM. function Canvas(cls, container) { var element = container.children("." + cls)[0]; if (element == null) { element = document.createElement("canvas"); element.className = cls; $(element).css({ direction: "ltr", position: "absolute", left: 0, top: 0 }) .appendTo(container); // If HTML5 Canvas isn't available, fall back to [Ex|Flash]canvas if (!element.getContext) { if (window.G_vmlCanvasManager) { element = window.G_vmlCanvasManager.initElement(element); } else { throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode."); } } } this.element = element; var context = this.context = element.getContext("2d"); // Determine the screen's ratio of physical to device-independent // pixels. This is the ratio between the canvas width that the browser // advertises and the number of pixels actually present in that space. // The iPhone 4, for example, has a device-independent width of 320px, // but its screen is actually 640px wide. It therefore has a pixel // ratio of 2, while most normal devices have a ratio of 1. var devicePixelRatio = window.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; this.pixelRatio = devicePixelRatio / backingStoreRatio; // Size the canvas to match the internal dimensions of its container this.resize(container.width(), container.height()); // Collection of HTML div layers for text overlaid onto the canvas this.textContainer = null; this.text = {}; // Cache of text fragments and metrics, so we can avoid expensively // re-calculating them when the plot is re-rendered in a loop. this._textCache = {}; } // Resizes the canvas to the given dimensions. // // @param {number} width New width of the canvas, in pixels. // @param {number} width New height of the canvas, in pixels. Canvas.prototype.resize = function(width, height) { if (width <= 0 || height <= 0) { throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height); } var element = this.element, context = this.context, pixelRatio = this.pixelRatio; // Resize the canvas, increasing its density based on the display's // pixel ratio; basically giving it more pixels without increasing the // size of its element, to take advantage of the fact that retina // displays have that many more pixels in the same advertised space. // Resizing should reset the state (excanvas seems to be buggy though) if (this.width != width) { element.width = width * pixelRatio; element.style.width = width + "px"; this.width = width; } if (this.height != height) { element.height = height * pixelRatio; element.style.height = height + "px"; this.height = height; } // Save the context, so we can reset in case we get replotted. The // restore ensure that we're really back at the initial state, and // should be safe even if we haven't saved the initial state yet. context.restore(); context.save(); // Scale the coordinate space to match the display density; so even though we // may have twice as many pixels, we still want lines and other drawing to // appear at the same size; the extra pixels will just make them crisper. context.scale(pixelRatio, pixelRatio); }; // Clears the entire canvas area, not including any overlaid HTML text Canvas.prototype.clear = function() { this.context.clearRect(0, 0, this.width, this.height); }; // Finishes rendering the canvas, including managing the text overlay. Canvas.prototype.render = function() { var cache = this._textCache; // For each text layer, add elements marked as active that haven't // already been rendered, and remove those that are no longer active. for (var layerKey in cache) { if (hasOwnProperty.call(cache, layerKey)) { var layer = this.getTextLayer(layerKey), layerCache = cache[layerKey]; layer.hide(); for (var styleKey in layerCache) { if (hasOwnProperty.call(layerCache, styleKey)) { var styleCache = layerCache[styleKey]; for (var key in styleCache) { if (hasOwnProperty.call(styleCache, key)) { var positions = styleCache[key].positions; for (var i = 0, position; position = positions[i]; i++) { if (position.active) { if (!position.rendered) { layer.append(position.element); position.rendered = true; } } else { positions.splice(i--, 1); if (position.rendered) { position.element.detach(); } } } if (positions.length == 0) { delete styleCache[key]; } } } } } layer.show(); } } }; // Creates (if necessary) and returns the text overlay container. // // @param {string} classes String of space-separated CSS classes used to // uniquely identify the text layer. // @return {object} The jQuery-wrapped text-layer div. Canvas.prototype.getTextLayer = function(classes) { var layer = this.text[classes]; // Create the text layer if it doesn't exist if (layer == null) { // Create the text layer container, if it doesn't exist if (this.textContainer == null) { this.textContainer = $("
    ") .css({ position: "absolute", top: 0, left: 0, bottom: 0, right: 0, 'font-size': "smaller", color: "#545454" }) .insertAfter(this.element); } layer = this.text[classes] = $("
    ") .addClass(classes) .css({ position: "absolute", top: 0, left: 0, bottom: 0, right: 0 }) .appendTo(this.textContainer); } return layer; }; // Creates (if necessary) and returns a text info object. // // The object looks like this: // // { // width: Width of the text's wrapper div. // height: Height of the text's wrapper div. // element: The jQuery-wrapped HTML div containing the text. // positions: Array of positions at which this text is drawn. // } // // The positions array contains objects that look like this: // // { // active: Flag indicating whether the text should be visible. // rendered: Flag indicating whether the text is currently visible. // element: The jQuery-wrapped HTML div containing the text. // x: X coordinate at which to draw the text. // y: Y coordinate at which to draw the text. // } // // Each position after the first receives a clone of the original element. // // The idea is that that the width, height, and general 'identity' of the // text is constant no matter where it is placed; the placements are a // secondary property. // // Canvas maintains a cache of recently-used text info objects; getTextInfo // either returns the cached element or creates a new entry. // // @param {string} layer A string of space-separated CSS classes uniquely // identifying the layer containing this text. // @param {string} text Text string to retrieve info for. // @param {(string|object)=} font Either a string of space-separated CSS // classes or a font-spec object, defining the text's font and style. // @param {number=} angle Angle at which to rotate the text, in degrees. // Angle is currently unused, it will be implemented in the future. // @param {number=} width Maximum width of the text before it wraps. // @return {object} a text info object. Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) { var textStyle, layerCache, styleCache, info; // Cast the value to a string, in case we were given a number or such text = "" + text; // If the font is a font-spec object, generate a CSS font definition if (typeof font === "object") { textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px/" + font.lineHeight + "px " + font.family; } else { textStyle = font; } // Retrieve (or create) the cache for the text's layer and styles layerCache = this._textCache[layer]; if (layerCache == null) { layerCache = this._textCache[layer] = {}; } styleCache = layerCache[textStyle]; if (styleCache == null) { styleCache = layerCache[textStyle] = {}; } info = styleCache[text]; // If we can't find a matching element in our cache, create a new one if (info == null) { var element = $("
    ").html(text) .css({ position: "absolute", 'max-width': width, top: -9999 }) .appendTo(this.getTextLayer(layer)); if (typeof font === "object") { element.css({ font: textStyle, color: font.color }); } else if (typeof font === "string") { element.addClass(font); } info = styleCache[text] = { width: element.outerWidth(true), height: element.outerHeight(true), element: element, positions: [] }; element.detach(); } return info; }; // Adds a text string to the canvas text overlay. // // The text isn't drawn immediately; it is marked as rendering, which will // result in its addition to the canvas on the next render pass. // // @param {string} layer A string of space-separated CSS classes uniquely // identifying the layer containing this text. // @param {number} x X coordinate at which to draw the text. // @param {number} y Y coordinate at which to draw the text. // @param {string} text Text string to draw. // @param {(string|object)=} font Either a string of space-separated CSS // classes or a font-spec object, defining the text's font and style. // @param {number=} angle Angle at which to rotate the text, in degrees. // Angle is currently unused, it will be implemented in the future. // @param {number=} width Maximum width of the text before it wraps. // @param {string=} halign Horizontal alignment of the text; either "left", // "center" or "right". // @param {string=} valign Vertical alignment of the text; either "top", // "middle" or "bottom". Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) { var info = this.getTextInfo(layer, text, font, angle, width), positions = info.positions; // Tweak the div's position to match the text's alignment if (halign == "center") { x -= info.width / 2; } else if (halign == "right") { x -= info.width; } if (valign == "middle") { y -= info.height / 2; } else if (valign == "bottom") { y -= info.height; } // Determine whether this text already exists at this position. // If so, mark it for inclusion in the next render pass. for (var i = 0, position; position = positions[i]; i++) { if (position.x == x && position.y == y) { position.active = true; return; } } // If the text doesn't exist at this position, create a new entry // For the very first position we'll re-use the original element, // while for subsequent ones we'll clone it. position = { active: true, rendered: false, element: positions.length ? info.element.clone() : info.element, x: x, y: y } positions.push(position); // Move the element to its final position within the container position.element.css({ top: Math.round(y), left: Math.round(x), 'text-align': halign // In case the text wraps }); }; // Removes one or more text strings from the canvas text overlay. // // If no parameters are given, all text within the layer is removed. // // Note that the text is not immediately removed; it is simply marked as // inactive, which will result in its removal on the next render pass. // This avoids the performance penalty for 'clear and redraw' behavior, // where we potentially get rid of all text on a layer, but will likely // add back most or all of it later, as when redrawing axes, for example. // // @param {string} layer A string of space-separated CSS classes uniquely // identifying the layer containing this text. // @param {number=} x X coordinate of the text. // @param {number=} y Y coordinate of the text. // @param {string=} text Text string to remove. // @param {(string|object)=} font Either a string of space-separated CSS // classes or a font-spec object, defining the text's font and style. // @param {number=} angle Angle at which the text is rotated, in degrees. // Angle is currently unused, it will be implemented in the future. Canvas.prototype.removeText = function(layer, x, y, text, font, angle) { if (text == null) { var layerCache = this._textCache[layer]; if (layerCache != null) { for (var styleKey in layerCache) { if (hasOwnProperty.call(layerCache, styleKey)) { var styleCache = layerCache[styleKey]; for (var key in styleCache) { if (hasOwnProperty.call(styleCache, key)) { var positions = styleCache[key].positions; for (var i = 0, position; position = positions[i]; i++) { position.active = false; } } } } } } } else { var positions = this.getTextInfo(layer, text, font, angle).positions; for (var i = 0, position; position = positions[i]; i++) { if (position.x == x && position.y == y) { position.active = false; } } } }; /////////////////////////////////////////////////////////////////////////// // The top-level container for the entire plot. function Plot(placeholder, data_, options_, plugins) { // data is on the form: // [ series1, series2 ... ] // where series is either just the data as [ [x1, y1], [x2, y2], ... ] // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } var series = [], options = { // the color theme used for graphs colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], legend: { show: true, noColumns: 1, // number of colums in legend table labelFormatter: null, // fn: string -> string labelBoxBorderColor: "#ccc", // border color for the little label boxes container: null, // container (as jQuery object) to put legend in, null means default on top of graph position: "ne", // position of default legend container within plot margin: 5, // distance from grid edge to default legend container within plot backgroundColor: null, // null means auto-detect backgroundOpacity: 0.85, // set to 0 to avoid background sorted: null // default to no legend sorting }, xaxis: { show: null, // null = auto-detect, true = always, false = never position: "bottom", // or "top" mode: null, // null or "time" font: null, // null (derived from CSS in placeholder) or object like { size: 11, lineHeight: 13, style: "italic", weight: "bold", family: "sans-serif", variant: "small-caps" } color: null, // base color, labels, ticks tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" transform: null, // null or f: number -> number to transform axis inverseTransform: null, // if transform is set, this should be the inverse function min: null, // min. value to show, null means set automatically max: null, // max. value to show, null means set automatically autoscaleMargin: null, // margin in % to add if auto-setting min/max ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks tickFormatter: null, // fn: number -> string labelWidth: null, // size of tick labels in pixels labelHeight: null, reserveSpace: null, // whether to reserve space even if axis isn't shown tickLength: null, // size in pixels of ticks, or "full" for whole line alignTicksWithAxis: null, // axis number or null for no sync tickDecimals: null, // no. of decimals, null means auto tickSize: null, // number or [number, "unit"] minTickSize: null // number or [number, "unit"] }, yaxis: { autoscaleMargin: 0.02, position: "left" // or "right" }, xaxes: [], yaxes: [], series: { points: { show: false, radius: 3, lineWidth: 2, // in pixels fill: true, fillColor: "#ffffff", symbol: "circle" // or callback }, lines: { // we don't put in show: false so we can see // whether lines were actively disabled lineWidth: 2, // in pixels fill: false, fillColor: null, steps: false // Omit 'zero', so we can later default its value to // match that of the 'fill' option. }, bars: { show: false, lineWidth: 2, // in pixels barWidth: 1, // in units of the x axis fill: true, fillColor: null, align: "left", // "left", "right", or "center" horizontal: false, zero: true }, shadowSize: 3, highlightColor: null }, grid: { show: true, aboveData: false, color: "#545454", // primary color used for outline and labels backgroundColor: null, // null for transparent, else color borderColor: null, // set if different from the grid color tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)" margin: 0, // distance from the canvas edge to the grid labelMargin: 5, // in pixels axisMargin: 8, // in pixels borderWidth: 2, // in pixels minBorderMargin: null, // in pixels, null means taken from points radius markings: null, // array of ranges or fn: axes -> array of ranges markingsColor: "#f4f4f4", markingsLineWidth: 2, // interactive stuff clickable: false, hoverable: false, autoHighlight: true, // highlight in case mouse is near mouseActiveRadius: 10 // how far the mouse can be away to activate an item }, interaction: { redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow }, hooks: {} }, surface = null, // the canvas for the plot itself overlay = null, // canvas for interactive stuff on top of plot eventHolder = null, // jQuery object that events should be bound to ctx = null, octx = null, xaxes = [], yaxes = [], plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, plotWidth = 0, plotHeight = 0, hooks = { processOptions: [], processRawData: [], processDatapoints: [], processOffset: [], drawBackground: [], drawSeries: [], draw: [], bindEvents: [], drawOverlay: [], shutdown: [] }, plot = this; // public functions plot.setData = setData; plot.setupGrid = setupGrid; plot.draw = draw; plot.getPlaceholder = function() { return placeholder; }; plot.getCanvas = function() { return surface.element; }; plot.getPlotOffset = function() { return plotOffset; }; plot.width = function () { return plotWidth; }; plot.height = function () { return plotHeight; }; plot.offset = function () { var o = eventHolder.offset(); o.left += plotOffset.left; o.top += plotOffset.top; return o; }; plot.getData = function () { return series; }; plot.getAxes = function () { var res = {}, i; $.each(xaxes.concat(yaxes), function (_, axis) { if (axis) res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; }); return res; }; plot.getXAxes = function () { return xaxes; }; plot.getYAxes = function () { return yaxes; }; plot.c2p = canvasToAxisCoords; plot.p2c = axisToCanvasCoords; plot.getOptions = function () { return options; }; plot.highlight = highlight; plot.unhighlight = unhighlight; plot.triggerRedrawOverlay = triggerRedrawOverlay; plot.pointOffset = function(point) { return { left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left, 10), top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top, 10) }; }; plot.shutdown = shutdown; plot.resize = function () { var width = placeholder.width(), height = placeholder.height(); surface.resize(width, height); overlay.resize(width, height); }; // public attributes plot.hooks = hooks; // initialize initPlugins(plot); parseOptions(options_); setupCanvases(); setData(data_); setupGrid(); draw(); bindEvents(); function executeHooks(hook, args) { args = [plot].concat(args); for (var i = 0; i < hook.length; ++i) hook[i].apply(this, args); } function initPlugins() { // References to key classes, allowing plugins to modify them var classes = { Canvas: Canvas }; for (var i = 0; i < plugins.length; ++i) { var p = plugins[i]; p.init(plot, classes); if (p.options) $.extend(true, options, p.options); } } function parseOptions(opts) { $.extend(true, options, opts); // $.extend merges arrays, rather than replacing them. When less // colors are provided than the size of the default palette, we // end up with those colors plus the remaining defaults, which is // not expected behavior; avoid it by replacing them here. if (opts && opts.colors) { options.colors = opts.colors; } if (options.xaxis.color == null) options.xaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); if (options.yaxis.color == null) options.yaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); if (options.xaxis.tickColor == null) // grid.tickColor for back-compatibility options.xaxis.tickColor = options.grid.tickColor || options.xaxis.color; if (options.yaxis.tickColor == null) // grid.tickColor for back-compatibility options.yaxis.tickColor = options.grid.tickColor || options.yaxis.color; if (options.grid.borderColor == null) options.grid.borderColor = options.grid.color; if (options.grid.tickColor == null) options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); // Fill in defaults for axis options, including any unspecified // font-spec fields, if a font-spec was provided. // If no x/y axis options were provided, create one of each anyway, // since the rest of the code assumes that they exist. var i, axisOptions, axisCount, fontDefaults = { style: placeholder.css("font-style"), size: Math.round(0.8 * (+placeholder.css("font-size").replace("px", "") || 13)), variant: placeholder.css("font-variant"), weight: placeholder.css("font-weight"), family: placeholder.css("font-family") }; fontDefaults.lineHeight = fontDefaults.size * 1.15; axisCount = options.xaxes.length || 1; for (i = 0; i < axisCount; ++i) { axisOptions = options.xaxes[i]; if (axisOptions && !axisOptions.tickColor) { axisOptions.tickColor = axisOptions.color; } axisOptions = $.extend(true, {}, options.xaxis, axisOptions); options.xaxes[i] = axisOptions; if (axisOptions.font) { axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); if (!axisOptions.font.color) { axisOptions.font.color = axisOptions.color; } } } axisCount = options.yaxes.length || 1; for (i = 0; i < axisCount; ++i) { axisOptions = options.yaxes[i]; if (axisOptions && !axisOptions.tickColor) { axisOptions.tickColor = axisOptions.color; } axisOptions = $.extend(true, {}, options.yaxis, axisOptions); options.yaxes[i] = axisOptions; if (axisOptions.font) { axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); if (!axisOptions.font.color) { axisOptions.font.color = axisOptions.color; } } } // backwards compatibility, to be removed in future if (options.xaxis.noTicks && options.xaxis.ticks == null) options.xaxis.ticks = options.xaxis.noTicks; if (options.yaxis.noTicks && options.yaxis.ticks == null) options.yaxis.ticks = options.yaxis.noTicks; if (options.x2axis) { options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); options.xaxes[1].position = "top"; } if (options.y2axis) { options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); options.yaxes[1].position = "right"; } if (options.grid.coloredAreas) options.grid.markings = options.grid.coloredAreas; if (options.grid.coloredAreasColor) options.grid.markingsColor = options.grid.coloredAreasColor; if (options.lines) $.extend(true, options.series.lines, options.lines); if (options.points) $.extend(true, options.series.points, options.points); if (options.bars) $.extend(true, options.series.bars, options.bars); if (options.shadowSize != null) options.series.shadowSize = options.shadowSize; if (options.highlightColor != null) options.series.highlightColor = options.highlightColor; // save options on axes for future reference for (i = 0; i < options.xaxes.length; ++i) getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; for (i = 0; i < options.yaxes.length; ++i) getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; // add hooks from options for (var n in hooks) if (options.hooks[n] && options.hooks[n].length) hooks[n] = hooks[n].concat(options.hooks[n]); executeHooks(hooks.processOptions, [options]); } function setData(d) { series = parseData(d); fillInSeriesOptions(); processData(); } function parseData(d) { var res = []; for (var i = 0; i < d.length; ++i) { var s = $.extend(true, {}, options.series); if (d[i].data != null) { s.data = d[i].data; // move the data instead of deep-copy delete d[i].data; $.extend(true, s, d[i]); d[i].data = s.data; } else s.data = d[i]; res.push(s); } return res; } function axisNumber(obj, coord) { var a = obj[coord + "axis"]; if (typeof a == "object") // if we got a real axis, extract number a = a.n; if (typeof a != "number") a = 1; // default to first axis return a; } function allAxes() { // return flat array without annoying null entries return $.grep(xaxes.concat(yaxes), function (a) { return a; }); } function canvasToAxisCoords(pos) { // return an object with x/y corresponding to all used axes var res = {}, i, axis; for (i = 0; i < xaxes.length; ++i) { axis = xaxes[i]; if (axis && axis.used) res["x" + axis.n] = axis.c2p(pos.left); } for (i = 0; i < yaxes.length; ++i) { axis = yaxes[i]; if (axis && axis.used) res["y" + axis.n] = axis.c2p(pos.top); } if (res.x1 !== undefined) res.x = res.x1; if (res.y1 !== undefined) res.y = res.y1; return res; } function axisToCanvasCoords(pos) { // get canvas coords from the first pair of x/y found in pos var res = {}, i, axis, key; for (i = 0; i < xaxes.length; ++i) { axis = xaxes[i]; if (axis && axis.used) { key = "x" + axis.n; if (pos[key] == null && axis.n == 1) key = "x"; if (pos[key] != null) { res.left = axis.p2c(pos[key]); break; } } } for (i = 0; i < yaxes.length; ++i) { axis = yaxes[i]; if (axis && axis.used) { key = "y" + axis.n; if (pos[key] == null && axis.n == 1) key = "y"; if (pos[key] != null) { res.top = axis.p2c(pos[key]); break; } } } return res; } function getOrCreateAxis(axes, number) { if (!axes[number - 1]) axes[number - 1] = { n: number, // save the number for future reference direction: axes == xaxes ? "x" : "y", options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) }; return axes[number - 1]; } function fillInSeriesOptions() { var neededColors = series.length, maxIndex = -1, i; // Subtract the number of series that already have fixed colors or // color indexes from the number that we still need to generate. for (i = 0; i < series.length; ++i) { var sc = series[i].color; if (sc != null) { neededColors--; if (typeof sc == "number" && sc > maxIndex) { maxIndex = sc; } } } // If any of the series have fixed color indexes, then we need to // generate at least as many colors as the highest index. if (neededColors <= maxIndex) { neededColors = maxIndex + 1; } // Generate all the colors, using first the option colors and then // variations on those colors once they're exhausted. var c, colors = [], colorPool = options.colors, colorPoolSize = colorPool.length, variation = 0; for (i = 0; i < neededColors; i++) { c = $.color.parse(colorPool[i % colorPoolSize] || "#666"); // Each time we exhaust the colors in the pool we adjust // a scaling factor used to produce more variations on // those colors. The factor alternates negative/positive // to produce lighter/darker colors. // Reset the variation after every few cycles, or else // it will end up producing only white or black colors. if (i % colorPoolSize == 0 && i) { if (variation >= 0) { if (variation < 0.5) { variation = -variation - 0.2; } else variation = 0; } else variation = -variation; } colors[i] = c.scale('rgb', 1 + variation); } // Finalize the series options, filling in their colors var colori = 0, s; for (i = 0; i < series.length; ++i) { s = series[i]; // assign colors if (s.color == null) { s.color = colors[colori].toString(); ++colori; } else if (typeof s.color == "number") s.color = colors[s.color].toString(); // turn on lines automatically in case nothing is set if (s.lines.show == null) { var v, show = true; for (v in s) if (s[v] && s[v].show) { show = false; break; } if (show) s.lines.show = true; } // If nothing was provided for lines.zero, default it to match // lines.fill, since areas by default should extend to zero. if (s.lines.zero == null) { s.lines.zero = !!s.lines.fill; } // setup axes s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); } } function processData() { var topSentry = Number.POSITIVE_INFINITY, bottomSentry = Number.NEGATIVE_INFINITY, fakeInfinity = Number.MAX_VALUE, i, j, k, m, length, s, points, ps, x, y, axis, val, f, p, data, format; function updateAxis(axis, min, max) { if (min < axis.datamin && min != -fakeInfinity) axis.datamin = min; if (max > axis.datamax && max != fakeInfinity) axis.datamax = max; } $.each(allAxes(), function (_, axis) { // init axis axis.datamin = topSentry; axis.datamax = bottomSentry; axis.used = false; }); for (i = 0; i < series.length; ++i) { s = series[i]; s.datapoints = { points: [] }; executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); } // first pass: clean and copy data for (i = 0; i < series.length; ++i) { s = series[i]; data = s.data; format = s.datapoints.format; if (!format) { format = []; // find out how to copy format.push({ x: true, number: true, required: true }); format.push({ y: true, number: true, required: true }); if (s.bars.show || (s.lines.show && s.lines.fill)) { var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero)); format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale }); if (s.bars.horizontal) { delete format[format.length - 1].y; format[format.length - 1].x = true; } } s.datapoints.format = format; } if (s.datapoints.pointsize != null) continue; // already filled in s.datapoints.pointsize = format.length; ps = s.datapoints.pointsize; points = s.datapoints.points; var insertSteps = s.lines.show && s.lines.steps; s.xaxis.used = s.yaxis.used = true; for (j = k = 0; j < data.length; ++j, k += ps) { p = data[j]; var nullify = p == null; if (!nullify) { for (m = 0; m < ps; ++m) { val = p[m]; f = format[m]; if (f) { if (f.number && val != null) { val = +val; // convert to number if (isNaN(val)) val = null; else if (val == Infinity) val = fakeInfinity; else if (val == -Infinity) val = -fakeInfinity; } if (val == null) { if (f.required) nullify = true; if (f.defaultValue != null) val = f.defaultValue; } } points[k + m] = val; } } if (nullify) { for (m = 0; m < ps; ++m) { val = points[k + m]; if (val != null) { f = format[m]; // extract min/max info if (f.autoscale) { if (f.x) { updateAxis(s.xaxis, val, val); } if (f.y) { updateAxis(s.yaxis, val, val); } } } points[k + m] = null; } } else { // a little bit of line specific stuff that // perhaps shouldn't be here, but lacking // better means... if (insertSteps && k > 0 && points[k - ps] != null && points[k - ps] != points[k] && points[k - ps + 1] != points[k + 1]) { // copy the point to make room for a middle point for (m = 0; m < ps; ++m) points[k + ps + m] = points[k + m]; // middle point has same y points[k + 1] = points[k - ps + 1]; // we've added a point, better reflect that k += ps; } } } } // give the hooks a chance to run for (i = 0; i < series.length; ++i) { s = series[i]; executeHooks(hooks.processDatapoints, [ s, s.datapoints]); } // second pass: find datamax/datamin for auto-scaling for (i = 0; i < series.length; ++i) { s = series[i]; points = s.datapoints.points; ps = s.datapoints.pointsize; format = s.datapoints.format; var xmin = topSentry, ymin = topSentry, xmax = bottomSentry, ymax = bottomSentry; for (j = 0; j < points.length; j += ps) { if (points[j] == null) continue; for (m = 0; m < ps; ++m) { val = points[j + m]; f = format[m]; if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity) continue; if (f.x) { if (val < xmin) xmin = val; if (val > xmax) xmax = val; } if (f.y) { if (val < ymin) ymin = val; if (val > ymax) ymax = val; } } } if (s.bars.show) { // make sure we got room for the bar on the dancing floor var delta; switch (s.bars.align) { case "left": delta = 0; break; case "right": delta = -s.bars.barWidth; break; case "center": delta = -s.bars.barWidth / 2; break; default: throw new Error("Invalid bar alignment: " + s.bars.align); } if (s.bars.horizontal) { ymin += delta; ymax += delta + s.bars.barWidth; } else { xmin += delta; xmax += delta + s.bars.barWidth; } } updateAxis(s.xaxis, xmin, xmax); updateAxis(s.yaxis, ymin, ymax); } $.each(allAxes(), function (_, axis) { if (axis.datamin == topSentry) axis.datamin = null; if (axis.datamax == bottomSentry) axis.datamax = null; }); } function setupCanvases() { // Make sure the placeholder is clear of everything except canvases // from a previous plot in this container that we'll try to re-use. placeholder.css("padding", 0) // padding messes up the positioning .children(":not(.flot-base,.flot-overlay)").remove(); if (placeholder.css("position") == 'static') placeholder.css("position", "relative"); // for positioning labels and overlay surface = new Canvas("flot-base", placeholder); overlay = new Canvas("flot-overlay", placeholder); // overlay canvas for interactive features ctx = surface.context; octx = overlay.context; // define which element we're listening for events on eventHolder = $(overlay.element).unbind(); // If we're re-using a plot object, shut down the old one var existing = placeholder.data("plot"); if (existing) { existing.shutdown(); overlay.clear(); } // save in case we get replotted placeholder.data("plot", plot); } function bindEvents() { // bind events if (options.grid.hoverable) { eventHolder.mousemove(onMouseMove); // Use bind, rather than .mouseleave, because we officially // still support jQuery 1.2.6, which doesn't define a shortcut // for mouseenter or mouseleave. This was a bug/oversight that // was fixed somewhere around 1.3.x. We can return to using // .mouseleave when we drop support for 1.2.6. eventHolder.bind("mouseleave", onMouseLeave); } if (options.grid.clickable) eventHolder.click(onClick); executeHooks(hooks.bindEvents, [eventHolder]); } function shutdown() { if (redrawTimeout) clearTimeout(redrawTimeout); eventHolder.unbind("mousemove", onMouseMove); eventHolder.unbind("mouseleave", onMouseLeave); eventHolder.unbind("click", onClick); executeHooks(hooks.shutdown, [eventHolder]); } function setTransformationHelpers(axis) { // set helper functions on the axis, assumes plot area // has been computed already function identity(x) { return x; } var s, m, t = axis.options.transform || identity, it = axis.options.inverseTransform; // precompute how much the axis is scaling a point // in canvas space if (axis.direction == "x") { s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); m = Math.min(t(axis.max), t(axis.min)); } else { s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); s = -s; m = Math.max(t(axis.max), t(axis.min)); } // data point to canvas coordinate if (t == identity) // slight optimization axis.p2c = function (p) { return (p - m) * s; }; else axis.p2c = function (p) { return (t(p) - m) * s; }; // canvas coordinate to data point if (!it) axis.c2p = function (c) { return m + c / s; }; else axis.c2p = function (c) { return it(m + c / s); }; } function measureTickLabels(axis) { var opts = axis.options, ticks = axis.ticks || [], labelWidth = opts.labelWidth || 0, labelHeight = opts.labelHeight || 0, maxWidth = labelWidth || axis.direction == "x" ? Math.floor(surface.width / (ticks.length || 1)) : null; legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, font = opts.font || "flot-tick-label tickLabel"; for (var i = 0; i < ticks.length; ++i) { var t = ticks[i]; if (!t.label) continue; var info = surface.getTextInfo(layer, t.label, font, null, maxWidth); labelWidth = Math.max(labelWidth, info.width); labelHeight = Math.max(labelHeight, info.height); } axis.labelWidth = opts.labelWidth || labelWidth; axis.labelHeight = opts.labelHeight || labelHeight; } function allocateAxisBoxFirstPhase(axis) { // find the bounding box of the axis by looking at label // widths/heights and ticks, make room by diminishing the // plotOffset; this first phase only looks at one // dimension per axis, the other dimension depends on the // other axes so will have to wait var lw = axis.labelWidth, lh = axis.labelHeight, pos = axis.options.position, tickLength = axis.options.tickLength, axisMargin = options.grid.axisMargin, padding = options.grid.labelMargin, all = axis.direction == "x" ? xaxes : yaxes, index, innermost; // determine axis margin var samePosition = $.grep(all, function (a) { return a && a.options.position == pos && a.reserveSpace; }); if ($.inArray(axis, samePosition) == samePosition.length - 1) axisMargin = 0; // outermost // determine tick length - if we're innermost, we can use "full" if (tickLength == null) { var sameDirection = $.grep(all, function (a) { return a && a.reserveSpace; }); innermost = $.inArray(axis, sameDirection) == 0; if (innermost) tickLength = "full"; else tickLength = 5; } if (!isNaN(+tickLength)) padding += +tickLength; // compute box if (axis.direction == "x") { lh += padding; if (pos == "bottom") { plotOffset.bottom += lh + axisMargin; axis.box = { top: surface.height - plotOffset.bottom, height: lh }; } else { axis.box = { top: plotOffset.top + axisMargin, height: lh }; plotOffset.top += lh + axisMargin; } } else { lw += padding; if (pos == "left") { axis.box = { left: plotOffset.left + axisMargin, width: lw }; plotOffset.left += lw + axisMargin; } else { plotOffset.right += lw + axisMargin; axis.box = { left: surface.width - plotOffset.right, width: lw }; } } // save for future reference axis.position = pos; axis.tickLength = tickLength; axis.box.padding = padding; axis.innermost = innermost; } function allocateAxisBoxSecondPhase(axis) { // now that all axis boxes have been placed in one // dimension, we can set the remaining dimension coordinates if (axis.direction == "x") { axis.box.left = plotOffset.left - axis.labelWidth / 2; axis.box.width = surface.width - plotOffset.left - plotOffset.right + axis.labelWidth; } else { axis.box.top = plotOffset.top - axis.labelHeight / 2; axis.box.height = surface.height - plotOffset.bottom - plotOffset.top + axis.labelHeight; } } function adjustLayoutForThingsStickingOut() { // possibly adjust plot offset to ensure everything stays // inside the canvas and isn't clipped off var minMargin = options.grid.minBorderMargin, margins = { x: 0, y: 0 }, i, axis; // check stuff from the plot (FIXME: this should just read // a value from the series, otherwise it's impossible to // customize) if (minMargin == null) { minMargin = 0; for (i = 0; i < series.length; ++i) minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2)); } margins.x = margins.y = Math.ceil(minMargin); // check axis labels, note we don't check the actual // labels but instead use the overall width/height to not // jump as much around with replots $.each(allAxes(), function (_, axis) { var dir = axis.direction; if (axis.reserveSpace) margins[dir] = Math.ceil(Math.max(margins[dir], (dir == "x" ? axis.labelWidth : axis.labelHeight) / 2)); }); plotOffset.left = Math.max(margins.x, plotOffset.left); plotOffset.right = Math.max(margins.x, plotOffset.right); plotOffset.top = Math.max(margins.y, plotOffset.top); plotOffset.bottom = Math.max(margins.y, plotOffset.bottom); } function setupGrid() { var i, axes = allAxes(), showGrid = options.grid.show; // Initialize the plot's offset from the edge of the canvas for (var a in plotOffset) { var margin = options.grid.margin || 0; plotOffset[a] = typeof margin == "number" ? margin : margin[a] || 0; } executeHooks(hooks.processOffset, [plotOffset]); // If the grid is visible, add its border width to the offset for (var a in plotOffset) { if(typeof(options.grid.borderWidth) == "object") { plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0; } else { plotOffset[a] += showGrid ? options.grid.borderWidth : 0; } } // init axes $.each(axes, function (_, axis) { axis.show = axis.options.show; if (axis.show == null) axis.show = axis.used; // by default an axis is visible if it's got data axis.reserveSpace = axis.show || axis.options.reserveSpace; setRange(axis); }); if (showGrid) { var allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; }); $.each(allocatedAxes, function (_, axis) { // make the ticks setupTickGeneration(axis); setTicks(axis); snapRangeToTicks(axis, axis.ticks); // find labelWidth/Height for axis measureTickLabels(axis); }); // with all dimensions calculated, we can compute the // axis bounding boxes, start from the outside // (reverse order) for (i = allocatedAxes.length - 1; i >= 0; --i) allocateAxisBoxFirstPhase(allocatedAxes[i]); // make sure we've got enough space for things that // might stick out adjustLayoutForThingsStickingOut(); $.each(allocatedAxes, function (_, axis) { allocateAxisBoxSecondPhase(axis); }); } plotWidth = surface.width - plotOffset.left - plotOffset.right; plotHeight = surface.height - plotOffset.bottom - plotOffset.top; // now we got the proper plot dimensions, we can compute the scaling $.each(axes, function (_, axis) { setTransformationHelpers(axis); }); if (showGrid) { drawAxisLabels(); } insertLegend(); } function setRange(axis) { var opts = axis.options, min = +(opts.min != null ? opts.min : axis.datamin), max = +(opts.max != null ? opts.max : axis.datamax), delta = max - min; if (delta == 0.0) { // degenerate case var widen = max == 0 ? 1 : 0.01; if (opts.min == null) min -= widen; // always widen max if we couldn't widen min to ensure we // don't fall into min == max which doesn't work if (opts.max == null || opts.min != null) max += widen; } else { // consider autoscaling var margin = opts.autoscaleMargin; if (margin != null) { if (opts.min == null) { min -= delta * margin; // make sure we don't go below zero if all values // are positive if (min < 0 && axis.datamin != null && axis.datamin >= 0) min = 0; } if (opts.max == null) { max += delta * margin; if (max > 0 && axis.datamax != null && axis.datamax <= 0) max = 0; } } } axis.min = min; axis.max = max; } function setupTickGeneration(axis) { var opts = axis.options; // estimate number of ticks var noTicks; if (typeof opts.ticks == "number" && opts.ticks > 0) noTicks = opts.ticks; else // heuristic based on the model a*sqrt(x) fitted to // some data points that seemed reasonable noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? surface.width : surface.height); var delta = (axis.max - axis.min) / noTicks, dec = -Math.floor(Math.log(delta) / Math.LN10), maxDec = opts.tickDecimals; if (maxDec != null && dec > maxDec) { dec = maxDec; } var magn = Math.pow(10, -dec), norm = delta / magn, // norm is between 1.0 and 10.0 size; if (norm < 1.5) { size = 1; } else if (norm < 3) { size = 2; // special case for 2.5, requires an extra decimal if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { size = 2.5; ++dec; } } else if (norm < 7.5) { size = 5; } else { size = 10; } size *= magn; if (opts.minTickSize != null && size < opts.minTickSize) { size = opts.minTickSize; } axis.delta = delta; axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); axis.tickSize = opts.tickSize || size; // Time mode was moved to a plug-in in 0.8, but since so many people use this // we'll add an especially friendly make sure they remembered to include it. if (opts.mode == "time" && !axis.tickGenerator) { throw new Error("Time mode requires the flot.time plugin."); } // Flot supports base-10 axes; any other mode else is handled by a plug-in, // like flot.time.js. if (!axis.tickGenerator) { axis.tickGenerator = function (axis) { var ticks = [], start = floorInBase(axis.min, axis.tickSize), i = 0, v = Number.NaN, prev; do { prev = v; v = start + i * axis.tickSize; ticks.push(v); ++i; } while (v < axis.max && v != prev); return ticks; }; axis.tickFormatter = function (value, axis) { var factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1; var formatted = "" + Math.round(value * factor) / factor; // If tickDecimals was specified, ensure that we have exactly that // much precision; otherwise default to the value's own precision. if (axis.tickDecimals != null) { var decimal = formatted.indexOf("."); var precision = decimal == -1 ? 0 : formatted.length - decimal - 1; if (precision < axis.tickDecimals) { return (precision ? formatted : formatted + ".") + ("" + factor).substr(1, axis.tickDecimals - precision); } } return formatted; }; } if ($.isFunction(opts.tickFormatter)) axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); }; if (opts.alignTicksWithAxis != null) { var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; if (otherAxis && otherAxis.used && otherAxis != axis) { // consider snapping min/max to outermost nice ticks var niceTicks = axis.tickGenerator(axis); if (niceTicks.length > 0) { if (opts.min == null) axis.min = Math.min(axis.min, niceTicks[0]); if (opts.max == null && niceTicks.length > 1) axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); } axis.tickGenerator = function (axis) { // copy ticks, scaled to this axis var ticks = [], v, i; for (i = 0; i < otherAxis.ticks.length; ++i) { v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); v = axis.min + v * (axis.max - axis.min); ticks.push(v); } return ticks; }; // we might need an extra decimal since forced // ticks don't necessarily fit naturally if (!axis.mode && opts.tickDecimals == null) { var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1), ts = axis.tickGenerator(axis); // only proceed if the tick interval rounded // with an extra decimal doesn't give us a // zero at end if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) axis.tickDecimals = extraDec; } } } } function setTicks(axis) { var oticks = axis.options.ticks, ticks = []; if (oticks == null || (typeof oticks == "number" && oticks > 0)) ticks = axis.tickGenerator(axis); else if (oticks) { if ($.isFunction(oticks)) // generate the ticks ticks = oticks(axis); else ticks = oticks; } // clean up/labelify the supplied ticks, copy them over var i, v; axis.ticks = []; for (i = 0; i < ticks.length; ++i) { var label = null; var t = ticks[i]; if (typeof t == "object") { v = +t[0]; if (t.length > 1) label = t[1]; } else v = +t; if (label == null) label = axis.tickFormatter(v, axis); if (!isNaN(v)) axis.ticks.push({ v: v, label: label }); } } function snapRangeToTicks(axis, ticks) { if (axis.options.autoscaleMargin && ticks.length > 0) { // snap to ticks if (axis.options.min == null) axis.min = Math.min(axis.min, ticks[0].v); if (axis.options.max == null && ticks.length > 1) axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); } } function draw() { surface.clear(); executeHooks(hooks.drawBackground, [ctx]); var grid = options.grid; // draw background, if any if (grid.show && grid.backgroundColor) drawBackground(); if (grid.show && !grid.aboveData) { drawGrid(); } for (var i = 0; i < series.length; ++i) { executeHooks(hooks.drawSeries, [ctx, series[i]]); drawSeries(series[i]); } executeHooks(hooks.draw, [ctx]); if (grid.show && grid.aboveData) { drawGrid(); } surface.render(); // A draw implies that either the axes or data have changed, so we // should probably update the overlay highlights as well. triggerRedrawOverlay(); } function extractRange(ranges, coord) { var axis, from, to, key, axes = allAxes(); for (var i = 0; i < axes.length; ++i) { axis = axes[i]; if (axis.direction == coord) { key = coord + axis.n + "axis"; if (!ranges[key] && axis.n == 1) key = coord + "axis"; // support x1axis as xaxis if (ranges[key]) { from = ranges[key].from; to = ranges[key].to; break; } } } // backwards-compat stuff - to be removed in future if (!ranges[key]) { axis = coord == "x" ? xaxes[0] : yaxes[0]; from = ranges[coord + "1"]; to = ranges[coord + "2"]; } // auto-reverse as an added bonus if (from != null && to != null && from > to) { var tmp = from; from = to; to = tmp; } return { from: from, to: to, axis: axis }; } function drawBackground() { ctx.save(); ctx.translate(plotOffset.left, plotOffset.top); ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); ctx.fillRect(0, 0, plotWidth, plotHeight); ctx.restore(); } function drawGrid() { var i, axes, bw, bc; ctx.save(); ctx.translate(plotOffset.left, plotOffset.top); // draw markings var markings = options.grid.markings; if (markings) { if ($.isFunction(markings)) { axes = plot.getAxes(); // xmin etc. is backwards compatibility, to be // removed in the future axes.xmin = axes.xaxis.min; axes.xmax = axes.xaxis.max; axes.ymin = axes.yaxis.min; axes.ymax = axes.yaxis.max; markings = markings(axes); } for (i = 0; i < markings.length; ++i) { var m = markings[i], xrange = extractRange(m, "x"), yrange = extractRange(m, "y"); // fill in missing if (xrange.from == null) xrange.from = xrange.axis.min; if (xrange.to == null) xrange.to = xrange.axis.max; if (yrange.from == null) yrange.from = yrange.axis.min; if (yrange.to == null) yrange.to = yrange.axis.max; // clip if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) continue; xrange.from = Math.max(xrange.from, xrange.axis.min); xrange.to = Math.min(xrange.to, xrange.axis.max); yrange.from = Math.max(yrange.from, yrange.axis.min); yrange.to = Math.min(yrange.to, yrange.axis.max); if (xrange.from == xrange.to && yrange.from == yrange.to) continue; // then draw xrange.from = xrange.axis.p2c(xrange.from); xrange.to = xrange.axis.p2c(xrange.to); yrange.from = yrange.axis.p2c(yrange.from); yrange.to = yrange.axis.p2c(yrange.to); if (xrange.from == xrange.to || yrange.from == yrange.to) { // draw line ctx.beginPath(); ctx.strokeStyle = m.color || options.grid.markingsColor; ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; ctx.moveTo(xrange.from, yrange.from); ctx.lineTo(xrange.to, yrange.to); ctx.stroke(); } else { // fill area ctx.fillStyle = m.color || options.grid.markingsColor; ctx.fillRect(xrange.from, yrange.to, xrange.to - xrange.from, yrange.from - yrange.to); } } } // draw the ticks axes = allAxes(); bw = options.grid.borderWidth; for (var j = 0; j < axes.length; ++j) { var axis = axes[j], box = axis.box, t = axis.tickLength, x, y, xoff, yoff; if (!axis.show || axis.ticks.length == 0) continue; ctx.lineWidth = 1; // find the edges if (axis.direction == "x") { x = 0; if (t == "full") y = (axis.position == "top" ? 0 : plotHeight); else y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); } else { y = 0; if (t == "full") x = (axis.position == "left" ? 0 : plotWidth); else x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); } // draw tick bar if (!axis.innermost) { ctx.strokeStyle = axis.options.color; ctx.beginPath(); xoff = yoff = 0; if (axis.direction == "x") xoff = plotWidth + 1; else yoff = plotHeight + 1; if (ctx.lineWidth == 1) { if (axis.direction == "x") { y = Math.floor(y) + 0.5; } else { x = Math.floor(x) + 0.5; } } ctx.moveTo(x, y); ctx.lineTo(x + xoff, y + yoff); ctx.stroke(); } // draw ticks ctx.strokeStyle = axis.options.tickColor; ctx.beginPath(); for (i = 0; i < axis.ticks.length; ++i) { var v = axis.ticks[i].v; xoff = yoff = 0; if (isNaN(v) || v < axis.min || v > axis.max // skip those lying on the axes if we got a border || (t == "full" && ((typeof bw == "object" && bw[axis.position] > 0) || bw > 0) && (v == axis.min || v == axis.max))) continue; if (axis.direction == "x") { x = axis.p2c(v); yoff = t == "full" ? -plotHeight : t; if (axis.position == "top") yoff = -yoff; } else { y = axis.p2c(v); xoff = t == "full" ? -plotWidth : t; if (axis.position == "left") xoff = -xoff; } if (ctx.lineWidth == 1) { if (axis.direction == "x") x = Math.floor(x) + 0.5; else y = Math.floor(y) + 0.5; } ctx.moveTo(x, y); ctx.lineTo(x + xoff, y + yoff); } ctx.stroke(); } // draw border if (bw) { // If either borderWidth or borderColor is an object, then draw the border // line by line instead of as one rectangle bc = options.grid.borderColor; if(typeof bw == "object" || typeof bc == "object") { if (typeof bw !== "object") { bw = {top: bw, right: bw, bottom: bw, left: bw}; } if (typeof bc !== "object") { bc = {top: bc, right: bc, bottom: bc, left: bc}; } if (bw.top > 0) { ctx.strokeStyle = bc.top; ctx.lineWidth = bw.top; ctx.beginPath(); ctx.moveTo(0 - bw.left, 0 - bw.top/2); ctx.lineTo(plotWidth, 0 - bw.top/2); ctx.stroke(); } if (bw.right > 0) { ctx.strokeStyle = bc.right; ctx.lineWidth = bw.right; ctx.beginPath(); ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top); ctx.lineTo(plotWidth + bw.right / 2, plotHeight); ctx.stroke(); } if (bw.bottom > 0) { ctx.strokeStyle = bc.bottom; ctx.lineWidth = bw.bottom; ctx.beginPath(); ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2); ctx.lineTo(0, plotHeight + bw.bottom / 2); ctx.stroke(); } if (bw.left > 0) { ctx.strokeStyle = bc.left; ctx.lineWidth = bw.left; ctx.beginPath(); ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom); ctx.lineTo(0- bw.left/2, 0); ctx.stroke(); } } else { ctx.lineWidth = bw; ctx.strokeStyle = options.grid.borderColor; ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); } } ctx.restore(); } function drawAxisLabels() { $.each(allAxes(), function (_, axis) { if (!axis.show || axis.ticks.length == 0) return; var box = axis.box, legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, font = axis.options.font || "flot-tick-label tickLabel", tick, x, y, halign, valign; surface.removeText(layer); for (var i = 0; i < axis.ticks.length; ++i) { tick = axis.ticks[i]; if (!tick.label || tick.v < axis.min || tick.v > axis.max) continue; if (axis.direction == "x") { halign = "center"; x = plotOffset.left + axis.p2c(tick.v); if (axis.position == "bottom") { y = box.top + box.padding; } else { y = box.top + box.height - box.padding; valign = "bottom"; } } else { valign = "middle"; y = plotOffset.top + axis.p2c(tick.v); if (axis.position == "left") { x = box.left + box.width - box.padding; halign = "right"; } else { x = box.left + box.padding; } } surface.addText(layer, x, y, tick.label, font, null, null, halign, valign); } }); } function drawSeries(series) { if (series.lines.show) drawSeriesLines(series); if (series.bars.show) drawSeriesBars(series); if (series.points.show) drawSeriesPoints(series); } function drawSeriesLines(series) { function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { var points = datapoints.points, ps = datapoints.pointsize, prevx = null, prevy = null; ctx.beginPath(); for (var i = ps; i < points.length; i += ps) { var x1 = points[i - ps], y1 = points[i - ps + 1], x2 = points[i], y2 = points[i + 1]; if (x1 == null || x2 == null) continue; // clip with ymin if (y1 <= y2 && y1 < axisy.min) { if (y2 < axisy.min) continue; // line segment is outside // compute new intersection point x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; y1 = axisy.min; } else if (y2 <= y1 && y2 < axisy.min) { if (y1 < axisy.min) continue; x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; y2 = axisy.min; } // clip with ymax if (y1 >= y2 && y1 > axisy.max) { if (y2 > axisy.max) continue; x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; y1 = axisy.max; } else if (y2 >= y1 && y2 > axisy.max) { if (y1 > axisy.max) continue; x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; y2 = axisy.max; } // clip with xmin if (x1 <= x2 && x1 < axisx.min) { if (x2 < axisx.min) continue; y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; x1 = axisx.min; } else if (x2 <= x1 && x2 < axisx.min) { if (x1 < axisx.min) continue; y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; x2 = axisx.min; } // clip with xmax if (x1 >= x2 && x1 > axisx.max) { if (x2 > axisx.max) continue; y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; x1 = axisx.max; } else if (x2 >= x1 && x2 > axisx.max) { if (x1 > axisx.max) continue; y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; x2 = axisx.max; } if (x1 != prevx || y1 != prevy) ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); prevx = x2; prevy = y2; ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); } ctx.stroke(); } function plotLineArea(datapoints, axisx, axisy) { var points = datapoints.points, ps = datapoints.pointsize, bottom = Math.min(Math.max(0, axisy.min), axisy.max), i = 0, top, areaOpen = false, ypos = 1, segmentStart = 0, segmentEnd = 0; // we process each segment in two turns, first forward // direction to sketch out top, then once we hit the // end we go backwards to sketch the bottom while (true) { if (ps > 0 && i > points.length + ps) break; i += ps; // ps is negative if going backwards var x1 = points[i - ps], y1 = points[i - ps + ypos], x2 = points[i], y2 = points[i + ypos]; if (areaOpen) { if (ps > 0 && x1 != null && x2 == null) { // at turning point segmentEnd = i; ps = -ps; ypos = 2; continue; } if (ps < 0 && i == segmentStart + ps) { // done with the reverse sweep ctx.fill(); areaOpen = false; ps = -ps; ypos = 1; i = segmentStart = segmentEnd + ps; continue; } } if (x1 == null || x2 == null) continue; // clip x values // clip with xmin if (x1 <= x2 && x1 < axisx.min) { if (x2 < axisx.min) continue; y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; x1 = axisx.min; } else if (x2 <= x1 && x2 < axisx.min) { if (x1 < axisx.min) continue; y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; x2 = axisx.min; } // clip with xmax if (x1 >= x2 && x1 > axisx.max) { if (x2 > axisx.max) continue; y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; x1 = axisx.max; } else if (x2 >= x1 && x2 > axisx.max) { if (x1 > axisx.max) continue; y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; x2 = axisx.max; } if (!areaOpen) { // open area ctx.beginPath(); ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); areaOpen = true; } // now first check the case where both is outside if (y1 >= axisy.max && y2 >= axisy.max) { ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); continue; } else if (y1 <= axisy.min && y2 <= axisy.min) { ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); continue; } // else it's a bit more complicated, there might // be a flat maxed out rectangle first, then a // triangular cutout or reverse; to find these // keep track of the current x values var x1old = x1, x2old = x2; // clip the y values, without shortcutting, we // go through all cases in turn // clip with ymin if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; y1 = axisy.min; } else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; y2 = axisy.min; } // clip with ymax if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; y1 = axisy.max; } else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; y2 = axisy.max; } // if the x value was changed we got a rectangle // to fill if (x1 != x1old) { ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); // it goes to (x1, y1), but we fill that below } // fill triangular section, this sometimes result // in redundant points if (x1, y1) hasn't changed // from previous line to, but we just ignore that ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); // fill the other rectangle if it's there if (x2 != x2old) { ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); } } } ctx.save(); ctx.translate(plotOffset.left, plotOffset.top); ctx.lineJoin = "round"; var lw = series.lines.lineWidth, sw = series.shadowSize; // FIXME: consider another form of shadow when filling is turned on if (lw > 0 && sw > 0) { // draw shadow as a thick and thin line with transparency ctx.lineWidth = sw; ctx.strokeStyle = "rgba(0,0,0,0.1)"; // position shadow at angle from the mid of line var angle = Math.PI/18; plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); ctx.lineWidth = sw/2; plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); } ctx.lineWidth = lw; ctx.strokeStyle = series.color; var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); if (fillStyle) { ctx.fillStyle = fillStyle; plotLineArea(series.datapoints, series.xaxis, series.yaxis); } if (lw > 0) plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); ctx.restore(); } function drawSeriesPoints(series) { function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { var points = datapoints.points, ps = datapoints.pointsize; for (var i = 0; i < points.length; i += ps) { var x = points[i], y = points[i + 1]; if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) continue; ctx.beginPath(); x = axisx.p2c(x); y = axisy.p2c(y) + offset; if (symbol == "circle") ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); else symbol(ctx, x, y, radius, shadow); ctx.closePath(); if (fillStyle) { ctx.fillStyle = fillStyle; ctx.fill(); } ctx.stroke(); } } ctx.save(); ctx.translate(plotOffset.left, plotOffset.top); var lw = series.points.lineWidth, sw = series.shadowSize, radius = series.points.radius, symbol = series.points.symbol; // If the user sets the line width to 0, we change it to a very // small value. A line width of 0 seems to force the default of 1. // Doing the conditional here allows the shadow setting to still be // optional even with a lineWidth of 0. if( lw == 0 ) lw = 0.0001; if (lw > 0 && sw > 0) { // draw shadow in two steps var w = sw / 2; ctx.lineWidth = w; ctx.strokeStyle = "rgba(0,0,0,0.1)"; plotPoints(series.datapoints, radius, null, w + w/2, true, series.xaxis, series.yaxis, symbol); ctx.strokeStyle = "rgba(0,0,0,0.2)"; plotPoints(series.datapoints, radius, null, w/2, true, series.xaxis, series.yaxis, symbol); } ctx.lineWidth = lw; ctx.strokeStyle = series.color; plotPoints(series.datapoints, radius, getFillStyle(series.points, series.color), 0, false, series.xaxis, series.yaxis, symbol); ctx.restore(); } function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { var left, right, bottom, top, drawLeft, drawRight, drawTop, drawBottom, tmp; // in horizontal mode, we start the bar from the left // instead of from the bottom so it appears to be // horizontal rather than vertical if (horizontal) { drawBottom = drawRight = drawTop = true; drawLeft = false; left = b; right = x; top = y + barLeft; bottom = y + barRight; // account for negative bars if (right < left) { tmp = right; right = left; left = tmp; drawLeft = true; drawRight = false; } } else { drawLeft = drawRight = drawTop = true; drawBottom = false; left = x + barLeft; right = x + barRight; bottom = b; top = y; // account for negative bars if (top < bottom) { tmp = top; top = bottom; bottom = tmp; drawBottom = true; drawTop = false; } } // clip if (right < axisx.min || left > axisx.max || top < axisy.min || bottom > axisy.max) return; if (left < axisx.min) { left = axisx.min; drawLeft = false; } if (right > axisx.max) { right = axisx.max; drawRight = false; } if (bottom < axisy.min) { bottom = axisy.min; drawBottom = false; } if (top > axisy.max) { top = axisy.max; drawTop = false; } left = axisx.p2c(left); bottom = axisy.p2c(bottom); right = axisx.p2c(right); top = axisy.p2c(top); // fill the bar if (fillStyleCallback) { c.beginPath(); c.moveTo(left, bottom); c.lineTo(left, top); c.lineTo(right, top); c.lineTo(right, bottom); c.fillStyle = fillStyleCallback(bottom, top); c.fill(); } // draw outline if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { c.beginPath(); // FIXME: inline moveTo is buggy with excanvas c.moveTo(left, bottom + offset); if (drawLeft) c.lineTo(left, top + offset); else c.moveTo(left, top + offset); if (drawTop) c.lineTo(right, top + offset); else c.moveTo(right, top + offset); if (drawRight) c.lineTo(right, bottom + offset); else c.moveTo(right, bottom + offset); if (drawBottom) c.lineTo(left, bottom + offset); else c.moveTo(left, bottom + offset); c.stroke(); } } function drawSeriesBars(series) { function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) { var points = datapoints.points, ps = datapoints.pointsize; for (var i = 0; i < points.length; i += ps) { if (points[i] == null) continue; drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); } } ctx.save(); ctx.translate(plotOffset.left, plotOffset.top); // FIXME: figure out a way to add shadows (for instance along the right edge) ctx.lineWidth = series.bars.lineWidth; ctx.strokeStyle = series.color; var barLeft; switch (series.bars.align) { case "left": barLeft = 0; break; case "right": barLeft = -series.bars.barWidth; break; case "center": barLeft = -series.bars.barWidth / 2; break; default: throw new Error("Invalid bar alignment: " + series.bars.align); } var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis); ctx.restore(); } function getFillStyle(filloptions, seriesColor, bottom, top) { var fill = filloptions.fill; if (!fill) return null; if (filloptions.fillColor) return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); var c = $.color.parse(seriesColor); c.a = typeof fill == "number" ? fill : 0.4; c.normalize(); return c.toString(); } function insertLegend() { placeholder.find(".legend").remove(); if (!options.legend.show) return; var fragments = [], entries = [], rowStarted = false, lf = options.legend.labelFormatter, s, label; // Build a list of legend entries, with each having a label and a color for (var i = 0; i < series.length; ++i) { s = series[i]; if (s.label) { label = lf ? lf(s.label, s) : s.label; if (label) { entries.push({ label: label, color: s.color }); } } } // Sort the legend using either the default or a custom comparator if (options.legend.sorted) { if ($.isFunction(options.legend.sorted)) { entries.sort(options.legend.sorted); } else if (options.legend.sorted == "reverse") { entries.reverse(); } else { var ascending = options.legend.sorted != "descending"; entries.sort(function(a, b) { return a.label == b.label ? 0 : ( (a.label < b.label) != ascending ? 1 : -1 // Logical XOR ); }); } } // Generate markup for the list of entries, in their final order for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; if (i % options.legend.noColumns == 0) { if (rowStarted) fragments.push(''); fragments.push(''); rowStarted = true; } fragments.push( '
    ' + '' + entry.label + '' ); } if (rowStarted) fragments.push(''); if (fragments.length == 0) return; var table = '' + fragments.join("") + '
    '; if (options.legend.container != null) $(options.legend.container).html(table); else { var pos = "", p = options.legend.position, m = options.legend.margin; if (m[0] == null) m = [m, m]; if (p.charAt(0) == "n") pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; else if (p.charAt(0) == "s") pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; if (p.charAt(1) == "e") pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; else if (p.charAt(1) == "w") pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; var legend = $('
    ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
    ').appendTo(placeholder); if (options.legend.backgroundOpacity != 0.0) { // put in the transparent background // separately to avoid blended labels and // label boxes var c = options.legend.backgroundColor; if (c == null) { c = options.grid.backgroundColor; if (c && typeof c == "string") c = $.color.parse(c); else c = $.color.extract(legend, 'background-color'); c.a = 1; c = c.toString(); } var div = legend.children(); $('
    ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); } } } // interactive features var highlights = [], redrawTimeout = null; // returns the data item the mouse is over, or null if none is found function findNearbyItem(mouseX, mouseY, seriesFilter) { var maxDistance = options.grid.mouseActiveRadius, smallestDistance = maxDistance * maxDistance + 1, item = null, foundPoint = false, i, j, ps; for (i = series.length - 1; i >= 0; --i) { if (!seriesFilter(series[i])) continue; var s = series[i], axisx = s.xaxis, axisy = s.yaxis, points = s.datapoints.points, mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster my = axisy.c2p(mouseY), maxx = maxDistance / axisx.scale, maxy = maxDistance / axisy.scale; ps = s.datapoints.pointsize; // with inverse transforms, we can't use the maxx/maxy // optimization, sadly if (axisx.options.inverseTransform) maxx = Number.MAX_VALUE; if (axisy.options.inverseTransform) maxy = Number.MAX_VALUE; if (s.lines.show || s.points.show) { for (j = 0; j < points.length; j += ps) { var x = points[j], y = points[j + 1]; if (x == null) continue; // For points and lines, the cursor must be within a // certain distance to the data point if (x - mx > maxx || x - mx < -maxx || y - my > maxy || y - my < -maxy) continue; // We have to calculate distances in pixels, not in // data units, because the scales of the axes may be different var dx = Math.abs(axisx.p2c(x) - mouseX), dy = Math.abs(axisy.p2c(y) - mouseY), dist = dx * dx + dy * dy; // we save the sqrt // use <= to ensure last point takes precedence // (last generally means on top of) if (dist < smallestDistance) { smallestDistance = dist; item = [i, j / ps]; } } } if (s.bars.show && !item) { // no other point can be nearby var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2, barRight = barLeft + s.bars.barWidth; for (j = 0; j < points.length; j += ps) { var x = points[j], y = points[j + 1], b = points[j + 2]; if (x == null) continue; // for a bar graph, the cursor must be inside the bar if (series[i].bars.horizontal ? (mx <= Math.max(b, x) && mx >= Math.min(b, x) && my >= y + barLeft && my <= y + barRight) : (mx >= x + barLeft && mx <= x + barRight && my >= Math.min(b, y) && my <= Math.max(b, y))) item = [i, j / ps]; } } } if (item) { i = item[0]; j = item[1]; ps = series[i].datapoints.pointsize; return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), dataIndex: j, series: series[i], seriesIndex: i }; } return null; } function onMouseMove(e) { if (options.grid.hoverable) triggerClickHoverEvent("plothover", e, function (s) { return s["hoverable"] != false; }); } function onMouseLeave(e) { if (options.grid.hoverable) triggerClickHoverEvent("plothover", e, function (s) { return false; }); } function onClick(e) { triggerClickHoverEvent("plotclick", e, function (s) { return s["clickable"] != false; }); } // trigger click or hover event (they send the same parameters // so we share their code) function triggerClickHoverEvent(eventname, event, seriesFilter) { var offset = eventHolder.offset(), canvasX = event.pageX - offset.left - plotOffset.left, canvasY = event.pageY - offset.top - plotOffset.top, pos = canvasToAxisCoords({ left: canvasX, top: canvasY }); pos.pageX = event.pageX; pos.pageY = event.pageY; var item = findNearbyItem(canvasX, canvasY, seriesFilter); if (item) { // fill in mouse pos for any listeners out there item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10); item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10); } if (options.grid.autoHighlight) { // clear auto-highlights for (var i = 0; i < highlights.length; ++i) { var h = highlights[i]; if (h.auto == eventname && !(item && h.series == item.series && h.point[0] == item.datapoint[0] && h.point[1] == item.datapoint[1])) unhighlight(h.series, h.point); } if (item) highlight(item.series, item.datapoint, eventname); } placeholder.trigger(eventname, [ pos, item ]); } function triggerRedrawOverlay() { var t = options.interaction.redrawOverlayInterval; if (t == -1) { // skip event queue drawOverlay(); return; } if (!redrawTimeout) redrawTimeout = setTimeout(drawOverlay, t); } function drawOverlay() { redrawTimeout = null; // draw highlights octx.save(); overlay.clear(); octx.translate(plotOffset.left, plotOffset.top); var i, hi; for (i = 0; i < highlights.length; ++i) { hi = highlights[i]; if (hi.series.bars.show) drawBarHighlight(hi.series, hi.point); else drawPointHighlight(hi.series, hi.point); } octx.restore(); executeHooks(hooks.drawOverlay, [octx]); } function highlight(s, point, auto) { if (typeof s == "number") s = series[s]; if (typeof point == "number") { var ps = s.datapoints.pointsize; point = s.datapoints.points.slice(ps * point, ps * (point + 1)); } var i = indexOfHighlight(s, point); if (i == -1) { highlights.push({ series: s, point: point, auto: auto }); triggerRedrawOverlay(); } else if (!auto) highlights[i].auto = false; } function unhighlight(s, point) { if (s == null && point == null) { highlights = []; triggerRedrawOverlay(); return; } if (typeof s == "number") s = series[s]; if (typeof point == "number") { var ps = s.datapoints.pointsize; point = s.datapoints.points.slice(ps * point, ps * (point + 1)); } var i = indexOfHighlight(s, point); if (i != -1) { highlights.splice(i, 1); triggerRedrawOverlay(); } } function indexOfHighlight(s, p) { for (var i = 0; i < highlights.length; ++i) { var h = highlights[i]; if (h.series == s && h.point[0] == p[0] && h.point[1] == p[1]) return i; } return -1; } function drawPointHighlight(series, point) { var x = point[0], y = point[1], axisx = series.xaxis, axisy = series.yaxis, highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(); if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) return; var pointRadius = series.points.radius + series.points.lineWidth / 2; octx.lineWidth = pointRadius; octx.strokeStyle = highlightColor; var radius = 1.5 * pointRadius; x = axisx.p2c(x); y = axisy.p2c(y); octx.beginPath(); if (series.points.symbol == "circle") octx.arc(x, y, radius, 0, 2 * Math.PI, false); else series.points.symbol(octx, x, y, radius, false); octx.closePath(); octx.stroke(); } function drawBarHighlight(series, point) { var highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(), fillStyle = highlightColor, barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; octx.lineWidth = series.bars.lineWidth; octx.strokeStyle = highlightColor; drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); } function getColorOrGradient(spec, bottom, top, defaultColor) { if (typeof spec == "string") return spec; else { // assume this is a gradient spec; IE currently only // supports a simple vertical gradient properly, so that's // what we support too var gradient = ctx.createLinearGradient(0, top, 0, bottom); for (var i = 0, l = spec.colors.length; i < l; ++i) { var c = spec.colors[i]; if (typeof c != "string") { var co = $.color.parse(defaultColor); if (c.brightness != null) co = co.scale('rgb', c.brightness); if (c.opacity != null) co.a *= c.opacity; c = co.toString(); } gradient.addColorStop(i / (l - 1), c); } return gradient; } } } // Add the plot function to the top level of the jQuery object $.plot = function(placeholder, data, options) { //var t0 = new Date(); var plot = new Plot($(placeholder), data, options, $.plot.plugins); //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); return plot; }; $.plot.version = "0.8.1"; $.plot.plugins = []; // Also add the plot function as a chainable property $.fn.plot = function(data, options) { return this.each(function() { $.plot(this, data, options); }); }; // round to nearby lower multiple of base function floorInBase(n, base) { return base * Math.floor(n / base); } })(jQuery); assets/js/jquery-flot/jquery.flot.stack.js000066600000015404152133032050014671 0ustar00/* Flot plugin for stacking data sets rather than overlyaing them. Copyright (c) 2007-2013 IOLA and Ole Laursen. Licensed under the MIT license. The plugin assumes the data is sorted on x (or y if stacking horizontally). For line charts, it is assumed that if a line has an undefined gap (from a null point), then the line above it should have the same gap - insert zeros instead of "null" if you want another behaviour. This also holds for the start and end of the chart. Note that stacking a mix of positive and negative values in most instances doesn't make sense (so it looks weird). Two or more series are stacked when their "stack" attribute is set to the same key (which can be any number or string or just "true"). To specify the default stack, you can set the stack option like this: series: { stack: null/false, true, or a key (number/string) } You can also specify it for a single series, like this: $.plot( $("#placeholder"), [{ data: [ ... ], stack: true }]) The stacking order is determined by the order of the data series in the array (later series end up on top of the previous). Internally, the plugin modifies the datapoints in each series, adding an offset to the y value. For line series, extra data points are inserted through interpolation. If there's a second y value, it's also adjusted (e.g for bar charts or filled areas). */ (function ($) { var options = { series: { stack: null } // or number/string }; function init(plot) { function findMatchingSeries(s, allseries) { var res = null; for (var i = 0; i < allseries.length; ++i) { if (s == allseries[i]) break; if (allseries[i].stack == s.stack) res = allseries[i]; } return res; } function stackData(plot, s, datapoints) { if (s.stack == null || s.stack === false) return; var other = findMatchingSeries(s, plot.getData()); if (!other) return; var ps = datapoints.pointsize, points = datapoints.points, otherps = other.datapoints.pointsize, otherpoints = other.datapoints.points, newpoints = [], px, py, intery, qx, qy, bottom, withlines = s.lines.show, horizontal = s.bars.horizontal, withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y), withsteps = withlines && s.lines.steps, fromgap = true, keyOffset = horizontal ? 1 : 0, accumulateOffset = horizontal ? 0 : 1, i = 0, j = 0, l, m; while (true) { if (i >= points.length) break; l = newpoints.length; if (points[i] == null) { // copy gaps for (m = 0; m < ps; ++m) newpoints.push(points[i + m]); i += ps; } else if (j >= otherpoints.length) { // for lines, we can't use the rest of the points if (!withlines) { for (m = 0; m < ps; ++m) newpoints.push(points[i + m]); } i += ps; } else if (otherpoints[j] == null) { // oops, got a gap for (m = 0; m < ps; ++m) newpoints.push(null); fromgap = true; j += otherps; } else { // cases where we actually got two points px = points[i + keyOffset]; py = points[i + accumulateOffset]; qx = otherpoints[j + keyOffset]; qy = otherpoints[j + accumulateOffset]; bottom = 0; if (px == qx) { for (m = 0; m < ps; ++m) newpoints.push(points[i + m]); newpoints[l + accumulateOffset] += qy; bottom = qy; i += ps; j += otherps; } else if (px > qx) { // we got past point below, might need to // insert interpolated extra point if (withlines && i > 0 && points[i - ps] != null) { intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px); newpoints.push(qx); newpoints.push(intery + qy); for (m = 2; m < ps; ++m) newpoints.push(points[i + m]); bottom = qy; } j += otherps; } else { // px < qx if (fromgap && withlines) { // if we come from a gap, we just skip this point i += ps; continue; } for (m = 0; m < ps; ++m) newpoints.push(points[i + m]); // we might be able to interpolate a point below, // this can give us a better y if (withlines && j > 0 && otherpoints[j - otherps] != null) bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx); newpoints[l + accumulateOffset] += bottom; i += ps; } fromgap = false; if (l != newpoints.length && withbottom) newpoints[l + 2] += bottom; } // maintain the line steps invariant if (withsteps && l != newpoints.length && l > 0 && newpoints[l] != null && newpoints[l] != newpoints[l - ps] && newpoints[l + 1] != newpoints[l - ps + 1]) { for (m = 0; m < ps; ++m) newpoints[l + ps + m] = newpoints[l + m]; newpoints[l + 1] = newpoints[l - ps + 1]; } } datapoints.points = newpoints; } plot.hooks.processDatapoints.push(stackData); } $.plot.plugins.push({ init: init, options: options, name: 'stack', version: '1.2' }); })(jQuery);assets/js/jquery-flot/jquery.flot.pie.js000066600000056072152133032050014347 0ustar00/* Flot plugin for rendering pie charts. Copyright (c) 2007-2013 IOLA and Ole Laursen. Licensed under the MIT license. The plugin assumes that each series has a single data value, and that each value is a positive integer or zero. Negative numbers don't make sense for a pie chart, and have unpredictable results. The values do NOT need to be passed in as percentages; the plugin will calculate the total and per-slice percentages internally. * Created by Brian Medendorp * Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars The plugin supports these options: series: { pie: { show: true/false radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) offset: { top: integer value to move the pie up or down left: integer value to move the pie left or right, or 'auto' }, stroke: { color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') width: integer pixel width of the stroke }, label: { show: true/false, or 'auto' formatter: a user-defined function that modifies the text/style of the label text radius: 0-1 for percentage of fullsize, or a specified pixel length background: { color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') opacity: 0-1 }, threshold: 0-1 for the percentage value at which to hide labels (if they're too small) }, combine: { threshold: 0-1 for the percentage value at which to combine slices (if they're too small) color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined label: any text value of what the combined slice should be labeled } highlight: { opacity: 0-1 } } } More detail and specific examples can be found in the included HTML file. */ (function($) { // Maximum redraw attempts when fitting labels within the plot var REDRAW_ATTEMPTS = 10; // Factor by which to shrink the pie when fitting labels within the plot var REDRAW_SHRINK = 0.95; function init(plot) { var canvas = null, target = null, maxRadius = null, centerLeft = null, centerTop = null, processed = false, ctx = null; // interactive variables var highlights = []; // add hook to determine if pie plugin in enabled, and then perform necessary operations plot.hooks.processOptions.push(function(plot, options) { if (options.series.pie.show) { options.grid.show = false; // set labels.show if (options.series.pie.label.show == "auto") { if (options.legend.show) { options.series.pie.label.show = false; } else { options.series.pie.label.show = true; } } // set radius if (options.series.pie.radius == "auto") { if (options.series.pie.label.show) { options.series.pie.radius = 3/4; } else { options.series.pie.radius = 1; } } // ensure sane tilt if (options.series.pie.tilt > 1) { options.series.pie.tilt = 1; } else if (options.series.pie.tilt < 0) { options.series.pie.tilt = 0; } } }); plot.hooks.bindEvents.push(function(plot, eventHolder) { var options = plot.getOptions(); if (options.series.pie.show) { if (options.grid.hoverable) { eventHolder.unbind("mousemove").mousemove(onMouseMove); } if (options.grid.clickable) { eventHolder.unbind("click").click(onClick); } } }); plot.hooks.processDatapoints.push(function(plot, series, data, datapoints) { var options = plot.getOptions(); if (options.series.pie.show) { processDatapoints(plot, series, data, datapoints); } }); plot.hooks.drawOverlay.push(function(plot, octx) { var options = plot.getOptions(); if (options.series.pie.show) { drawOverlay(plot, octx); } }); plot.hooks.draw.push(function(plot, newCtx) { var options = plot.getOptions(); if (options.series.pie.show) { draw(plot, newCtx); } }); function processDatapoints(plot, series, datapoints) { if (!processed) { processed = true; canvas = plot.getCanvas(); target = $(canvas).parent(); options = plot.getOptions(); plot.setData(combine(plot.getData())); } } function combine(data) { var total = 0, combined = 0, numCombined = 0, color = options.series.pie.combine.color, newdata = []; // Fix up the raw data from Flot, ensuring the data is numeric for (var i = 0; i < data.length; ++i) { var value = data[i].data; // If the data is an array, we'll assume that it's a standard // Flot x-y pair, and are concerned only with the second value. // Note how we use the original array, rather than creating a // new one; this is more efficient and preserves any extra data // that the user may have stored in higher indexes. if ($.isArray(value) && value.length == 1) { value = value[0]; } if ($.isArray(value)) { // Equivalent to $.isNumeric() but compatible with jQuery < 1.7 if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) { value[1] = +value[1]; } else { value[1] = 0; } } else if (!isNaN(parseFloat(value)) && isFinite(value)) { value = [1, +value]; } else { value = [1, 0]; } data[i].data = [value]; } // Sum up all the slices, so we can calculate percentages for each for (var i = 0; i < data.length; ++i) { total += data[i].data[0][1]; } // Count the number of slices with percentages below the combine // threshold; if it turns out to be just one, we won't combine. for (var i = 0; i < data.length; ++i) { var value = data[i].data[0][1]; if (value / total <= options.series.pie.combine.threshold) { combined += value; numCombined++; if (!color) { color = data[i].color; } } } for (var i = 0; i < data.length; ++i) { var value = data[i].data[0][1]; if (numCombined < 2 || value / total > options.series.pie.combine.threshold) { newdata.push({ data: [[1, value]], color: data[i].color, label: data[i].label, angle: value * Math.PI * 2 / total, percent: value / (total / 100) }); } } if (numCombined > 1) { newdata.push({ data: [[1, combined]], color: color, label: options.series.pie.combine.label, angle: combined * Math.PI * 2 / total, percent: combined / (total / 100) }); } return newdata; } function draw(plot, newCtx) { if (!target) { return; // if no series were passed } var canvasWidth = plot.getPlaceholder().width(), canvasHeight = plot.getPlaceholder().height(), legendWidth = target.children().filter(".legend").children().width() || 0; ctx = newCtx; // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE! // When combining smaller slices into an 'other' slice, we need to // add a new series. Since Flot gives plugins no way to modify the // list of series, the pie plugin uses a hack where the first call // to processDatapoints results in a call to setData with the new // list of series, then subsequent processDatapoints do nothing. // The plugin-global 'processed' flag is used to control this hack; // it starts out false, and is set to true after the first call to // processDatapoints. // Unfortunately this turns future setData calls into no-ops; they // call processDatapoints, the flag is true, and nothing happens. // To fix this we'll set the flag back to false here in draw, when // all series have been processed, so the next sequence of calls to // processDatapoints once again starts out with a slice-combine. // This is really a hack; in 0.9 we need to give plugins a proper // way to modify series before any processing begins. processed = false; // calculate maximum radius and center point maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2; centerTop = canvasHeight / 2 + options.series.pie.offset.top; centerLeft = canvasWidth / 2; if (options.series.pie.offset.left == "auto") { if (options.legend.position.match("w")) { centerLeft += legendWidth / 2; } else { centerLeft -= legendWidth / 2; } } else { centerLeft += options.series.pie.offset.left; } if (centerLeft < maxRadius) { centerLeft = maxRadius; } else if (centerLeft > canvasWidth - maxRadius) { centerLeft = canvasWidth - maxRadius; } var slices = plot.getData(), attempts = 0; // Keep shrinking the pie's radius until drawPie returns true, // indicating that all the labels fit, or we try too many times. do { if (attempts > 0) { maxRadius *= REDRAW_SHRINK; } attempts += 1; clear(); if (options.series.pie.tilt <= 0.8) { drawShadow(); } } while (!drawPie() && attempts < REDRAW_ATTEMPTS) if (attempts >= REDRAW_ATTEMPTS) { clear(); target.prepend("
    Could not draw pie with labels contained inside canvas
    "); } if (plot.setSeries && plot.insertLegend) { plot.setSeries(slices); plot.insertLegend(); } // we're actually done at this point, just defining internal functions at this point function clear() { ctx.clearRect(0, 0, canvasWidth, canvasHeight); target.children().filter(".pieLabel, .pieLabelBackground").remove(); } function drawShadow() { var shadowLeft = options.series.pie.shadow.left; var shadowTop = options.series.pie.shadow.top; var edge = 10; var alpha = options.series.pie.shadow.alpha; var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) { return; // shadow would be outside canvas, so don't draw it } ctx.save(); ctx.translate(shadowLeft,shadowTop); ctx.globalAlpha = alpha; ctx.fillStyle = "#000"; // center and rotate to starting position ctx.translate(centerLeft,centerTop); ctx.scale(1, options.series.pie.tilt); //radius -= edge; for (var i = 1; i <= edge; i++) { ctx.beginPath(); ctx.arc(0, 0, radius, 0, Math.PI * 2, false); ctx.fill(); radius -= i; } ctx.restore(); } function drawPie() { var startAngle = Math.PI * options.series.pie.startAngle; var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; // center and rotate to starting position ctx.save(); ctx.translate(centerLeft,centerTop); ctx.scale(1, options.series.pie.tilt); //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera // draw slices ctx.save(); var currentAngle = startAngle; for (var i = 0; i < slices.length; ++i) { slices[i].startAngle = currentAngle; drawSlice(slices[i].angle, slices[i].color, true); } ctx.restore(); // draw slice outlines if (options.series.pie.stroke.width > 0) { ctx.save(); ctx.lineWidth = options.series.pie.stroke.width; currentAngle = startAngle; for (var i = 0; i < slices.length; ++i) { drawSlice(slices[i].angle, options.series.pie.stroke.color, false); } ctx.restore(); } // draw donut hole drawDonutHole(ctx); ctx.restore(); // Draw the labels, returning true if they fit within the plot if (options.series.pie.label.show) { return drawLabels(); } else return true; function drawSlice(angle, color, fill) { if (angle <= 0 || isNaN(angle)) { return; } if (fill) { ctx.fillStyle = color; } else { ctx.strokeStyle = color; ctx.lineJoin = "round"; } ctx.beginPath(); if (Math.abs(angle - Math.PI * 2) > 0.000000001) { ctx.moveTo(0, 0); // Center of the pie } //ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera ctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false); ctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false); ctx.closePath(); //ctx.rotate(angle); // This doesn't work properly in Opera currentAngle += angle; if (fill) { ctx.fill(); } else { ctx.stroke(); } } function drawLabels() { var currentAngle = startAngle; var radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius; for (var i = 0; i < slices.length; ++i) { if (slices[i].percent >= options.series.pie.label.threshold * 100) { if (!drawLabel(slices[i], currentAngle, i)) { return false; } } currentAngle += slices[i].angle; } return true; function drawLabel(slice, startAngle, index) { if (slice.data[0][1] == 0) { return true; } // format label text var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter; if (lf) { text = lf(slice.label, slice); } else { text = slice.label; } if (plf) { text = plf(text, slice); } var halfAngle = ((startAngle + slice.angle) + startAngle) / 2; var x = centerLeft + Math.round(Math.cos(halfAngle) * radius); var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; var html = "" + text + ""; target.append(html); var label = target.children("#pieLabel" + index); var labelTop = (y - label.height() / 2); var labelLeft = (x - label.width() / 2); label.css("top", labelTop); label.css("left", labelLeft); // check to make sure that the label is not outside the canvas if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) { return false; } if (options.series.pie.label.background.opacity != 0) { // put in the transparent background separately to avoid blended labels and label boxes var c = options.series.pie.label.background.color; if (c == null) { c = slice.color; } var pos = "top:" + labelTop + "px;left:" + labelLeft + "px;"; $("
    ") .css("opacity", options.series.pie.label.background.opacity) .insertBefore(label); } return true; } // end individual label function } // end drawLabels function } // end drawPie function } // end draw function // Placed here because it needs to be accessed from multiple locations function drawDonutHole(layer) { if (options.series.pie.innerRadius > 0) { // subtract the center layer.save(); var innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; layer.globalCompositeOperation = "destination-out"; // this does not work with excanvas, but it will fall back to using the stroke color layer.beginPath(); layer.fillStyle = options.series.pie.stroke.color; layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); layer.fill(); layer.closePath(); layer.restore(); // add inner stroke layer.save(); layer.beginPath(); layer.strokeStyle = options.series.pie.stroke.color; layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); layer.stroke(); layer.closePath(); layer.restore(); // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. } } //-- Additional Interactive related functions -- function isPointInPoly(poly, pt) { for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1])) && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) && (c = !c); return c; } function findNearbySlice(mouseX, mouseY) { var slices = plot.getData(), options = plot.getOptions(), radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius, x, y; for (var i = 0; i < slices.length; ++i) { var s = slices[i]; if (s.pie.show) { ctx.save(); ctx.beginPath(); ctx.moveTo(0, 0); // Center of the pie //ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false); ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false); ctx.closePath(); x = mouseX - centerLeft; y = mouseY - centerTop; if (ctx.isPointInPath) { if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) { ctx.restore(); return { datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i }; } } else { // excanvas for IE doesn;t support isPointInPath, this is a workaround. var p1X = radius * Math.cos(s.startAngle), p1Y = radius * Math.sin(s.startAngle), p2X = radius * Math.cos(s.startAngle + s.angle / 4), p2Y = radius * Math.sin(s.startAngle + s.angle / 4), p3X = radius * Math.cos(s.startAngle + s.angle / 2), p3Y = radius * Math.sin(s.startAngle + s.angle / 2), p4X = radius * Math.cos(s.startAngle + s.angle / 1.5), p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5), p5X = radius * Math.cos(s.startAngle + s.angle), p5Y = radius * Math.sin(s.startAngle + s.angle), arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]], arrPoint = [x, y]; // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? if (isPointInPoly(arrPoly, arrPoint)) { ctx.restore(); return { datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i }; } } ctx.restore(); } } return null; } function onMouseMove(e) { triggerClickHoverEvent("plothover", e); } function onClick(e) { triggerClickHoverEvent("plotclick", e); } // trigger click or hover event (they send the same parameters so we share their code) function triggerClickHoverEvent(eventname, e) { var offset = plot.offset(); var canvasX = parseInt(e.pageX - offset.left); var canvasY = parseInt(e.pageY - offset.top); var item = findNearbySlice(canvasX, canvasY); if (options.grid.autoHighlight) { // clear auto-highlights for (var i = 0; i < highlights.length; ++i) { var h = highlights[i]; if (h.auto == eventname && !(item && h.series == item.series)) { unhighlight(h.series); } } } // highlight the slice if (item) { highlight(item.series, eventname); } // trigger any hover bind events var pos = { pageX: e.pageX, pageY: e.pageY }; target.trigger(eventname, [pos, item]); } function highlight(s, auto) { //if (typeof s == "number") { // s = series[s]; //} var i = indexOfHighlight(s); if (i == -1) { highlights.push({ series: s, auto: auto }); plot.triggerRedrawOverlay(); } else if (!auto) { highlights[i].auto = false; } } function unhighlight(s) { if (s == null) { highlights = []; plot.triggerRedrawOverlay(); } //if (typeof s == "number") { // s = series[s]; //} var i = indexOfHighlight(s); if (i != -1) { highlights.splice(i, 1); plot.triggerRedrawOverlay(); } } function indexOfHighlight(s) { for (var i = 0; i < highlights.length; ++i) { var h = highlights[i]; if (h.series == s) return i; } return -1; } function drawOverlay(plot, octx) { var options = plot.getOptions(); var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; octx.save(); octx.translate(centerLeft, centerTop); octx.scale(1, options.series.pie.tilt); for (var i = 0; i < highlights.length; ++i) { drawHighlight(highlights[i].series); } drawDonutHole(octx); octx.restore(); function drawHighlight(series) { if (series.angle <= 0 || isNaN(series.angle)) { return; } //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); octx.fillStyle = "rgba(255, 255, 255, " + options.series.pie.highlight.opacity + ")"; // this is temporary until we have access to parseColor octx.beginPath(); if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) { octx.moveTo(0, 0); // Center of the pie } octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false); octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false); octx.closePath(); octx.fill(); } } } // end init (plugin body) // define pie specific options and their default values var options = { series: { pie: { show: false, radius: "auto", // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) innerRadius: 0, /* for donut */ startAngle: 3/2, tilt: 1, shadow: { left: 5, // shadow left offset top: 15, // shadow top offset alpha: 0.02 // shadow alpha }, offset: { top: 0, left: "auto" }, stroke: { color: "#fff", width: 1 }, label: { show: "auto", formatter: function(label, slice) { return "
    " + label + "
    " + Math.round(slice.percent) + "%
    "; }, // formatter function radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) background: { color: null, opacity: 0 }, threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow) }, combine: { threshold: -1, // percentage at which to combine little slices into one larger slice color: null, // color to give the new slice (auto-generated if null) label: "Other" // label to give the new slice }, highlight: { //color: "#fff", // will add this functionality once parseColor is available opacity: 0.5 } } } }; $.plot.plugins.push({ init: init, options: options, name: "pie", version: "1.1" }); })(jQuery);assets/js/jquery-flot/jquery.flot.time.js000066600000026721152133032050014526 0ustar00/* Pretty handling of time axes. Copyright (c) 2007-2013 IOLA and Ole Laursen. Licensed under the MIT license. Set axis.mode to "time" to enable. See the section "Time series data" in API.txt for details. */ (function($) { var options = { xaxis: { timezone: null, // "browser" for local to the client or timezone for timezone-js timeformat: null, // format string to use twelveHourClock: false, // 12 or 24 time in time mode monthNames: null // list of names of months } }; // round to nearby lower multiple of base function floorInBase(n, base) { return base * Math.floor(n / base); } // Returns a string with the date d formatted according to fmt. // A subset of the Open Group's strftime format is supported. function formatDate(d, fmt, monthNames, dayNames) { if (typeof d.strftime == "function") { return d.strftime(fmt); } var leftPad = function(n, pad) { n = "" + n; pad = "" + (pad == null ? "0" : pad); return n.length == 1 ? pad + n : n; }; var r = []; var escape = false; var hours = d.getHours(); var isAM = hours < 12; if (monthNames == null) { monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; } if (dayNames == null) { dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; } var hours12; if (hours > 12) { hours12 = hours - 12; } else if (hours == 0) { hours12 = 12; } else { hours12 = hours; } for (var i = 0; i < fmt.length; ++i) { var c = fmt.charAt(i); if (escape) { switch (c) { case 'a': c = "" + dayNames[d.getDay()]; break; case 'b': c = "" + monthNames[d.getMonth()]; break; case 'd': c = leftPad(d.getDate()); break; case 'e': c = leftPad(d.getDate(), " "); break; case 'h': // For back-compat with 0.7; remove in 1.0 case 'H': c = leftPad(hours); break; case 'I': c = leftPad(hours12); break; case 'l': c = leftPad(hours12, " "); break; case 'm': c = leftPad(d.getMonth() + 1); break; case 'M': c = leftPad(d.getMinutes()); break; // quarters not in Open Group's strftime specification case 'q': c = "" + (Math.floor(d.getMonth() / 3) + 1); break; case 'S': c = leftPad(d.getSeconds()); break; case 'y': c = leftPad(d.getFullYear() % 100); break; case 'Y': c = "" + d.getFullYear(); break; case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; case 'w': c = "" + d.getDay(); break; } r.push(c); escape = false; } else { if (c == "%") { escape = true; } else { r.push(c); } } } return r.join(""); } // To have a consistent view of time-based data independent of which time // zone the client happens to be in we need a date-like object independent // of time zones. This is done through a wrapper that only calls the UTC // versions of the accessor methods. function makeUtcWrapper(d) { function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) { sourceObj[sourceMethod] = function() { return targetObj[targetMethod].apply(targetObj, arguments); }; }; var utc = { date: d }; // support strftime, if found if (d.strftime != undefined) { addProxyMethod(utc, "strftime", d, "strftime"); } addProxyMethod(utc, "getTime", d, "getTime"); addProxyMethod(utc, "setTime", d, "setTime"); var props = ["Date", "Day", "FullYear", "Hours", "Milliseconds", "Minutes", "Month", "Seconds"]; for (var p = 0; p < props.length; p++) { addProxyMethod(utc, "get" + props[p], d, "getUTC" + props[p]); addProxyMethod(utc, "set" + props[p], d, "setUTC" + props[p]); } return utc; }; // select time zone strategy. This returns a date-like object tied to the // desired timezone function dateGenerator(ts, opts) { if (opts.timezone == "browser") { return new Date(ts); } else if (!opts.timezone || opts.timezone == "utc") { return makeUtcWrapper(new Date(ts)); } else if (typeof timezoneJS != "undefined" && typeof timezoneJS.Date != "undefined") { var d = new timezoneJS.Date(); // timezone-js is fickle, so be sure to set the time zone before // setting the time. d.setTimezone(opts.timezone); d.setTime(ts); return d; } else { return makeUtcWrapper(new Date(ts)); } } // map of app. size of time units in milliseconds var timeUnitSize = { "second": 1000, "minute": 60 * 1000, "hour": 60 * 60 * 1000, "day": 24 * 60 * 60 * 1000, "month": 30 * 24 * 60 * 60 * 1000, "quarter": 3 * 30 * 24 * 60 * 60 * 1000, "year": 365.2425 * 24 * 60 * 60 * 1000 }; // the allowed tick sizes, after 1 year we use // an integer algorithm var baseSpec = [ [1, "second"], [2, "second"], [5, "second"], [10, "second"], [30, "second"], [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], [30, "minute"], [1, "hour"], [2, "hour"], [4, "hour"], [8, "hour"], [12, "hour"], [1, "day"], [2, "day"], [3, "day"], [0.25, "month"], [0.5, "month"], [1, "month"], [2, "month"] ]; // we don't know which variant(s) we'll need yet, but generating both is // cheap var specMonths = baseSpec.concat([[3, "month"], [6, "month"], [1, "year"]]); var specQuarters = baseSpec.concat([[1, "quarter"], [2, "quarter"], [1, "year"]]); function init(plot) { plot.hooks.processOptions.push(function (plot, options) { $.each(plot.getAxes(), function(axisName, axis) { var opts = axis.options; if (opts.mode == "time") { axis.tickGenerator = function(axis) { var ticks = []; var d = dateGenerator(axis.min, opts); var minSize = 0; // make quarter use a possibility if quarters are // mentioned in either of these options var spec = (opts.tickSize && opts.tickSize[1] === "quarter") || (opts.minTickSize && opts.minTickSize[1] === "quarter") ? specQuarters : specMonths; if (opts.minTickSize != null) { if (typeof opts.tickSize == "number") { minSize = opts.tickSize; } else { minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; } } for (var i = 0; i < spec.length - 1; ++i) { if (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]] + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) { break; } } var size = spec[i][0]; var unit = spec[i][1]; // special-case the possibility of several years if (unit == "year") { // if given a minTickSize in years, just use it, // ensuring that it's an integer if (opts.minTickSize != null && opts.minTickSize[1] == "year") { size = Math.floor(opts.minTickSize[0]); } else { var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10)); var norm = (axis.delta / timeUnitSize.year) / magn; if (norm < 1.5) { size = 1; } else if (norm < 3) { size = 2; } else if (norm < 7.5) { size = 5; } else { size = 10; } size *= magn; } // minimum size for years is 1 if (size < 1) { size = 1; } } axis.tickSize = opts.tickSize || [size, unit]; var tickSize = axis.tickSize[0]; unit = axis.tickSize[1]; var step = tickSize * timeUnitSize[unit]; if (unit == "second") { d.setSeconds(floorInBase(d.getSeconds(), tickSize)); } else if (unit == "minute") { d.setMinutes(floorInBase(d.getMinutes(), tickSize)); } else if (unit == "hour") { d.setHours(floorInBase(d.getHours(), tickSize)); } else if (unit == "month") { d.setMonth(floorInBase(d.getMonth(), tickSize)); } else if (unit == "quarter") { d.setMonth(3 * floorInBase(d.getMonth() / 3, tickSize)); } else if (unit == "year") { d.setFullYear(floorInBase(d.getFullYear(), tickSize)); } // reset smaller components d.setMilliseconds(0); if (step >= timeUnitSize.minute) { d.setSeconds(0); } if (step >= timeUnitSize.hour) { d.setMinutes(0); } if (step >= timeUnitSize.day) { d.setHours(0); } if (step >= timeUnitSize.day * 4) { d.setDate(1); } if (step >= timeUnitSize.month * 2) { d.setMonth(floorInBase(d.getMonth(), 3)); } if (step >= timeUnitSize.quarter * 2) { d.setMonth(floorInBase(d.getMonth(), 6)); } if (step >= timeUnitSize.year) { d.setMonth(0); } var carry = 0; var v = Number.NaN; var prev; do { prev = v; v = d.getTime(); ticks.push(v); if (unit == "month" || unit == "quarter") { if (tickSize < 1) { // a bit complicated - we'll divide the // month/quarter up but we need to take // care of fractions so we don't end up in // the middle of a day d.setDate(1); var start = d.getTime(); d.setMonth(d.getMonth() + (unit == "quarter" ? 3 : 1)); var end = d.getTime(); d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); carry = d.getHours(); d.setHours(0); } else { d.setMonth(d.getMonth() + tickSize * (unit == "quarter" ? 3 : 1)); } } else if (unit == "year") { d.setFullYear(d.getFullYear() + tickSize); } else { d.setTime(v + step); } } while (v < axis.max && v != prev); return ticks; }; axis.tickFormatter = function (v, axis) { var d = dateGenerator(v, axis.options); // first check global format if (opts.timeformat != null) { return formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames); } // possibly use quarters if quarters are mentioned in // any of these places var useQuarters = (axis.options.tickSize && axis.options.tickSize[1] == "quarter") || (axis.options.minTickSize && axis.options.minTickSize[1] == "quarter"); var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; var span = axis.max - axis.min; var suffix = (opts.twelveHourClock) ? " %p" : ""; var hourCode = (opts.twelveHourClock) ? "%I" : "%H"; var fmt; if (t < timeUnitSize.minute) { fmt = hourCode + ":%M:%S" + suffix; } else if (t < timeUnitSize.day) { if (span < 2 * timeUnitSize.day) { fmt = hourCode + ":%M" + suffix; } else { fmt = "%b %d " + hourCode + ":%M" + suffix; } } else if (t < timeUnitSize.month) { fmt = "%b %d"; } else if ((useQuarters && t < timeUnitSize.quarter) || (!useQuarters && t < timeUnitSize.year)) { if (span < timeUnitSize.year) { fmt = "%b"; } else { fmt = "%b %Y"; } } else if (useQuarters && t < timeUnitSize.year) { if (span < timeUnitSize.year) { fmt = "Q%q"; } else { fmt = "Q%q %Y"; } } else { fmt = "%Y"; } var rt = formatDate(d, fmt, opts.monthNames, opts.dayNames); return rt; }; } }); }); } $.plot.plugins.push({ init: init, options: options, name: 'time', version: '1.0' }); // Time-axis support used to be in Flot core, which exposed the // formatDate function on the plot object. Various plugins depend // on the function, so we need to re-expose it here. $.plot.formatDate = formatDate; })(jQuery); assets/js/jquery-flot/jquery.flot.time.min.js000066600000011035152133032050015300 0ustar00!function(a){function b(a,b){return b*Math.floor(a/b)}function c(a,b,c,d){if("function"==typeof a.strftime)return a.strftime(b);var e=function(a,b){return a=""+a,b=""+(null==b?"0":b),1==a.length?b+a:a},f=[],g=!1,h=a.getHours(),i=h<12;null==c&&(c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==d&&(d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);var j;j=h>12?h-12:0==h?12:h;for(var k=0;k=g);++l);var m=i[l][0],n=i[l][1];if("year"==n){if(null!=f.minTickSize&&"year"==f.minTickSize[1])m=Math.floor(f.minTickSize[0]);else{var o=Math.pow(10,Math.floor(Math.log(a.delta/h.year)/Math.LN10)),p=a.delta/h.year/o;m=p<1.5?1:p<3?2:p<7.5?5:10,m*=o}m<1&&(m=1)}a.tickSize=f.tickSize||[m,n];var q=a.tickSize[0];n=a.tickSize[1];var r=q*h[n];"second"==n?d.setSeconds(b(d.getSeconds(),q)):"minute"==n?d.setMinutes(b(d.getMinutes(),q)):"hour"==n?d.setHours(b(d.getHours(),q)):"month"==n?d.setMonth(b(d.getMonth(),q)):"quarter"==n?d.setMonth(3*b(d.getMonth()/3,q)):"year"==n&&d.setFullYear(b(d.getFullYear(),q)),d.setMilliseconds(0),r>=h.minute&&d.setSeconds(0),r>=h.hour&&d.setMinutes(0),r>=h.day&&d.setHours(0),r>=4*h.day&&d.setDate(1),r>=2*h.month&&d.setMonth(b(d.getMonth(),3)),r>=2*h.quarter&&d.setMonth(b(d.getMonth(),6)),r>=h.year&&d.setMonth(0);var s,t=0,u=Number.NaN;do if(s=u,u=d.getTime(),c.push(u),"month"==n||"quarter"==n)if(q<1){d.setDate(1);var v=d.getTime();d.setMonth(d.getMonth()+("quarter"==n?3:1));var w=d.getTime();d.setTime(u+t*h.hour+(w-v)*q),t=d.getHours(),d.setHours(0)}else d.setMonth(d.getMonth()+q*("quarter"==n?3:1));else"year"==n?d.setFullYear(d.getFullYear()+q):d.setTime(u+r);while(u=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=QRCode.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,b)},setupPositionProbePattern:function(a,b){for(var c=-1;c<=7;c++)if(!(a+c<=-1||this.moduleCount<=a+c))for(var d=-1;d<=7;d++)b+d<=-1||this.moduleCount<=b+d||(0<=c&&c<=6&&(0==d||6==d)||0<=d&&d<=6&&(0==c||6==c)||2<=c&&c<=4&&2<=d&&d<=4?this.modules[a+c][b+d]=!0:this.modules[a+c][b+d]=!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;c<8;c++){this.makeImpl(!0,c);var d=QRUtil.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f>c&1);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;c<18;c++){var d=!a&&1==(b>>c&1);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=QRUtil.getBCHTypeInfo(c),e=0;e<15;e++){var f=!a&&1==(d>>e&1);e<6?this.modules[e][8]=f:e<8?this.modules[e+1][8]=f:this.modules[this.moduleCount-15+e][8]=f}for(var e=0;e<15;e++){var f=!a&&1==(d>>e&1);e<8?this.modules[8][this.moduleCount-e-1]=f:e<9?this.modules[8][15-e-1+1]=f:this.modules[8][15-e-1]=f}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,f=0,g=this.moduleCount-1;g>0;g-=2)for(6==g&&g--;;){for(var h=0;h<2;h++)if(null==this.modules[d][g-h]){var i=!1;f>>e&1));var j=QRUtil.getMask(b,d,g-h);j&&(i=!i),this.modules[d][g-h]=i,e--,e==-1&&(f++,e=7)}if(d+=c,d<0||this.moduleCount<=d){d-=c,c=-c;break}}}},QRCode.PAD0=236,QRCode.PAD1=17,QRCode.createData=function(a,b,c){for(var d=QRRSBlock.getRSBlocks(a,b),e=new QRBitBuffer,f=0;f8*h)throw new Error("code length overflow. ("+e.getLengthInBits()+">"+8*h+")");for(e.getLengthInBits()+4<=8*h&&e.put(0,4);e.getLengthInBits()%8!=0;)e.putBit(!1);for(;;){if(e.getLengthInBits()>=8*h)break;if(e.put(QRCode.PAD0,8),e.getLengthInBits()>=8*h)break;e.put(QRCode.PAD1,8)}return QRCode.createBytes(e,d)},QRCode.createBytes=function(a,b){for(var c=0,d=0,e=0,f=new Array(b.length),g=new Array(b.length),h=0;h=0?n.get(o):0}}for(var p=0,k=0;k=0;)b^=QRUtil.G15<=0;)b^=QRUtil.G18<>>=1;return b},getPatternPosition:function(a){return QRUtil.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case QRMaskPattern.PATTERN000:return(b+c)%2==0;case QRMaskPattern.PATTERN001:return b%2==0;case QRMaskPattern.PATTERN010:return c%3==0;case QRMaskPattern.PATTERN011:return(b+c)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(b/2)+Math.floor(c/3))%2==0;case QRMaskPattern.PATTERN101:return b*c%2+b*c%3==0;case QRMaskPattern.PATTERN110:return(b*c%2+b*c%3)%2==0;case QRMaskPattern.PATTERN111:return(b*c%3+(b+c)%2)%2==0;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new QRPolynomial([1],0),c=0;c5&&(c+=3+f-5)}for(var d=0;d=256;)a-=255;return QRMath.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},i=0;i<8;i++)QRMath.EXP_TABLE[i]=1<>>7-a%8&1)},put:function(a,b){for(var c=0;c>>b-c-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}},function(a){a.fn.qrcode=function(b){"string"==typeof b&&(b={text:b}),b=a.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:QRErrorCorrectLevel.H,background:"#ffffff",foreground:"#000000"},b);var c=function(){var a=new QRCode(b.typeNumber,b.correctLevel);a.addData(b.text),a.make();var c=document.createElement("canvas");c.width=b.width,c.height=b.height;for(var d=c.getContext("2d"),e=b.width/a.getModuleCount(),f=b.height/a.getModuleCount(),g=0;g").css("width",b.width+"px").css("height",b.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",b.background),e=b.width/c.getModuleCount(),f=b.height/c.getModuleCount(),g=0;g").css("height",f+"px").appendTo(d),i=0;i").css("width",e+"px").css("background-color",c.isDark(g,i)?b.foreground:b.background).appendTo(h);return d};return this.each(function(){var e="canvas"==b.render?c():d();a(e).appendTo(this)})}}(jQuery);assets/js/jquery-qrcode/jquery.qrcode.js000066600000072125152133032050014412 0ustar00//--------------------------------------------------------------------- // QRCode for JavaScript // // Copyright (c) 2009 Kazuhiko Arase // // URL: http://www.d-project.com/ // // Licensed under the MIT license: // http://www.opensource.org/licenses/mit-license.php // // The word "QR Code" is registered trademark of // DENSO WAVE INCORPORATED // http://www.denso-wave.com/qrcode/faqpatent-e.html // //--------------------------------------------------------------------- //--------------------------------------------------------------------- // QR8bitByte //--------------------------------------------------------------------- function QR8bitByte(data) { this.mode = QRMode.MODE_8BIT_BYTE; this.data = data; } QR8bitByte.prototype = { getLength : function(buffer) { return this.data.length; }, write : function(buffer) { for (var i = 0; i < this.data.length; i++) { // not JIS ... buffer.put(this.data.charCodeAt(i), 8); } } }; //--------------------------------------------------------------------- // QRCode //--------------------------------------------------------------------- function QRCode(typeNumber, errorCorrectLevel) { this.typeNumber = typeNumber; this.errorCorrectLevel = errorCorrectLevel; this.modules = null; this.moduleCount = 0; this.dataCache = null; this.dataList = new Array(); } QRCode.prototype = { addData : function(data) { var newData = new QR8bitByte(data); this.dataList.push(newData); this.dataCache = null; }, isDark : function(row, col) { if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) { throw new Error(row + "," + col); } return this.modules[row][col]; }, getModuleCount : function() { return this.moduleCount; }, make : function() { // Calculate automatically typeNumber if provided is < 1 if (this.typeNumber < 1 ){ var typeNumber = 1; for (typeNumber = 1; typeNumber < 40; typeNumber++) { var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel); var buffer = new QRBitBuffer(); var totalDataCount = 0; for (var i = 0; i < rsBlocks.length; i++) { totalDataCount += rsBlocks[i].dataCount; } for (var i = 0; i < this.dataList.length; i++) { var data = this.dataList[i]; buffer.put(data.mode, 4); buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) ); data.write(buffer); } if (buffer.getLengthInBits() <= totalDataCount * 8) break; } this.typeNumber = typeNumber; } this.makeImpl(false, this.getBestMaskPattern() ); }, makeImpl : function(test, maskPattern) { this.moduleCount = this.typeNumber * 4 + 17; this.modules = new Array(this.moduleCount); for (var row = 0; row < this.moduleCount; row++) { this.modules[row] = new Array(this.moduleCount); for (var col = 0; col < this.moduleCount; col++) { this.modules[row][col] = null;//(col + row) % 3; } } this.setupPositionProbePattern(0, 0); this.setupPositionProbePattern(this.moduleCount - 7, 0); this.setupPositionProbePattern(0, this.moduleCount - 7); this.setupPositionAdjustPattern(); this.setupTimingPattern(); this.setupTypeInfo(test, maskPattern); if (this.typeNumber >= 7) { this.setupTypeNumber(test); } if (this.dataCache == null) { this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList); } this.mapData(this.dataCache, maskPattern); }, setupPositionProbePattern : function(row, col) { for (var r = -1; r <= 7; r++) { if (row + r <= -1 || this.moduleCount <= row + r) continue; for (var c = -1; c <= 7; c++) { if (col + c <= -1 || this.moduleCount <= col + c) continue; if ( (0 <= r && r <= 6 && (c == 0 || c == 6) ) || (0 <= c && c <= 6 && (r == 0 || r == 6) ) || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) { this.modules[row + r][col + c] = true; } else { this.modules[row + r][col + c] = false; } } } }, getBestMaskPattern : function() { var minLostPoint = 0; var pattern = 0; for (var i = 0; i < 8; i++) { this.makeImpl(true, i); var lostPoint = QRUtil.getLostPoint(this); if (i == 0 || minLostPoint > lostPoint) { minLostPoint = lostPoint; pattern = i; } } return pattern; }, createMovieClip : function(target_mc, instance_name, depth) { var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth); var cs = 1; this.make(); for (var row = 0; row < this.modules.length; row++) { var y = row * cs; for (var col = 0; col < this.modules[row].length; col++) { var x = col * cs; var dark = this.modules[row][col]; if (dark) { qr_mc.beginFill(0, 100); qr_mc.moveTo(x, y); qr_mc.lineTo(x + cs, y); qr_mc.lineTo(x + cs, y + cs); qr_mc.lineTo(x, y + cs); qr_mc.endFill(); } } } return qr_mc; }, setupTimingPattern : function() { for (var r = 8; r < this.moduleCount - 8; r++) { if (this.modules[r][6] != null) { continue; } this.modules[r][6] = (r % 2 == 0); } for (var c = 8; c < this.moduleCount - 8; c++) { if (this.modules[6][c] != null) { continue; } this.modules[6][c] = (c % 2 == 0); } }, setupPositionAdjustPattern : function() { var pos = QRUtil.getPatternPosition(this.typeNumber); for (var i = 0; i < pos.length; i++) { for (var j = 0; j < pos.length; j++) { var row = pos[i]; var col = pos[j]; if (this.modules[row][col] != null) { continue; } for (var r = -2; r <= 2; r++) { for (var c = -2; c <= 2; c++) { if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0) ) { this.modules[row + r][col + c] = true; } else { this.modules[row + r][col + c] = false; } } } } } }, setupTypeNumber : function(test) { var bits = QRUtil.getBCHTypeNumber(this.typeNumber); for (var i = 0; i < 18; i++) { var mod = (!test && ( (bits >> i) & 1) == 1); this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; } for (var i = 0; i < 18; i++) { var mod = (!test && ( (bits >> i) & 1) == 1); this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; } }, setupTypeInfo : function(test, maskPattern) { var data = (this.errorCorrectLevel << 3) | maskPattern; var bits = QRUtil.getBCHTypeInfo(data); // vertical for (var i = 0; i < 15; i++) { var mod = (!test && ( (bits >> i) & 1) == 1); if (i < 6) { this.modules[i][8] = mod; } else if (i < 8) { this.modules[i + 1][8] = mod; } else { this.modules[this.moduleCount - 15 + i][8] = mod; } } // horizontal for (var i = 0; i < 15; i++) { var mod = (!test && ( (bits >> i) & 1) == 1); if (i < 8) { this.modules[8][this.moduleCount - i - 1] = mod; } else if (i < 9) { this.modules[8][15 - i - 1 + 1] = mod; } else { this.modules[8][15 - i - 1] = mod; } } // fixed module this.modules[this.moduleCount - 8][8] = (!test); }, mapData : function(data, maskPattern) { var inc = -1; var row = this.moduleCount - 1; var bitIndex = 7; var byteIndex = 0; for (var col = this.moduleCount - 1; col > 0; col -= 2) { if (col == 6) col--; while (true) { for (var c = 0; c < 2; c++) { if (this.modules[row][col - c] == null) { var dark = false; if (byteIndex < data.length) { dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1); } var mask = QRUtil.getMask(maskPattern, row, col - c); if (mask) { dark = !dark; } this.modules[row][col - c] = dark; bitIndex--; if (bitIndex == -1) { byteIndex++; bitIndex = 7; } } } row += inc; if (row < 0 || this.moduleCount <= row) { row -= inc; inc = -inc; break; } } } } }; QRCode.PAD0 = 0xEC; QRCode.PAD1 = 0x11; QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) { var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel); var buffer = new QRBitBuffer(); for (var i = 0; i < dataList.length; i++) { var data = dataList[i]; buffer.put(data.mode, 4); buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) ); data.write(buffer); } // calc num max data. var totalDataCount = 0; for (var i = 0; i < rsBlocks.length; i++) { totalDataCount += rsBlocks[i].dataCount; } if (buffer.getLengthInBits() > totalDataCount * 8) { throw new Error("code length overflow. (" + buffer.getLengthInBits() + ">" + totalDataCount * 8 + ")"); } // end code if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { buffer.put(0, 4); } // padding while (buffer.getLengthInBits() % 8 != 0) { buffer.putBit(false); } // padding while (true) { if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } buffer.put(QRCode.PAD0, 8); if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } buffer.put(QRCode.PAD1, 8); } return QRCode.createBytes(buffer, rsBlocks); } QRCode.createBytes = function(buffer, rsBlocks) { var offset = 0; var maxDcCount = 0; var maxEcCount = 0; var dcdata = new Array(rsBlocks.length); var ecdata = new Array(rsBlocks.length); for (var r = 0; r < rsBlocks.length; r++) { var dcCount = rsBlocks[r].dataCount; var ecCount = rsBlocks[r].totalCount - dcCount; maxDcCount = Math.max(maxDcCount, dcCount); maxEcCount = Math.max(maxEcCount, ecCount); dcdata[r] = new Array(dcCount); for (var i = 0; i < dcdata[r].length; i++) { dcdata[r][i] = 0xff & buffer.buffer[i + offset]; } offset += dcCount; var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); var modPoly = rawPoly.mod(rsPoly); ecdata[r] = new Array(rsPoly.getLength() - 1); for (var i = 0; i < ecdata[r].length; i++) { var modIndex = i + modPoly.getLength() - ecdata[r].length; ecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0; } } var totalCodeCount = 0; for (var i = 0; i < rsBlocks.length; i++) { totalCodeCount += rsBlocks[i].totalCount; } var data = new Array(totalCodeCount); var index = 0; for (var i = 0; i < maxDcCount; i++) { for (var r = 0; r < rsBlocks.length; r++) { if (i < dcdata[r].length) { data[index++] = dcdata[r][i]; } } } for (var i = 0; i < maxEcCount; i++) { for (var r = 0; r < rsBlocks.length; r++) { if (i < ecdata[r].length) { data[index++] = ecdata[r][i]; } } } return data; } //--------------------------------------------------------------------- // QRMode //--------------------------------------------------------------------- var QRMode = { MODE_NUMBER : 1 << 0, MODE_ALPHA_NUM : 1 << 1, MODE_8BIT_BYTE : 1 << 2, MODE_KANJI : 1 << 3 }; //--------------------------------------------------------------------- // QRErrorCorrectLevel //--------------------------------------------------------------------- var QRErrorCorrectLevel = { L : 1, M : 0, Q : 3, H : 2 }; //--------------------------------------------------------------------- // QRMaskPattern //--------------------------------------------------------------------- var QRMaskPattern = { PATTERN000 : 0, PATTERN001 : 1, PATTERN010 : 2, PATTERN011 : 3, PATTERN100 : 4, PATTERN101 : 5, PATTERN110 : 6, PATTERN111 : 7 }; //--------------------------------------------------------------------- // QRUtil //--------------------------------------------------------------------- var QRUtil = { PATTERN_POSITION_TABLE : [ [], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170] ], G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), G15_MASK : (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), getBCHTypeInfo : function(data) { var d = data << 10; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); } return ( (data << 10) | d) ^ QRUtil.G15_MASK; }, getBCHTypeNumber : function(data) { var d = data << 12; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); } return (data << 12) | d; }, getBCHDigit : function(data) { var digit = 0; while (data != 0) { digit++; data >>>= 1; } return digit; }, getPatternPosition : function(typeNumber) { return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; }, getMask : function(maskPattern, i, j) { switch (maskPattern) { case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0; case QRMaskPattern.PATTERN001 : return i % 2 == 0; case QRMaskPattern.PATTERN010 : return j % 3 == 0; case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0; case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0; case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; default : throw new Error("bad maskPattern:" + maskPattern); } }, getErrorCorrectPolynomial : function(errorCorrectLength) { var a = new QRPolynomial([1], 0); for (var i = 0; i < errorCorrectLength; i++) { a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) ); } return a; }, getLengthInBits : function(mode, type) { if (1 <= type && type < 10) { // 1 - 9 switch(mode) { case QRMode.MODE_NUMBER : return 10; case QRMode.MODE_ALPHA_NUM : return 9; case QRMode.MODE_8BIT_BYTE : return 8; case QRMode.MODE_KANJI : return 8; default : throw new Error("mode:" + mode); } } else if (type < 27) { // 10 - 26 switch(mode) { case QRMode.MODE_NUMBER : return 12; case QRMode.MODE_ALPHA_NUM : return 11; case QRMode.MODE_8BIT_BYTE : return 16; case QRMode.MODE_KANJI : return 10; default : throw new Error("mode:" + mode); } } else if (type < 41) { // 27 - 40 switch(mode) { case QRMode.MODE_NUMBER : return 14; case QRMode.MODE_ALPHA_NUM : return 13; case QRMode.MODE_8BIT_BYTE : return 16; case QRMode.MODE_KANJI : return 12; default : throw new Error("mode:" + mode); } } else { throw new Error("type:" + type); } }, getLostPoint : function(qrCode) { var moduleCount = qrCode.getModuleCount(); var lostPoint = 0; // LEVEL1 for (var row = 0; row < moduleCount; row++) { for (var col = 0; col < moduleCount; col++) { var sameCount = 0; var dark = qrCode.isDark(row, col); for (var r = -1; r <= 1; r++) { if (row + r < 0 || moduleCount <= row + r) { continue; } for (var c = -1; c <= 1; c++) { if (col + c < 0 || moduleCount <= col + c) { continue; } if (r == 0 && c == 0) { continue; } if (dark == qrCode.isDark(row + r, col + c) ) { sameCount++; } } } if (sameCount > 5) { lostPoint += (3 + sameCount - 5); } } } // LEVEL2 for (var row = 0; row < moduleCount - 1; row++) { for (var col = 0; col < moduleCount - 1; col++) { var count = 0; if (qrCode.isDark(row, col ) ) count++; if (qrCode.isDark(row + 1, col ) ) count++; if (qrCode.isDark(row, col + 1) ) count++; if (qrCode.isDark(row + 1, col + 1) ) count++; if (count == 0 || count == 4) { lostPoint += 3; } } } // LEVEL3 for (var row = 0; row < moduleCount; row++) { for (var col = 0; col < moduleCount - 6; col++) { if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6) ) { lostPoint += 40; } } } for (var col = 0; col < moduleCount; col++) { for (var row = 0; row < moduleCount - 6; row++) { if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col) ) { lostPoint += 40; } } } // LEVEL4 var darkCount = 0; for (var col = 0; col < moduleCount; col++) { for (var row = 0; row < moduleCount; row++) { if (qrCode.isDark(row, col) ) { darkCount++; } } } var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; lostPoint += ratio * 10; return lostPoint; } }; //--------------------------------------------------------------------- // QRMath //--------------------------------------------------------------------- var QRMath = { glog : function(n) { if (n < 1) { throw new Error("glog(" + n + ")"); } return QRMath.LOG_TABLE[n]; }, gexp : function(n) { while (n < 0) { n += 255; } while (n >= 256) { n -= 255; } return QRMath.EXP_TABLE[n]; }, EXP_TABLE : new Array(256), LOG_TABLE : new Array(256) }; for (var i = 0; i < 8; i++) { QRMath.EXP_TABLE[i] = 1 << i; } for (var i = 8; i < 256; i++) { QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; } for (var i = 0; i < 255; i++) { QRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i; } //--------------------------------------------------------------------- // QRPolynomial //--------------------------------------------------------------------- function QRPolynomial(num, shift) { if (num.length == undefined) { throw new Error(num.length + "/" + shift); } var offset = 0; while (offset < num.length && num[offset] == 0) { offset++; } this.num = new Array(num.length - offset + shift); for (var i = 0; i < num.length - offset; i++) { this.num[i] = num[i + offset]; } } QRPolynomial.prototype = { get : function(index) { return this.num[index]; }, getLength : function() { return this.num.length; }, multiply : function(e) { var num = new Array(this.getLength() + e.getLength() - 1); for (var i = 0; i < this.getLength(); i++) { for (var j = 0; j < e.getLength(); j++) { num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) ); } } return new QRPolynomial(num, 0); }, mod : function(e) { if (this.getLength() - e.getLength() < 0) { return this; } var ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) ); var num = new Array(this.getLength() ); for (var i = 0; i < this.getLength(); i++) { num[i] = this.get(i); } for (var i = 0; i < e.getLength(); i++) { num[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio); } // recursive call return new QRPolynomial(num, 0).mod(e); } }; //--------------------------------------------------------------------- // QRRSBlock //--------------------------------------------------------------------- function QRRSBlock(totalCount, dataCount) { this.totalCount = totalCount; this.dataCount = dataCount; } QRRSBlock.RS_BLOCK_TABLE = [ // L // M // Q // H // 1 [1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], // 2 [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], // 3 [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], // 4 [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], // 5 [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], // 6 [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], // 7 [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], // 8 [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], // 9 [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], // 10 [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], // 11 [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], // 12 [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], // 13 [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], // 14 [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], // 15 [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], // 16 [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], // 17 [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], // 18 [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], // 19 [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], // 20 [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], // 21 [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], // 22 [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], // 23 [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], // 24 [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], // 25 [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], // 26 [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], // 27 [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], // 28 [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], // 29 [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], // 30 [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], // 31 [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], // 32 [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], // 33 [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], // 34 [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], // 35 [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], // 36 [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], // 37 [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], // 38 [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], // 39 [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], // 40 [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16] ]; QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) { var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel); if (rsBlock == undefined) { throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel); } var length = rsBlock.length / 3; var list = new Array(); for (var i = 0; i < length; i++) { var count = rsBlock[i * 3 + 0]; var totalCount = rsBlock[i * 3 + 1]; var dataCount = rsBlock[i * 3 + 2]; for (var j = 0; j < count; j++) { list.push(new QRRSBlock(totalCount, dataCount) ); } } return list; } QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) { switch(errorCorrectLevel) { case QRErrorCorrectLevel.L : return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; case QRErrorCorrectLevel.M : return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; case QRErrorCorrectLevel.Q : return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; case QRErrorCorrectLevel.H : return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; default : return undefined; } } //--------------------------------------------------------------------- // QRBitBuffer //--------------------------------------------------------------------- function QRBitBuffer() { this.buffer = new Array(); this.length = 0; } QRBitBuffer.prototype = { get : function(index) { var bufIndex = Math.floor(index / 8); return ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1; }, put : function(num, length) { for (var i = 0; i < length; i++) { this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1); } }, getLengthInBits : function() { return this.length; }, putBit : function(bit) { var bufIndex = Math.floor(this.length / 8); if (this.buffer.length <= bufIndex) { this.buffer.push(0); } if (bit) { this.buffer[bufIndex] |= (0x80 >>> (this.length % 8) ); } this.length++; } }; (function( $ ){ $.fn.qrcode = function(options) { // if options is string, if( typeof options === 'string' ){ options = { text: options }; } // set default values // typeNumber < 1 for automatic calculation options = $.extend( {}, { render : "canvas", width : 256, height : 256, typeNumber : -1, correctLevel : QRErrorCorrectLevel.H, background : "#ffffff", foreground : "#000000" }, options); var createCanvas = function(){ // create the qrcode itself var qrcode = new QRCode(options.typeNumber, options.correctLevel); qrcode.addData(options.text); qrcode.make(); // create canvas element var canvas = document.createElement('canvas'); canvas.width = options.width; canvas.height = options.height; var ctx = canvas.getContext('2d'); // compute tileW/tileH based on options.width/options.height var tileW = options.width / qrcode.getModuleCount(); var tileH = options.height / qrcode.getModuleCount(); // draw in the canvas for( var row = 0; row < qrcode.getModuleCount(); row++ ){ for( var col = 0; col < qrcode.getModuleCount(); col++ ){ ctx.fillStyle = qrcode.isDark(row, col) ? options.foreground : options.background; var w = (Math.ceil((col+1)*tileW) - Math.floor(col*tileW)); var h = (Math.ceil((row+1)*tileW) - Math.floor(row*tileW)); ctx.fillRect(Math.round(col*tileW),Math.round(row*tileH), w, h); } } // return just built canvas return canvas; } // from Jon-Carlos Rivera (https://github.com/imbcmdth) var createTable = function(){ // create the qrcode itself var qrcode = new QRCode(options.typeNumber, options.correctLevel); qrcode.addData(options.text); qrcode.make(); // create table element var $table = $('
    ') .css("width", options.width+"px") .css("height", options.height+"px") .css("border", "0px") .css("border-collapse", "collapse") .css('background-color', options.background); // compute tileS percentage var tileW = options.width / qrcode.getModuleCount(); var tileH = options.height / qrcode.getModuleCount(); // draw in the table for(var row = 0; row < qrcode.getModuleCount(); row++ ){ var $row = $('').css('height', tileH+"px").appendTo($table); for(var col = 0; col < qrcode.getModuleCount(); col++ ){ $('') .css('width', tileW+"px") .css('background-color', qrcode.isDark(row, col) ? options.foreground : options.background) .appendTo($row); } } // return just built canvas return $table; } return this.each(function(){ var element = options.render == "canvas" ? createCanvas() : createTable(); $(element).appendTo(this); }); }; })( jQuery ); assets/images/woocommerce_logo.png000066600000013525152133032050013364 0ustar00PNG  IHDRWextEXtSoftwareAdobe ImageReadyqe<IDATx]]Ǖ.MDߵ,N%aw2W΋C6vAZ|gykX >-+jBguXD56Y,Zkk 7mwΩ:U{|ОoWչ]端ԩ#Ƃ{ُz:3Âivs76jB&Vvm9mfD6VS(XF^P\Tm)*] U0'/IQS(!0%/B J5PR0ϮjBpSR8`vBX eNCm5BXa ?f;W_~[w *qfP(QXF^B^_W'>pc5O=m~ "6,xbĞj)_kWa^'9׎67&V&P( &ō՟U[?#x>SpŪY: EL 6 r߻0 BhUb~ڰ=u/BP,2XV|I^o20E ;;ѽ߼kܻov￳ێ:WxP(n3>)1/ )W߿4)VyRXk??n[5If?4VL}$أ WSC{;=J9okCԽ`h38>zwʒT?7t)&N 40i]0Q854Ssy%FuS=7 ꋌagcܱx6I}ZA=1VNbgbص8S^pm8sRaG+27?y ~,s[9]tlX[ulG`ߋ ?;;I~[jZeLsI1 v:ϘQ{?1a%'.(2m/4zI c"!q"\l^gO3FEz~7 |`\Ow-aIB='*2<89ϡNm,I^e65mnl$I^e[s:[ x6/{b{EtO"sQ ^wNȫ8$GeQ ZC⣭_xOBj*+._^`i E*('a9]>hHhGM`"D&*p}'E!#)H/&L,sH6.ίy&YA Pц1,]WՀ ,d&V]̡\[NL^$D8iiک6FG9s{8}+FURzذǮ'u"W.w$;ߺPˌ`ֿwNy+L| N?9ͶALqov$ZaI%0;g 9d99x^ԃ6]ery8g]6UGnw;!>hA/4qYL |)D]'U_ujS'#G@zhDpYEQTkz#s0^HzօS78!DB2T156S}&1r@1=H4 ~ˡq#f/HUJ"0iUVKe!,#ϧSZB~5ٽZ!zrw PσâpLR lbk؞;3EƚL$C`evNn$`X]I'>ov%Be/ A+EBoA( &B;m~2<T=5!*1{X5݁DM>0킁(7=`drXU&-VbueuH%UӁ]BQUӜS(!TFU?R6P SBK=jօҤ$֕GuPOU ]O2QW(u:簥D]]HV~Hs͇%ȸ,QoF#6H9Q5=uZc4!5-J-7>.Qm"E]lp0(/#@y~):bUTqZuYf@Q RHhS&єՆ!ϯAM=ۚH٢0r_S{G ":Jq9! WS#wX#OEdyK^w,_$5N{&pVj2≰2;B`יjJ-{xL&{' 3\uG#ls9X9Cc R+ F8rGR's88zq'Sa0$stpwqC֋n&0:( pSL73;'xŵn3"UO{y :Pܷ 5R؜c:=,$ⱇ (έ]w}.Դez"0j޼b U}`|"8e(8_dAUdsb((9OFUg'w`s6Iw)!'+HsWW8w769cj8kG6ͤAMs͸w.u um%5Po] Pa.[քf@A`s <A%KI!*Q?{sL#$tó#q;/ؗ!ΫRwݩA`D;pQaUCmU0=i_~hp6ڦr8v<Ȋz* vu|ݡڜKVp)麉w\CT@MJEUhDL}pHw|ƱIMp@uJ~ ςrH uYk^7a:AR4?pK-21aک y|CŦ~}oUܳ9ɉl{n7^Al #qW8wLI$57N$ȁQ_0ʩō^<rc9tɁ4N+:9 )$u؆rPO)DD K ixws$6 g]zF^Ų)D(eᵰ& J,iT n0 ]Dj?(f1yQ掣Y6eCmɩTMp߫iwR!)g* WK1O6Eʲ"-#gjs)a".RC_"XjkaUm6{PQ 8e?WGĔ^ }cB& }Q۔06Lʝ*i%T9~N_$aC P{Svtva076 }BPa8T'aPbųwG&s^r$ 0W LTTE`.Sbp%T"HQ.Q oK%uugL6X)sMQlD%S2Q8%ԓ3=skFXrtOe7&1UIn/f A^8‰ʧHbtQ^T)aTq3$H{֗($IL哙dž7WS]Sc|&V[A7i@`bv̉,"wݳ4Ic1g}M?>mN.VL!8 ۷CM^TS( +%}Lw#|0V(g$G X{l$58   El|_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;assets/images/stripe.png000066600000011022152133032050011321 0ustar00PNG  IHDR"uݜtEXtSoftwareAdobe ImageReadyqe<#iTXtXML:com.adobe.xmp cSPLTE2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?2;?!tRNS  !"#$&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\^`abcdefghijklmnopqrstuvxyz|}~0sE IDATx{@UgAQIbF ^EAaa˪k!B|eY>M|*H3MeDU "*"$?;{<3s2;}y9w@]EBё!KZ6PAt쐶Lo sIT+8&ɐ "hD qE刂! H(R JWѤ@T!rmo 듃WD¦3$? D}%E|l;.(")[G\Dmq.!"mG(% \By(Dz2^g)THW`L*Ec4˴RO.5pBW j=Ɣ驈θ Ysꎱq{O/}Y'~zq?8Zv;>ʐ{&5>I^LD+33[Rac$@lj!0DkYf]?&/DžJ!:8D \eo -j8/ ۄ u]b -%#9Dz2D#bYxTQ|W(qMɀW&$dx#_tC/" |XcK#FΒ`H rB1;zo#m\Bʷ}.Ќ)"VdN_'$[7")"5d25\%γ)y %!>TkL,)@DB o-DnKZC*i[B4xW;Czu4k@ἈJH#dWyA"?$d^UA]KQǧ=!b4;'"]*H({!IPYVA wSWM4HbӁ9C n? `@?.C6%ςǁ--3,>1x~K|q ?:q}!hYDC @/Pڏ=c^|T-~q fP!ke"j̘>ؙp OC,*M"dz<)ԧ;A{=8)-(Cl@7}j]DB'Sًy>TyQ}]8__qVY# w< QqΠLb.8 D9/b!*ET}Dts-]Y{dH;]1,DUHTP\r&QO/ {LN0Q D 9˸dxbtDq݋[mh Cvpc>BNiqiPn%zVU3QGmjL@Ԫ.a|a2%TAY <^S(]5SsI=ؤkG͆{ϻ!ˆnsn/ CI؇]Y{b݅.dFECE#1j}~nF)[aQRU lkS}Om}+_׌T&#5#zR O(fVkB{ڛ$l{\D "HA R)D "HA R)D " Q]%D0Su?ADwswt&-D#sC9HL3A5IENDB`assets/images/placeholder.png000066600000005400152133032050012300 0ustar00PNG  IHDRK9wPLTE2 IDATx1N0P*7Fh^<]#l_}F"l"Wv~$|dxw < <fx0[^"x&3a 3DL%g 3.8f\p&pLr03ag ΄. 3\.8f\p&pLr03ag ΄. 3\.8f\p&pLr03ag ΄. 3\.8f\p&p p !p "p #ꂔ0C[f( r eAN, 39a 'Pʂ0CYf( r eAN, 39a 'Pʂ0CYf( r eAN, 39a 'Pʂ0CYf( r eAN, 39a 'Pʂ0CYf( r eAN, 39a 'Pʂ0CYf('P0Cf(s nN\ 39ar1'Pʵ0Cf(r NN\ 39ar!'Pu0Cf(q yL! 3M:a'0CfK| aO! 3 >a'o<=f#<''f#:(fۛ?;e7aZ˙$ lqir%Ⱟ(|0[Sȝh' # (4{+55 Grچ rڅV GrmBa~ܱJ{P W!k-(<O2k XB (|Ve+dt} ;Z2ó}mW2Wu]'(d(<N+dPx6<]SJk6})Z^7)dwkX!(4P!B@! B@! -$YBĤIN7S C~ t2  'WΚA9(( Aˏ=st1fPP8U ]>p./? g=yk( [ZҲ24eApV2Y5mt 0-p \屫=J^Da>2=:agQPx i_GPx axy_! / W3h:GKຮ(yϡ9."b,h"'^I]FPDTPUc gRωAȓb/< V4B?kIk2PTaX/e`Qs>ԇ+}[^kJzQ«0>Tl1-(O_sns+-zB}<vuj±uEtu( Y-yP.u͚yEẉ( jg> Me6 ޗ-&y-Ϯ{dyߵe4xf([Wx z r" Ӯ/ƶaX=E(TWt5Ey#4yC~REttyO **4$\ /B…j*2$< z +~{y5BG sXޏ<u _:Մ!ӑq׍΄GEÈ5υGDÐφ_GCØCC?#0WBQpk/j܆Pո +M\[O] T0>!EoruB(|eBzDT "!DPzTsEPzdTFPOpl'Tp:v*8  ^[ "v*xIl$TG`0'Tl*X6 , sBˆ9eÜPaN`0'Tl*X6 , sBˆ9eÜPaN`0'Tl*X6 , sBˆ9eÜP1O'TpwL*=  bPFL*XAB;1G`)l"T3 cPfL*XB*XPv #$T7P;DB-" TNMbP*EBk ~G0/s,д0"|*lЄ/ A ṰA^ ᱰA ⩰A#^ T⡰A' J.lЊmaZ, bWؠ6ƢA7 q-lЎ[az\ \caN \868a.lp`X@Ca!~680ajV Sa*0Tu69(IENDB`assets/images/help.png000066600000000466152133032050010755 0ustar00PNG  IHDR DPLTE-tRNSڅf-rֈIDATxڽ 1Dq6uhD.-p[0ߏN` xT eOG^"NX_HU؄=WB(} h呭j(ؒ"py1LDd8y[)lbD<`)woE906*Hf9aU.'/}k1$:]h'8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$Y P 87 s87 s4ήtvdyp-A,ca07W@Yw32ٮEGWuqm`q~>. -E #ֻZԙR-nx1L Pg sQ|g2]LhaszWhg8@p>/yF40hAŋ u-ͱgs˖Duͳq88(\(ln}2ҷ] gq~>LV|~C.ľoKX+hOw:~?7.+&nmF8@Ynw/~z }{nߍoQ]8]7'd8@ Y-V\;?$CboŇw s0[L\+Ih!.7@W͏ 6Aڋ-dq|oo~p߈8݈wj\;h]"6 g>q@h=8@Xķ?Zc2*=e6ҜUO>oW+sUG}qHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHhL3^]ʬ(6)e^c1Y-"͖}ͩ >]WڬB(s(e^̱V0GhlgǏy{nqmVۣ%'ۣz]{2Zc2*AEd:>~s>5*(sɛ=ʬgW+s=&1 @ZDGEg}Oո6pstJei0/[fZc1aZ "2ld:=:w!&/Et40ع bRrGo+]yoTfRGgXb:w0G-$Y>\1y탽qmV"fj_Tz;kxݲ>2Xc1*&Att>ɷ}_ڬʼnoڗͿW*MyߔʪvKceŨ|КqQa#?,3TwW;k\Ux_D˵\*QLDᇵ~ᇥ2E}ލw= @kZH&Yv qID&f+tofETvOE\*C&.mѴdJU¥k_emFh1]凸~h{+owk\UX(F}K\(^"K).͔+ѯT|]tl]1YZ b:֕}{gމ玾~w?'k\UX(F|W#p*mژ!|\!+Gcm -+^?,SWy3}Kc֕$0[klƭ7\1}̗]|,'kgPEOU^z{UMNX,ݲȯU^M3<ƹ /qqv:rѕMQ; Ђf1[(ߛ'~'ο҅|}_zvnm5⦻#wDtm,=7{>Z/悟 _Mմr׽/bq/F FdǏbňoxf4׷TnWo}[Wt6$X(ٽwߺoOP2Qr[wsղurգ7#Т:#SaE9j|d7~;6g2m -Un+>5Y1g2\=-lL](?4wۦ/}(n.8s!հ-ʬ&\Z?,c[qeܐ#wbx#JaOOo﫼c+S/G,̭ΈF|#zwUnSOU ܺٴh)8@[\;P%DF#/ŏoAȮ-bG#nTU#(WRrs#"2W4 A ,coY MoDDĦCmr8w!?^їtm썎N?w%LG62L,V|ͩsu+9OqfMsDž7:m\Unӕ÷UZgwOdskZq62BL_uߺ)>g0U-˿=wmƆm*}oWy纯4Mh|8@Y+e/y_~]K{o[o.\KoKI\1?=e{bź~.2ܺ;yoL 'ߎ#?QP~+e::g ЎcW2+?\.g 17=(y$o~=΍U"wG"w3{{dUnʽW߻?/.\F<]Xuѹa /t,.`aS*[Шy3VL& zWɮ뎮[#a]qjoC.r{)\6o޼trѵq:]+FWOo,1i&f˾7bV^Ftd"jA(\,caR_X񵽽155U0Dn ňŘ:r_ךEt2mr_8qmi|ӦMLGǻ:Ux@\rq7TLO_vhlZu?^jC4yn>\Dq.{R;2^\gĺΈWn딻q}D3SV;;;c+ m(n_nXooortvBҺθb)e}}WrBv:#nBvs1_&g3}2ۻp¯k3R4\g'F,Ґt)v~MoEh8U{7p4jٴ~/qHHqHHqHHqHHqHHqHڲ'#6 DD7qa<G|E=ZZ#@DO׈a[x{w{Z{`%q]DmW~nS/XAƴeOĞ_rRY VL1}#0̻e&/X1Aƴ[VhLZVhP)WǶ`qHHqHHqHHqHHqHHqHHqHHA-hY+%И.7wY6喿Zm6 4e}rDGWZ]j$$И"w˪">z oqﻧ6,}wWmi wG#ӈ=jiKL*g<ꖵa[֏Fm?ѳۯ/1A?*{ߏL7X uKeҳ=b篕x[|/q񭈋'+7igĦGJ}@ 4ň8#> q!o?. on̋|W;V[|_P8шckQG,bm   سmses ߲%nYW=})F<G<GOW>\k'@Bߙy'x͛bG_Olvǖ\l̾cfv>&/ٙb95.ĉ[ď .6dS]PG?*\ފ?x̏j[Ų/  lq7/Z !A !stv|,.,D,.XjuL&D#"tdcnfN5VKбn}d27>PMah:$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$@B8$$PVOoX֦$"[K~~;:ylq1g˿#k*Tw+땎 X)$v}ؙwʿᦟamLOGD暇y6}yZu~ze n}VJaco֦eseT!W oTPǶTa߭W:6`qt>~a2u}5QD.WsU*Cwwn]_i-Ҿ^(R8Bk&l'/'+b˟x3^坋1p@{\XX.qǧj[Fس=>]7<[ږT ʎ:gR~ӹS}?A*]>o;?wjT/Lj?[u>v|sUFG׺D|Ңm[TvSW+Wc>?TU~.˧X7">Lȿذk/*+edUa*;<}:DDE{߰o~ҾZX\aaJFO~ֻ4LG6bqa}l|h{_ l0oO?s[|T܅8DdćY_m/~I2Xv|sMߛqߌ":7DdGNTn}{{鍳+\GW.:oU-h#[ef@@BRN_7kMijX2ѵqKd:;8mqa!fϟŅ_ V2[b<{G⇓e`5 M`Yu]W~'ܵ=nٝz(kW_?;ώ^rŹ?!Չ{ ۍ( Gx#[!Ιlgb,ϕ}'~06__;~;um2ѕ- *04Y+e_ky(%Q[J| }EDttvF-I3{l,̕?u;~Iӈ7_UZx]]{"mT _\w߿-6o[=}z|}]WrK>rmC8^y3K:7Dv}O.qVe0 뾮#-1|k_ں)z[$}l2N}ly.\:/Yiܝ[6Ǟ[M4=6uq6y'Fߘoo\ttJCqVm%=XGggt&Kbnzja꼗pjdD+.bqފɮ W1Oa7~B!/Ե..F熼9Ԕ  EnS_]8.ֻ: g6bt˫R승Šѹ} A5ܰ1:oul6뺣k]݆/#.:baR_1!JsKߙ^pX\ttban6f87 sV2l6::k]SLGG^ca banByGgWd:Jngk,"@ήX+\,ϵpήd;+d{Q""bqnԘ2?2)Nήήֻ"H&+9PۄMHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHH_g IDATqHHqHHqHHqHHqHHqHH:]} #ξ 1;(1^("Ԝ ξC[cg_wnlCs/WP'8ܠ_;:QaM`o|dps=]tFO.ΧA*pyξ5]XNə(cLcgg Z>vov\}6 A5/ n5^I|4^щB>yN0R̞zW N[12C[VR=F{o3qplR(`o<>=Ъq@>V92;x[dۆc !#wo}C} 4-Aemq]7ɩ‹ue}wuA(x=]mFw GO{Gӆ+}f@|]1%Җ.i(J m/޷+v(jmB8T NZ K k5=]'4ܟoL7A-߃#ȎzWZhIozW#lg =bh:-ỷ׻ u12[#U?eCx=46W z`wֆkԃFG.S{px[]W|@>u1ܟ0JF{#ZXZqL9;Q:տQʁq!eZ +,OP²IFszW NKQZɶ#"uDkf$CVw8z%bM^81vv&0ʯ; mC2JZ^!@cġ C2^?L:]fechKwp^˷Û(c|K1^(j@>ٷ!t@>=E|(@>uWj{^O^bMoH:+w}80fA%;'s=]mcmi_~i|LLݞ ߋsΣ(cL4~oAƕi=սG@OnM+8bdp\L߈?{Ϗщ勰zLY=ۢ?Wάz|.#+jng^8uC\N>W7\rD!F' q乺Zmay# zn8Ͼrf瘁|.ؽ5F{Wtg DD4 ]chKwվ+m.}xi~|n?t Pg^<1<ߋ`Sqp,5P4ǿzWmC&o~zߝU^g}O}ޛF3vv&=jM~W{A]ka).@l|wl9+=7bzv>~{?#o>ղ+gӘecd7.o'X6 svUeկp>vщB~a*^%80z:VVK ;t_nj[>uDCw llaa_oWzRܽ=8kC[i#;6dhK1N{WV,Mjڇ e+Djz Ufhap5 mq`t<}L*;{haR0hF%9ӮZ Xi?cw4Lw QK|MԑM[#/zo (0ePVOW!Y$щB|kUFig_w|]M—teo'=tC};mWC}.W+O{G<8Uiok!ܳ=wgCK7j?_oWCedi6]7;@#|f@.%T(_^֫ x|dG\P`o<Κ-^W߻jyתG^3{b'Wյ(G|u5u|.{f@tUuzqZBBc{wD>י|O72O{GQuKs1G4V#o/^8ߐ!"+F}zߝMG%K c7˨Gvħ{! M%Pm?|UiG0hԟwgÄ|.PË4WY59;Z2/)osE*-"4A0v(]Z04ᜭ6 6Ri}7F ߽cB{~[oо> rЄqZB8_0Q={`|] {={kC]Tnn( =stMlQ\S,gi5pn.0 NH=lhKw<|x;bPP`򥆓vh⍠&#wooّ 5&ޠ}Aⴌco׭xl[hUf '.dkg_w[={rm9[k sm1$jnkh.8-PCu^u+{+{{UG#Egtqݔ& mY[S nNT2ܟyX*}- Ӄӕw9&+ob|pHsM=d{%wM:sbwrd7l[zSRjC4=;_&x~Y j:_}x`}lLX$J=w t )OJV^9 [򻬦6`A3i)b|xÅ\<|ݷٙx3qT݂ə8460Ը7ib&+{>||dpsVۆ|>9U銯5+NbtϾr&l<{kSKt^90z:Mx|9OK\DēGNij\nj`?46xW>TxS7r wȿX c쾹&D;6D(ٙ(zjq;;kkR(ǁq乪|hKwņBq>z؊CZ3/XJҹjLq|BDw]rhl2y 5㓥|<8&Qgmp9⮁5>׽S^nvmᄉjZ9`0ʋ"Ӓ:r02#=S璆ڻ;l|z!RWr1P0Ѽ=JcggdN_jK=՚^r|r&~?VouzBq)jNɩ;6TVԑUk(ģ^|S3&W=:Q<25ߒzpiI'g'{wUVdi}C}11]'Bݠ|/n&U WEk6B%ϾVՏщBU}QZK Gޮa /QWO9Zij̳}t=,|AuTM[cP_t5^`o 6|whdKCaaG^*#7hi|.nj{rmwA5*//?8 *:>9O9qyC7e| s1^(&/X 5ponC}Ic`x:4Cӡ 80z:>ԑ11IVGMƧ{95G>׸<v&C<ʙxc1vvfe m#N7(Z888vV;/{wľd%l|FOWvM썑xЫU=yD u6ah:MmMkKN?R.Z ]`qZ>WZ~ 84Vc{[qy ~РF' u&= R_/A h8$$@B8$dthk`s|BYpjߗYk =SGN84 C ;6ԭ-u+l[SxIp5^|kx mte5 I#!\K+TbFտyʏ1\kL#!\K+b?}1r[orad=>'c;q Wy|px[tGOq;"CMڍ#48o3{U}qxRշ9;߻ۭdP_ܿowLշY-h!=]ٚ_d~5~;{r5gQkIZ' 12]hV8MVasP_0/Q9պpXVҭj@&?kג?UdtP5* 3#axj6"Ezkkq~|i|շI=wG<{k Aբvɾ}jr2QQF mk;ȫq|Mgl9ؗ`h窲Z_}C}1=;'g..U 3U_uP_OU%5Y1[x{rUc{wTSОl9SW(Dxhh8Ms5vٙbl0ٷ!ҝttj?V~aܱNU|~lA<Ԙ22&'Sz>}wM5'j5bʾ#'4*h# c{wăWފ'ϭz?nC}5c_n cgkį4ܟfuzЫ56 4'bzv>ޡ- ?Ն(4B<9]ॉ5yԓqmk~9I) Ū8}cF' +(ȗ02&czZF%=x[oAԑmqhl0&O>Q͞ث5뾻R9mb|x̓۫q`}AHI,֢݌ɐ5cL8wӳ񹯽Vj4fwWbzve?%2KG5(5g_9 &rOδUx{j/F˩'Z:Lλu,Z3/4GAd[L!ifkms]ⴤcW[GɩW4c-ĖBr΢dSz: Po0~hl=xU N:>9=e}x|kե#'rbJͺ^Mxi?Ɵ;,Mơ:qZR ^|e~8gX݇=zn upl2>ǚbɩxcB 80zY>uҦ xcMߘ3/~mL|ɩzW N[x3ǚzXt1:rDEa3Vk4DXjhɥF8kя{u Wj1ؚP+En_-Rkqp]_wY$.rW"ڝr߅/ZpʛOQ^Q(& eȒ5tfl>m:vTjqsہLݜ.oSjN|篞ܹxc6&Y z[|n$޽x0< <75W_?:%|g[wzmlW*̗ qeŞݕJ->j?ⱖ^:-TɳDNcBfxAp'TVqY=ʛCt0])W^GVz\6ʛC?ytqwzTUpd1*R. ]h4gW' FG 矧]'J: Gl_             ? OcNܩnw}ܕJcEDDez1]ё_1};c'ɞv;x|n$&bBN5RǝX^&9Le=GbXLsͿ_NX^{pǟ:c=H8V7ޗ{n}]n[t{ڕύd> /~ߣ|nlW ߵ~Wgtc>u ӿcЅ~+ZEώyekňz\[{|t镮b[sS/Gz]slПFk?Pk/ƥRП]ʽ#kSY""K2⡍뭇;u߯Nї1;.w,}g˯ro=wlMn֧zոra{Ͽ~k[tZ~|}_щn 0LMˎJtсxT=5rK^ݷQR|ų]i(K1\{c!xN7[?ёkOE1X>7r+[˯u uɎ_375ї̷F ςё|T_ޣ}_\,̜I 0LMٷJ'_"Kj|ߟ@z}ŝwm|e+4175 ot|XWֻ; P٪ǵ{X9T*D0,}їѶa*ta,>Jår5cS c1_:BNO/icF1X9#1>:ɹݸ^vu\*Ͽ3"kr<sSM?򤮛Ts#4>:]z%~_{?GW~l z㱒=E1UǏxw~vXqs=;b%u\'0y˛፻vܩnǝWrN>#/w1ύĻ϶}nF{lڸ(on4[b?󥓇^ |YVHFK';jt/̜:򤮛<>: 3z3mߣj,̜/("".;wA4z|wE3y` r&XvqH6dg2.nf:7@_^{,}ќaqTj:0%"7_n ,}V]㝥/ f3-DǯwW[,}rR5Gkvd#/~ݗ44~ϹNwyѝjd'.knj".{NՍαOo< 0<q` k)fO Нm0?5{W&}Lt:rH%"ZBk#ڽsFծ;-h6RY|D=Qv~쵶T>W0{u:vTh۩``xdyK~^O= KjOf}2]k #{n~j˨x?V^՛?JCg4FtTM'"\Y*{]:  L6xNZ c?}\uؾkݶ,ov䳲g7UL/?Ǻ)cb?Q'mGU?Kx4BVyܫ5%ݣ]. `8X5B}^%yBG?_tm f_m NcV=5]n[uZ}'4d1(@SYFlzDeޯpyAseRi-Z}'ոT*dsbAa !v:3!iBΡ~{y Xq8*HGezӗzOA>:(mpke1{ccƿe~VvNcM6lݶ,;:֏ϝv\㝅a*K6?iRC88dS^/^+>qEڎv??7[9)di0o_8Rgt~@?QIץ=ABXGjRx`q`׾i~h4~TjQ:1dfW7#bzzV*f|XY]idsh]uυNa"Cu[Vd_{?:#jlc69fv\]\6.;#1]k(N曍n-+FȰy>d~6:BLT 2a*[`>,dFMeKjWz?g7>Hcǐ~y&8Y7 cPT{Fus"ߢ\2;yije/gRkNyfG:mH kY /$ 7׿m4gw+{9_:|V<"m{-=h0_:ѝfAu~uGv$|yA|z^Od~\4>;-X'0j:0pg+W7Z;;r l[P4;]Lfbkzkʲ^{Qe+YzZkTכjj XiP-][Yo{1r A:  \vT|w1k\kͮ@e m{|l ۹*T+r72DDt[C>7r _oE+O&7:R,4LW7tb,̾{f亮2' ;u  Fn<:}Јxv$}5]n[-Oy҉GX9s7 SYk{Tva{>b۩l#vt2"m{ݩn7ϗ L|܅S=w(eK4P'Phi=}Ҟẁzxyn-kwZ]}LW 1]p%u3:Le}uՍyw5K`0)q^߽j,Y8HH^ёx͗ 2 ;ё}Ļ~~u tC!C!*Dsaa|c#}fќ]:1W/ 3[Vώ=eYۏ:ޛ;(ta,9~W.Ptx1k{bAlqwE/4kSfWDn}\߻x.w/]~s$Nā}7Yv!4Ly-wW[rTܡ#BcFz/SY"">W#ѥW싇ѥWۿS͑ёOε&7?=׼Vʛ፻=0ER.ҶWvuA+Ş-wT.rh.sѥWeH߷'Q'`ؾ AoNv%o;Yʵ߿svE3WG:t -Af Qn X=>W#{l8sS>p'>X{$PZ}74\}1fvH\>w<[}iP~pno՛{O:~#0~|H^J'ƒ.4uӵ{ES{9G(on4;f'󇎌7fgq?L:>WG  !/ەJ并hPީn/;K/|bUկz4f, 0seٽNv^_QUT7ͽ4ѷ Z\݈w/4aPvR52[|lIfBMbGYys;W7N~OAiN;-sQ0jS:DN5ضgGi0#ߩ~9QjP0"vGu0x8$dtHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHHqHH?ʻIENDB`assets/images/woocommerce_logo.svg000066600000010602152133032050013370 0ustar00 assets/images/paypal-braintree.png000066600000010501152133032050013253 0ustar00PNG  IHDR;O tEXtSoftwareAdobe ImageReadyqe<iTXtXML:com.adobe.xmp Print E IDATx[4;HIH w4I?H;ryۏ~lϿzlI΃ر>^dycMK'Q9~|I&19( n{A ac0Kr$ c;H|gbG bGy՟8]UyD';;JS`b Ab}&*v J 'n;XyD; y0Q}^z,v[K^tZ\y.V+Oۉ{v@& P$)=a̐7~& T+vvL`b;bv*?(b`-d(QԂcĸ"bXxxce,VZ}>8C.UE#ƛv)v$s}m[ƮNC?;&_;AϞ΀Ru{OBzE9O,ٵ@Nrޑ|Fywgv[z~[ַ!c7|W>WjKY' (IhKG`-}pe01H#5]'s̸8F; M#*&r;F5]*tf? -VPџ:Fv|dhg ؓW!_%곏z goq|-wT,ʊ5ý XƾlQtv3Q)s=s|w癬:.y8vv=J3n5Qِ4>/jjy.4>eu!,<=mxY{C e;~ [8ןWwm3x/wa)vZ}gΕцoͭ2Fj?z*#pkW}ypЯJMѓӫ1*`f<ٴW>oW_ٻZlyh VGGyT|Q֗ՊMc3vV ?J2GAQGb8j\&W7pt4 tH>G[~G%˳߽z= =Dc9<)vZܙ?w|Wث9.[*2M&9zhcڸ;;J&+3;6d)FL c׸ً{v=pG\ik=ފ|;NѽHU&ެ]}qz}Ŷ\8_%/;@.cYvuB}!b؇] LlzdIENDB`assets/images/icons/loader.svg000066600000001051152133032050012410 0ustar00 assets/images/icons/credit-cards/amex.svg000066600000024270152133032050014450 0ustar00 Slice 1 Created with Sketch. assets/images/icons/credit-cards/jcb.png000066600000003146152133032050014240 0ustar00PNG  IHDR.χ-IDATX͖K]G{ιysHY!Ƒy&&R6 e BDb(!29JPesfoQ\'ȼk]|ѹ|Aɾ#KV|~@^EAqSq $ùwBNG,Agp3p3EI)KRh~w3>*>" .` C$&DŋE&c7 \W&@GWHCH(:m*Ã4Vl+sy%h,Z@334$!FS30p*.$=5ZۣJ--w&N6Hɥ$Y6 bljs'^b&vZ6r?BQ@&bX-q&鳼_4[T*Qʔ%56Ukxw\5gGo +DNލWʝ (Q[֑ 18rF)_Ja`b;-fIysKhˣV!r1_u!*[zHVa=,!Y6J4iBbP/ o^gum O Ot,{UMl\yNCذ[8S맸v8v1P:Me`7!:LFJEb]۝B'kThlr|+4G~}H2J#ZNSm;o?DSfexyu^GTUr(5N"HSH?0@Z3:yV}Q%C}fޟ̯WFشtjp2|1gn9DVI=WuJӦ7(LNeTn4t ,%L/!^|ytb1]zgcn1tfJ, pǛ?W0wvhf82҈ݹv}p Iw> O!@ؖuEG\#X#X b$<ݯb;;w>pk #to }գz"8>*>g>1؄F%clY~v>>qjttpKjNk̳YaׯO2~n^xv߾zm|o{a Slice 1 Created with Sketch. assets/images/icons/credit-cards/mastercard.png000066600000003000152133032050015614 0ustar00PNG  IHDR.χIDATx͖[lUyUTE QB5M$^BbGAL#>`Dt)r]]J/صrivguvg21Mu 2ɗsdsvB"(X,+Q D L"S___ɸǕk\ȻBW^9cɥ/6?8`T*AĪD_Y&ҵ `&bv5pڀP*HG[*Ecd̝GZW뱑n:Wv9S(8}_0N>Gޅ#- `$|W@K'si܁U~7VE rc`UNl;#FҹV{;O.Ԓc3KG'=dDG-nU=KM\RY$ NT1'RyGbq1׊I+%zƖ(®.3EG&JJfjm!2m=7&Rr5"MI ^>c " I^D =$D혁/ykbsߣv=wjeqrQq[%`cn`$8jR]/-bե ͺ^[F|$7_/c˰1= ^nw1ßtss8G:ςEtr+Vs Z^!mGi ҹƏ?tm#Bˡ6zV[t}Y@AG^:C}KAYy7z:( >XC_x!9gmh\uiҽszdiV ԕU|*NZ8Ns:ԭ”}^5/-.$nuP4 IO{khZ1-c}7ݰwQSVN'ٷ3۾gͭ ܽƺ]~aߖRs5Y.-.nN@z$c{7I*G򱞔kr_p =+oy1|}g{g`-9*bN@*<6T>&e;>ZnInކ!zwaϗ߉U9[Kd2as'.n+S 'mq V{h ;y21t_ EU­<qs8]xޗ1 Czg96_r$]"څ̋ ک|-yW^L,YF'w5wIENDB`assets/images/icons/credit-cards/maestro.svg000066600000037456152133032050015202 0ustar00 Slice 1 Created with Sketch. assets/images/icons/credit-cards/maestro.png000066600000003160152133032050015150 0ustar00PNG  IHDR.χ7IDATx͖[lyC+%iBRmEڇ@QRZhUJچH$J+18\n bv VBlc{xٙku+Y#}:gg"Ⱦp8l RNB\%(RN=Qr'01n⦕RW)#ι>\M?E'rme ݏ8q?!칍dv#{Ʌ Gj[\&0-#675ksf7F}wiK=y:ōⳝE\mщ`5qdtq.>aA0f*^Iyږ:~[;is<\nh~Wn94V={q|tޭ/}S;@mѿ #Op栜nf05P'OTPpZ)ճ>/yʺVյxEU;jVL˾rvFy%sn:ww6`,X祉h0tqA܂@L#60* h Œ}gjw;2&ɜ\HM`MFS p2d\)qSēA33(yFd46꫱yBXc"i _R)*!H>`P6b=ZSM r:s2k+eE@('%&ZnIENDB`assets/images/icons/credit-cards/mastercard.svg000066600000052057152133032050015647 0ustar00 Slice 1 Created with Sketch. assets/images/icons/credit-cards/jcb.svg000066600000013367152133032050014261 0ustar00 Slice 1 Created with Sketch. assets/images/icons/credit-cards/amex.png000066600000004064152133032050014434 0ustar00PNG  IHDR.χIDATXÅKeE_9vO4=030 Ā,ݸbaԠNbJ7Bc0ąw, @P"3<9D\PF$(N#u B jW..?<;*Oqy߿ Cܑ;(q!i] r# K0L&˝S2ɋbG`A ,1v4Qc;*AR)WHT6HRp!⪈51&ƃjb bL4 }W1TQ "5D@3vvXeX/ia9UAj 8* B}w *& (1 F@5ZCwsGڝUը2d*'su*bNpCS>ld4o8kjFoTђ_Vi8Iծ9!эɿKUhfHT|T$D\HH!LS@D4yP)̘2s\AR2Zɘc39ڔhTjxW#tsp[oxq]୕?LW3Lmlp~f][e,pbSz̎9{~{7B_zh8l\F٬8 Y2;Lx^>f^䦹'<yU3615Rhq21P^\xbJ/ҀKDN`)kU҉٭RrGnn195*'s~,]8Kup826q[h86[ =4<2r9JuMglJ;( *L¥NH8 s;\=5<8yC͂_LwHl rLS)^i w#7|l*ÉQ*Lccw?٤oD/u݇x\y{ܲ0s Ng,s {le#W*TkL:=R^/)յ.@KxT212`[o(Kk=_pzAŁv.2<#ḇܭXB;?mk=+ ӹpYD3fxgsYЩ" /y{Kڙ=r'*OX".1?qoBA.NPL8z 'h,mWybn]׌W~r'0 ڬ*O3)fyK|;sla'XGZ^ N__#Uv*eTtY~ WS Jd+ր s37׹hC3 ޹N $< J Ժ%RƝcoo1ǟ]Ϯ8B|?Ycfxτnx3Yx`+(G7Mbbj{g.v&kH6Ds&SBtvř.wbhvjt$''q7.NҜhdbI5W~TK*b.pjISjيUL21y F&Pߟř"pfbrUA Wp0P()Oz-!BZJJTgd퉒7sH}y8ҡ՘ Ia:5Oy!#Tx,Gg3#tPE"` ޳ -bVRa?*owdpk@:UP՝ jNkW?Yd/XQ67^us')ѝ-L`3D]āN")Z\f?z*w>;q8uslX?xiN9n? IENDB`assets/images/icons/credit-cards/laser.png000066600000001453152133032050014607 0ustar00PNG  IHDR.χIDATX͎͗Tkw'Ӑ7@Exe6xx X#vٲ4A6%AH߽ݙHma+rԩ}_FMef.M2V|6oI3*ngь*K~}x{q9Ch= >n㞘PJ@UMr}*S \ۅq7Qw@ U D` =AOɐ,8㭁`/lglFQc;w)|mY5TozVu*-Z~/oz/U_ cL󋿵|'x/m̖/Οs{xCVIENDB`assets/images/icons/credit-cards/discover.svg000066600000011511152133032050015326 0ustar00 discover Created with Sketch. assets/images/icons/credit-cards/diners.svg000066600000003757152133032050015011 0ustar00 diners Created with Sketch. assets/images/icons/credit-cards/visa.svg000066600000005706152133032050014463 0ustar00 Slice 1 Created with Sketch. assets/images/icons/credit-cards/visa.png000066600000002245152133032050014443 0ustar00PNG  IHDR.χlIDATx͕mh[UoE۔1T|~P֗Vme/ Jա"mkEͲ:WK-%M]l֥1i}s a$7?7y;sEQ>e" "1$T` 5ƔL& je9JE"mMrX i9J Q!p fU@2S/UNdZ`OާLx '#`2EcS QR d!):SUDB@IQG o 0Nm}6}xN>7}fOѼ+Fk,mi҃C^E=8AQ+JցDN{FFeU}΃5z0)ᾷ']p˧C?q;?[.t$;U˘ApYPRt϶Ѵ Rz =G!<sO ]Pō;^V{7=օ^ڔ`'1\JA,aUd^,٪ ɳ+bt"rA0\49{^n2V gh-vJs2&xQ5Ԫ*_ӸиoƆ`g8 NGa٢w>|'|HWmr?JZ#19\1)ZU9R`zAv^;8K!<C~t G:a|B15囻=6e~yx{q5A7cJ; 4PY 9$n{ԋ@$dnzK7xƗʹ7].XJ4V$),ez"7@c4$2F'<rsy:bu.gL'$r-J%m 0rR:X s1[)gLcT|e'0&{pYȖ RE\Vfo'H:#ɠd3X"`߱kܵvQt  cbp?j.I^EYIENDB`assets/images/icons/credit-cards/diners.png000066600000002124152133032050014761 0ustar00PNG  IHDR.χIDATxݖ[heŇD }jURAjK-b@i)jR}&"6"!VZZIn6nt7gwgwn3g,.~$oDR%TVEV]SBXNn"$7$]Uٲf!gb|a 8,Omi0E`諅zlDܑ 3*ך+G2SFD00*q83eF/PÑ7N0}W :hbĥ+y$;{!=z! f F&$埇],8ŃF;U896C`i8s0-q#GO =rzi﷐´ATM皋]_ܩ*MQ4qՒ*R$^VpǫA,wڥwn=RU\NգQߊծ757&sKHx+6~TE6j wrįT{s➋]ȉģ ͤt,A*Hdpt||B\Vq> ^rWTnQU4_N'Lq jL9t`}'S~X7An5 yy,_R4W8ua>?9D$gw=]aDZ;ĞsH.T.o~ ; '8 Iܟ8h$=R|rbqqoReT5؅Zo X\ ѷEr3قl+wycǎmk'޵~ozIENDB`assets/images/icons/credit-cards/discover.png000066600000002604152133032050015316 0ustar00PNG  IHDR.χKIDATxݘ{LSWg2:nL%{?431s࣐1Adn*:0&LFq:7@|g8 E R޶ܶH{;OcDQ,$I%@)PLj9\7E,YQ+ j,eq`#, ,F#RUBoÉ18EdD8Df,& 9H߼PÓY:hcsDq m[&sP :j?:Z (7A|hDqʄ˸[ZLoj38^[RfıZ۹ z9y6z@F\#_%l #cU:.]ŌE r^֢/"Z?A'b{I6Aj.KLUλ8DWӵ3svns`zdC$@d9x_fdEEXI«pY,J7Xpk aO#%!pZ]'ANmL4 ˖xM5,@֚/( UzSdq%5$m[N]CFZ5brDO ŋi{dӂ=P:ޅ;K3#C+ XONf`h.&>gUv`D+`Cph5Nu:oڄۭXz5v|W$l).OJH@z5?@hH+HXh1 [{ f_oPeZ Aѯݛ8$ Y3:o wmxaU OtET*3 rw 7oNoJ{we9$. PT%)3.8ɩ$I 6.qL2q$p{K1'4[9mdx_$S⻏g|+ಞo)%2_ .QG@HXഫz#ǒ`=G$1Qs:^(HWv_!UYpCHxDHxAĽH? Ɇ;jX }B\$qo߃sߣm BM6|[&U7w8 [pE( mBP@eUuM L_?*JFBf,oMWck'@ދ DWjWEP'@%+ 5gT}T  q Yc+6clm+ehl-mM3ΎՕN0N3Nm6,ԇgqxư$__|BIENDB`assets/images/icons/edit.png000066600000000540152133032050012056 0ustar00PNG  IHDR !1sBITO pHYs  ~tEXtCreation Time26/5/13UtEXtSoftwareAdobe Fireworks CS6輲*PLTEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 tRNS 0P`pP2jkIDATc`@ |v![ ].wPܽc*`ES ̊ Eì( Xd@,H dPMd` %0)F l\#X]=IENDB`assets/images/chosen-sprite@2x.png000066600000001547152133032050013163 0ustar00PNG  IHDRhJ`PLTEFFFFFFFFFFFFtttUUUFFF2ϠBtRNS00``Pp @ϰ`Eݐܖ !) fߋDJ~pIDATx׎@aWdc=ag6KC_XVFb$W}''q+ V2Lr@̩I)tG6R{ AٌHd #DȤYB=osb@!+hi6bTZt@ G?k%)i*r'Er-GI}-mP$+`%/Йh+d@><2IENDB`assets/images/select2.png000066600000001145152133032050011361 0ustar00PNG  IHDR<(,IDATxKaJ.b]*(Ɉvd <P!RqTСH#GyRدHt0L>9,m)yuم};)IJ,Q(XV &OhF! { n{,%]אGc5x >@3 &2 %C,bE؀u9=T67)E " loy[eCÚ & Dm# QȼŪj ބv@ TeMܽ;G9b}1̟ǾT: hC f ;3o5F52=-ʼndM"N74NdE=dLc c'aD%y@́feE! H{n4.up" >NHY2}&@oq:CA5:4:L&fKր^ Uh\hb#7s\+TӚi!;8-+WT&SSQ1'&d2hGyETnؔ.K˕U6C"YYQ*9łJujȔ/W/TSGrZDf8e8qb,0V 7Ba,x xt,\?nOG+WwXx$V.E(<`Q¶{a~(|sjF<\%k'KAT+y ^pOI>. %{'cJkx!x'?lKSoZ_- J.tp7AL=[/AደUrwB!xJ~~og S\E` AC5P"qabl cP$#]`Ӓl]pZr`ӂӒl\p(I+%x`@11&(mWIENDB`assets/images/storefront-bg.jpg000066600000040044152133032050012610 0ustar00JFIFHHC       C  _"8!12AQa"q3B#RSbCr$4 ?tn+&;֜0^}SFk妳ѹLk}umN+JkH㧎_'zwyX|W4+\N|+G'qGouos_.K65.muDn":.1[Ohj8^5HitNhl4ѯǰ9/Zsn}b|KNS˯=4V*VMѻtY[ږcx~k8ꈚLD+?ˎ36S_OFkl L1X _Ϳ<>&Ng٦TR!pyxhucw N>ZR+dHHg NGPl82|Zy*=ZլnӨs Okǵiݦf}C'ŭNqMQLgfvE+V8ͺzOn^'MZb)hrrҭk_3{wm~2+|?/6D;6Ԏo7־8#SIMzGϖ3۶`Imbu?LqvZ"^~ׯ"gP[&Kk4WY/@<嫎g1-?O4WDDDj#PxwXtN8g,|'HV3şMN o+<6l-`/|rx2nWVeӏ|EZ8ǫXc3oGbO b BP% 3Gh{nߓi?oqWzH癙@moړzo״:q?px:LϳøX{kDGAM_~pHV^LG9}O=l/>eKZ#UG6>Y/C>߫xE陨$gͽovFt,u s`ʝ L0nNXs^{t^x,S^zUz}%Q4]vT:Z"f-xzu$ߚ-c?גi#0cMi }cv (LD@trǟTߢz1dncrjityro@@+-mvFziӼy) jϗ]Lxgo[k7iX±N::?FLjZa=>IELלtb&fb:|o>뾛e56qg%eckdimj=cD;M۟ItRX)[V hs['oLWi#W'| #fh2eפ43zDEf&`G=97kzrk1s_-i_3S5lEy-&|wol)Q˸x-y6dž)L/3%m19gqo>^{ߪA0'ʿO,rM9S@l@ G$'Ps#r ڟN;Lڳ.#6""+[8mkwgnŎ|]e` @ h&b;΀_[$6 6 ٴBʬΠ4u4)|ةC Gxbm<êvɒ+Lӿ/LGoo>Xaiuϸ+p;>~@ 9"#ha HgPqYjs#Zna~?{O7YwIV#Յ^~ј)y7-zE[SH(:|dbn;G~O]DMwY8lXߟ:M&uG*ںg<}:Gx-'{3lv3J@-8OuRԭciE 6`6#f"6l,5G{6 547_8@8o61mn:n?z+={Lq5m1zo#%֔@4yfl F$uH@}Ν?KW"Dn{9{Ŋml\G=8zOa+|uieaDuLƁ6K6mokMbARZyjקcі0ɒ,^jYώ98;^tl6 i%f`rYl 6J2^.2ݯj}l:dI[`j.@L% "4.kӗtl 35Liܵ2M)kcsE0mx mkizg hV,[sGzbۚ&6|K{޻ėkoXE\@% qi᭯mdzpSᦑG^njR\ZW/ M't \~?Ss{FN?孭|6q,|9JrF3_ %2 "3&;Mi4guϸj˦+X,FpS<`0=ۤDyC`7$W`'f! $23F*olwG_d.5)8`KxէpŖLObѧðGw)<5Eytḋz|:㾽_.is""5|3Yg˓lףrS+;B@RkI|^F~d5`sLyviikX obܵDn&+1&7s+zwȧǐ/[EҒ""5h$F nn@L%U{*s1O=j);YozplFy-YN^*5ahhV@ "ץ|SK |Y̦7Ql|1y5]M7yr[}{g:ug7Oa}e""";GHk5vc5)>4^#لB:Kduq|G'hQMk[5;sX;%' [ӄڑA + g+G2GA|GاðG[nZ*ni^cU@% DZ#{-,j7]UD׳H֑  ;D𬭼 ϑ>+j޿I_` }^j ++-p䉎+Qqe>dt<Ӌ$G4gn #rѬ1X$H-zW1v|F,""e_ay 8z)3'a[:<5X~nmGZS5{4ˠVjHJ՘˜mq\$DBe#]$cc{d9ι{{7g~'G,F͜iq6y/Gzuץe,"++"A)*>)@"Q)Dyuos=)sChLvVW 9'@AJ+ ^ !e!h, 'UeYG4-Yul11N.%eI ߭m8Yֽc]T"ވ$Ve j Q L^"y`B@VT>/TJA46`t9͒?VY?@: @8!Nz|e9OzKs?6 v=֠UX$PrU`p|:[2zwhkwh|KD&%Pi C8^q TBPgh%g)GYZLvy:y#zDkĬJGY1o+1t4};Pi^hʝc_`y=ǯU,$&H1/uh&e?ڎzj#Rbc@rd:J6Ln8w0%(@ >.:$ 3ף;HzUͺߤz7F4n?]gB֭c(""58xnZhe@&xZc6D[0t?v.kzWT$g $$)xՖH%":xa`X Y[e_,[/uO.Z{IH͚vP滂)^/%G_H`ijSޣU\5K^T>e[NRbvE\A5Gc.&/~2Os\ `vcX{* 3G֬ H%( )Jݬ1N`B 0a` g,ng~q^Xٶ^ g%3?L$O7Kc. jW>#~G,дb3!a>DvUiѭk L5oEcsۯڀ$ EuBDiTE$)'A{wƷ]ރ<7}Sg? hHcz ~kAis=PoZ<>c{נ0ޜd :zxJ_q(y+˒ӓz?RR-! dX-ԧ Н3斘ַXcn;Q?+z@hH ǹ Q3][`rҸ E!=U1+ (YJK|٘in[z'Oc$m-%b>+ U`i Gpk}GܓhaӏVosޱx%w̜.ܞ-tqg.)ǗoWWHl0n2_t49:}6r1N[KLڞ13ii\4\ƦAL>i89+jOL=98|wj!+:ӹG27 9Ty@ Ht@*J@ (ZU!kwTe J P֓J! %$thi`eWړ^jZ+Ǜ6Hi'Zt+@f 7'܀)h];OOuXi:% U mِ%(VR{DLFWWn}?߫_`zVk★qfŗ'%'su^VV]Z^/H{J, ԧ-4 ,cQfc;Ǘ&HDFO?4G[ou57[r;^) ZF`asR?/SnVZ7筱cyi1[tEyy#pF -]JyR &D@5g~KOa~?xbmߎ>T5ͻǓǶL/^⾐vſkk~-FˬLJ4sZ;dhr4w77Y?zKMmz%rR/^ & BP@$t /ɯm@XS&lxS{BqJRwq^k1VhGo>V)OY-@t H@rqfqsf&=^&|S,|}\tQ=+>s-H9sGn\L{7/ς֎xɼ:r[rE53?hD g=+`{͹kmTm>|rJ?O]t+?hsW_# Mr{{dʮ=De-lǟ ꭻ/N_.ju#rW&9z-_][&?f oNxRgtkaXb;Pi%}Eu5M?Nn7UOiWU5Wc^HmtS3֛οFI}>Vxֵ=ZֱƠ&$ ʀ>'mt/Mmn=$6j-vs*VKjft$  %jc5q^qǓحՋGiyn`E7y#I1Z&&a1~7%/]-qgfJΊg/ʛDkd 'jOƁ5{٧=N]-51 %m;5*^k6NjT|ru+p\S6;ӤQ3uGy =W40m);JSh̿_ѿ0Gv02ς_l^^ ᥽a;}?+f"&g+%rV-^ 㽲ۉ+euiŞydcX\qnYE6\yg'=m1}dl)i7-|stgN6ִO5+I֚|\E)MuzZ.[-xz"׭cvs5{O4q+Xu? dܱPt6*x/[-Yg}kj= Y.7d6S-y^=bAL$}/\۪ A|ߦb&gQg|sHkDG<|os R]1ӵ7>նUiӨ5s[5ӕo_76VKFY_g>I<[&UDdKbWUp#:#'-seDp[&K2NV wo:ī)3ߍ--3iݧqlt~*5ÃVrkykKW#55bg7#f֋"1mDtXt䘌{׿\Ԋec-5o*d|]sNtܷvdP6\i7(|'Ks/6n!n;&$Lrǩ޾j'XJ՗51oφ#b75ZaJdɊf׮b)Q3;Ϭ7+LLӗoc[Si?yb'5{Yœ:}VkHmY@ɒw@,86- HPa3oy>_2x9+[KML8B?assets/images/paypal.png000066600000132056152133032050011314 0ustar00PNG  IHDRsRGB pHYs.#.#x?viTXtXML:com.adobe.xmp Adobe ImageReady 1 ).=@IDATxo$KJ'P9K4jJ /4 M;Jh@@J@wxg98D# yY~a$z8@{|Y|Qܙ7S;;y-U=y{U)2K}_Zv0z"w/A[ⅿȺ_M|⿘\\"     @'Rŷ_.oGY e3:33MoR`     @oqAA)n" r]xI…_i"    x$Ta[ee  tǣLOv}_sj     @2O=N{%٣~޹}2     @%J? Ͳ#ShLM     @(*%,&Rhz¿|cwUY@@@@@,Rw.{tf\(:c?錥@@@@@ K?>ȴ     i D[X'i/##_v>Vc5@@@@@ Rh K~tH 7>ȭΥN@@@@@S( K'oO<5',У>0 j@@@@@qsܿ\SG)G񏷯Ly@@@@@"/lԹ39_S``(@@@@hI җae(0 @@@@HG ΓL=ǝ &ƅp@@@@@]m~B$&Pv>==eŷ_N,{E@@@@T9z.#I|7+|t~ _C$.@@@@@+,eW`-0' qht}7͵KK     .+,}x)g&3(\E@@@@4.;D@^xH3$-@@@@@ KY)%T$襟{ݯ܈>WD@@@@" oD,%:Y_G()RA@@@@5#QB8,??:!A     @jQ;Ϥ6@zj?K!#    @zQ'B2F dnvKBDbG@@@@*,'4v@$K?H4@@@@@ j KrjGV@K?_߹m$    D M!/G0@H@@@@X R6@dݬQ\lXI@@@@4\z$(g@@@@@@#:.l \v7     X RvxTYx3 @@@@D RyHƃ4@`@=~oiw#    - DQXʎǏE7 L?@@@@@ KH@`Թ-%0Τ     QXg&00+/Fi @@@@@`8 Kx̀ )@@@@@} Kx}6zDwn8@@@@@/,e_MpHC    (|asL^t)~o @@@@@@/,eGO&0Nˏu_xiq     y KYhB(v%VD@@@@BTv!g#R`ܽ}7]@     @*Ae/r*E 0[|u<     `J R6LA,QK#    @HA6"=ZgK     D RvtI"\"@zLI@     `[ 1@s8)     @؅qBxDڧa@@@@@ q` K;;#y}B@@@@0%la);<| @<_V<ِ      @s~Q x!Pv~ًX@@@@L Rv<~< 0$Ph@@@@@@?u&"~yݻ5@@@@@SS p:t@@@@@p KY2ā@/%5@@@@p&duo:cCW#PD@@@@5b"E'좓~@@@@X RyDŽ@@'kF@@@@@ Kѓ HhG@@@@X^ q)$$+,%;$    v,,03F%4ˆ@@@@@+t_|dHR $G@@@@@ Fpx\ tM1?     @poĂO Ђ-B     @#I I"hn!A@@@@+,`@\zYD@@@@+^aiܹ07#D ˇ:     A/#Y=[D(F7d    *,eZaTbtKZ     @ ұĄ      B Ry4ZwD @^ ;G@@@@}x)?؈ *^E@@@@<4.xHX      @aC      @0~#%%"     g}$&@@@@@@ ` KgRDOn@@@@@$),eGO&9B$ʣzFh@@@@@ 4.b@U:_z     p@@C #K      K~yN<      Ђ@l4`A      s(,|cN<      Ђ@l~},Kߩo?0q2~@!)!:rʓb\?:=u@RPI/2_=XQ_ȥ{2{P.@@kNt)%kp79YﴔǙ@`ךߗZI \ݑ. K_߹Qyn0t -.1!0O@rpQOQOz4%c@) TG( $w Ji<t#S Mwg)8u&@@K7jC/32lWN̡\gBJC rP/Vߣ7:Eh}qN,a\@ IeGoЂCbSw<*pb⤋S)*mH2HxѹntNRlڗK&@@`@SN),\bУmS~3E - =+dPKai3t'?2KZTg[JֻDzR`*$Ed’iQC`@UTB.ȃ NRdEL  \c%[ְݏZd%@KSiu K_R8VYJRL,dXl5 %%PNÑJuC Lt + ;tS*~yi  dB B:} KߓS';. T^iHaA[Avk(2?d B!% pA@`E.܋- rޅׇu_x5BDQ)Q3_y.j?:,;eGc|⿨+ @m)*ErpF@; y> d r&@HO^dlP಴}GɼimB q K@G_*q$ ͓"ӯ=ϔƞ\C,z-pI{E' VZ7 .pU~$ϫBk?XH ^ [\dؠ|:#NNV@hV>1 3[|@ߗƴ ; ^D@+h1 Q}-&)'y:'9S1!@9>9=QL,FS"/] `Z:eE%ӰwV@hzkg: D#@Q)2z̹Q,|.,ˇ$ò ktcL)0u>w'ʻ7ºee p.<HE@wL L[$M  ;٦LaQ L{y X"jXԣ=jϢ R=tR`zi1)1 @[B㽀ޕ#7zGK  G$/2&}i?20m!@zYx[X=es;}z6.0)0}S7؍s KXE!v8= ^D@U^Nß pk P[ F+[XF^F~|`Є|ʬO\<@ʬk҆Ҧh@nW \k`=\A-hK=b󆔀 闎Nzdv:% ֍DC.o?Y@e߁'"\"22 E̾l w% @r#4`[X:=a(OY$0:X#UyP79zi!@b,@=).Z@@`%+#,m]D ooX[Xw.Dd #V cn K;>XZ AX_ޖ7 `r 1 $3h SIzYXYIaȱ0)P>xY_7|܏s 0=xWwɃ8@f M9ۆGxEK~Q @Jt,,e5aWTZ\J@r7+f9ZC5). L  `B 7m `Y@wedG P<иW Е<-,KL [늎hM`}o,M CW}_K[>),Ϥ^و = -_L.r:~,,GuG(ivKi{Y;ZĻΓp>"%o@ϟ8).2"eigOy#{ b4kVXR3-. #kj 䵖faҖ T|Bhoڐ/VrI(~مI\Z(K< K0zAEKxWKnr @\ 箞`aqb2\~<=j!N)H쟴&6NC =@0@ȣΎb& bO@`ro"]a[MҾ@g< = жS&{|D@JO % 8ȝN4Ilrs1Z@ .?l\>4 KG;yfg`F @0h* i_իRŷ_> tʑhL8?P D(aN =#6V}MWc5Iٕ*,eQlp\,,|姟j˓[j3ASӸ &W䨥^X@j 䵖fa}X%MzMhX*,|lp\,0%4߶W:o?O˗t觓*" \ w `G`* ttY{ Kxqݲ%4ߪdΧEC0$G-< ж@*?x޶+%c@!F'>Q~3{gt0zlp\(0:8M#@W:n($"''i+O7u2G@hǙ^ pԒS~:GT K7kUXw.ۖ8Z,ͺ(9W]"rW/RprKQK<=B@ZQ/ɉ~u SSIzSXY9m -Zu pb}:5 @Fdv> (,}>A  `E c{),e:LJepw$+-$ '#)")G- rk-0v>#O$wMH<*,KL [늎-P~X2 #ˑ $i%syx@loLHl'a"@=A/]ޛRy4Z?- pĒE\n]`ӭw9C=j)r?w!G 0_`s<  *! Mh+ _4%|fx>o Kه:- PTKNhG7~AXȭN%p5 D _0j8If%"*ť9@<@k]7[VTf2M*2l%q+Wdc1*gzZiKdI a3$!۔!P_rU\?ŜO,ӤbNLِKo[D< Gs.=@C@ @r#^Y/H۽i^s/ڴώ@g<0"ж_d=% VM͚˳8 ,`rK%.;R"ʾiq%񱥆iv<; $yXCDx~84OyB< @}7c6O @H޴QT9|fZpgI`ĩ,lo"5% \0'RB`@o< ZK0q#:# f  Krǣ5rkdą@=?O7asrKb6z1C.`'@ ,E@` T~| IHP@y N+^;- YlhOM8D"$! HߙY$ 辂#5RH7fGaiܽ0+@7,p|hACŋYi& [+\"@Q.@U]Ge@/GZ/,E=$@b_(fRŷ_Tx6Tie/|.Sz+JD #DR@EK ā> fbVtz~сFi/}W><+J {rsWaP[Ro.N={.q <-Gw *ǚ؊yi2c!+Oշ) }u[R1uJTN7# @MpV K坣f# $- \z<֟jF]dF-2~ P8r)ŤH[{3θ?bT.ܓY7lLvr;*  e<=roU*YnKN\_k- @cPbڟծRv4zrVpoA’TlS|7i_=i`i#5>:-*d"UH[I{8;[@@SLJ=)5lւİ/- ȧؔɝ1%ߔ$ N S K'O={3kSl qI.@ )hxڻA[:iO٩hڒ:SAh85\@H^::#OTm6/ȧ7lSo! #1~v侢3/nrYBRlt4ZĺH y>4/M2eo|\-k6+  O=) =I:v_VuDX0(< Jx 3w/,e3pժj4m2N8dgۅhI o9yIqi ΀[ a." PRKׂ=y|[f=i5|X \ $ooR7ޜSX2+Jk |r"ZPg|p2I3r g݆Ьw_澴eެ'F@f |$0z@re!3 @Pż\cdž9(}mp&pY~t\F('dfG@MNݪ8 /лfrnŒy:ŒSy-EW `V 7ۜ׭sZX*F1G,.=ea'd[& ;skӰcz;ZY@ nv-a).mINߎ-/ۧy'~>yctZX><Լx̠xd1BepJ Ewm4XQouNw  `U /GM); KV_:4a;[:p[X*3/҉qNhŋYosB;b'7r{"C\4z2')  @b?x>k(Y~uҍ ~@`p(E:1=~|'l%%mG/|b|#H"P.Q Uqi3H @|X)G9귭n#Ԗ6 @[Ya[:wTx?M?&|HpF{!q֌ug1  6u!?䨥B#sRڿWq8yYa);:~vQpzVGB5Z/;0 k RQjA[@ v/YIa//˘4x$iVj.%Ыt| ߖxKknFù   P_WHm/+E&!H(b\ѨLp,cF3:0 Ђ@Wc;Z5@o|G84" " @yrz+qOws/x,qlC.ӠRyecC㑡h2= $,'@xZWaTS.@X /x3= @:Q"SD4o2" t K ?Ib#o{DK!R7\"1$9dfl \z<+i V~g@&(,Ԥ-@RJvZ2M%n%9#@JNJeRvxFh{K^㴌M4m )$>3! @/DgI!aLwM,r5c/]Ry4J|ˎ8bɮ/7S?լ F+//pXRHklGKѶ0#*ǚؒyK.bi|Hc2.d Kum}xWg3y%/KyC E  c!{J: p;#**+N#l/,Y}8FB4xFiĎ)hqZE|#gV11JOCzcN  YZŬ?II;I.p9 XvA]B,[v),\;K,"8HxCt@Si_)'<swqsFS;k2O.sN̫|k/dVW y?׫0! ԧt{~ܚ& E\?;{WѯGc2O=_z=s0])~MR^[60k.Txi'?ۥE0-a)Ok)'?%w-l0~M'tɜ˼JHV[8qp5Y' 4K&@w"I/:S~><";9!sedmճ۫nS'muj)=<:ZXʎ6Tx YݸŋY ƛA")OEKk>ݖMOrY̾MwwT'- <ԙD hO mJ=b=nzZ."NI!Iz2O.uͷIsu{rM(뗘d,cיş k=[-,w&W !P29b)i?I9|w:l3-AS]*ZKBIfO櫞(<}>.(N̻RdڕK&@{hFQ r^A6ImJȝ.:lKIlʼsEC1ucMlJ^ޣZ-,K0w(rbPEK_2Ӝj1ID> TG&X gUP!bH}\~CзdޔY?4:in,9ke"@o5UmOsC3?{cOde"shQ/zDnh <$M{2U&5}kv_la~Sr{x;GK^%sZ$"J>;й"&}nɬ!!qˬ\4>c3v KDzk3ڞMq{~WzGteV%/XRKf{DCjbhNvŎ4+p36z߶<;9^s])^/RLLgs7{t8Sؒ'7Q:'):un[Zmi/%kӰntUrYΖ6\.t[naimZ-i"ЀәңNqEhvv7_6b]लἴ"ҁZPv&IS2o˜i\w O$W1BrB[i|(s;QiNK[ri q]Ki<{WLϝ*?w;ś֜ep/{%9yzh\e6~/P}\/Sن0=H2ی`2~SiAj>xKk5ܨl 7pV:¶Ҹsa$XĄ@96 m P_ӢңEY.7|!-| A>7Mv62ˬ~djGe^[ԝѢe"||?œ\:g_J8nԏ>g9k^7dKZPzx#O}\vv;.V鮽RY%>YE`|Z@3-*9RyFs'G;j7;7jO$2MfxtG2ťMxztߞ$ SwνI:O9uob<-BWYI[Y{ 8֥ew钃\v>s%V Kxt7[sLaiX4xL@+܁@{y{]yٓ,A\oegLJǭ{ _W:@IDATk;(ݲѿݕNa#GmkXnY|mb^&#TlW;cu'9=Ὣ~]Y{W ~ Ʃ⒌UϷ[hi]bZ),eO(0>^qEVC`Jnˇ „@HWB B)f,xзhudf? ,Bӛ!B^#qk7馥# {Z)bHmfg%E,̩\.I'KyAԇW+ų_ݮdJa<ͧG,v_tdKnw3Ou[=;> N莶r{KiS"(d6z!6fݳLk~ړ&5l&շ-%[j7fP'S=QJ{91-.SvߔŢE6Q\ȪGضRX><Ԃyؔxd%A`E>! !k)T_ۖz-pjS9'}%i(]2K `M`Za4!a`ՎI.t\dޕ^w}7bj!.S-}JMۮ bmiRߦ![a\B_zz ߑ~$n0)0q\9ѐumj Kz+p*Xe)-*dSmٱ$y({S!mvI_}7c]#;>NbQઌ綴[Ǧ4h86_Cۑ} ŸnHQI-lN6m~S /IW+> 5W1Я1ߥkZ !y/sjQ.]zas d<>L6u(/h^9:  I -ÐiU!wm^Ma(sEޗyoEK8y2YeNWnV y } 30FҞUՑ-{bx%G2k =bzaIXJR}re:3!`Rk_ʗ^2JuUW~c#`B@vLxE PwD3/U^dvgU@sj5^􈸔vz+7׊-[lkB_Oݲ#삦RO̘BdSjoa߭v[cjQٓiO Js_5r*(yF#G֚mG"Nɲ4\vASx jvp,0lA}UǠ T;^weTv.2x #JhIE}jȯMZXF^X@gtPoF@;9nWXUp-q{}UTJG=G.kBŗkZqA\ᅲ[\^@JmNz)gz** e|S%n4xUQ/*-1(,3aI5vdmsMcݚQXJ@O}vȳ@bF`hZAUwpǽH<6e5pG)*57 ѵAz ZD {\M0)ߒ;|;ܾͻ(frgEohx<`cvM:ZXʎFO6 uk PX 'RL*[٧C;Rњ|dmP0bv/STtzMۧ4x4 ַ{]Bo$zZ^Kv;fX+6O7 lcr%"ּcQT?ȺC|w"ܐs]a߭v[jKyW'%=]`i䍹!DZڰG2Hg5ZKN]ZrUHiS;H||"˾+acU͒AC-c-)]yW /PTZUp^$ԛMVu/4m`c<qb n#=Jk_qÙ Ȋzj#ؓnvdy[f)E#mЮbqi\-@i \I3Y߽)ZlJ:SX}n'ج>0@8]]18^{$9U﷩oOþ}u}e[ݲ)3;VS+V[uZ2>=Y"qux4FٷV8kQ.mllT]$N O?uzdVi#fb4JLak-(o(ɩ6Qw9..S gGFOf˜!:n]iqiw=מS|;RXaZ{*H}rku_nuTEUb\pTU<06d^W]:uKڕ;G^ J勜Fn 9 ^Z~.[ J@:뙎h&7[=7eԦLƔsu|ض8tHdǺO_Qүqh+w-I_՟p <=6j+ )-v֛Ga Lwz.]1.!myؘ шR^3%, D||]"XrcṬ;; =Tߜg@}:_S&{!)CNf샚Ǻ'?)}l^7LDvp9QMpP_&:sTxhcI%d(>TV_w~ `B D<Ġmܷzr;SFB{*;uL_)N(O!QY9ðo1 @oꨉ6i Pj2cFT~pz|| $@,7"g`av Sw/]"`B`D#@`FVkn`IdccG-$N!Q2G HMJ8?=w"psreOW]Ja);:hc = [*EtwIJqWy@pc\@sG+IHdž(< ]_6%ga,m~56=9$++\"@dIM T`ankS_SX?evβתrqF^}&>z벴+y@yA3 &wNmi ՃL^ZDN{էK_ڼlК<| :<8 gu;9[5tTv K㮝vMeS;QL٤?rK_L!9 ^xcF{W@dG܎Leu.mMG;,PxĔQKޤGhQMWOUR%sSƷڪʭL+7p{4@àSB1cK< ^%}RL8]C݇PWXi-VB \máT>d'wa>daIޔYfҚ$3&#V_ښ=k-0~ |WV*LV1MN5sѯ> S/,e v tFb &[*(&3."C{3 P 0fBF`U&/;9%+zD$Gg2]^7&z\Og5s i Tˎd9)IډA%kz5y;Gϙ vTxK 9^D'I Ii4̅oť9fe*}S}Vqfu'^97r[g6d^bj;vW]Y:ţ}jDԅ%\\OO = TL}6H<'~uլNY}3B)wձ~5ad2^XʎFOFSK]z\ HBgO.9]5hG:Dp2 ya0ЁZDʼ^o<[.{\) Ii XXؔNz^ ٶqFh!E]S J)A=r(DOgMېW|I ,N:~W^ƜFOdYm4;>L3o߲'R/D!ɷ-֢af F2)WSMiw bpv CvLoU;E1;m\kZ溹ViI`@Jq΋lzt>d&۔z{_b6嚡|oF_7&qfMcF8HGGkROoW. юfizDG2RhNw쫛bj?<8 U~`*$~9L JP5/KqiUm+ϡ>'c2>ښ%0z~*+/1>,B `#Є"mp#`Q=ى:0~_CtT+b\vdPљ1<~qMtxc+i x_0HpM m2TiMQ[zĶ"w݁/!`|XDne/F[;.6~L J;ʲ/Ial+A~{fPoFKeB F]-I!l3ɗc**MEr'iZ2鎝^(Iz5x-Ʃ ^[NS43i6CoR)XJ| ޓL[}4SS76[X*f۳ )x1+O Jg~_(L vb XZ[hG@?,t;:xOnnЗEqi9'Y*U6ku)lRUg $Br[0 \h0quGݏzSnnwsK!ɼ)3l'۔\Rt76Vkq{PJ>sB6M8)*θ}ˎNeqS2jKcOb3~]!!=$ֽrsm{txN=OmyӢp6-(m) -Ľe͐BKOX6vsK .W89cƍ)GO4=>w\2!5R&H> >C,B46=mK蜘o.ɦ3/`5wo 7DvNihCy}6}lig?1Q=i{BJ?D5^UL-1 K05B?-*;JKfe ~4m̵g>ZTYtZѻun+tۨA]ru92xw䆼ܽΕpB%R ImmzDXU!mS/,|wYl%[{3VXʎ?n:8ڛ!YSo3(*̀n p1Jr- ;pzc hQi`MkeKnp_-* r;+Bm3ĢL%1ya"U譺~ﵷ`K'qԈy~ߚ@h\r E4Jdf3ޟ6wGUah0 KnjFFc}VL M6F[8OxVQ o*Ѐѝ&'ϷmjQbprxF@j2MhK bg`&X[kYZtEJU}tE`mW_2:4fV~\aiܽЦF}GgIhI@ϱ\ І@F'e-*m:oVKQi@pS"Pݙtէ}vCO19? 9;2[L F6M6x-)ll__m]͔eCT>Y16RXu]w~;|n# kTl d(mq3V4͈Py/$"E՝Zŭ;cm ։mpRc'tT=9}7}ulzm M.nQ KEDa##UtŇlr/رi2VB`Y|Y76k+6?Aq c 03ȲPtIge灸`Sk݇r PB-s9u#6yy@RۡN;G6 L ? #Ǔ ZT^ [Wj =- pG-An7`]#V{Hca7y/Bx@+E%9B_#)}*[>͖μq.GﺚrW;wFF KI /3n0(ЗoMXy5#M!PKڙSkFJItb_~( 98QW Ul}G4gB 4nҩ&T@ N.)?&3+f K'R}5ӳN ܨ'8 G/}$jk,؞D6 7lHV>|nU ۗS~Ї~ LmJvLLFJlsV0b[;-فr2ww][28ЦF}]|8I[nh[v@벮 WLm=oߣXV ew_oERTI/˾5[ýaaEﵩ_;1&1' b6N.֌2C|گŒ y fCC\rmm7֝)NkmUۉ-O^EPH־qȓ& Ӿnilu88@)mJ%ٞCSdT!wM{Iy}:ϚqP7t^Ozz91 c=kzr#^XZ@߇KahA!Mj.f8 #&}YMwX64i'Djѫ|@rekr#<H!n}\fܼ3._ԝi"}pW_:m\XNcS.0$-A XĚyE!;7dgQ6[u s7Fk,y8~x B"v/\{B* ܔz~Ej OyN]>Iy9ENʣQ<56/N{@u۴GW44G\i o7;+;{# j#աF=o3}g_t9]e-Ƕ5WK@ِyaXv5_m_=gsQJ nkyn muظ=i+8=/0>@2 XIpu ;?s?o=Kػr6 _!`?a}D6pz_EX?g>-|袦@\=z-xc C`6]!~Ni^X:.6/4&bZpuV* $H@EKɗicGwC߽ƕ&{MVp p Ll}O W= Sɗת1 9׆TKIO}SH iDsH7R,%S_f9ռRQvai&FZ8lF@# 0WG) .v7=5SE$1 ?ZXZ+ `_nК :ޮjeftK 6iao̸?ƻ I]hxTYz˳4oo[L , G@?egtcRzKcx^qv ƻNO7:)m^ Dz } yƆ1R7$;{l6pjs[I&m6H Y5ntR7j 6l޴G{&o^{A"oRq=cڎi7z" @29)& D^_ t\;\}|~Qzf12&i:^SKXaӹKGm(_;{@`u]ꫳ&a TGd4ц*%-ZM^ m.>(]SDY"#m.k1@ S;KBwȈlHG)}YP*8zi2L)MjՖ^*Զ?FǏeYRy^4o@@n6$&'//&A]7qq a5pSƩ+d=9wkʻtػEe?Mbдy h;榱| Lȧ%}%m<m^xmG~J?t8`þZKVfqVSG,!An^&RSK|[od֣ ntj߮7P@S0&c}yOxO|dƃ&qZ6ѺBG%(m" Ťa]4L)Yr5.Poqח_4% ѯ\Ӷ3Ø@ [OMrf]&}șͥyiIveٮ[o1F OB-"?}}VX𙵨V?oG^9;ҵ9:/A)ݽvbpDbfxRvx'@}gO%:#`H@J{ڢBC xtwJ00:K񦳞[X r祴s伩,nzWVY7u9Q>RY !uYFo/&˵wv 7)$Iv=;wՕ K坣55u] |?YI- J~2I7Ho]]t{c=QXVeG-i޵&yBJq.Oh]T7Y:g3nB^|]馌gn^G—5 W.,eG'mGg> "PG@J:+,1 $3asˤ'eپ ó7nL`XK~7)LdjMy{:)5ܙ@mDiI-&љNǗ U\>?&֝W/,ȲO ֫#),Ͳ pOap-Yd3'Y_72Of!6`Wߴ9iYp1SF 珼'x:u"N8Ŭ߸<gw)$ yݒ}C^}LqH,abY}p5:n_o}Z4V_zZuC%D:"ln @Β Oi(>'x>?Z}3ݮQK=YW,|/%).6R2!Gs]# P.D Ѣ> s)0]R}϶>5(qљtkk\"rZTZnQB z< JpR0d=<5zzb#fYZMeWS+,mI;K>'#WkBRM$׳{~P/)U/6/ y5Mz٢r/55TX>ƛ7-Oi(*E6X oB \tvcm{;t_߈9{vs(YeII0E 0`a CشeE ۻ0{a>gW T0|1ՀF 0 =Yj}ȈYY2*mqGj0Y96)yrS4D񺁖6#YnU(ajee\H'F&Rqϑ g[-p5R6j~ctC`Ѝ謚@pk|8*T<|#"p%P@ܖ;gF j(/^IlV$-$P&sM]K@~V3Q6kiO4,]$dUxg;8{s6} e,漖+Sm)rs02>oX:yQx P@ /_Nh=ǢVu4P*6eI/~VùӈL$Kd|wwbRyQJu}$+/zSN#VQöd^(ǾwԇϭKŗ^>06 -tp`ddߗA&h5mIG38-Yuۏ|_h|`GGb^C0t鐉J4;e:dd/fDxI*{,6+p:6 N: ߥZ>7N7g[TH@c҃RcltPH`P{r!hX{ ZYv;H~8PFY%e;?3/{5E_}ZPn$! 5Y&.|6X[(^Mc7N,m:~:u ܖn@"PB؇tbD>U ى,;oұ_}Walz&<]cPc:sP''P"NM&ُ:YƸqbw_,dV@v!={R| ܛ"%GlGa@hZ.6РQ"KJK%+x@-ǔLMD_q7N,|Wp9)W^ PG@=]j4ArD:XJ7#)oP9?,:no+u X@-ǔ-:hk >4KE< hL׸G~&IB#}Gv0$D*yD#xT+$N$BL$ή_Wd:A Vw̮1Gl IRiԸ+2V@ {q^ؗyMk (d/;ډɷ|k=3ND$FX5 b/;)'h^3ZJ;uJ^%:ʜ4@h <ȆFG`89z : pSL'R191?O UpMX:᏷q@- Ɩ읭|]4 CsPvWp+xZ벏tr0VqYf±hXsj]Yޗ3Qx/zN+E+"tGAGRH*E1&K@ˁӺ6V Upc,_8 ;[fb&M`! {e"(ǔ$ؓV 2벟jp|9n8٭6֒k/e!Y#MI$H1Y*E%K7t7S71ȫ2i#?sb,]#ANPSR1e ׶`%Phm~$zaDω=Ѱa\+YBDhB!;3L*K b4 ZZ&Y Pf5q[ Fwe~6̸Xk#̤l6ιU Lyʶ ǃZZ}4Tʁ,@:tB$RӉUF@vr6ki3Trw*dU+?'`?9Nj؛OS4HЧ^C|0), $1*tN#yr^kY#R2`E #y6+1IDAT';=)c>2s#n TmDcM>sIjDjVb%PGlfͳkmϑY P;k–R%[>)Rr ೨7cѓoNW^V+^;Ԗw{@%(:pi/Q[&Ѹ ?}=;}X%,Jφ< & mX; J2Qh8"2Dʄm$.|$CK"M^'/EM'iFS0ɀ3HI SX  :ic@FiO,ݔH.˵ 3ti-&Rb%#pOsEq@rQ8<_qLt~LZ+KHQT4K5*z\lm4ӝz2W_D2<*$4X @_K>umEݥ}$L.N@˭ I#jVa96dǬs*QFUAq%:)` ʳa;kQY"H*-f$`7&vŎKQ\a,xN>ToqUN_<8#?{ȧU;ߥ,@>?fϜH>s@sU6Dbi!G wqE yw'O_؆{laivw[J) }J  \,-Ç,‰CyrɫWOd?9WS)$šef,6 $L@tAnX,B:|w^cKӯ](D ICsQ+5r:͉?v^#Vsqp*Bw9rB1"!9Rt~tKmۓ㿔$4k,%)ViuS*:5%d?,~t=:z*%wD0c)ӫ-ofmrsxYzÔ8D +/DJ2i Ũ%p@ u8؁ L"d'vK2>.=uICYo|(8Ó7I>b2}EAo.S]r}OZߡ4Yc{c6젝_͉FF_*eG &A(tΡ\س,hB`ڤ¶l&əQjmBI?}As>'0yW D_w]&4nR淹VuYInRPܔR@s^o9 `mh!SwMT`pAta$aA'Mur. lR^26Yiص}|B^`iFC3^e27v K8weH_7 C)6xOZ?7b&nIaiN4G߉4a^Yɷ֮g[iJE5{<ܲ/ F@2fY%uA`"m>N{L7# eˬIav@h}Z`/'`~=A{I[x 7'Cc6?iIKf,_{vB)Ű*ؗovj]MȀ&Nx$<1pBޥ/_L9"R'ٟ"bェp/ -SGvp.*}玻=ԼpLyi3=JBHL|_};2rS vLC-e(Ǿe缿G|{^wFig1QҨ {0}1;6)"I:^@w(RfwT#X8voRjbwt+!*o/΢ IMH>[gh1%lb8S)3׉*4Ly]'`ܛmю%#'Hbvxe]y BUj N@ˁӺq4Vؤ;ڰz=ahV;]l֝.z[oPK) O̓LD{9 L=ٟGST\Qǎ`F'Dtgo%[>et_)S)v}Hɜlˋb!`Y\Z_,]FKpF3r!P"dKf~t)b]p@@9mwG+Q=ryVP8O\B */ u\YF`B1>W2t/vފAٽ<; 2{.P߄IcB C&CM$?閼6օZZτ)׏|7n`9kLZM.n{L,|í+%kW).@:ʼn1@ $AH6A _cCBoMSu=μj˷T/c԰3DBKRkx 3lW'?yoKʶ՗]@ J(̯;eL`6A`oD`Ҩ58AƴO@~:ۖSf;ޅ{!!0 JзOQ̰]XzC}yOQ @Ȍ@?3="6賌xY%uPB(Kؗ#E~x^]vk> S&1L)74O%Jf?TD ӍZVoj~#ݟGEC|:b0= W|PX;}GG+Kh%PZT ϩtb K_B]cJAi [fj xq\&ؐw;4f=o!NL]@Z; ,V NrY]I*[e.LfGI ,~o/#T7{n5k9Kqz5x|3`RcKBSɳ"GX/O,=-=BU_y!  d aVtϽ%\4-DN}iw4tIRi"#t&tϖ(cRËfϷ}}ybXQX{/g+-Bac"$@mm:зzPRE83B:zj !n׍^[([ AG4D *7HDGK?_K3z\XF=^3ZAH@Lna5#;L#BINt";q1-zYq *$4 @A 6KZ/%''ߺԊf,p 4n o4<-jURW䢦[a0ƕSXxr$_@Ϲ̽A5Dv4# KMυk#_K/R+*#"b!J`_$v-SW UdwF@.n3:PƔUH#FkJ+qcJͣI\p!pZT=VK~RbW[O5 @/ P^3ZA IIF^B~5[4sNo*nXRx/x̲GJxvlEXzrbcv2B(Y0"0dL@.rNEޝ%"M7.7I{9-<9ǔEq;nx* ˀ}rfdrO<|]{IZM@1c{ə.'7'K`$(duMIfKZD;pݺ zMSMb$&a(N<މd|ƅ$OK-"X{@$ߖ aQ'C ~m;HpNT ;ZhNۘ!/>C ƅ0o[fd/SKǃ>|3{ F @pAta$a& =Qr!Q64?tG 7de8qx$&HB x{ZSٮCWt>URK'gK[Q 2* 0-SW QTT>?r@T*vYOxKƋ̍6@庆sLulsk5X@ E@UrY<" qEE45J;Sx 6⑀$Jq72VW%tcQK\tʅ٪uC'j[OK>e mǔ蟶Gr^ivu?H_x[%@r)(m?Qf}kd`}oMlKœ\{YˋI\yLȄ@us&jaIGtDRG`ݚ'XV-WZ]{$b?C),vsY=B zjHjO%u9W<,s;7W<vN(A'w 0 $P4"#lһ+]{>H4YKl .WIR/>vi3Q[4ƞkgMsXtM`.5Ҏɛ2FkBY㪐ǔe@h.xJh(A!b TMT' T(%pGS2BR:xm',&kP>ph*1~!@\K(/(o?kI-Uf\gj KKK Rc޵i^@ {n(طo`m(v(,7e]ۊn skkD[0 l iɲJ #{!UPb{Wʃc0&|!Gjs)}KKls(wv#ڏ) Q@` ^dRotOr~[ם}Dqz8 /-D<*{9unՁ&x덺-iמ ,@ޫOV.%>fu7H]asqrm?NM=5J - vKoGf/v4y5 tbr嚼VL&֒|6cGmJN&~6z@k[.UgHIn6!>bOXY8=Sw!Olݨc.nAl}p[/IXxq;Σu耀%~ϼ-&Y+lBid֖ q@Ӏ}t׳ӓtm WvZtkCG @ ۋǣ!\?{ʲ=R)LGR7uS˾roɊkHR/GkhYelEl:8q#l S)-~lOC)S8ߴqY%v,h褙"" @ ۛH$t~,e(ޔrNN(+1./tR?lg#7-ep$fVPȶMt- eG*3iFz"$?xlJiYm`M4z&`/K )wVZXFg3Lk _ʪlo|"\=ymvvɟ~qaT[od(,JIoˎned@pՓFJwDg@=R^l}Gt,q.۷1~B=;}iS}~CHT%΢soВ}?d~s]đ=)3Z=OcVx\GF2CY 1v}7)8a/|SL-caK^?w{񆓢xVQ|uH!|g~\_r)9^ũcUJx1ƶHPJ1b_P6F<#\ۯ"'ZY3"P}~$LK\^vjBbY6Oxkq?X\ud䃸X{@YCdOnfN؋AZJy dOo]@ؗbv1} E݄~5>NrQn ^nhgZxߓڱMq;K'?ne{^ߓRQ/ɤ ϶SOw5D,Ib)MN6 B@.l-)-rjR Ԗ.HELK}x*ٗ >:;d]{7 !8}<Ή}if/(o E@.I[RrdonJg_$ƨ7:E:精N䰡Ь_MY+tMPvK dG@.fDY;%ȨJ9,eLJޕ:k83^5@@l{_b̕Tӎ$-$BD " shH*y/ys<0@ , EܩtM€-MvVH$ LDP*boîc% IcJ4| ]gv1,@`<7}zh~@XL4YlR^ M)mbTFXLxg@5q.>G3ړϻ@@Mj$dRʅ"odoRǐvL*yFĒ[ݗ &P%wP#1Zt]؎ș@5C5v}BMR4 0I%z֪K@mW7f r% Or?B5 U @ 0$na"ƫgR4A  @+bS:!qI  @ bP{R2x  @PJ`T_/0#p @ dҞ|GMoL%;k @@)ݝ_J+~IG= @~lhIRifD @ K_2zV @W?U@3@> @صv^{[Ko:v9XK@ @`{2[i$omo!#X" "pXz~vI+ct^C7֬dcƱ=A @ HR/?V(}Q$+y@ ibJ?vv_0s ]TWvbRmmx^<@ Дybvt^jrM+;kV1#0@ $0uJz(̅@ &peoK[/a/kG]Mp)hVߔ @.J{R5j%Ĭ-uÎ`@ doC`ύN:ڷY @ lEzxyuxy'j @3* TZ$Yw @ ( `g輪@&{2[xS#C #@b1J]`"s- @ # znuGJӬ" @`k$FWcY% [8Ƭ @ @HR:ߗjj @ f,uý @ Аa\\G] @K@1Cbi ǫ @ V:7H$<o!@t w @@ؤOmIRi6dA 8$@b!`:6$ @ )I*'k"46@[@ H,u8;~^vhӗ U@ @XI`,k^]Vϊ3( @m XjKp}rjֺ$pK{؂ @% E;*HJ[ @@=Knnc}}t  @ $TJƆ7x1 !@s$#`>7x @2 0 <O~WIf+   @ Xv[X#@bi/!@ dH\VU$l @XjqcKmlݓ @ TЏU]/GZ@ 5H,fΧ?VhY_f,5Ek@ " I%{6V%z=tz5k @ lڮ5@FL4 @D/{GJ%TA @K0mըܪ"p UG:A @JCNB7 /MF @ XZͦ횲&pT% !@ U$TUWxٰ @&K5AmlElGl׍^ @cmyLx# @c$\vg {B @(dH0EqOJ  @Z J(J4Wpםs @@$IʞK @ f @ HR'1NbS|#d<  @$X]FeA @j r"QGT,X @ %g(/_xǛ. 8!@ l=$Z VB Xf eVUR@ #P=oORCR4TB !@b }{W1c{ @%0_M7|gJRɲ` @s$#=5xX]B,  @PF@f+dŊp*~B x$@b1O?/zfjB @R_4~Κx^MP4 @؎U[:N>1ukk @@J] uG7P@ 8&@b1P17po+G<@ @ DMNߓ#8@ @k$7f+ꩆ @Ju$:h@ К/fCĒx @@tGM ,L@xaW@ %CNb=UVP@ dO`, _^f$4܌ @pCĒVv>'/8qt) @ȑVwrPiװ!@ ЊV.uf%$U|p3 @b&spcl% @ PXb#H$ @؞V*-dHJ٨A @@2H,%3T:GVϽ% @ @GJ<o%V@ tMĒ[3氶Xj@ @@V:V @ pH$.4\M  @ %9F$ @%2voB @PM`X}>T @ ~b쳸%`JjV[X @!P=0# @@s$3[ۣJ| 6beS$= @&0[RuKRIlP @O`ĿWw>|(2?S kw$YߵC @iyWCX99 I @ gXht%2oKx1+nT @ ;IE#JJ2 @@baKvMRvq$OlIYC @~̥R9^>IENDB`assets/fonts/WooCommerce.ttf000066600000033424152133032050012141 0ustar00 0OS/2#`cmapdgaspglyf26/head *e16hhea1T$hmtxY1x locab2maxpu3, nameQ3Lpost6 3 @@@ H =  BG797979D B%%% &/.'.5467>4&54676>76Z'RD        oo,J       D %%% '57Z'RDsn@? ooo,`!2 F #)06  %'7'7''7'7'7'57'57''57FF4z7w@7x6yx4z y7x6^x4y5Bz8x6}||}Z}}}}}}}}CE#AB{ECBAEC&BAIIDDDDHHIIDD?A  $(-27;?FJNRVZ^bfjnrv{*6BNZfr%%7%7%#5353+53#53#53#53#53#53+53+53+53#53#533%#53#53%#53#53%#53#53%#53#53%#53#53%#53#53%#53%#53%#53#53%#53#53%#53#53%#53#53%#53#53%#5#53%#53#%#53#53#53#53#53#53#53+53+53#53#"&54632#"&54632"&54632'"32654&#"&54632'"32654&##"&54632"&54632'"32654&"&54632'"32654&#"&54632j}u/'L**H++G++I++I**H++I++G++I++I**H ,,,,,,,,,,,,$++I++I**H++G++I++I**H++I++I**E#   ,   #G     >>\fde35+$*+&*+$*+%+*$++$*++**D*&-*$++$*+%++%+ GD  DD  8D  D  )8F2>54.#"35".54>32#3?35#%5#76&'.5#jPPjjPPj]zFFz]]zFFz]SZ  Y3WZ   X3@PjjPPjjP@Fz]]zFFz]]zF3`  aM3`  ]O#835#35#735#2>54.#"35".54>32# R3W3 jPPjjPPj]zFFz]]zFFz]3O3M@PjjPPjjP@Fz]]zFFz]]zFD % 7%7%DϹZRBeoko !633535#5##32>54.#"34>32#".5 LLPjjPPjjP@Fz]]zFFz]]zFLL&jPPjjPPj]zFFz]]zFFz]$9%?'#";2>54.#"7".54>32#("3SW2(jPPjjPPj]zFFz]]zFFz]$4YZ3PjjPPjjP@Fz]]zFFz]]zF#8/7326=%4.#"32>'#".54>32͍$4YZfPjjPPjjP@Fz]]zFFz]]zF"3SW jPPjjPPj]zFFz]]zFFz]%:7'54&#"'%32>54.#"34>32#".53$4YZ3PjjPPjjP@Fz]]zFFz]]zF"3SW2(jPPjjPPj]zFFz]]zFFz]$87'32654&+7'"32>54.2#".54>؈"3SW2(jPPjjPPj]zFFz]]zFFz$5XZ33PjjPPjjP@Fz]]zFFz]]zF!%'!32654&#"%!!!267>5MM, -- , sMg -- ,, M  .>&"7'7'2764/'&"2764/&"2764''p' '&C,,D'p''&C,,D    8     9o&' 'p'D,,C&''p'D,,C  9     8   "-9E3#35#3";2654&#3#!!!!267>52#"&546!2#"&546fLLLLffffffM  M4433g f'Y #"&54632!"&54632!"&54632?ZY@?[[(?ZY@?ZZ(?[Z@?ZY'Y@?ZY@?ZY@?ZY@?ZY@?ZY@?Z&32>54&'150.#"10>72 8K++K8 M^6QhhS5_L)G66G)#@:8([;H;;H;['7:?#+8"32>54."&546323"&546323"&54632#jPPjjPP'88''88'88''88'88''88'PjjPPjjP7('77')67('77')67('77')6&"32>54.1.'.5<7>9%jPPjjPP A@PjjPPjjP AՎ "32>54.''7'77jPPjjPPRSSRPjjPPjjP4RRRR'"32>54.!'7!57'5!!5jPPjjPPGiPxQPjjPPjjP7PxxQx54.#7jPPjjPPWW4WPjjPPjjPRzH>05M2#"&'.'.'.5467>7>7>3#3>54&'.#"3264d/0Q""77""Q0/d44d/0Q""77""Q0/d4I "" #"7""Q0/d44d/0Q""77""Q0/d44d/0Q""7c   M3' &$N"M 2G>54&#"3>3253535#%32>54.#"34>32#".5&EH^UR\3>=@@,.LLLLL&PjjPPjjP@Fz]]zFFz]]zF\ ZKU^VP:9@@6< M)\MMjPPjjPPj]zFFz]]zFFz]'+KXe%267.'.5467>;54&'.#!"3!7'#"3!267>54&'.32654&#"!32654&#"   !  ! ! M5 !   u4%&44&%44&%44%&4    D     M3M3         &44&%44%&44&%44%* P\%#"&54632!54&#!";4632!467<5465<3>7061>7063>781>7>323265.##"&54632/0""00""0 d  32666&30654'>7>7>54&'#.'57332&7546732654'54'>54&'&'.'532>54.#"34>32#".59  N!E9{3 &   -"("  uN$ ($8  &PjjPPjjP@Fz]]zFFz]]zF3Q 1I  CQ7 _()  Z   +6 > #97c 6  9jPPjjPPj]zFFz]]zFFz]H]6>32>7&67>>7.5467.'&'.7.'#"&''74>32#".5 &B )[/ <%%< 0Z) B& !**! &B )[0 <%%< 0Z) B& !**!8aJJa88aJJa8R0Z) B& !**! &B )Z0 <%%< 0Z) B& !**! &B )Z0 <%%< nJa88aJJa88aJ s9ER5.'.+"33!267>7!523!267>74&'.#!*!!532654&#"32654&#" ($  (   Q   , &%%&&%%&    N & K%%&&%%&&&Z ,%!5!#53!!!!52#!"&'.5467>3!̳Mff  ( )TLLL3 s! !  s 1%#3#3#3#53!!2#!"&'.5467>3!3MMMMMMMMf ! ! LM4         %-b<<b3_3  %-''%7<<<<v .. v4_4A'zz'Z ! !ZLZZ^^ 4&+"3%4&+"34&+"3#"$M#"#M$"#333A32?>7>&'.>&'.>7 ;C&.=@;BD?A@A=5343645333659;@=.&C;A@A?DB=463435563335+@U2?>767>4&'."62&'.732>54.#"34>32#".51"F)F91ILI,(q')'(q)'(9PjjPPjjP@Fz]]zFFz]]zFu19F)F"1ILI,')'q((')q(jPPjjPPj]zFFz]]zFFz]!&14&#""!54.'>5%!!!!267>5d3>>2 KP?.EVP +OfM &TH.R *.  F%! 2?+M  !!267>5#'!%!!267>59 M39 aM 6yM !0 !!#!fM KMU  &"!"3!7645! !5_"F" .- f"F""M3M|,,9('8+ +},Y-fg/ 33!2653>'&"#! !,,9( '8+ +,Y+X^!F" .- f"F!""o3Mf )!5!!5!%!"3!267>54&'.#4g͙~ ! !  MMMgLL  4       s%1amy%!#"3!267>=#32654&#"4632#"&3267>7.'.#"32654&'>774632#"&4632#"& ! !  MM- -- -'| $% 2K9'  -BX8)*@_D) - - &8K2Z      -- --   0?E LH: "#Xii"( -- $ (^WE#w s+!27!"'%!"3!267>54&'.#8G&T ! !  j~ iM       )64'#4&#!"#273! !3U|,,7((8, ,|,X,Xff"F"e .- "F"_""M3"275!2654&#!5.%! !""F"e .- "F"_""M3k,,8( (8, ,,X,X#-4&'.#!"3!267>5!!-!"L ! !  L!24s9/      %9f42<>7''.7>6?6&'.'&>7K]MMyK^M+L@3o 3 g,M@/ []]p[]&Z!2"3!26=4&#!"3!26=4&#!"3!26=4&#!0```Z    ""32>54.!"&5463!2#jPPjjPPsF'88''88'PjjPPjjP7('77'(7D !+7%7%% /.=46'577'5'7/ZRD n@o / X`A~heokoR@ $o?0 `4#1&#)&)I  3?3!.5#!5#76&'<7x\x3xFDܺ\x=23?3!.5#!5#76&'B7x[3x/Dxwܻ[x>&7f"&/&4?>328103261810654&/&4?>32#'27>54&/&"#"&'.#",$$T--  $$T-,x-3 3T  "!   T7p$f$T  #f$Up--xp   pT   " T2~2`%!54654654>7>7>7.'.'.54>32%!54&'./7>54&#"0-GU)3U  @8Q26Q7$Bf7(QA)<`UI D @^g74 h54.#"34>32#".5QjjPPjjQ@Gy]]zFFz]]yGjPPjjPPj]zFFz]]zFFz]~2%!54654654>7>7>7.'.'.54>32-GU)3U  @8Q26Q7$Bf7(QA)   6F.   s\4T; )BT+JpP" %8*&7"&/&4?>328103261810654&/&4?>32#,$$T--  $$T-,x-7p$f$T  #f$Up--x32>54.#"QjjPPjjQjPPjjPPj ,Az4&#"326534&#"326"3!5!2654&#!#"&'.'0&5461>32'#".'#"&'.54632>324>32#"&'.'0&5461>32d    _3HH3T|3HH315 .',(  !     15 -'-'.K8M .K8MH4v4H||H44HZ)r - 82GR.BIL 0;34;1u*u .[15>21 .AJ; y)r - 82G t!"2#3!26="&546356@ B^^B  B]]B t ^BB^  ^BB^  5!'7'7!'7!!3#JnnnnJAA7o77on88n7,"32>54..54>3#"&'jPPjjPP\:dL5e:dL5e,PjjPPjjP,e5Kd9,f4Ld: '&"%647''7xDYV@k#2ђx/yYUDF"2 y>B3HT^3#5!!>7!5!54&'.#!"3!267>="32>54.#4632#"&%!.5467! 4$ & &$ $x3[C''C[34ZD&'C[3oNOooONoII,xB m  H !'C[34ZD&&DZ43[C'NooNOoosI   S-@P`"&'#"&'#"&'#"&'#"&';5265353267333265.'#+"&=46;2+"&=46;2!"326732673267326732673267326=.#%$$#$#%$$ #11 $$ D  D  D  D : 4#& %% $& $$ %% %& %#4       w   D  D  D   $33$ Ύ_< ttHDDFAD Z/)"D 2&& *2TLJnL @ P ( , v  0 d 6F8>jb&rHvHs?&      ] 4 !  ?        i 4N (5 0  ~WooCommerceWooCommercehttp://woothemes.comhttp://woothemes.comJames KosterJames Kosterhttp://jameskoster.co.ukhttp://jameskoster.co.ukSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0WooCommerceWooCommerceWooCommerceWooCommerceRegularRegularWooCommerceWooCommerceFont generated by IcoMoon.Font generated by IcoMoon.assets/fonts/star.eot000066600000003214152133032050010657 0ustar00LP7gicomoonRegularVersion 1.0icomoon PFFTMgFkGDEF3 OS/2P9XVcmapT{Zgaspglyfj?4headC 6hhea,$hmtxlocarL$maxpJ!8 nameqTpostMl6g7_< ̈́d&̈́d&.@LfGLfPfEd@S. T8 SsSsLZ '7'7 T WW/?/?7'7' 7yX ll Xy6S nU x99x UWW! ("v    D0   icomoonicomoonRegularRegularFontForge 2.0 : icomoon : 5-4-2013FontForge 2.0 : icomoon : 5-4-2013icomoonicomoonVersion 1.0Version 1.0icomoonicomoon6VuniF000=̈́d&̈́d&assets/fonts/star.svg000066600000002557152133032050010700 0ustar00 This is a custom SVG font generated by IcoMoon. assets/fonts/star.ttf000066600000002750152133032050010671 0ustar00 PFFTMgFkGDEF3 OS/2P9XVcmapT{Zgaspglyfj?4headC 6hhea,$hmtxlocarL$maxpJ!8 nameqTpostMl6g7_< ̈́d&̈́d&.@LfGLfPfEd@S. T8 SsSsLZ '7'7 T WW/?/?7'7' 7yX ll Xy6S nU x99x UWW! ("v    D0   icomoonicomoonRegularRegularFontForge 2.0 : icomoon : 5-4-2013FontForge 2.0 : icomoon : 5-4-2013icomoonicomoonVersion 1.0Version 1.0icomoonicomoon6VuniF000=̈́d&̈́d&assets/fonts/star.woff000066600000002430152133032050011030 0ustar00wOFFOTTO  CFF =QFFTMgFkGDEF  1OS/2,M`R:cmap|JZNrhead.6B hhea$*hmtx4maxp(Pname0qTpost x=PKHTQϝ{nf.\nTSӢnt&d,g&!NV-k%ZB&"B!ƾí|LT*$aFjOm3퓶Y]A[*!`@-΅CQ_I>U &{]k/t\dDz-QP ~L@sk0oՀF;v;TD PP|]~]XS6 9f 7T#M"NLj0fɍœ&A}[A 3qOx*{v4h.A%vů4)PE9Hꪟصi?=I jؠ7{ қU;]fs7б爣-_\՛(6*m*Qܐ+&1xc```d3΃-)j0H2xc`d``b `b`Bf fk6xc`fbØ2H2000123080``| 2 oxc```f`F|  / l d6 xc`d``Og[RLR\4\ xc`d``|? A,r`+Pxu1n@EEAJJcvF =B+9J$@1r!LCJ}|p= O ;w.cSg/əR^۩+wo]Ʃq_u؆ SsdÊJh}rx36%c*В;,B͜$RG[*2-lYő_>9\xc`f }assets/fonts/WooCommerce.svg000066600000143064152133032050012145 0ustar00 { "fontFamily": "WooCommerce", "fontURL": "https://woothemes.com", "designer": "James Koster", "designerURL": "http://jameskoster.co.uk", "license": "SIL OFL", "licenseURL": "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL", "version": "Version 1.0", "majorVersion": 0, "fontId": "WooCommerce", "psName": "WooCommerce", "subFamily": "Regular", "fullName": "WooCommerce", "description": "Font generated by IcoMoon." } assets/fonts/WooCommerce.eot000066600000033710152133032050012131 0ustar0077LPWooCommerceRegularVersion 1.0WooCommerce 0OS/2#`cmapdgaspglyf26/head *e16hhea1T$hmtxY1x locab2maxpu3, nameQ3Lpost6 3 @@@ H =  BG797979D B%%% &/.'.5467>4&54676>76Z'RD        oo,J       D %%% '57Z'RDsn@? ooo,`!2 F #)06  %'7'7''7'7'7'57'57''57FF4z7w@7x6yx4z y7x6^x4y5Bz8x6}||}Z}}}}}}}}CE#AB{ECBAEC&BAIIDDDDHHIIDD?A  $(-27;?FJNRVZ^bfjnrv{*6BNZfr%%7%7%#5353+53#53#53#53#53#53+53+53+53#53#533%#53#53%#53#53%#53#53%#53#53%#53#53%#53#53%#53%#53%#53#53%#53#53%#53#53%#53#53%#53#53%#5#53%#53#%#53#53#53#53#53#53#53+53+53#53#"&54632#"&54632"&54632'"32654&#"&54632'"32654&##"&54632"&54632'"32654&"&54632'"32654&#"&54632j}u/'L**H++G++I++I**H++I++G++I++I**H ,,,,,,,,,,,,$++I++I**H++G++I++I**H++I++I**E#   ,   #G     >>\fde35+$*+&*+$*+%+*$++$*++**D*&-*$++$*+%++%+ GD  DD  8D  D  )8F2>54.#"35".54>32#3?35#%5#76&'.5#jPPjjPPj]zFFz]]zFFz]SZ  Y3WZ   X3@PjjPPjjP@Fz]]zFFz]]zF3`  aM3`  ]O#835#35#735#2>54.#"35".54>32# R3W3 jPPjjPPj]zFFz]]zFFz]3O3M@PjjPPjjP@Fz]]zFFz]]zFD % 7%7%DϹZRBeoko !633535#5##32>54.#"34>32#".5 LLPjjPPjjP@Fz]]zFFz]]zFLL&jPPjjPPj]zFFz]]zFFz]$9%?'#";2>54.#"7".54>32#("3SW2(jPPjjPPj]zFFz]]zFFz]$4YZ3PjjPPjjP@Fz]]zFFz]]zF#8/7326=%4.#"32>'#".54>32͍$4YZfPjjPPjjP@Fz]]zFFz]]zF"3SW jPPjjPPj]zFFz]]zFFz]%:7'54&#"'%32>54.#"34>32#".53$4YZ3PjjPPjjP@Fz]]zFFz]]zF"3SW2(jPPjjPPj]zFFz]]zFFz]$87'32654&+7'"32>54.2#".54>؈"3SW2(jPPjjPPj]zFFz]]zFFz$5XZ33PjjPPjjP@Fz]]zFFz]]zF!%'!32654&#"%!!!267>5MM, -- , sMg -- ,, M  .>&"7'7'2764/'&"2764/&"2764''p' '&C,,D'p''&C,,D    8     9o&' 'p'D,,C&''p'D,,C  9     8   "-9E3#35#3";2654&#3#!!!!267>52#"&546!2#"&546fLLLLffffffM  M4433g f'Y #"&54632!"&54632!"&54632?ZY@?[[(?ZY@?ZZ(?[Z@?ZY'Y@?ZY@?ZY@?ZY@?ZY@?ZY@?Z&32>54&'150.#"10>72 8K++K8 M^6QhhS5_L)G66G)#@:8([;H;;H;['7:?#+8"32>54."&546323"&546323"&54632#jPPjjPP'88''88'88''88'88''88'PjjPPjjP7('77')67('77')67('77')6&"32>54.1.'.5<7>9%jPPjjPP A@PjjPPjjP AՎ "32>54.''7'77jPPjjPPRSSRPjjPPjjP4RRRR'"32>54.!'7!57'5!!5jPPjjPPGiPxQPjjPPjjP7PxxQx54.#7jPPjjPPWW4WPjjPPjjPRzH>05M2#"&'.'.'.5467>7>7>3#3>54&'.#"3264d/0Q""77""Q0/d44d/0Q""77""Q0/d4I "" #"7""Q0/d44d/0Q""77""Q0/d44d/0Q""7c   M3' &$N"M 2G>54&#"3>3253535#%32>54.#"34>32#".5&EH^UR\3>=@@,.LLLLL&PjjPPjjP@Fz]]zFFz]]zF\ ZKU^VP:9@@6< M)\MMjPPjjPPj]zFFz]]zFFz]'+KXe%267.'.5467>;54&'.#!"3!7'#"3!267>54&'.32654&#"!32654&#"   !  ! ! M5 !   u4%&44&%44&%44%&4    D     M3M3         &44&%44%&44&%44%* P\%#"&54632!54&#!";4632!467<5465<3>7061>7063>781>7>323265.##"&54632/0""00""0 d  32666&30654'>7>7>54&'#.'57332&7546732654'54'>54&'&'.'532>54.#"34>32#".59  N!E9{3 &   -"("  uN$ ($8  &PjjPPjjP@Fz]]zFFz]]zF3Q 1I  CQ7 _()  Z   +6 > #97c 6  9jPPjjPPj]zFFz]]zFFz]H]6>32>7&67>>7.5467.'&'.7.'#"&''74>32#".5 &B )[/ <%%< 0Z) B& !**! &B )[0 <%%< 0Z) B& !**!8aJJa88aJJa8R0Z) B& !**! &B )Z0 <%%< 0Z) B& !**! &B )Z0 <%%< nJa88aJJa88aJ s9ER5.'.+"33!267>7!523!267>74&'.#!*!!532654&#"32654&#" ($  (   Q   , &%%&&%%&    N & K%%&&%%&&&Z ,%!5!#53!!!!52#!"&'.5467>3!̳Mff  ( )TLLL3 s! !  s 1%#3#3#3#53!!2#!"&'.5467>3!3MMMMMMMMf ! ! LM4         %-b<<b3_3  %-''%7<<<<v .. v4_4A'zz'Z ! !ZLZZ^^ 4&+"3%4&+"34&+"3#"$M#"#M$"#333A32?>7>&'.>&'.>7 ;C&.=@;BD?A@A=5343645333659;@=.&C;A@A?DB=463435563335+@U2?>767>4&'."62&'.732>54.#"34>32#".51"F)F91ILI,(q')'(q)'(9PjjPPjjP@Fz]]zFFz]]zFu19F)F"1ILI,')'q((')q(jPPjjPPj]zFFz]]zFFz]!&14&#""!54.'>5%!!!!267>5d3>>2 KP?.EVP +OfM &TH.R *.  F%! 2?+M  !!267>5#'!%!!267>59 M39 aM 6yM !0 !!#!fM KMU  &"!"3!7645! !5_"F" .- f"F""M3M|,,9('8+ +},Y-fg/ 33!2653>'&"#! !,,9( '8+ +,Y+X^!F" .- f"F!""o3Mf )!5!!5!%!"3!267>54&'.#4g͙~ ! !  MMMgLL  4       s%1amy%!#"3!267>=#32654&#"4632#"&3267>7.'.#"32654&'>774632#"&4632#"& ! !  MM- -- -'| $% 2K9'  -BX8)*@_D) - - &8K2Z      -- --   0?E LH: "#Xii"( -- $ (^WE#w s+!27!"'%!"3!267>54&'.#8G&T ! !  j~ iM       )64'#4&#!"#273! !3U|,,7((8, ,|,X,Xff"F"e .- "F"_""M3"275!2654&#!5.%! !""F"e .- "F"_""M3k,,8( (8, ,,X,X#-4&'.#!"3!267>5!!-!"L ! !  L!24s9/      %9f42<>7''.7>6?6&'.'&>7K]MMyK^M+L@3o 3 g,M@/ []]p[]&Z!2"3!26=4&#!"3!26=4&#!"3!26=4&#!0```Z    ""32>54.!"&5463!2#jPPjjPPsF'88''88'PjjPPjjP7('77'(7D !+7%7%% /.=46'577'5'7/ZRD n@o / X`A~heokoR@ $o?0 `4#1&#)&)I  3?3!.5#!5#76&'<7x\x3xFDܺ\x=23?3!.5#!5#76&'B7x[3x/Dxwܻ[x>&7f"&/&4?>328103261810654&/&4?>32#'27>54&/&"#"&'.#",$$T--  $$T-,x-3 3T  "!   T7p$f$T  #f$Up--xp   pT   " T2~2`%!54654654>7>7>7.'.'.54>32%!54&'./7>54&#"0-GU)3U  @8Q26Q7$Bf7(QA)<`UI D @^g74 h54.#"34>32#".5QjjPPjjQ@Gy]]zFFz]]yGjPPjjPPj]zFFz]]zFFz]~2%!54654654>7>7>7.'.'.54>32-GU)3U  @8Q26Q7$Bf7(QA)   6F.   s\4T; )BT+JpP" %8*&7"&/&4?>328103261810654&/&4?>32#,$$T--  $$T-,x-7p$f$T  #f$Up--x32>54.#"QjjPPjjQjPPjjPPj ,Az4&#"326534&#"326"3!5!2654&#!#"&'.'0&5461>32'#".'#"&'.54632>324>32#"&'.'0&5461>32d    _3HH3T|3HH315 .',(  !     15 -'-'.K8M .K8MH4v4H||H44HZ)r - 82GR.BIL 0;34;1u*u .[15>21 .AJ; y)r - 82G t!"2#3!26="&546356@ B^^B  B]]B t ^BB^  ^BB^  5!'7'7!'7!!3#JnnnnJAA7o77on88n7,"32>54..54>3#"&'jPPjjPP\:dL5e:dL5e,PjjPPjjP,e5Kd9,f4Ld: '&"%647''7xDYV@k#2ђx/yYUDF"2 y>B3HT^3#5!!>7!5!54&'.#!"3!267>="32>54.#4632#"&%!.5467! 4$ & &$ $x3[C''C[34ZD&'C[3oNOooONoII,xB m  H !'C[34ZD&&DZ43[C'NooNOoosI   S-@P`"&'#"&'#"&'#"&'#"&';5265353267333265.'#+"&=46;2+"&=46;2!"326732673267326732673267326=.#%$$#$#%$$ #11 $$ D  D  D  D : 4#& %% $& $$ %% %& %#4       w   D  D  D   $33$ Ύ_< ttHDDFAD Z/)"D 2&& *2TLJnL @ P ( , v  0 d 6F8>jb&rHvHs?&      ] 4 !  ?        i 4N (5 0  ~WooCommerceWooCommercehttp://woothemes.comhttp://woothemes.comJames KosterJames Kosterhttp://jameskoster.co.ukhttp://jameskoster.co.ukSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0WooCommerceWooCommerceWooCommerceWooCommerceRegularRegularWooCommerceWooCommerceFont generated by IcoMoon.Font generated by IcoMoon.assets/fonts/WooCommerce.woff000066600000033540152133032050012304 0ustar00wOFF7` 7OS/2``#cmaphddgaspglyf//26head1h66 *ehhea1$$hmtx1  Yloca2bmaxp3x uname3Qpost7@ 3 @@@ H =  BG797979D B%%% &/.'.5467>4&54676>76Z'RD        oo,J       D %%% '57Z'RDsn@? ooo,`!2 F #)06  %'7'7''7'7'7'57'57''57FF4z7w@7x6yx4z y7x6^x4y5Bz8x6}||}Z}}}}}}}}CE#AB{ECBAEC&BAIIDDDDHHIIDD?A  $(-27;?FJNRVZ^bfjnrv{*6BNZfr%%7%7%#5353+53#53#53#53#53#53+53+53+53#53#533%#53#53%#53#53%#53#53%#53#53%#53#53%#53#53%#53%#53%#53#53%#53#53%#53#53%#53#53%#53#53%#5#53%#53#%#53#53#53#53#53#53#53+53+53#53#"&54632#"&54632"&54632'"32654&#"&54632'"32654&##"&54632"&54632'"32654&"&54632'"32654&#"&54632j}u/'L**H++G++I++I**H++I++G++I++I**H ,,,,,,,,,,,,$++I++I**H++G++I++I**H++I++I**E#   ,   #G     >>\fde35+$*+&*+$*+%+*$++$*++**D*&-*$++$*+%++%+ GD  DD  8D  D  )8F2>54.#"35".54>32#3?35#%5#76&'.5#jPPjjPPj]zFFz]]zFFz]SZ  Y3WZ   X3@PjjPPjjP@Fz]]zFFz]]zF3`  aM3`  ]O#835#35#735#2>54.#"35".54>32# R3W3 jPPjjPPj]zFFz]]zFFz]3O3M@PjjPPjjP@Fz]]zFFz]]zFD % 7%7%DϹZRBeoko !633535#5##32>54.#"34>32#".5 LLPjjPPjjP@Fz]]zFFz]]zFLL&jPPjjPPj]zFFz]]zFFz]$9%?'#";2>54.#"7".54>32#("3SW2(jPPjjPPj]zFFz]]zFFz]$4YZ3PjjPPjjP@Fz]]zFFz]]zF#8/7326=%4.#"32>'#".54>32͍$4YZfPjjPPjjP@Fz]]zFFz]]zF"3SW jPPjjPPj]zFFz]]zFFz]%:7'54&#"'%32>54.#"34>32#".53$4YZ3PjjPPjjP@Fz]]zFFz]]zF"3SW2(jPPjjPPj]zFFz]]zFFz]$87'32654&+7'"32>54.2#".54>؈"3SW2(jPPjjPPj]zFFz]]zFFz$5XZ33PjjPPjjP@Fz]]zFFz]]zF!%'!32654&#"%!!!267>5MM, -- , sMg -- ,, M  .>&"7'7'2764/'&"2764/&"2764''p' '&C,,D'p''&C,,D    8     9o&' 'p'D,,C&''p'D,,C  9     8   "-9E3#35#3";2654&#3#!!!!267>52#"&546!2#"&546fLLLLffffffM  M4433g f'Y #"&54632!"&54632!"&54632?ZY@?[[(?ZY@?ZZ(?[Z@?ZY'Y@?ZY@?ZY@?ZY@?ZY@?ZY@?Z&32>54&'150.#"10>72 8K++K8 M^6QhhS5_L)G66G)#@:8([;H;;H;['7:?#+8"32>54."&546323"&546323"&54632#jPPjjPP'88''88'88''88'88''88'PjjPPjjP7('77')67('77')67('77')6&"32>54.1.'.5<7>9%jPPjjPP A@PjjPPjjP AՎ "32>54.''7'77jPPjjPPRSSRPjjPPjjP4RRRR'"32>54.!'7!57'5!!5jPPjjPPGiPxQPjjPPjjP7PxxQx54.#7jPPjjPPWW4WPjjPPjjPRzH>05M2#"&'.'.'.5467>7>7>3#3>54&'.#"3264d/0Q""77""Q0/d44d/0Q""77""Q0/d4I "" #"7""Q0/d44d/0Q""77""Q0/d44d/0Q""7c   M3' &$N"M 2G>54&#"3>3253535#%32>54.#"34>32#".5&EH^UR\3>=@@,.LLLLL&PjjPPjjP@Fz]]zFFz]]zF\ ZKU^VP:9@@6< M)\MMjPPjjPPj]zFFz]]zFFz]'+KXe%267.'.5467>;54&'.#!"3!7'#"3!267>54&'.32654&#"!32654&#"   !  ! ! M5 !   u4%&44&%44&%44%&4    D     M3M3         &44&%44%&44&%44%* P\%#"&54632!54&#!";4632!467<5465<3>7061>7063>781>7>323265.##"&54632/0""00""0 d  32666&30654'>7>7>54&'#.'57332&7546732654'54'>54&'&'.'532>54.#"34>32#".59  N!E9{3 &   -"("  uN$ ($8  &PjjPPjjP@Fz]]zFFz]]zF3Q 1I  CQ7 _()  Z   +6 > #97c 6  9jPPjjPPj]zFFz]]zFFz]H]6>32>7&67>>7.5467.'&'.7.'#"&''74>32#".5 &B )[/ <%%< 0Z) B& !**! &B )[0 <%%< 0Z) B& !**!8aJJa88aJJa8R0Z) B& !**! &B )Z0 <%%< 0Z) B& !**! &B )Z0 <%%< nJa88aJJa88aJ s9ER5.'.+"33!267>7!523!267>74&'.#!*!!532654&#"32654&#" ($  (   Q   , &%%&&%%&    N & K%%&&%%&&&Z ,%!5!#53!!!!52#!"&'.5467>3!̳Mff  ( )TLLL3 s! !  s 1%#3#3#3#53!!2#!"&'.5467>3!3MMMMMMMMf ! ! LM4         %-b<<b3_3  %-''%7<<<<v .. v4_4A'zz'Z ! !ZLZZ^^ 4&+"3%4&+"34&+"3#"$M#"#M$"#333A32?>7>&'.>&'.>7 ;C&.=@;BD?A@A=5343645333659;@=.&C;A@A?DB=463435563335+@U2?>767>4&'."62&'.732>54.#"34>32#".51"F)F91ILI,(q')'(q)'(9PjjPPjjP@Fz]]zFFz]]zFu19F)F"1ILI,')'q((')q(jPPjjPPj]zFFz]]zFFz]!&14&#""!54.'>5%!!!!267>5d3>>2 KP?.EVP +OfM &TH.R *.  F%! 2?+M  !!267>5#'!%!!267>59 M39 aM 6yM !0 !!#!fM KMU  &"!"3!7645! !5_"F" .- f"F""M3M|,,9('8+ +},Y-fg/ 33!2653>'&"#! !,,9( '8+ +,Y+X^!F" .- f"F!""o3Mf )!5!!5!%!"3!267>54&'.#4g͙~ ! !  MMMgLL  4       s%1amy%!#"3!267>=#32654&#"4632#"&3267>7.'.#"32654&'>774632#"&4632#"& ! !  MM- -- -'| $% 2K9'  -BX8)*@_D) - - &8K2Z      -- --   0?E LH: "#Xii"( -- $ (^WE#w s+!27!"'%!"3!267>54&'.#8G&T ! !  j~ iM       )64'#4&#!"#273! !3U|,,7((8, ,|,X,Xff"F"e .- "F"_""M3"275!2654&#!5.%! !""F"e .- "F"_""M3k,,8( (8, ,,X,X#-4&'.#!"3!267>5!!-!"L ! !  L!24s9/      %9f42<>7''.7>6?6&'.'&>7K]MMyK^M+L@3o 3 g,M@/ []]p[]&Z!2"3!26=4&#!"3!26=4&#!"3!26=4&#!0```Z    ""32>54.!"&5463!2#jPPjjPPsF'88''88'PjjPPjjP7('77'(7D !+7%7%% /.=46'577'5'7/ZRD n@o / X`A~heokoR@ $o?0 `4#1&#)&)I  3?3!.5#!5#76&'<7x\x3xFDܺ\x=23?3!.5#!5#76&'B7x[3x/Dxwܻ[x>&7f"&/&4?>328103261810654&/&4?>32#'27>54&/&"#"&'.#",$$T--  $$T-,x-3 3T  "!   T7p$f$T  #f$Up--xp   pT   " T2~2`%!54654654>7>7>7.'.'.54>32%!54&'./7>54&#"0-GU)3U  @8Q26Q7$Bf7(QA)<`UI D @^g74 h54.#"34>32#".5QjjPPjjQ@Gy]]zFFz]]yGjPPjjPPj]zFFz]]zFFz]~2%!54654654>7>7>7.'.'.54>32-GU)3U  @8Q26Q7$Bf7(QA)   6F.   s\4T; )BT+JpP" %8*&7"&/&4?>328103261810654&/&4?>32#,$$T--  $$T-,x-7p$f$T  #f$Up--x32>54.#"QjjPPjjQjPPjjPPj ,Az4&#"326534&#"326"3!5!2654&#!#"&'.'0&5461>32'#".'#"&'.54632>324>32#"&'.'0&5461>32d    _3HH3T|3HH315 .',(  !     15 -'-'.K8M .K8MH4v4H||H44HZ)r - 82GR.BIL 0;34;1u*u .[15>21 .AJ; y)r - 82G t!"2#3!26="&546356@ B^^B  B]]B t ^BB^  ^BB^  5!'7'7!'7!!3#JnnnnJAA7o77on88n7,"32>54..54>3#"&'jPPjjPP\:dL5e:dL5e,PjjPPjjP,e5Kd9,f4Ld: '&"%647''7xDYV@k#2ђx/yYUDF"2 y>B3HT^3#5!!>7!5!54&'.#!"3!267>="32>54.#4632#"&%!.5467! 4$ & &$ $x3[C''C[34ZD&'C[3oNOooONoII,xB m  H !'C[34ZD&&DZ43[C'NooNOoosI   S-@P`"&'#"&'#"&'#"&'#"&';5265353267333265.'#+"&=46;2+"&=46;2!"326732673267326732673267326=.#%$$#$#%$$ #11 $$ D  D  D  D : 4#& %% $& $$ %% %& %#4       w   D  D  D   $33$ Ύ_< ttHDDFAD Z/)"D 2&& *2TLJnL @ P ( , v  0 d 6F8>jb&rHvHs?&      ] 4 !  ?        i 4N (5 0  ~WooCommerceWooCommercehttp://woothemes.comhttp://woothemes.comJames KosterJames Kosterhttp://jameskoster.co.ukhttp://jameskoster.co.ukSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0WooCommerceWooCommerceWooCommerceWooCommerceRegularRegularWooCommerceWooCommerceFont generated by IcoMoon.Font generated by IcoMoon.assets/css/menu.scss000066600000002527152133032050010503 0ustar00/** * menu.scss * Styles applied to dashboard menu items added via WooCommerce. * Adds icons to top level menu items, etc. */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; @import "fonts"; /** * Styling begins */ #adminmenu #toplevel_page_woocommerce .menu-icon-generic div.wp-menu-image:before { font-family: 'WooCommerce' !important; content: "\e03d"; } #adminmenu #menu-posts-product .menu-icon-post div.wp-menu-image:before, #adminmenu #menu-posts-product .menu-icon-product div.wp-menu-image:before { font-family: 'WooCommerce' !important; content: "\e006"; } #adminmenu #toplevel_page_wc-reports .menu-icon-generic div.wp-menu-image:before { font-family: 'WooCommerce' !important; content: "\e023"; font-size: 1.3em !important; } span.mce_woocommerce_shortcodes_button { background-image: none !important; @include ir(); &:before { @include icon( "\e01d" ); font-size: .9em; line-height: 1.2; } } .wc_plugin_upgrade_notice { font-weight: normal; color: #fff; background: #d54d21; padding: 1em; margin: 9px 0; a { color: #fff; text-decoration: underline; } &:before { content: "\f348"; display: inline-block; font: 400 18px/1 dashicons; speak: none; margin: 0 8px 0 -2px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; vertical-align: top; } } assets/css/auth.css000066600000004420152133032050010307 0ustar00body{background:#f1f1f1;box-shadow:none;margin:100px auto 24px;padding:0}#wc-logo{border:0;margin:0 0 24px;padding:0;text-align:center}#wc-logo img{max-width:50%}.wc-auth-content{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13);overflow:hidden;padding:24px 24px 0;zoom:1}.wc-auth-content h1,.wc-auth-content h2,.wc-auth-content h3,.wc-auth-content table{border:0;clear:none;color:#666;margin:0 0 24px;padding:0}.wc-auth-content p,.wc-auth-content ul{color:#666;font-size:1em;line-height:1.75em;margin:0 0 24px}.wc-auth-content p{padding:0}.wc-auth-content a{color:#A16696}.wc-auth-content a:focus,.wc-auth-content a:hover{color:#111}.wc-auth-content .wc-auth-login label{color:#999;display:block;margin-bottom:.5em}.wc-auth-content .wc-auth-login input{box-sizing:border-box;font-size:1.3em;padding:.5em;width:100%}.wc-auth-content .wc-auth-login .wc-auth-actions{padding:0}.wc-auth-content .wc-auth-login .wc-auth-actions .wc-auth-login-button{float:none;width:100%}.wc-auth-permissions{list-style:disc inside;padding:0}.wc-auth-permissions li{font-size:1em}.wc-auth-logged-in-as{background:#f5f5f5;border-bottom:2px solid #eee;line-height:70px;margin:0 0 24px;padding:0 1em 0 0}.wc-auth-logged-in-as p{margin:0;line-height:70px}.wc-auth-logged-in-as img{float:left;height:70px;margin:0 1em 0 0}.wc-auth-logged-in-as .wc-auth-logout{float:right}.wc-auth .wc-auth-actions{overflow:hidden;padding-left:24px}.wc-auth .wc-auth-actions .button{background:#f7f7f7;border:1px solid #d7d7d7;box-sizing:border-box;color:#777;float:right;font-size:1.25em;height:auto;line-height:1em;padding:1em 2em;text-align:center;width:50%}.wc-auth .wc-auth-actions .button:focus,.wc-auth .wc-auth-actions .button:hover{background:#fcfcfc}.wc-auth .wc-auth-actions .button-primary{background:#ad6ea1;border-color:#a16696;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 rgba(0,0,0,.15);color:#fff;float:right;opacity:1;text-shadow:0 -1px 1px #8a4f7f,1px 0 1px #8a4f7f,0 1px 1px #8a4f7f,-1px 0 1px #8a4f7f}.wc-auth .wc-auth-actions .button-primary:focus,.wc-auth .wc-auth-actions .button-primary:hover{background:#B472A8;color:#fff}.wc-auth .wc-auth-actions .wc-auth-approve{float:right}.wc-auth .wc-auth-actions .wc-auth-deny{float:left;margin-left:-24px}assets/css/admin.scss000066600000232067152133032050010633 0ustar00 /** * admin.scss * General WooCommerce admin styles. Settings, product data tabs, reports, etc. */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; @import "animation"; @import "select2"; @import "fonts"; /** * Styling begins */ .blockUI.blockOverlay { @include loader(); } .wc_addons_wrap { .addons-featured { max-width: 1140px; margin: -1%; } .addons-banner-block-item-icon, .addons-column-block-item-icon { align-items: center; display: flex; justify-content: center; } .addons-banner-block { background: #ffffff; box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); margin: 2% 1% 0; max-width: 1140px; padding: 20px; } .addons-banner-block img { height: 62px; } .addons-banner-block p { margin: 0 0 20px; } .addons-banner-block-items { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; margin: 0 -10px 0 -10px; } .addons-banner-block-item { border: 1px solid #e6e6e6; border-radius: 3px; flex: 1 1 200px; margin: 10px; max-width: 350px; min-width: 200px; width: 30%; } .addons-banner-block-item-icon { background: #f7f7f7; height: 143px; } .addons-banner-block-item-content { display: flex; flex-direction: column; height: 184px; justify-content: space-between; padding: 24px; } .addons-banner-block-item-content h3 { margin-top: 0; } .addons-banner-block-item-content p { margin: 0 0 auto; } .addons-column-section { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; } .addons-column { flex: 1 1 200px; margin: 0 1%; width: 49.5%; } .addons-small-light-block, .addons-small-dark-block, .addons-column-block { box-sizing: border-box; box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); margin: 4% 0 0; padding: 20px; } .addons-column-block img { max-height: 50px; max-width: 50px; } .addons-small-light-block, .addons-column-block { background: #ffffff; } .addons-column-block-left { float: left; } .addons-column-block-right { float: right; } .addons-column-block-item { display: flex; border-top: 2px solid #f9f9f9; flex-direction: row; flex-wrap: wrap; justify-content: space-between; margin: 0 -20px; padding: 20px; } .addons-column-block-item-icon { background: #f7f7f7; border: 1px solid #e6e6e6; height: 100px; margin: 0 10px 10px 0; width: 100px; } .addons-column-block-item-content { display: flex; flex: 1 1 200px; flex-wrap: wrap; height: 20%; justify-content: space-between; min-width: 200px; } .addons-column-block-item-content h2 { float: left; margin-top: 8px; } .addons-column-block-item-content a { float: right; } .addons-column-block-item-content p { float: left; } .addons-small-dark-block { background-color: #54687d; text-align: center; } .addons-small-dark-items { display: flex; flex-wrap: wrap; justify-content: space-around; } .addons-small-dark-item { margin: 0 0 20px; } .addons-small-dark-block h1 { color: #ffffff; } .addons-small-dark-block p { color: #fafafa; } .addons-small-dark-item-icon img { height: 30px; } .addons-small-dark-item a { margin: 28px auto 0; } .addons-small-light-block { display: flex; flex-wrap: wrap; } .addons-small-light-block h1 { margin-top: -12px; } .addons-small-light-block p { margin-top: 0; } .addons-small-light-block img { height: 225px; margin: 0 0 0 -20px; } .addons-small-light-block-content { display: flex; flex: 1 1 100px; flex-direction: column; justify-content: space-around; } .addons-small-light-block-buttons { display: flex; justify-content: space-between; } .addons-small-light-block-content a { width: 48%; } .addons-button { border-radius: 3px; cursor: pointer; display: block; height: 37px; line-height: 37px; text-align: center; text-decoration: none; width: 124px; } .addons-button-solid { background-color: #955a89; color: #ffffff; } .addons-button-solid:hover { color: #ffffff; opacity: 0.8; } .addons-button-outline-green { border: 1px solid #73ae39; color: #73ae39; } .addons-button-outline-green:hover { color: #73ae39; opacity: 0.8; } .addons-button-outline-white { border: 1px solid #ffffff; color: #ffffff; } .addons-button-outline-white:hover { color: #ffffff; opacity: 0.8; } .addons-button-installed { background: #e6e6e6; color: #3c3c3c; } .addons-button-installed:hover { color: #3c3c3c; opacity: 0.8; } @media only screen and (max-width : 400px) { .addons-featured { margin: -1% -5%; } .addons-button { width: 100%; } .addons-small-dark-item { width: 100%; } .addons-column-block-item-icon { background: none; border: none; height: 75px; margin: 0 10px 10px 0; width: 75px; } } .products { overflow: hidden; li { float: left; margin: 0 1em 1em 0 !important; padding: 0; vertical-align: top; width: 300px; a { text-decoration: none; color: inherit; border: 1px solid #ddd; display: block; min-height: 220px; overflow: hidden; background: #f5f5f5; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -1px 0 rgba(0,0,0,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -1px 0 rgba(0,0,0,0.1); img { max-width: 258px; max-height: 24px; padding: 17px 20px; display: block; margin: 0; background: #fff; border-right: 260px solid #fff; } img.extension-thumb+h3 { display: none; } .price { display: none; } h2, h3 { margin: 0 !important; padding: 20px !important; background: #fff; } p { padding: 20px !important; margin: 0 !important; border-top: 1px solid #f1f1f1; } &:hover, &:focus { background-color: #fff; } } } } .storefront { background: url(../images/storefront-bg.jpg) bottom right #f6f6f6; border: 1px solid #ddd; padding: 20px; overflow: hidden; zoom: 1; img { width: 278px; height: auto; float: left; margin: 0 20px 0 0; box-shadow: 0 1px 6px rgba(0,0,0,0.1); } p { max-width: 750px; } } } .woocommerce-message, .woocommerce-BlankState { a.button-primary, button.button-primary { background: #bb77ae; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; color: #fff; text-shadow: 0px -1px 1px #A36597, 1px 0px 1px #A36597, 0px 1px 1px #A36597, -1px 0px 1px #A36597; &:hover, &:focus, &:active { background: #A36597; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; } } } .woocommerce-message { position: relative; border-left-color: #cc99c2 !important; overflow: hidden; a.skip, a.docs { text-decoration: none !important; } a.woocommerce-message-close { position: absolute; top: 10px; right: 10px; padding: 10px 15px 10px 21px; font-size: 13px; line-height: 1.23076923; text-decoration: none; &:before { position: absolute; top: 8px; left: 0; -webkit-transition: all .1s ease-in-out; transition: all .1s ease-in-out; } } .twitter-share-button { margin-top: -3px; margin-left: 3px; vertical-align: middle; } } #variable_product_options #message, #variable_product_options .notice { margin: 10px; } .clear { clear: both; } .wrap.woocommerce div.updated, .wrap.woocommerce div.error { margin-top: 10px; } mark.amount { background: transparent none; color: inherit; } .postbox, .woocommerce { input: invalid { border: 1px solid #cc010b; background: #ffebe8; } } .simplify-commerce-banner { overflow: hidden; img { float: right; padding: 15px 0; margin-left: 1em; width: 200px; } } /** * Help Tip */ .woocommerce-help-tip { color: #666; display: inline-block; font-size: 1.1em; font-style: normal; height: 16px; line-height: 16px; position: relative; vertical-align: middle; width: 16px; &:after { @include icon_dashicons( "\f223" ); cursor: help; } } h2 .woocommerce-help-tip { margin-top: -5px; margin-left: .25em; } table.wc_status_table { margin-bottom: 1em; h2 { font-size: 14px; margin: 0; } tr { &:nth-child(2n) { th, td { background: #fcfcfc; } } } th { font-weight: 700; padding: 9px; } td:first-child { width: 33%; } td.help { width: 1em; } td { padding: 9px; font-size: 1.1em; mark { background: transparent none; } mark.yes { color: $green; } mark.no { color: #999; } mark.error { color: $red; } ul { margin: 0; } } .help_tip { cursor: help; } } #debug-report { display: none; margin: 10px 0; padding: 0; position: relative; textarea { font-family: monospace; width: 100%; margin: 0; height: 300px; padding: 20px; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; resize: none; font-size: 12px; line-height: 20px; outline: 0; } } #log-viewer-select { padding: 10px 0 8px; line-height: 180%; } #log-viewer { textarea { width: 100%; resize: vertical; } } .inline-edit-product.quick-edit-row { .inline-edit-col-center, .inline-edit-col-right { float: right !important; } } #woocommerce-fields.inline-edit-col { clear: left; label.featured, label.manage_stock { margin-left: 10px; } .dimensions { div { display: block; margin: .2em 0; span.title { display: block; float: left; width: 5em; } span.input-text-wrap { display: block; margin-left: 5em; } } } .text { box-sizing: border-box; width: 99%; float: left; margin: 1px 1% 1px 1px; } .length, .width, .height { width: 32.33%; } .height { margin-right: 0; } } #woocommerce-fields-bulk.inline-edit-col { label { clear: left; } .inline-edit-group { label { clear: none; width: 49%; margin: .2em 0; } &.dimensions { label { width: 75%; max-width: 75%; } } } .regular_price, .sale_price, .weight, .stock, .length { box-sizing: border-box; width: 100%; margin-left: 4.4em; } .length, .width, .height { box-sizing: border-box; width: 25%; } } .column-coupon_code { line-height: 2.25em; } ul.wc_coupon_list, .column-coupon_code { margin: 0; overflow: hidden; zoom: 1; clear: both; } ul.wc_coupon_list { li { margin: 0; &.code { display: inline-block; &:after { content: ", "; } &:last-of-type { &:after { display: none; } } .tips { cursor: pointer; } } } } ul.wc_coupon_list_block { margin: 0; padding-bottom: 2px; li { border-top: 1px solid #fff; border-bottom: 1px solid #ccc; line-height: 2.5em; margin: 0; padding: .5em 0; } li:first-child { border-top: 0; padding-top: 0; } li:last-child { border-bottom: 0; padding-bottom: 0; } } .button.wc-reload { @include ir(); padding: 0; height: 28px; width: 28px !important; display: inline-block; &:after { @include icon_dashicons( "\f345" ); line-height: 28px; } } .tablenav { .actions { overflow: visible; } .select2-container { float: left; max-width: 200px; font-size: 14px; vertical-align: middle; margin: 1px 6px 1px 1px; } } #woocommerce-order-data { .hndle, .handlediv { display: none; } .inside { display: block !important; } } #order_data { padding: 23px 24px 12px 24px; h2 { margin: 0; font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif; font-size: 21px; font-weight: normal; line-height: 1.2; text-shadow: 1px 1px 1px white; padding: 0; } h3 { font-size: 14px; } h3, h4 { color: #333; margin: 1.33em 0 0; } p { color: #777; } p.order_number { margin: 0; font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif; font-weight: normal; line-height: 1.6em; font-size: 16px; } .order_data_column_container { clear: both; } .order_data_column { width: 32%; padding: 0 2% 0 0; float: left; &:last-child { padding-right: 0; } p { padding: 0 !important; } .address { strong { display: block; } } .form-field { float: left; width: 48%; padding: 0; margin: 9px 0 0 0; label { display: block; padding: 0 0 3px; } input, textarea { width: 100%; } select { width: 100%; } .select2-container { width: 100% !important; } .date-picker { width: 50%; } .hour, .minute { width: 3.5em; } small { display: block; margin: 5px 0 0 0; color: #999; } } .form-field.last { float: right; } .form-field-wide { width: 100%; clear: both; input, textarea, select, .wc-enhanced-select, .wc-customer-search { width: 100%; } } p.none_set { color: #999; } ._billing_first_name_field, ._billing_address_1_field, ._billing_city_field, ._billing_country_field, ._billing_email_field, ._shipping_first_name_field, ._shipping_address_1_field, ._shipping_city_field, ._shipping_country_field { float: left; } ._billing_last_name_field, ._billing_address_2_field, ._billing_postcode_field, ._billing_state_field, ._billing_phone_field, ._shipping_last_name_field, ._shipping_address_2_field, ._shipping_postcode_field, ._shipping_state_field { float: right; } ._billing_company_field, ._shipping_company_field, ._transaction_id_field { clear: both; width: 100%; } ._billing_email_field { clear: left } div.edit_address { display: none; zoom: 1; padding-right: 1px; } .wc-customer-user, .wc-order-status { label a { float: right; } } a.edit_address, .billing-same-as-shipping, .load_customer_shipping, .load_customer_billing { width: 14px; height: 0; padding: 14px 0 0 0; margin: 0 0 0 6px; overflow: hidden; position: relative; color: #999; border: 0; float: right; &:hover, &:focus { color: #000; } &:after { font-family: 'WooCommerce'; position: absolute; top: 0; left: 0; text-align: center; vertical-align: top; line-height: 14px; font-size: 14px; font-weight: 400; -webkit-font-smoothing: antialiased; } } .billing-same-as-shipping { &:after { content: "\e008"; } } .load_customer_shipping { &:after { content: "\e03a"; } } .load_customer_billing { &:after { content: "\e03a"; } } a.edit_address { &:after { font-family: "Dashicons"; content: "\f464"; } } } } .order_actions { margin: 0; overflow: hidden; zoom: 1; li { border-top: 1px solid #fff; border-bottom: 1px solid #ddd; padding: 6px 0; margin: 0; line-height: 1.6em; float: left; width: 50%; text-align: center; a { float: none; text-align: center; text-decoration: underline; } &.wide { width: auto; float: none; clear: both; padding: 6px; text-align: left; overflow: hidden; } #delete-action { line-height: 25px; vertical-align: middle; text-align: left; float: left; } .save_order { float: right; } &#actions { overflow: hidden; .button { width: 24px; box-sizing: border-box; float: right; } select { width: 225px; box-sizing: border-box; float: left; } } } } #woocommerce-order-items { .inside { margin: 0; padding: 0; background: #fefefe; } .wc-order-data-row { border-bottom: 1px solid #DFDFDF; background: #fff; padding: 1.5em 2em; background: #f8f8f8; @include clearfix(); line-height: 2em; text-align: right; p { margin: 0; line-height: 2em; } .wc-used-coupons { text-align: left; .tips { display: inline-block; } } } .wc-order-add-item { background: #fff; vertical-align: top; border-top: none; .add_item_id, .select2-container { vertical-align: top; .search-field input { min-width: 100px; } } .select2-container { width: 400px !important; text-align: left; } .cancel-action, .save-action, .calculate-action { float: left; margin-right: 2px; } } .wc-used-coupons { float: left; width: 50%; } .wc-order-totals { float: right; width: 50%; margin: 0; padding: 0; text-align: right; .amount { font-weight: 700; } .label { vertical-align: top; } .total { font-size: 1em !important; width: 10em; margin: 0 0 0 .5em; box-sizing: border-box; input[type="text"] { width: 96%; float: right; } } .refunded-total { color: $red; } } .refund-actions { margin-top: 5px; padding-top: 12px; border-top: 1px solid #DFDFDF; .button { float: right; margin-left: 4px; } .cancel-action { float: left; margin-left: 0; } } .wc-order-item-bulk-edit { .cancel-action { float: left; margin-left: 0; } } .add_meta { margin-left: 0 !important; } h3 small { color: #999; } .amount { white-space: nowrap; } .add-items { .description { margin-right: 10px; } .button { float: left; margin-right: .25em; } .button-primary { float: none; margin-right: 0; } } } #woocommerce-order-items { .inside { display: block !important; } .hndle, .handlediv { display: none; } .woocommerce_order_items_wrapper { margin: 0; table.woocommerce_order_items { width: 100%; background: #fff; thead { th { text-align: left; padding: 1em; font-weight: normal; color: #999; background: #f8f8f8; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; &.sortable { cursor: pointer; } &:last-child { padding-right: 2em; } &:first-child { padding-left: 2em; } .wc-arrow { float: right; position: relative; margin-right: -1em; } } } tbody th, td { padding: 1.5em 1em 1em; text-align: left; line-height: 1.5em; vertical-align: top; border-bottom: 1px solid #f8f8f8; textarea { width: 100%; } select { width: 50%; } input, textarea { font-size: 14px; padding: 4px; color: #555; } &:last-child { padding-right: 2em; } &:first-child { padding-left: 2em; } } tbody tr { td { cursor: pointer; } &.selected { background: #F5EBF3; td { border-color: #E6CCE1; opacity: 0.8; } } } tbody tr:last-child td { border-bottom: 1px solid #dfdfdf; } tbody tr:first-child td { border-top: 8px solid #f8f8f8; } tbody#order_line_items tr:first-child td { border-top: none; } td.thumb { text-align: left; width: 38px; padding-bottom: 1.5em; .wc-order-item-thumbnail { width: 38px; height: 38px; border: 2px solid #e8e8e8; background: #f8f8f8; color: #ccc; position: relative; font-size: 21px; display: block; text-align: center; &:before { @include icon_dashicons( "\f128" ); width: 38px; line-height: 38px; display: block; } img { width: 100%; height: 100%; margin: 0; padding: 0; position: relative; } } } td.name { .wc-order-item-sku, .wc-order-item-variation { display: block; margin-top: .5em; font-size: 0.92em !important; color: #888; } } .item { min-width: 200px; } .center, .variation-id { text-align: center; } .cost, .tax, .quantity, .line_cost, .line_tax, .tax_class, .item_cost { text-align: right; label { white-space: nowrap; color: #999; font-size: 0.833em; input { display: inline; } } input { width: 70px; vertical-align: middle; text-align: right; } select { width: 85px; height: 26px; vertical-align: middle; font-size: 1em; } .split-input { display: inline-block; background: #fff; border: 1px solid #ddd; box-shadow: inset 0 1px 2px rgba(0,0,0,.07); margin: 1px 0; min-width: 80px; overflow: hidden; line-height: 1em; text-align: right; div.input { width: 100%; box-sizing: border-box; label { font-size: 0.75em; padding: 4px 6px 0; color: #555; display: block; } input { width: 100%; box-sizing: border-box; border: 0; box-shadow: none; margin: 0; padding: 0 6px 4px; color: #555; background: transparent; &::-webkit-input-placeholder { color: #ddd; } } } div.input:first-child { border-bottom: 1px dashed #ddd; background: #fff; label { color: #ccc; } input { color: #ccc; } } } .view { white-space: nowrap } .edit { text-align: left; } small.times, del, .wc-order-item-taxes, .wc-order-item-discount, .wc-order-item-refund-fields { font-size: 0.92em !important; color: #888; } .wc-order-item-taxes, .wc-order-item-refund-fields { margin: 0; label { display: block; } } .wc-order-item-discount { display: block; margin-top: .5em; } small.times { margin-right: .25em; } } .quantity { text-align: center; input { text-align: center; width: 50px; } } span.subtotal { opacity: 0.5; } td.tax_class, th.tax_class { text-align: left; } .calculated { border-color: #ae8ca2; border-style: dotted; } table.meta { width: 100%; } table.meta, table.display_meta { margin: .5em 0 0 0; font-size: 0.92em !important; color: #888; tr { th { border: 0; padding: 0 4px .5em 0; line-height: 1.5em; width: 20%; } td { padding: 0 4px .5em 0; border: 0; line-height: 1.5em; input { width: 100%; margin: 0; position: relative; border-bottom: 0; box-shadow: none; } textarea { width: 100%; height: 4em; margin: 0; box-shadow: none; } input:focus + textarea { border-top-color: #999; } p { margin: 0 0 .5em; line-height: 1.5em; } p:last-child { margin: 0; } } } } .refund_by { border-bottom: 1px dotted #999; } tr.fee { .thumb div { @include ir(); font-size: 1.5em; line-height: 1em; vertical-align: middle; margin: 0; &:before { @include icon( "\e007" ); color: #ccc; } } } tr.refund { .thumb div { @include ir(); font-size: 1.5em; line-height: 1em; vertical-align: middle; margin: 0; &:before { @include icon( "\e014" ); color: #ccc; } } } tr.shipping { .thumb div { @include ir(); font-size: 1.5em; line-height: 1em; vertical-align: middle; margin: 0; &:before { @include icon( "\e01a" ); color: #ccc; } } .shipping_method_name, .shipping_method { width: 100%; margin: 0 0 .5em; } } th.line_tax { white-space: nowrap; } th.line_tax, td.line_tax { .delete-order-tax { @include ir(); float: right; font-size: 14px; visibility: hidden; margin: 3px -18px 0 0; &:before { @include icon_dashicons( "\f153" ); color: #999; } &:hover { &:before { color: $red; } } } &:hover { .delete-order-tax { visibility: visible; } } } small.refunded { display: block; color: $red; white-space: nowrap; margin-top: .5em; &:before { @include icon_dashicons( "\f171" ); position: relative; top: auto; left: auto; margin: -1px 4px 0 0; vertical-align: middle; line-height: 1em; } } } } .wc-order-edit-line-item { padding-left: 0; } .wc-order-edit-line-item-actions { width: 44px; text-align: right; padding-left: 0; vertical-align: middle; a { color: #ccc; display: inline-block; cursor: pointer; padding: 0 0 .5em 0; margin: 0 0 0 12px; vertical-align: middle; text-decoration: none; line-height: 16px; width: 16px; overflow: hidden; &:before { margin: 0; padding: 0; font-size: 16px; width: 16px; height: 16px; } &:hover { &:before { color: #999; } } &:first-child { margin-left: 0; } } .edit-order-item { &:before { @include icon_dashicons( "\f464" ); position: relative; } } .delete-order-item, .delete_refund { &:before { @include icon_dashicons( "\f158" ); position: relative; } &:hover { &:before { color: $red; } } } } tbody tr .wc-order-edit-line-item-actions { visibility: hidden; } tbody tr:hover .wc-order-edit-line-item-actions { visibility: visible; } .wc-order-totals .wc-order-edit-line-item-actions { width: 1.5em; visibility: visible !important; a { padding: 0; } } } #woocommerce-order-downloads { .buttons { float: left; padding: 0; margin: 0; vertical-align: top; .add_item_id, .select2-container { width: 400px !important; margin-right: 9px; vertical-align: top; float: left; } button { margin: 2px 0 0 0; } } h3 small { color: #999; } } #poststuff #woocommerce-order-actions { .inside { margin: 0; padding: 0; ul.order_actions { li { padding: 6px 10px; box-sizing: border-box; &:last-child { border-bottom: 0; } } } } } #poststuff #woocommerce-order-notes { .inside { margin: 0; padding: 0; ul.order_notes { li { padding: 0 10px; } } } } #woocommerce_customers { p.search-box { margin: 6px 0 4px; float: left; } .tablenav { float: right; clear: none; } } .widefat { &.customers { td { vertical-align: middle; padding: 4px 7px; } } .column-order_title { width: 15%; time { display: block; color: #999; margin: 3px 0; } } .column-orders, .column-paying, .column-spent { text-align: center; width: 8%; } .column-last_order { width: 11%; } .column-order_actions, .column-user_actions, .column-wc_actions { width: 110px; a.button { float: left; margin: 0 4px 2px 0; cursor: pointer; padding: 3px 4px; height: auto; img { display: block; width: 12px; height: auto; } } } small.meta { display: block; color: #999; font-size: inherit; margin: 3px 0; } .column-order_total, .column-order_date { width: 9%; } .column-order_status { width: 45px; text-align: center; mark { @include ir(); background: none; font-size: 1.4em; margin: 0 auto; } mark.pending, mark.completed, mark.on-hold, mark.failed, mark.cancelled, mark.processing, mark.refunded { &:after { @include icon; } } mark.pending:after { content: "\e012"; color: $orange; } mark.completed:after { content: "\e015"; color: $blue; } mark.on-hold:after { content: "\e033"; color: #999; } mark.failed:after { content: "\e016"; color: #d0c21f; } mark.cancelled:after { content: "\e013"; color: $red; } mark.processing:after { content: "\e011"; color: #73a724; } mark.refunded:after { content: "\e014"; color: #999; } } td.column-order_status { padding-top: 9px; } } .column-customer_message { .note-on { @include ir(); margin: 0 auto; color: #999; &:after { @include icon( "\e026" ); line-height: 16px; } } } .column-order_notes { .note-on { @include ir(); margin: 0 auto; color: #999; &:after { @include icon( "\e027" ); line-height: 16px; } } } .order_actions { .processing, .complete, .view { @include ir(); padding: 0 !important; height: 2em !important; width: 2em; } .processing:after { @include icon( "\e00f" ); line-height: 1.85; } .complete:after { @include icon_dashicons( "\f147" ); line-height: 1.85; } .view:after { @include icon_dashicons( "\f177" ); line-height: 1.85; } } .user_actions { .edit, .link, .view, .refresh { @include ir(); padding: 0 !important; height: 2em !important; width: 2em; &:after { @include icon; line-height: 1.85; } } .edit:after { font-family: "Dashicons"; content: "\f464"; } .link:after { content: "\e00d"; } .view:after { content: "\e010"; } .refresh:after { content: "\e031"; } } .attributes-table { td, th { width: 15%; vertical-align: top; } .attribute-terms { width: 32%; } .attribute-actions { width: 2em; .configure-terms { @include ir(); padding: 0 !important; height: 2em !important; width: 2em; &:after { @include icon("\f111"); font-family: 'Dashicons'; line-height: 1.85; } } } } /* Order notes */ ul.order_notes { padding: 2px 0 0 0; li { .note_content { padding: 10px; background: #efefef; position: relative; p { margin: 0; padding: 0; word-wrap: break-word; } } p.meta { padding: 10px; color: #999; margin: 0; font-size: 11px; .exact-date { border-bottom: 1px dotted #999; } } a.delete_note { color: $red } .note_content:after { content: ""; display: block; position: absolute; bottom: -10px; left: 20px; width: 0; height: 0; border-width: 10px 10px 0 0; border-style: solid; border-color: #efefef transparent; } } li.customer-note { .note_content { background: #A7CEDC; } .note_content:after { border-color: #A7CEDC transparent; } } li.system-note { .note_content { background: #d7cad2; } .note_content:after { border-color: #d7cad2 transparent; } } } .add_note { border-top: 1px solid #ddd; padding: 10px 10px 0; h4 { margin-top: 5px !important; } #add_order_note { width: 100%; height: 50px; } } table.wp-list-table { .column-thumb { width: 52px; text-align: center; white-space: nowrap } .column-name { width: 22%; } .column-product_cat, .column-product_tag { width: 11% !important; } .column-featured, .column-product_type { width: 48px; text-align: left !important; } .column-customer_message, .column-order_notes { width: 48px; text-align: center; img { margin: 0 auto; padding-top: 0 !important; } } .manage-column.column-featured img, .manage-column.column-product_type img { padding-left: 2px; } .column-price { .woocommerce-price-suffix { display: none; } } img { margin: 1px 2px; } .row-actions { color: #999; } td.column-thumb img { margin: 0; width: auto; height: auto; max-width: 40px; max-height: 40px; vertical-align: middle; } span.na { color: #999; } .column-is_in_stock { text-align: left !important; } span.wc-image, span.wc-featured, span.wc-type { @include ir(); margin: 0 auto; &:before { @include icon_dashicons( "\f128" ); } } span.wc-featured { margin: 0; cursor: pointer; &:before { content: "\f155"; } &.not-featured { &:before { content: "\f154"; } } } td.column-featured { span.wc-featured { font-size: 1.6em; } } span.wc-type { margin: 0; &:before { font-family: "WooCommerce"; content: "\e006"; } } span.product-type { @include ir(); font-size: 1.6em; &:before { @include icon( "\e006" ); } &.grouped:before { content: "\e002"; } &.external:before { content: "\e034"; } &.variable:before { content: "\e003"; } &.downloadable:before { content: "\e001"; } &.virtual:before { content: "\e000"; } } mark.instock { font-weight: 700; color: $green; background: transparent none; line-height: 1; } mark.outofstock { font-weight: 700; color: #aa4444; background: transparent none; line-height: 1; } .order-notes_head, .notes_head, .status_head { @include ir(); margin: 0 auto; &:after { @include icon; } } .order-notes_head:after { content: "\e028"; } .notes_head:after { content: "\e026"; } .status_head:after { content: "\e011"; } .column-order_items { width: 12%; table.order_items { width: 100%; margin: 3px 0 0 0; padding: 0; display: none; td { border: 0; margin: 0; padding: 0 0 3px; } td.qty { color: #999; padding-right: 6px; text-align: left; } } } } mark.notice { background: #fff; color: $red; margin: 0 0 0 10px; } a.export_rates, a.import_rates { float: right; margin-left: 9px; margin-top: -2px; margin-bottom: 0; } #rates-search { float: right; input.wc-tax-rates-search-field { padding: 4px 8px; font-size: 1.2em; } } #rates-pagination { float: right; margin-right: .5em; .tablenav { margin: 0; } } table.wc_tax_rates, table.wc_input_table { width: 100%; span.tips { color: $blue; } td { padding: 0; border-right: 1px solid #DFDFDF; border-bottom: 1px solid #DFDFDF; border-top: 0; background: #fff; input[type="text"], input[type="number"] { width: 100%; padding: 5px 7px; margin: 0; border: 0; background: transparent none; } &.compound, &.apply_to_shipping { padding: 5px 7px; vertical-align: middle; input { width: auto; padding: 0; } } } td:last-child { border-right: 0; } tr.current td { background-color: #fefbcc; } .item_cost, .cost { text-align: right; input { text-align: right; } } th.sort { width: 17px; padding: 0 4px; } td.sort { padding: 0 4px; } .ui-sortable:not(.ui-sortable-disabled) { td.sort { cursor: move; font-size: 15px; background: #f9f9f9; text-align: center; vertical-align: middle; &:before { content: "\f333"; font-family: 'Dashicons'; text-align: center; line-height: 1; color: #999; display: block; width: 17px; float: left; height: 100%; } &:hover { &:before { color: #333; } } } } .button { float: left; margin-right: 5px; } .export, .import { float: right; margin-right: 0; margin-left: 5px; } span.tips { padding: 0 3px; } .pagination { float: right; .button { margin-left: 5px; margin-right: 0; } .current { background: #bbb; text-shadow: none; } } tfoot { th { padding-left: 20px; padding-right: 20px; } } tr { &:last-child { td { border-bottom: 0; } } } } table.wc_gateways, table.wc_emails, table.wc_shipping { position: relative; td { vertical-align: middle; padding: 7px; line-height: 2em; } tr:nth-child(odd) { td { background: #f9f9f9; } } th { padding: 9px 7px !important; vertical-align: middle; } td.name { font-weight: 700; } .settings { text-align: right; } .radio, .default, .status { text-align: center; .tips { margin: 0 auto; } input { margin: 0; } } th.sort { width: 28px; padding: 0; } td.sort { padding: 0 7px; cursor: move; font-size: 15px; text-align: center; vertical-align: middle; &:before { content: "\f333"; font-family: 'Dashicons'; text-align: center; line-height: 1; color: #999; display: block; width: 17px; float: left; height: 100%; } } .wc-email-settings-table-name { font-weight: 700; span { font-weight: normal; color: #999; margin: 0 0 0 4px !important; } } .wc-email-settings-table-status { text-align: center; width: 1em; .tips { margin: 0 auto; } } .wc-email-settings-table-actions { a { @include ir(); padding: 0 !important; height: 2em !important; width: 2em; &:after { @include icon("\f111"); font-family: 'Dashicons'; line-height: 1.85; } } } } table.wc-shipping-zones, table.wc-shipping-zone-methods, table.wc-shipping-classes { td, th { vertical-align: top; line-height: 24px; padding: 1em 1em; font-size: 14px; background: #fff; li { line-height: 24px; font-size: 14px; } } td.wc-shipping-zones-blank-state, td.wc-shipping-zone-method-blank-state { background: #F7F1F6 !important; overflow: hidden; position: relative; padding: 7.5em 7.5%; border-bottom: 2px solid #EEE2EC; p, li { color: #a46497; font-size: 1.5em; line-height: 1.5em; margin: 0 0 1em; position: relative; z-index: 1; text-shadow: 1px 1px 1px white; &.main { font-size: 2em; } } li { margin-left: 1em; list-style: circle inside; } &:before { content: "\e01b"; font-family: "WooCommerce"; text-align: center; line-height: 1; color: #EEE2EC; display: block; width: 1em; font-size: 40em; top: 50%; right: -3.75%; margin-top: -0.1875em; position: absolute; } .button-primary { background-color: #804877; border-color: #804877; -webkit-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 0 rgba( 0, 0, 0, 0.15 ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 0 rgba( 0, 0, 0, 0.15 ); margin: 0; opacity: 1; text-shadow: 0px -1px 1px #8a4f7f, 1px 0px 1px #8a4f7f, 0px 1px 1px #8a4f7f, -1px 0px 1px #8a4f7f; font-size: 1.5em; padding: .75em 1em; height: auto; position: relative; z-index: 1; } } tbody.wc-shipping-zone-rows, .wc-shipping-zone-method-rows { tr:nth-child(odd) { td { background: #f9f9f9; } } } tr.odd, .wc-shipping-class-rows tr:nth-child(odd) { td { background: #f9f9f9; } } ul, p { margin: 0; } td.wc-shipping-zone-sort, td.wc-shipping-zone-method-sort { cursor: move; font-size: 15px; text-align: center; &:before { content: "\f333"; font-family: 'Dashicons'; text-align: center; line-height: 1; color: #999; display: block; width: 17px; float: left; height: 100%; line-height: 24px; } &:hover { &:before { color: #333; } } } td.wc-shipping-zone-worldwide { text-align: center; &:before { content: "\f319"; font-family: 'dashicons'; text-align: center; line-height: 1; color: #999; display: block; width: 17px; float: left; height: 100%; line-height: 24px; } } .wc-shipping-zone-name, .wc-shipping-zone-methods { width: 25%; } .wc-shipping-class-description, .wc-shipping-class-name, .wc-shipping-class-slug, .wc-shipping-zone-name, .wc-shipping-zone-region { input, select, textarea { width: 100%; } a.wc-shipping-zone-delete, a.wc-shipping-class-delete { color: red; } .wc-shipping-zone-postcodes-toggle { float: right; margin: 0; font-size: 0.9em; text-decoration: underline; } .wc-shipping-zone-postcodes { display:none; textarea { margin-top: 1em; } .description { font-size: 0.9em; color: #999; } } } .wc-shipping-class-count { text-align: center; } td.wc-shipping-zone-methods { color: #999; .method_disabled { text-decoration: line-through; } ul { color: #999; position: relative; padding-right: 32px; li { display: inline; margin: 0 0 0 0; } li:before { content: ", "; } li:last-child:before, li:first-child:before { content: ""; } li:last-child { display: block; } li:first-child { margin: 0 !important; } li.wc-shipping-zone-methods-add-row { position: absolute; right: 0; top: 0; } } .add_shipping_method { display: block; width: 24px; padding: 24px 0 0 0; height: 0; overflow: hidden; cursor: pointer; &:before { @include icon; font-family: 'Dashicons'; content: "\f502"; color: #999; vertical-align: middle; line-height: 24px; font-size: 16px; margin: 0; } &.disabled { cursor: not-allowed; &:before { color: #ccc; } } } } .wc-shipping-zone-method-title { width: 33%; .wc-shipping-zone-method-delete { color: red; } } .wc-shipping-zone-method-enabled { text-align: center; .status-enabled { margin-top: 1px; display: inline-block; &:before { line-height: inherit; } } .status-disabled { margin-top: 1px; display: inline-block; &:before { line-height: inherit; } } } tfoot { input, select { vertical-align: middle !important; } .button-secondary { float: right; } } .editing { .wc-shipping-zone-view, .wc-shipping-zone-edit { display: none; } } } .wc-modal-shipping-method-settings { background: #f8f8f8; padding: 1em !important; form { .form-table { width: 100%; background: #fff; margin: 0 0 1.5em; tr { th { width: 30%; position: relative; .woocommerce-help-tip { float: right; margin: -8px -.5em 0 0; vertical-align: middle; right: 0; top: 50%; position: absolute; } } td { input, select, textarea { width: 50%; min-width: 250px; } input[type="checkbox"] { width: auto; min-width: 0; } } td, th { vertical-align: middle; margin: 0; line-height: 24px; padding: 1em; border-bottom: 1px solid #f8f8f8; } } &:last-of-type { margin-bottom: 0; } } } } .wc-backbone-modal .wc-shipping-zone-method-selector { p { margin-top: 0; } .wc-shipping-zone-method-description { margin: .75em 1px 0; line-height: 1.5em; color: #999; font-style: italic; } select { width: 100%; cursor: pointer; } } img.help_tip { margin: 0 0 0 9px; vertical-align: middle; } .postbox img.help_tip { margin-top: 0px; } .postbox .woocommerce-help-tip { margin: 0 0 0 9px; } .status-enabled, .status-manual, .status-disabled { font-size: 1.4em; @include ir(); } .status-manual { &:before { @include icon( "\e008" ); color: #999; } } .status-enabled { &:before { @include icon( "\e015" ); color: $woocommerce; } } .status-disabled { &:before { @include icon( "\e013" ); color: #ccc; } } .woocommerce { h2.woo-nav-tab-wrapper { margin-bottom: 1em; } nav.woo-nav-tab-wrapper { margin: 1.5em 0 1em; border-bottom: 1px solid #ccc; } .subsubsub { margin: -8px 0 0; } .wc-admin-breadcrumb { margin-left: .5em; a { color: #a46497; } } #template div { margin: 0; p .button { float: right; margin-left: 10px; margin-top: -4px; } .editor { textarea { margin-bottom: 8px; } } } textarea[disabled="disabled"] { background: #DFDFDF !important; } table.form-table { margin: 0; position: relative; .select2-container { display: block; max-width: 350px; } .forminp-radio ul { margin: 0; li { line-height: 1.4em; } } textarea.input-text { height: 100%; min-width: 150px; display: block; } input.regular-input { width: 25em; } textarea.wide-input { width: 100%; } img.help_tip, .woocommerce-help-tip { padding: 0; margin: -4px 0 0 5px; vertical-align: middle; cursor: help; line-height: 1; } span.help_tip { cursor: help; color: $blue; } th { position: relative; padding-right: 24px; } .select2-container { vertical-align: top; margin-bottom: 3px; } table.widefat th { padding-right: inherit; } th img.help_tip, th .woocommerce-help-tip { margin: 0 -24px 0 0; float: right; } .wp-list-table .woocommerce-help-tip { float: none; } fieldset { margin-top: 4px; img.help_tip, .woocommerce-help-tip { margin: -3px 0 0 5px; } p.description { margin-bottom: 8px; } &:first-child { margin-top: 0; } } .iris-picker { z-index: 100; display: none; position: absolute; border: 1px solid #ccc; border-radius: 3px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); .ui-slider { border: 0 !important; margin: 0 !important; width: auto !important; height: auto !important; background: none transparent !important; .ui-slider-handle { margin-bottom: 0 !important; } } } .colorpickpreview { padding: 3px; padding-left: 20px; border: 1px solid #ddd; border-right: 0; } .colorpick { border-left: 0; } .image_width_settings { vertical-align: middle; label { margin-left: 10px; } } .wc_emails_wrapper { padding: 0 15px 10px 0; } } } .woocommerce #tabs-wrap table a.remove { margin-left: 4px; } .woocommerce #tabs-wrap table p { margin: 0 0 4px !important; overflow: hidden; zoom: 1; } .woocommerce #tabs-wrap table p a.add { float: left; } #wp-excerpt-editor-container { background: #fff; } #product_variation-parent #parent_id { width: 100%; } #postimagediv { img { border: 1px solid #d5d5d5; max-width: 100%; } } #woocommerce-product-images { .inside { margin: 0; padding: 0; .add_product_images { padding: 0 12px 12px; } #product_images_container { padding: 0 0 0 9px; ul { @include clearfix(); margin: 0; padding: 0; li.image, li.add, li.wc-metabox-sortable-placeholder { width: 80px; float: left; cursor: move; border: 1px solid #d5d5d5; margin: 9px 9px 0 0; background: #f7f7f7; @include border-radius(2px); position: relative; box-sizing: border-box; img { width: 100%; height: auto; display: block; } } li.wc-metabox-sortable-placeholder { border: 3px dashed #dddddd; position: relative; &:after { @include icon_dashicons( "\f161" ); font-size: 2.618em; line-height: 72px; color: #ddd; } } ul.actions { position: absolute; top: -8px; right: -8px; padding: 2px; display: none; li { float: right; margin: 0 0 0 2px; a { width: 1em; height: 1em; margin: 0; height: 0; display: block; overflow: hidden; &.tips { cursor: pointer; } } a.delete { @include ir(); font-size: 1.4em; &:before { @include icon_dashicons( "\f153" ); color: #999; } &:hover { &:before { color: $red; } } } } } li:hover ul.actions { display: block; } } } } } #woocommerce-product-data { .hndle { padding: 10px; span { display: block; vertical-align: middle; line-height: 24px; span { display: inline; line-height: inherit; vertical-align: baseline; } } select { margin: 0; } label { padding-right: 1em; font-size: 12px; vertical-align: baseline; } label:first-child { margin-right: 1em; border-right: 1px solid #dfdfdf; } input, select { margin: -3px 0 0 .5em; vertical-align: middle; } } > .handlediv { margin-top: 4px; } .wrap { margin: 0; } } #woocommerce-coupon-description { padding: 3px 8px; font-size: 1.7em; line-height: 1.42em; height: auto; width: 100%; outline: 0; margin: 10px 0 10px; display: block; &::-webkit-input-placeholder { line-height: 1.42em; color: #bbb; } &::-moz-placeholder { line-height: 1.42em; color: #bbb; } &:-ms-input-placeholder { line-height: 1.42em; color: #bbb; } &:-moz-placeholder { line-height: 1.42em; color: #bbb; } } #woocommerce-product-data, #woocommerce-coupon-data { .panel-wrap { background: #fff; } .woocommerce_options_panel, .wc-metaboxes-wrapper { float: left; width: 80%; .wc-radios { display: block; float: left; margin: 0; li { display: block; padding: 0 0 10px 0; input { width: auto; } } } } } #woocommerce-product-data, #woocommerce-coupon-data, .woocommerce { .panel-wrap { overflow: hidden; } ul.wc-tabs { margin: 0; width: 20%; float: left; line-height: 1em; padding: 0 0 10px; position: relative; background-color: #fafafa; border-right: 1px solid #eee; box-sizing: border-box; &:after { content: ""; display: block; width: 100%; height: 9999em; position: absolute; bottom: -9999em; left: 0; background-color: #fafafa; border-right: 1px solid #eee; } li { margin: 0; padding: 0; display: block; position: relative; a { margin: 0; padding: 10px; display: block; box-shadow: none; text-decoration: none; line-height: 20px !important; border-bottom: 1px solid #eee; &:before { @include iconbeforedashicons( "\f107" ); } } &.general_options { a:before { content: "\f107"; } } &.inventory_options { a:before { content: "\f481"; } } &.shipping_options { a:before { font-family: "WooCommerce"; content: "\e01a"; } } &.linked_product_options { a:before { content: "\f103"; } } &.attribute_options { a:before { content: "\f175"; } } &.advanced_options { a:before { font-family: 'Dashicons'; content: "\f111"; } } &.variations_options { a:before { content: "\f509"; } } &.usage_restriction_options { a:before { font-family: "WooCommerce"; content: "\e602"; } } &.usage_limit_options { a:before { font-family: "WooCommerce"; content: "\e601"; } } &.general_coupon_data { a:before { font-family: "WooCommerce"; content: "\e600"; } } &.active { a { color: #555; position: relative; background-color: #eee; } } } } } /** * Shipping */ .woocommerce_page_wc-settings { .shippingrows { th.check-column { padding-top: 20px; } tfoot { th { padding-left: 10px; } } .add.button:before { @include iconbefore( "\e007" ); } } h3.wc-settings-sub-title { font-size: 1.2em; } } #woocommerce-product-data, #woocommerce-product-type-options, #woocommerce-order-data, #woocommerce-order-downloads, #woocommerce-coupon-data { .inside { margin: 0; padding: 0; } } .woocommerce_options_panel, .panel { padding: 9px; color: #555; .form-field { .woocommerce-help-tip { font-size: 1.4em; } } } .woocommerce_page_settings .woocommerce_options_panel, .panel { padding: 0; } #woocommerce-product-type-options .panel, #woocommerce-product-specs .inside { margin: 0; padding: 9px; } .woocommerce_options_panel p, #woocommerce-product-type-options .panel p, .woocommerce_options_panel fieldset.form-field { margin: 0 0 9px; font-size: 12px; padding: 5px 9px; line-height: 24px; &:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } } .woocommerce_options_panel .checkbox, .woocommerce_variable_attributes .checkbox { width: auto; margin: 3px 0; vertical-align: middle; } .woocommerce_variations, .woocommerce_options_panel { .downloadable_files { table { width: 100%; padding: 0 !important; th { padding: 7px 0 7px 7px !important; &.sort { width: 17px; padding: 7px !important; } .woocommerce-help-tip { font-size: 1.1em; margin-left: 0; } } td { vertical-align: middle !important; padding: 4px 0 4px 7px !important; position: relative; &:last-child { padding-right: 7px !important; } input.input_text { width: 100%; float: none; min-width: 0; margin: 1px 0; } .upload_file_button { width: auto; float: right; cursor: pointer; } .delete { @include ir(); font-size: 1.2em; &:before { @include icon_dashicons( "\f153" ); color: #999; } &:hover { &:before { color: $red; } } } } td.sort { width: 17px; cursor: move; font-size: 15px; text-align: center; background: #f9f9f9; padding-right: 7px !important; &:before { content: "\f333"; font-family: 'Dashicons'; text-align: center; line-height: 1; color: #999; display: block; width: 17px; float: left; height: 100%; } &:hover { &:before { color: #333; } } } } } } .woocommerce_variation { h3 { .sort { width: 17px; height: 26px; cursor: move; float: right; font-size: 15px; font-weight: 400; margin-right: .5em; visibility: hidden; text-align: center; vertical-align: middle; &:before { content: "\f333"; font-family: 'Dashicons'; text-align: center; line-height: 28px; color: #999; display: block; width: 17px; float: left; height: 100%; } &:hover { &:before { color: #777; } } } } h3:hover, &.ui-sortable-helper { .sort { visibility: visible; } } } .woocommerce_options_panel { min-height: 175px; box-sizing: border-box; .downloadable_files { padding: 0 9px 0 162px; position: relative; margin: 9px 0 9px; label { position: absolute; left: 0; margin: 0 0 0 12px; line-height: 24px; } } p { margin: 9px 0; } p.form-field, fieldset.form-field { padding: 5px 20px 5px 162px !important; /** Padding for aligning labels left - 12px + 150 label width **/ } .sale_price_dates_fields { .short:first-of-type { margin-bottom: 1em; } .short:nth-of-type(2) { clear: left; } } label, legend { float: left; width: 150px; padding: 0; margin: 0 0 0 -150px; .req { font-weight: 700; font-style: normal; color: $red; } } .description { padding: 0; margin: 0 0 0 7px; clear: none; display: inline; } .description-block { margin-left: 0; display: block; } textarea, input, select { margin: 0; } textarea { height: 3.5em; line-height: 1.5em; vertical-align: top; } input[type="text"], input[type="email"], input[type="number"], input[type="password"] { width: 50%; float: left; } input.button { width: auto; margin-left: 8px; } select { float: left; } input[type="text"].short, input[type="email"].short, input[type="number"].short, input[type="password"].short, .short { width: 50%; } .sized { width: auto !important; margin-right: 6px; } .options_group { border-top: 1px solid white; border-bottom: 1px solid #eee; &:first-child { border-top: 0; } &:last-child { border-bottom: 0; } fieldset { margin: 9px 0; font-size: 12px; padding: 5px 9px; line-height: 24px; label { width: auto; float: none; } ul { float: left; width: 50%; margin: 0; padding: 0; li { margin: 0; width: auto; input { width: auto; float: none; margin-right: 4px; } } } ul.wc-radios { label { margin-left: 0; } } } } .dimensions_field { .wrap { display: block; width: 50%; input { width: 30.75%; margin-right: 3.8%; } .last { margin-right: 0; } } } &.padded { padding: 1em; } .select2-container { float: left; } } #woocommerce-product-data input.dp-applied { float: left; } #grouped_product_options, #virtual_product_options, #simple_product_options { padding: 12px; font-style: italic; color: #666; } /** * WooCommerce meta boxes */ .wc-metaboxes-wrapper { .toolbar { margin: 0 !important; border-top: 1px solid white; border-bottom: 1px solid #eee; padding: 9px 12px !important; &:first-child { border-top: 0; } &:last-child { border-bottom: 0; } .add_variation { float: right; margin-left: 5px; } .save-variation-changes, .cancel-variation-changes { float: left; margin-right: 5px; } } p.toolbar { overflow: hidden; zoom: 1; } .expand-close { margin-right: 2px; color: #777; font-size: 12px; font-style: italic; a { background: none; padding: 0; font-size: 12px; text-decoration: none; } } &#product_attributes { .expand-close { float: right; line-height: 28px; } } button.add_variable_attribute, .fr { float: right; margin: 0 0 0 6px; } .wc-metaboxes { border-bottom: 1px solid #eee; } .wc-metabox-sortable-placeholder { border-color: #bbb; background-color: #f5f5f5; margin-bottom: 9px; border-width: 1px; border-style: dashed; } .wc-metabox { background: #fff; border-bottom: 1px solid #eee; margin: 0 !important; select { font-weight: 400; } &:last-of-type { border-bottom: 0; } .handlediv { width: 27px; &:before { content: "\f142" !important; cursor: pointer; display: inline-block; font: 400 20px/1 "Dashicons"; line-height: .5 !important; padding: 8px 10px; position: relative; right: 12px; top: 0; } } &.closed { @include border-radius(3px); .handlediv { &:before { content: "\f140" !important; } } h3 { border: 0; } } h3 { margin: 0 !important; padding: .75em .75em .75em 1em !important; font-size: 1em !important; overflow: hidden; zoom: 1; cursor: move; button, a.delete { float: right; } a.delete { color: red; font-weight: normal; line-height: 26px; text-decoration: none; position: relative; visibility: hidden; } strong { font-weight: normal; line-height: 26px; font-weight: 700; } select { font-family: sans-serif; max-width: 20%; margin: .25em .25em .25em 0; } .handlediv { background-position: 6px 5px !important; visibility: hidden; height: 26px; } &.fixed { cursor: pointer !important; } } &.woocommerce_variation h3 { cursor: pointer; padding: .5em .75em .5em 1em !important; a.delete, .handlediv, .sort { margin-top: .25em; } } h3:hover, &.ui-sortable-helper { a.delete, .handlediv { visibility: visible; } } table { width: 100%; position: relative; background-color: #fdfdfd; padding: 1em; border-top: 1px solid #eee; td { text-align: left; padding: 0 6px 1em 0; vertical-align: top; border: 0; label { text-align: left; display: block; line-height: 21px; } input { float: left; min-width: 200px; } input, textarea { width: 100%; margin: 0; display: block; font-size: 14px; padding: 4px; color: #555; } select, .select2-container { width: 100% !important; } input.short { width: 200px; } input.checkbox { width: 16px; min-width: inherit; vertical-align: text-bottom; display: inline-block; float: none; } } td.attribute_name { width: 200px; } .plus, .minus { margin-top: 6px; } .fl { float: left; } .fr { float: right; } } } } .variations-pagenav { float: right; line-height: 24px; .displaying-num { color: #777; font-size: 12px; font-style: italic; } a { padding: 0px 10px 3px; background: rgba(0, 0, 0, 0.05); font-size: 16px; font-weight: 400; text-decoration: none; } a.disabled, a.disabled:active, a.disabled:focus, a.disabled:hover { color: #A0A5AA; background: rgba(0, 0, 0, 0.05); } } .variations-defaults { float: left; select { margin: .25em .25em .25em 0; } } .woocommerce_variable_attributes { background-color: #fdfdfd; border-top: 1px solid #eee; .data { @include clearfix; padding: 1em 2em; } .upload_image_button { display: block; width: 48px; height: 48px; float: left; margin-right: 20px; position: relative; cursor: pointer; img { width: 100%; height: auto; display: none; } &:before { content: "\f128"; font-family: 'Dashicons'; position: absolute; top: 0; left: 0; right: 0; bottom: 0; text-align: center; line-height: 48px; font-size: 48px; font-weight: 400; -webkit-font-smoothing: antialiased; } &.remove{ img { display: block; } &:before { content: "\f335"; display: none; } &:hover { &:before { display: block; } } } } .options { border: 1px solid #eee; border-width: 1px 0; padding: .25em 0; label { display: inline-block; padding: 4px 1em 2px 0; } input[type=checkbox] { margin-top: 5px; margin-right: 3px; } } } .form-row { label { display: block; } input[type=text], input[type=number], select { width: 100%; } &.dimensions_field { input { width: 25%; float: left; margin-right: 1%; &:last-of-type { margin-right: 0; } } } } .form-row-first, .form-row-last { width: 48%; float: right; } .form-row-first { clear: both; float: left; } .form-row-full { clear: both; } /** * Tooltips */ .tips { cursor: help; text-decoration: none; } img.tips { padding: 5px 0 0 0; } #tiptip_holder { display: none; position: absolute; top: 0; left: 0; z-index: 9999999; } #tiptip_holder { &.tip_top { padding-bottom: 5px; #tiptip_arrow_inner { margin-top: -7px; margin-left: -6px; border-top-color: #333; } } &.tip_bottom { padding-top: 5px; #tiptip_arrow_inner { margin-top: -5px; margin-left: -6px; border-bottom-color: #333; } } &.tip_right { padding-left: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -5px; border-right-color: #333; } } &.tip_left { padding-right: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -7px; border-left-color: #333; } } } #tiptip_content, .chart-tooltip, .wc_error_tip { color: #fff; font-size: .8em; max-width: 150px; background: #333; text-align: center; border-radius: 3px; padding: .618em 1em; box-shadow: 0 1px 3px rgba(0,0,0,0.2); code { padding: 1px; background: #888; } } #tiptip_arrow, #tiptip_arrow_inner { position: absolute; border-color: transparent; border-style: solid; border-width: 6px; height: 0; width: 0; } .wc_error_tip { max-width: 20em; line-height: 1.8em; position: absolute; white-space: normal; background: #d82223; margin: 1.5em 1px 0 -1em; z-index: 9999999; &:after { content: ""; display: block; border: 8px solid #d82223; border-right-color: transparent; border-left-color: transparent; border-top-color: transparent; position: absolute; top: -3px; left: 50%; margin: -1em 0 0 -3px; } } /** * Date picker */ img.ui-datepicker-trigger { vertical-align: middle; margin-top: -1px; cursor: pointer } .woocommerce_options_panel img.ui-datepicker-trigger, .wc-metabox-content img.ui-datepicker-trigger { float: left; margin-right: 8px; margin-top: 4px; margin-left: 4px; } #ui-datepicker-div { display: none } /** * Reports */ .woocommerce-reports-wrap, .woocommerce-reports-wide { &.woocommerce-reports-wrap { margin-left: 300px; padding-top: 18px; } &.halved { margin: 0; overflow: hidden; zoom: 1; } .widefat { td { vertical-align: top; padding: 7px 7px; .description { margin: 4px 0 0 0; } } } .postbox { &:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } h3 { cursor: default !important; } .inside { padding: 10px; margin: 0 !important; } div.stats_range, h3.stats_range { border-bottom-color: #dfdfdf; margin: 0; padding: 0 !important; .export_csv { float: right; line-height: 26px; border-left: 1px solid #dfdfdf; padding: 10px; display: block; text-decoration: none; &:before { @include iconbeforedashicons( "\f346" ); margin-right: 4px; } } ul { list-style: none outside; margin: 0; padding: 0; zoom: 1; background: #f5f5f5; border-bottom: 1px solid #ccc; &:before, &:after { content: " "; display: table; } &:after { clear: both; } li { float: left; margin: 0; padding: 0; line-height: 26px; font-weight: bold; font-size: 14px; a { border-right: 1px solid #dfdfdf; padding: 10px; display: block; text-decoration: none; } &.active { background: #fff; -webkit-box-shadow: 0 4px 0 0 #fff; box-shadow: 0 4px 0 0 #fff; a { color: #777; } } &.custom { padding: 9px 10px; vertical-align: middle; form, div { display: inline; margin: 0; input.range_datepicker { padding: 0; margin: 0 10px 0 0; background: transparent; border: 0; color: #777; text-align: center; -webkit-box-shadow: none; box-shadow: none; } } } } } } .chart-with-sidebar { padding: 12px 12px 12px 249px; margin: 0 !important; .chart-sidebar { width: 225px; margin-left: -237px; float: left; } } .chart-widgets { margin: 0; padding: 0; li.chart-widget { margin: 0 0 1em; background: #fafafa; border: 1px solid #dfdfdf; &:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } h4 { background: #fff; border: 1px solid #dfdfdf; border-left-width: 0; border-right-width: 0; padding: 10px; margin: 0; color: $blue; border-top-width: 0; background-image: -webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9)); background-image: -webkit-linear-gradient(bottom,#ececec,#f9f9f9); background-image: -moz-linear-gradient(bottom,#ececec,#f9f9f9); background-image: -o-linear-gradient(bottom,#ececec,#f9f9f9); background-image: linear-gradient(to top,#ececec,#f9f9f9); &.section_title:hover { color: $red; } } .section_title { cursor: pointer; span { display: block; &:after { @include iconafter( "\e035" ); float: right; font-size: .9em; line-height: 1.618; } } &.open { color: #333; span:after { display: none; } } } .section { border-bottom: 1px solid #dfdfdf; .select2-container { width: 100% !important; } &:last-of-type { border-radius: 0 0 3px 3px; } } table { width: 100%; td { padding: 7px 10px; vertical-align: top; border-top: 1px solid #e5e5e5; line-height: 1.4em; } tr:first-child td { border-top: 0; } td.count { background: #f5f5f5; } td.name { max-width: 175px; a { word-wrap: break-word; } } td.sparkline { vertical-align: middle; } .wc_sparkline { width: 32px; height: 1em; display: block; float: right; } tr.active td { background: #f5f5f5; } } form, p { margin: 0; padding: 10px; .submit { margin-top: 10px; } } #product_ids { width: 100%; } .select_all, .select_none { float: right; color: #999; margin-left: 4px; margin-top: 10px; } } } .chart-legend { list-style: none outside; margin: 0 0 1em; padding: 0; border: 1px solid #dfdfdf; border-right-width: 0; border-bottom-width: 0; background: #fff; li { border-right: 5px solid #aaa; color: #aaa; padding: 1em; display: block; margin: 0; -webkit-transition: all ease .5s; box-shadow: inset 0 -1px 0 0 #dfdfdf; strong { font-size: 1.618em; line-height: 1.2em; color: #464646; font-weight: normal; display: block; font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif; del { color: #e74c3c; font-weight: normal; } } &:hover { box-shadow: inset 0 -1px 0 0 #dfdfdf, inset 300px 0 0 rgba(156, 93, 144, 0.1); border-right: 5px solid #9c5d90 !important; padding-left: 1.5em; color: #9c5d90; } } } .pie-chart-legend { margin: 12px 0 0 0; overflow: hidden; li { float: left; margin: 0; padding: 6px 0 0 0; border-top: 4px solid #999; text-align: center; box-sizing: border-box; width: 50%; } } .stat { font-size: 1.5em !important; font-weight: 700; text-align: center; } .chart-placeholder { width: 100%; height: 650px; overflow: hidden; position: relative; } .chart-prompt { line-height: 650px; margin: 0; color: #999; font-size: 1.2em; font-style: italic; text-align: center; } .chart-container { background: #fff; padding: 12px; position: relative; border: 1px solid #dfdfdf; border-radius: 3px; } .main .chart-legend { margin-top: 12px; li { border-right: 0; margin: 0 8px 0 0; float: left; border-top: 4px solid #aaa; } } } .woocommerce-reports-main { float: left; min-width: 100%; table { td { padding: 9px; } } } .woocommerce-reports-sidebar { display: inline; width: 281px; margin-left: -300px; clear: both; float: left; } .woocommerce-reports-left { width: 49.5%; float: left; } .woocommerce-reports-right { width: 49.5%; float: right; } .column-wc_actions { a.edit, a.view { @include ir(); padding: 0 !important; height: 2em !important; width: 2em; &:after { @include icon_dashicons; line-height: 1.85; } } a.edit { &:after { content: "\f464"; } } a.view { &:after { content: "\f177"; } } } } .woocommerce-wide-reports-wrap { padding-bottom: 11px; .widefat { .export-data { float: right; } th, td { vertical-align: middle; padding: 7px; } } } form.report_filters { p { vertical-align: middle; } label, input, div { vertical-align: middle; } } .chart-tooltip { position: absolute; display: none; line-height: 1; } table.bar_chart { width: 100%; thead th { text-align: left; color: #ccc; padding: 6px 0; } tbody { th { padding: 6px 0; width: 25%; text-align: left !important; font-weight: normal !important; border-bottom: 1px solid #fee; } td { text-align: right; line-height: 24px; padding: 6px 6px 6px 0; border-bottom: 1px solid #fee; span { color: #8a4b75; display: block; } span.alt { color: #47a03e; margin-top: 6px; } } td.bars { position: relative; text-align: left; padding: 6px 6px 6px 0; border-bottom: 1px solid #fee; span, a { text-decoration: none; clear: both; background: #8a4b75; float: left; display: block; line-height: 24px; height: 24px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -khtml-border-radius: 3px; border-radius: 3px; } span.alt { clear: both; background: #47a03e; span { margin: 0; color: #c5dec2 !important; text-shadow: 0 1px 0 #47a03e; background: transparent; } } } } } .post-type-shop_order { .woocommerce-BlankState-message:before { @include icon( "\e01d" ); } } .post-type-shop_coupon { .woocommerce-BlankState-message:before { @include icon( "\e600" ); } } .post-type-product { .woocommerce-BlankState-message:before { @include icon( "\e006" ); } } .woocommerce-BlankState { text-align: center; padding: 5em 0 0; .woocommerce-BlankState-message { color: #aaa; margin: 0 auto 1.5em; line-height: 1.5em; font-size: 1.2em; max-width: 500px; &:before { color: #ddd; text-shadow: 0 -1px 1px rgba(0,0,0,0.2), 0 1px 0 rgba(255,255,255,0.8); font-size: 8em; display: block; position: relative !important; top: auto; left: auto; line-height: 1em; margin: 0 0 0.1875em 0; } } .woocommerce-BlankState-cta { font-size: 1.2em; padding: .75em 1.5em; height: auto; } } /** * Small screen optimisation */ @media only screen and (max-width: 1280px) { #order_data { .order_data_column { width: 48%; &:first-child { width: 100%; } } } .woocommerce_options_panel { .description { display: block; clear: both; margin-left: 0; } .short, input[type="text"].short, input[type="email"].short, input[type="number"].short, input[type="password"].short, .dimensions_field .wrap { width: 80%; } } .woocommerce_variations, .woocommerce_options_panel { .downloadable_files { padding: 0; clear: both; label { position: static; } table { margin: 0 12px 24px 12px; width: 94%; .sort { visibility: hidden; } } } .woocommerce_variable_attributes { .downloadable_files { table { margin: 0 0 1em; width: 100%; } } } } } /** * Optimisation for screens 900px and smaller */ @media only screen and (max-width: 900px) { #woocommerce-coupon-data ul.coupon_data_tabs, #woocommerce-product-data ul.product_data_tabs, #woocommerce-product-data .wc-tabs-back { width: 10%; } #woocommerce-coupon-data .wc-metaboxes-wrapper, #woocommerce-coupon-data .woocommerce_options_panel, #woocommerce-product-data .wc-metaboxes-wrapper, #woocommerce-product-data .woocommerce_options_panel { width: 90%; } #woocommerce-coupon-data ul.coupon_data_tabs li a, #woocommerce-product-data ul.product_data_tabs li a { position: relative; text-indent: -999px; padding: 10px; &:before { position: absolute; top: 0; right: 0; bottom: 0; left: 0; text-indent: 0; text-align: center; line-height: 40px; width: 100%; height: 40px; } } } /** * Optimisation for screens 782px and smaller */ @media only screen and (max-width: 782px) { #wp-excerpt-media-buttons a { font-size: 16px; line-height: 37px; height: 39px; padding: 0 20px 0 15px; } #wp-excerpt-editor-tools { padding-top: 20px; padding-right: 15px; overflow: hidden; margin-bottom: -1px; } #woocommerce-product-data .checkbox { width: 25px; } .variations-pagenav { float: none; text-align: center; font-size: 18px; .displaying-num { font-size: 16px; } a { padding: 8px 20px 11px; font-size: 18px; } select { padding: 0 20px; } } .variations-defaults { float: none; text-align: center; margin-top: 10px; } .post-type-product { .wp-list-table { .column-thumb { display: none; text-align: left; padding-bottom: 0; &:before { display: none !important; } img { max-width: 32px; } } .is-expanded { td { &:not(.hidden) { overflow: visible; } } } .toggle-row { top: -28px; } } } .post-type-shop_order { .wp-list-table { .column-order_status { display: none; text-align: left; padding-bottom: 0; mark { margin: 0; } &:before { display: none !important; } } .column-customer_message, .column-order_notes { text-align: inherit; } .column-order_notes { .note-on { font-size: 1.3em; margin: 0; } } .is-expanded { td { &:not(.hidden) { overflow: visible; } } } .toggle-row { top: -15px; } } } } @media only screen and (max-width: 500px) { .woocommerce_options_panel label, .woocommerce_options_panel legend { float: none; width: auto; display: block; margin: 0; } .woocommerce_options_panel fieldset.form-field, .woocommerce_options_panel p.form-field { padding: 5px 20px 5px 20px !important; } } /** * Backbone modal dialog */ .wc-backbone-modal { * { box-sizing: border-box; } .wc-backbone-modal-content { position: fixed; background: #fff; z-index: 100000; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 500px; article { overflow: auto; } } &.wc-backbone-modal-shipping-method-settings { .wc-backbone-modal-content { width: 75%; min-width: 500px; } } } .wc-backbone-modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; min-height: 360px; background: #000; opacity: .7; z-index: 99900; } .wc-backbone-modal-main { padding-bottom: 55px; header, article { display: block; position: relative; } .wc-backbone-modal-header { height: auto; background: #fcfcfc; padding: 1em 1.5em; border-bottom: 1px solid #ddd; h1 { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.5em; } .modal-close-link { cursor: pointer; color: #777; height: 54px; width: 54px; padding: 0; position: absolute; top: 0; right: 0; text-align: center; border: 0; border-left: 1px solid #ddd; background-color: transparent; -webkit-transition: color .1s ease-in-out,background .1s ease-in-out; transition: color .1s ease-in-out,background .1s ease-in-out; &:before { font: normal 22px/50px 'dashicons' !important; color: #666; display: block; content: '\f335'; font-weight: 300; } &:hover, &:focus { background: #ddd; border-color: #ccc; color: #000; } &:focus { outline: none; } } } article { padding: 1.5em; p { margin: 1.5em 0; } p:first-child { margin-top: 0; } p:last-child { margin-bottom: 0; } .pagination { padding: 10px 0 0; text-align: center; } } footer { position: absolute; left: 0; right: 0; bottom: 0; z-index: 100; padding: 1em 1.5em; background: #fcfcfc; border-top: 1px solid #dfdfdf; box-shadow: 0 -4px 4px -4px rgba(0,0,0,0.1); .inner { float: right; line-height: 23px; .button { margin-bottom: 0; } } } } /** * Select2 */ .select2-drop { z-index: 999999 !important; } .select2-container-multi .select2-choices .select2-search-field input { font-family: inherit; font-size: inherit; font-weight: inherit; padding: 3px 5px; } .select2-container { line-height: 1.85em; font-size: 14px; } assets/css/activation.css000066600000004555152133032050011520 0ustar00div.woocommerce-message{overflow:hidden;position:relative;border-left-color:#cc99c2!important}div.woocommerce-message p{max-width:700px}.woocommerce-message a.button-primary,p.woocommerce-actions a.button-primary{background:#bb77ae;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;color:#fff;text-shadow:0 -1px 1px #A36597,1px 0 1px #A36597,0 1px 1px #A36597,-1px 0 1px #A36597}.woocommerce-message a.button-primary:active,.woocommerce-message a.button-primary:focus,.woocommerce-message a.button-primary:hover,p.woocommerce-actions a.button-primary:active,p.woocommerce-actions a.button-primary:focus,p.woocommerce-actions a.button-primary:hover{background:#A36597;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597}.woocommerce-message a.woocommerce-message-close,p.woocommerce-actions a.woocommerce-message-close{position:absolute;top:0;right:0;padding:10px 15px 10px 21px;font-size:13px;line-height:1.23076923;text-decoration:none}.woocommerce-message a.woocommerce-message-close:before,p.woocommerce-actions a.woocommerce-message-close:before{position:absolute;top:8px;left:0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.woocommerce-message a.button-primary,.woocommerce-message a.button-secondary,p.woocommerce-actions a.button-primary,p.woocommerce-actions a.button-secondary{text-decoration:none!important}.woocommerce-message .twitter-share-button,p.woocommerce-actions .twitter-share-button{margin-top:-3px;margin-left:3px;vertical-align:middle}.woocommerce-about-text,p.woocommerce-actions{margin-bottom:1em!important}div.woocommerce-legacy-shipping-notice,div.woocommerce-no-shipping-methods-notice{overflow:hidden;padding:1px 12px}div.woocommerce-legacy-shipping-notice p,div.woocommerce-no-shipping-methods-notice p{position:relative;z-index:1;max-width:700px;line-height:1.5em;margin:12px 0}div.woocommerce-legacy-shipping-notice p.main,div.woocommerce-no-shipping-methods-notice p.main{font-size:1.1em}div.woocommerce-legacy-shipping-notice:before,div.woocommerce-no-shipping-methods-notice:before{content:"\e01b";font-family:WooCommerce;text-align:center;line-height:1;color:#F7F1F6;display:block;width:1em;font-size:20em;top:36px;right:12px;position:absolute}assets/css/reports-print.scss000066600000003023152133032050012357 0ustar00/** * reports-print.scss * A print stylesheet for reports. Ensures reports look good when printed. */ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; font-size: 9pt !important; opacity: 1; -webkit-transition: none !important; } @page { margin: .5cm; } #adminmenuwrap, #adminmenuback, #wpadminbar, #screen-meta-links, .updated, .update-nag, .woocommerce-reports-wide .postbox h3.stats_range .export_csv, .woocommerce-reports-wrap .postbox h3.stats_range .export_csv, .woocommerce-reports-wide .button, #wpfooter, .woo-nav-tab-wrapper { display: none; } h2 .nav-tab { line-height: 14px; } .woocommerce-reports-wide .postbox h3.stats_range ul li.custom, .woocommerce-reports-wrap .postbox h3.stats_range ul li.custom, .woocommerce-reports-wide .postbox h3.stats_range ul li a, .woocommerce-reports-wrap .postbox h3.stats_range ul li a { padding: 5px; line-height: 14px; } #wpcontent { margin-left: 0; } .woocommerce-reports-wide .postbox .chart-with-sidebar .chart-sidebar, .woocommerce-reports-wrap .postbox .chart-with-sidebar .chart-sidebar { margin-left: -130px; width: 130px; display: block; } .woocommerce-reports-wide .postbox .chart-with-sidebar, .woocommerce-reports-wrap .postbox .chart-with-sidebar { padding-left: 130px; } .chart-legend { overflow: hidden; zoom: 1; } .chart-legend li, .chart-legend li { padding: .25em .5em !important; box-shadow: none !important; border-bottom: 1px solid gray !important; }assets/css/twenty-seventeen.scss000066600000033072152133032050013062 0ustar00/** * Twenty Seventeen integration styles */ @import 'bourbon'; /** * Fonts */ @font-face { font-family: 'star'; src: url('../fonts/star.eot'); src: url('../fonts/star.eot?#iefix') format('embedded-opentype'), url('../fonts/star.woff') format('woff'), url('../fonts/star.ttf') format('truetype'), url('../fonts/star.svg#star') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'WooCommerce'; src: url('../fonts/WooCommerce.eot'); src: url('../fonts/WooCommerce.eot?#iefix') format('embedded-opentype'), url('../fonts/WooCommerce.woff') format('woff'), url('../fonts/WooCommerce.ttf') format('truetype'), url('../fonts/WooCommerce.svg#WooCommerce') format('svg'); font-weight: normal; font-style: normal; } /** * Mixins */ @mixin link() { box-shadow: 0 1px 0 rgba(15, 15, 15, 1); @include transition( box-shadow ease-in-out 130ms ); &:hover { box-shadow: 0 3px 0 rgba(15, 15, 15, 1); } } @mixin link_white() { color: #fff; box-shadow: 0 1px 0 rgba(#fff, 1) !important; @include transition( box-shadow ease-in-out 130ms ); &:hover { color: #fff !important; box-shadow: 0 3px 0 rgba(#fff, 1) !important; } } /** * Global elements */ .woocommerce-demo-store { padding-top: 3.5em; } p.demo_store { position: fixed; top: 0; left: 0; right: 0; margin: 0; width: 100%; font-size: 1em; padding: 1em 0; text-align: center; background-color: #767676; color: #fff; z-index: 99998; box-shadow: 0 1px 1em rgba(0,0,0,0.2); a { color: #fff; } } .admin-bar { p.demo_store { top: 32px; } } .woocommerce-breadcrumb { padding-bottom: 2em; margin-bottom: 4em; border-bottom: 1px solid #eee; font-size: 13px; font-size: 0.8125rem; a { @include link(); } } .woocommerce-pagination { padding-top: 2em; margin-top: 4em; border-top: 1px solid #eee; font-size: 13px; font-size: 0.8125rem; ul.page-numbers { padding: 0; display: block; } span.page-numbers, a.page-numbers, .next.page-numbers, .prev.page-numbers { padding: 0.5em 1em; background: #ddd; display: inline-block; font-size: 1em; float: none; line-height: 1.5; border-radius: 2px; @include transition( background-color ease-in-out .3s ); } span.page-numbers { background-color: #fff; } a.page-numbers:hover { background-color: #767676; color: #fff; } } .onsale { background-color: #fff; position: absolute; top: 0; left: 0; display: inline-block; padding: .5em 1em; font-size: 13px; font-size: 0.8125rem; text-transform: uppercase; font-weight: 800; } .price { del { opacity: .5; } } .required { color: firebrick; &[title] { border-bottom: none; } } .woocommerce-message, .woocommerce-error, .woocommerce-info { margin-bottom: 1.5em; padding: 2em; background: #eee; } .woocommerce-message { background: teal; color: #fff; } .woocommerce-error { background: firebrick; color: #fff; } .woocommerce-info { background: royalblue; color: #fff; } .woocommerce-message, .woocommerce-error, .woocommerce-info { a { @include link_white(); } } .woocommerce-store-notice { background: royalblue; color: #fff; padding: 1em; position: absolute; top: 0; left: 0; width: 100%; z-index: 999; } .admin-bar .woocommerce-store-notice { top: 32px; } .woocommerce-store-notice__dismiss-link { float: right; color: #fff; &:hover { text-decoration: underline; color: #fff; } } /** * Shop page */ .woocommerce-result-count { padding: .75em 0; } /** * Products */ ul.products { li.product { list-style: none; .price, .star-rating { display: block; margin-bottom: .75em; } .button { @include link(); &.loading { opacity: .5; } } .added_to_cart { @include link(); margin-left: .5em; } } } .star-rating { overflow: hidden; position: relative; height: 1em; line-height: 1; font-size: 1em; width: 5.4em; font-family: 'star'; &::before { content: '\73\73\73\73\73'; float: left; top: 0; left: 0; position: absolute; } span { overflow: hidden; float: left; top: 0; left: 0; position: absolute; padding-top: 1.5em; } span::before { content: '\53\53\53\53\53'; top: 0; position: absolute; left: 0; } } .woocommerce-loop-product__title { font-size: 13px; font-size: 0.8125rem; text-transform: uppercase; font-weight: 800; letter-spacing: 0.15em; } a.remove { display: inline-block; width: 16px; height: 16px; line-height: 16px; font-size: 16px; text-align: center; border-radius: 100%; box-shadow: none !important; -webkit-box-shadow: none !important; border: 1px solid #000; &:hover { background: #000; color: #fff !important; } } dl.variation { dt { float: left; clear: both; margin-right: .25em; display: inline-block; } dd { margin: 0; } } /** * Single product */ .single-product { div.product { position: relative; } .single-featured-image-header { display: none; } .summary { margin-bottom: 3em; p.price { margin-bottom: 2em; } } .woocommerce-product-rating { margin-bottom: 2em; line-height: 1; .star-rating { float: left; margin-right: .25em; } } form.cart { .quantity { float: left; margin-right: .5em; } input { width: 5em; } } .woocommerce-variation-add-to-cart { .button { padding-top: .72em; padding-bottom: .72em; } .button.disabled { opacity: 0.2; } } } table.variations { label { margin: 0; } select { margin-right: .5em; } } .woocommerce-product-gallery { position: relative; margin-bottom: 3em; figure { margin: 0; } .flex-control-thumbs { li { list-style: none; float: left; cursor: pointer; } img { opacity: .5; &:hover, &.flex-active { opacity: 1; } } } img { display: block; } } .woocommerce-product-gallery--columns-3 { .flex-control-thumbs li { width: 33.3333%; } } .woocommerce-product-gallery--columns-4 { .flex-control-thumbs li { width: 25%; } } .woocommerce-product-gallery--columns-5 { .flex-control-thumbs li { width: 20%; } } .woocommerce-product-gallery__trigger { position: absolute; top: 1em; right: 1em; z-index: 99; } .woocommerce-tabs { margin-bottom: 2em; li { margin-right: 1em; &.active { a { box-shadow: 0 3px 0 rgba(15, 15, 15, 1); } } } a { @include link(); } #comments { padding-top: 0; } .comment-reply-title { font-size: 22px; font-size: 1.375rem; font-weight: 300; line-height: 1.4; margin: 0 0 0.75em; display: block; } #reviews { li.review, li.comment { list-style: none; margin-right: 0; margin-bottom: 2.5em; .avatar { max-height: 36px; width: auto; float: right; } p.meta { margin-bottom: .5em; } } p.stars { a { position: relative; height: 1em; width: 1em; text-indent: -999em; display: inline-block; text-decoration: none; box-shadow: none; &::before { display: block; position: absolute; top: 0; left: 0; width: 1em; height: 1em; line-height: 1; font-family: 'WooCommerce'; content: '\e021'; text-indent: 0; } &:hover { ~ a::before { content: '\e021'; } } } &:hover { a { &::before { content: '\e020'; } } } &.selected { a.active { &::before { content: '\e020'; } ~ a::before { content: '\e021'; } } a:not( .active ) { &::before { content: '\e020'; } } } } } } /** * Widgets */ .widget .product_list_widget, .site-footer .widget .product_list_widget { margin-bottom: 1.5em; a { display: block; box-shadow: none; &:hover { box-shadow: none; } } li { padding: 1.5em 0; a.remove { float: right; margin-top: 2px; } } img { display: none; } } .widget_shopping_cart { .buttons { a { display: inline-block; margin: 0 .5em 0 0; } } } .widget_layered_nav { .chosen { &:before { content: "×"; display: inline-block; width: 16px; height: 16px; line-height: 16px; font-size: 16px; text-align: center; border-radius: 100%; border: 1px solid black; margin-right: .25em; } } } .widget_price_filter { .price_slider { margin-bottom: 1em; } .price_slider_amount { text-align: right; line-height: 2.4; font-size: 0.8751em; .button { float: left; padding: .4em 1em; } } .ui-slider { position: relative; text-align: left; margin-left: 0.5em; margin-right: 0.5em; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1em; height: 1em; background-color: #000; border-radius: 1em; cursor: ew-resize; outline: none; top: -0.3em; margin-left: -0.5em; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: 0.7em; display: block; border: 0; border-radius: 1em; background-color: #000; } .price_slider_wrapper .ui-widget-content { border-radius: 1em; background-color: #666; border: 0; } .ui-slider-horizontal { height: 0.5em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: -1px; } .ui-slider-horizontal .ui-slider-range-max { right: -1px; } } .widget_rating_filter { li { text-align: right; .star-rating { float: left; margin-top: .3em; } } } .widget_product_search { form { position: relative; } .search-field { padding-right: 100px; } input[type=submit] { position: absolute; top: .5em; right: .5em; padding-left: 1em; padding-right: 1em; } } /** * Account section */ .woocommerce-account { .woocommerce-MyAccount-navigation { float: right; width: 25%; border-top: 1px solid #ddd; li { list-style: none; padding: .5em 0; border-bottom: 1px solid #ddd; a { box-shadow: none; &:hover { box-shadow: 0 3px 0 rgba(15, 15, 15, 1); } } &:before { content: "→"; display: inline-block; margin-right: .25em; color: #ddd; } &.is-active { a { box-shadow: 0 3px 0 rgba(15, 15, 15, 1); } } } } .woocommerce-MyAccount-content { float: left; } } /** * Cart */ .woocommerce-cart-form { td { padding: 1em .5em; } img { max-width: 42px; height: auto; display: block; } dl.variation { margin-top: 0; p, &:last-child { margin-bottom: 0; } } .button { padding: 1.2em 2em; } .actions { .input-text { width: 130px !important; float: left; margin-right: .25em; } } .quantity { input { width: 4em; } } } .checkout-button { display: block; padding: 1em 2em; border: 2px solid #000; text-align: center; font-weight: 800; box-shadow: none !important; -webkit-box-shadow: none !important; &:hover { box-shadow: none !important; -webkit-box-shadow: none !important; border-color: #999; } &:after { content: "→"; } } /** * Checkout */ #ship-to-different-address { label { font-weight: 300; cursor: pointer; span { position: relative; display: block; &:before { content: ""; display: block; height: 16px; width: 30px; border: 2px solid #bbb; background: #bbb; border-radius: 13em; box-sizing: content-box; @include transition(all,ease-in-out,.3s); position: absolute; top: 4px; right: 0; } &:after { content: ""; display: block; width: 14px; height: 14px; background: white; position: absolute; top: 7px; right: 17px; border-radius: 13em; @include transition(all,ease-in-out,.3s); } } input[type=checkbox] { display: none; } input[type=checkbox]:checked + span:after { right: 3px; } input[type=checkbox]:checked + span:before { border-color: #000; background: #000; } } } .woocommerce-checkout { .select2-choice, .select2-choice:hover { box-shadow: none !important; -webkit-box-shadow: none !important; } .select2-choice { padding: .7em 0 .7em .7em; } } .woocommerce-checkout-review-order-table { td { padding: 1em .5em; } dl.variation { margin: 0; p { margin: 0; } } } .wc_payment_method { list-style: none; border-bottom: 1px solid #ddd; .payment_box { padding: 2em; background: #eee; ul, ol { &:last-of-type { margin-bottom: 0; } } fieldset { padding: 1.5em; padding-bottom: 0; border: 0; background: #f6f6f6; } li { list-style: none; } p:last-child { margin-bottom: 0; } } > label:first-of-type { margin: 1em 0; img { max-height: 24px; max-width: 200px; float: right; } } label { cursor: pointer; } input[type=radio] { display: none; & + label { &:before { content: ""; display: inline-block; width: 16px; height: 16px; border: 2px solid white; box-shadow: 0 0 0 2px black; background: white; margin-left: 4px; margin-right: .5em; border-radius: 100%; @include transform(translateY(2px)); } } &:checked + label { &:before { background: black; } } } } /** * Layout stuff */ @media screen and (min-width: 48em) { .has-sidebar.woocommerce-page:not(.error404) { #primary { width: 74%; } #secondary { width: 20%; } } body.page-two-column.woocommerce-cart:not(.archive) #primary .entry-header, body.page-two-column.woocommerce-checkout:not(.archive) #primary .entry-header, body.page-two-column.woocommerce-account:not(.archive) #primary .entry-header { width: 16%; } body.page-two-column.woocommerce-cart:not(.archive) #primary .entry-content, body.page-two-column.woocommerce-checkout:not(.archive) #primary .entry-content, body.page-two-column.woocommerce-account:not(.archive) #primary .entry-content { width: 78%; } } assets/css/woocommerce-smallscreen.scss000066600000005657152133032050014373 0ustar00/** * woocommerce-smallscreen.scss * Optimises the default WooCommerce frontend layout when viewed on smaller screens. */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; /** * Style begins */ .woocommerce, .woocommerce-page { table.shop_table_responsive { thead { display: none; } tbody { tr:first-child { td:first-child { border-top: 0; } } th { display: none; } } tr { display: block; td { display: block; text-align: right !important; // Important to overwrite order status inline styling &.order-actions { text-align: left !important; } &:before { content: attr(data-title) ': '; font-weight: 700; float: left; } &.product-remove, &.actions { &:before { display: none; } } } &:nth-child(2n) { td { background-color: rgba(0,0,0,0.025); } } } } table.my_account_orders { tr { td { &.order-actions { text-align: left; &:before { display: none; } .button { float: none; margin: .125em .25em .125em 0; } } } } } /** * General layout */ .col2-set { .col-1, .col-2 { float: none; width: 100%; } } /** * Products */ &, &[class*="columns-"] { ul.products { li.product { width: 48%; float: left; clear: both; margin: 0 0 2.992em; &:nth-child(2n) { float: right; clear: none !important; } } } } /** * Product Details */ div.product, #content div.product { div.images, div.summary { float: none; width: 100%; } } /** * Cart */ table.cart, #content table.cart { .product-thumbnail { display: none; } td.actions { text-align: left; .coupon { float: none; @include clearfix(); padding-bottom: .5em; input, .button, .input-text { width: 48%; box-sizing: border-box; } .input-text + .button, .button.alt { float: right; } } .button { display: block; width: 100%; } } } .cart-collaterals { .cart_totals, .shipping_calculator, .cross-sells { width: 100%; float: none; text-align: left; } } /** * Checkout */ &.woocommerce-checkout { form.login { .form-row { width: 100%; float: none; } } } #payment { .terms { text-align: left; padding: 0; } #place_order { float: none; width: 100%; box-sizing: border-box; margin-bottom: 1em; } } /** * Account */ .lost_reset_password { .form-row-first, .form-row-last { width: 100%; float: none; margin-right: 0; } } } .woocommerce-account { .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { float: none; width: 100%; } } /** * Twenty Thirteen specific styles */ .single-product { .twentythirteen { .panel { padding-left: 20px !important; padding-right: 20px !important; } } } assets/css/prettyPhoto.scss000066600000017531152133032050012101 0ustar00/** * prettyPhoto.scss * Styles for the prettyPhoto lightbox script. Includes a custom WooCommerce theme. * http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/ */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; @import "fonts"; /** * Mixins */ @mixin button() { border-radius: 100%; height: 1em; width: 1em; text-shadow: 0 1px 2px rgba(0,0,0,0.5); background-color: #444; color: #fff !important; font-size: 16px !important; line-height: 1em; @include transition(); &:hover { background-color: #000; } } /** * Custom WooCommerce prettyPhoto theme */ div.pp_woocommerce { .pp_content_container { background: #fff; border-radius: 3px; box-shadow: 0 1px 30px rgba(0,0,0,0.25); padding: 20px 0; @include clearfix(); } .pp_loaderIcon { @include loader(); } div.ppt { color: black; } .pp_gallery { ul { li { a { border: 1px solid rgba(0,0,0,0.5); background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.2); border-radius: 2px; display: block; &:hover { border-color: #000; } } &.selected { a { border-color: #000; } } } } } .pp_previous, .pp_next { &:before { @include button(); font-family: 'WooCommerce'; content: "\e00b"; text-indent: 0; display: none; position: absolute; top: 50%; margin-top: -10px; text-align: center; } &:hover { &:before { display: block; } } } .pp_previous { &:before { left: 1em; } } .pp_next { &:before { right: 1em; font-family: 'WooCommerce'; content: "\e008"; } } .pp_details { margin: 0; padding-top: 1em; } .pp_nav, .pp_description { font-size: 14px; } .pp_nav, .pp_nav p, .pp_play, .pp_nav .pp_pause, .pp_arrow_previous, .pp_arrow_next { margin: 0; } .pp_nav { margin-right: 1em; position: relative; } .pp_close { @include button(); top: -.5em; right: -.5em; font-size: 1.618em !important; &:before { font-family: 'WooCommerce'; content: "\e013"; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; text-align: center; text-indent: 0; } } .pp_arrow_previous, .pp_arrow_next { @include button(); position: relative; margin-top: -1px; &:before { font-family: 'WooCommerce'; content: "\e00b"; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; text-align: center; text-indent: 0; } } .pp_arrow_previous { margin-right: .5em; } .pp_arrow_next { margin-left: .5em; &:before { content: "\e008"; } } a.pp_expand, a.pp_contract { @include button(); right: auto; left: -.5em; top: -.5em; font-size: 1.618em !important; &:before { font-family: 'WooCommerce'; content: "\e005"; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; text-align: center; text-indent: 0; } } a.pp_contract { &:before { content: "\e004"; } } #respond { margin: 0; width: 100%; background: none; border: none; padding: 0; .form-submit { margin-top: 0; float: none; } } .pp_inline { padding: 0!important; } } // RTL support .rtl { div.pp_woocommerce { .pp_content_container { text-align: right; } } } @media only screen and (max-width: 768px) { div.pp_woocommerce { left: 5% !important; right: 5% !important; box-sizing: border-box; width: 90% !important; .pp_gallery, .pp_previous, .pp_next, .pp_expand, .pp_contract { display: none !important; } .pp_arrow_previous, .pp_arrow_next, .pp_close { height: 44px; width: 44px; font-size: 44px; line-height: 44px; &:before { font-size: 44px; } } .pp_description { display: none !important; } .pp_details { width: 100% !important; } } .pp_content { width: 100% !important; #pp_full_res{ & > img{ width: 100% !important; height: auto !important; } } } .currentTextHolder { line-height: 3; } } /** * Default prettyPhoto css * Do not edit! */ div.pp_pic_holder a:focus { outline: none; } div.pp_overlay { background: #000; display: none; left: 0; position: absolute; top: 0; width: 100%; z-index: 9999; } div.pp_pic_holder { display: none; position: absolute; width: 100px; z-index: 10000; } .pp_top { height: 20px; position: relative; } * html .pp_top { padding: 0 20px; } .pp_top .pp_left { height: 20px; left: 0; position: absolute; width: 20px; } .pp_top .pp_middle { height: 20px; left: 20px; position: absolute; right: 20px; } * html .pp_top .pp_middle { left: 0; position: static; } .pp_top .pp_right { height: 20px; left: auto; position: absolute; right: 0; top: 0; width: 20px; } .pp_content { height: 40px; min-width: 40px; } * html .pp_content { width: 40px; } .pp_fade { display: none; } .pp_content_container { position: relative; text-align: left; width: 100%; } .pp_content_container .pp_left { padding-left: 20px; } .pp_content_container .pp_right { padding-right: 20px; } .pp_content_container .pp_details { float: left; margin: 10px 0 2px 0; } .pp_description { display: none; margin: 0; } .pp_social { float: left; margin: 0; } .pp_social .facebook { float: left; margin-left: 5px; width: 55px; overflow: hidden; } .pp_social .twitter { float: left; } .pp_nav { clear: right; float: left; margin: 3px 10px 0 0; } .pp_nav p { float: left; margin: 2px 4px; white-space: nowrap; } .pp_nav .pp_play, .pp_nav .pp_pause { float: left; margin-right: 4px; text-indent: -10000px; } a.pp_arrow_previous, a.pp_arrow_next { display: block; float: left; height: 15px; margin-top: 3px; text-indent: -100000px; width: 14px; } .pp_hoverContainer { position: absolute; top: 0; width: 100%; z-index: 2000; } .pp_gallery { display: none; left: 50%; margin-top: -50px; position: absolute; z-index: 10000; } .pp_gallery div { float: left; overflow: hidden; position: relative; } .pp_gallery ul { float: left; height: 35px; margin: 0 0 0 5px; padding: 0; position: relative; white-space: nowrap; } .pp_gallery ul a { border: 1px #000 solid; border: 1px rgba(0,0,0,0.5) solid; display: block; float: left; height: 33px; overflow: hidden; } .pp_gallery ul a:hover, .pp_gallery li.selected a { border-color: #fff; } .pp_gallery ul a img { border: 0; } .pp_gallery li { display: block; float: left; margin: 0 5px 0 0; padding: 0; } .pp_gallery li.default a { display: block; height: 33px; width: 50px; } .pp_gallery li.default a img { display: none; } .pp_gallery .pp_arrow_previous, .pp_gallery .pp_arrow_next { margin-top: 7px !important; } a.pp_next { display: block; float: right; height: 100%; text-indent: -10000px; width: 49%; } a.pp_previous { display: block; float: left; height: 100%; text-indent: -10000px; width: 49%; } a.pp_expand, a.pp_contract { cursor: pointer; display: none; height: 20px; position: absolute; right: 30px; text-indent: -10000px; top: 10px; width: 20px; z-index: 20000; } a.pp_close { position: absolute; right: 0; top: 0; display: block; text-indent: -10000px; } .pp_bottom { height: 20px; position: relative; } * html .pp_bottom { padding: 0 20px; } .pp_bottom .pp_left { height: 20px; left: 0; position: absolute; width: 20px; } .pp_bottom .pp_middle { height: 20px; left: 20px; position: absolute; right: 20px; } * html .pp_bottom .pp_middle { left: 0; position: static; } .pp_bottom .pp_right { height: 20px; left: auto; position: absolute; right: 0; top: 0; width: 20px; } .pp_loaderIcon { display: block; height: 24px; left: 50%; margin: -12px 0 0 -12px; position: absolute; top: 50%; width: 24px; } #pp_full_res .pp_inline { text-align: left; } div.ppt { color: #fff !important; font-weight: 700; display: none; font-size: 17px; margin: 0 0 5px 15px; z-index: 9999; } assets/css/woocommerce-layout.scss000066600000014776152133032050013402 0ustar00/** * woocommerce-layout.scss * Applies layout to the default WooCommerce frontend design */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; /** * Styling begins */ .woocommerce, .woocommerce-page { /** * General layout styles */ .col2-set { @include clearfix(); width: 100%; .col-1 { float: left; width: 48%; } .col-2 { float: right; width: 48%; } } img { height: auto; max-width: 100%; } /** * Product page */ div.product, #content div.product { div.images { float: left; width: 48%; } div.thumbnails { @include clearfix(); a { float: left; width: 30.75%; margin-right: 3.8%; margin-bottom: 1em; } a.last { margin-right: 0; } a.first { clear: both; } &.columns-1 { a { width: 100%; margin-right: 0; float: none; } } &.columns-2 { a { width: 48%; } } &.columns-4 { a { width: 22.05%; } } &.columns-5 { a { width: 16.9%; } } } div.summary { float: right; width: 48%; } .woocommerce-tabs { clear: both; ul.tabs { @include menu(); } } #reviews { .comment { @include mediaright(); } } } /** * Product loops */ ul.products { clear: both; @include clearfix(); li.product { float: left; margin: 0 3.8% 2.992em 0; padding: 0; position: relative; width: 22.05%; margin-left: 0; } li.first { clear: both; } li.last { margin-right: 0; } } &.columns-1 { ul.products { li.product { width: 100%; margin-right: 0; } } } &.columns-2 { ul.products { li.product { width: 48%; } } } &.columns-3 { ul.products { li.product { width: 30.75%; } } } &.columns-5 { ul.products { li.product { width: 16.95%; } } } &.columns-6 { ul.products { li.product { width: 13.5%; } } } .woocommerce-result-count { float: left; } .woocommerce-ordering { float: right; } .woocommerce-pagination { ul.page-numbers { @include menu(); } } /** * Cart page */ table.cart, #content table.cart { img { height: auto; } td.actions { text-align: right; .input-text { width: 80px; } .coupon { float: left; label { display: none; } } } } .cart-collaterals { @include clearfix(); width: 100%; .related { width: 30.75%; float: left; } .cross-sells { width: 48%; float: left; ul.products { float: none; li { width: 48%; } } } .shipping_calculator { width: 48%; @include clearfix(); clear: right; float: right; .col2-set { .col-1, .col-2 { width: 47%; } } } .cart_totals { float: right; width: 48%; } } /** * Cart sidebar */ ul.cart_list, ul.product_list_widget { li { @include mediaright(); } } /** * Forms */ form { .form-row { @include clearfix(); label { display: block; &.checkbox { display: inline; } } select { width: 100%; } .input-text { box-sizing: border-box; width: 100%; } } .form-row-first, .form-row-last { float: left; width: 47%; overflow: visible; } .form-row-last { float: right; } .form-row-wide { clear: both; } } #payment { .form-row { select { width: auto; } } .wc-terms-and-conditions, .terms { text-align: left; padding: 0 1em 0 0; float:left; } #place_order { float: right; } } } .woocommerce-account { .woocommerce-MyAccount-navigation { float: left; width: 30%; } .woocommerce-MyAccount-content { float: right; width: 68%; } } /** * Twenty Eleven specific styles */ .woocommerce-page { &.left-sidebar { #content.twentyeleven { width: 58.4%; margin: 0 7.6%; float: right; } } &.right-sidebar { #content.twentyeleven { margin: 0 7.6%; width: 58.4%; float: left; } } } /** * Twenty Fourteen specific styles */ .twentyfourteen { .tfwc { padding: 12px 10px 0; max-width: 474px; margin: 0 auto; .product .entry-summary { padding: 0 !important; margin: 0 0 1.618em !important; } div.product.hentry.has-post-thumbnail { margin-top: 0; } .product { .images { img { margin-bottom: 1em; } } } } } @media screen and (min-width: 673px) { .twentyfourteen { .tfwc { padding-right: 30px; padding-left: 30px; } } } @media screen and (min-width: 1040px) { .twentyfourteen { .tfwc { padding-right: 15px; padding-left: 15px; } } } @media screen and (min-width: 1110px) { .twentyfourteen { .tfwc { padding-right: 30px; padding-left: 30px; } } } @media screen and (min-width: 1218px) { .twentyfourteen { .tfwc { margin-right: 54px; } } .full-width { .twentyfourteen { .tfwc { margin-right: auto; } } } } /** * Twenty Fifteen specific styles */ .twentyfifteen { .t15wc { padding-left: 7.6923%; padding-right: 7.6923%; padding-top: 7.6923%; margin-bottom: 7.6923%; background: #fff; box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); .page-title { margin-left: 0; } } } @media screen and (min-width: 38.75em) { .twentyfifteen { .t15wc { margin-right: 7.6923%; margin-left: 7.6923%; margin-top: 8.3333%; } } } @media screen and (min-width: 59.6875em) { .twentyfifteen { .t15wc { margin-left: 8.3333%; margin-right: 8.3333%; padding: 10%; } } .single-product { .twentyfifteen { .entry-summary { padding: 0 !important; } } } } /** * Twenty Sixteen specific styles */ .twentysixteen { .site-main { margin-right: 7.6923%; margin-left: 7.6923%; } .entry-summary { margin-right: 0; margin-left: 0; } } #content { .twentysixteen { div.product { div.images, div.summary { width: 46.42857%; } } } } @media screen and (min-width: 44.375em) { .twentysixteen { .site-main { margin-right: 23.0769%; } } } @media screen and (min-width: 56.875em) { .twentysixteen { .site-main { margin-right: 0; margin-left: 0; } } .no-sidebar { .twentysixteen { .site-main { margin-right: 15%; margin-left: 15%; } .entry-summary { margin-right: 0; margin-left: 0; } } } } /** * RTL styles. */ .rtl { .woocommerce, .woocommerce-page { .col2-set { .col-1 { float: right; } .col-2 { float: left; } } form { .form-row-first, .form-row-last { float: right; } .form-row-last { float: left; } } } } assets/css/_animation.scss000066600000000217152133032050011647 0ustar00/** * _animation.scss * Custom WooCommerce Animations. */ @include keyframes( spin ) { 100% { @include transform( rotate(360deg) ); } } assets/css/dashboard.css000066600000010706152133032050011301 0ustar00@charset "UTF-8";@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}ul.woocommerce_stats{overflow:hidden;zoom:1}ul.woocommerce_stats li{width:25%;padding:0 1em;float:left;font-size:.8em;border-left:1px solid #fff;border-right:1px solid #ececec;text-align:center;box-sizing:border-box}ul.woocommerce_stats li:first-child{border-left:0}ul.woocommerce_stats li:last-child{border-right:0}#woocommerce_dashboard_status .wc_status_list li.low-in-stock,#woocommerce_dashboard_status .wc_status_list li.processing-orders{border-right:1px solid #ececec}ul.woocommerce_stats strong{font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:4em;line-height:1.2em;font-weight:400;text-align:center;display:block}#woocommerce_dashboard_status .inside{padding:0;margin:0}#woocommerce_dashboard_status .wc_status_list{overflow:hidden;margin:0}#woocommerce_dashboard_status .wc_status_list li{width:50%;float:left;padding:0;box-sizing:border-box;margin:0;border-top:1px solid #ececec;color:#aaa}#woocommerce_dashboard_status .wc_status_list li a{display:block;color:#aaa;padding:9px 12px;-webkit-transition:all ease .5s;position:relative;font-size:12px}#woocommerce_dashboard_status .wc_status_list li a .wc_sparkline{width:4em;height:2em;display:block;float:right;position:absolute;right:0;top:50%;margin-right:12px;margin-top:-1.25em}#woocommerce_dashboard_status .wc_status_list li a strong{font-size:18px;line-height:1.2em;font-weight:400;display:block;color:#21759b}#woocommerce_dashboard_status .wc_status_list li a:hover{color:#2ea2cc}#woocommerce_dashboard_status .wc_status_list li a:hover strong,#woocommerce_dashboard_status .wc_status_list li a:hover:before{color:#2ea2cc!important}#woocommerce_dashboard_status .wc_status_list li a:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0 12px 12px 0;text-indent:0;top:0;left:0;height:100%;text-align:center;content:"";font-size:2em;position:relative;width:auto;line-height:1.2em;color:#464646;float:left}#woocommerce_dashboard_status .wc_status_list li.best-seller-this-month,#woocommerce_dashboard_status .wc_status_list li.sales-this-month{width:100%}#woocommerce_dashboard_status .wc_status_list li:first-child{border-top:0}#woocommerce_dashboard_status .wc_status_list li.sales-this-month a:before{font-family:Dashicons;content:"\f185"}#woocommerce_dashboard_status .wc_status_list li.best-seller-this-month a:before{content:"\e006"}#woocommerce_dashboard_status .wc_status_list li.processing-orders a:before{content:"\e011";color:#7ad03a}#woocommerce_dashboard_status .wc_status_list li.on-hold-orders a:before{content:"\e033";color:#999}#woocommerce_dashboard_status .wc_status_list li.low-in-stock a:before{content:"\e016";color:#ffba00}#woocommerce_dashboard_status .wc_status_list li.out-of-stock a:before{content:"\e013";color:#a00}#woocommerce_dashboard_recent_reviews li{line-height:1.5em;margin-bottom:12px}#woocommerce_dashboard_recent_reviews h4.meta{line-height:1.4;margin:-.2em 0 0;font-weight:400;color:#999}#woocommerce_dashboard_recent_reviews blockquote{padding:0;margin:0}#woocommerce_dashboard_recent_reviews .avatar{float:left;margin:0 10px 5px 0}#woocommerce_dashboard_recent_reviews .star-rating{float:right;overflow:hidden;position:relative;height:1.5em;line-height:1.5;margin-left:.5em;width:5.4em;font-family:WooCommerce!important}#woocommerce_dashboard_recent_reviews .star-rating:before{content:"\e021\e021\e021\e021\e021";color:#b3b3b3;float:left;top:0;left:0;position:absolute;letter-spacing:.1em;letter-spacing:0\9}#woocommerce_dashboard_recent_reviews .star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}#woocommerce_dashboard_recent_reviews .star-rating span:before{content:"\e020\e020\e020\e020\e020";top:0;position:absolute;left:0;letter-spacing:.1em;letter-spacing:0\9;color:#9c5d90}#dash-right-now li.product-count a:before{font-family:WooCommerce;content:"\e01d"}assets/css/activation.scss000066600000003702152133032050011674 0ustar00/** * activation.scss * Styles applied to elements displayed on activation */ /** * Imports */ @import "bourbon"; /** * Styling begins */ div.woocommerce-message { overflow: hidden; position: relative; border-left-color: #cc99c2 !important; p { max-width: 700px; } } p.woocommerce-actions, .woocommerce-message { a.button-primary { background: #bb77ae; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; color: #fff; text-shadow: 0px -1px 1px #A36597, 1px 0px 1px #A36597, 0px 1px 1px #A36597, -1px 0px 1px #A36597; &:hover, &:focus, &:active { background: #A36597; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; } } a.woocommerce-message-close { position: absolute; top: 0; right: 0; padding: 10px 15px 10px 21px; font-size: 13px; line-height: 1.23076923; text-decoration: none; &:before { position: absolute; top: 8px; left: 0; -webkit-transition: all .1s ease-in-out; transition: all .1s ease-in-out; } } a.button-primary, a.button-secondary { text-decoration: none !important; } .twitter-share-button { margin-top: -3px; margin-left: 3px; vertical-align: middle; } } p.woocommerce-actions, .woocommerce-about-text { margin-bottom: 1em !important; } div.woocommerce-legacy-shipping-notice, div.woocommerce-no-shipping-methods-notice { overflow: hidden; padding: 1px 12px; p { position: relative; z-index: 1; max-width: 700px; line-height: 1.5em; margin: 12px 0; &.main { font-size: 1.1em; } } &:before { content: "\e01b"; font-family: "WooCommerce"; text-align: center; line-height: 1; color: #F7F1F6; display: block; width: 1em; font-size: 20em; top: 36px; right: 12px; position: absolute; } } assets/css/select2.scss000066600000034527152133032050011105 0ustar00/* Version: 3.5.2 Timestamp: Sat Nov 1 14:43:36 EDT 2014 */ .select2-container { margin: 0; position: relative; display: block !important; zoom: 1; *display: inline; vertical-align: middle; } .select2-container, .select2-drop, .select2-search, .select2-search input { /* Force border-box so that % widths fit the parent container without overlap because of margin/padding. More Info : http://www.quirksmode.org/css/box.html */ -webkit-box-sizing: border-box; /* webkit */ -moz-box-sizing: border-box; /* firefox */ box-sizing: border-box; /* css3 */ } .select2-container .select2-choice { display: block; padding: 0 0 0 8px; overflow: hidden; position: relative; border: 1px solid #ccc; white-space: nowrap; color: #444; text-decoration: none; border-radius: 3px; background-clip: padding-box; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-color: #fff; font-weight: 400; } html[dir="rtl"] .select2-container .select2-choice { padding: 0 8px 0 0; } .select2-container.select2-drop-above .select2-choice { border-bottom-color: #ccc; border-radius: 0 0 4px 4px; } .select2-container.select2-allowclear .select2-choice .select2-chosen { margin-right: 42px; } .select2-container .select2-choice > .select2-chosen { margin-right: 26px; display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; float: none; width: auto; } html[dir="rtl"] .select2-container .select2-choice > .select2-chosen { margin-left: 26px; margin-right: 0; } .select2-container .select2-choice abbr { display: none; width: 12px; height: 12px; position: absolute; right: 24px; top: 5px; font-size: 1px; text-decoration: none; border: 0; background: url('../images/select2.png') right top no-repeat; cursor: pointer; outline: 0; } .select2-container.select2-allowclear .select2-choice abbr { display: inline-block; } .select2-container .select2-choice abbr:hover { background-position: right -11px; cursor: pointer; } .select2-drop-mask { border: 0; margin: 0; padding: 0; position: fixed; left: 0; top: 0; min-height: 100%; min-width: 100%; height: auto; width: auto; opacity: 0; z-index: 9998; /* styles required for IE to work */ background-color: #fff; filter: alpha(opacity=0); } .select2-drop { width: 100%; margin-top: -1px; position: absolute; z-index: 9999; top: 100%; background: #fff; color: #000; border: 1px solid #ccc; border-top: 0; border-radius: 0 0 3px 3px; } .select2-drop.select2-drop-above { margin-top: 1px; border-top: 1px solid #ccc; border-bottom: 0; border-radius: 3px 3px 0 0; //-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); // box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); } .select2-drop-active { border: 1px solid #666; border-top: none; } .select2-drop.select2-drop-above.select2-drop-active { border-top: 1px solid #666; } .select2-drop-auto-width { border-top: 1px solid #ccc; width: auto; } .select2-drop-auto-width .select2-search { padding-top: 4px; } .select2-container .select2-choice .select2-arrow { display: inline-block; width: 18px; height: 100%; position: absolute; right: 0; top: 0; border-radius: 0 3px 3px 0; background-clip: padding-box; } html[dir="rtl"] .select2-container .select2-choice .select2-arrow { left: 0; right: auto; border-radius: 3px 0 0 3px; } .select2-container .select2-choice .select2-arrow b { display: block; width: 100%; height: 100%; //background: url('../images/select2.png') no-repeat 0 1px; position: relative; &:after { position: absolute; display: block; content: ""; top: 50%; left: 50%; border: 4px solid transparent; border-top-color: #666; margin-left: -7px; margin-top: -2px; } } html[dir="rtl"] .select2-container .select2-choice .select2-arrow b { //background-position: 2px 1px; } .select2-search { display: inline-block; width: 100%; margin: 0; padding-left: 4px; padding-right: 4px; position: relative; z-index: 10000; white-space: nowrap; //box-shadow: 0 1px 2px rgba(0,0,0,0.2); padding-bottom: 4px; } .select2-search input { width: 100%; height: auto !important; padding: 4px 20px 4px 5px !important; margin: 0; outline: 0; font-family: sans-serif; font-size: 1em; border: 1px solid #ccc; -webkit-box-shadow: none; box-shadow: none; background: #fff url('../images/select2.png') no-repeat 100% -22px; } html[dir="rtl"] .select2-search input { padding: 4px 5px 4px 20px; background: #fff url('../images/select2.png') no-repeat -37px -22px; } .select2-drop.select2-drop-above .select2-search input { margin-top: 4px; } .select2-search input.select2-active { background: #fff url('../images/select2-spinner.gif') no-repeat 100%; } .select2-container-active .select2-choice, .select2-container-active .select2-choices { border: 1px solid #666; outline: none; } .select2-dropdown-open .select2-choice { border-bottom-color: transparent; -webkit-box-shadow: 0 1px 0 #fff inset; box-shadow: 0 1px 0 #fff inset; border-bottom-left-radius: 0; border-bottom-right-radius: 0; .select2-arrow { b { &:after { border-top-color: transparent; border-bottom-color: #666; margin-top: -6px; } } } } .select2-dropdown-open.select2-drop-above .select2-choice, .select2-dropdown-open.select2-drop-above .select2-choices { border: 1px solid #666; border-top-color: transparent; } .select2-dropdown-open .select2-choice .select2-arrow { background: transparent; border-left: none; filter: none; } html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow { border-right: none; } .select2-dropdown-open .select2-choice .select2-arrow b { background-position: -18px 1px; } html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b { background-position: -16px 1px; } .select2-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } /* results */ .select2-results { max-height: 200px; padding: 4px; margin: 0; position: relative; overflow-x: hidden; overflow-y: auto; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); background: #fafafa; } html[dir="rtl"] .select2-results { padding: 0 4px 0 0; margin: 4px 0 4px 4px; } .select2-results ul.select2-result-sub { margin: 0; padding-left: 0; } .select2-results li { list-style: none; display: list-item; background-image: none; margin: 3px 0; } .select2-results li.select2-result-with-children > .select2-result-label { font-weight: bold; } .select2-results .select2-result-label { padding: 5px 7px; margin: 0; cursor: pointer; min-height: 1em; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .select2-results-dept-1 .select2-result-label { padding-left: 20px } .select2-results-dept-2 .select2-result-label { padding-left: 40px } .select2-results-dept-3 .select2-result-label { padding-left: 60px } .select2-results-dept-4 .select2-result-label { padding-left: 80px } .select2-results-dept-5 .select2-result-label { padding-left: 100px } .select2-results-dept-6 .select2-result-label { padding-left: 110px } .select2-results-dept-7 .select2-result-label { padding-left: 120px } .select2-results .select2-highlighted { background: #f1f1f1; color: #000; border-radius: 3px; } .select2-results li em { background: #feffde; font-style: normal; } .select2-results .select2-highlighted em { background: transparent; } .select2-results .select2-highlighted ul { background: #fff; color: #000; } .select2-results .select2-no-results, .select2-results .select2-searching, .select2-results .select2-ajax-error, .select2-results .select2-selection-limit { background: #f4f4f4; display: list-item; padding-left: 5px; } /* disabled look for disabled choices in the results dropdown */ .select2-results .select2-disabled.select2-highlighted { color: #666; background: #f4f4f4; display: list-item; cursor: default; } .select2-results .select2-disabled { background: #f4f4f4; display: list-item; cursor: default; } .select2-results .select2-selected { display: none; } .select2-more-results.select2-active { background: #f4f4f4 url('../images/select2-spinner.gif') no-repeat 100%; } .select2-results .select2-ajax-error { background: rgba(255, 50, 50, .2); } .select2-more-results { background: #f4f4f4; display: list-item; } /* disabled styles */ .select2-container.select2-container-disabled .select2-choice { background-color: #f4f4f4; background-image: none; border: 1px solid #ddd; cursor: default; } .select2-container.select2-container-disabled .select2-choice .select2-arrow { background-color: #f4f4f4; background-image: none; border-left: 0; } .select2-container.select2-container-disabled .select2-choice abbr { display: none; } /* multiselect */ .select2-container-multi .select2-choices { height: auto !important; height: 1%; margin: 0; padding: 0 5px 0 0; position: relative; border: 1px solid #ccc; cursor: text; overflow: hidden; background-color: #fff; } html[dir="rtl"] .select2-container-multi .select2-choices { padding: 0 0 0 5px; } .select2-locked { padding: 3px 5px 3px 5px !important; } .select2-container-multi .select2-choices { min-height: 26px; } .select2-container-multi.select2-container-active .select2-choices { border: 1px solid #666; outline: none; //-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3); // box-shadow: 0 0 5px rgba(0, 0, 0, .3); } .select2-container-multi .select2-choices li { float: left; list-style: none; } html[dir="rtl"] .select2-container-multi .select2-choices li { float: right; } .select2-container-multi .select2-choices .select2-search-field { margin: 0; padding: 0; white-space: nowrap; } .select2-container-multi .select2-choices .select2-search-field:first-child { width: 100%; } .select2-container-multi .select2-choices .select2-search-field input { padding: 5px; margin: 1px 0; font-family: sans-serif; outline: 0; border: 0; -webkit-box-shadow: none; box-shadow: none; background: transparent !important; } .select2-container-multi .select2-choices .select2-search-field input.select2-active { background: #fff url('../images/select2-spinner.gif') no-repeat 100% !important; } .select2-default { color: #999 !important; } .select2-container-multi .select2-choices .select2-search-choice { padding: 5px 8px 5px 24px; margin: 3px 0 3px 5px; position: relative; line-height: 15px; color: #333; cursor: default; border-radius: 2px; background-clip: padding-box; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-color: #e4e4e4; } html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice { margin: 3px 5px 3px 0; padding: 5px 24px 5px 8px; } .select2-container-multi .select2-choices .select2-search-choice .select2-chosen { cursor: default; } .select2-container-multi .select2-choices .select2-search-choice-focus { background: #d4d4d4; } .select2-search-choice-close { display: block; width: 12px; height: 13px; position: absolute; right: 7px; top: 6px; font-size: 1px; outline: none; background: url('../images/select2.png') right top no-repeat; } html[dir="rtl"] .select2-search-choice-close { right: auto; left: 7px; } .select2-container-multi .select2-search-choice-close { left: 7px; } html[dir="rtl"] .select2-container-multi .select2-search-choice-close { left: auto; right: 7px; } .select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover { background-position: right -11px; } .select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close { background-position: right -11px; } /* disabled styles */ .select2-container-multi.select2-container-disabled .select2-choices { background-color: #f4f4f4; background-image: none; border: 1px solid #ddd; cursor: default; } .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice { padding: 3px 5px 3px 5px; border: 1px solid #ddd; background-image: none; background-color: #f4f4f4; } .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none; background: none; } /* end multiselect */ .select2-result-selectable .select2-match, .select2-result-unselectable .select2-match { text-decoration: underline; } .select2-offscreen, .select2-offscreen:focus { clip: rect(0 0 0 0) !important; width: 1px !important; height: 1px !important; border: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; position: absolute !important; outline: 0 !important; left: 0px !important; top: 0px !important; } .select2-display-none { display: none; } .select2-measure-scrollbar { position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; overflow: scroll; } /* Retina-ize icons */ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) { .select2-search input { background-image: url('../images/select2x2.png') !important; background-repeat: no-repeat !important; background-size: 60px 40px !important; } .select2-search input { background-position: 100% -21px !important; } } assets/css/woocommerce-layout.css000066600000034514152133032050013207 0ustar00.woocommerce #content div.product .woocommerce-tabs ul.tabs:after,.woocommerce #content div.product .woocommerce-tabs ul.tabs:before,.woocommerce #content div.product div.thumbnails:after,.woocommerce #content div.product div.thumbnails:before,.woocommerce .col2-set:after,.woocommerce .col2-set:before,.woocommerce div.product .woocommerce-tabs ul.tabs:after,.woocommerce div.product .woocommerce-tabs ul.tabs:before,.woocommerce div.product div.thumbnails:after,.woocommerce div.product div.thumbnails:before,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs:after,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs:before,.woocommerce-page #content div.product div.thumbnails:after,.woocommerce-page #content div.product div.thumbnails:before,.woocommerce-page .col2-set:after,.woocommerce-page .col2-set:before,.woocommerce-page div.product .woocommerce-tabs ul.tabs:after,.woocommerce-page div.product .woocommerce-tabs ul.tabs:before,.woocommerce-page div.product div.thumbnails:after,.woocommerce-page div.product div.thumbnails:before{content:" ";display:table}.woocommerce #content div.product .woocommerce-tabs,.woocommerce #content div.product .woocommerce-tabs ul.tabs:after,.woocommerce #content div.product div.thumbnails a.first,.woocommerce #content div.product div.thumbnails:after,.woocommerce .cart-collaterals:after,.woocommerce .col2-set:after,.woocommerce .woocommerce-pagination ul.page-numbers:after,.woocommerce div.product .woocommerce-tabs,.woocommerce div.product .woocommerce-tabs ul.tabs:after,.woocommerce div.product div.thumbnails a.first,.woocommerce div.product div.thumbnails:after,.woocommerce ul.products,.woocommerce ul.products li.first,.woocommerce ul.products:after,.woocommerce-page #content div.product .woocommerce-tabs,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs:after,.woocommerce-page #content div.product div.thumbnails a.first,.woocommerce-page #content div.product div.thumbnails:after,.woocommerce-page .cart-collaterals:after,.woocommerce-page .col2-set:after,.woocommerce-page .woocommerce-pagination ul.page-numbers:after,.woocommerce-page div.product .woocommerce-tabs,.woocommerce-page div.product .woocommerce-tabs ul.tabs:after,.woocommerce-page div.product div.thumbnails a.first,.woocommerce-page div.product div.thumbnails:after,.woocommerce-page ul.products,.woocommerce-page ul.products li.first,.woocommerce-page ul.products:after{clear:both}.woocommerce .col2-set,.woocommerce-page .col2-set{width:100%}.woocommerce .col2-set .col-1,.woocommerce-page .col2-set .col-1{float:left;width:48%}.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-2{float:right;width:48%}.woocommerce img,.woocommerce-page img{height:auto;max-width:100%}.woocommerce #content div.product div.images,.woocommerce div.product div.images,.woocommerce-page #content div.product div.images,.woocommerce-page div.product div.images{float:left;width:48%}.woocommerce #content div.product div.thumbnails a,.woocommerce div.product div.thumbnails a,.woocommerce-page #content div.product div.thumbnails a,.woocommerce-page div.product div.thumbnails a{float:left;width:30.75%;margin-right:3.8%;margin-bottom:1em}.woocommerce #content div.product div.thumbnails a.last,.woocommerce div.product div.thumbnails a.last,.woocommerce-page #content div.product div.thumbnails a.last,.woocommerce-page div.product div.thumbnails a.last{margin-right:0}.woocommerce #content div.product div.thumbnails.columns-1 a,.woocommerce div.product div.thumbnails.columns-1 a,.woocommerce-page #content div.product div.thumbnails.columns-1 a,.woocommerce-page div.product div.thumbnails.columns-1 a{width:100%;margin-right:0;float:none}.woocommerce #content div.product div.thumbnails.columns-2 a,.woocommerce div.product div.thumbnails.columns-2 a,.woocommerce-page #content div.product div.thumbnails.columns-2 a,.woocommerce-page div.product div.thumbnails.columns-2 a{width:48%}.woocommerce #content div.product div.thumbnails.columns-4 a,.woocommerce div.product div.thumbnails.columns-4 a,.woocommerce-page #content div.product div.thumbnails.columns-4 a,.woocommerce-page div.product div.thumbnails.columns-4 a{width:22.05%}.woocommerce #content div.product div.thumbnails.columns-5 a,.woocommerce div.product div.thumbnails.columns-5 a,.woocommerce-page #content div.product div.thumbnails.columns-5 a,.woocommerce-page div.product div.thumbnails.columns-5 a{width:16.9%}.woocommerce #content div.product div.summary,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.summary{float:right;width:48%}.woocommerce #content div.product .woocommerce-tabs ul.tabs li,.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{display:inline-block}.woocommerce #content div.product #reviews .comment:after,.woocommerce #content div.product #reviews .comment:before,.woocommerce .woocommerce-pagination ul.page-numbers:after,.woocommerce .woocommerce-pagination ul.page-numbers:before,.woocommerce div.product #reviews .comment:after,.woocommerce div.product #reviews .comment:before,.woocommerce ul.products:after,.woocommerce ul.products:before,.woocommerce-page #content div.product #reviews .comment:after,.woocommerce-page #content div.product #reviews .comment:before,.woocommerce-page .woocommerce-pagination ul.page-numbers:after,.woocommerce-page .woocommerce-pagination ul.page-numbers:before,.woocommerce-page div.product #reviews .comment:after,.woocommerce-page div.product #reviews .comment:before,.woocommerce-page ul.products:after,.woocommerce-page ul.products:before{content:" ";display:table}.woocommerce #content div.product #reviews .comment:after,.woocommerce div.product #reviews .comment:after,.woocommerce-page #content div.product #reviews .comment:after,.woocommerce-page div.product #reviews .comment:after{clear:both}.woocommerce #content div.product #reviews .comment img,.woocommerce div.product #reviews .comment img,.woocommerce-page #content div.product #reviews .comment img,.woocommerce-page div.product #reviews .comment img{float:right;height:auto}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{float:left;margin:0 3.8% 2.992em 0;padding:0;position:relative;width:22.05%}.woocommerce ul.products li.last,.woocommerce-page ul.products li.last{margin-right:0}.woocommerce-page.columns-1 ul.products li.product,.woocommerce.columns-1 ul.products li.product{width:100%;margin-right:0}.woocommerce-page.columns-2 ul.products li.product,.woocommerce.columns-2 ul.products li.product{width:48%}.woocommerce-page.columns-3 ul.products li.product,.woocommerce.columns-3 ul.products li.product{width:30.75%}.woocommerce-page.columns-5 ul.products li.product,.woocommerce.columns-5 ul.products li.product{width:16.95%}.woocommerce-page.columns-6 ul.products li.product,.woocommerce.columns-6 ul.products li.product{width:13.5%}.woocommerce .woocommerce-result-count,.woocommerce-page .woocommerce-result-count{float:left}.woocommerce .woocommerce-ordering,.woocommerce-page .woocommerce-ordering{float:right}.woocommerce .woocommerce-pagination ul.page-numbers li,.woocommerce-page .woocommerce-pagination ul.page-numbers li{display:inline-block}.woocommerce #content table.cart img,.woocommerce table.cart img,.woocommerce-page #content table.cart img,.woocommerce-page table.cart img{height:auto}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:right}.woocommerce #content table.cart td.actions .input-text,.woocommerce table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions .input-text,.woocommerce-page table.cart td.actions .input-text{width:80px}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:left}.woocommerce #content table.cart td.actions .coupon label,.woocommerce table.cart td.actions .coupon label,.woocommerce-page #content table.cart td.actions .coupon label,.woocommerce-page table.cart td.actions .coupon label{display:none}.woocommerce .cart-collaterals .shipping_calculator:after,.woocommerce .cart-collaterals .shipping_calculator:before,.woocommerce .cart-collaterals:after,.woocommerce .cart-collaterals:before,.woocommerce form .form-row:after,.woocommerce form .form-row:before,.woocommerce ul.cart_list li:after,.woocommerce ul.cart_list li:before,.woocommerce ul.product_list_widget li:after,.woocommerce ul.product_list_widget li:before,.woocommerce-page .cart-collaterals .shipping_calculator:after,.woocommerce-page .cart-collaterals .shipping_calculator:before,.woocommerce-page .cart-collaterals:after,.woocommerce-page .cart-collaterals:before,.woocommerce-page form .form-row:after,.woocommerce-page form .form-row:before,.woocommerce-page ul.cart_list li:after,.woocommerce-page ul.cart_list li:before,.woocommerce-page ul.product_list_widget li:after,.woocommerce-page ul.product_list_widget li:before{content:" ";display:table}.woocommerce .cart-collaterals,.woocommerce-page .cart-collaterals{width:100%}.woocommerce .cart-collaterals .related,.woocommerce-page .cart-collaterals .related{width:30.75%;float:left}.woocommerce .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .cross-sells{width:48%;float:left}.woocommerce .cart-collaterals .cross-sells ul.products,.woocommerce-page .cart-collaterals .cross-sells ul.products{float:none}.woocommerce .cart-collaterals .cross-sells ul.products li,.woocommerce-page .cart-collaterals .cross-sells ul.products li{width:48%}.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .shipping_calculator{width:48%;clear:right;float:right}.woocommerce .cart-collaterals .shipping_calculator:after,.woocommerce form .form-row-wide,.woocommerce form .form-row:after,.woocommerce ul.cart_list li:after,.woocommerce ul.product_list_widget li:after,.woocommerce-page .cart-collaterals .shipping_calculator:after,.woocommerce-page form .form-row-wide,.woocommerce-page form .form-row:after,.woocommerce-page ul.cart_list li:after,.woocommerce-page ul.product_list_widget li:after{clear:both}.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-2,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-2{width:47%}.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals{float:right;width:48%}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img,.woocommerce-page ul.cart_list li img,.woocommerce-page ul.product_list_widget li img{float:right;height:auto}.woocommerce form .form-row label,.woocommerce-page form .form-row label{display:block}.woocommerce form .form-row label.checkbox,.woocommerce-page form .form-row label.checkbox{display:inline}.woocommerce form .form-row select,.woocommerce-page form .form-row select{width:100%}.woocommerce form .form-row .input-text,.woocommerce-page form .form-row .input-text{box-sizing:border-box;width:100%}.woocommerce form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-first,.woocommerce-page form .form-row-last{float:left;width:47%;overflow:visible}.woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:right}.woocommerce #payment .form-row select,.woocommerce-page #payment .form-row select{width:auto}.woocommerce #payment .terms,.woocommerce #payment .wc-terms-and-conditions,.woocommerce-page #payment .terms,.woocommerce-page #payment .wc-terms-and-conditions{text-align:left;padding:0 1em 0 0;float:left}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:right}.woocommerce-account .woocommerce-MyAccount-navigation{float:left;width:30%}.woocommerce-account .woocommerce-MyAccount-content{float:right;width:68%}.woocommerce-page.left-sidebar #content.twentyeleven{width:58.4%;margin:0 7.6%;float:right}.woocommerce-page.right-sidebar #content.twentyeleven{margin:0 7.6%;width:58.4%;float:left}.twentyfourteen .tfwc{padding:12px 10px 0;max-width:474px;margin:0 auto}.twentyfourteen .tfwc .product .entry-summary{padding:0!important;margin:0 0 1.618em!important}.twentyfourteen .tfwc div.product.hentry.has-post-thumbnail{margin-top:0}.twentyfourteen .tfwc .product .images img{margin-bottom:1em}@media screen and (min-width:673px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1040px){.twentyfourteen .tfwc{padding-right:15px;padding-left:15px}}@media screen and (min-width:1110px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1218px){.twentyfourteen .tfwc{margin-right:54px}.full-width .twentyfourteen .tfwc{margin-right:auto}}.twentyfifteen .t15wc{padding-left:7.6923%;padding-right:7.6923%;padding-top:7.6923%;margin-bottom:7.6923%;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.15)}.twentyfifteen .t15wc .page-title{margin-left:0}@media screen and (min-width:38.75em){.twentyfifteen .t15wc{margin-right:7.6923%;margin-left:7.6923%;margin-top:8.3333%}}@media screen and (min-width:59.6875em){.twentyfifteen .t15wc{margin-left:8.3333%;margin-right:8.3333%;padding:10%}.single-product .twentyfifteen .entry-summary{padding:0!important}}.twentysixteen .site-main{margin-right:7.6923%;margin-left:7.6923%}.twentysixteen .entry-summary{margin-right:0;margin-left:0}#content .twentysixteen div.product div.images,#content .twentysixteen div.product div.summary{width:46.42857%}@media screen and (min-width:44.375em){.twentysixteen .site-main{margin-right:23.0769%}}@media screen and (min-width:56.875em){.twentysixteen .site-main{margin-right:0;margin-left:0}.no-sidebar .twentysixteen .site-main{margin-right:15%;margin-left:15%}.no-sidebar .twentysixteen .entry-summary{margin-right:0;margin-left:0}}.rtl .woocommerce .col2-set .col-1,.rtl .woocommerce-page .col2-set .col-1{float:right}.rtl .woocommerce .col2-set .col-2,.rtl .woocommerce-page .col2-set .col-2{float:left}.rtl .woocommerce form .form-row-first,.rtl .woocommerce form .form-row-last,.rtl .woocommerce-page form .form-row-first,.rtl .woocommerce-page form .form-row-last{float:right}.rtl .woocommerce form .form-row-last,.rtl .woocommerce-page form .form-row-last{float:left}assets/css/wc-setup.css000066600000023152152133032050011120 0ustar00.wc-setup-content p,.wc-setup-content table{font-size:1em;line-height:1.75em;color:#666}body{margin:100px auto 24px;box-shadow:none;background:#f1f1f1;padding:0}#wc-logo{border:0;margin:0 0 24px;padding:0;text-align:center}#wc-logo img{max-width:50%}.wc-setup-content{box-shadow:0 1px 3px rgba(0,0,0,.13);padding:24px 24px 0;background:#fff;overflow:hidden;zoom:1}.wc-setup-content h1,.wc-setup-content h2,.wc-setup-content h3,.wc-setup-content table{margin:0 0 24px;border:0;padding:0;color:#666;clear:none}.wc-setup-content p{margin:0 0 24px}.wc-setup-content a{color:#a16696}.wc-setup-content a:focus,.wc-setup-content a:hover{color:#111}.wc-setup-content .form-table th{width:35%;vertical-align:top;font-weight:400}.wc-setup-content .form-table td{vertical-align:top}.wc-setup-content .form-table td input,.wc-setup-content .form-table td select{width:100%;box-sizing:border-box}.wc-setup-content .form-table td input[size]{width:auto}.wc-setup-content .form-table td .description{line-height:1.5em;display:block;margin-top:.25em;color:#999;font-style:italic}.wc-setup-content .form-table td .input-checkbox,.wc-setup-content .form-table td .input-radio{width:auto;box-sizing:inherit;padding:inherit;margin:0 .5em 0 0;box-shadow:none}.wc-setup-content .form-table .section_title td{padding:0}.wc-setup-content .form-table .section_title td h2,.wc-setup-content .form-table .section_title td p{margin:12px 0 0}.wc-setup-content .form-table td,.wc-setup-content .form-table th{padding:12px 0;margin:0;border:0}.wc-setup-content .form-table td:first-child,.wc-setup-content .form-table th:first-child{padding-right:1em}.wc-setup-content table.tax-rates{width:100%;font-size:.92em}.wc-setup-content table.tax-rates th{padding:0;text-align:center;width:auto;vertical-align:middle}.wc-setup-content table.tax-rates td{border:1px solid #f5f5f5;padding:6px;text-align:center;vertical-align:middle}.wc-setup-content table.tax-rates td input{outline:0;border:0;padding:0;box-shadow:none;text-align:center;width:100%}.wc-setup-content table.tax-rates .add,.wc-setup-content table.tax-rates .remove{padding:1em 0 0 1em;line-height:1em;width:0;height:0;display:inline-block;font-size:1em;overflow:hidden}.wc-setup-content table.tax-rates td.sort{cursor:move;color:#ccc}.wc-setup-content table.tax-rates td.sort:before{content:"\f333";font-family:dashicons}.wc-setup-content table.tax-rates td.readonly{background:#f5f5f5}.wc-setup-content table.tax-rates .add{margin:6px 0 0;position:relative}.wc-setup-content table.tax-rates .add:before{content:"\f502";font-family:dashicons;position:absolute;left:0;top:0}.wc-setup-content table.tax-rates .remove{margin:0;position:relative}.wc-setup-content table.tax-rates .remove:before{content:"\f182";font-family:dashicons;position:absolute;left:0;top:0}.wc-setup-content .wc-setup-pages{width:100%;border-top:1px solid #eee}.wc-setup-content .wc-setup-pages thead th{display:none}.wc-setup-content .wc-setup-pages .page-name{width:30%;font-weight:700}.wc-setup-content .wc-setup-pages td,.wc-setup-content .wc-setup-pages th{padding:14px 0;border-bottom:1px solid #eee}.wc-setup-content .wc-setup-pages td:first-child,.wc-setup-content .wc-setup-pages th:first-child{padding-right:9px}.wc-setup-content .wc-setup-pages th{padding-top:0}.wc-setup-content .wc-setup-pages .page-options p{color:#777;margin:6px 0 0 24px;line-height:1.75em}.wc-setup-content .wc-setup-pages .page-options p input{vertical-align:middle;margin:1px 0 0;height:1.75em;width:1.75em;line-height:1.75em}.wc-setup-content .wc-setup-pages .page-options p label{line-height:1}@media screen and (max-width:782px){.wc-setup-content .form-table tbody th{width:auto}}.wc-setup-content .twitter-share-button{float:right}.wc-setup-content .wc-setup-next-steps{overflow:hidden;margin:0 0 24px}.wc-setup-content .wc-setup-next-steps h2{margin-bottom:12px}.wc-setup-content .wc-setup-next-steps .wc-setup-next-steps-first{float:left;width:50%;box-sizing:border-box}.wc-setup-content .wc-setup-next-steps .wc-setup-next-steps-last{float:right;width:50%;box-sizing:border-box}.wc-setup-content .wc-setup-next-steps ul{padding:0 2em 0 0;list-style:none;margin:0 0 -.75em}.wc-setup-content .wc-setup-next-steps ul li a{display:block;padding:0 0 .75em}.wc-setup-content .wc-setup-next-steps ul .setup-product a{background-color:#bb77ae;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;text-shadow:0 -1px 1px #A36597,1px 0 1px #A36597,0 1px 1px #A36597,-1px 0 1px #A36597;font-size:1em;height:auto;line-height:1.75em;margin:0 0 .75em;opacity:1;padding:1em;text-align:center}.wc-setup-content .wc-setup-next-steps ul .setup-product a:active,.wc-setup-content .wc-setup-next-steps ul .setup-product a:focus,.wc-setup-content .wc-setup-next-steps ul .setup-product a:hover{background:#A36597;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597}.wc-setup-content .wc-setup-next-steps ul li a:before{color:#82878c;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 10px 0 0;top:1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.wc-setup-content .wc-setup-next-steps ul .learn-more a:before{content:"\f105"}.wc-setup-content .wc-setup-next-steps ul .video-walkthrough a:before{content:"\f126"}.wc-setup-content .wc-setup-next-steps ul .newsletter a:before{content:"\f465"}.wc-setup-content .updated,.wc-setup-content .woocommerce-tracker{padding:24px 24px 0;margin:0 0 24px;overflow:hidden;background:#f5f5f5}.wc-setup-content .updated p,.wc-setup-content .woocommerce-tracker p{padding:0;margin:0 0 12px}.wc-setup-content .updated p:last-child,.wc-setup-content .woocommerce-tracker p:last-child{margin:0 0 24px}.wc-setup-steps{padding:0 0 24px;margin:0;list-style:none;overflow:hidden;color:#ccc;width:100%;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.wc-setup-steps li{width:20%;float:left;padding:0 0 .8em;margin:0;text-align:center;position:relative;border-bottom:4px solid #ccc;line-height:1.4em}.wc-setup-steps li:before{content:"";border:4px solid #ccc;border-radius:100%;width:4px;height:4px;position:absolute;bottom:0;left:50%;margin-left:-6px;margin-bottom:-8px;background:#fff}.wc-setup-steps li.active{border-color:#a16696;color:#a16696}.wc-setup-steps li.active:before{border-color:#a16696}.wc-setup-steps li.done{border-color:#a16696;color:#a16696}.wc-setup-steps li.done:before{border-color:#a16696;background:#a16696}.wc-setup .wc-setup-actions{overflow:hidden}.wc-setup .wc-setup-actions .button{float:right;font-size:1.25em;padding:.5em 1em;line-height:1em;margin-right:.5em;margin-bottom:2px;height:auto;border-radius:4px}.wc-setup .wc-setup-actions .button-primary{background-color:#bb77ae;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;text-shadow:0 -1px 1px #A36597,1px 0 1px #A36597,0 1px 1px #A36597,-1px 0 1px #A36597;float:right;margin:0;opacity:1}.wc-setup .wc-setup-actions .button-primary:active,.wc-setup .wc-setup-actions .button-primary:focus,.wc-setup .wc-setup-actions .button-primary:hover{background:#A36597;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597}.wc-return-to-dashboard{font-size:.85em;color:#b5b5b5;margin:1.18em 0;display:block;text-align:center}ul.wc-wizard-payment-gateways{border:1px solid #eee;border-bottom-width:2px;padding:0;margin:0 0 1em;list-style:none;border-radius:4px}ul.wc-wizard-payment-gateways li.wc-wizard-gateway{padding:1.5em 1em 1em 4em;border-top:1px solid #eee;list-style:none;cursor:pointer;color:#555;box-sizing:border-box;clear:both}ul.wc-wizard-payment-gateways li.wc-wizard-gateway:first-child{border-top:0}ul.wc-wizard-payment-gateways li.wc-wizard-gateway.featured{width:50%;float:left;clear:none;border-right:1px solid #eee;border-top:0}ul.wc-wizard-payment-gateways li.wc-wizard-gateway.featured-row-last{border-right:0}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-settings{display:none;margin-bottom:0;cursor:default}ul.wc-wizard-payment-gateways li.wc-wizard-gateway.checked{background:#F7F1F6}ul.wc-wizard-payment-gateways li.wc-wizard-gateway.checked .wc-wizard-gateway-settings{display:table}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-description{font-style:italic}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-description p,ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable{margin:0 0 .5em}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable label{display:block;font-weight:700;vertical-align:middle}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable label img{max-height:2em;vertical-align:middle}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable label:before{content:'';background:#fff;border:2px solid #eee;display:inline-block;float:left;vertical-align:middle;width:2em;height:2em;padding:0;box-sizing:border-box;line-height:1.8em;text-align:center;margin:0 1em 0 -3em;border-radius:4px}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable input{opacity:0;width:0;position:absolute}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable input:checked+label:before{content:"\f147";font-family:dashicons;color:#fff;border-color:#a46497;background:#a46497}ul.wc-wizard-payment-gateways li.wc-wizard-gateway .wc-wizard-gateway-enable input:focus+label{outline:#ddd solid 1px}assets/css/twenty-seventeen.css000066600000034512152133032050012677 0ustar00@charset "UTF-8";.woocommerce-breadcrumb a,.woocommerce-error a,.woocommerce-info a,.woocommerce-message a{-webkit-transition:box-shadow ease-in-out 130ms;-moz-transition:box-shadow ease-in-out 130ms}.price del,ul.products li.product .button.loading{opacity:.5}.onsale,.woocommerce-loop-product__title{text-transform:uppercase;font-weight:800}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}.woocommerce-demo-store{padding-top:3.5em}p.demo_store{position:fixed;top:0;left:0;right:0;margin:0;width:100%;font-size:1em;padding:1em 0;text-align:center;background-color:#767676;color:#fff;z-index:99998;box-shadow:0 1px 1em rgba(0,0,0,.2)}p.demo_store a{color:#fff}.admin-bar p.demo_store{top:32px}.woocommerce-breadcrumb{padding-bottom:2em;margin-bottom:4em;border-bottom:1px solid #eee;font-size:13px;font-size:.8125rem}.woocommerce-breadcrumb a{box-shadow:0 1px 0 #0f0f0f;transition:box-shadow ease-in-out 130ms}.woocommerce-breadcrumb a:hover{box-shadow:0 3px 0 #0f0f0f}.woocommerce-pagination{padding-top:2em;margin-top:4em;border-top:1px solid #eee;font-size:13px;font-size:.8125rem}.woocommerce-pagination ul.page-numbers{padding:0;display:block}.woocommerce-pagination .next.page-numbers,.woocommerce-pagination .prev.page-numbers,.woocommerce-pagination a.page-numbers,.woocommerce-pagination span.page-numbers{padding:.5em 1em;background:#ddd;display:inline-block;font-size:1em;float:none;line-height:1.5;border-radius:2px;-webkit-transition:background-color ease-in-out .3s;-moz-transition:background-color ease-in-out .3s;transition:background-color ease-in-out .3s}.woocommerce-pagination span.page-numbers{background-color:#fff}.woocommerce-pagination a.page-numbers:hover{background-color:#767676;color:#fff}.onsale{background-color:#fff;position:absolute;top:0;left:0;display:inline-block;padding:.5em 1em;font-size:13px;font-size:.8125rem}.required{color:#b22222}.required[title]{border-bottom:none}.woocommerce-error,.woocommerce-info,.woocommerce-message{margin-bottom:1.5em;padding:2em}.woocommerce-message{background:teal;color:#fff}.woocommerce-error{background:#b22222;color:#fff}.woocommerce-info{background:#4169e1;color:#fff}.woocommerce-error a,.woocommerce-info a,.woocommerce-message a{color:#fff;box-shadow:0 1px 0 #fff!important;transition:box-shadow ease-in-out 130ms}ul.products li.product .added_to_cart,ul.products li.product .button{-webkit-transition:box-shadow ease-in-out 130ms;-moz-transition:box-shadow ease-in-out 130ms}.woocommerce-error a:hover,.woocommerce-info a:hover,.woocommerce-message a:hover{color:#fff!important;box-shadow:0 3px 0 #fff!important}.woocommerce-store-notice{background:#4169e1;color:#fff;padding:1em;position:absolute;top:0;left:0;width:100%;z-index:999}.admin-bar .woocommerce-store-notice{top:32px}.woocommerce-store-notice__dismiss-link{float:right;color:#fff}.woocommerce-store-notice__dismiss-link:hover{text-decoration:underline;color:#fff}.woocommerce-result-count{padding:.75em 0}ul.products li.product{list-style:none}ul.products li.product .price,ul.products li.product .star-rating{display:block;margin-bottom:.75em}ul.products li.product .button{box-shadow:0 1px 0 #0f0f0f;transition:box-shadow ease-in-out 130ms}ul.products li.product .button:hover{box-shadow:0 3px 0 #0f0f0f}ul.products li.product .added_to_cart{box-shadow:0 1px 0 #0f0f0f;transition:box-shadow ease-in-out 130ms;margin-left:.5em}ul.products li.product .added_to_cart:hover{box-shadow:0 3px 0 #0f0f0f}.star-rating{overflow:hidden;position:relative;height:1em;line-height:1;font-size:1em;width:5.4em;font-family:star}.star-rating::before{content:'\73\73\73\73\73';float:left;top:0;left:0;position:absolute}.star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}.star-rating span::before{content:'\53\53\53\53\53';top:0;position:absolute;left:0}.woocommerce-loop-product__title{font-size:13px;font-size:.8125rem;letter-spacing:.15em}a.remove{display:inline-block;width:16px;height:16px;line-height:16px;font-size:16px;text-align:center;border-radius:100%;box-shadow:none!important;-webkit-box-shadow:none!important;border:1px solid #000}a.remove:hover{background:#000;color:#fff!important}dl.variation dt{float:left;clear:both;margin-right:.25em;display:inline-block}dl.variation dd{margin:0}.single-product div.product{position:relative}.single-product .single-featured-image-header{display:none}.single-product .summary{margin-bottom:3em}.single-product .summary p.price{margin-bottom:2em}.single-product .woocommerce-product-rating{margin-bottom:2em;line-height:1}.single-product .woocommerce-product-rating .star-rating{float:left;margin-right:.25em}.single-product form.cart .quantity{float:left;margin-right:.5em}.single-product form.cart input{width:5em}.single-product .woocommerce-variation-add-to-cart .button{padding-top:.72em;padding-bottom:.72em}.single-product .woocommerce-variation-add-to-cart .button.disabled{opacity:.2}table.variations label{margin:0}table.variations select{margin-right:.5em}.woocommerce-product-gallery{position:relative;margin-bottom:3em}.woocommerce-product-gallery figure{margin:0}.woocommerce-product-gallery .flex-control-thumbs li{list-style:none;float:left;cursor:pointer}.woocommerce-product-gallery .flex-control-thumbs img{opacity:.5}.woocommerce-product-gallery .flex-control-thumbs img.flex-active,.woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1}.woocommerce-product-gallery img{display:block}.woocommerce-product-gallery--columns-3 .flex-control-thumbs li{width:33.3333%}.woocommerce-product-gallery--columns-4 .flex-control-thumbs li{width:25%}.woocommerce-product-gallery--columns-5 .flex-control-thumbs li{width:20%}.woocommerce-product-gallery__trigger{position:absolute;top:1em;right:1em;z-index:99}.woocommerce-tabs{margin-bottom:2em}.woocommerce-tabs li{margin-right:1em}.woocommerce-tabs li.active a{box-shadow:0 3px 0 #0f0f0f}.woocommerce-tabs a{box-shadow:0 1px 0 #0f0f0f;-webkit-transition:box-shadow ease-in-out 130ms;-moz-transition:box-shadow ease-in-out 130ms;transition:box-shadow ease-in-out 130ms}.woocommerce-tabs a:hover{box-shadow:0 3px 0 #0f0f0f}.woocommerce-tabs #comments{padding-top:0}.woocommerce-tabs .comment-reply-title{font-size:22px;font-size:1.375rem;font-weight:300;line-height:1.4;margin:0 0 .75em;display:block}.woocommerce-tabs #reviews li.comment,.woocommerce-tabs #reviews li.review{list-style:none;margin-right:0;margin-bottom:2.5em}.woocommerce-tabs #reviews li.comment .avatar,.woocommerce-tabs #reviews li.review .avatar{max-height:36px;width:auto;float:right}.woocommerce-tabs #reviews li.comment p.meta,.woocommerce-tabs #reviews li.review p.meta{margin-bottom:.5em}.woocommerce-tabs #reviews p.stars a{position:relative;height:1em;width:1em;text-indent:-999em;display:inline-block;text-decoration:none;box-shadow:none}.woocommerce-tabs #reviews p.stars a::before{display:block;position:absolute;top:0;left:0;width:1em;height:1em;line-height:1;font-family:WooCommerce;content:'\e021';text-indent:0}.woocommerce-tabs #reviews p.stars a:hover~a::before{content:'\e021'}.woocommerce-tabs #reviews p.stars.selected a.active::before,.woocommerce-tabs #reviews p.stars:hover a::before{content:'\e020'}.woocommerce-tabs #reviews p.stars.selected a.active~a::before{content:'\e021'}.woocommerce-tabs #reviews p.stars.selected a:not(.active)::before{content:'\e020'}.site-footer .widget .product_list_widget,.widget .product_list_widget{margin-bottom:1.5em}.site-footer .widget .product_list_widget a,.widget .product_list_widget a{display:block;box-shadow:none}.site-footer .widget .product_list_widget a:hover,.widget .product_list_widget a:hover{box-shadow:none}.site-footer .widget .product_list_widget li,.widget .product_list_widget li{padding:1.5em 0}.site-footer .widget .product_list_widget li a.remove,.widget .product_list_widget li a.remove{float:right;margin-top:2px}.site-footer .widget .product_list_widget img,.widget .product_list_widget img{display:none}.widget_shopping_cart .buttons a{display:inline-block;margin:0 .5em 0 0}.widget_layered_nav .chosen:before{content:"×";display:inline-block;width:16px;height:16px;line-height:16px;font-size:16px;text-align:center;border-radius:100%;border:1px solid #000;margin-right:.25em}.widget_price_filter .price_slider{margin-bottom:1em}.wc_payment_method .payment_box ol:last-of-type,.wc_payment_method .payment_box p:last-child,.wc_payment_method .payment_box ul:last-of-type,.woocommerce-cart-form dl.variation p,.woocommerce-cart-form dl.variation:last-child{margin-bottom:0}.widget_price_filter .price_slider_amount{text-align:right;line-height:2.4;font-size:.8751em}.widget_price_filter .price_slider_amount .button{float:left;padding:.4em 1em}.widget_price_filter .ui-slider{position:relative;text-align:left;margin-left:.5em;margin-right:.5em}.widget_price_filter .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;background-color:#000;border-radius:1em;cursor:ew-resize;outline:0;top:-.3em;margin-left:-.5em}.widget_price_filter .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;border-radius:1em;background-color:#000}.widget_price_filter .price_slider_wrapper .ui-widget-content{border-radius:1em;background-color:#666;border:0}.widget_price_filter .ui-slider-horizontal{height:.5em}.widget_price_filter .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.widget_price_filter .ui-slider-horizontal .ui-slider-range-min{left:-1px}.widget_price_filter .ui-slider-horizontal .ui-slider-range-max{right:-1px}.widget_rating_filter li{text-align:right}.widget_rating_filter li .star-rating{float:left;margin-top:.3em}.widget_product_search form{position:relative}.widget_product_search .search-field{padding-right:100px}.widget_product_search input[type=submit]{position:absolute;top:.5em;right:.5em;padding-left:1em;padding-right:1em}.woocommerce-account .woocommerce-MyAccount-navigation{float:right;width:25%;border-top:1px solid #ddd}.woocommerce-account .woocommerce-MyAccount-navigation li{list-style:none;padding:.5em 0;border-bottom:1px solid #ddd}.woocommerce-account .woocommerce-MyAccount-navigation li a{box-shadow:none}.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{box-shadow:0 3px 0 #0f0f0f}.woocommerce-account .woocommerce-MyAccount-navigation li:before{content:"→";display:inline-block;margin-right:.25em;color:#ddd}.woocommerce-account .woocommerce-MyAccount-content{float:left}.woocommerce-cart-form td{padding:1em .5em}.woocommerce-cart-form img{max-width:42px;height:auto;display:block}.woocommerce-cart-form dl.variation{margin-top:0}.woocommerce-cart-form .button{padding:1.2em 2em}.woocommerce-cart-form .actions .input-text{width:130px!important;float:left;margin-right:.25em}.woocommerce-cart-form .quantity input{width:4em}.checkout-button{display:block;padding:1em 2em;border:2px solid #000;text-align:center;font-weight:800;box-shadow:none!important;-webkit-box-shadow:none!important}.checkout-button:hover{box-shadow:none!important;-webkit-box-shadow:none!important;border-color:#999}.checkout-button:after{content:"→"}#ship-to-different-address label{font-weight:300;cursor:pointer}#ship-to-different-address label span{position:relative;display:block}#ship-to-different-address label span:before{content:"";display:block;height:16px;width:30px;border:2px solid #bbb;background:#bbb;border-radius:13em;box-sizing:content-box;-webkit-transition:all,ease-in-out,.3s;-moz-transition:all,ease-in-out,.3s;transition:all,ease-in-out,.3s;position:absolute;top:4px;right:0}#ship-to-different-address label span:after{content:"";display:block;width:14px;height:14px;background:#fff;position:absolute;top:7px;right:17px;border-radius:13em;-webkit-transition:all,ease-in-out,.3s;-moz-transition:all,ease-in-out,.3s;transition:all,ease-in-out,.3s}#ship-to-different-address label input[type=checkbox],.wc_payment_method input[type=radio]{display:none}#ship-to-different-address label input[type=checkbox]:checked+span:after{right:3px}#ship-to-different-address label input[type=checkbox]:checked+span:before{border-color:#000;background:#000}.woocommerce-checkout .select2-choice,.woocommerce-checkout .select2-choice:hover{box-shadow:none!important;-webkit-box-shadow:none!important}.woocommerce-checkout .select2-choice{padding:.7em 0 .7em .7em}.woocommerce-checkout-review-order-table td{padding:1em .5em}.woocommerce-checkout-review-order-table dl.variation,.woocommerce-checkout-review-order-table dl.variation p{margin:0}.wc_payment_method{list-style:none;border-bottom:1px solid #ddd}.wc_payment_method .payment_box{padding:2em;background:#eee}.wc_payment_method .payment_box fieldset{padding:1.5em 1.5em 0;border:0;background:#f6f6f6}.wc_payment_method .payment_box li{list-style:none}.wc_payment_method>label:first-of-type{margin:1em 0}.wc_payment_method>label:first-of-type img{max-height:24px;max-width:200px;float:right}.wc_payment_method label{cursor:pointer}.wc_payment_method input[type=radio]+label:before{content:"";display:inline-block;width:16px;height:16px;border:2px solid #fff;box-shadow:0 0 0 2px #000;background:#fff;margin-left:4px;margin-right:.5em;border-radius:100%;-webkit-transform:translateY(2px);-moz-transform:translateY(2px);-ms-transform:translateY(2px);-o-transform:translateY(2px);transform:translateY(2px)}.wc_payment_method input[type=radio]:checked+label:before{background:#000}@media screen and (min-width:48em){.has-sidebar.woocommerce-page:not(.error404) #primary{width:74%}.has-sidebar.woocommerce-page:not(.error404) #secondary{width:20%}body.page-two-column.woocommerce-account:not(.archive) #primary .entry-header,body.page-two-column.woocommerce-cart:not(.archive) #primary .entry-header,body.page-two-column.woocommerce-checkout:not(.archive) #primary .entry-header{width:16%}body.page-two-column.woocommerce-account:not(.archive) #primary .entry-content,body.page-two-column.woocommerce-cart:not(.archive) #primary .entry-content,body.page-two-column.woocommerce-checkout:not(.archive) #primary .entry-content{width:78%}}assets/css/woocommerce.scss000066600000072766152133032050012072 0ustar00/** * woocommerce.scss * Governs the general look and feel of WooCommerce sections of stores using themes that do not * integrate with WooCommerce specifically. */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; @import "animation"; @import "fonts"; /** * Global styles */ p.demo_store { position: fixed; top: 0; left: 0; right: 0; margin: 0; width: 100%; font-size: 1em; padding: 1em 0; text-align: center; background-color: $primary; color: $primarytext; z-index: 99998; box-shadow: 0 1px 1em rgba(0,0,0,0.2); a { color: $primarytext; } } .admin-bar { p.demo_store { top: 32px; } } /** * Utility classes */ .clear { clear: both; } /** * Main WooCommerce styles */ .woocommerce { .blockUI.blockOverlay { position: relative; @include loader(); } .loader { @include loader(); } a.remove { display: block; font-size: 1.5em; height: 1em; width: 1em; text-align: center; line-height: 1; border-radius: 100%; color: red !important; text-decoration: none; font-weight: 700; border: 0; &:hover { color: #fff !important; background: red; } } small.note { display: block; color: $subtext; font-size: .857em; margin-top: 10px; } .woocommerce-breadcrumb { @include clearfix(); margin: 0 0 1em; padding: 0; font-size: 0.92em; color: $subtext; a { color: $subtext; } } .quantity { .qty { width: 3.631em; text-align: center; } } /** * Product Page */ div.product { margin-bottom: 0; position: relative; .product_title { clear: none; margin-top: 0; padding: 0; } span.price, p.price { color: $highlight; font-size: 1.25em; ins { background: inherit; font-weight: 700; } del { opacity: 0.5; } } p.stock { font-size: 0.92em; } .stock { color: $highlight; } .out-of-stock { color: red; } .woocommerce-product-rating { margin-bottom: 1.618em; } div.images { margin-bottom: 2em; img { display: block; width: 100%; height: auto; box-shadow: none; } div.thumbnails { padding-top: 1em; } } div.summary { margin-bottom: 2em; } div.social { text-align: right; margin: 0 0 1em; span { margin: 0 0 0 2px; span { margin: 0; } .stButton .chicklets { padding-left: 16px; width: 0; } } iframe { float: left; margin-top: 3px; } } .woocommerce-tabs { ul.tabs { list-style: none; padding: 0 0 0 1em; margin: 0 0 1.618em; overflow: hidden; position: relative; li { border: 1px solid darken( $secondary, 10% ); background-color: $secondary; display: inline-block; position: relative; z-index: 0; border-radius: 4px 4px 0 0; margin: 0 -5px; padding: 0 1em; a { display: inline-block; padding: .5em 0; font-weight: 700; color: $secondarytext; text-decoration: none; &:hover { text-decoration: none; color: lighten( $secondarytext, 10% ); } } &.active { background: $contentbg; z-index: 2; border-bottom-color: $contentbg; a { color: inherit; text-shadow: inherit; } &:before { box-shadow: 2px 2px 0 $contentbg; } &:after { box-shadow: -2px 2px 0 $contentbg; } } &:before, &:after { border: 1px solid darken( $secondary, 10% ); position: absolute; bottom: -1px; width: 5px; height: 5px; content: " "; } &:before { left: -6px; -webkit-border-bottom-right-radius: 4px; -moz-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; border-width: 0 1px 1px 0; box-shadow: 2px 2px 0 $secondary; } &:after { right: -6px; -webkit-border-bottom-left-radius: 4px; -moz-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; border-width: 0 0 1px 1px; box-shadow: -2px 2px 0 $secondary; } } &:before { position: absolute; content: " "; width: 100%; bottom: 0; left: 0; border-bottom: 1px solid darken( $secondary, 10% ); z-index: 1; } } .panel { margin: 0 0 2em; padding: 0; } } p.cart { margin-bottom: 2em; @include clearfix(); } form.cart { margin-bottom: 2em; @include clearfix(); div.quantity { float: left; margin: 0 4px 0 0; } table { border-width: 0 0 1px 0; td { padding-left: 0; } div.quantity { float: none; margin: 0; } small.stock { display: block; float: none; } } .variations { margin-bottom: 1em; border: 0; width: 100%; td, th { border: 0; vertical-align: top; line-height: 2em; } label { font-weight: 700; } select { max-width: 100%; min-width: 75%; display: inline-block; margin-right: 1em; } td.label { padding-right: 1em; } } .woocommerce-variation-description { p { margin-bottom: 1em; } } .reset_variations { visibility: hidden; font-size: 0.83em; } .wc-no-matching-variations { display: none; } .button { vertical-align: middle; float: left; } .group_table { td.label { padding-right: 1em; padding-left: 1em; } td { vertical-align: top; padding-bottom: .5em; border: 0; } } } } span.onsale { min-height: 3.236em; min-width: 3.236em; padding: .202em; font-size: 1em; font-weight: 700; position: absolute; text-align: center; line-height: 3.236; top: -.5em; left: -.5em; margin: 0; border-radius: 100%; background-color: $highlight; color: $highlightext; font-size: .857em; -webkit-font-smoothing: antialiased; } /** * Product loops */ .products ul, ul.products { margin: 0 0 1em; padding: 0; list-style: none outside; clear: both; @include clearfix(); li { list-style: none outside; } } ul.products { li.product { .onsale { top: 0; right: 0; left: auto; margin: -.5em -.5em 0 0; } h3 { padding: .5em 0; margin: 0; font-size: 1em; } a { text-decoration: none; } a img { width: 100%; height: auto; display: block; margin: 0 0 1em; box-shadow: none; } strong { display: block; } .star-rating { font-size: .857em; } .button { margin-top: 1em; } .price { color: $highlight; display: block; font-weight: normal; margin-bottom: .5em; font-size: .857em; del { color: inherit; opacity: 0.5; display: block; } ins { background: none; font-weight: 700; } .from { font-size: 0.67em; margin: -2px 0 0 0; text-transform: uppercase; color: rgba(desaturate($highlight, 75%), 0.5); } } } } .woocommerce-result-count { margin: 0 0 1em; } .woocommerce-ordering { margin: 0 0 1em; select { vertical-align: top; } } nav.woocommerce-pagination { text-align: center; ul { display: inline-block; white-space: nowrap; padding: 0; clear: both; border: 1px solid darken( $secondary, 10% ); border-right: 0; margin: 1px; li { border-right: 1px solid darken( $secondary, 10% ); padding: 0; margin: 0; float: left; display: inline; overflow: hidden; a, span { margin: 0; text-decoration: none; padding: 0; line-height: 1; font-size: 1em; font-weight: normal; padding: .5em; min-width: 1em; display: block; } span.current, a:hover, a:focus { background: $secondary; color: darken( $secondary, 40% ); } } } } /** * Buttons */ a.button, button.button, input.button, #respond input#submit { font-size: 100%; margin: 0; line-height: 1; cursor: pointer; position: relative; text-decoration: none; overflow: visible; padding: .618em 1em; font-weight: 700; border-radius: 3px; left: auto; color: $secondarytext; background-color: $secondary; border: 0; white-space: nowrap; display: inline-block; background-image: none; box-shadow: none; -webkit-box-shadow: none; text-shadow: none; &.loading { opacity: 0.25; padding-right: 2.618em; &:after { font-family: "WooCommerce"; content: "\e01c"; vertical-align: top; -webkit-font-smoothing: antialiased; font-weight: 400; position: absolute; top: .618em; right: 1em; -webkit-animation: spin 2s linear infinite; -moz-animation: spin 2s linear infinite; animation: spin 2s linear infinite; } } &.added { &:after { font-family: 'WooCommerce'; content: "\e017"; margin-left: .53em; vertical-align: bottom; } } &:hover { background-color: $secondary - #111; text-decoration: none; background-image: none; color: $secondarytext; } &.alt { background-color: $primary; color: $primarytext; -webkit-font-smoothing: antialiased; &:hover { background-color: $primary - #111; color: $primarytext; } &.disabled, &:disabled, &:disabled[disabled], &.disabled:hover, &:disabled:hover, &:disabled[disabled]:hover { background-color: $primary; color: $primarytext; } } &:disabled, &.disabled, &:disabled[disabled] { color: inherit; cursor: not-allowed; opacity: 0.5; padding: .618em 1em; &:hover { color: inherit; background-color: $secondary; } } } .cart .button, .cart input.button { float: none; } a.added_to_cart { padding-top: .5em; white-space: nowrap; display: inline-block; } /** * Reviews */ #reviews { h2 small { float: right; color: $subtext; font-size: 15px; margin: 10px 0 0 0; a { text-decoration: none; color: $subtext; } } h3 { margin: 0; } #respond { margin: 0; border: 0; padding: 0; } #comment { height: 75px; } #comments { .add_review { @include clearfix(); } h2 { clear: none; } ol.commentlist { @include clearfix(); margin: 0; width: 100%; background: none; list-style: none; li { padding: 0; margin: 0 0 20px; border: 0; position: relative; background: 0; border: 0; .meta { color: $subtext; font-size: 0.75em; } img.avatar { float: left; position: absolute; top: 0; left: 0; padding: 3px; width: 32px; height: auto; background: $secondary; border: 1px solid darken( $secondary, 3% ); margin: 0; box-shadow: none; } .comment-text { margin: 0 0 0 50px; border: 1px solid darken( $secondary, 3% ); border-radius: 4px; padding: 1em 1em 0; @include clearfix(); p { margin: 0 0 1em; } p.meta { font-size: 0.83em; } } } ul.children { list-style: none outside; margin: 20px 0 0 50px; .star-rating { display: none; } } #respond { border: 1px solid darken( $secondary, 3% ); border-radius: 4px; padding: 1em 1em 0; margin: 20px 0 0 50px; } } .commentlist > li:before { content: ""; } } } /** * Star ratings */ .star-rating { float: right; overflow: hidden; position: relative; height: 1em; line-height: 1; font-size: 1em; width: 5.4em; font-family: 'star'; &:before { content: "\73\73\73\73\73"; color: darken( $secondary, 10% ); float: left; top: 0; left: 0; position: absolute; } span { overflow: hidden; float: left; top: 0; left: 0; position: absolute; padding-top: 1.5em; } span:before { content: "\53\53\53\53\53"; top: 0; position: absolute; left: 0; } } .woocommerce-product-rating { @include clearfix(); line-height: 2; display: block; .star-rating { margin: .5em 4px 0 0; float: left; } } .products { .star-rating { display: block; margin: 0 0 .5em; float: none; } } .hreview-aggregate { .star-rating { margin: 10px 0 0 0; } } #review_form { #respond { @include clearfix(); position: static; margin: 0; width: auto; padding: 0 0 0; background: transparent none; border: 0; p { margin: 0 0 10px; } .form-submit { input { left: auto; } } textarea { box-sizing: border-box; width: 100%; } } } p.stars { a { position: relative; height: 1em; width: 1em; text-indent: -999em; display: inline-block; text-decoration: none; &:before { display: block; position: absolute; top: 0; left: 0; width: 1em; height: 1em; line-height: 1; font-family: "WooCommerce"; content: "\e021"; text-indent: 0; } &:hover { ~ a:before { content: "\e021"; } } } &:hover { a { &:before { content: "\e020"; } } } &.selected { a.active { &:before { content: "\e020"; } ~ a:before { content: "\e021"; } } a:not(.active) { &:before { content: "\e020"; } } } } /** * Tables */ table.shop_attributes { border: 0; border-top: 1px dotted rgba(0,0,0,0.1); margin-bottom: 1.618em; width: 100%; th { width: 150px; font-weight: 700; padding: 8px; border-top: 0; border-bottom: 1px dotted rgba(0,0,0,0.1); margin: 0; line-height: 1.5; } td { font-style: italic; padding: 0; border-top: 0; border-bottom: 1px dotted rgba(0,0,0,0.1); margin: 0; line-height: 1.5; p { margin: 0; padding: 8px 0; } } .alt td, .alt th { background: rgba(0,0,0,0.025); } } table.shop_table { border: 1px solid rgba(0,0,0,0.1); margin: 0px -1px 24px 0px; text-align: left; width: 100%; border-collapse: separate; border-radius: 5px; th { font-weight: 700; padding: 9px 12px; } td { border-top: 1px solid rgba(0,0,0,0.1); padding: 6px 12px; vertical-align: middle; small { font-weight: normal; } } tbody:first-child { tr:first-child { th, td { border-top: 0; } } } tfoot td, tfoot th, tbody th { font-weight: 700; border-top: 1px solid rgba(0,0,0,0.1); } } table.my_account_orders { font-size: 0.85em; th, td { padding: 4px 8px; vertical-align: middle; } .button { white-space: nowrap; } .order-actions { text-align: right; .button { margin: .125em 0 .125em .25em; } } } td.product-name { dl.variation { margin: .25em 0; @include clearfix(); dt, dd { display: inline-block; float: left; margin-bottom: 1em; } dt { font-weight: 700; padding: 0 0 .25em 0; margin: 0 4px 0 0; clear: left; } dd { padding: 0 0 .25em 0; p:last-child { margin-bottom: 0; } } } p.backorder_notification { font-size: 0.83em; } } td.product-quantity { min-width: 80px; } /** * Cart sidebar */ ul.cart_list, ul.product_list_widget { list-style: none outside; padding: 0; margin: 0; li { padding: 4px 0; margin: 0; @include clearfix(); list-style: none; a { display: block; font-weight: 700; } img { float: right; margin-left: 4px; width: 32px; height: auto; box-shadow: none; } dl { margin: 0; padding-left: 1em; border-left: 2px solid rgba(0,0,0,0.1); @include clearfix(); dt, dd { display: inline-block; float: left; margin-bottom: 1em; } dt { font-weight: 700; padding: 0 0 .25em 0; margin: 0 4px 0 0; clear: left; } dd { padding: 0 0 .25em 0; p:last-child { margin-bottom: 0; } } } .star-rating { float: none; } } } &.widget_shopping_cart, .widget_shopping_cart { .total { border-top: 3px double $secondary; padding: 4px 0 0; strong { min-width: 40px; display: inline-block; } } .cart_list { li { padding-left: 2em; position: relative; padding-top: 0; a.remove { position: absolute; top: 0; left: 0; } } } .buttons { @include clearfix(); } } /** * Forms */ form { .form-row { padding: 3px; margin: 0 0 6px; [placeholder]:focus::-webkit-input-placeholder { -webkit-transition: opacity 0.5s 0.5s ease; -moz-transition: opacity 0.5s 0.5s ease; transition: opacity 0.5s 0.5s ease; opacity: 0; } label { line-height: 2; } label.hidden { visibility: hidden; } label.inline { display: inline; } select { cursor: pointer; margin: 0; } .required { color: red; font-weight: 700; border: 0; } .input-checkbox { display: inline; margin: -2px 8px 0 0; text-align: center; vertical-align: middle; } input.input-text, textarea { box-sizing: border-box; width: 100%; margin: 0; outline: 0; line-height: 1; } textarea { height: 4em; line-height: 1.5; display: block; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } .select2-container { width: 100%; line-height: 2em; } &.woocommerce-invalid { label { color: $red; } .select2-container, input.input-text, select { border-color: $red; } } &.woocommerce-validated { .select2-container, input.input-text, select { border-color: $green - #111; } } ::-webkit-input-placeholder { line-height: normal; } :-moz-placeholder { line-height: normal; } :-ms-input-placeholder { line-height: normal; } } } form.login, form.checkout_coupon, form.register { border: 1px solid darken( $secondary, 10% ); padding: 20px; margin: 2em 0 2em 0px; text-align: left; border-radius: 5px; } ul#shipping_method { list-style: none outside; margin: 0; padding: 0; li { margin: 0; padding: .25em 0 .25em 22px; text-indent: -22px; list-style: none outside; input { margin: 3px 0.5ex; } label { display: inline; } } .amount { font-weight: 700; } } p.woocommerce-shipping-contents { margin: 0; } /** * Order page */ .order_details { @include clearfix(); margin: 0 0 1.5em; list-style: none; li { float: left; margin-right: 2em; text-transform: uppercase; font-size: 0.715em; line-height: 1; border-right: 1px dashed darken( $secondary, 10% ); padding-right: 2em; margin-left: 0; padding-left: 0; list-style-type: none; strong { display: block; font-size: 1.4em; text-transform: none; line-height: 1.5; } &:last-of-type { border: none; } } } /** * Layered nav widget */ .widget_layered_nav { ul { margin: 0; padding: 0; border: 0; list-style: none outside; li { @include clearfix(); padding: 0 0 1px; list-style: none; a, span { padding: 1px 0; } } li.chosen { a { &:before { @include iconbefore( "\e013" ); color: $red; } } } } } .widget_layered_nav_filters { ul { margin: 0; padding: 0; border: 0; list-style: none outside; overflow: hidden; zoom: 1; li { float: left; padding: 0 1px 1px 0; list-style: none; a { text-decoration: none; &:before { @include iconbefore( "\e013" ); color: $red; } } } } } /** * Price filter widget */ .widget_price_filter { .price_slider { margin-bottom: 1em; } .price_slider_amount { text-align: right; line-height: 2.4; font-size: 0.8751em; .button { font-size: 1.15em; } .button { float: left; } } .ui-slider { position: relative; text-align: left; margin-left: .5em; margin-right: .5em; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1em; height: 1em; background-color: $primary; border-radius: 1em; cursor: ew-resize; outline: none; top: -.3em; //&:last-child { margin-left: -.5em; //} } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; border-radius: 1em; background-color: $primary; } .price_slider_wrapper .ui-widget-content { border-radius: 1em; background-color: $primary - #444; border: 0; } .ui-slider-horizontal { height: .5em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: -1px; } .ui-slider-horizontal .ui-slider-range-max { right: -1px; } } /** * Rating Filter Widget */ .widget_rating_filter { ul { margin: 0; padding: 0; border: 0; list-style: none outside; li { @include clearfix(); padding: 0 0 1px; list-style: none; a { padding: 1px 0; text-decoration: none; } .star-rating { float: none; display: inline-block; } } li.chosen { a { &:before { @include iconbefore( "\e013" ); color: $red; } } } } } } .woocommerce-message, .woocommerce-error, .woocommerce-info { padding: 1em 2em 1em 3.5em !important; margin: 0 0 2em !important; position: relative; background-color: lighten($secondary,5%); color: $secondarytext; border-top: 3px solid $primary; list-style: none outside !important; @include clearfix(); width: auto; word-wrap: break-word; &:before { font-family: "WooCommerce"; content: "\e028"; display: inline-block; position: absolute; top: 1em; left: 1.5em; } .button { float: right; } li { list-style: none outside !important; padding-left: 0 !important; margin-left: 0 !important; } } .woocommerce-message { border-top-color: #8fae1b; &:before { content: "\e015"; color: #8fae1b; } } .woocommerce-info { border-top-color: #1e85be; &:before { color: #1e85be; } } .woocommerce-error { border-top-color: #b81c23; &:before { content: "\e016"; color: #b81c23; } } /** * Account page */ .woocommerce-account { .woocommerce { @include clearfix(); } .addresses { .title { @include clearfix(); h3 { float: left; } .edit { float: right; } } } ol.commentlist.notes { li.note { p.meta { font-weight: 700; margin-bottom: 0; } .description { p:last-child { margin-bottom: 0; } } } } ul.digital-downloads { margin-left: 0; padding-left: 0; li { list-style: none; margin-left: 0; padding-left: 0; &:before { @include iconbefore( "\e00a" ); } .count { float: right; } } } } /** * Cart/checkout page */ .woocommerce-cart, .woocommerce-checkout, #add_payment_method { table.cart { .product-thumbnail { min-width: 32px; } img { width: 32px; box-shadow: none; } th, td { vertical-align: middle; } td.actions { .coupon { .input-text { float: left; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid darken( $secondary, 10% ); padding: 6px 6px 5px; margin: 0 4px 0 0; outline: 0; line-height: 1; } } } input { margin: 0; vertical-align: middle; line-height: 1; } } .wc-proceed-to-checkout { @include clearfix; padding: 1em 0; a.checkout-button { display: block; text-align: center; margin-bottom: 1em; font-size: 1.25em; padding: 1em; } } .cart-collaterals { .shipping_calculator { .button { width: 100%; float: none; display: block; } .shipping-calculator-button { &:after { @include iconafter( "\e019" ); } } } .cart_totals { p { small { color: $subtext; font-size: 0.83em; } } table { border-collapse: separate; margin: 0 0 6px; padding: 0; tr:first-child { th, td { border-top: 0; } } th { width: 40%; } td, th { vertical-align: top; border-left: 0; border-right: 0; line-height: 1.5em; } small { color: $subtext; } select { width: 100%; } } .discount td { color: $highlight; } tr td, tr th { border-top: 1px solid $secondary; } } .cross-sells { ul.products { li.product { margin-top: 0; } } } } .checkout { .col-2 { h3#ship-to-different-address { float: left; clear: none; } .notes { clear: left; } .form-row-first { clear: left; } } .create-account small { font-size: 11px; color: $subtext; font-weight: normal; } div.shipping-address { padding: 0; clear: left; width: 100%; } .shipping_address { clear: both; } } #payment { background: $secondary; border-radius: 5px; ul.payment_methods { @include clearfix(); text-align: left; padding: 1em; border-bottom: 1px solid darken( $secondary, 10% ); margin: 0; list-style: none outside; li { line-height: 2; text-align: left; margin: 0; font-weight: normal; @include clearfix; input { margin: 0 1em 0 0; } img { vertical-align: middle; margin: -2px 0 0 .5em; padding: 0; position: relative; box-shadow: none; } img + img { margin-left: 2px; } } } div.form-row { padding: 1em; } div.payment_box { position: relative; box-sizing: border-box; width: 100%; padding: 1em; margin: 1em 0 1em 0; font-size: 0.92em; border-radius: 2px; line-height: 1.5; background-color: darken( $secondary, 5% ); color: $secondarytext; input.input-text, textarea { border-color: darken( $secondary, 15% ); border-top-color: darken( $secondary, 20% ); } ::-webkit-input-placeholder { color: darken( $secondary, 20% ); } :-moz-placeholder { color: darken( $secondary, 20% ); } :-ms-input-placeholder { color: darken( $secondary, 20% ); } .woocommerce-SavedPaymentMethods { list-style: none outside; margin: 0; .woocommerce-SavedPaymentMethods-token, .woocommerce-SavedPaymentMethods-new { margin: 0 0 .5em 0; label { cursor: pointer; } } .woocommerce-SavedPaymentMethods-tokenInput { vertical-align: middle; margin: -3px 1em 0 0; position: relative; } } .wc-credit-card-form { border: 0; padding: 0; margin: 1em 0 0; } .wc-credit-card-form-card-number, .wc-credit-card-form-card-expiry, .wc-credit-card-form-card-cvc { font-size: 1.5em; padding: 8px; background-repeat: no-repeat; background-position: right .618em center; background-size: 32px 20px; &.visa { background-image: url(../images/icons/credit-cards/visa.svg); } &.mastercard { background-image: url(../images/icons/credit-cards/mastercard.svg); } &.laser { background-image: url(../images/icons/credit-cards/laser.svg); } &.dinersclub { background-image: url(../images/icons/credit-cards/diners.svg); } &.maestro { background-image: url(../images/icons/credit-cards/maestro.svg); } &.jcb { background-image: url(../images/icons/credit-cards/jcb.svg); } &.amex { background-image: url(../images/icons/credit-cards/amex.svg); } &.discover { background-image: url(../images/icons/credit-cards/discover.svg); } } span.help { font-size: .857em; color: $subtext; font-weight: normal; } .form-row { margin: 0 0 1em; } p:last-child { margin-bottom: 0; } &:before { content: ""; display: block; border: 1em solid darken( $secondary, 5% ); /* arrow size / color */ border-right-color: transparent; border-left-color: transparent; border-top-color: transparent; position: absolute; top: -.75em; left: 0; margin: -1em 0 0 2em; } } .payment_method_paypal { .about_paypal { float: right; line-height: 52px; font-size: 0.83em; } img { max-height: 52px; vertical-align: middle; } } } } /** * Password strength meter */ .woocommerce-password-strength { text-align: center; font-weight: 600; padding: 3px .5em; font-size: 1em; &.strong { background-color: #c1e1b9; border-color: #83c373; } &.short { background-color: #f1adad; border-color: #e35b5b; } &.bad { background-color: #fbc5a9; border-color: #f78b53; } &.good { background-color: #ffe399; border-color: #ffc733; } } .woocommerce-password-hint { margin: .5em 0 0 0; display: block; } /* added to get around variation image flicker issue */ .product.has-default-attributes.has-children { > .images { opacity: 0; } } /** * Twenty Eleven specific styles */ #content.twentyeleven { .woocommerce-pagination { a { font-size: 1em; line-height: 1; } } } /** * Twenty Thirteen specific styles */ .single-product { .twentythirteen { .entry-summary, #reply-title, #respond #commentform { padding: 0; } p.stars { clear: both; } } } .twentythirteen { .woocommerce-breadcrumb { padding-top: 40px; } } /** * Twenty Fourteen specific styles */ .twentyfourteen { ul.products { li.product { margin-top: 0 !important; } } } /** * Twenty Sixteen specific styles */ body:not(.search-results) { .twentysixteen { .entry-summary { color: inherit; font-size: inherit; line-height: inherit; } } } .twentysixteen { .price ins { background: inherit; color: inherit; } } assets/css/_fonts.scss000066600000001337152133032050011025 0ustar00/** * _fonts.scss * Custom WooCommerce fonts. */ @font-face { font-family: 'star'; src: url('../fonts/star.eot'); src: url('../fonts/star.eot?#iefix') format('embedded-opentype'), url('../fonts/star.woff') format('woff'), url('../fonts/star.ttf') format('truetype'), url('../fonts/star.svg#star') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'WooCommerce'; src: url('../fonts/WooCommerce.eot'); src: url('../fonts/WooCommerce.eot?#iefix') format('embedded-opentype'), url('../fonts/WooCommerce.woff') format('woff'), url('../fonts/WooCommerce.ttf') format('truetype'), url('../fonts/WooCommerce.svg#WooCommerce') format('svg'); font-weight: normal; font-style: normal; }assets/css/menu.css000066600000003615152133032050010317 0ustar00@charset "UTF-8";@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}#adminmenu #toplevel_page_woocommerce .menu-icon-generic div.wp-menu-image:before{font-family:WooCommerce!important;content:"\e03d"}#adminmenu #menu-posts-product .menu-icon-post div.wp-menu-image:before,#adminmenu #menu-posts-product .menu-icon-product div.wp-menu-image:before{font-family:WooCommerce!important;content:"\e006"}#adminmenu #toplevel_page_wc-reports .menu-icon-generic div.wp-menu-image:before{font-family:WooCommerce!important;content:"\e023";font-size:1.3em!important}span.mce_woocommerce_shortcodes_button{background-image:none!important;display:block;text-indent:-9999px;position:relative;height:1em;width:1em}span.mce_woocommerce_shortcodes_button:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-size:.9em;line-height:1.2}.wc_plugin_upgrade_notice{font-weight:400;color:#fff;background:#d54d21;padding:1em;margin:9px 0}.wc_plugin_upgrade_notice a{color:#fff;text-decoration:underline}.wc_plugin_upgrade_notice:before{content:"\f348";display:inline-block;font:400 18px/1 dashicons;speak:none;margin:0 8px 0 -2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}assets/css/wc-setup.scss000066600000020761152133032050011306 0ustar00body { margin: 100px auto 24px; box-shadow: none; background: #f1f1f1; padding: 0; } #wc-logo { border: 0; margin: 0 0 24px; padding: 0; text-align: center; img { max-width: 50%; } } .wc-setup-content { box-shadow: 0 1px 3px rgba(0,0,0,0.13); padding: 24px 24px 0; background: #fff; overflow: hidden; zoom: 1; h1, h2, h3, table { margin: 0 0 24px; border: 0; padding: 0; color: #666; clear: none; } p { margin: 0 0 24px; font-size: 1em; line-height: 1.75em; color: #666; } table { font-size: 1em; line-height: 1.75em; color: #666; } a { color: #a16696; &:hover, &:focus { color: #111; } } .form-table { th { width: 35%; vertical-align: top; font-weight: normal; } td { vertical-align: top; select, input { width: 100%; box-sizing: border-box; } input[size] { width: auto; } .description { line-height: 1.5em; display: block; margin-top: .25em; color: #999; font-style: italic; } .input-checkbox, .input-radio { width: auto; box-sizing: inherit; padding: inherit; margin: 0 .5em 0 0; box-shadow: none; } } .section_title { td { padding: 0; h2, p { margin: 12px 0 0; } } } th, td { padding: 12px 0; margin: 0; border: 0; &:first-child { padding-right: 1em; } } } table.tax-rates { width: 100%; font-size: .92em; th { padding: 0; text-align: center; width: auto; vertical-align: middle; } td { border: 1px solid #f5f5f5; padding: 6px; text-align: center; vertical-align: middle; input { outline: 0; border: 0; padding: 0; box-shadow: none; text-align: center; width: 100%; } &.sort { cursor: move; color: #ccc; &:before { content: "\f333"; font-family: 'dashicons'; } } &.readonly { background: #f5f5f5; } } .add { padding: 1em 0 0 1em; line-height: 1em; font-size: 1em; width: 0; margin: 6px 0 0; height: 0; overflow: hidden; position: relative; display: inline-block; &:before { content: "\f502"; font-family: 'dashicons'; position: absolute; left: 0; top: 0; } } .remove { padding: 1em 0 0 1em; line-height: 1em; font-size: 1em; width: 0; margin: 0; height: 0; overflow: hidden; position: relative; display: inline-block; &:before { content: "\f182"; font-family: 'dashicons'; position: absolute; left: 0; top: 0; } } } .wc-setup-pages { width: 100%; border-top: 1px solid #eee; thead th { display: none; } .page-name { width: 30%; font-weight: bold; } th, td { padding: 14px 0; border-bottom: 1px solid #eee; &:first-child { padding-right: 9px; } } th { padding-top: 0; } .page-options { p { color: #777; margin: 6px 0 0 24px; line-height: 1.75em; input { vertical-align: middle; margin: 1px 0 0 0; height: 1.75em; width: 1.75em; line-height: 1.75em; } label { line-height: 1; } } } } @media screen and (max-width: 782px) { .form-table { tbody { th { width: auto; } } } } .twitter-share-button { float: right; } .wc-setup-next-steps { overflow: hidden; margin: 0 0 24px; h2 { margin-bottom: 12px; } .wc-setup-next-steps-first { float: left; width: 50%; box-sizing: border-box; } .wc-setup-next-steps-last { float: right; width: 50%; box-sizing: border-box; } ul { padding: 0 2em 0 0; list-style: none outside; margin: 0 0 -.75em; li a { display: block; padding: 0 0 .75em; } .setup-product { a { background-color: #bb77ae; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; text-shadow: 0px -1px 1px #A36597, 1px 0px 1px #A36597, 0px 1px 1px #A36597, -1px 0px 1px #A36597; font-size: 1em; height: auto; line-height: 1.75em; margin: 0 0 .75em; opacity: 1; padding: 1em; text-align: center; &:hover, &:focus, &:active { background: #A36597; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; } } } li a:before { color: #82878c; font: normal 20px/1 'dashicons'; speak: none; display: inline-block; padding: 0 10px 0 0; top: 1px; position: relative; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-decoration: none !important; vertical-align: top; } .learn-more a:before { content: "\f105"; } .video-walkthrough a:before { content: "\f126"; } .newsletter a:before { content: "\f465"; } } } .woocommerce-tracker, .updated { padding: 24px 24px 0; margin: 0 0 24px 0; overflow: hidden; background: #f5f5f5; p { padding: 0; margin: 0 0 12px; } p:last-child { margin: 0 0 24px 0; } } } .wc-setup-steps { padding: 0 0 24px; margin: 0; list-style: none outside; overflow: hidden; color: #ccc; width:100%; display: -webkit-inline-flex; display: -ms-inline-flexbox; display: inline-flex; li { width: 20%; float: left; padding: 0 0 0.8em; margin: 0; text-align: center; position: relative; border-bottom: 4px solid #ccc; line-height: 1.4em; } li:before { content: ""; border: 4px solid #ccc; border-radius: 100%; width: 4px; height: 4px; position: absolute; bottom: 0; left: 50%; margin-left: -6px; margin-bottom: -8px; background: #fff; } li.active { border-color: #a16696; color: #a16696; &:before { border-color: #a16696; } } li.done { border-color: #a16696; color: #a16696; &:before { border-color: #a16696; background: #a16696; } } } .wc-setup .wc-setup-actions { overflow: hidden; .button { float: right; font-size: 1.25em; padding: .5em 1em; line-height: 1em; margin-right: .5em; margin-bottom: 2px; height: auto; border-radius: 4px; } .button-primary { background-color: #bb77ae; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; text-shadow: 0px -1px 1px #A36597, 1px 0px 1px #A36597, 0px 1px 1px #A36597, -1px 0px 1px #A36597; float: right; margin: 0; opacity: 1; &:hover, &:focus, &:active { background: #A36597; border-color: #A36597; -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #A36597; } } } .wc-return-to-dashboard { font-size: 0.85em; color: #b5b5b5; margin: 1.18em 0; display: block; text-align: center; } ul.wc-wizard-payment-gateways { border: 1px solid #eee; border-bottom-width: 2px; padding: 0; margin: 0 0 1em; list-style: none outside; border-radius: 4px; li.wc-wizard-gateway { padding: 1.5em 1em 1em 4em; border-top: 1px solid #eee; list-style: none outside; cursor: pointer; color: #555; box-sizing: border-box; clear: both; &:first-child { border-top: 0; } &.featured { width: 50%; float: left; clear: none; border-right: 1px solid #eee; border-top: 0; } &.featured-row-last { border-right: 0; } .wc-wizard-gateway-settings { display: none; margin-bottom: 0; cursor: default; } &.checked { background: #F7F1F6; .wc-wizard-gateway-settings { display: table; } } .wc-wizard-gateway-description { font-style: italic; p { margin: 0 0 .5em; } } .wc-wizard-gateway-enable { margin: 0 0 .5em; label { display: block; font-weight: bold; vertical-align: middle; img { max-height: 2em; vertical-align: middle; } } label:before { content: ''; background: #fff; border: 2px solid #eee; display: inline-block; float: left; vertical-align: middle; width: 2em; height: 2em; padding: 0; box-sizing: border-box; line-height: 1.8em; text-align: center; margin: 0 1em 0 -3em; border-radius: 4px; } input { opacity: 0; width: 0; position: absolute; &:checked + label:before { content: "\f147"; font-family: 'dashicons'; color: #fff; border-color: #a46497; background: #a46497; } &:focus + label { outline: 1px solid #ddd; /* focus style */ } } } } } assets/css/admin.css000066600000510701152133032050010442 0ustar00@charset "UTF-8";.button.wc-reload:after,.woocommerce-help-tip:after{speak:none;text-transform:none;-webkit-font-smoothing:antialiased}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.select2-container{margin:0;position:relative;display:block!important;zoom:1;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #ccc;white-space:nowrap;color:#444;text-decoration:none;border-radius:3px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;font-weight:400}html[dir=rtl] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#ccc;border-radius:0 0 4px 4px}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir=rtl] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:5px;font-size:1px;text-decoration:none;border:0;background:url(../images/select2.png) right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;top:100%;background:#fff;color:#000;border:1px solid #ccc;border-top:0;border-radius:0 0 3px 3px}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #ccc;border-bottom:0;border-radius:3px 3px 0 0}.select2-drop-active{border:1px solid #666;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #666}.select2-drop-auto-width{border-top:1px solid #ccc;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-radius:0 3px 3px 0;background-clip:padding-box}html[dir=rtl] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-radius:3px 0 0 3px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;position:relative}.select2-container .select2-choice .select2-arrow b:after{position:absolute;display:block;content:"";top:50%;left:50%;border:4px solid transparent;border-top-color:#666;margin-left:-7px;margin-top:-2px}.select2-search{display:inline-block;width:100%;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap;padding-bottom:4px}.select2-search input{width:100%;height:auto!important;padding:4px 20px 4px 5px!important;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none;background:url(../images/select2.png) 100% -22px no-repeat #fff}html[dir=rtl] .select2-search input{padding:4px 5px 4px 20px;background:url(../images/select2.png) -37px -22px no-repeat #fff}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open .select2-choice .select2-arrow b:after{border-top-color:transparent;border-bottom-color:#666;margin-top:-6px}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #666;border-top-color:transparent}.select2-dropdown-open .select2-choice .select2-arrow{background:0 0;border-left:none;filter:none}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:4px;margin:0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;background:#fafafa}html[dir=rtl] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none;margin:3px 0}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:700}.select2-results .select2-result-label{padding:5px 7px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#f1f1f1;color:#000;border-radius:3px}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-ajax-error,.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #f4f4f4}.select2-results .select2-ajax-error{background:rgba(255,50,50,.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto!important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #ccc;cursor:text;overflow:hidden;background-color:#fff;min-height:26px}html[dir=rtl] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir=rtl] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field:first-child{width:100%}.select2-container-multi .select2-choices .select2-search-field input{margin:1px 0;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:0 0!important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff!important}.select2-default{color:#999!important}.select2-container-multi .select2-choices .select2-search-choice{padding:5px 8px 5px 24px;margin:3px 0 3px 5px;position:relative;line-height:15px;color:#333;cursor:default;border-radius:2px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4}html[dir=rtl] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:5px 24px 5px 8px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:7px;top:6px;font-size:1px;outline:0;background:url(../images/select2.png) right top no-repeat}html[dir=rtl] .select2-search-choice-close{right:auto;left:7px}.select2-container-multi .select2-search-choice-close{left:7px}html[dir=rtl] .select2-container-multi .select2-search-choice-close{left:auto;right:7px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover,.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:0 0}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input{background-image:url(../images/select2x2.png)!important;background-repeat:no-repeat!important;background-size:60px 40px!important;background-position:100% -21px!important}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}.blockUI.blockOverlay:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.wc_addons_wrap .addons-featured{max-width:1140px;margin:-1%}.wc_addons_wrap .addons-banner-block-item-icon,.wc_addons_wrap .addons-column-block-item-icon{align-items:center;display:flex;justify-content:center}.wc_addons_wrap .addons-banner-block{background:#fff;box-shadow:0 0 1px rgba(0,0,0,.2);margin:2% 1% 0;max-width:1140px;padding:20px}.wc_addons_wrap .addons-banner-block img{height:62px}.wc_addons_wrap .addons-banner-block p{margin:0 0 20px}.wc_addons_wrap .addons-banner-block-items{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;margin:0 -10px}.wc_addons_wrap .addons-banner-block-item{border:1px solid #e6e6e6;border-radius:3px;flex:1 1 200px;margin:10px;max-width:350px;min-width:200px;width:30%}.wc_addons_wrap .addons-banner-block-item-icon{background:#f7f7f7;height:143px}.wc_addons_wrap .addons-banner-block-item-content{display:flex;flex-direction:column;height:184px;justify-content:space-between;padding:24px}.wc_addons_wrap .addons-banner-block-item-content h3{margin-top:0}.wc_addons_wrap .addons-banner-block-item-content p{margin:0 0 auto}.wc_addons_wrap .addons-column-section{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around}.wc_addons_wrap .addons-column{flex:1 1 200px;margin:0 1%;width:49.5%}.wc_addons_wrap .addons-column-block,.wc_addons_wrap .addons-small-dark-block,.wc_addons_wrap .addons-small-light-block{box-sizing:border-box;box-shadow:0 0 1px rgba(0,0,0,.2);margin:4% 0 0;padding:20px}.wc_addons_wrap .addons-column-block img{max-height:50px;max-width:50px}.wc_addons_wrap .addons-column-block,.wc_addons_wrap .addons-small-light-block{background:#fff}.wc_addons_wrap .addons-column-block-left{float:left}.wc_addons_wrap .addons-column-block-right{float:right}.wc_addons_wrap .addons-column-block-item{display:flex;border-top:2px solid #f9f9f9;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin:0 -20px;padding:20px}.wc_addons_wrap .addons-column-block-item-icon{background:#f7f7f7;border:1px solid #e6e6e6;height:100px;margin:0 10px 10px 0;width:100px}.wc_addons_wrap .addons-column-block-item-content{display:flex;flex:1 1 200px;flex-wrap:wrap;height:20%;justify-content:space-between;min-width:200px}.wc_addons_wrap .addons-column-block-item-content h2{float:left;margin-top:8px}.wc_addons_wrap .addons-column-block-item-content a{float:right}.wc_addons_wrap .addons-column-block-item-content p{float:left}.wc_addons_wrap .addons-small-dark-block{background-color:#54687d;text-align:center}.wc_addons_wrap .addons-small-dark-items{display:flex;flex-wrap:wrap;justify-content:space-around}.wc_addons_wrap .addons-small-dark-item{margin:0 0 20px}.wc_addons_wrap .addons-small-dark-block h1{color:#fff}.wc_addons_wrap .addons-small-dark-block p{color:#fafafa}.wc_addons_wrap .addons-small-dark-item-icon img{height:30px}.wc_addons_wrap .addons-small-dark-item a{margin:28px auto 0}.wc_addons_wrap .addons-small-light-block{display:flex;flex-wrap:wrap}.wc_addons_wrap .addons-small-light-block h1{margin-top:-12px}.wc_addons_wrap .addons-small-light-block p{margin-top:0}.wc_addons_wrap .addons-small-light-block img{height:225px;margin:0 0 0 -20px}.wc_addons_wrap .addons-small-light-block-content{display:flex;flex:1 1 100px;flex-direction:column;justify-content:space-around}.wc_addons_wrap .addons-small-light-block-buttons{display:flex;justify-content:space-between}.wc_addons_wrap .addons-small-light-block-content a{width:48%}.wc_addons_wrap .addons-button{border-radius:3px;cursor:pointer;display:block;height:37px;line-height:37px;text-align:center;text-decoration:none;width:124px}.wc_addons_wrap .addons-button-solid{background-color:#955a89;color:#fff}.wc_addons_wrap .addons-button-solid:hover{color:#fff;opacity:.8}.wc_addons_wrap .addons-button-outline-green{border:1px solid #73ae39;color:#73ae39}.wc_addons_wrap .addons-button-outline-green:hover{color:#73ae39;opacity:.8}.wc_addons_wrap .addons-button-outline-white{border:1px solid #fff;color:#fff}.wc_addons_wrap .addons-button-outline-white:hover{color:#fff;opacity:.8}.wc_addons_wrap .addons-button-installed{background:#e6e6e6;color:#3c3c3c}.wc_addons_wrap .addons-button-installed:hover{color:#3c3c3c;opacity:.8}@media only screen and (max-width:400px){.wc_addons_wrap .addons-featured{margin:-1% -5%}.wc_addons_wrap .addons-button,.wc_addons_wrap .addons-small-dark-item{width:100%}.wc_addons_wrap .addons-column-block-item-icon{background:0 0;border:none;height:75px;margin:0 10px 10px 0;width:75px}}.wc_addons_wrap .products{overflow:hidden}.wc_addons_wrap .products li{float:left;margin:0 1em 1em 0!important;padding:0;vertical-align:top;width:300px}.wc_addons_wrap .products li a{text-decoration:none;color:inherit;border:1px solid #ddd;display:block;min-height:220px;overflow:hidden;background:#f5f5f5;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1)}.wc_addons_wrap .products li a img{max-width:258px;max-height:24px;padding:17px 20px;display:block;margin:0;background:#fff;border-right:260px solid #fff}.wc_addons_wrap .products li a .price,.wc_addons_wrap .products li a img.extension-thumb+h3{display:none}.wc_addons_wrap .products li a h2,.wc_addons_wrap .products li a h3{margin:0!important;padding:20px!important;background:#fff}.wc_addons_wrap .products li a p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wc_addons_wrap .products li a:focus,.wc_addons_wrap .products li a:hover{background-color:#fff}.wc_addons_wrap .storefront{background:url(../images/storefront-bg.jpg) bottom right #f6f6f6;border:1px solid #ddd;padding:20px;overflow:hidden;zoom:1}.wc_addons_wrap .storefront img{width:278px;height:auto;float:left;margin:0 20px 0 0;box-shadow:0 1px 6px rgba(0,0,0,.1)}.wc_addons_wrap .storefront p{max-width:750px}.woocommerce-BlankState a.button-primary,.woocommerce-BlankState button.button-primary,.woocommerce-message a.button-primary,.woocommerce-message button.button-primary{background:#bb77ae;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;color:#fff;text-shadow:0 -1px 1px #A36597,1px 0 1px #A36597,0 1px 1px #A36597,-1px 0 1px #A36597}.woocommerce-BlankState a.button-primary:active,.woocommerce-BlankState a.button-primary:focus,.woocommerce-BlankState a.button-primary:hover,.woocommerce-BlankState button.button-primary:active,.woocommerce-BlankState button.button-primary:focus,.woocommerce-BlankState button.button-primary:hover,.woocommerce-message a.button-primary:active,.woocommerce-message a.button-primary:focus,.woocommerce-message a.button-primary:hover,.woocommerce-message button.button-primary:active,.woocommerce-message button.button-primary:focus,.woocommerce-message button.button-primary:hover{background:#A36597;border-color:#A36597;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #A36597}.woocommerce-message{position:relative;border-left-color:#cc99c2!important;overflow:hidden}.woocommerce-message a.docs,.woocommerce-message a.skip{text-decoration:none!important}.woocommerce-message a.woocommerce-message-close{position:absolute;top:10px;right:10px;padding:10px 15px 10px 21px;font-size:13px;line-height:1.23076923;text-decoration:none}.woocommerce-message a.woocommerce-message-close:before{position:absolute;top:8px;left:0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.woocommerce-message .twitter-share-button{margin-top:-3px;margin-left:3px;vertical-align:middle}#variable_product_options #message,#variable_product_options .notice{margin:10px}.clear{clear:both}#woocommerce-fields-bulk.inline-edit-col label,#woocommerce-fields.inline-edit-col{clear:left}.wrap.woocommerce div.error,.wrap.woocommerce div.updated{margin-top:10px}mark.amount{background:0 0;color:inherit}.postbox,.woocommerce{input:invalid;input-border:1px solid #cc010b;input-background:#ffebe8}.simplify-commerce-banner{overflow:hidden}.simplify-commerce-banner img{float:right;padding:15px 0;margin-left:1em;width:200px}.woocommerce-help-tip{color:#666;display:inline-block;font-size:1.1em;font-style:normal;height:16px;line-height:16px;position:relative;vertical-align:middle;width:16px}.woocommerce-help-tip:after{font-family:Dashicons;font-weight:400;font-variant:normal;line-height:1;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";cursor:help}h2 .woocommerce-help-tip{margin-top:-5px;margin-left:.25em}table.wc_status_table{margin-bottom:1em}table.wc_status_table h2{font-size:14px;margin:0}table.wc_status_table tr:nth-child(2n) td,table.wc_status_table tr:nth-child(2n) th{background:#fcfcfc}table.wc_status_table th{font-weight:700;padding:9px}table.wc_status_table td:first-child{width:33%}table.wc_status_table td.help{width:1em}table.wc_status_table td{padding:9px;font-size:1.1em}table.wc_status_table td mark{background:0 0}table.wc_status_table td mark.yes{color:#7ad03a}table.wc_status_table td mark.no{color:#999}table.wc_status_table td mark.error{color:#a00}table.wc_status_table td ul{margin:0}table.wc_status_table .help_tip{cursor:help}#debug-report{display:none;margin:10px 0;padding:0;position:relative}#debug-report textarea{font-family:monospace;width:100%;margin:0;height:300px;padding:20px;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;resize:none;font-size:12px;line-height:20px;outline:0}#log-viewer-select{padding:10px 0 8px;line-height:180%}#log-viewer textarea{width:100%;resize:vertical}.inline-edit-product.quick-edit-row .inline-edit-col-center,.inline-edit-product.quick-edit-row .inline-edit-col-right{float:right!important}#woocommerce-fields.inline-edit-col label.featured,#woocommerce-fields.inline-edit-col label.manage_stock{margin-left:10px}#woocommerce-fields.inline-edit-col .dimensions div{display:block;margin:.2em 0}#woocommerce-fields.inline-edit-col .dimensions div span.title{display:block;float:left;width:5em}#woocommerce-fields.inline-edit-col .dimensions div span.input-text-wrap{display:block;margin-left:5em}#woocommerce-fields.inline-edit-col .text{box-sizing:border-box;width:99%;float:left;margin:1px 1% 1px 1px}#woocommerce-fields.inline-edit-col .height,#woocommerce-fields.inline-edit-col .length,#woocommerce-fields.inline-edit-col .width{width:32.33%}#woocommerce-fields.inline-edit-col .height{margin-right:0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group label{clear:none;width:49%;margin:.2em 0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group.dimensions label{width:75%;max-width:75%}#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .regular_price,#woocommerce-fields-bulk.inline-edit-col .sale_price,#woocommerce-fields-bulk.inline-edit-col .stock,#woocommerce-fields-bulk.inline-edit-col .weight{box-sizing:border-box;width:100%;margin-left:4.4em}#woocommerce-fields-bulk.inline-edit-col .height,#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .width{box-sizing:border-box;width:25%}.column-coupon_code{line-height:2.25em}.column-coupon_code,ul.wc_coupon_list{margin:0;overflow:hidden;zoom:1;clear:both}ul.wc_coupon_list li{margin:0}ul.wc_coupon_list li.code{display:inline-block}ul.wc_coupon_list li.code:after{content:", "}ul.wc_coupon_list li.code:last-of-type:after{display:none}ul.wc_coupon_list li.code .tips{cursor:pointer}ul.wc_coupon_list_block{margin:0;padding-bottom:2px}ul.wc_coupon_list_block li{border-top:1px solid #fff;border-bottom:1px solid #ccc;line-height:2.5em;margin:0;padding:.5em 0}ul.wc_coupon_list_block li:first-child{border-top:0;padding-top:0}ul.wc_coupon_list_block li:last-child{border-bottom:0;padding-bottom:0}.button.wc-reload{text-indent:-9999px;position:relative;padding:0;height:28px;width:28px!important;display:inline-block}.button.wc-reload:after{font-family:Dashicons;font-weight:400;font-variant:normal;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";line-height:28px}#order_data h2,#order_data p.order_number{font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:400}.tablenav .actions{overflow:visible}.tablenav .select2-container{float:left;max-width:200px;font-size:14px;vertical-align:middle;margin:1px 6px 1px 1px}#woocommerce-order-data .handlediv,#woocommerce-order-data .hndle{display:none}#woocommerce-order-data .inside{display:block!important}#order_data{padding:23px 24px 12px}#order_data h2{margin:0;font-size:21px;line-height:1.2;text-shadow:1px 1px 1px #fff;padding:0}#order_data h3{font-size:14px}#order_data h3,#order_data h4{color:#333;margin:1.33em 0 0}#order_data p{color:#777}#order_data p.order_number{margin:0;line-height:1.6em;font-size:16px}#order_data .order_data_column_container{clear:both}#order_data .order_data_column{width:32%;padding:0 2% 0 0;float:left}#order_data .order_data_column:last-child{padding-right:0}#order_data .order_data_column p{padding:0!important}#order_data .order_data_column .address strong{display:block}#order_data .order_data_column .form-field{float:left;width:48%;padding:0;margin:9px 0 0}#order_data .order_data_column .form-field label{display:block;padding:0 0 3px}#order_data .order_data_column .form-field input,#order_data .order_data_column .form-field select,#order_data .order_data_column .form-field textarea{width:100%}#order_data .order_data_column .form-field .select2-container{width:100%!important}#order_data .order_data_column .form-field .date-picker{width:50%}#order_data .order_data_column .form-field .hour,#order_data .order_data_column .form-field .minute{width:3.5em}#order_data .order_data_column .form-field small{display:block;margin:5px 0 0;color:#999}#order_data .order_data_column .form-field.last{float:right}#order_data .order_data_column .form-field-wide{width:100%;clear:both}#order_data .order_data_column .form-field-wide .wc-customer-search,#order_data .order_data_column .form-field-wide .wc-enhanced-select,#order_data .order_data_column .form-field-wide input,#order_data .order_data_column .form-field-wide select,#order_data .order_data_column .form-field-wide textarea{width:100%}#order_data .order_data_column p.none_set{color:#999}#order_data .order_data_column ._billing_address_1_field,#order_data .order_data_column ._billing_city_field,#order_data .order_data_column ._billing_country_field,#order_data .order_data_column ._billing_email_field,#order_data .order_data_column ._billing_first_name_field,#order_data .order_data_column ._shipping_address_1_field,#order_data .order_data_column ._shipping_city_field,#order_data .order_data_column ._shipping_country_field,#order_data .order_data_column ._shipping_first_name_field{float:left}#order_data .order_data_column ._billing_address_2_field,#order_data .order_data_column ._billing_last_name_field,#order_data .order_data_column ._billing_phone_field,#order_data .order_data_column ._billing_postcode_field,#order_data .order_data_column ._billing_state_field,#order_data .order_data_column ._shipping_address_2_field,#order_data .order_data_column ._shipping_last_name_field,#order_data .order_data_column ._shipping_postcode_field,#order_data .order_data_column ._shipping_state_field,#order_data .order_data_column .wc-customer-user label a,#order_data .order_data_column .wc-order-status label a{float:right}#order_data .order_data_column ._billing_company_field,#order_data .order_data_column ._shipping_company_field,#order_data .order_data_column ._transaction_id_field{clear:both;width:100%}#order_data .order_data_column ._billing_email_field{clear:left}#order_data .order_data_column div.edit_address{display:none;zoom:1;padding-right:1px}#order_data .order_data_column .billing-same-as-shipping,#order_data .order_data_column .load_customer_billing,#order_data .order_data_column .load_customer_shipping,#order_data .order_data_column a.edit_address{width:14px;height:0;padding:14px 0 0;margin:0 0 0 6px;overflow:hidden;position:relative;color:#999;border:0;float:right}#order_data .order_data_column .billing-same-as-shipping:focus,#order_data .order_data_column .billing-same-as-shipping:hover,#order_data .order_data_column .load_customer_billing:focus,#order_data .order_data_column .load_customer_billing:hover,#order_data .order_data_column .load_customer_shipping:focus,#order_data .order_data_column .load_customer_shipping:hover,#order_data .order_data_column a.edit_address:focus,#order_data .order_data_column a.edit_address:hover{color:#000}#order_data .order_data_column .billing-same-as-shipping:after,#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after,#order_data .order_data_column a.edit_address:after{font-family:WooCommerce;position:absolute;top:0;left:0;text-align:center;vertical-align:top;line-height:14px;font-size:14px;font-weight:400;-webkit-font-smoothing:antialiased}#order_data .order_data_column .billing-same-as-shipping:after{content:"\e008"}#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after{content:"\e03a"}#order_data .order_data_column a.edit_address:after{font-family:Dashicons;content:"\f464"}.order_actions{margin:0;overflow:hidden;zoom:1}.order_actions li{border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:6px 0;margin:0;line-height:1.6em;float:left;width:50%;text-align:center}.order_actions li a{float:none;text-align:center;text-decoration:underline}.order_actions li.wide{width:auto;float:none;clear:both;padding:6px;text-align:left;overflow:hidden}.order_actions li #delete-action{line-height:25px;vertical-align:middle;text-align:left;float:left}.order_actions li .save_order{float:right}.order_actions li#actions{overflow:hidden}.order_actions li#actions .button{width:24px;box-sizing:border-box;float:right}.order_actions li#actions select{width:225px;box-sizing:border-box;float:left}#woocommerce-order-items .inside{margin:0;padding:0;background:#fefefe}#woocommerce-order-items .wc-order-data-row{border-bottom:1px solid #DFDFDF;padding:1.5em 2em;background:#f8f8f8;line-height:2em;text-align:right}#woocommerce-order-items .wc-order-data-row:after,#woocommerce-order-items .wc-order-data-row:before{content:" ";display:table}#woocommerce-order-items .wc-order-data-row:after{clear:both}#woocommerce-order-items .wc-order-data-row p{margin:0;line-height:2em}#woocommerce-order-items .wc-order-data-row .wc-used-coupons{text-align:left}#woocommerce-order-items .wc-order-data-row .wc-used-coupons .tips{display:inline-block}#woocommerce-order-items .wc-order-add-item{background:#fff;vertical-align:top;border-top:none}#woocommerce-order-items .wc-order-add-item .add_item_id,#woocommerce-order-items .wc-order-add-item .select2-container{vertical-align:top}#woocommerce-order-items .wc-order-add-item .add_item_id .search-field input,#woocommerce-order-items .wc-order-add-item .select2-container .search-field input{min-width:100px}#woocommerce-order-items .wc-order-add-item .select2-container{width:400px!important;text-align:left}#woocommerce-order-items .wc-order-add-item .calculate-action,#woocommerce-order-items .wc-order-add-item .cancel-action,#woocommerce-order-items .wc-order-add-item .save-action{float:left;margin-right:2px}#woocommerce-order-items .wc-used-coupons{float:left;width:50%}#woocommerce-order-items .wc-order-totals{float:right;width:50%;margin:0;padding:0;text-align:right}#woocommerce-order-items .wc-order-totals .amount{font-weight:700}#woocommerce-order-items .wc-order-totals .label{vertical-align:top}#woocommerce-order-items .wc-order-totals .total{font-size:1em!important;width:10em;margin:0 0 0 .5em;box-sizing:border-box}#woocommerce-order-items .wc-order-totals .total input[type=text]{width:96%;float:right}#woocommerce-order-items .wc-order-totals .refunded-total{color:#a00}#woocommerce-order-items .refund-actions{margin-top:5px;padding-top:12px;border-top:1px solid #DFDFDF}#woocommerce-order-items .refund-actions .button{float:right;margin-left:4px}#woocommerce-order-items .refund-actions .cancel-action,#woocommerce-order-items .wc-order-item-bulk-edit .cancel-action{float:left;margin-left:0}#woocommerce-order-items .add_meta{margin-left:0!important}#woocommerce-order-items h3 small{color:#999}#woocommerce-order-items .amount{white-space:nowrap}#woocommerce-order-items .add-items .description{margin-right:10px}#woocommerce-order-items .add-items .button{float:left;margin-right:.25em}#woocommerce-order-items .add-items .button-primary{float:none;margin-right:0}#woocommerce-order-items .inside{display:block!important}#woocommerce-order-items .handlediv,#woocommerce-order-items .hndle{display:none}#woocommerce-order-items .woocommerce_order_items_wrapper{margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items{width:100%;background:#fff}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items thead th{text-align:left;padding:1em;font-weight:400;color:#999;background:#f8f8f8;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items thead th.sortable{cursor:pointer}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items thead th:last-child{padding-right:2em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items thead th:first-child{padding-left:2em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items thead th .wc-arrow{float:right;position:relative;margin-right:-1em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td{padding:1.5em 1em 1em;text-align:left;line-height:1.5em;vertical-align:top;border-bottom:1px solid #f8f8f8}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{width:100%}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td select{width:50%}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{font-size:14px;padding:4px;color:#555}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:last-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td:last-child{padding-right:2em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td:first-child{padding-left:2em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr td{cursor:pointer}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr.selected{background:#F5EBF3}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr.selected td{border-color:#E6CCE1;opacity:.8}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:last-child td{border-bottom:1px solid #dfdfdf}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:first-child td{border-top:8px solid #f8f8f8}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tbody#order_line_items tr:first-child td{border-top:none}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.thumb{text-align:left;width:38px;padding-bottom:1.5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.thumb .wc-order-item-thumbnail{width:38px;height:38px;border:2px solid #e8e8e8;background:#f8f8f8;color:#ccc;position:relative;font-size:21px;display:block;text-align:center}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.thumb .wc-order-item-thumbnail:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;height:100%;text-align:center;content:"";width:38px;line-height:38px;display:block}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.thumb .wc-order-item-thumbnail img{width:100%;height:100%;margin:0;padding:0;position:relative}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.name .wc-order-item-sku,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.name .wc-order-item-variation{display:block;margin-top:.5em;font-size:.92em!important;color:#888}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item{min-width:200px}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .center,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .variation-id{text-align:center}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class{text-align:right}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label{white-space:nowrap;color:#999;font-size:.833em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax label input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label input{display:inline}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class input{width:70px;vertical-align:middle;text-align:right}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax select,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class select{width:85px;height:26px;vertical-align:middle;font-size:1em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input{display:inline-block;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);margin:1px 0;min-width:80px;overflow:hidden;line-height:1em;text-align:right}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input{width:100%;box-sizing:border-box}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input label{font-size:.75em;padding:4px 6px 0;color:#555;display:block}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input input{width:100%;box-sizing:border-box;border:0;box-shadow:none;margin:0;padding:0 6px 4px;color:#555;background:0 0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input input::-webkit-input-placeholder,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input input::-webkit-input-placeholder{color:#ddd}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input:first-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input:first-child{border-bottom:1px dashed #ddd;background:#fff}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input div.input:first-child label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input:first-child input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input div.input:first-child label{color:#ccc}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .view,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .view{white-space:nowrap}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .edit,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .edit{text-align:left}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class del,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class small.times{font-size:.92em!important;color:#888}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-taxes,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-refund-fields,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-taxes{margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-taxes label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-refund-fields label,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-taxes label{display:block}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax .wc-order-item-discount,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .wc-order-item-discount{display:block;margin-top:.5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax small.times,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class small.times{margin-right:.25em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity{text-align:center}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input{text-align:center;width:50px}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items span.subtotal{opacity:.5}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.tax_class,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.tax_class{text-align:left}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .calculated{border-color:#ae8ca2;border-style:dotted}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{width:100%}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{margin:.5em 0 0;font-size:.92em!important;color:#888}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{color:#ccc;top:0;left:0;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-align:center;font-family:WooCommerce}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr th,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr th{border:0;padding:0 4px .5em 0;line-height:1.5em;width:20%}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td{padding:0 4px .5em 0;border:0;line-height:1.5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input{width:100%;margin:0;position:relative;border-bottom:0;box-shadow:none}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items .refund_by,ul.order_notes li p.meta .exact-date{border-bottom:1px dotted #999}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td textarea,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td textarea{width:100%;height:4em;margin:0;box-shadow:none}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input:focus+textarea,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input:focus+textarea{border-top-color:#999}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p{margin:0 0 .5em;line-height:1.5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p:last-child,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p:last-child{margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.5em;line-height:1em;vertical-align:middle;margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before{line-height:1;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.5em;line-height:1em;vertical-align:middle;margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before{line-height:1;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.5em;line-height:1em;vertical-align:middle;margin:0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{line-height:1;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .shipping_method,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .shipping_method_name{width:100%;margin:0 0 .5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax{white-space:nowrap}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;float:right;font-size:14px;visibility:hidden;margin:3px -18px 0 0}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:before,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";color:#999}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:hover:before,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:hover:before{color:#a00}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax:hover .delete-order-tax,#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax:hover .delete-order-tax{visibility:visible}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items small.refunded{display:block;color:#a00;white-space:nowrap;margin-top:.5em}#woocommerce-order-items .woocommerce_order_items_wrapper table.woocommerce_order_items small.refunded:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-indent:0;width:100%;height:100%;text-align:center;content:"";position:relative;top:auto;left:auto;margin:-1px 4px 0 0;vertical-align:middle;line-height:1em}#woocommerce-order-items .wc-order-edit-line-item{padding-left:0}#woocommerce-order-items .wc-order-edit-line-item-actions{width:44px;text-align:right;padding-left:0;vertical-align:middle}#woocommerce-order-items .wc-order-edit-line-item-actions a{color:#ccc;display:inline-block;cursor:pointer;padding:0 0 .5em;margin:0 0 0 12px;vertical-align:middle;text-decoration:none;line-height:16px;width:16px;overflow:hidden}#woocommerce-order-items .wc-order-edit-line-item-actions a:before{margin:0;padding:0;font-size:16px;width:16px;height:16px}#woocommerce-order-items .wc-order-edit-line-item-actions .delete-order-item:before,#woocommerce-order-items .wc-order-edit-line-item-actions .delete_refund:before,#woocommerce-order-items .wc-order-edit-line-item-actions .edit-order-item:before{font-family:Dashicons;-webkit-font-smoothing:antialiased;text-indent:0;top:0;left:0;width:100%;height:100%;margin:0;text-align:center;position:relative;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1}#woocommerce-order-items .wc-order-edit-line-item-actions a:hover:before{color:#999}#woocommerce-order-items .wc-order-edit-line-item-actions a:first-child{margin-left:0}#woocommerce-order-items .wc-order-edit-line-item-actions .edit-order-item:before{content:""}#woocommerce-order-items .wc-order-edit-line-item-actions .delete-order-item:before,#woocommerce-order-items .wc-order-edit-line-item-actions .delete_refund:before{content:""}#woocommerce-order-items .wc-order-edit-line-item-actions .delete-order-item:hover:before,#woocommerce-order-items .wc-order-edit-line-item-actions .delete_refund:hover:before{color:#a00}#woocommerce-order-items tbody tr .wc-order-edit-line-item-actions{visibility:hidden}#woocommerce-order-items tbody tr:hover .wc-order-edit-line-item-actions{visibility:visible}#woocommerce-order-items .wc-order-totals .wc-order-edit-line-item-actions{width:1.5em;visibility:visible!important}#woocommerce-order-items .wc-order-totals .wc-order-edit-line-item-actions a{padding:0}#woocommerce-order-downloads .buttons{float:left;padding:0;margin:0;vertical-align:top}#woocommerce-order-downloads .buttons .add_item_id,#woocommerce-order-downloads .buttons .select2-container{width:400px!important;margin-right:9px;vertical-align:top;float:left}#woocommerce-order-downloads .buttons button{margin:2px 0 0}#woocommerce-order-downloads h3 small{color:#999}#poststuff #woocommerce-order-actions .inside{margin:0;padding:0}#poststuff #woocommerce-order-actions .inside ul.order_actions li{padding:6px 10px;box-sizing:border-box}#poststuff #woocommerce-order-actions .inside ul.order_actions li:last-child{border-bottom:0}#poststuff #woocommerce-order-notes .inside{margin:0;padding:0}#poststuff #woocommerce-order-notes .inside ul.order_notes li{padding:0 10px}#woocommerce_customers p.search-box{margin:6px 0 4px;float:left}#woocommerce_customers .tablenav{float:right;clear:none}.widefat.customers td{vertical-align:middle;padding:4px 7px}.widefat .column-order_title{width:15%}.widefat .column-order_title time{display:block;color:#999;margin:3px 0}.widefat .column-orders,.widefat .column-paying,.widefat .column-spent{text-align:center;width:8%}.widefat .column-last_order{width:11%}.widefat .column-order_actions,.widefat .column-user_actions,.widefat .column-wc_actions{width:110px}.widefat .column-order_actions a.button,.widefat .column-user_actions a.button,.widefat .column-wc_actions a.button{float:left;margin:0 4px 2px 0;cursor:pointer;padding:3px 4px;height:auto}.widefat .column-order_actions a.button img,.widefat .column-user_actions a.button img,.widefat .column-wc_actions a.button img{display:block;width:12px;height:auto}.widefat small.meta{display:block;color:#999;font-size:inherit;margin:3px 0}.widefat .column-order_date,.widefat .column-order_total{width:9%}.widefat .column-order_status{width:45px;text-align:center}.widefat .column-order_status mark{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;background:0 0;font-size:1.4em;margin:0 auto}.widefat .column-order_status mark.cancelled:after,.widefat .column-order_status mark.completed:after,.widefat .column-order_status mark.failed:after,.widefat .column-order_status mark.on-hold:after,.widefat .column-order_status mark.pending:after,.widefat .column-order_status mark.processing:after,.widefat .column-order_status mark.refunded:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.column-customer_message .note-on:after,.column-order_notes .note-on:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;text-align:center;line-height:16px;font-family:WooCommerce}.widefat .column-order_status mark.pending:after{content:"\e012";color:#ffba00}.widefat .column-order_status mark.completed:after{content:"\e015";color:#2ea2cc}.widefat .column-order_status mark.on-hold:after{content:"\e033";color:#999}.widefat .column-order_status mark.failed:after{content:"\e016";color:#d0c21f}.widefat .column-order_status mark.cancelled:after{content:"\e013";color:#a00}.widefat .column-order_status mark.processing:after{content:"\e011";color:#73a724}.widefat .column-order_status mark.refunded:after{content:"\e014";color:#999}.widefat td.column-order_status{padding-top:9px}.column-customer_message .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-customer_message .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.column-order_notes .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-order_notes .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.order_actions .complete,.order_actions .processing,.order_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.order_actions .processing:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";line-height:1.85}.order_actions .complete:after,.order_actions .view:after{font-family:Dashicons;text-indent:0;position:absolute;width:100%;height:100%;left:0;line-height:1.85;margin:0;text-align:center;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;font-weight:400}.order_actions .complete:after{content:""}.order_actions .view:after{content:""}.user_actions .edit,.user_actions .link,.user_actions .refresh,.user_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.user_actions .edit:after,.user_actions .link:after,.user_actions .refresh:after,.user_actions .view:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";line-height:1.85}.user_actions .edit:after{font-family:Dashicons;content:"\f464"}.user_actions .link:after{content:"\e00d"}.user_actions .view:after{content:"\e010"}.user_actions .refresh:after{content:"\e031"}.attributes-table td,.attributes-table th{width:15%;vertical-align:top}.attributes-table .attribute-terms{width:32%}.attributes-table .attribute-actions{width:2em}.attributes-table .attribute-actions .configure-terms{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.attributes-table .attribute-actions .configure-terms:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-family:Dashicons;line-height:1.85}ul.order_notes{padding:2px 0 0}ul.order_notes li .note_content{padding:10px;background:#efefef;position:relative}ul.order_notes li .note_content p{margin:0;padding:0;word-wrap:break-word}ul.order_notes li p.meta{padding:10px;color:#999;margin:0;font-size:11px}ul.order_notes li a.delete_note{color:#a00}table.wp-list-table .row-actions,table.wp-list-table span.na{color:#999}ul.order_notes li .note_content:after{content:"";display:block;position:absolute;bottom:-10px;left:20px;width:0;height:0;border-width:10px 10px 0 0;border-style:solid;border-color:#efefef transparent}ul.order_notes li.customer-note .note_content{background:#A7CEDC}ul.order_notes li.customer-note .note_content:after{border-color:#A7CEDC transparent}ul.order_notes li.system-note .note_content{background:#d7cad2}ul.order_notes li.system-note .note_content:after{border-color:#d7cad2 transparent}.add_note{border-top:1px solid #ddd;padding:10px 10px 0}.add_note h4{margin-top:5px!important}.add_note #add_order_note{width:100%;height:50px}table.wp-list-table .column-thumb{width:52px;text-align:center;white-space:nowrap}table.wp-list-table .column-name{width:22%}table.wp-list-table .column-product_cat,table.wp-list-table .column-product_tag{width:11%!important}table.wp-list-table .column-featured,table.wp-list-table .column-product_type{width:48px;text-align:left!important}table.wp-list-table .column-customer_message,table.wp-list-table .column-order_notes{width:48px;text-align:center}table.wp-list-table .column-customer_message img,table.wp-list-table .column-order_notes img{margin:0 auto;padding-top:0!important}table.wp-list-table .manage-column.column-featured img,table.wp-list-table .manage-column.column-product_type img{padding-left:2px}table.wp-list-table .column-price .woocommerce-price-suffix{display:none}table.wp-list-table img{margin:1px 2px}table.wp-list-table td.column-thumb img{margin:0;width:auto;height:auto;max-width:40px;max-height:40px;vertical-align:middle}table.wp-list-table .column-is_in_stock{text-align:left!important}table.wp-list-table span.wc-featured,table.wp-list-table span.wc-image,table.wp-list-table span.wc-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table span.wc-featured:before,table.wp-list-table span.wc-image:before,table.wp-list-table span.wc-type:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:""}table.wp-list-table span.wc-featured{margin:0;cursor:pointer}table.wp-list-table span.wc-featured:before{content:"\f155"}table.wp-list-table span.wc-featured.not-featured:before{content:"\f154"}table.wp-list-table td.column-featured span.wc-featured{font-size:1.6em}table.wp-list-table span.wc-type{margin:0}table.wp-list-table span.wc-type:before{font-family:WooCommerce;content:"\e006"}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after,table.wp-list-table span.product-type:before{font-family:WooCommerce;text-align:center;line-height:1;top:0;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;left:0}table.wp-list-table span.product-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.6em}table.wp-list-table span.product-type:before{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}table.wp-list-table span.product-type.grouped:before{content:"\e002"}table.wp-list-table span.product-type.external:before{content:"\e034"}table.wp-list-table span.product-type.variable:before{content:"\e003"}table.wp-list-table span.product-type.downloadable:before{content:"\e001"}table.wp-list-table span.product-type.virtual:before{content:"\e000"}table.wp-list-table mark.instock{font-weight:700;color:#7ad03a;background:0 0;line-height:1}table.wp-list-table mark.outofstock{font-weight:700;color:#a44;background:0 0;line-height:1}table.wp-list-table .notes_head,table.wp-list-table .order-notes_head,table.wp-list-table .status_head{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%}table.wc_emails .wc-email-settings-table-name,table.wc_emails td.name,table.wc_gateways .wc-email-settings-table-name,table.wc_gateways td.name,table.wc_shipping .wc-email-settings-table-name,table.wc_shipping td.name{font-weight:700}table.wp-list-table .order-notes_head:after{content:"\e028"}table.wp-list-table .notes_head:after{content:"\e026"}table.wp-list-table .status_head:after{content:"\e011"}table.wp-list-table .column-order_items{width:12%}table.wp-list-table .column-order_items table.order_items{width:100%;margin:3px 0 0;padding:0;display:none}table.wp-list-table .column-order_items table.order_items td{border:0;margin:0;padding:0 0 3px}table.wp-list-table .column-order_items table.order_items td.qty{color:#999;padding-right:6px;text-align:left}mark.notice{background:#fff;color:#a00;margin:0 0 0 10px}a.export_rates,a.import_rates{float:right;margin-left:9px;margin-top:-2px;margin-bottom:0}#rates-search{float:right}#rates-search input.wc-tax-rates-search-field{padding:4px 8px;font-size:1.2em}#rates-pagination{float:right;margin-right:.5em}#rates-pagination .tablenav{margin:0}table.wc_input_table,table.wc_tax_rates{width:100%}table.wc_input_table span.tips,table.wc_tax_rates span.tips{color:#2ea2cc}table.wc_input_table td,table.wc_tax_rates td{padding:0;border-right:1px solid #DFDFDF;border-bottom:1px solid #DFDFDF;border-top:0;background:#fff}table.wc_input_table td input[type=text],table.wc_input_table td input[type=number],table.wc_tax_rates td input[type=text],table.wc_tax_rates td input[type=number]{width:100%;padding:5px 7px;margin:0;border:0;background:0 0}table.wc_input_table td.apply_to_shipping,table.wc_input_table td.compound,table.wc_tax_rates td.apply_to_shipping,table.wc_tax_rates td.compound{padding:5px 7px;vertical-align:middle}table.wc_input_table td.apply_to_shipping input,table.wc_input_table td.compound input,table.wc_tax_rates td.apply_to_shipping input,table.wc_tax_rates td.compound input{width:auto;padding:0}table.wc_input_table td:last-child,table.wc_tax_rates td:last-child{border-right:0}table.wc_input_table tr.current td,table.wc_tax_rates tr.current td{background-color:#fefbcc}table.wc_input_table .cost,table.wc_input_table .cost input,table.wc_input_table .item_cost,table.wc_input_table .item_cost input,table.wc_tax_rates .cost,table.wc_tax_rates .cost input,table.wc_tax_rates .item_cost,table.wc_tax_rates .item_cost input{text-align:right}table.wc_input_table th.sort,table.wc_tax_rates th.sort{width:17px;padding:0 4px}table.wc_input_table td.sort,table.wc_tax_rates td.sort{padding:0 4px}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort{cursor:move;font-size:15px;background:#f9f9f9;text-align:center;vertical-align:middle}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before{color:#333}table.wc_input_table .button,table.wc_tax_rates .button{float:left;margin-right:5px}table.wc_input_table .export,table.wc_input_table .import,table.wc_tax_rates .export,table.wc_tax_rates .import{float:right;margin-right:0;margin-left:5px}table.wc_input_table span.tips,table.wc_tax_rates span.tips{padding:0 3px}table.wc_input_table .pagination,table.wc_tax_rates .pagination{float:right}table.wc_input_table .pagination .button,table.wc_tax_rates .pagination .button{margin-left:5px;margin-right:0}table.wc_input_table .pagination .current,table.wc_tax_rates .pagination .current{background:#bbb;text-shadow:none}table.wc_input_table tfoot th,table.wc_tax_rates tfoot th{padding-left:20px;padding-right:20px}table.wc_input_table tr:last-child td,table.wc_tax_rates tr:last-child td{border-bottom:0}table.wc_emails,table.wc_gateways,table.wc_shipping{position:relative}table.wc_emails td,table.wc_gateways td,table.wc_shipping td{vertical-align:middle;padding:7px;line-height:2em}table.wc_emails tr:nth-child(odd) td,table.wc_gateways tr:nth-child(odd) td,table.wc_shipping tr:nth-child(odd) td{background:#f9f9f9}table.wc_emails th,table.wc_gateways th,table.wc_shipping th{padding:9px 7px!important;vertical-align:middle}table.wc_emails .settings,table.wc_gateways .settings,table.wc_shipping .settings{text-align:right}table.wc_emails .default,table.wc_emails .radio,table.wc_emails .status,table.wc_gateways .default,table.wc_gateways .radio,table.wc_gateways .status,table.wc_shipping .default,table.wc_shipping .radio,table.wc_shipping .status{text-align:center}table.wc_emails .default .tips,table.wc_emails .radio .tips,table.wc_emails .status .tips,table.wc_gateways .default .tips,table.wc_gateways .radio .tips,table.wc_gateways .status .tips,table.wc_shipping .default .tips,table.wc_shipping .radio .tips,table.wc_shipping .status .tips{margin:0 auto}table.wc_emails .default input,table.wc_emails .radio input,table.wc_emails .status input,table.wc_gateways .default input,table.wc_gateways .radio input,table.wc_gateways .status input,table.wc_shipping .default input,table.wc_shipping .radio input,table.wc_shipping .status input{margin:0}table.wc_emails th.sort,table.wc_gateways th.sort,table.wc_shipping th.sort{width:28px;padding:0}table.wc_emails td.sort,table.wc_gateways td.sort,table.wc_shipping td.sort{padding:0 7px;cursor:move;font-size:15px;text-align:center;vertical-align:middle}table.wc_emails td.sort:before,table.wc_gateways td.sort:before,table.wc_shipping td.sort:before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}table.wc_emails .wc-email-settings-table-name span,table.wc_gateways .wc-email-settings-table-name span,table.wc_shipping .wc-email-settings-table-name span{font-weight:400;color:#999;margin:0 0 0 4px!important}table.wc_emails .wc-email-settings-table-status,table.wc_gateways .wc-email-settings-table-status,table.wc_shipping .wc-email-settings-table-status{text-align:center;width:1em}table.wc_emails .wc-email-settings-table-status .tips,table.wc_gateways .wc-email-settings-table-status .tips,table.wc_shipping .wc-email-settings-table-status .tips{margin:0 auto}table.wc_emails .wc-email-settings-table-actions a,table.wc_gateways .wc-email-settings-table-actions a,table.wc_shipping .wc-email-settings-table-actions a{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}table.wc_emails .wc-email-settings-table-actions a:after,table.wc_gateways .wc-email-settings-table-actions a:after,table.wc_shipping .wc-email-settings-table-actions a:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-family:Dashicons;line-height:1.85}table.wc-shipping-classes td,table.wc-shipping-classes th,table.wc-shipping-zone-methods td,table.wc-shipping-zone-methods th,table.wc-shipping-zones td,table.wc-shipping-zones th{vertical-align:top;line-height:24px;padding:1em;font-size:14px;background:#fff}table.wc-shipping-classes td li,table.wc-shipping-classes th li,table.wc-shipping-zone-methods td li,table.wc-shipping-zone-methods th li,table.wc-shipping-zones td li,table.wc-shipping-zones th li{line-height:24px;font-size:14px}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state,table.wc-shipping-classes td.wc-shipping-zones-blank-state,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state,table.wc-shipping-zones td.wc-shipping-zones-blank-state{background:#F7F1F6!important;overflow:hidden;position:relative;padding:7.5em 7.5%;border-bottom:2px solid #EEE2EC}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state li,table.wc-shipping-classes td.wc-shipping-zone-method-blank-state p,table.wc-shipping-classes td.wc-shipping-zones-blank-state li,table.wc-shipping-classes td.wc-shipping-zones-blank-state p,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state li,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state p,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state li,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state p,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state li,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state p,table.wc-shipping-zones td.wc-shipping-zones-blank-state li,table.wc-shipping-zones td.wc-shipping-zones-blank-state p{color:#a46497;font-size:1.5em;line-height:1.5em;margin:0 0 1em;position:relative;z-index:1;text-shadow:1px 1px 1px #fff}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state li.main,table.wc-shipping-classes td.wc-shipping-zone-method-blank-state p.main,table.wc-shipping-classes td.wc-shipping-zones-blank-state li.main,table.wc-shipping-classes td.wc-shipping-zones-blank-state p.main,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state li.main,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state p.main,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state li.main,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state p.main,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state li.main,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state p.main,table.wc-shipping-zones td.wc-shipping-zones-blank-state li.main,table.wc-shipping-zones td.wc-shipping-zones-blank-state p.main{font-size:2em}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state li,table.wc-shipping-classes td.wc-shipping-zones-blank-state li,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state li,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state li,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state li,table.wc-shipping-zones td.wc-shipping-zones-blank-state li{margin-left:1em;list-style:circle inside}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state:before,table.wc-shipping-classes td.wc-shipping-zones-blank-state:before,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state:before,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state:before,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state:before,table.wc-shipping-zones td.wc-shipping-zones-blank-state:before{content:"\e01b";font-family:WooCommerce;text-align:center;line-height:1;color:#EEE2EC;display:block;width:1em;font-size:40em;top:50%;right:-3.75%;margin-top:-.1875em;position:absolute}table.wc-shipping-classes td.wc-shipping-zone-method-blank-state .button-primary,table.wc-shipping-classes td.wc-shipping-zones-blank-state .button-primary,table.wc-shipping-zone-methods td.wc-shipping-zone-method-blank-state .button-primary,table.wc-shipping-zone-methods td.wc-shipping-zones-blank-state .button-primary,table.wc-shipping-zones td.wc-shipping-zone-method-blank-state .button-primary,table.wc-shipping-zones td.wc-shipping-zones-blank-state .button-primary{background-color:#804877;border-color:#804877;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 rgba(0,0,0,.15);margin:0;opacity:1;text-shadow:0 -1px 1px #8a4f7f,1px 0 1px #8a4f7f,0 1px 1px #8a4f7f,-1px 0 1px #8a4f7f;font-size:1.5em;padding:.75em 1em;height:auto;position:relative;z-index:1}table.wc-shipping-classes .wc-shipping-class-rows tr:nth-child(odd) td,table.wc-shipping-classes .wc-shipping-zone-method-rows tr:nth-child(odd) td,table.wc-shipping-classes tbody.wc-shipping-zone-rows tr:nth-child(odd) td,table.wc-shipping-classes tr.odd td,table.wc-shipping-zone-methods .wc-shipping-class-rows tr:nth-child(odd) td,table.wc-shipping-zone-methods .wc-shipping-zone-method-rows tr:nth-child(odd) td,table.wc-shipping-zone-methods tbody.wc-shipping-zone-rows tr:nth-child(odd) td,table.wc-shipping-zone-methods tr.odd td,table.wc-shipping-zones .wc-shipping-class-rows tr:nth-child(odd) td,table.wc-shipping-zones .wc-shipping-zone-method-rows tr:nth-child(odd) td,table.wc-shipping-zones tbody.wc-shipping-zone-rows tr:nth-child(odd) td,table.wc-shipping-zones tr.odd td{background:#f9f9f9}table.wc-shipping-classes p,table.wc-shipping-classes ul,table.wc-shipping-zone-methods p,table.wc-shipping-zone-methods ul,table.wc-shipping-zones p,table.wc-shipping-zones ul{margin:0}table.wc-shipping-classes td.wc-shipping-zone-method-sort,table.wc-shipping-classes td.wc-shipping-zone-sort,table.wc-shipping-zone-methods td.wc-shipping-zone-method-sort,table.wc-shipping-zone-methods td.wc-shipping-zone-sort,table.wc-shipping-zones td.wc-shipping-zone-method-sort,table.wc-shipping-zones td.wc-shipping-zone-sort{cursor:move;font-size:15px;text-align:center}table.wc-shipping-classes td.wc-shipping-zone-method-sort:before,table.wc-shipping-classes td.wc-shipping-zone-sort:before,table.wc-shipping-zone-methods td.wc-shipping-zone-method-sort:before,table.wc-shipping-zone-methods td.wc-shipping-zone-sort:before,table.wc-shipping-zones td.wc-shipping-zone-method-sort:before,table.wc-shipping-zones td.wc-shipping-zone-sort:before{content:"\f333";font-family:Dashicons;text-align:center;color:#999;display:block;width:17px;float:left;height:100%;line-height:24px}table.wc-shipping-classes td.wc-shipping-zone-method-sort:hover:before,table.wc-shipping-classes td.wc-shipping-zone-sort:hover:before,table.wc-shipping-zone-methods td.wc-shipping-zone-method-sort:hover:before,table.wc-shipping-zone-methods td.wc-shipping-zone-sort:hover:before,table.wc-shipping-zones td.wc-shipping-zone-method-sort:hover:before,table.wc-shipping-zones td.wc-shipping-zone-sort:hover:before{color:#333}table.wc-shipping-classes td.wc-shipping-zone-worldwide,table.wc-shipping-zone-methods td.wc-shipping-zone-worldwide,table.wc-shipping-zones td.wc-shipping-zone-worldwide{text-align:center}table.wc-shipping-classes td.wc-shipping-zone-worldwide:before,table.wc-shipping-zone-methods td.wc-shipping-zone-worldwide:before,table.wc-shipping-zones td.wc-shipping-zone-worldwide:before{content:"\f319";font-family:dashicons;text-align:center;color:#999;display:block;width:17px;float:left;height:100%;line-height:24px}table.wc-shipping-classes .wc-shipping-zone-methods,table.wc-shipping-classes .wc-shipping-zone-name,table.wc-shipping-zone-methods .wc-shipping-zone-methods,table.wc-shipping-zone-methods .wc-shipping-zone-name,table.wc-shipping-zones .wc-shipping-zone-methods,table.wc-shipping-zones .wc-shipping-zone-name{width:25%}table.wc-shipping-classes .wc-shipping-class-description input,table.wc-shipping-classes .wc-shipping-class-description select,table.wc-shipping-classes .wc-shipping-class-description textarea,table.wc-shipping-classes .wc-shipping-class-name input,table.wc-shipping-classes .wc-shipping-class-name select,table.wc-shipping-classes .wc-shipping-class-name textarea,table.wc-shipping-classes .wc-shipping-class-slug input,table.wc-shipping-classes .wc-shipping-class-slug select,table.wc-shipping-classes .wc-shipping-class-slug textarea,table.wc-shipping-classes .wc-shipping-zone-name input,table.wc-shipping-classes .wc-shipping-zone-name select,table.wc-shipping-classes .wc-shipping-zone-name textarea,table.wc-shipping-classes .wc-shipping-zone-region input,table.wc-shipping-classes .wc-shipping-zone-region select,table.wc-shipping-classes .wc-shipping-zone-region textarea,table.wc-shipping-zone-methods .wc-shipping-class-description input,table.wc-shipping-zone-methods .wc-shipping-class-description select,table.wc-shipping-zone-methods .wc-shipping-class-description textarea,table.wc-shipping-zone-methods .wc-shipping-class-name input,table.wc-shipping-zone-methods .wc-shipping-class-name select,table.wc-shipping-zone-methods .wc-shipping-class-name textarea,table.wc-shipping-zone-methods .wc-shipping-class-slug input,table.wc-shipping-zone-methods .wc-shipping-class-slug select,table.wc-shipping-zone-methods .wc-shipping-class-slug textarea,table.wc-shipping-zone-methods .wc-shipping-zone-name input,table.wc-shipping-zone-methods .wc-shipping-zone-name select,table.wc-shipping-zone-methods .wc-shipping-zone-name textarea,table.wc-shipping-zone-methods .wc-shipping-zone-region input,table.wc-shipping-zone-methods .wc-shipping-zone-region select,table.wc-shipping-zone-methods .wc-shipping-zone-region textarea,table.wc-shipping-zones .wc-shipping-class-description input,table.wc-shipping-zones .wc-shipping-class-description select,table.wc-shipping-zones .wc-shipping-class-description textarea,table.wc-shipping-zones .wc-shipping-class-name input,table.wc-shipping-zones .wc-shipping-class-name select,table.wc-shipping-zones .wc-shipping-class-name textarea,table.wc-shipping-zones .wc-shipping-class-slug input,table.wc-shipping-zones .wc-shipping-class-slug select,table.wc-shipping-zones .wc-shipping-class-slug textarea,table.wc-shipping-zones .wc-shipping-zone-name input,table.wc-shipping-zones .wc-shipping-zone-name select,table.wc-shipping-zones .wc-shipping-zone-name textarea,table.wc-shipping-zones .wc-shipping-zone-region input,table.wc-shipping-zones .wc-shipping-zone-region select,table.wc-shipping-zones .wc-shipping-zone-region textarea{width:100%}table.wc-shipping-classes .wc-shipping-class-description a.wc-shipping-class-delete,table.wc-shipping-classes .wc-shipping-class-description a.wc-shipping-zone-delete,table.wc-shipping-classes .wc-shipping-class-name a.wc-shipping-class-delete,table.wc-shipping-classes .wc-shipping-class-name a.wc-shipping-zone-delete,table.wc-shipping-classes .wc-shipping-class-slug a.wc-shipping-class-delete,table.wc-shipping-classes .wc-shipping-class-slug a.wc-shipping-zone-delete,table.wc-shipping-classes .wc-shipping-zone-name a.wc-shipping-class-delete,table.wc-shipping-classes .wc-shipping-zone-name a.wc-shipping-zone-delete,table.wc-shipping-classes .wc-shipping-zone-region a.wc-shipping-class-delete,table.wc-shipping-classes .wc-shipping-zone-region a.wc-shipping-zone-delete,table.wc-shipping-zone-methods .wc-shipping-class-description a.wc-shipping-class-delete,table.wc-shipping-zone-methods .wc-shipping-class-description a.wc-shipping-zone-delete,table.wc-shipping-zone-methods .wc-shipping-class-name a.wc-shipping-class-delete,table.wc-shipping-zone-methods .wc-shipping-class-name a.wc-shipping-zone-delete,table.wc-shipping-zone-methods .wc-shipping-class-slug a.wc-shipping-class-delete,table.wc-shipping-zone-methods .wc-shipping-class-slug a.wc-shipping-zone-delete,table.wc-shipping-zone-methods .wc-shipping-zone-name a.wc-shipping-class-delete,table.wc-shipping-zone-methods .wc-shipping-zone-name a.wc-shipping-zone-delete,table.wc-shipping-zone-methods .wc-shipping-zone-region a.wc-shipping-class-delete,table.wc-shipping-zone-methods .wc-shipping-zone-region a.wc-shipping-zone-delete,table.wc-shipping-zones .wc-shipping-class-description a.wc-shipping-class-delete,table.wc-shipping-zones .wc-shipping-class-description a.wc-shipping-zone-delete,table.wc-shipping-zones .wc-shipping-class-name a.wc-shipping-class-delete,table.wc-shipping-zones .wc-shipping-class-name a.wc-shipping-zone-delete,table.wc-shipping-zones .wc-shipping-class-slug a.wc-shipping-class-delete,table.wc-shipping-zones .wc-shipping-class-slug a.wc-shipping-zone-delete,table.wc-shipping-zones .wc-shipping-zone-name a.wc-shipping-class-delete,table.wc-shipping-zones .wc-shipping-zone-name a.wc-shipping-zone-delete,table.wc-shipping-zones .wc-shipping-zone-region a.wc-shipping-class-delete,table.wc-shipping-zones .wc-shipping-zone-region a.wc-shipping-zone-delete{color:red}table.wc-shipping-classes .wc-shipping-class-description .wc-shipping-zone-postcodes-toggle,table.wc-shipping-classes .wc-shipping-class-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-classes .wc-shipping-class-slug .wc-shipping-zone-postcodes-toggle,table.wc-shipping-classes .wc-shipping-zone-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-classes .wc-shipping-zone-region .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zone-methods .wc-shipping-class-description .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zone-methods .wc-shipping-class-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zone-methods .wc-shipping-class-slug .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zone-methods .wc-shipping-zone-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zone-methods .wc-shipping-zone-region .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zones .wc-shipping-class-description .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zones .wc-shipping-class-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zones .wc-shipping-class-slug .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zones .wc-shipping-zone-name .wc-shipping-zone-postcodes-toggle,table.wc-shipping-zones .wc-shipping-zone-region .wc-shipping-zone-postcodes-toggle{float:right;margin:0;font-size:.9em;text-decoration:underline}table.wc-shipping-classes .wc-shipping-class-description .wc-shipping-zone-postcodes,table.wc-shipping-classes .wc-shipping-class-name .wc-shipping-zone-postcodes,table.wc-shipping-classes .wc-shipping-class-slug .wc-shipping-zone-postcodes,table.wc-shipping-classes .wc-shipping-zone-name .wc-shipping-zone-postcodes,table.wc-shipping-classes .wc-shipping-zone-region .wc-shipping-zone-postcodes,table.wc-shipping-zone-methods .wc-shipping-class-description .wc-shipping-zone-postcodes,table.wc-shipping-zone-methods .wc-shipping-class-name .wc-shipping-zone-postcodes,table.wc-shipping-zone-methods .wc-shipping-class-slug .wc-shipping-zone-postcodes,table.wc-shipping-zone-methods .wc-shipping-zone-name .wc-shipping-zone-postcodes,table.wc-shipping-zone-methods .wc-shipping-zone-region .wc-shipping-zone-postcodes,table.wc-shipping-zones .wc-shipping-class-description .wc-shipping-zone-postcodes,table.wc-shipping-zones .wc-shipping-class-name .wc-shipping-zone-postcodes,table.wc-shipping-zones .wc-shipping-class-slug .wc-shipping-zone-postcodes,table.wc-shipping-zones .wc-shipping-zone-name .wc-shipping-zone-postcodes,table.wc-shipping-zones .wc-shipping-zone-region .wc-shipping-zone-postcodes{display:none}table.wc-shipping-classes .wc-shipping-class-description .wc-shipping-zone-postcodes textarea,table.wc-shipping-classes .wc-shipping-class-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-classes .wc-shipping-class-slug .wc-shipping-zone-postcodes textarea,table.wc-shipping-classes .wc-shipping-zone-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-classes .wc-shipping-zone-region .wc-shipping-zone-postcodes textarea,table.wc-shipping-zone-methods .wc-shipping-class-description .wc-shipping-zone-postcodes textarea,table.wc-shipping-zone-methods .wc-shipping-class-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-zone-methods .wc-shipping-class-slug .wc-shipping-zone-postcodes textarea,table.wc-shipping-zone-methods .wc-shipping-zone-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-zone-methods .wc-shipping-zone-region .wc-shipping-zone-postcodes textarea,table.wc-shipping-zones .wc-shipping-class-description .wc-shipping-zone-postcodes textarea,table.wc-shipping-zones .wc-shipping-class-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-zones .wc-shipping-class-slug .wc-shipping-zone-postcodes textarea,table.wc-shipping-zones .wc-shipping-zone-name .wc-shipping-zone-postcodes textarea,table.wc-shipping-zones .wc-shipping-zone-region .wc-shipping-zone-postcodes textarea{margin-top:1em}table.wc-shipping-classes .wc-shipping-class-description .wc-shipping-zone-postcodes .description,table.wc-shipping-classes .wc-shipping-class-name .wc-shipping-zone-postcodes .description,table.wc-shipping-classes .wc-shipping-class-slug .wc-shipping-zone-postcodes .description,table.wc-shipping-classes .wc-shipping-zone-name .wc-shipping-zone-postcodes .description,table.wc-shipping-classes .wc-shipping-zone-region .wc-shipping-zone-postcodes .description,table.wc-shipping-zone-methods .wc-shipping-class-description .wc-shipping-zone-postcodes .description,table.wc-shipping-zone-methods .wc-shipping-class-name .wc-shipping-zone-postcodes .description,table.wc-shipping-zone-methods .wc-shipping-class-slug .wc-shipping-zone-postcodes .description,table.wc-shipping-zone-methods .wc-shipping-zone-name .wc-shipping-zone-postcodes .description,table.wc-shipping-zone-methods .wc-shipping-zone-region .wc-shipping-zone-postcodes .description,table.wc-shipping-zones .wc-shipping-class-description .wc-shipping-zone-postcodes .description,table.wc-shipping-zones .wc-shipping-class-name .wc-shipping-zone-postcodes .description,table.wc-shipping-zones .wc-shipping-class-slug .wc-shipping-zone-postcodes .description,table.wc-shipping-zones .wc-shipping-zone-name .wc-shipping-zone-postcodes .description,table.wc-shipping-zones .wc-shipping-zone-region .wc-shipping-zone-postcodes .description{font-size:.9em;color:#999}table.wc-shipping-classes .wc-shipping-class-count,table.wc-shipping-zone-methods .wc-shipping-class-count,table.wc-shipping-zones .wc-shipping-class-count{text-align:center}table.wc-shipping-classes td.wc-shipping-zone-methods,table.wc-shipping-zone-methods td.wc-shipping-zone-methods,table.wc-shipping-zones td.wc-shipping-zone-methods{color:#999}table.wc-shipping-classes td.wc-shipping-zone-methods .method_disabled,table.wc-shipping-zone-methods td.wc-shipping-zone-methods .method_disabled,table.wc-shipping-zones td.wc-shipping-zone-methods .method_disabled{text-decoration:line-through}table.wc-shipping-classes td.wc-shipping-zone-methods ul,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul,table.wc-shipping-zones td.wc-shipping-zone-methods ul{color:#999;position:relative;padding-right:32px}table.wc-shipping-classes td.wc-shipping-zone-methods ul li,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li,table.wc-shipping-zones td.wc-shipping-zone-methods ul li{display:inline;margin:0}table.wc-shipping-classes td.wc-shipping-zone-methods ul li:before,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li:before,table.wc-shipping-zones td.wc-shipping-zone-methods ul li:before{content:", "}table.wc-shipping-classes td.wc-shipping-zone-methods ul li:first-child:before,table.wc-shipping-classes td.wc-shipping-zone-methods ul li:last-child:before,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li:first-child:before,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li:last-child:before,table.wc-shipping-zones td.wc-shipping-zone-methods ul li:first-child:before,table.wc-shipping-zones td.wc-shipping-zone-methods ul li:last-child:before{content:""}table.wc-shipping-classes td.wc-shipping-zone-methods ul li:last-child,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li:last-child,table.wc-shipping-zones td.wc-shipping-zone-methods ul li:last-child{display:block}table.wc-shipping-classes td.wc-shipping-zone-methods ul li:first-child,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li:first-child,table.wc-shipping-zones td.wc-shipping-zone-methods ul li:first-child{margin:0!important}table.wc-shipping-classes td.wc-shipping-zone-methods ul li.wc-shipping-zone-methods-add-row,table.wc-shipping-zone-methods td.wc-shipping-zone-methods ul li.wc-shipping-zone-methods-add-row,table.wc-shipping-zones td.wc-shipping-zone-methods ul li.wc-shipping-zone-methods-add-row{position:absolute;right:0;top:0}table.wc-shipping-classes td.wc-shipping-zone-methods .add_shipping_method,table.wc-shipping-zone-methods td.wc-shipping-zone-methods .add_shipping_method,table.wc-shipping-zones td.wc-shipping-zone-methods .add_shipping_method{display:block;width:24px;padding:24px 0 0;height:0;overflow:hidden;cursor:pointer}table.wc-shipping-classes td.wc-shipping-zone-methods .add_shipping_method:before,table.wc-shipping-zone-methods td.wc-shipping-zone-methods .add_shipping_method:before,table.wc-shipping-zones td.wc-shipping-zone-methods .add_shipping_method:before{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;font-family:Dashicons;content:"\f502";color:#999;vertical-align:middle;line-height:24px;font-size:16px;margin:0}table.wc-shipping-classes .wc-shipping-zone-method-enabled .status-disabled:before,table.wc-shipping-classes .wc-shipping-zone-method-enabled .status-enabled:before,table.wc-shipping-zone-methods .wc-shipping-zone-method-enabled .status-disabled:before,table.wc-shipping-zone-methods .wc-shipping-zone-method-enabled .status-enabled:before,table.wc-shipping-zones .wc-shipping-zone-method-enabled .status-disabled:before,table.wc-shipping-zones .wc-shipping-zone-method-enabled .status-enabled:before{line-height:inherit}table.wc-shipping-classes .wc-shipping-zone-method-enabled .status-disabled,table.wc-shipping-classes .wc-shipping-zone-method-enabled .status-enabled,table.wc-shipping-zone-methods .wc-shipping-zone-method-enabled .status-disabled,table.wc-shipping-zone-methods .wc-shipping-zone-method-enabled .status-enabled,table.wc-shipping-zones .wc-shipping-zone-method-enabled .status-disabled,table.wc-shipping-zones .wc-shipping-zone-method-enabled .status-enabled{margin-top:1px;display:inline-block}table.wc-shipping-classes td.wc-shipping-zone-methods .add_shipping_method.disabled,table.wc-shipping-zone-methods td.wc-shipping-zone-methods .add_shipping_method.disabled,table.wc-shipping-zones td.wc-shipping-zone-methods .add_shipping_method.disabled{cursor:not-allowed}table.wc-shipping-classes td.wc-shipping-zone-methods .add_shipping_method.disabled:before,table.wc-shipping-zone-methods td.wc-shipping-zone-methods .add_shipping_method.disabled:before,table.wc-shipping-zones td.wc-shipping-zone-methods .add_shipping_method.disabled:before{color:#ccc}table.wc-shipping-classes .wc-shipping-zone-method-title,table.wc-shipping-zone-methods .wc-shipping-zone-method-title,table.wc-shipping-zones .wc-shipping-zone-method-title{width:33%}table.wc-shipping-classes .wc-shipping-zone-method-title .wc-shipping-zone-method-delete,table.wc-shipping-zone-methods .wc-shipping-zone-method-title .wc-shipping-zone-method-delete,table.wc-shipping-zones .wc-shipping-zone-method-title .wc-shipping-zone-method-delete{color:red}table.wc-shipping-classes .wc-shipping-zone-method-enabled,table.wc-shipping-zone-methods .wc-shipping-zone-method-enabled,table.wc-shipping-zones .wc-shipping-zone-method-enabled{text-align:center}table.wc-shipping-classes tfoot input,table.wc-shipping-classes tfoot select,table.wc-shipping-zone-methods tfoot input,table.wc-shipping-zone-methods tfoot select,table.wc-shipping-zones tfoot input,table.wc-shipping-zones tfoot select{vertical-align:middle!important}table.wc-shipping-classes tfoot .button-secondary,table.wc-shipping-zone-methods tfoot .button-secondary,table.wc-shipping-zones tfoot .button-secondary{float:right}table.wc-shipping-classes .editing .wc-shipping-zone-edit,table.wc-shipping-classes .editing .wc-shipping-zone-view,table.wc-shipping-zone-methods .editing .wc-shipping-zone-edit,table.wc-shipping-zone-methods .editing .wc-shipping-zone-view,table.wc-shipping-zones .editing .wc-shipping-zone-edit,table.wc-shipping-zones .editing .wc-shipping-zone-view{display:none}.wc-modal-shipping-method-settings{background:#f8f8f8;padding:1em!important}.wc-modal-shipping-method-settings form .form-table{width:100%;background:#fff;margin:0 0 1.5em}.wc-modal-shipping-method-settings form .form-table tr th{width:30%;position:relative}.wc-modal-shipping-method-settings form .form-table tr th .woocommerce-help-tip{float:right;margin:-8px -.5em 0 0;vertical-align:middle;right:0;top:50%;position:absolute}.wc-modal-shipping-method-settings form .form-table tr td input,.wc-modal-shipping-method-settings form .form-table tr td select,.wc-modal-shipping-method-settings form .form-table tr td textarea{width:50%;min-width:250px}.wc-modal-shipping-method-settings form .form-table tr td input[type=checkbox]{width:auto;min-width:0}.wc-modal-shipping-method-settings form .form-table tr td,.wc-modal-shipping-method-settings form .form-table tr th{vertical-align:middle;margin:0;line-height:24px;padding:1em;border-bottom:1px solid #f8f8f8}.wc-modal-shipping-method-settings form .form-table:last-of-type{margin-bottom:0}.wc-backbone-modal .wc-shipping-zone-method-selector p{margin-top:0}.wc-backbone-modal .wc-shipping-zone-method-selector .wc-shipping-zone-method-description{margin:.75em 1px 0;line-height:1.5em;color:#999;font-style:italic}.wc-backbone-modal .wc-shipping-zone-method-selector select{width:100%;cursor:pointer}img.help_tip{margin:0 0 0 9px;vertical-align:middle}.postbox img.help_tip{margin-top:0}.postbox .woocommerce-help-tip{margin:0 0 0 9px}.status-disabled,.status-enabled,.status-manual{font-size:1.4em;display:block;text-indent:-9999px;position:relative;height:1em;width:1em}.status-disabled:before,.status-enabled:before,.status-manual:before{font-family:WooCommerce;line-height:1;margin:0;position:absolute;width:100%;height:100%;text-indent:0;top:0;font-variant:normal;-webkit-font-smoothing:antialiased;font-weight:400;text-align:center;left:0;speak:none;text-transform:none}.status-manual:before{content:"";color:#999}.status-enabled:before{content:"";color:#a46497}.status-disabled:before{content:"";color:#ccc}.woocommerce h2.woo-nav-tab-wrapper{margin-bottom:1em}.woocommerce nav.woo-nav-tab-wrapper{margin:1.5em 0 1em;border-bottom:1px solid #ccc}.woocommerce .subsubsub{margin:-8px 0 0}.woocommerce .wc-admin-breadcrumb{margin-left:.5em}.woocommerce .wc-admin-breadcrumb a{color:#a46497}.woocommerce #template div{margin:0}.woocommerce #template div p .button{float:right;margin-left:10px;margin-top:-4px}.woocommerce #template div .editor textarea{margin-bottom:8px}.woocommerce textarea[disabled=disabled]{background:#DFDFDF!important}.woocommerce table.form-table{margin:0;position:relative}.woocommerce table.form-table .forminp-radio ul{margin:0}.woocommerce table.form-table .forminp-radio ul li{line-height:1.4em}.woocommerce table.form-table textarea.input-text{height:100%;min-width:150px;display:block}.woocommerce table.form-table input.regular-input{width:25em}.woocommerce table.form-table textarea.wide-input{width:100%}.woocommerce table.form-table .woocommerce-help-tip,.woocommerce table.form-table img.help_tip{padding:0;margin:-4px 0 0 5px;vertical-align:middle;cursor:help;line-height:1}.woocommerce table.form-table span.help_tip{cursor:help;color:#2ea2cc}.woocommerce table.form-table th{position:relative;padding-right:24px}.woocommerce table.form-table .select2-container{display:block;max-width:350px;vertical-align:top;margin-bottom:3px}.woocommerce table.form-table table.widefat th{padding-right:inherit}.woocommerce table.form-table th .woocommerce-help-tip,.woocommerce table.form-table th img.help_tip{margin:0 -24px 0 0;float:right}.woocommerce table.form-table .wp-list-table .woocommerce-help-tip{float:none}.woocommerce table.form-table fieldset{margin-top:4px}.woocommerce table.form-table fieldset .woocommerce-help-tip,.woocommerce table.form-table fieldset img.help_tip{margin:-3px 0 0 5px}.woocommerce table.form-table fieldset p.description{margin-bottom:8px}.woocommerce table.form-table fieldset:first-child{margin-top:0}.woocommerce table.form-table .iris-picker{z-index:100;display:none;position:absolute;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.woocommerce table.form-table .iris-picker .ui-slider{border:0!important;margin:0!important;width:auto!important;height:auto!important;background:none!important}.woocommerce table.form-table .iris-picker .ui-slider .ui-slider-handle{margin-bottom:0!important}.woocommerce table.form-table .colorpickpreview{padding:3px 3px 3px 20px;border:1px solid #ddd;border-right:0}.woocommerce table.form-table .colorpick{border-left:0}.woocommerce table.form-table .image_width_settings{vertical-align:middle}.woocommerce table.form-table .image_width_settings label{margin-left:10px}.woocommerce table.form-table .wc_emails_wrapper{padding:0 15px 10px 0}.woocommerce #tabs-wrap table a.remove{margin-left:4px}.woocommerce #tabs-wrap table p{margin:0 0 4px!important;overflow:hidden;zoom:1}.woocommerce #tabs-wrap table p a.add{float:left}#wp-excerpt-editor-container{background:#fff}#product_variation-parent #parent_id{width:100%}#postimagediv img{border:1px solid #d5d5d5;max-width:100%}#woocommerce-product-images .inside{margin:0;padding:0}#woocommerce-product-images .inside .add_product_images{padding:0 12px 12px}#woocommerce-product-images .inside #product_images_container{padding:0 0 0 9px}#woocommerce-product-images .inside #product_images_container ul{margin:0;padding:0}#woocommerce-product-images .inside #product_images_container ul:after,#woocommerce-product-images .inside #product_images_container ul:before{content:" ";display:table}#woocommerce-product-images .inside #product_images_container ul:after{clear:both}#woocommerce-product-images .inside #product_images_container ul li.add,#woocommerce-product-images .inside #product_images_container ul li.image,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{width:80px;float:left;cursor:move;border:1px solid #d5d5d5;margin:9px 9px 0 0;background:#f7f7f7;border-radius:2px;position:relative;box-sizing:border-box}#woocommerce-product-images .inside #product_images_container ul li.add img,#woocommerce-product-images .inside #product_images_container ul li.image img,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder img{width:100%;height:auto;display:block}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{border:3px dashed #ddd;position:relative}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder:after{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-size:2.618em;line-height:72px;color:#ddd}#woocommerce-product-images .inside #product_images_container ul ul.actions{position:absolute;top:-8px;right:-8px;padding:2px;display:none}#woocommerce-product-images .inside #product_images_container ul ul.actions li{float:right;margin:0 0 0 2px}#woocommerce-product-images .inside #product_images_container ul ul.actions li a{width:1em;margin:0;height:0;display:block;overflow:hidden}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.tips{cursor:pointer}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.4em}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";color:#999}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:hover:before{color:#a00}#woocommerce-product-images .inside #product_images_container ul li:hover ul.actions{display:block}#woocommerce-product-data .hndle{padding:10px}#woocommerce-product-data .hndle span{display:block;vertical-align:middle;line-height:24px}#woocommerce-product-data .hndle span span{display:inline;line-height:inherit;vertical-align:baseline}#woocommerce-product-data .hndle label{padding-right:1em;font-size:12px;vertical-align:baseline}#woocommerce-product-data .hndle label:first-child{margin-right:1em;border-right:1px solid #dfdfdf}#woocommerce-product-data .hndle input,#woocommerce-product-data .hndle select{margin:-3px 0 0 .5em;vertical-align:middle}#woocommerce-product-data>.handlediv{margin-top:4px}#woocommerce-product-data .wrap{margin:0}#woocommerce-coupon-description{padding:3px 8px;font-size:1.7em;line-height:1.42em;height:auto;width:100%;outline:0;margin:10px 0;display:block}#woocommerce-coupon-description::-webkit-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description::-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-ms-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap{background:#fff}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{float:left;width:80%}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-product-data .woocommerce_options_panel .wc-radios{display:block;float:left;margin:0}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-product-data .woocommerce_options_panel .wc-radios li{display:block;padding:0 0 10px}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li input,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-product-data .woocommerce_options_panel .wc-radios li input{width:auto}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap,.woocommerce .panel-wrap{overflow:hidden}#woocommerce-coupon-data ul.wc-tabs,#woocommerce-product-data ul.wc-tabs,.woocommerce ul.wc-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#woocommerce-coupon-data ul.wc-tabs:after,#woocommerce-product-data ul.wc-tabs:after,.woocommerce ul.wc-tabs:after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li,#woocommerce-product-data ul.wc-tabs li,.woocommerce ul.wc-tabs li{margin:0;padding:0;display:block;position:relative}#woocommerce-coupon-data ul.wc-tabs li a,#woocommerce-product-data ul.wc-tabs li a,.woocommerce ul.wc-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li a:before,#woocommerce-product-data ul.wc-tabs li a:before,.woocommerce ul.wc-tabs li a:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}#woocommerce-coupon-data ul.wc-tabs li.general_options a:before,#woocommerce-product-data ul.wc-tabs li.general_options a:before,.woocommerce ul.wc-tabs li.general_options a:before{content:"\f107"}#woocommerce-coupon-data ul.wc-tabs li.inventory_options a:before,#woocommerce-product-data ul.wc-tabs li.inventory_options a:before,.woocommerce ul.wc-tabs li.inventory_options a:before{content:"\f481"}#woocommerce-coupon-data ul.wc-tabs li.shipping_options a:before,#woocommerce-product-data ul.wc-tabs li.shipping_options a:before,.woocommerce ul.wc-tabs li.shipping_options a:before{font-family:WooCommerce;content:"\e01a"}#woocommerce-coupon-data ul.wc-tabs li.linked_product_options a:before,#woocommerce-product-data ul.wc-tabs li.linked_product_options a:before,.woocommerce ul.wc-tabs li.linked_product_options a:before{content:"\f103"}#woocommerce-coupon-data ul.wc-tabs li.attribute_options a:before,#woocommerce-product-data ul.wc-tabs li.attribute_options a:before,.woocommerce ul.wc-tabs li.attribute_options a:before{content:"\f175"}#woocommerce-coupon-data ul.wc-tabs li.advanced_options a:before,#woocommerce-product-data ul.wc-tabs li.advanced_options a:before,.woocommerce ul.wc-tabs li.advanced_options a:before{font-family:Dashicons;content:"\f111"}#woocommerce-coupon-data ul.wc-tabs li.variations_options a:before,#woocommerce-product-data ul.wc-tabs li.variations_options a:before,.woocommerce ul.wc-tabs li.variations_options a:before{content:"\f509"}#woocommerce-coupon-data ul.wc-tabs li.usage_restriction_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_restriction_options a:before,.woocommerce ul.wc-tabs li.usage_restriction_options a:before{font-family:WooCommerce;content:"\e602"}#woocommerce-coupon-data ul.wc-tabs li.usage_limit_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_limit_options a:before,.woocommerce ul.wc-tabs li.usage_limit_options a:before{font-family:WooCommerce;content:"\e601"}#woocommerce-coupon-data ul.wc-tabs li.general_coupon_data a:before,#woocommerce-product-data ul.wc-tabs li.general_coupon_data a:before,.woocommerce ul.wc-tabs li.general_coupon_data a:before{font-family:WooCommerce;content:"\e600"}#woocommerce-coupon-data ul.wc-tabs li.active a,#woocommerce-product-data ul.wc-tabs li.active a,.woocommerce ul.wc-tabs li.active a{color:#555;position:relative;background-color:#eee}.woocommerce_page_wc-settings .shippingrows th.check-column{padding-top:20px}.woocommerce_page_wc-settings .shippingrows tfoot th{padding-left:10px}.woocommerce_page_wc-settings .shippingrows .add.button:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}.woocommerce_page_wc-settings h3.wc-settings-sub-title{font-size:1.2em}#woocommerce-coupon-data .inside,#woocommerce-order-data .inside,#woocommerce-order-downloads .inside,#woocommerce-product-data .inside,#woocommerce-product-type-options .inside{margin:0;padding:0}.panel,.woocommerce_options_panel{padding:9px;color:#555}.panel .form-field .woocommerce-help-tip,.woocommerce_options_panel .form-field .woocommerce-help-tip{font-size:1.4em}.panel,.woocommerce_page_settings .woocommerce_options_panel{padding:0}#woocommerce-product-specs .inside,#woocommerce-product-type-options .panel{margin:0;padding:9px}#woocommerce-product-type-options .panel p,.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p{margin:0 0 9px;font-size:12px;padding:5px 9px;line-height:24px}#woocommerce-product-type-options .panel p:after,.woocommerce_options_panel fieldset.form-field:after,.woocommerce_options_panel p:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce_options_panel .checkbox,.woocommerce_variable_attributes .checkbox{width:auto;margin:3px 0;vertical-align:middle}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{width:100%;padding:0!important}.woocommerce_options_panel .downloadable_files table th,.woocommerce_variations .downloadable_files table th{padding:7px 0 7px 7px!important}.woocommerce_options_panel .downloadable_files table th.sort,.woocommerce_variations .downloadable_files table th.sort{width:17px;padding:7px!important}.woocommerce_options_panel .downloadable_files table th .woocommerce-help-tip,.woocommerce_variations .downloadable_files table th .woocommerce-help-tip{font-size:1.1em;margin-left:0}.woocommerce_options_panel .downloadable_files table td,.woocommerce_variations .downloadable_files table td{vertical-align:middle!important;padding:4px 0 4px 7px!important;position:relative}.woocommerce_options_panel .downloadable_files table td:last-child,.woocommerce_variations .downloadable_files table td:last-child{padding-right:7px!important}.woocommerce_options_panel .downloadable_files table td input.input_text,.woocommerce_variations .downloadable_files table td input.input_text{width:100%;float:none;min-width:0;margin:1px 0}.woocommerce_options_panel .downloadable_files table td .upload_file_button,.woocommerce_variations .downloadable_files table td .upload_file_button{width:auto;float:right;cursor:pointer}.woocommerce_options_panel .downloadable_files table td .delete,.woocommerce_variations .downloadable_files table td .delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.2em}.woocommerce_options_panel .downloadable_files table td .delete:before,.woocommerce_variations .downloadable_files table td .delete:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";color:#999}.woocommerce_options_panel .downloadable_files table td .delete:hover:before,.woocommerce_variations .downloadable_files table td .delete:hover:before{color:#a00}.woocommerce_options_panel .downloadable_files table td.sort,.woocommerce_variations .downloadable_files table td.sort{width:17px;cursor:move;font-size:15px;text-align:center;background:#f9f9f9;padding-right:7px!important}.woocommerce_options_panel .downloadable_files table td.sort:before,.woocommerce_variations .downloadable_files table td.sort:before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}.woocommerce_options_panel .downloadable_files table td.sort:hover:before,.woocommerce_variations .downloadable_files table td.sort:hover:before{color:#333}.woocommerce_variation h3 .sort{width:17px;height:26px;cursor:move;float:right;font-size:15px;font-weight:400;margin-right:.5em;visibility:hidden;text-align:center;vertical-align:middle}.woocommerce_variation h3 .sort:before{content:"\f333";font-family:Dashicons;text-align:center;line-height:28px;color:#999;display:block;width:17px;float:left;height:100%}.woocommerce_variation h3 .sort:hover:before{color:#777}.woocommerce_variation h3:hover .sort,.woocommerce_variation.ui-sortable-helper .sort{visibility:visible}.woocommerce_options_panel{min-height:175px;box-sizing:border-box}.woocommerce_options_panel .downloadable_files{padding:0 9px 0 162px;position:relative;margin:9px 0}.woocommerce_options_panel .downloadable_files label{position:absolute;left:0;margin:0 0 0 12px;line-height:24px}.woocommerce_options_panel p{margin:9px 0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px 5px 162px!important}.woocommerce_options_panel .sale_price_dates_fields .short:first-of-type{margin-bottom:1em}.woocommerce_options_panel .sale_price_dates_fields .short:nth-of-type(2){clear:left}.woocommerce_options_panel label,.woocommerce_options_panel legend{float:left;width:150px;padding:0;margin:0 0 0 -150px}.woocommerce_options_panel label .req,.woocommerce_options_panel legend .req{font-weight:700;font-style:normal;color:#a00}.woocommerce_options_panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline}.woocommerce_options_panel .description-block{margin-left:0;display:block}.woocommerce_options_panel input,.woocommerce_options_panel select,.woocommerce_options_panel textarea{margin:0}.woocommerce_options_panel textarea{height:3.5em;line-height:1.5em;vertical-align:top}.woocommerce_options_panel input[type=text],.woocommerce_options_panel input[type=number],.woocommerce_options_panel input[type=email],.woocommerce_options_panel input[type=password]{width:50%;float:left}.woocommerce_options_panel input.button{width:auto;margin-left:8px}.woocommerce_options_panel select{float:left}.woocommerce_options_panel .short,.woocommerce_options_panel input[type=text].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=email].short,.woocommerce_options_panel input[type=password].short{width:50%}.woocommerce_options_panel .sized{width:auto!important;margin-right:6px}.woocommerce_options_panel .options_group{border-top:1px solid #fff;border-bottom:1px solid #eee}.woocommerce_options_panel .options_group:first-child{border-top:0}.woocommerce_options_panel .options_group:last-child{border-bottom:0}.woocommerce_options_panel .options_group fieldset{margin:9px 0;font-size:12px;padding:5px 9px;line-height:24px}.woocommerce_options_panel .options_group fieldset label{width:auto;float:none}.woocommerce_options_panel .options_group fieldset ul{float:left;width:50%;margin:0;padding:0}.woocommerce_options_panel .options_group fieldset ul li{margin:0;width:auto}.woocommerce_options_panel .options_group fieldset ul li input{width:auto;float:none;margin-right:4px}.woocommerce_options_panel .options_group fieldset ul.wc-radios label{margin-left:0}.woocommerce_options_panel .dimensions_field .wrap{display:block;width:50%}.woocommerce_options_panel .dimensions_field .wrap input{width:30.75%;margin-right:3.8%}.woocommerce_options_panel .dimensions_field .wrap .last{margin-right:0}.woocommerce_options_panel.padded{padding:1em}#woocommerce-product-data input.dp-applied,.woocommerce_options_panel .select2-container{float:left}#grouped_product_options,#simple_product_options,#virtual_product_options{padding:12px;font-style:italic;color:#666}.wc-metaboxes-wrapper .toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #eee;padding:9px 12px!important}.wc-metaboxes-wrapper .toolbar:first-child{border-top:0}.wc-metaboxes-wrapper .toolbar:last-child{border-bottom:0}.wc-metaboxes-wrapper .toolbar .add_variation{float:right;margin-left:5px}.wc-metaboxes-wrapper .toolbar .cancel-variation-changes,.wc-metaboxes-wrapper .toolbar .save-variation-changes{float:left;margin-right:5px}.wc-metaboxes-wrapper p.toolbar{overflow:hidden;zoom:1}.wc-metaboxes-wrapper .expand-close{margin-right:2px;color:#777;font-size:12px;font-style:italic}.wc-metaboxes-wrapper .expand-close a{background:0 0;padding:0;font-size:12px;text-decoration:none}.wc-metaboxes-wrapper#product_attributes .expand-close{float:right;line-height:28px}.wc-metaboxes-wrapper .fr,.wc-metaboxes-wrapper button.add_variable_attribute{float:right;margin:0 0 0 6px}.wc-metaboxes-wrapper .wc-metaboxes{border-bottom:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin-bottom:9px;border-width:1px;border-style:dashed}.wc-metaboxes-wrapper .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.wc-metaboxes-wrapper .wc-metabox select{font-weight:400}.wc-metaboxes-wrapper .wc-metabox:last-of-type{border-bottom:0}.wc-metaboxes-wrapper .wc-metabox .handlediv{width:27px}.wc-metaboxes-wrapper .wc-metabox .handlediv:before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wc-metaboxes-wrapper .wc-metabox.closed{border-radius:3px}.wc-metaboxes-wrapper .wc-metabox.closed .handlediv:before{content:"\f140"!important}.wc-metaboxes-wrapper .wc-metabox.closed h3{border:0}.wc-metaboxes-wrapper .wc-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}.wc-metaboxes-wrapper .wc-metabox h3 a.delete,.wc-metaboxes-wrapper .wc-metabox h3 button{float:right}.wc-metaboxes-wrapper .wc-metabox h3 a.delete{color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative;visibility:hidden}.wc-metaboxes-wrapper .wc-metabox h3 strong{line-height:26px;font-weight:700}.wc-metaboxes-wrapper .wc-metabox h3 select{font-family:sans-serif;max-width:20%;margin:.25em .25em .25em 0}.wc-metaboxes-wrapper .wc-metabox h3 .handlediv{background-position:6px 5px!important;visibility:hidden;height:26px}.wc-metaboxes-wrapper .wc-metabox h3.fixed{cursor:pointer!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .handlediv,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .sort,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 a.delete{margin-top:.25em}.wc-metaboxes-wrapper .wc-metabox h3:hover .handlediv,.wc-metaboxes-wrapper .wc-metabox h3:hover a.delete,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper .handlediv,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper a.delete{visibility:visible}.wc-metaboxes-wrapper .wc-metabox table{width:100%;position:relative;background-color:#fdfdfd;padding:1em;border-top:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox table td{text-align:left;padding:0 6px 1em 0;vertical-align:top;border:0}.wc-metaboxes-wrapper .wc-metabox table td label{text-align:left;display:block;line-height:21px}.wc-metaboxes-wrapper .wc-metabox table td input{float:left;min-width:200px}.wc-metaboxes-wrapper .wc-metabox table td input,.wc-metaboxes-wrapper .wc-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}.wc-metaboxes-wrapper .wc-metabox table td .select2-container,.wc-metaboxes-wrapper .wc-metabox table td select{width:100%!important}.wc-metaboxes-wrapper .wc-metabox table td input.short{width:200px}.wc-metaboxes-wrapper .wc-metabox table td input.checkbox{width:16px;min-width:inherit;vertical-align:text-bottom;display:inline-block;float:none}.wc-metaboxes-wrapper .wc-metabox table td.attribute_name{width:200px}.wc-metaboxes-wrapper .wc-metabox table .minus,.wc-metaboxes-wrapper .wc-metabox table .plus{margin-top:6px}.wc-metaboxes-wrapper .wc-metabox table .fl{float:left}.wc-metaboxes-wrapper .wc-metabox table .fr{float:right}.variations-pagenav{float:right;line-height:24px}.variations-pagenav .displaying-num{color:#777;font-size:12px;font-style:italic}.variations-pagenav a{padding:0 10px 3px;background:rgba(0,0,0,.05);font-size:16px;font-weight:400;text-decoration:none}.variations-pagenav a.disabled,.variations-pagenav a.disabled:active,.variations-pagenav a.disabled:focus,.variations-pagenav a.disabled:hover{color:#A0A5AA;background:rgba(0,0,0,.05)}.variations-defaults{float:left}.variations-defaults select{margin:.25em .25em .25em 0}.woocommerce_variable_attributes{background-color:#fdfdfd;border-top:1px solid #eee}.woocommerce_variable_attributes .data{padding:1em 2em}.woocommerce_variable_attributes .data:after,.woocommerce_variable_attributes .data:before{content:" ";display:table}.woocommerce_variable_attributes .data:after{clear:both}.woocommerce_variable_attributes .upload_image_button{display:block;width:48px;height:48px;float:left;margin-right:20px;position:relative;cursor:pointer}.woocommerce_variable_attributes .upload_image_button img{width:100%;height:auto;display:none}.woocommerce_variable_attributes .upload_image_button:before{content:"\f128";font-family:Dashicons;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;line-height:48px;font-size:48px;font-weight:400;-webkit-font-smoothing:antialiased}.woocommerce_variable_attributes .upload_image_button.remove img{display:block}.woocommerce_variable_attributes .upload_image_button.remove:before{content:"\f335";display:none}.woocommerce_variable_attributes .upload_image_button.remove:hover:before{display:block}.woocommerce_variable_attributes .options{border:1px solid #eee;border-width:1px 0;padding:.25em 0}.woocommerce_variable_attributes .options label{display:inline-block;padding:4px 1em 2px 0}.woocommerce_variable_attributes .options input[type=checkbox]{margin-top:5px;margin-right:3px}.form-row label{display:block}.form-row input[type=number],.form-row input[type=text],.form-row select{width:100%}.form-row.dimensions_field input{width:25%;float:left;margin-right:1%}.form-row.dimensions_field input:last-of-type{margin-right:0}.form-row-first,.form-row-last{width:48%;float:right}.form-row-first{clear:both;float:left}.form-row-full{clear:both}.tips{cursor:help;text-decoration:none}img.tips{padding:5px 0 0}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:9999999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#333}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#333}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#333}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#333}#tiptip_content,.chart-tooltip,.wc_error_tip{color:#fff;font-size:.8em;max-width:150px;background:#333;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.chart-tooltip code,.wc_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.wc_error_tip{max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#d82223;margin:1.5em 1px 0 -1em;z-index:9999999}.wc_error_tip:after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}img.ui-datepicker-trigger{vertical-align:middle;margin-top:-1px;cursor:pointer}.wc-metabox-content img.ui-datepicker-trigger,.woocommerce_options_panel img.ui-datepicker-trigger{float:left;margin-right:8px;margin-top:4px;margin-left:4px}#ui-datepicker-div{display:none}.woocommerce-reports-wide.woocommerce-reports-wrap,.woocommerce-reports-wrap.woocommerce-reports-wrap{margin-left:300px;padding-top:18px}.woocommerce-reports-wide.halved,.woocommerce-reports-wrap.halved{margin:0;overflow:hidden;zoom:1}.woocommerce-reports-wide .widefat td,.woocommerce-reports-wrap .widefat td{vertical-align:top;padding:7px}.woocommerce-reports-wide .widefat td .description,.woocommerce-reports-wrap .widefat td .description{margin:4px 0 0}.woocommerce-reports-wide .postbox:after,.woocommerce-reports-wrap .postbox:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox h3,.woocommerce-reports-wrap .postbox h3{cursor:default!important}.woocommerce-reports-wide .postbox .inside,.woocommerce-reports-wrap .postbox .inside{padding:10px;margin:0!important}.woocommerce-reports-wide .postbox div.stats_range,.woocommerce-reports-wide .postbox h3.stats_range,.woocommerce-reports-wrap .postbox div.stats_range,.woocommerce-reports-wrap .postbox h3.stats_range{border-bottom-color:#dfdfdf;margin:0;padding:0!important}.woocommerce-reports-wide .postbox div.stats_range .export_csv,.woocommerce-reports-wide .postbox h3.stats_range .export_csv,.woocommerce-reports-wrap .postbox div.stats_range .export_csv,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv{float:right;line-height:26px;border-left:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox div.stats_range .export_csv:before,.woocommerce-reports-wide .postbox h3.stats_range .export_csv:before,.woocommerce-reports-wrap .postbox div.stats_range .export_csv:before,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv:before{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;content:"";text-decoration:none;margin-right:4px}.woocommerce-reports-wide .postbox div.stats_range ul,.woocommerce-reports-wide .postbox h3.stats_range ul,.woocommerce-reports-wrap .postbox div.stats_range ul,.woocommerce-reports-wrap .postbox h3.stats_range ul{list-style:none;margin:0;padding:0;zoom:1;background:#f5f5f5;border-bottom:1px solid #ccc}.woocommerce-reports-wide .postbox div.stats_range ul:after,.woocommerce-reports-wide .postbox div.stats_range ul:before,.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wide .postbox h3.stats_range ul:before,.woocommerce-reports-wrap .postbox div.stats_range ul:after,.woocommerce-reports-wrap .postbox div.stats_range ul:before,.woocommerce-reports-wrap .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:before{content:" ";display:table}.woocommerce-reports-wide .postbox div.stats_range ul:after,.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox div.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:after{clear:both}.woocommerce-reports-wide .postbox div.stats_range ul li,.woocommerce-reports-wide .postbox h3.stats_range ul li,.woocommerce-reports-wrap .postbox div.stats_range ul li,.woocommerce-reports-wrap .postbox h3.stats_range ul li{float:left;margin:0;padding:0;line-height:26px;font-weight:700;font-size:14px}.woocommerce-reports-wide .postbox div.stats_range ul li a,.woocommerce-reports-wide .postbox h3.stats_range ul li a,.woocommerce-reports-wrap .postbox div.stats_range ul li a,.woocommerce-reports-wrap .postbox h3.stats_range ul li a{border-right:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox div.stats_range ul li.active,.woocommerce-reports-wide .postbox h3.stats_range ul li.active,.woocommerce-reports-wrap .postbox div.stats_range ul li.active,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active{background:#fff;-webkit-box-shadow:0 4px 0 0 #fff;box-shadow:0 4px 0 0 #fff}.woocommerce-reports-wide .postbox div.stats_range ul li.active a,.woocommerce-reports-wide .postbox h3.stats_range ul li.active a,.woocommerce-reports-wrap .postbox div.stats_range ul li.active a,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active a{color:#777}.woocommerce-reports-wide .postbox div.stats_range ul li.custom,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom,.woocommerce-reports-wrap .postbox div.stats_range ul li.custom,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom{padding:9px 10px;vertical-align:middle}.woocommerce-reports-wide .postbox div.stats_range ul li.custom div,.woocommerce-reports-wide .postbox div.stats_range ul li.custom form,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form,.woocommerce-reports-wrap .postbox div.stats_range ul li.custom div,.woocommerce-reports-wrap .postbox div.stats_range ul li.custom form,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form{display:inline;margin:0}.woocommerce-reports-wide .postbox div.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wide .postbox div.stats_range ul li.custom form input.range_datepicker,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form input.range_datepicker,.woocommerce-reports-wrap .postbox div.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wrap .postbox div.stats_range ul li.custom form input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form input.range_datepicker{padding:0;margin:0 10px 0 0;background:0 0;border:0;color:#777;text-align:center;-webkit-box-shadow:none;box-shadow:none}.woocommerce-reports-wide .postbox .chart-with-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar{padding:12px 12px 12px 249px;margin:0!important}.woocommerce-reports-wide .postbox .chart-with-sidebar .chart-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar .chart-sidebar{width:225px;margin-left:-237px;float:left}.woocommerce-reports-wide .postbox .chart-widgets,.woocommerce-reports-wrap .postbox .chart-widgets{margin:0;padding:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget{margin:0 0 1em;background:#fafafa;border:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4{background:#fff;border:1px solid #dfdfdf;border-left-width:0;border-right-width:0;padding:10px;margin:0;color:#2ea2cc;border-top-width:0;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9)}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr.active td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr.active td{background:#f5f5f5}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4.section_title:hover,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4.section_title:hover{color:#a00}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title{cursor:pointer}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span{display:block}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none;float:right;font-size:.9em;line-height:1.618}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open{color:#333}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open span:after{display:none}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section{border-bottom:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section .select2-container,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section .select2-container{width:100%!important}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section:last-of-type,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section:last-of-type{border-radius:0 0 3px 3px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td{padding:7px 10px;vertical-align:top;border-top:1px solid #e5e5e5;line-height:1.4em}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.sparkline,form.report_filters div,form.report_filters input,form.report_filters label,form.report_filters p{vertical-align:middle}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr:first-child td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr:first-child td{border-top:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name{max-width:175px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name a,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name a{word-wrap:break-word}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table .wc_sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table .wc_sparkline{width:32px;height:1em;display:block;float:right}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p{margin:0;padding:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p .submit{margin-top:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget #product_ids,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget #product_ids{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_none,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_none{float:right;color:#999;margin-left:4px;margin-top:10px}.woocommerce-reports-wide .postbox .chart-legend,.woocommerce-reports-wrap .postbox .chart-legend{list-style:none;margin:0 0 1em;padding:0;border:1px solid #dfdfdf;border-right-width:0;border-bottom-width:0;background:#fff}.woocommerce-reports-wide .postbox .chart-legend li,.woocommerce-reports-wrap .postbox .chart-legend li{border-right:5px solid #aaa;color:#aaa;padding:1em;display:block;margin:0;-webkit-transition:all ease .5s;box-shadow:inset 0 -1px 0 0 #dfdfdf}.woocommerce-reports-wide .postbox .chart-legend li strong,.woocommerce-reports-wrap .postbox .chart-legend li strong{font-size:1.618em;line-height:1.2em;color:#464646;font-weight:400;display:block;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif}.woocommerce-reports-wide .postbox .chart-legend li strong del,.woocommerce-reports-wrap .postbox .chart-legend li strong del{color:#e74c3c;font-weight:400}.woocommerce-reports-wide .postbox .chart-legend li:hover,.woocommerce-reports-wrap .postbox .chart-legend li:hover{box-shadow:inset 0 -1px 0 0 #dfdfdf,inset 300px 0 0 rgba(156,93,144,.1);border-right:5px solid #9c5d90!important;padding-left:1.5em;color:#9c5d90}.woocommerce-reports-wide .postbox .pie-chart-legend,.woocommerce-reports-wrap .postbox .pie-chart-legend{margin:12px 0 0;overflow:hidden}.woocommerce-reports-wide .postbox .pie-chart-legend li,.woocommerce-reports-wrap .postbox .pie-chart-legend li{float:left;margin:0;padding:6px 0 0;border-top:4px solid #999;text-align:center;box-sizing:border-box;width:50%}.woocommerce-reports-wide .postbox .stat,.woocommerce-reports-wrap .postbox .stat{font-size:1.5em!important;font-weight:700;text-align:center}.woocommerce-reports-wide .postbox .chart-placeholder,.woocommerce-reports-wrap .postbox .chart-placeholder{width:100%;height:650px;overflow:hidden;position:relative}.woocommerce-reports-wide .postbox .chart-prompt,.woocommerce-reports-wrap .postbox .chart-prompt{line-height:650px;margin:0;color:#999;font-size:1.2em;font-style:italic;text-align:center}.woocommerce-reports-wide .postbox .chart-container,.woocommerce-reports-wrap .postbox .chart-container{background:#fff;padding:12px;position:relative;border:1px solid #dfdfdf;border-radius:3px}.woocommerce-reports-wide .postbox .main .chart-legend,.woocommerce-reports-wrap .postbox .main .chart-legend{margin-top:12px}.woocommerce-reports-wide .postbox .main .chart-legend li,.woocommerce-reports-wrap .postbox .main .chart-legend li{border-right:0;margin:0 8px 0 0;float:left;border-top:4px solid #aaa}.woocommerce-reports-wide .woocommerce-reports-main,.woocommerce-reports-wrap .woocommerce-reports-main{float:left;min-width:100%}.woocommerce-reports-wide .woocommerce-reports-main table td,.woocommerce-reports-wrap .woocommerce-reports-main table td{padding:9px}.woocommerce-reports-wide .woocommerce-reports-sidebar,.woocommerce-reports-wrap .woocommerce-reports-sidebar{display:inline;width:281px;margin-left:-300px;clear:both;float:left}.woocommerce-reports-wide .woocommerce-reports-left,.woocommerce-reports-wrap .woocommerce-reports-left{width:49.5%;float:left}.woocommerce-reports-wide .woocommerce-reports-right,.woocommerce-reports-wrap .woocommerce-reports-right{width:49.5%;float:right}.woocommerce-reports-wide .column-wc_actions a.edit,.woocommerce-reports-wide .column-wc_actions a.view,.woocommerce-reports-wrap .column-wc_actions a.edit,.woocommerce-reports-wrap .column-wc_actions a.view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;line-height:1.85}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after{content:"\f464"}.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{content:"\f177"}.woocommerce-wide-reports-wrap{padding-bottom:11px}.woocommerce-wide-reports-wrap .widefat .export-data{float:right}.woocommerce-wide-reports-wrap .widefat td,.woocommerce-wide-reports-wrap .widefat th{vertical-align:middle;padding:7px}.chart-tooltip{position:absolute;display:none;line-height:1}table.bar_chart{width:100%}table.bar_chart thead th{text-align:left;color:#ccc;padding:6px 0}table.bar_chart tbody th{padding:6px 0;width:25%;text-align:left!important;font-weight:400!important;border-bottom:1px solid #fee}table.bar_chart tbody td{text-align:right;line-height:24px;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td span{color:#8a4b75;display:block}table.bar_chart tbody td span.alt{color:#47a03e;margin-top:6px}table.bar_chart tbody td.bars{position:relative;text-align:left;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td.bars a,table.bar_chart tbody td.bars span{text-decoration:none;clear:both;background:#8a4b75;float:left;display:block;line-height:24px;height:24px;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}.post-type-product .woocommerce-BlankState-message:before,.post-type-shop_coupon .woocommerce-BlankState-message:before,.post-type-shop_order .woocommerce-BlankState-message:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}table.bar_chart tbody td.bars span.alt{clear:both;background:#47a03e}table.bar_chart tbody td.bars span.alt span{margin:0;color:#c5dec2!important;text-shadow:0 1px 0 #47a03e;background:0 0}.post-type-shop_order .woocommerce-BlankState-message:before{content:""}.post-type-shop_coupon .woocommerce-BlankState-message:before{content:""}.post-type-product .woocommerce-BlankState-message:before{content:""}.woocommerce-BlankState{text-align:center;padding:5em 0 0}.woocommerce-BlankState .woocommerce-BlankState-message{color:#aaa;margin:0 auto 1.5em;line-height:1.5em;font-size:1.2em;max-width:500px}.woocommerce-BlankState .woocommerce-BlankState-message:before{color:#ddd;text-shadow:0 -1px 1px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.8);font-size:8em;display:block;position:relative!important;top:auto;left:auto;line-height:1em;margin:0 0 .1875em}.woocommerce-BlankState .woocommerce-BlankState-cta{font-size:1.2em;padding:.75em 1.5em;height:auto}@media only screen and (max-width:1280px){#order_data .order_data_column{width:48%}#order_data .order_data_column:first-child{width:100%}.woocommerce_options_panel .description{display:block;clear:both;margin-left:0}.woocommerce_options_panel .dimensions_field .wrap,.woocommerce_options_panel .short,.woocommerce_options_panel input[type=text].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=email].short,.woocommerce_options_panel input[type=password].short{width:80%}.woocommerce_options_panel .downloadable_files,.woocommerce_variations .downloadable_files{padding:0;clear:both}.woocommerce_options_panel .downloadable_files label,.woocommerce_variations .downloadable_files label{position:static}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{margin:0 12px 24px;width:94%}.woocommerce_options_panel .downloadable_files table .sort,.woocommerce_variations .downloadable_files table .sort{visibility:hidden}.woocommerce_options_panel .woocommerce_variable_attributes .downloadable_files table,.woocommerce_variations .woocommerce_variable_attributes .downloadable_files table{margin:0 0 1em;width:100%}}@media only screen and (max-width:900px){#woocommerce-coupon-data ul.coupon_data_tabs,#woocommerce-product-data .wc-tabs-back,#woocommerce-product-data ul.product_data_tabs{width:10%}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{width:90%}#woocommerce-coupon-data ul.coupon_data_tabs li a,#woocommerce-product-data ul.product_data_tabs li a{position:relative;text-indent:-999px;padding:10px}#woocommerce-coupon-data ul.coupon_data_tabs li a:before,#woocommerce-product-data ul.product_data_tabs li a:before{position:absolute;top:0;right:0;bottom:0;left:0;text-indent:0;text-align:center;line-height:40px;width:100%;height:40px}}@media only screen and (max-width:782px){#wp-excerpt-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 20px 0 15px}#wp-excerpt-editor-tools{padding-top:20px;padding-right:15px;overflow:hidden;margin-bottom:-1px}.post-type-product .wp-list-table .is-expanded td:not(.hidden),.post-type-shop_order .wp-list-table .is-expanded td:not(.hidden){overflow:visible}#woocommerce-product-data .checkbox{width:25px}.variations-pagenav{float:none;text-align:center;font-size:18px}.variations-pagenav .displaying-num{font-size:16px}.variations-pagenav a{padding:8px 20px 11px;font-size:18px}.variations-pagenav select{padding:0 20px}.variations-defaults{float:none;text-align:center;margin-top:10px}.post-type-product .wp-list-table .column-thumb{display:none;text-align:left;padding-bottom:0}.post-type-product .wp-list-table .column-thumb:before{display:none!important}.post-type-product .wp-list-table .column-thumb img{max-width:32px}.post-type-product .wp-list-table .toggle-row{top:-28px}.post-type-shop_order .wp-list-table .column-order_status{display:none;text-align:left;padding-bottom:0}.post-type-shop_order .wp-list-table .column-order_status mark{margin:0}.post-type-shop_order .wp-list-table .column-order_status:before{display:none!important}.post-type-shop_order .wp-list-table .column-customer_message,.post-type-shop_order .wp-list-table .column-order_notes{text-align:inherit}.post-type-shop_order .wp-list-table .column-order_notes .note-on{font-size:1.3em;margin:0}.post-type-shop_order .wp-list-table .toggle-row{top:-15px}}@media only screen and (max-width:500px){.woocommerce_options_panel label,.woocommerce_options_panel legend{float:none;width:auto;display:block;margin:0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px!important}}.wc-backbone-modal *{box-sizing:border-box}.wc-backbone-modal .wc-backbone-modal-content{position:fixed;background:#fff;z-index:100000;left:50%;top:50%;transform:translate(-50%,-50%);width:500px}.wc-backbone-modal .wc-backbone-modal-content article{overflow:auto}.wc-backbone-modal.wc-backbone-modal-shipping-method-settings .wc-backbone-modal-content{width:75%;min-width:500px}.wc-backbone-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:99900}.wc-backbone-modal-main{padding-bottom:55px}.wc-backbone-modal-main article,.wc-backbone-modal-main header{display:block;position:relative}.wc-backbone-modal-main .wc-backbone-modal-header{height:auto;background:#fcfcfc;padding:1em 1.5em;border-bottom:1px solid #ddd}.wc-backbone-modal-main .wc-backbone-modal-header h1{margin:0;font-size:18px;font-weight:700;line-height:1.5em}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link{cursor:pointer;color:#777;height:54px;width:54px;padding:0;position:absolute;top:0;right:0;text-align:center;border:0;border-left:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:before{font:400 22px/50px dashicons!important;color:#666;display:block;content:'\f335';font-weight:300}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus,.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:hover{background:#ddd;border-color:#ccc;color:#000}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus{outline:0}.wc-backbone-modal-main article{padding:1.5em}.wc-backbone-modal-main article p{margin:1.5em 0}.wc-backbone-modal-main article p:last-child,.wc-backbone-modal-main footer .inner .button{margin-bottom:0}.wc-backbone-modal-main article p:first-child{margin-top:0}.wc-backbone-modal-main article .pagination{padding:10px 0 0;text-align:center}.wc-backbone-modal-main footer{position:absolute;left:0;right:0;bottom:0;z-index:100;padding:1em 1.5em;background:#fcfcfc;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px rgba(0,0,0,.1)}.wc-backbone-modal-main footer .inner{float:right;line-height:23px}.select2-drop{z-index:999999!important}.select2-container-multi .select2-choices .select2-search-field input{font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 5px}.select2-container{line-height:1.85em;font-size:14px}assets/css/reports-print.css000066600000002400152133032050012172 0ustar00*{background:0 0!important;color:#000!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important;font-size:9pt!important;opacity:1;-webkit-transition:none!important}@page{margin:.5cm}#adminmenuback,#adminmenuwrap,#screen-meta-links,#wpadminbar,#wpfooter,.update-nag,.updated,.woo-nav-tab-wrapper,.woocommerce-reports-wide .button,.woocommerce-reports-wide .postbox h3.stats_range .export_csv,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv{display:none}h2 .nav-tab{line-height:14px}.woocommerce-reports-wide .postbox h3.stats_range ul li a,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom,.woocommerce-reports-wrap .postbox h3.stats_range ul li a,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom{padding:5px;line-height:14px}#wpcontent{margin-left:0}.woocommerce-reports-wide .postbox .chart-with-sidebar .chart-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar .chart-sidebar{margin-left:-130px;width:130px;display:block}.woocommerce-reports-wide .postbox .chart-with-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar{padding-left:130px}.chart-legend{overflow:hidden;zoom:1}.chart-legend li{padding:.25em .5em!important;box-shadow:none!important;border-bottom:1px solid gray!important}assets/css/_mixins.scss000066600000011707152133032050011205 0ustar00/** * Deprecated * Fallback for bourbon equivalent */ @mixin clearfix() { *zoom: 1; &:before, &:after { content: " "; display: table; } &:after { clear: both; } } /** * Deprecated * Vendor prefix no longer required. */ @mixin border_radius($radius: 4px) { border-radius: $radius; } /** * Deprecated * Vendor prefix no longer required. */ @mixin border_radius_right($radius: 4px) { border-top-right-radius: $radius; border-bottom-right-radius: $radius; } /** * Deprecated * Vendor prefix no longer required. */ @mixin border_radius_left($radius: 4px) { border-top-left-radius: $radius; border-bottom-left-radius: $radius; } /** * Deprecated * Vendor prefix no longer required. */ @mixin border_radius_bottom($radius: 4px) { border-bottom-left-radius: $radius; border-bottom-right-radius: $radius; } /** * Deprecated * Vendor prefix no longer required. */ @mixin border_radius_top($radius: 4px) { border-top-left-radius: $radius; border-top-right-radius: $radius; } /** * Deprecated * Vendor prefix no longer required. */ @mixin opacity( $opacity: 0.75 ) { opacity: $opacity; } /** * Deprecated * Vendor prefix no longer required. */ @mixin box_shadow($shadow_x: 3px, $shadow_y: 3px, $shadow_rad: 3px, $shadow_in: 3px, $shadow_color: #888) { box-shadow: $shadow_x $shadow_y $shadow_rad $shadow_in $shadow_color; } /** * Deprecated * Vendor prefix no longer required. */ @mixin inset_box_shadow($shadow_x: 3px, $shadow_y: 3px, $shadow_rad: 3px, $shadow_in: 3px, $shadow_color: #888) { box-shadow: inset $shadow_x $shadow_y $shadow_rad $shadow_in $shadow_color; } /** * Deprecated * Vendor prefix no longer required. */ @mixin text_shadow($shadow_x: 3px, $shadow_y: 3px, $shadow_rad: 3px, $shadow_color: #fff) { text-shadow: $shadow_x $shadow_y $shadow_rad $shadow_color; } /** * Deprecated * Vendor prefix no longer required. */ @mixin vertical_gradient($from: #000, $to: #fff) { background-color: $from; background: -webkit-linear-gradient($from, $to); } /** * Deprecated * Vendor prefix no longer required. */ @mixin transition($selector: all, $animation: ease-in-out, $duration: .2s) { transition: $selector $animation $duration; } /** * Deprecated * Use bourbon mixin instead `@include transform(scale(1.5));` */ @mixin scale($ratio: 1.5) { -webkit-transform: scale($ratio); transform: scale($ratio); } /** * Deprecated * Use bourbon mixin instead `@include box-sizing(border-box);` */ @mixin borderbox() { box-sizing: border-box; } @mixin darkorlighttextshadow($a, $opacity: .8) { @if lightness($a) >= 65% { @include text_shadow(0, -1px, 0, rgba(0, 0, 0, $opacity)); } @else { @include text_shadow(0, 1px, 0, rgba(255, 255, 255, $opacity)); } } /** * Objects */ @mixin menu() { @include clearfix(); li { display: inline-block; } } @mixin mediaright() { @include clearfix(); img { float: right; height: auto; } } @mixin medialeft() { @include clearfix(); img { float: right; height: auto; } } @mixin ir() { display: block; text-indent: -9999px; position: relative; height: 1em; width: 1em; } @mixin icon( $glyph: "\e001" ) { font-family: 'WooCommerce'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin: 0; text-indent: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; content: $glyph; } @mixin icon_dashicons( $glyph: "\f333" ) { font-family: 'Dashicons'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin: 0; text-indent: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; content: $glyph; } @mixin iconbefore( $glyph: "\e001" ) { font-family: 'WooCommerce'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin-right: .618em; content: $glyph; text-decoration: none; } @mixin iconbeforedashicons( $glyph: "\f333" ) { font-family: 'Dashicons'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin-right: .618em; content: $glyph; text-decoration: none; } @mixin iconafter( $glyph: "\e001" ) { font-family: 'WooCommerce'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin-left: .618em; content: $glyph; text-decoration: none; } @mixin loader() { &:before { height: 1em; width: 1em; display: block; position: absolute; top: 50%; left: 50%; margin-left: -.5em; margin-top: -.5em; display: block; content: ""; @include animation( spin 1s ease-in-out infinite ); background: url(../images/icons/loader.svg) center center; background-size: cover; line-height: 1; text-align: center; font-size: 2em; color: rgba(#000,0.75); } } assets/css/woocommerce-smallscreen.css000066600000015341152133032050014177 0ustar00.woocommerce table.shop_table_responsive tbody th,.woocommerce table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive thead{display:none}.woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child{border-top:0}.woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block}.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block;text-align:right!important}.woocommerce #content table.cart .product-thumbnail,.woocommerce table.cart .product-thumbnail,.woocommerce table.my_account_orders tr td.order-actions:before,.woocommerce table.shop_table_responsive tr td.actions:before,.woocommerce table.shop_table_responsive tr td.product-remove:before,.woocommerce-page #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail,.woocommerce-page table.my_account_orders tr td.order-actions:before,.woocommerce-page table.shop_table_responsive tr td.actions:before,.woocommerce-page table.shop_table_responsive tr td.product-remove:before{display:none}.woocommerce table.shop_table_responsive tr td.order-actions,.woocommerce-page table.shop_table_responsive tr td.order-actions{text-align:left!important}.woocommerce table.shop_table_responsive tr td:before,.woocommerce-page table.shop_table_responsive tr td:before{content:attr(data-title) ": ";font-weight:700;float:left}.woocommerce table.shop_table_responsive tr:nth-child(2n) td,.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td{background-color:rgba(0,0,0,.025)}.woocommerce table.my_account_orders tr td.order-actions,.woocommerce-page table.my_account_orders tr td.order-actions{text-align:left}.woocommerce table.my_account_orders tr td.order-actions .button,.woocommerce-page table.my_account_orders tr td.order-actions .button{float:none;margin:.125em .25em .125em 0}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{float:none;width:100%}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.woocommerce-page[class*=columns-] ul.products li.product,.woocommerce[class*=columns-] ul.products li.product{width:48%;float:left;clear:both;margin:0 0 2.992em}.woocommerce ul.products li.product:nth-child(2n),.woocommerce-page ul.products li.product:nth-child(2n),.woocommerce-page[class*=columns-] ul.products li.product:nth-child(2n),.woocommerce[class*=columns-] ul.products li.product:nth-child(2n){float:right;clear:none!important}.woocommerce #content div.product div.images,.woocommerce #content div.product div.summary,.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.images,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary{float:none;width:100%}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:left}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:none;padding-bottom:.5em}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce #content table.cart td.actions .coupon:before,.woocommerce table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:before,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:before,.woocommerce-page table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:before{content:" ";display:table}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:after{clear:both}.woocommerce #content table.cart td.actions .coupon .button,.woocommerce #content table.cart td.actions .coupon .input-text,.woocommerce #content table.cart td.actions .coupon input,.woocommerce table.cart td.actions .coupon .button,.woocommerce table.cart td.actions .coupon .input-text,.woocommerce table.cart td.actions .coupon input,.woocommerce-page #content table.cart td.actions .coupon .button,.woocommerce-page #content table.cart td.actions .coupon .input-text,.woocommerce-page #content table.cart td.actions .coupon input,.woocommerce-page table.cart td.actions .coupon .button,.woocommerce-page table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon input{width:48%;box-sizing:border-box}.woocommerce #content table.cart td.actions .coupon .button.alt,.woocommerce #content table.cart td.actions .coupon .input-text+.button,.woocommerce table.cart td.actions .coupon .button.alt,.woocommerce table.cart td.actions .coupon .input-text+.button,.woocommerce-page #content table.cart td.actions .coupon .button.alt,.woocommerce-page #content table.cart td.actions .coupon .input-text+.button,.woocommerce-page table.cart td.actions .coupon .button.alt,.woocommerce-page table.cart td.actions .coupon .input-text+.button{float:right}.woocommerce #content table.cart td.actions .button,.woocommerce table.cart td.actions .button,.woocommerce-page #content table.cart td.actions .button,.woocommerce-page table.cart td.actions .button{display:block;width:100%}.woocommerce .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .cross-sells,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .shipping_calculator{width:100%;float:none;text-align:left}.woocommerce-page.woocommerce-checkout form.login .form-row,.woocommerce.woocommerce-checkout form.login .form-row{width:100%;float:none}.woocommerce #payment .terms,.woocommerce-page #payment .terms{text-align:left;padding:0}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:none;width:100%;box-sizing:border-box;margin-bottom:1em}.woocommerce .lost_reset_password .form-row-first,.woocommerce .lost_reset_password .form-row-last,.woocommerce-page .lost_reset_password .form-row-first,.woocommerce-page .lost_reset_password .form-row-last{width:100%;float:none;margin-right:0}.woocommerce-account .woocommerce-MyAccount-content,.woocommerce-account .woocommerce-MyAccount-navigation{float:none;width:100%}.single-product .twentythirteen .panel{padding-left:20px!important;padding-right:20px!important}assets/css/select2.css000066600000025267152133032050010723 0ustar00.select2-container .select2-choice,.select2-results .select2-result-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.select2-container{margin:0;position:relative;display:block!important;zoom:1;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #ccc;white-space:nowrap;color:#444;text-decoration:none;border-radius:3px;background-clip:padding-box;user-select:none;background-color:#fff;font-weight:400}html[dir=rtl] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#ccc;border-radius:0 0 4px 4px}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir=rtl] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:5px;font-size:1px;text-decoration:none;border:0;background:url(../images/select2.png) right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #ccc;border-top:0;border-radius:0 0 3px 3px}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #ccc;border-bottom:0;border-radius:3px 3px 0 0}.select2-drop-active{border:1px solid #666;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #666}.select2-drop-auto-width{border-top:1px solid #ccc;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-radius:0 3px 3px 0;background-clip:padding-box}html[dir=rtl] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-radius:3px 0 0 3px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;position:relative}.select2-container .select2-choice .select2-arrow b:after{position:absolute;display:block;content:"";top:50%;left:50%;border:4px solid transparent;border-top-color:#666;margin-left:-7px;margin-top:-2px}.select2-search{display:inline-block;width:100%;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap;padding-bottom:4px}.select2-search input{width:100%;height:auto!important;padding:4px 20px 4px 5px!important;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none;background:url(../images/select2.png) 100% -22px no-repeat #fff}html[dir=rtl] .select2-search input{padding:4px 5px 4px 20px;background:url(../images/select2.png) -37px -22px no-repeat #fff}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open .select2-choice .select2-arrow b:after{border-top-color:transparent;border-bottom-color:#666;margin-top:-6px}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #666;border-top-color:transparent}.select2-dropdown-open .select2-choice .select2-arrow{background:0 0;border-left:none;filter:none}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:4px;margin:0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;background:#fafafa}html[dir=rtl] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none;margin:3px 0}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:700}.select2-results .select2-result-label{padding:5px 7px;margin:0;cursor:pointer;min-height:1em;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#f1f1f1;color:#000;border-radius:3px}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-ajax-error,.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #f4f4f4}.select2-results .select2-ajax-error{background:rgba(255,50,50,.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto!important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #ccc;cursor:text;overflow:hidden;background-color:#fff;min-height:26px}html[dir=rtl] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir=rtl] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field:first-child{width:100%}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:0 0!important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff!important}.select2-default{color:#999!important}.select2-container-multi .select2-choices .select2-search-choice{padding:5px 8px 5px 24px;margin:3px 0 3px 5px;position:relative;line-height:15px;color:#333;cursor:default;border-radius:2px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4}html[dir=rtl] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:5px 24px 5px 8px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:7px;top:6px;font-size:1px;outline:0;background:url(../images/select2.png) right top no-repeat}html[dir=rtl] .select2-search-choice-close{right:auto;left:7px}.select2-container-multi .select2-search-choice-close{left:7px}html[dir=rtl] .select2-container-multi .select2-search-choice-close{left:auto;right:7px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover,.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:0 0}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input{background-image:url(../images/select2x2.png)!important;background-repeat:no-repeat!important;background-size:60px 40px!important;background-position:100% -21px!important}}assets/css/dashboard.scss000066600000007137152133032050011470 0ustar00/** * dashboard.scss * Styles for WooCommerce dashboard widgets, only loaded on the dashboard itself. */ /** * Imports */ @import "bourbon"; @import "mixins"; @import "variables"; @import "fonts"; /** * Styling begins */ ul.woocommerce_stats { overflow: hidden; zoom: 1; li { width: 25%; padding: 0 1em; text-align: center; float: left; font-size: 0.8em; border-left: 1px solid #fff; border-right: 1px solid #ececec; text-align: center; box-sizing: border-box; } li:first-child { border-left: 0; } li:last-child { border-right: 0; } strong { font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif; font-size: 4em; line-height: 1.2em; font-weight: normal; text-align: center; display: block; } } #woocommerce_dashboard_status { .inside { padding: 0; margin: 0; } .wc_status_list { overflow: hidden; margin: 0; li { width: 50%; float: left; padding: 0; box-sizing: border-box; margin: 0; border-top: 1px solid #ececec; color: #aaa; a { display: block; color: #aaa; padding: 9px 12px; -webkit-transition: all ease .5s; position: relative; font-size: 12px; .wc_sparkline { width: 4em; height: 2em; display: block; float: right; position: absolute; right: 0; top: 50%; margin-right: 12px; margin-top: -1.25em } strong { font-size: 18px; line-height: 1.2em; font-weight: normal; display: block; color: #21759b; } &:hover { color: #2ea2cc; &:before, strong { color: #2ea2cc !important; } } &:before { @include icon(); font-size: 2em; position: relative; width: auto; line-height: 1.2em; color: #464646; float: left; margin-right: 12px; margin-bottom: 12px; } } } li:first-child { border-top: 0; } li.sales-this-month { width: 100%; a:before { font-family: "Dashicons"; content: "\f185"; } } li.best-seller-this-month { width: 100%; a:before { content: "\e006"; } } li.processing-orders { border-right: 1px solid #ececec; a:before { content: "\e011"; color: $green; } } li.on-hold-orders { a:before { content: "\e033"; color: #999; } } li.low-in-stock { border-right: 1px solid #ececec; a:before { content: "\e016"; color: $orange; } } li.out-of-stock { a:before { content: "\e013"; color: $red; } } } } #woocommerce_dashboard_recent_reviews { li { line-height: 1.5em; margin-bottom: 12px; } h4.meta { line-height: 1.4; margin: -.2em 0 0 0; font-weight: normal; color: #999; } blockquote { padding: 0; margin: 0; } .avatar { float: left; margin: 0 10px 5px 0; } .star-rating { float: right; overflow: hidden; position: relative; height: 1.5em; line-height: 1.5; margin-left: .5em; width: 5.4em; font-family: 'WooCommerce' !important; &:before { content: "\e021\e021\e021\e021\e021"; color: darken( #ccc, 10% ); float: left; top: 0; left: 0; position: absolute; letter-spacing: 0.1em; letter-spacing: 0\9; // IE8 & below hack ;-( } span { overflow: hidden; float: left; top: 0; left: 0; position: absolute; padding-top: 1.5em; } span:before { content: "\e020\e020\e020\e020\e020"; top: 0; position: absolute; left: 0; letter-spacing: 0.1em; letter-spacing: 0\9; // IE8 & below hack ;-( color: #9c5d90; } } } #dash-right-now li.product-count a:before { font-family: 'WooCommerce'; content: "\e01d"; } assets/css/prettyPhoto.css000066600000020745152133032050011717 0ustar00@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}div.pp_woocommerce .pp_content_container{background:#fff;border-radius:3px;box-shadow:0 1px 30px rgba(0,0,0,.25);padding:20px 0}div.pp_woocommerce .pp_content_container:after,div.pp_woocommerce .pp_content_container:before{content:" ";display:table}div.pp_woocommerce .pp_content_container:after{clear:both}div.pp_woocommerce .pp_loaderIcon:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}div.pp_woocommerce div.ppt{color:#000}div.pp_woocommerce .pp_gallery ul li a{border:1px solid rgba(0,0,0,.5);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);border-radius:2px;display:block}div.pp_woocommerce .pp_arrow_next,div.pp_woocommerce .pp_arrow_previous,div.pp_woocommerce .pp_close,div.pp_woocommerce .pp_next:before,div.pp_woocommerce .pp_previous:before,div.pp_woocommerce a.pp_contract,div.pp_woocommerce a.pp_expand{border-radius:100%;height:1em;width:1em;text-shadow:0 1px 2px rgba(0,0,0,.5);line-height:1em;transition:all ease-in-out .2s;color:#fff!important}div.pp_woocommerce .pp_gallery ul li a:hover,div.pp_woocommerce .pp_gallery ul li.selected a{border-color:#000}div.pp_woocommerce .pp_next:before,div.pp_woocommerce .pp_previous:before{background-color:#444;font-size:16px!important;font-family:WooCommerce;content:"\e00b";text-indent:0;display:none;position:absolute;top:50%;margin-top:-10px;text-align:center}div.pp_woocommerce .pp_next:before:hover,div.pp_woocommerce .pp_previous:before:hover{background-color:#000}div.pp_woocommerce .pp_next:hover:before,div.pp_woocommerce .pp_previous:hover:before{display:block}div.pp_woocommerce .pp_previous:before{left:1em}div.pp_woocommerce .pp_next:before{right:1em;font-family:WooCommerce;content:"\e008"}div.pp_woocommerce .pp_details{margin:0;padding-top:1em}div.pp_woocommerce .pp_description,div.pp_woocommerce .pp_nav{font-size:14px}div.pp_woocommerce .pp_arrow_next,div.pp_woocommerce .pp_arrow_previous,div.pp_woocommerce .pp_nav,div.pp_woocommerce .pp_nav .pp_pause,div.pp_woocommerce .pp_nav p,div.pp_woocommerce .pp_play{margin:0}div.pp_woocommerce .pp_nav{margin-right:1em;position:relative}div.pp_woocommerce .pp_close{background-color:#444;top:-.5em;right:-.5em;font-size:1.618em!important}div.pp_woocommerce .pp_close:hover{background-color:#000}div.pp_woocommerce .pp_close:before{font-family:WooCommerce;content:"\e013";display:block;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;text-indent:0}div.pp_woocommerce .pp_arrow_next,div.pp_woocommerce .pp_arrow_previous{background-color:#444;font-size:16px!important;position:relative;margin-top:-1px}div.pp_woocommerce .pp_arrow_next:hover,div.pp_woocommerce .pp_arrow_previous:hover{background-color:#000}div.pp_woocommerce .pp_arrow_next:before,div.pp_woocommerce .pp_arrow_previous:before{font-family:WooCommerce;content:"\e00b";display:block;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;text-indent:0}div.pp_woocommerce .pp_arrow_previous{margin-right:.5em}div.pp_woocommerce .pp_arrow_next{margin-left:.5em}div.pp_woocommerce .pp_arrow_next:before{content:"\e008"}div.pp_woocommerce a.pp_contract,div.pp_woocommerce a.pp_expand{background-color:#444;right:auto;left:-.5em;top:-.5em;font-size:1.618em!important}div.pp_woocommerce a.pp_contract:hover,div.pp_woocommerce a.pp_expand:hover{background-color:#000}div.pp_woocommerce a.pp_contract:before,div.pp_woocommerce a.pp_expand:before{font-family:WooCommerce;content:"\e005";display:block;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;text-indent:0}div.pp_woocommerce a.pp_contract:before{content:"\e004"}div.pp_woocommerce #respond{margin:0;width:100%;background:0 0;border:none;padding:0}div.pp_woocommerce #respond .form-submit{margin-top:0;float:none}div.pp_woocommerce .pp_inline{padding:0!important}.rtl div.pp_woocommerce .pp_content_container{text-align:right}@media only screen and (max-width:768px){div.pp_woocommerce .pp_contract,div.pp_woocommerce .pp_description,div.pp_woocommerce .pp_expand,div.pp_woocommerce .pp_gallery,div.pp_woocommerce .pp_next,div.pp_woocommerce .pp_previous{display:none!important}div.pp_woocommerce{left:5%!important;right:5%!important;box-sizing:border-box;width:90%!important}div.pp_woocommerce .pp_arrow_next,div.pp_woocommerce .pp_arrow_previous,div.pp_woocommerce .pp_close{height:44px;width:44px;font-size:44px;line-height:44px}div.pp_woocommerce .pp_arrow_next:before,div.pp_woocommerce .pp_arrow_previous:before,div.pp_woocommerce .pp_close:before{font-size:44px}.pp_content,div.pp_woocommerce .pp_details{width:100%!important}.pp_content #pp_full_res>img{width:100%!important;height:auto!important}.currentTextHolder{line-height:3}}div.pp_pic_holder a:focus{outline:0}div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9999}div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}.pp_top{height:20px;position:relative}* html .pp_top{padding:0 20px}.pp_top .pp_left{height:20px;left:0;position:absolute;width:20px}.pp_top .pp_middle{height:20px;left:20px;position:absolute;right:20px}* html .pp_top .pp_middle{left:0;position:static}.pp_top .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}.pp_content{height:40px;min-width:40px}* html .pp_content{width:40px}.pp_fade{display:none}.pp_content_container{position:relative;text-align:left;width:100%}.pp_content_container .pp_left{padding-left:20px}.pp_content_container .pp_right{padding-right:20px}.pp_content_container .pp_details{float:left;margin:10px 0 2px}.pp_description{display:none;margin:0}.pp_social{float:left;margin:0}.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}.pp_social .twitter{float:left}.pp_nav{clear:right;float:left;margin:3px 10px 0 0}.pp_nav p{float:left;margin:2px 4px;white-space:nowrap}.pp_nav .pp_pause,.pp_nav .pp_play{float:left;margin-right:4px;text-indent:-10000px}a.pp_arrow_next,a.pp_arrow_previous{display:block;float:left;height:15px;margin-top:3px;text-indent:-100000px;width:14px}.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}.pp_gallery div{float:left;overflow:hidden;position:relative}.pp_gallery ul{float:left;height:35px;margin:0 0 0 5px;padding:0;position:relative;white-space:nowrap}.pp_gallery ul a{border:1px solid #000;border:1px solid rgba(0,0,0,.5);display:block;float:left;height:33px;overflow:hidden}.pp_gallery li.selected a,.pp_gallery ul a:hover{border-color:#fff}.pp_gallery ul a img{border:0}.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}.pp_gallery li.default a{display:block;height:33px;width:50px}.pp_gallery li.default a img{display:none}a.pp_next,a.pp_previous{display:block;height:100%;width:49%;text-indent:-10000px}.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous{margin-top:7px!important}a.pp_next{float:right}a.pp_previous{float:left}a.pp_contract,a.pp_expand{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}a.pp_close{position:absolute;right:0;top:0;display:block;text-indent:-10000px}.pp_bottom{height:20px;position:relative}* html .pp_bottom{padding:0 20px}.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}* html .pp_bottom .pp_middle{left:0;position:static}.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}.pp_loaderIcon{display:block;height:24px;left:50%;margin:-12px 0 0 -12px;position:absolute;top:50%;width:24px}#pp_full_res .pp_inline{text-align:left}div.ppt{color:#fff!important;font-weight:700;display:none;font-size:17px;margin:0 0 5px 15px;z-index:9999}assets/css/woocommerce.css000066600000151161152133032050011672 0ustar00@charset "UTF-8";.clear,.woocommerce .woocommerce-breadcrumb:after{clear:both}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}p.demo_store{position:fixed;top:0;left:0;right:0;margin:0;width:100%;font-size:1em;padding:1em 0;text-align:center;background-color:#a46497;color:#fff;z-index:99998;box-shadow:0 1px 1em rgba(0,0,0,.2)}p.demo_store a{color:#fff}.admin-bar p.demo_store{top:32px}.woocommerce .blockUI.blockOverlay{position:relative}.woocommerce .blockUI.blockOverlay:before,.woocommerce .loader:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.woocommerce a.remove{display:block;font-size:1.5em;height:1em;width:1em;text-align:center;line-height:1;border-radius:100%;color:red!important;text-decoration:none;font-weight:700;border:0}.woocommerce a.remove:hover{color:#fff!important;background:red}.woocommerce small.note{display:block;color:#777;font-size:.857em;margin-top:10px}.woocommerce .woocommerce-breadcrumb{margin:0 0 1em;padding:0;font-size:.92em;color:#777}.woocommerce .woocommerce-breadcrumb:after,.woocommerce .woocommerce-breadcrumb:before{content:" ";display:table}.woocommerce .woocommerce-breadcrumb a{color:#777}.woocommerce .quantity .qty{width:3.631em;text-align:center}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product .product_title{clear:none;margin-top:0;padding:0}.woocommerce #reviews #comments .add_review:after,.woocommerce .products ul:after,.woocommerce div.product form.cart:after,.woocommerce div.product p.cart:after,.woocommerce nav.woocommerce-pagination ul,.woocommerce ul.products:after{clear:both}.woocommerce div.product p.price,.woocommerce div.product span.price{color:#77a464;font-size:1.25em}.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{background:inherit;font-weight:700}.woocommerce div.product p.price del,.woocommerce div.product span.price del{opacity:.5}.woocommerce div.product p.stock{font-size:.92em}.woocommerce div.product .stock{color:#77a464}.woocommerce div.product .out-of-stock{color:red}.woocommerce div.product .woocommerce-product-rating{margin-bottom:1.618em}.woocommerce div.product div.images,.woocommerce div.product div.summary{margin-bottom:2em}.woocommerce div.product div.images img{display:block;width:100%;height:auto;box-shadow:none}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.social{text-align:right;margin:0 0 1em}.woocommerce div.product div.social span{margin:0 0 0 2px}.woocommerce div.product div.social span span{margin:0}.woocommerce div.product div.social span .stButton .chicklets{padding-left:16px;width:0}.woocommerce div.product div.social iframe{float:left;margin-top:3px}.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;padding:0 0 0 1em;margin:0 0 1.618em;overflow:hidden;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:1px solid #d3ced2;background-color:#ebe9eb;display:inline-block;position:relative;z-index:0;border-radius:4px 4px 0 0;margin:0 -5px;padding:0 1em}.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:inline-block;padding:.5em 0;font-weight:700;color:#515151;text-decoration:none}.woocommerce div.product form.cart:after,.woocommerce div.product form.cart:before,.woocommerce div.product p.cart:after,.woocommerce div.product p.cart:before{display:table;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{text-decoration:none;color:#6b6b6b}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:after{box-shadow:-2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li:after,.woocommerce div.product .woocommerce-tabs ul.tabs li:before{border:1px solid #d3ced2;position:absolute;bottom:-1px;width:5px;height:5px;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li:before{left:-6px;-webkit-border-bottom-right-radius:4px;-moz-border-bottom-right-radius:4px;border-bottom-right-radius:4px;border-width:0 1px 1px 0;box-shadow:2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs li:after{right:-6px;-webkit-border-bottom-left-radius:4px;-moz-border-bottom-left-radius:4px;border-bottom-left-radius:4px;border-width:0 0 1px 1px;box-shadow:-2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs:before{position:absolute;content:" ";width:100%;bottom:0;left:0;border-bottom:1px solid #d3ced2;z-index:1}.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em;padding:0}.woocommerce div.product form.cart,.woocommerce div.product p.cart{margin-bottom:2em}.woocommerce div.product form.cart div.quantity{float:left;margin:0 4px 0 0}.woocommerce div.product form.cart table{border-width:0 0 1px}.woocommerce div.product form.cart table td{padding-left:0}.woocommerce div.product form.cart table div.quantity{float:none;margin:0}.woocommerce div.product form.cart table small.stock{display:block;float:none}.woocommerce div.product form.cart .variations{margin-bottom:1em;border:0;width:100%}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{border:0;vertical-align:top;line-height:2em}.woocommerce div.product form.cart .variations label{font-weight:700}.woocommerce div.product form.cart .variations select{max-width:100%;min-width:75%;display:inline-block;margin-right:1em}.woocommerce div.product form.cart .variations td.label{padding-right:1em}.woocommerce div.product form.cart .woocommerce-variation-description p{margin-bottom:1em}.woocommerce div.product form.cart .reset_variations{visibility:hidden;font-size:.83em}.woocommerce div.product form.cart .wc-no-matching-variations{display:none}.woocommerce div.product form.cart .button{vertical-align:middle;float:left}.woocommerce div.product form.cart .group_table td.label{padding-right:1em;padding-left:1em}.woocommerce div.product form.cart .group_table td{vertical-align:top;padding-bottom:.5em;border:0}.woocommerce span.onsale{min-height:3.236em;min-width:3.236em;padding:.202em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#77a464;color:#fff;font-size:.857em;-webkit-font-smoothing:antialiased}.woocommerce .products ul,.woocommerce ul.products{margin:0 0 1em;padding:0;list-style:none;clear:both}.woocommerce .products ul:after,.woocommerce .products ul:before,.woocommerce ul.products:after,.woocommerce ul.products:before{content:" ";display:table}.woocommerce .products ul li,.woocommerce ul.products li{list-style:none}.woocommerce ul.products li.product .onsale{top:0;right:0;left:auto;margin:-.5em -.5em 0 0}.woocommerce ul.products li.product h3{padding:.5em 0;margin:0;font-size:1em}.woocommerce ul.products li.product a{text-decoration:none}.woocommerce ul.products li.product a img{width:100%;height:auto;display:block;margin:0 0 1em;box-shadow:none}.woocommerce ul.products li.product strong{display:block}.woocommerce ul.products li.product .star-rating{font-size:.857em}.woocommerce ul.products li.product .button{margin-top:1em}.woocommerce ul.products li.product .price{color:#77a464;display:block;font-weight:400;margin-bottom:.5em;font-size:.857em}.woocommerce ul.products li.product .price del{color:inherit;opacity:.5;display:block}.woocommerce ul.products li.product .price ins{background:0 0;font-weight:700}.woocommerce ul.products li.product .price .from{font-size:.67em;margin:-2px 0 0;text-transform:uppercase;color:rgba(132,132,132,.5)}.woocommerce .woocommerce-ordering,.woocommerce .woocommerce-result-count{margin:0 0 1em}.woocommerce .woocommerce-ordering select{vertical-align:top}.woocommerce nav.woocommerce-pagination{text-align:center}.woocommerce nav.woocommerce-pagination ul{display:inline-block;white-space:nowrap;padding:0;border:1px solid #d3ced2;border-right:0;margin:1px}.woocommerce nav.woocommerce-pagination ul li{border-right:1px solid #d3ced2;padding:0;margin:0;float:left;display:inline;overflow:hidden}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{margin:0;text-decoration:none;line-height:1;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}.woocommerce nav.woocommerce-pagination ul li a:focus,.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li span.current{background:#ebe9eb;color:#8a7e88}.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{font-size:100%;margin:0;line-height:1;cursor:pointer;position:relative;text-decoration:none;overflow:visible;padding:.618em 1em;font-weight:700;border-radius:3px;left:auto;color:#515151;background-color:#ebe9eb;border:0;white-space:nowrap;display:inline-block;background-image:none;box-shadow:none;-webkit-box-shadow:none;text-shadow:none}.woocommerce #respond input#submit.loading,.woocommerce a.button.loading,.woocommerce button.button.loading,.woocommerce input.button.loading{opacity:.25;padding-right:2.618em}.woocommerce #respond input#submit.loading:after,.woocommerce a.button.loading:after,.woocommerce button.button.loading:after,.woocommerce input.button.loading:after{font-family:WooCommerce;content:"\e01c";vertical-align:top;-webkit-font-smoothing:antialiased;font-weight:400;position:absolute;top:.618em;right:1em;-webkit-animation:spin 2s linear infinite;-moz-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.woocommerce #respond input#submit.added:after,.woocommerce a.button.added:after,.woocommerce button.button.added:after,.woocommerce input.button.added:after{font-family:WooCommerce;content:"\e017";margin-left:.53em;vertical-align:bottom}.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background-color:#dad8da;text-decoration:none;background-image:none;color:#515151}.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background-color:#a46497;color:#fff;-webkit-font-smoothing:antialiased}.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{background-color:#935386;color:#fff}.woocommerce #respond input#submit.alt.disabled,.woocommerce #respond input#submit.alt.disabled:hover,.woocommerce #respond input#submit.alt:disabled,.woocommerce #respond input#submit.alt:disabled:hover,.woocommerce #respond input#submit.alt:disabled[disabled],.woocommerce #respond input#submit.alt:disabled[disabled]:hover,.woocommerce a.button.alt.disabled,.woocommerce a.button.alt.disabled:hover,.woocommerce a.button.alt:disabled,.woocommerce a.button.alt:disabled:hover,.woocommerce a.button.alt:disabled[disabled],.woocommerce a.button.alt:disabled[disabled]:hover,.woocommerce button.button.alt.disabled,.woocommerce button.button.alt.disabled:hover,.woocommerce button.button.alt:disabled,.woocommerce button.button.alt:disabled:hover,.woocommerce button.button.alt:disabled[disabled],.woocommerce button.button.alt:disabled[disabled]:hover,.woocommerce input.button.alt.disabled,.woocommerce input.button.alt.disabled:hover,.woocommerce input.button.alt:disabled,.woocommerce input.button.alt:disabled:hover,.woocommerce input.button.alt:disabled[disabled],.woocommerce input.button.alt:disabled[disabled]:hover{background-color:#a46497;color:#fff}.woocommerce #respond input#submit.disabled,.woocommerce #respond input#submit:disabled,.woocommerce #respond input#submit:disabled[disabled],.woocommerce a.button.disabled,.woocommerce a.button:disabled,.woocommerce a.button:disabled[disabled],.woocommerce button.button.disabled,.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled],.woocommerce input.button.disabled,.woocommerce input.button:disabled,.woocommerce input.button:disabled[disabled]{color:inherit;cursor:not-allowed;opacity:.5;padding:.618em 1em}.woocommerce #respond input#submit.disabled:hover,.woocommerce #respond input#submit:disabled:hover,.woocommerce #respond input#submit:disabled[disabled]:hover,.woocommerce a.button.disabled:hover,.woocommerce a.button:disabled:hover,.woocommerce a.button:disabled[disabled]:hover,.woocommerce button.button.disabled:hover,.woocommerce button.button:disabled:hover,.woocommerce button.button:disabled[disabled]:hover,.woocommerce input.button.disabled:hover,.woocommerce input.button:disabled:hover,.woocommerce input.button:disabled[disabled]:hover{color:inherit;background-color:#ebe9eb}.woocommerce .cart .button,.woocommerce .cart input.button{float:none}.woocommerce a.added_to_cart{padding-top:.5em;white-space:nowrap;display:inline-block}.woocommerce #reviews #comments .add_review:after,.woocommerce #reviews #comments .add_review:before,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:before,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce #reviews #comments ol.commentlist:before{content:" ";display:table}.woocommerce #reviews h2 small{float:right;color:#777;font-size:15px;margin:10px 0 0}.woocommerce #reviews h2 small a{text-decoration:none;color:#777}.woocommerce #reviews h3{margin:0}.woocommerce #reviews #respond{margin:0;border:0;padding:0}.woocommerce #reviews #comment{height:75px}.woocommerce #reviews #comments h2{clear:none}.woocommerce #review_form #respond:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce .woocommerce-product-rating:after,.woocommerce td.product-name dl.variation:after{clear:both}.woocommerce #reviews #comments ol.commentlist{margin:0;width:100%;background:0 0;list-style:none}.woocommerce #reviews #comments ol.commentlist li{padding:0;margin:0 0 20px;position:relative;background:0;border:0}.woocommerce #reviews #comments ol.commentlist li .meta{color:#777;font-size:.75em}.woocommerce #reviews #comments ol.commentlist li img.avatar{float:left;position:absolute;top:0;left:0;padding:3px;width:32px;height:auto;background:#ebe9eb;border:1px solid #e4e1e3;margin:0;box-shadow:none}.woocommerce #reviews #comments ol.commentlist li .comment-text{margin:0 0 0 50px;border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0}.woocommerce #reviews #comments ol.commentlist li .comment-text p{margin:0 0 1em}.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta{font-size:.83em}.woocommerce #reviews #comments ol.commentlist ul.children{list-style:none;margin:20px 0 0 50px}.woocommerce #reviews #comments ol.commentlist ul.children .star-rating{display:none}.woocommerce #reviews #comments ol.commentlist #respond{border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0;margin:20px 0 0 50px}.woocommerce #reviews #comments .commentlist>li:before{content:""}.woocommerce .star-rating{float:right;overflow:hidden;position:relative;height:1em;line-height:1;font-size:1em;width:5.4em;font-family:star}.woocommerce .star-rating:before{content:"\73\73\73\73\73";color:#d3ced2;float:left;top:0;left:0;position:absolute}.woocommerce .star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}.woocommerce .star-rating span:before{content:"\53\53\53\53\53";top:0;position:absolute;left:0}.woocommerce .woocommerce-product-rating{line-height:2;display:block}.woocommerce .woocommerce-product-rating:after,.woocommerce .woocommerce-product-rating:before{content:" ";display:table}.woocommerce .woocommerce-product-rating .star-rating{margin:.5em 4px 0 0;float:left}.woocommerce .products .star-rating{display:block;margin:0 0 .5em;float:none}.woocommerce .hreview-aggregate .star-rating{margin:10px 0 0}.woocommerce #review_form #respond{position:static;margin:0;width:auto;padding:0;background:0 0;border:0}.woocommerce #review_form #respond:after,.woocommerce #review_form #respond:before{content:" ";display:table}.woocommerce p.stars a:before,.woocommerce p.stars a:hover~a:before{content:"\e021"}.woocommerce #review_form #respond p{margin:0 0 10px}.woocommerce #review_form #respond .form-submit input{left:auto}.woocommerce #review_form #respond textarea{box-sizing:border-box;width:100%}.woocommerce p.stars a{position:relative;height:1em;width:1em;text-indent:-999em;display:inline-block;text-decoration:none}.woocommerce p.stars a:before{display:block;position:absolute;top:0;left:0;width:1em;height:1em;line-height:1;font-family:WooCommerce;text-indent:0}.woocommerce table.shop_attributes td,.woocommerce table.shop_attributes th{line-height:1.5;border-bottom:1px dotted rgba(0,0,0,.1);border-top:0;margin:0}.woocommerce p.stars.selected a.active:before,.woocommerce p.stars:hover a:before{content:"\e020"}.woocommerce p.stars.selected a.active~a:before{content:"\e021"}.woocommerce p.stars.selected a:not(.active):before{content:"\e020"}.woocommerce table.shop_attributes{border:0;border-top:1px dotted rgba(0,0,0,.1);margin-bottom:1.618em;width:100%}.woocommerce table.shop_attributes th{width:150px;font-weight:700;padding:8px}.woocommerce table.shop_attributes td{font-style:italic;padding:0}.woocommerce table.shop_attributes td p{margin:0;padding:8px 0}.woocommerce table.shop_attributes .alt td,.woocommerce table.shop_attributes .alt th{background:rgba(0,0,0,.025)}.woocommerce table.shop_table{border:1px solid rgba(0,0,0,.1);margin:0 -1px 24px 0;text-align:left;width:100%;border-collapse:separate;border-radius:5px}.woocommerce table.shop_table th{font-weight:700;padding:9px 12px}.woocommerce table.shop_table td{border-top:1px solid rgba(0,0,0,.1);padding:6px 12px;vertical-align:middle}.woocommerce table.shop_table td small{font-weight:400}.woocommerce table.shop_table tbody:first-child tr:first-child td,.woocommerce table.shop_table tbody:first-child tr:first-child th{border-top:0}.woocommerce table.shop_table tbody th,.woocommerce table.shop_table tfoot td,.woocommerce table.shop_table tfoot th{font-weight:700;border-top:1px solid rgba(0,0,0,.1)}.woocommerce table.my_account_orders{font-size:.85em}.woocommerce table.my_account_orders td,.woocommerce table.my_account_orders th{padding:4px 8px;vertical-align:middle}.woocommerce table.my_account_orders .button{white-space:nowrap}.woocommerce table.my_account_orders .order-actions{text-align:right}.woocommerce table.my_account_orders .order-actions .button{margin:.125em 0 .125em .25em}.woocommerce td.product-name dl.variation{margin:.25em 0}.woocommerce td.product-name dl.variation:after,.woocommerce td.product-name dl.variation:before{content:" ";display:table}.woocommerce td.product-name dl.variation dd,.woocommerce td.product-name dl.variation dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce td.product-name dl.variation dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li:after,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li:after{clear:both}.woocommerce td.product-name dl.variation dd{padding:0 0 .25em}.woocommerce td.product-name dl.variation dd p:last-child{margin-bottom:0}.woocommerce td.product-name p.backorder_notification{font-size:.83em}.woocommerce td.product-quantity{min-width:80px}.woocommerce ul.cart_list,.woocommerce ul.product_list_widget{list-style:none;padding:0;margin:0}.woocommerce ul.cart_list li,.woocommerce ul.product_list_widget li{padding:4px 0;margin:0;list-style:none}.woocommerce ul.cart_list li:after,.woocommerce ul.cart_list li:before,.woocommerce ul.product_list_widget li:after,.woocommerce ul.product_list_widget li:before{content:" ";display:table}.woocommerce ul.cart_list li a,.woocommerce ul.product_list_widget li a{display:block;font-weight:700}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img{float:right;margin-left:4px;width:32px;height:auto;box-shadow:none}.woocommerce ul.cart_list li dl,.woocommerce ul.product_list_widget li dl{margin:0;padding-left:1em;border-left:2px solid rgba(0,0,0,.1)}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li dl:before,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li dl:before{content:" ";display:table}.woocommerce ul.cart_list li dl dd,.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dd,.woocommerce ul.product_list_widget li dl dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}#add_payment_method .wc-proceed-to-checkout:after,.woocommerce .order_details:after,.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_rating_filter ul li:after,.woocommerce .widget_shopping_cart .buttons:after,.woocommerce-account .addresses .title:after,.woocommerce-account .woocommerce:after,.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce-checkout .wc-proceed-to-checkout:after,.woocommerce-error:after,.woocommerce-info:after,.woocommerce-message:after,.woocommerce.widget_shopping_cart .buttons:after{clear:both}.woocommerce ul.cart_list li dl dd,.woocommerce ul.product_list_widget li dl dd{padding:0 0 .25em}.woocommerce ul.cart_list li dl dd p:last-child,.woocommerce ul.product_list_widget li dl dd p:last-child{margin-bottom:0}.woocommerce ul.cart_list li .star-rating,.woocommerce ul.product_list_widget li .star-rating{float:none}.woocommerce .widget_shopping_cart .total,.woocommerce.widget_shopping_cart .total{border-top:3px double #ebe9eb;padding:4px 0 0}.woocommerce .widget_shopping_cart .total strong,.woocommerce.widget_shopping_cart .total strong{min-width:40px;display:inline-block}.woocommerce .widget_shopping_cart .cart_list li,.woocommerce.widget_shopping_cart .cart_list li{padding-left:2em;position:relative;padding-top:0}.woocommerce .widget_shopping_cart .cart_list li a.remove,.woocommerce.widget_shopping_cart .cart_list li a.remove{position:absolute;top:0;left:0}.woocommerce .widget_shopping_cart .buttons:after,.woocommerce .widget_shopping_cart .buttons:before,.woocommerce.widget_shopping_cart .buttons:after,.woocommerce.widget_shopping_cart .buttons:before{content:" ";display:table}.woocommerce form .form-row{padding:3px;margin:0 0 6px}.woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder{-webkit-transition:opacity .5s .5s ease;-moz-transition:opacity .5s .5s ease;transition:opacity .5s .5s ease;opacity:0}.woocommerce form .form-row label{line-height:2}.woocommerce form .form-row label.hidden{visibility:hidden}.woocommerce form .form-row label.inline{display:inline}.woocommerce form .form-row select{cursor:pointer;margin:0}.woocommerce form .form-row .required{color:red;font-weight:700;border:0}.woocommerce form .form-row .input-checkbox{display:inline;margin:-2px 8px 0 0;text-align:center;vertical-align:middle}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{box-sizing:border-box;width:100%;margin:0;outline:0;line-height:1}.woocommerce form .form-row textarea{height:4em;line-height:1.5;display:block;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce form .form-row .select2-container{width:100%;line-height:2em}.woocommerce form .form-row.woocommerce-invalid label{color:#a00}.woocommerce form .form-row.woocommerce-invalid .select2-container,.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:#a00}.woocommerce form .form-row.woocommerce-validated .select2-container,.woocommerce form .form-row.woocommerce-validated input.input-text,.woocommerce form .form-row.woocommerce-validated select{border-color:#69bf29}.woocommerce form .form-row ::-webkit-input-placeholder{line-height:normal}.woocommerce form .form-row :-moz-placeholder{line-height:normal}.woocommerce form .form-row :-ms-input-placeholder{line-height:normal}.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{border:1px solid #d3ced2;padding:20px;margin:2em 0;text-align:left;border-radius:5px}.woocommerce ul#shipping_method{list-style:none;margin:0;padding:0}.woocommerce ul#shipping_method li{margin:0;padding:.25em 0 .25em 22px;text-indent:-22px;list-style:none}.woocommerce ul#shipping_method li input{margin:3px .5ex}.woocommerce ul#shipping_method li label{display:inline}.woocommerce ul#shipping_method .amount{font-weight:700}.woocommerce p.woocommerce-shipping-contents{margin:0}.woocommerce .order_details{margin:0 0 1.5em;list-style:none}.woocommerce .order_details:after,.woocommerce .order_details:before{content:" ";display:table}.woocommerce .order_details li{float:left;margin-right:2em;text-transform:uppercase;font-size:.715em;line-height:1;border-right:1px dashed #d3ced2;padding-right:2em;margin-left:0;padding-left:0;list-style-type:none}.woocommerce .order_details li strong{display:block;font-size:1.4em;text-transform:none;line-height:1.5}.woocommerce .order_details li:last-of-type{border:none}.woocommerce .widget_layered_nav ul{margin:0;padding:0;border:0;list-style:none}.woocommerce .widget_layered_nav ul li{padding:0 0 1px;list-style:none}.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_layered_nav ul li:before{content:" ";display:table}.woocommerce .widget_layered_nav ul li.chosen a:before,.woocommerce .widget_layered_nav_filters ul li a:before{line-height:1;content:"";font-family:WooCommerce;font-weight:400;color:#a00;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-decoration:none}.woocommerce .widget_layered_nav ul li a,.woocommerce .widget_layered_nav ul li span{padding:1px 0}.woocommerce .widget_layered_nav ul li.chosen a:before{margin-right:.618em}.woocommerce .widget_layered_nav_filters ul{margin:0;padding:0;border:0;list-style:none;overflow:hidden;zoom:1}.woocommerce .widget_layered_nav_filters ul li{float:left;padding:0 1px 1px 0;list-style:none}.woocommerce .widget_layered_nav_filters ul li a{text-decoration:none}.woocommerce .widget_layered_nav_filters ul li a:before{margin-right:.618em}.woocommerce .widget_price_filter .price_slider{margin-bottom:1em}.woocommerce .widget_price_filter .price_slider_amount{text-align:right;line-height:2.4;font-size:.8751em}.woocommerce .widget_price_filter .price_slider_amount .button{font-size:1.15em;float:left}.woocommerce .widget_price_filter .ui-slider{position:relative;text-align:left;margin-left:.5em;margin-right:.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;background-color:#a46497;border-radius:1em;cursor:ew-resize;outline:0;top:-.3em;margin-left:-.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;border-radius:1em;background-color:#a46497}.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{border-radius:1em;background-color:#602053;border:0}.woocommerce .widget_price_filter .ui-slider-horizontal{height:.5em}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-min{left:-1px}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-max{right:-1px}.woocommerce .widget_rating_filter ul{margin:0;padding:0;border:0;list-style:none}.woocommerce .widget_rating_filter ul li{padding:0 0 1px;list-style:none}.woocommerce .widget_rating_filter ul li:after,.woocommerce .widget_rating_filter ul li:before{content:" ";display:table}.woocommerce .widget_rating_filter ul li a{padding:1px 0;text-decoration:none}.woocommerce .widget_rating_filter ul li .star-rating{float:none;display:inline-block}.woocommerce .widget_rating_filter ul li.chosen a:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none;color:#a00}.woocommerce-error,.woocommerce-info,.woocommerce-message{padding:1em 2em 1em 3.5em!important;margin:0 0 2em!important;position:relative;background-color:#f7f6f7;color:#515151;border-top:3px solid #a46497;list-style:none!important;width:auto;word-wrap:break-word}.woocommerce-error:after,.woocommerce-error:before,.woocommerce-info:after,.woocommerce-info:before,.woocommerce-message:after,.woocommerce-message:before{content:" ";display:table}.woocommerce-error:before,.woocommerce-info:before,.woocommerce-message:before{font-family:WooCommerce;content:"\e028";display:inline-block;position:absolute;top:1em;left:1.5em}.woocommerce-error .button,.woocommerce-info .button,.woocommerce-message .button{float:right}.woocommerce-error li,.woocommerce-info li,.woocommerce-message li{list-style:none!important;padding-left:0!important;margin-left:0!important}.woocommerce-message{border-top-color:#8fae1b}.woocommerce-message:before{content:"\e015";color:#8fae1b}.woocommerce-info{border-top-color:#1e85be}.woocommerce-info:before{color:#1e85be}.woocommerce-error{border-top-color:#b81c23}.woocommerce-error:before{content:"\e016";color:#b81c23}.woocommerce-account .addresses .title:after,.woocommerce-account .addresses .title:before,.woocommerce-account .woocommerce:after,.woocommerce-account .woocommerce:before{content:" ";display:table}.woocommerce-account .addresses .title h3{float:left}.woocommerce-account .addresses .title .edit,.woocommerce-account ul.digital-downloads li .count{float:right}.woocommerce-account ol.commentlist.notes li.note p.meta{font-weight:700;margin-bottom:0}.woocommerce-account ol.commentlist.notes li.note .description p:last-child{margin-bottom:0}.woocommerce-account ul.digital-downloads{margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li{list-style:none;margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}#add_payment_method table.cart .product-thumbnail,.woocommerce-cart table.cart .product-thumbnail,.woocommerce-checkout table.cart .product-thumbnail{min-width:32px}#add_payment_method table.cart img,.woocommerce-cart table.cart img,.woocommerce-checkout table.cart img{width:32px;box-shadow:none}#add_payment_method table.cart td,#add_payment_method table.cart th,.woocommerce-cart table.cart td,.woocommerce-cart table.cart th,.woocommerce-checkout table.cart td,.woocommerce-checkout table.cart th{vertical-align:middle}#add_payment_method table.cart td.actions .coupon .input-text,.woocommerce-cart table.cart td.actions .coupon .input-text,.woocommerce-checkout table.cart td.actions .coupon .input-text{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d3ced2;padding:6px 6px 5px;margin:0 4px 0 0;outline:0;line-height:1}#add_payment_method table.cart input,.woocommerce-cart table.cart input,.woocommerce-checkout table.cart input{margin:0;vertical-align:middle;line-height:1}#add_payment_method .wc-proceed-to-checkout,.woocommerce-cart .wc-proceed-to-checkout,.woocommerce-checkout .wc-proceed-to-checkout{padding:1em 0}#add_payment_method .wc-proceed-to-checkout:after,#add_payment_method .wc-proceed-to-checkout:before,.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce-cart .wc-proceed-to-checkout:before,.woocommerce-checkout .wc-proceed-to-checkout:after,.woocommerce-checkout .wc-proceed-to-checkout:before{content:" ";display:table}#add_payment_method .wc-proceed-to-checkout a.checkout-button,.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button{display:block;text-align:center;margin-bottom:1em;font-size:1.25em;padding:1em}#add_payment_method .cart-collaterals .shipping_calculator .button,.woocommerce-cart .cart-collaterals .shipping_calculator .button,.woocommerce-checkout .cart-collaterals .shipping_calculator .button{width:100%;float:none;display:block}#add_payment_method .cart-collaterals .shipping_calculator .shipping-calculator-button:after,.woocommerce-cart .cart-collaterals .shipping_calculator .shipping-calculator-button:after,.woocommerce-checkout .cart-collaterals .shipping_calculator .shipping-calculator-button:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none}#add_payment_method #payment ul.payment_methods li:after,#add_payment_method #payment ul.payment_methods li:before,#add_payment_method #payment ul.payment_methods:after,#add_payment_method #payment ul.payment_methods:before,.woocommerce-cart #payment ul.payment_methods li:after,.woocommerce-cart #payment ul.payment_methods li:before,.woocommerce-cart #payment ul.payment_methods:after,.woocommerce-cart #payment ul.payment_methods:before,.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods li:before,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout #payment ul.payment_methods:before{content:" ";display:table}#add_payment_method .cart-collaterals .cart_totals p small,.woocommerce-cart .cart-collaterals .cart_totals p small,.woocommerce-checkout .cart-collaterals .cart_totals p small{color:#777;font-size:.83em}#add_payment_method .cart-collaterals .cart_totals table,.woocommerce-cart .cart-collaterals .cart_totals table,.woocommerce-checkout .cart-collaterals .cart_totals table{border-collapse:separate;margin:0 0 6px;padding:0}#add_payment_method .cart-collaterals .cart_totals table tr:first-child td,#add_payment_method .cart-collaterals .cart_totals table tr:first-child th,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child th,.woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child th{border-top:0}#add_payment_method .cart-collaterals .cart_totals table th,.woocommerce-cart .cart-collaterals .cart_totals table th,.woocommerce-checkout .cart-collaterals .cart_totals table th{width:40%}#add_payment_method .cart-collaterals .cart_totals table td,#add_payment_method .cart-collaterals .cart_totals table th,.woocommerce-cart .cart-collaterals .cart_totals table td,.woocommerce-cart .cart-collaterals .cart_totals table th,.woocommerce-checkout .cart-collaterals .cart_totals table td,.woocommerce-checkout .cart-collaterals .cart_totals table th{vertical-align:top;border-left:0;border-right:0;line-height:1.5em}#add_payment_method .cart-collaterals .cart_totals table small,.woocommerce-cart .cart-collaterals .cart_totals table small,.woocommerce-checkout .cart-collaterals .cart_totals table small{color:#777}#add_payment_method .cart-collaterals .cart_totals table select,.woocommerce-cart .cart-collaterals .cart_totals table select,.woocommerce-checkout .cart-collaterals .cart_totals table select{width:100%}#add_payment_method .cart-collaterals .cart_totals .discount td,.woocommerce-cart .cart-collaterals .cart_totals .discount td,.woocommerce-checkout .cart-collaterals .cart_totals .discount td{color:#77a464}#add_payment_method .cart-collaterals .cart_totals tr td,#add_payment_method .cart-collaterals .cart_totals tr th,.woocommerce-cart .cart-collaterals .cart_totals tr td,.woocommerce-cart .cart-collaterals .cart_totals tr th,.woocommerce-checkout .cart-collaterals .cart_totals tr td,.woocommerce-checkout .cart-collaterals .cart_totals tr th{border-top:1px solid #ebe9eb}#add_payment_method .cart-collaterals .cross-sells ul.products li.product,.woocommerce-cart .cart-collaterals .cross-sells ul.products li.product,.woocommerce-checkout .cart-collaterals .cross-sells ul.products li.product{margin-top:0}#add_payment_method .checkout .col-2 h3#ship-to-different-address,.woocommerce-cart .checkout .col-2 h3#ship-to-different-address,.woocommerce-checkout .checkout .col-2 h3#ship-to-different-address{float:left;clear:none}#add_payment_method .checkout .col-2 .form-row-first,#add_payment_method .checkout .col-2 .notes,.woocommerce-cart .checkout .col-2 .form-row-first,.woocommerce-cart .checkout .col-2 .notes,.woocommerce-checkout .checkout .col-2 .form-row-first,.woocommerce-checkout .checkout .col-2 .notes{clear:left}#add_payment_method .checkout .create-account small,.woocommerce-cart .checkout .create-account small,.woocommerce-checkout .checkout .create-account small{font-size:11px;color:#777;font-weight:400}#add_payment_method .checkout div.shipping-address,.woocommerce-cart .checkout div.shipping-address,.woocommerce-checkout .checkout div.shipping-address{padding:0;clear:left;width:100%}#add_payment_method #payment ul.payment_methods li:after,#add_payment_method #payment ul.payment_methods:after,#add_payment_method .checkout .shipping_address,.single-product .twentythirteen p.stars,.woocommerce-cart #payment ul.payment_methods li:after,.woocommerce-cart #payment ul.payment_methods:after,.woocommerce-cart .checkout .shipping_address,.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout .checkout .shipping_address{clear:both}#add_payment_method #payment,.woocommerce-cart #payment,.woocommerce-checkout #payment{background:#ebe9eb;border-radius:5px}#add_payment_method #payment ul.payment_methods,.woocommerce-cart #payment ul.payment_methods,.woocommerce-checkout #payment ul.payment_methods{text-align:left;padding:1em;border-bottom:1px solid #d3ced2;margin:0;list-style:none}#add_payment_method #payment ul.payment_methods li,.woocommerce-cart #payment ul.payment_methods li,.woocommerce-checkout #payment ul.payment_methods li{line-height:2;text-align:left;margin:0;font-weight:400}#add_payment_method #payment ul.payment_methods li input,.woocommerce-cart #payment ul.payment_methods li input,.woocommerce-checkout #payment ul.payment_methods li input{margin:0 1em 0 0}#add_payment_method #payment ul.payment_methods li img,.woocommerce-cart #payment ul.payment_methods li img,.woocommerce-checkout #payment ul.payment_methods li img{vertical-align:middle;margin:-2px 0 0 .5em;padding:0;position:relative;box-shadow:none}#add_payment_method #payment ul.payment_methods li img+img,.woocommerce-cart #payment ul.payment_methods li img+img,.woocommerce-checkout #payment ul.payment_methods li img+img{margin-left:2px}#add_payment_method #payment div.form-row,.woocommerce-cart #payment div.form-row,.woocommerce-checkout #payment div.form-row{padding:1em}#add_payment_method #payment div.payment_box,.woocommerce-cart #payment div.payment_box,.woocommerce-checkout #payment div.payment_box{position:relative;box-sizing:border-box;width:100%;padding:1em;margin:1em 0;font-size:.92em;border-radius:2px;line-height:1.5;background-color:#dfdcde;color:#515151}#add_payment_method #payment div.payment_box input.input-text,#add_payment_method #payment div.payment_box textarea,.woocommerce-cart #payment div.payment_box input.input-text,.woocommerce-cart #payment div.payment_box textarea,.woocommerce-checkout #payment div.payment_box input.input-text,.woocommerce-checkout #payment div.payment_box textarea{border-color:#bbb3b9 #c7c1c6 #c7c1c6}#add_payment_method #payment div.payment_box ::-webkit-input-placeholder,.woocommerce-cart #payment div.payment_box ::-webkit-input-placeholder,.woocommerce-checkout #payment div.payment_box ::-webkit-input-placeholder{color:#bbb3b9}#add_payment_method #payment div.payment_box :-moz-placeholder,.woocommerce-cart #payment div.payment_box :-moz-placeholder,.woocommerce-checkout #payment div.payment_box :-moz-placeholder{color:#bbb3b9}#add_payment_method #payment div.payment_box :-ms-input-placeholder,.woocommerce-cart #payment div.payment_box :-ms-input-placeholder,.woocommerce-checkout #payment div.payment_box :-ms-input-placeholder{color:#bbb3b9}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods{list-style:none;margin:0}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token{margin:0 0 .5em}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label{cursor:pointer}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput{vertical-align:middle;margin:-3px 1em 0 0;position:relative}#add_payment_method #payment div.payment_box .wc-credit-card-form,.woocommerce-cart #payment div.payment_box .wc-credit-card-form,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form{border:0;padding:0;margin:1em 0 0}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number{font-size:1.5em;padding:8px;background-repeat:no-repeat;background-position:right .618em center;background-size:32px 20px}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.visa,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.visa,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.visa{background-image:url(../images/icons/credit-cards/visa.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.mastercard{background-image:url(../images/icons/credit-cards/mastercard.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.laser,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.laser,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.laser{background-image:url(../images/icons/credit-cards/laser.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.dinersclub{background-image:url(../images/icons/credit-cards/diners.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.maestro{background-image:url(../images/icons/credit-cards/maestro.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.jcb{background-image:url(../images/icons/credit-cards/jcb.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.amex,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.amex,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.amex{background-image:url(../images/icons/credit-cards/amex.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.discover,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.discover,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.discover{background-image:url(../images/icons/credit-cards/discover.svg)}#add_payment_method #payment div.payment_box span.help,.woocommerce-cart #payment div.payment_box span.help,.woocommerce-checkout #payment div.payment_box span.help{font-size:.857em;color:#777;font-weight:400}#add_payment_method #payment div.payment_box .form-row,.woocommerce-cart #payment div.payment_box .form-row,.woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 1em}#add_payment_method #payment div.payment_box p:last-child,.woocommerce-cart #payment div.payment_box p:last-child,.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0}#add_payment_method #payment div.payment_box:before,.woocommerce-cart #payment div.payment_box:before,.woocommerce-checkout #payment div.payment_box:before{content:"";display:block;border:1em solid #dfdcde;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}#add_payment_method #payment .payment_method_paypal .about_paypal,.woocommerce-cart #payment .payment_method_paypal .about_paypal,.woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:right;line-height:52px;font-size:.83em}#add_payment_method #payment .payment_method_paypal img,.woocommerce-cart #payment .payment_method_paypal img,.woocommerce-checkout #payment .payment_method_paypal img{max-height:52px;vertical-align:middle}.woocommerce-password-strength{text-align:center;font-weight:600;padding:3px .5em;font-size:1em}.woocommerce-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.woocommerce-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.woocommerce-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.woocommerce-password-strength.good{background-color:#ffe399;border-color:#ffc733}.woocommerce-password-hint{margin:.5em 0 0;display:block}.product.has-default-attributes.has-children>.images{opacity:0}#content.twentyeleven .woocommerce-pagination a{font-size:1em;line-height:1}.single-product .twentythirteen #reply-title,.single-product .twentythirteen #respond #commentform,.single-product .twentythirteen .entry-summary{padding:0}.twentythirteen .woocommerce-breadcrumb{padding-top:40px}.twentyfourteen ul.products li.product{margin-top:0!important}body:not(.search-results) .twentysixteen .entry-summary{color:inherit;font-size:inherit;line-height:inherit}.twentysixteen .price ins{background:inherit;color:inherit}assets/css/auth.scss000066600000004273152133032050010500 0ustar00body { background: #f1f1f1; box-shadow: none; margin: 100px auto 24px; padding: 0; } #wc-logo { border: 0; margin: 0 0 24px; padding: 0; text-align: center; img { max-width: 50%; } } .wc-auth-content { background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.13); overflow: hidden; padding: 24px 24px 0; zoom: 1; h1, h2, h3, table { border: 0; clear: none; color: #666; margin: 0 0 24px; padding: 0; } p, ul { color: #666; font-size: 1em; line-height: 1.75em; margin: 0 0 24px; } p { padding: 0; } a { color: #A16696; &:hover, &:focus { color: #111; } } .wc-auth-login { label { color: #999; display: block; margin-bottom: .5em; } input { box-sizing: border-box; font-size: 1.3em; padding: .5em; width: 100%; } .wc-auth-actions { padding: 0; .wc-auth-login-button { float: none; width: 100%; } } } } .wc-auth-permissions { list-style: disc inside; padding: 0; li { font-size: 1em; } } .wc-auth-logged-in-as { background: #f5f5f5; border-bottom: 2px solid #eee; line-height: 70px; margin: 0 0 24px; padding: 0 1em 0 0; p { margin: 0; line-height: 70px; } img { float: left; height: 70px; margin: 0 1em 0 0; } .wc-auth-logout { float: right; } } .wc-auth .wc-auth-actions { overflow: hidden; padding-left: 24px; .button { background: #f7f7f7; border-bottom-width: 2px; border: 1px solid #d7d7d7; box-sizing: border-box; color: #777; float: right; font-size: 1.25em; height: auto; line-height: 1em; padding: 1em 2em; text-align: center; width: 50%; &:hover, &:focus { background: #fcfcfc; } } .button-primary { background: #ad6ea1; border-color: #a16696; -webkit-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 0 rgba( 0, 0, 0, 0.15 ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 0 rgba( 0, 0, 0, 0.15 ); color: #fff; float: right; opacity: 1; text-shadow: 0px -1px 1px #8a4f7f, 1px 0px 1px #8a4f7f, 0px 1px 1px #8a4f7f, -1px 0px 1px #8a4f7f; &:hover, &:focus { background: #B472A8; color: #fff; } } .wc-auth-approve { float: right; } .wc-auth-deny { float: left; margin-left: -24px; } } assets/css/_variables.scss000066600000001642152133032050011643 0ustar00/** * WooCommerce CSS Variables */ $woocommerce: #a46497; $green: #7ad03a; $red: #a00; $orange: #ffba00; $blue: #2ea2cc; $primary: #a46497; // Primary colour for buttons (alt) $primarytext: desaturate(lighten($primary, 50%), 18%); // Text on primary colour bg $secondary: desaturate(lighten($primary, 40%), 21%); // Secondary buttons $secondarytext: desaturate(darken($secondary, 60%), 21%); // Text on secondary colour bg $highlight: adjust-hue($primary, 150deg); // Prices, In stock labels, sales flash $highlightext: desaturate(lighten($highlight, 50%), 18%); // Text on highlight colour bg $contentbg: #fff; // Content BG - Tabs (active state) $subtext: #777; // small, breadcrumbs etcreadme.txt000066600000066356152133032050006560 0ustar00=== WooCommerce === Contributors: automattic, mikejolley, jameskoster, claudiosanches, jshreve, coderkevin, woothemes, icaleb Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront Requires at least: 4.4 Tested up to: 4.7 Stable tag: 2.6.14 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html WooCommerce is a powerful, extendable eCommerce plugin that helps you sell anything. Beautifully. == Description == WooCommerce is a free eCommerce plugin that allows you to sell anything, beautifully. Built to integrate seamlessly with WordPress, WooCommerce is the world’s favorite eCommerce solution that gives both store owners and developers complete control. With endless flexibility and access to hundreds of free and premium WordPress extensions, WooCommerce now powers 30% of all online stores -- more than any other platform. [youtube https://www.youtube.com/watch?v=1KahlicghaE] = Sell anything, anywhere = With WooCommerce, you can sell both physical and digital goods in all shapes and sizes, offer product variations, multiple configurations, and instant downloads to shoppers, and even sell affiliate goods from online marketplaces. With premium extensions, you can offer bookings, memberships, and recurring subscriptions. Perhaps you’d like to sell monthly subscriptions for physical goods, or offer your members a discount on digital downloads? It’s all possible. = Ship wherever you like = Offer free shipping, flat rate shipping, or make real-time calculations. Limit your shipments to specific countries, or open your store up to the world. Shipping is highly configurable, and WooCommerce even supports drop shipping. = Extensive payment options = WooCommerce comes bundled with the ability to accept major credit cards, PayPal, BACS (bank transfers), and cash on delivery. Need additional options? More than 140 region-specific gateways integrate with WooCommerce, including popular choices like Stripe, Authorize.Net, and Amazon Payments. = You control it all -- forever = WooCommerce gives you complete control of your store, from taxes to stock levels to customer accounts. Add and remove extensions, change your design, and switch settings as you please. It’s all under your control. One of the biggest risks of using a hosted eCommerce platform is what happens to your store if the provider closes up shop. With WooCommerce, you have complete control, so there’s never any reason to worry. Your data belongs to you -- and it’s kept secure, thanks to regular audits by industry leaders. = Define your style with Storefront = [Storefront](https://wordpress.org/themes/storefront/) is a free WordPress theme available to any WooCommerce store. Along with deep WooCommerce integration, Storefront prioritizes speed and uptime while eliminating theme and plugin conflicts during major updates. Define your style even further by customizing Storefront to your liking or choosing from one of our several [Storefront child themes](https://woocommerce.com/product-category/themes/storefront-child-theme-themes/). It’s all up to you, and all open source. = Built with developers in mind = Extendable, adaptable, and open source -- WooCommerce was created with developers in mind. With its strong, robust framework, you can scale your client’s store all the way from basic to high-end (infinity and beyond). Built with a REST API, WooCommerce can integrate with virtually any service. Your store’s data can be accessed anywhere, anytime, 100% securely. WooCommerce allows developers to easily create, modify, and grow a store that meets their specifications. No matter the size of the store you want to build, WooCommerce will scale to meet your requirements. With a growing collection of more than 300 extensions, you can enhance each store’s features to meet your client’s unique needs -- or even create your own solution. If security is a concern, rest easy. WooCommerce is audited by a dedicated team of developers working around the clock to identify and patch any and all discovered bugs. We also support WooCommerce and all its extensions with comprehensive, easily-accessible documentation. With our docs, you’ll learn how to create the exact site your client needs. = Extensions galore = WordPress.org is home to some amazing extensions for WooCommerce, including: - [Google Analytics](https://wordpress.org/plugins/woocommerce-google-analytics-integration/) - [Delivery Notes](https://wordpress.org/plugins/woocommerce-delivery-notes/) - [PDF Invoices and Packing Slips](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/) - [Affiliates Integration Light](https://wordpress.org/plugins/affiliates-woocommerce-light/) - [New Product Badges](https://wordpress.org/plugins/woocommerce-new-product-badge/) Keen to see them all? Search WordPress.org for ‘WooCommerce’ to dive in. If you’re looking for something endorsed and maintained by the developers who built WooCommerce, there are a plethora of premium eCommerce extensions, the most popular of which include: - [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/) - [WooCommerce Memberships](https://woocommerce.com/products/woocommerce-memberships/) - [WooCommerce Bookings](https://woocommerce.com/products/woocommerce-bookings/) - [Dynamic Pricing](https://woocommerce.com/products/dynamic-pricing/) - [Table Rate Shipping](https://woocommerce.com/products/table-rate-shipping/) - [Product CSV Import Suite](https://woocommerce.com/products/product-csv-import-suite/) And there’s plenty more where they came from. Visit our [extensions page](https://woocommerce.com/product-category/woocommerce-extensions/) to find out everything you’re capable of and all that's possible with premium WooCommerce extensions. = Join our growing community = When you download WooCommerce, you join a community of more than a million store owners, developers, and WordPress enthusiasts. We’re one of the fastest-growing open source communities online, and whether you’re a n00b or a Ninja, we’d love to have you! If you’re interested in contributing to WooCommerce we’ve got more than 350 contributors, and there’s always room for more. Head over to the [WooCommerce GitHub Repository](https://github.com/woocommerce/woocommerce) to find out how you can pitch in. Want to add a new language to WooCommerce? Swell! You can contribute via [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/woocommerce). And, finally, consider joining or spearheading a WooCommerce Meetup locally, more about those [here](https://woocommerce.com/woocommerce/meetups/). == Installation == = Minimum Requirements = * WordPress 3.8 or greater * PHP version 5.2.4 or greater * MySQL version 5.0 or greater * Some payment gateways require fsockopen support (for IPN access) = Automatic installation = Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New. In the search field type “WooCommerce” and click Search Plugins. Once you’ve found our eCommerce plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”. = Manual installation = The manual installation method involves downloading our eCommerce plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains [instructions on how to do this here](https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation). = Updating = Automatic updates should work like a charm; as always though, ensure you backup your site just in case. If on the off-chance you do encounter issues with the shop/category pages after an update you simply need to flush the permalinks by going to WordPress > Settings > Permalinks and hitting 'save'. That should return things to normal. = Dummy data = WooCommerce comes with some dummy data you can use to see how products look; either import dummy_data.xml via the [WordPress importer](https://wordpress.org/extend/plugins/wordpress-importer/) or use our [CSV Import Suite plugin](https://woocommerce.com/products/product-csv-import-suite/) to import dummy_data.csv and dummy_data_variations.csv. == Frequently Asked Questions == = Where can I find WooCommerce documentation and user guides? = For help setting up and configuring WooCommerce please refer to our [user guide](https://docs.woocommerce.com/documentation/plugins/woocommerce/getting-started/) For extending or theming WooCommerce, see our [codex](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/). = Where can I get support or talk to other users? = If you get stuck, you can ask for help in the [WooCommerce Plugin Forum](https://wordpress.org/support/plugin/woocommerce). For help with premium extensions from WooCommerce.com, use [our helpdesk](https://woocommerce.com/my-account/tickets/). = Will WooCommerce work with my theme? = Yes; WooCommerce will work with any theme, but may require some styling to make it match nicely. Please see our [codex](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/) for help. If you're looking for a theme with built in WooCommerce integration we recommend [Storefront](https://woocommerce.com/storefront/). = Where can I request new features, eCommerce themes and extensions? = You can vote on and request new features and extensions in our [WooIdeas board](http://ideas.woothemes.com/forums/133476-woocommerce) = Where can I report bugs or contribute to the project? = Bugs can be reported either in our support forum or preferably on the [WooCommerce GitHub repository](https://github.com/woocommerce/woocommerce/issues). = Where can I find the REST API documentation? = You can find the documentation of our REST API on the [WooCommerce REST API Docs](https://woocommerce.github.io/woocommerce-rest-api-docs/). = WooCommerce is awesome! Can I contribute? = Yes you can! Join in on our [GitHub repository](http://github.com/woocommerce/woocommerce/) :) == Screenshots == 1. The slick WooCommerce settings panel. 2. WooCommerce products admin. 3. Product data panel. 4. WooCommerce sales reports. 5. A single product page. 6. A product archive (grid). == Changelog == = 2.6.14 - 2017-02-02 = * Fix - Ensure product exists in wc_update_product_stock. * Fix - Send emails using the site language. * Fix - Remove tilde typo. * Fix - Fixed notice in get_rating_count. * Tweak - Define arg and return data types, added extra descriptions, and correctly cast IDs in the Rest API. * Tweak - Handle custom error data in WC_REST_Exception. * Tweak - Display conflicted product ID when using a duplicate SKU via the API. * Localisation - Add Finnish defaults to the installer. = 2.6.13 - 2017-01-18 = * Fix - Demo store banner styling in 2017. * Fix - Removed default instructions from COD, BACS and Cheque gateways so displayed messages can be unset. * Fix - Made variation options update on first load. * Localisation - Added Romanian locale to the installer. = 2.6.12 - 2017-01-12 = * Fix - Make images shown up on pageload when using ajax variations. * Fix - Allow variations options to be deselected in IE11. * Fix - Disabled-button and pagination styling in 2017. * Fix - PHP 7.1 compatibility issues with non-numeric math operations. * Fix - Fix notices in abstract class when price is empty. = 2.6.11 - 2016-12-22 = * Fix - Variation form compatibility with quotes in attribute values, and initial variation image fadeIn on certain configs. = 2.6.10 - 2016-12-22 = * Fix - Flat rate no class costs when no shipping classes exist. * Fix - Returned REST API coupon expiry date. * Fix - reviews_allowed being set to false in Rest API. * Fix - Sales date series for some custom ranges. * Fix - Missing attributes when an option is chosen by default on variations. This was the result of a Firefox 50 compatibility fix. In order to support both Firefox, Chrome, IE, and Edge we've done some refactoring of the variation add to cart scripts. * Tweak - Updated Geo IP API services. * Dev - Added support for WP VIP/VIP GO GEO IP headers. * Dev - API - Throw error messages when product image ID is not a valid WordPress attachment ID. = 2.6.9 - 2016-12-07 = * Theme - Added support for Twenty Seventeen Theme. * Fix - Excluded webhook delivery logs from comments count. * Fix - Included password strength meter in "Lost Password" page. * Fix - Order fee currency in admin screen. * Fix - Variation selection on Firefox 40. * Fix - Don't prevent submission when table is not found on cart. * Fix - Improved layered nav counts on attribute archives. * Fix - Fixed pagination when removing layered nav items via widget. * Fix - Default BE tax rate. * Fix - Downloads should store variation ID rather than product if set. Also fixes link on account page. * Fix - Use wp_list_sort instead of _usort_terms_by_ID to be compatible with 4.7. * Fix - Only return empty string if empty for weight and dimension functions. * Fix - Added correct fallbacks for logout/lost password URLs when endpoints are not defined. * Security - Wrapped admin tax rate table values in _escape to thwart evil CSVs an admin user could upload. Vulnerability was discovered by Fortinet’s FortiGuard Labs. * Dev - API - Only update categories menu order and display if defined. * Dev - Fixed when should deliver wp_trash_post webhooks. = 2.6.8 - 2016-11-10 = * Fix - REQUEST_URI was missing a trailing slash when being compared in the cache prevention functions. * Fix - Prevent issues when sending empty prices to PayPal. * Fix - Invalid email check. * Tweak - New extensions screen. = 2.6.7 - 2016-10-26 = * Fix - Use FLOOR and CEIL to get price filter values. Fixes the issue where max price is capped at 99. * Fix - Hide "Sales this month" information from Dashboard widget for users that don't have `view_woocommerce_reports` capability. * Fix - Remove notices only once on cart so subsequent notices do not remove older notices. * Tweak - Improve credit card fields for better mobile experience. = 2.6.6 - 2016-10-20 = * Fix - Conflict with Local Pickup Plus extension due to 2.7.x code in has_shipping_method(). * Fix - Shipping method display order on frontend. = 2.6.5 - 2016-10-19 = * Fix - Shipping classes URL in admin. * Fix - Notice in reports when using custom date ranges. * Fix - When checking needs_shipping, ignore anything after : in the method ID. * Fix - Allow has_shipping_method to work with instances. * Fix - Potential notice in wc_add_to_cart_message(). * Fix - Prevent notice in wpdb_table_fix if termmeta table is not used. * Fix - Payment method box fixes e.g. maintain previously selected payment method after update. * Fix - Prevent multiple password validation methods at once on my account page. * Fix - Ship to specific counties option had no effect. * Fix - Broken Webhook delivery due to use of post_date_gmt which does not exist for drafts. * Fix - Use method title in admin shipping dropdown. * Fix - Fixed downloadable variable product URL. * Fix - Handle object when generate_cart_id is used to prevent notices. * Fix - Set header link color in emails. * Fix - Rest of the world ID 0 zone handling when using CRUD classes. * Fix - Cast prices as decimal when querying prices in price filter widget. * Fix - API - Fix coupon description field. * Fix - API - ID needs to be capitalized to allow correct sorting. * Fix - API - Fixed undefined order ID. * Fix - API - Allow API to save refund reason. * Fix - API - Resolved encoding issues with attribute and variation slugs. * Fix - API - get_attributes should return term name, not slug. * Fix - API - Product "filter" and "sku" paramaters. * Fix - Handle info notices in cart, not just error messages. * Fix - Don't remove hyphens in attribute labels. * Fix - Start sales on variations after they are saved, if applicable. * Fix - Made the text showing max variations you can link match the actual filtered value. * Fix - Add missing tables to wpmu_drop_tables function. * Fix - When syncing variation stock, ensure post is a variation. * Fix - Resolved some sales by date sum issues. * Fix - Fix cart update in IE when enter key is pressed. * Fix - Variation is_on_backorder when parent manages stock. * Fix - Fix variation script malfunctioning when show_option_none arg is set to false. * Fix - Fire tokenisation event on load for pay page. * Fix - Populate attribute dropdown when empty. * Fix - Fix email check on my account page. * Fix - Send processing email on on-hold to processing transition. * Fix - Incompatibility with SQLite databases. * Fix - KGS and ISK currency symbols. * Tweak - Password reset now uses WP functions. * Tweak - Format US 9-digit postcodes. = 2.6.4 - 2016-07-26 = * Fix - Security - Only allow image MIME type upload via REST APIs. * Fix - Shipping method title display in COD settings. * Fix - Order date input in Edge browser. * Fix - Ensure value is not null in variations to support empty show_option_none setting. * Fix - get_the_title does not need escape in grouped template file. * Fix - Ensure WC_ROUNDING_PRECISION is defined and use it as a low precision boundary in wc_get_rounding_precision(). * Fix - Response body should be a string in webhook class. * Fix - Use h2 instead of h3 headings in profile screen. * Dev - API - Allow Allow meta_key/value filters for products. * Dev - CLI - Explode tags and category IDs to allow multiple comma separated values. * Dev - add $order arg to woocommerce_admin_order_item_class and woocommerce_admin_html_order_item_class filters. = 2.6.3 - 2016-07-19 = * Fix - Security - Escape captions in product-thumbnail and product-image templates (template versions have been bumped). * Fix - Fixed how we calculate shipping tax rates when using more than one tax class. * Fix - When duplicating product variations, set title, name, and guid. * Fix - Normalized 'read more' buttons. * Fix - Add to cart notices for grouped products. * Fix - Do not sanitize passwords in the settings API. * Fix - Handle shipping zone location range conversion during update (dashes to ...). * Fix - Always remove commas while processing flat rate costs. * Fix - Ensures account page layout is only applied to desktop-sized displays. * Fix - When getting layered nav counts, take search parameters into consideration. * Fix - Free shipping show/hide javascript. * Fix - Strip hash characters when exporting reports. * Fix - Use permission id to revoke access to downloads to prevent removing wrong rows. * Fix - When duplicating product variations, set title, name, and guid. * Fix - Set more appropriate default rounding precision based on currency decimal places. * Fix - Fix message styles for empty carts. * Fix - Fixed the load of the WC_Email_Customer_On_Hold_Order class. * Fix - Don't perform cart update on search submit. * Dev - API - Added support for WP REST API with custom URL prefixes. * Dev - API - Delete variations when deleting a variable product. * Dev - API - Fixed how we check for product types. * Dev - Added woocommerce_cart_id filter. * Dev - Add shortcode name param to shortcode_atts function calls. * Dev - Post custom data when fetching a variation via ajax. * Dev - Include child prices in grouped_price_html filter. * Dev - Allow filtering of variation stock quantity. * Dev - Added $_product argument to 'woocommerce_restock_refunded_item' hook. * Dev - Added a filter hook for the wc_ajax endpoint url. * Tweak - Include account page link in new customer account emails. * Tweak - Updated all URLs from WooThemes.com to WooCommerce.com. * Tweak - Cache the result of WC_Comments::wp_count_comments() in a transient (improves performance). = 2.6.2 - 2016-06-30 = * Fix - Set max index length on woocommerce_payment_tokenmeta table for utf8mb4 support. * Fix - is_available check for legacy shipping methods. * Fix - wc_add_to_cart_message() when non-array is passed. * Fix - Maximum coupon check should allow the 'maximum' value. * Fix - Product coupon logic to avoid applying non-applicable coupons. * Fix - Potential notices when leaving out 'default' field for shipping instances. * Fix - wp_cache_flush after term meta migration/update. * Fix - wc_add_to_cart_message() when non-array is passed. * Fix - woocommerce_redirect_single_search_result type check was incorrect. * Fix - Javascript show/hide of option in free shipping method. * Fix - Convert ellipsis to three periods when saving postcodes. * Fix - Prevent get_terms returning duplicates. * Fix - Removed non-existent country (Netherlands Antilles) from https://en.wikipedia.org/wiki/ISO_3166-1. * Fix - Grouped product range display when child is free. * Fix - Remove discount when checking free shipping min amount. * Fix - Prevent blocking the same element multiple times on cart page. * Fix - Don't sync ratings right after a new comment to prevent rating sync whilst rating meta does not exist yet. * Fix - Fix product RSS feeds when using shop base. * Fix - woocommerce_local_pickup_methods comparison by stripping instance IDs before the check. * Fix - During password resets, use cookie to store reset key and user login to avoid them being exposed in the URL/referer headers. * Dev - API - Fixed variable product stock at product level. * Dev - CLI - Introduces `woocommerce_cli_get_product_variable_types` filter. * Dev - Allow notices to be grouped on checkout after certain events. * Dev - API - Allows save images by ID with product variations. * Tweak - Made customer pay link display if order needs_payment() rather than checking pending status. * Tweak - Zones - Wording clarifications. * Tweak - Zones - Match zones with postcodes but no country. * Tweak - Zones - Match zones with no regions as 'everywhere'. * Tweak - Added view_admin_dashboard cap for disabling the admin access restriction in custom roles. * Tweak - Revised stock display based on feedback to hide 'in stock' message if stock management is off and only show available on backorder if notifying customer. * Tweak - Allow external product SKUs. * Tweak - PT (Portugal) and JP (Japan) postcode formats. * Tweak - Sort products from the `[product_category]` shortcode by menu order. * Tweak - Improve wc_orders_count() performance by running a query to count only posts of the given status. * Tweak - To allow my account page tabs to be disabled without code, you can now set the endpoint value to a blank string. = 2.6.1 - 2016-06-16 = * Fix - Added missing localized format for line taxes in orders screen to prevent total miscalculation in manual orders. * Fix - Improved the hour and time fields validation pattern on the orders screen. * Fix - PayPal does not allow free products, but paid shipping. Workaround by sending shipping as a line item if it is the only cost. * Fix - SKUs prop on products shortcode. * Fix - Layered nav counts when term_id does not match term_taxonomy_id (before splitting). * Fix - Fixed referer links from cart messages in WP 4.4. * Fix - Fix the showing/hiding of panels when terms do not exist by using wc_get_product_types() for retrieving product types. * Dev - content-product.php and content-product_cat.php contained the wrong version. * Dev - Show "matching zone" notice on the frontend when shipping debug mode is on. * Dev - Restored missing WC_Settings_API::init_form_fields() method to prevent potential errors in 3rd party gateways. * Dev - API - Fixed returned data from product images (changed `title` to `name`). * Dev - API - Fixed products schema for `grouped_products`. * Dev - API - Fixed products attribute options when contains `,`. * Tweak - Hide 'payment methods' screen if no methods support it. * Tweak - If shipping method count changes, reset to default. * Tweak - Avoid normalization of zone postcodes so wildcard matching can be performed on postcodes with spaces. E.g. SP1 * * Tweak - Allow max_fee in addition to min_fee in flat rate costs fields. * Tweak - Wrap order_schema_markup() output in hidden div in case script tag is stripped. = 2.6.0 - 2016-06-14 = * Feature - Introduced Shipping Zone functionality, and re-usable instance based shipping methods. * Feature - Tabbed "My Account" area. * Feature - Cart operations now use ajax (item quantities/remove, coupon apply/remove, shipping options). * Feature - Layered nav; filter by rating. * Feature - On-hold order emails. * Dev - All new REST API based on the WP REST API. The old WC REST API is still available, but the new one is preferred. * Dev - Added ability for shipping methods to store meta data to the order. * Dev - Added Payment Gateway Tokenization API for storing and retrieving tokens in a standardized manner. * Dev - Migrated custom term meta implementation to WP Term Meta. * Dev - Added new wc_get_orders() function to get order objects and ids instead of direct get_posts() calls. * Dev - Made coupon optional in cart has_discount() method. * Dev - Made the review template more editable. * Dev - Allowed product constructors to throw exceptions if invalid. * Dev - Wrapped currency symbols in a span to allow styling or replacement. * Fix - Update download permission user and email when changed. * Fix - Fixed shipping method unregistration. * Fix - Stopped create and update webhooks firing at the same time for products. * Fix - Allow COD to set on-hold status if the order contains downloads. * Fix - Force CURL to use TLS 1.2 for PayPal connections. * Tweak - Improved lost password flow. * Tweak - Show payment dates on order screen. * Tweak - Ignore catalog visibility on products shortcode when specifying IDs or SKUs. * Tweak - Added context to checkout error messages. * Tweak - Added SKU field to grouped products. * Tweak - Moved SKU field to inventory tab. * Tweak - Support qty display in cart messages. * Tweak - Hide min order amount field when not needed in shipping settings. * Tweak - If shipping < 999.99, use 'shipping' arg when passing values to PayPal. * Tweak - Show net sales on dashboard. * Tweak - Replaced credit card icons with SVG. * Tweak - Enqueue scripts on pages with checkout shortcodes. * Tweak - Color code the manual, system and customer notes. * Tweak - Layered Nav Refactoring to improve performance. * Tweak - Removed tag/cat classes from loops since WP does the same. * Tweak - Added hash check for orders so that if the cart changes before payment, a new order is made. * Tweak - Removed unused 'view mode' under screen options. * Tweak - Added 110 new currencies (including Bitcoin). * Tweak - New background updater for data upgrades. * Tweak - Blank slates in admin post screens. * Tweak - Added blockui when variations are being retrieved via ajax. * Tweak - Hide empty taxes by default (filterable). * Tweak - Allow failed orders to be edited. * Tweak - If there are no shipping methods setup, don’t prompt for shipping at checkout. * Tweak - Allowed country exclusion, rather than just inclusion, in ‘sell to’ setting. * Lots, lots more - [see the comparison here](https://github.com/woocommerce/woocommerce/compare/2.5.5...2.6.0). [See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce/master/CHANGELOG.txt). == Upgrade Notice == = 2.6 = 2.6 is a major update. It is important that you make backups and ensure themes and extensions are 2.6 compatible before upgrading, in particular shipping method extensions (e.g. Table Rate Shipping) since 2.6 introduces Shipping Zone functionality. [Read more here](https://woocommerce.wordpress.com/2016/06/14/say-hello-to-woocommerce-2-6-zipping-zebra/). i18n/continents.php000066600000006151152133032050010221 0ustar00 array( 'name' => __( 'Africa', 'woocommerce' ), 'countries' => array( 'AO', 'BF', 'BI', 'BJ', 'BW', 'CD', 'CF', 'CG', 'CI', 'CM', 'CV', 'DJ', 'DZ', 'EG', 'EH', 'ER', 'ET', 'GA', 'GH', 'GM', 'GN', 'GQ', 'GW', 'KE', 'KM', 'LR', 'LS', 'LY', 'MA', 'MG', 'ML', 'MR', 'MU', 'MW', 'MZ', 'NA', 'NE', 'NG', 'RE', 'RW', 'SC', 'SD', 'SH', 'SL', 'SN', 'SO', 'SS', 'ST', 'SZ', 'TD', 'TG', 'TN', 'TZ', 'UG', 'YT', 'ZA', 'ZM', 'ZW', ), ), 'AN' => array( 'name' => __( 'Antarctica', 'woocommerce' ), 'countries' => array( 'AQ', 'BV', 'GS', 'HM', 'TF', ), ), 'AS' => array( 'name' => __( 'Asia', 'woocommerce' ), 'countries' => array( 'AE', 'AF', 'AM', 'AZ', 'BD', 'BH', 'BN', 'BT', 'CC', 'CN', 'CX', 'CY', 'GE', 'HK', 'ID', 'IL', 'IN', 'IO', 'IQ', 'IR', 'JO', 'JP', 'KG', 'KH', 'KP', 'KR', 'KW', 'KZ', 'LA', 'LB', 'LK', 'MM', 'MN', 'MO', 'MV', 'MY', 'NP', 'OM', 'PH', 'PK', 'PS', 'QA', 'SA', 'SG', 'SY', 'TH', 'TJ', 'TL', 'TM', 'TW', 'UZ', 'VN', 'YE', ), ), 'EU' => array( 'name' => __( 'Europe', 'woocommerce' ), 'countries' => array( 'AD', 'AL', 'AT', 'AX', 'BA', 'BE', 'BG', 'BY', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FO', 'FR', 'GB', 'GG', 'GI', 'GR', 'HR', 'HU', 'IE', 'IM', 'IS', 'IT', 'JE', 'LI', 'LT', 'LU', 'LV', 'MC', 'MD', 'ME', 'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'RU', 'SE', 'SI', 'SJ', 'SK', 'SM', 'TR', 'UA', 'VA', ), ), 'NA' => array( 'name' => __( 'North America', 'woocommerce' ), 'countries' => array( 'AG', 'AI', 'AN', 'AW', 'BB', 'BL', 'BM', 'BQ', 'BS', 'BZ', 'CA', 'CR', 'CU', 'CW', 'DM', 'DO', 'GD', 'GL', 'GP', 'GT', 'HN', 'HT', 'JM', 'KN', 'KY', 'LC', 'MF', 'MQ', 'MS', 'MX', 'NI', 'PA', 'PM', 'PR', 'SV', 'SX', 'TC', 'TT', 'US', 'VC', 'VG', 'VI', ), ), 'OC' => array( 'name' => __( 'Oceania', 'woocommerce' ), 'countries' => array( 'AS', 'AU', 'CK', 'FJ', 'FM', 'GU', 'KI', 'MH', 'MP', 'NC', 'NF', 'NR', 'NU', 'NZ', 'PF', 'PG', 'PN', 'PW', 'SB', 'TK', 'TO', 'TV', 'UM', 'VU', 'WF', 'WS', ), ), 'SA' => array( 'name' => __( 'South America', 'woocommerce' ), 'countries' => array( 'AR', 'BO', 'BR', 'CL', 'CO', 'EC', 'FK', 'GF', 'GY', 'PE', 'PY', 'SR', 'UY', 'VE', ), ), ); i18n/locale-info.php000066600000050121152133032050010221 0ustar00 array( 'currency_code' => 'AUD', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'AU', 'state' => '', 'rate' => '10.0000', 'name' => 'GST', 'shipping' => true ) ) ) ), 'BD' => array( 'currency_code' => 'BDT', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'in', 'tax_rates' => array( '' => array( array( 'country' => 'BD', 'state' => '', 'rate' => '15.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'BE' => array( 'currency_code' => 'EUR', 'currency_pos' => 'left', 'thousand_sep' => ' ', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'BE', 'state' => '', 'rate' => '21.0000', 'name' => 'BTW', 'shipping' => true ) ) ) ), 'BR' => array( 'currency_code' => 'BRL', 'currency_pos' => 'left', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array() ), 'CA' => array( 'currency_code' => 'CAD', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( 'BC' => array( array( 'country' => 'CA', 'state' => 'BC', 'rate' => '7.0000', 'name' => _x( 'PST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => false, 'priority' => 2 ) ), 'SK' => array( array( 'country' => 'CA', 'state' => 'SK', 'rate' => '5.0000', 'name' => _x( 'PST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => false, 'priority' => 2 ) ), 'MB' => array( array( 'country' => 'CA', 'state' => 'MB', 'rate' => '8.0000', 'name' => _x( 'PST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => false, 'priority' => 2 ) ), 'QC' => array( array( 'country' => 'CA', 'state' => 'QC', 'rate' => '9.975', 'name' => _x( 'QST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => false, 'priority' => 2 ) ), '*' => array( array( 'country' => 'CA', 'state' => 'ON', 'rate' => '13.0000', 'name' => _x( 'HST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'NL', 'rate' => '13.0000', 'name' => _x( 'HST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'NB', 'rate' => '13.0000', 'name' => _x( 'HST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'PE', 'rate' => '14.0000', 'name' => _x( 'HST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'NS', 'rate' => '15.0000', 'name' => _x( 'HST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'AB', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'BC', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'NT', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'NU', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'YT', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'SK', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'MB', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ), array( 'country' => 'CA', 'state' => 'QC', 'rate' => '5.0000', 'name' => _x( 'GST', 'Canadian Tax Rates', 'woocommerce' ), 'shipping' => true ) ) ) ), 'DE' => array( 'currency_code' => 'EUR', 'currency_pos' => 'left', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'DE', 'state' => '', 'rate' => '19.0000', 'name' => 'Mwst.', 'shipping' => true ) ) ) ), 'ES' => array( 'currency_code' => 'EUR', 'currency_pos' => 'right', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'ES', 'state' => '', 'rate' => '21.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'FI' => array( 'currency_code' => 'EUR', 'currency_pos' => 'right_space', 'thousand_sep' => ' ', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'FI', 'state' => '', 'rate' => '24.0000', 'name' => 'ALV', 'shipping' => true ) ) ) ), 'FR' => array( 'currency_code' => 'EUR', 'currency_pos' => 'right', 'thousand_sep' => ' ', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'FR', 'state' => '', 'rate' => '20.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'GB' => array( 'currency_code' => 'GBP', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'GB', 'state' => '', 'rate' => '20.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'HU' => array( 'currency_code' => 'HUF', 'currency_pos' => 'right_space', 'thousand_sep' => ' ', 'decimal_sep' => ',', 'num_decimals' => 0, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'HU', 'state' => '', 'rate' => '27.0000', 'name' => 'ÁFA', 'shipping' => true ) ) ) ), 'IT' => array( 'currency_code' => 'EUR', 'currency_pos' => 'right', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'IT', 'state' => '', 'rate' => '22.0000', 'name' => 'IVA', 'shipping' => true ) ) ) ), 'JP' => array( 'currency_code' => 'JPY', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 0, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'JP', 'state' => '', 'rate' => '8.0000', 'name' => __( 'Consumption tax', 'woocommerce' ), 'shipping' => true ) ) ) ), 'NL' => array( 'currency_code' => 'EUR', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'NL', 'state' => '', 'rate' => '21.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'NO' => array( 'currency_code' => 'Kr', 'currency_pos' => 'left_space', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'NO', 'state' => '', 'rate' => '25.0000', 'name' => 'MVA', 'shipping' => true ) ) ) ), 'NP' => array( 'currency_code' => 'NPR', 'currency_pos' => 'left_space', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'NP', 'state' => '', 'rate' => '13.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'PL' => array( 'currency_code' => 'PLN', 'currency_pos' => 'right', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'PL', 'state' => '', 'rate' => '23.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'RO' => array( 'currency_code' => 'RON', 'currency_pos' => 'right_space', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'RO', 'state' => '', 'rate' => '19.0000', 'name' => 'TVA', 'shipping' => true, ), ), ), ), 'TH' => array( 'currency_code' => 'THB', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'TH', 'state' => '', 'rate' => '7.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ), 'TR' => array( 'currency_code' => 'TRY', 'currency_pos' => 'left_space', 'thousand_sep' => '.', 'decimal_sep' => ',', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'TR', 'state' => '', 'rate' => '18.0000', 'name' => 'KDV', 'shipping' => true ) ) ) ), 'US' => array( 'currency_code' => 'USD', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'lbs', 'dimension_unit' => 'in', 'tax_rates' => array( 'AL' => array( array( 'country' => 'US', 'state' => 'AL', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'AZ' => array( array( 'country' => 'US', 'state' => 'AZ', 'rate' => '5.6000', 'name' => 'State Tax', 'shipping' => false ) ), 'AR' => array( array( 'country' => 'US', 'state' => 'AR', 'rate' => '6.5000', 'name' => 'State Tax', 'shipping' => true ) ), 'CA' => array( array( 'country' => 'US', 'state' => 'CA', 'rate' => '7.5000', 'name' => 'State Tax', 'shipping' => false ) ), 'CO' => array( array( 'country' => 'US', 'state' => 'CO', 'rate' => '2.9000', 'name' => 'State Tax', 'shipping' => false ) ), 'CT' => array( array( 'country' => 'US', 'state' => 'CT', 'rate' => '6.3500', 'name' => 'State Tax', 'shipping' => true ) ), 'DC' => array( array( 'country' => 'US', 'state' => 'DC', 'rate' => '5.7500', 'name' => 'State Tax', 'shipping' => true ) ), 'FL' => array( array( 'country' => 'US', 'state' => 'FL', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'GA' => array( array( 'country' => 'US', 'state' => 'GA', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'GU' => array( array( 'country' => 'US', 'state' => 'GU', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'HI' => array( array( 'country' => 'US', 'state' => 'HI', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'ID' => array( array( 'country' => 'US', 'state' => 'ID', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'IL' => array( array( 'country' => 'US', 'state' => 'IL', 'rate' => '6.2500', 'name' => 'State Tax', 'shipping' => false ) ), 'IN' => array( array( 'country' => 'US', 'state' => 'IN', 'rate' => '7.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'IA' => array( array( 'country' => 'US', 'state' => 'IA', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'KS' => array( array( 'country' => 'US', 'state' => 'KS', 'rate' => '6.1500', 'name' => 'State Tax', 'shipping' => true ) ), 'KY' => array( array( 'country' => 'US', 'state' => 'KY', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'LA' => array( array( 'country' => 'US', 'state' => 'LA', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'ME' => array( array( 'country' => 'US', 'state' => 'ME', 'rate' => '5.5000', 'name' => 'State Tax', 'shipping' => false ) ), 'MD' => array( array( 'country' => 'US', 'state' => 'MD', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'MA' => array( array( 'country' => 'US', 'state' => 'MA', 'rate' => '6.2500', 'name' => 'State Tax', 'shipping' => false ) ), 'MI' => array( array( 'country' => 'US', 'state' => 'MI', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'MN' => array( array( 'country' => 'US', 'state' => 'MN', 'rate' => '6.8750', 'name' => 'State Tax', 'shipping' => true ) ), 'MS' => array( array( 'country' => 'US', 'state' => 'MS', 'rate' => '7.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'MO' => array( array( 'country' => 'US', 'state' => 'MO', 'rate' => '4.225', 'name' => 'State Tax', 'shipping' => false ) ), 'NE' => array( array( 'country' => 'US', 'state' => 'NE', 'rate' => '5.5000', 'name' => 'State Tax', 'shipping' => true ) ), 'NV' => array( array( 'country' => 'US', 'state' => 'NV', 'rate' => '6.8500', 'name' => 'State Tax', 'shipping' => false ) ), 'NJ' => array( array( 'country' => 'US', 'state' => 'NJ', 'rate' => '7.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'NM' => array( array( 'country' => 'US', 'state' => 'NM', 'rate' => '5.1250', 'name' => 'State Tax', 'shipping' => true ) ), 'NY' => array( array( 'country' => 'US', 'state' => 'NY', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'NC' => array( array( 'country' => 'US', 'state' => 'NC', 'rate' => '4.7500', 'name' => 'State Tax', 'shipping' => true ) ), 'ND' => array( array( 'country' => 'US', 'state' => 'ND', 'rate' => '5.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'OH' => array( array( 'country' => 'US', 'state' => 'OH', 'rate' => '5.7500', 'name' => 'State Tax', 'shipping' => true ) ), 'OK' => array( array( 'country' => 'US', 'state' => 'OK', 'rate' => '4.5000', 'name' => 'State Tax', 'shipping' => false ) ), 'PA' => array( array( 'country' => 'US', 'state' => 'PA', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'PR' => array( array( 'country' => 'US', 'state' => 'PR', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'RI' => array( array( 'country' => 'US', 'state' => 'RI', 'rate' => '7.0000', 'name' => 'State Tax', 'shipping' => false ) ), 'SC' => array( array( 'country' => 'US', 'state' => 'SC', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'SD' => array( array( 'country' => 'US', 'state' => 'SD', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'TN' => array( array( 'country' => 'US', 'state' => 'TN', 'rate' => '7.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'TX' => array( array( 'country' => 'US', 'state' => 'TX', 'rate' => '6.2500', 'name' => 'State Tax', 'shipping' => true ) ), 'UT' => array( array( 'country' => 'US', 'state' => 'UT', 'rate' => '5.9500', 'name' => 'State Tax', 'shipping' => false ) ), 'VT' => array( array( 'country' => 'US', 'state' => 'VT', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'VA' => array( array( 'country' => 'US', 'state' => 'VA', 'rate' => '5.3000', 'name' => 'State Tax', 'shipping' => false ) ), 'WA' => array( array( 'country' => 'US', 'state' => 'WA', 'rate' => '6.5000', 'name' => 'State Tax', 'shipping' => true ) ), 'WV' => array( array( 'country' => 'US', 'state' => 'WV', 'rate' => '6.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'WI' => array( array( 'country' => 'US', 'state' => 'WI', 'rate' => '5.0000', 'name' => 'State Tax', 'shipping' => true ) ), 'WY' => array( array( 'country' => 'US', 'state' => 'WY', 'rate' => '4.0000', 'name' => 'State Tax', 'shipping' => true ) ) ) ), 'ZA' => array( 'currency_code' => 'ZAR', 'currency_pos' => 'left', 'thousand_sep' => ',', 'decimal_sep' => '.', 'num_decimals' => 2, 'weight_unit' => 'kg', 'dimension_unit' => 'cm', 'tax_rates' => array( '' => array( array( 'country' => 'ZA', 'state' => '', 'rate' => '14.0000', 'name' => 'VAT', 'shipping' => true ) ) ) ) ); i18n/states/HK.php000066600000000550152133032050007637 0ustar00 __( 'Hong Kong Island', 'woocommerce' ), 'KOWLOON' => __( 'Kowloon', 'woocommerce' ), 'NEW TERRITORIES' => __( 'New Territories', 'woocommerce' ) ); i18n/states/NZ.php000066600000001562152133032050007670 0ustar00 __( 'Northland', 'woocommerce' ), 'AK' => __( 'Auckland', 'woocommerce' ), 'WA' => __( 'Waikato', 'woocommerce' ), 'BP' => __( 'Bay of Plenty', 'woocommerce' ), 'TK' => __( 'Taranaki', 'woocommerce' ), 'GI' => __( 'Gisborne', 'woocommerce' ), 'HB' => __( 'Hawke’s Bay', 'woocommerce' ), 'MW' => __( 'Manawatu-Wanganui', 'woocommerce' ), 'WE' => __( 'Wellington', 'woocommerce' ), 'NS' => __( 'Nelson', 'woocommerce' ), 'MB' => __( 'Marlborough', 'woocommerce' ), 'TM' => __( 'Tasman', 'woocommerce' ), 'WC' => __( 'West Coast', 'woocommerce' ), 'CT' => __( 'Canterbury', 'woocommerce' ), 'OT' => __( 'Otago', 'woocommerce' ), 'SL' => __( 'Southland', 'woocommerce'), ); i18n/states/MX.php000066600000003571152133032050007667 0ustar00 __( 'Distrito Federal', 'woocommerce' ), 'Jalisco' => __( 'Jalisco', 'woocommerce' ), 'Nuevo Leon' => __( 'Nuevo León', 'woocommerce' ), 'Aguascalientes' => __( 'Aguascalientes', 'woocommerce' ), 'Baja California' => __( 'Baja California', 'woocommerce' ), 'Baja California Sur' => __( 'Baja California Sur', 'woocommerce' ), 'Campeche' => __( 'Campeche', 'woocommerce' ), 'Chiapas' => __( 'Chiapas', 'woocommerce' ), 'Chihuahua' => __( 'Chihuahua', 'woocommerce' ), 'Coahuila' => __( 'Coahuila', 'woocommerce' ), 'Colima' => __( 'Colima', 'woocommerce' ), 'Durango' => __( 'Durango', 'woocommerce' ), 'Guanajuato' => __( 'Guanajuato', 'woocommerce' ), 'Guerrero' => __( 'Guerrero', 'woocommerce' ), 'Hidalgo' => __( 'Hidalgo', 'woocommerce' ), 'Estado de Mexico' => __( 'Edo. de México', 'woocommerce' ), 'Michoacan' => __( 'Michoacán', 'woocommerce' ), 'Morelos' => __( 'Morelos', 'woocommerce' ), 'Nayarit' => __( 'Nayarit', 'woocommerce' ), 'Oaxaca' => __( 'Oaxaca', 'woocommerce' ), 'Puebla' => __( 'Puebla', 'woocommerce' ), 'Queretaro' => __( 'Querétaro', 'woocommerce' ), 'Quintana Roo' => __( 'Quintana Roo', 'woocommerce' ), 'San Luis Potosi' => __( 'San Luis Potosí', 'woocommerce' ), 'Sinaloa' => __( 'Sinaloa', 'woocommerce' ), 'Sonora' => __( 'Sonora', 'woocommerce' ), 'Tabasco' => __( 'Tabasco', 'woocommerce' ), 'Tamaulipas' => __( 'Tamaulipas', 'woocommerce' ), 'Tlaxcala' => __( 'Tlaxcala', 'woocommerce' ), 'Veracruz' => __( 'Veracruz', 'woocommerce' ), 'Yucatan' => __( 'Yucatán', 'woocommerce' ), 'Zacatecas' => __( 'Zacatecas', 'woocommerce' ) ); i18n/states/GR.php000066600000001621152133032050007645 0ustar00 __( 'Αττική', 'woocommerce' ), 'A' => __( 'Ανατολική Μακεδονία και Θράκη', 'woocommerce' ), 'B' => __( 'Κεντρική Μακεδονία', 'woocommerce' ), 'C' => __( 'Δυτική Μακεδονία', 'woocommerce' ), 'D' => __( 'Ήπειρος', 'woocommerce' ), 'E' => __( 'Θεσσαλία', 'woocommerce' ), 'F' => __( 'Ιόνιοι Νήσοι', 'woocommerce' ), 'G' => __( 'Δυτική Ελλάδα', 'woocommerce' ), 'H' => __( 'Στερεά Ελλάδα', 'woocommerce' ), 'J' => __( 'Πελοπόννησος', 'woocommerce' ), 'K' => __( 'Βόρειο Αιγαίο', 'woocommerce' ), 'L' => __( 'Νότιο Αιγαίο', 'woocommerce' ), 'M' => __( 'Κρήτη', 'woocommerce' ) ); i18n/states/CN.php000066600000004235152133032050007641 0ustar00 __( 'Yunnan / 云南', 'woocommerce' ), 'CN2' => __( 'Beijing / 北京', 'woocommerce' ), 'CN3' => __( 'Tianjin / 天津', 'woocommerce' ), 'CN4' => __( 'Hebei / 河北', 'woocommerce' ), 'CN5' => __( 'Shanxi / 山西', 'woocommerce' ), 'CN6' => __( 'Inner Mongolia / 內蒙古', 'woocommerce' ), 'CN7' => __( 'Liaoning / 辽宁', 'woocommerce' ), 'CN8' => __( 'Jilin / 吉林', 'woocommerce' ), 'CN9' => __( 'Heilongjiang / 黑龙江', 'woocommerce' ), 'CN10' => __( 'Shanghai / 上海', 'woocommerce' ), 'CN11' => __( 'Jiangsu / 江苏', 'woocommerce' ), 'CN12' => __( 'Zhejiang / 浙江', 'woocommerce' ), 'CN13' => __( 'Anhui / 安徽', 'woocommerce' ), 'CN14' => __( 'Fujian / 福建', 'woocommerce' ), 'CN15' => __( 'Jiangxi / 江西', 'woocommerce' ), 'CN16' => __( 'Shandong / 山东', 'woocommerce' ), 'CN17' => __( 'Henan / 河南', 'woocommerce' ), 'CN18' => __( 'Hubei / 湖北', 'woocommerce' ), 'CN19' => __( 'Hunan / 湖南', 'woocommerce' ), 'CN20' => __( 'Guangdong / 广东', 'woocommerce' ), 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'woocommerce' ), 'CN22' => __( 'Hainan / 海南', 'woocommerce' ), 'CN23' => __( 'Chongqing / 重庆', 'woocommerce' ), 'CN24' => __( 'Sichuan / 四川', 'woocommerce' ), 'CN25' => __( 'Guizhou / 贵州', 'woocommerce' ), 'CN26' => __( 'Shaanxi / 陕西', 'woocommerce' ), 'CN27' => __( 'Gansu / 甘肃', 'woocommerce' ), 'CN28' => __( 'Qinghai / 青海', 'woocommerce' ), 'CN29' => __( 'Ningxia Hui / 宁夏', 'woocommerce' ), 'CN30' => __( 'Macau / 澳门', 'woocommerce' ), 'CN31' => __( 'Tibet / 西藏', 'woocommerce' ), 'CN32' => __( 'Xinjiang / 新疆', 'woocommerce' ) ); i18n/states/ID.php000066600000003357152133032050007641 0ustar00 __( 'Daerah Istimewa Aceh', 'woocommerce' ), 'SU' => __( 'Sumatera Utara', 'woocommerce' ), 'SB' => __( 'Sumatera Barat', 'woocommerce' ), 'RI' => __( 'Riau', 'woocommerce' ), 'KR' => __( 'Kepulauan Riau', 'woocommerce' ), 'JA' => __( 'Jambi', 'woocommerce' ), 'SS' => __( 'Sumatera Selatan', 'woocommerce' ), 'BB' => __( 'Bangka Belitung', 'woocommerce' ), 'BE' => __( 'Bengkulu', 'woocommerce' ), 'LA' => __( 'Lampung', 'woocommerce' ), 'JK' => __( 'DKI Jakarta', 'woocommerce' ), 'JB' => __( 'Jawa Barat', 'woocommerce' ), 'BT' => __( 'Banten', 'woocommerce' ), 'JT' => __( 'Jawa Tengah', 'woocommerce' ), 'JI' => __( 'Jawa Timur', 'woocommerce' ), 'YO' => __( 'Daerah Istimewa Yogyakarta', 'woocommerce' ), 'BA' => __( 'Bali', 'woocommerce' ), 'NB' => __( 'Nusa Tenggara Barat', 'woocommerce' ), 'NT' => __( 'Nusa Tenggara Timur', 'woocommerce' ), 'KB' => __( 'Kalimantan Barat', 'woocommerce' ), 'KT' => __( 'Kalimantan Tengah', 'woocommerce' ), 'KI' => __( 'Kalimantan Timur', 'woocommerce' ), 'KS' => __( 'Kalimantan Selatan', 'woocommerce' ), 'KU' => __( 'Kalimantan Utara', 'woocommerce' ), 'SA' => __( 'Sulawesi Utara', 'woocommerce' ), 'ST' => __( 'Sulawesi Tengah', 'woocommerce' ), 'SG' => __( 'Sulawesi Tenggara', 'woocommerce' ), 'SR' => __( 'Sulawesi Barat', 'woocommerce' ), 'SN' => __( 'Sulawesi Selatan', 'woocommerce' ), 'GO' => __( 'Gorontalo', 'woocommerce' ), 'MA' => __( 'Maluku', 'woocommerce' ), 'MU' => __( 'Maluku Utara', 'woocommerce' ), 'PA' => __( 'Papua', 'woocommerce' ), 'PB' => __( 'Papua Barat', 'woocommerce' ) ); i18n/states/BR.php000066600000002626152133032050007646 0ustar00 __( 'Acre', 'woocommerce' ), 'AL' => __( 'Alagoas', 'woocommerce' ), 'AP' => __( 'Amapá', 'woocommerce' ), 'AM' => __( 'Amazonas', 'woocommerce' ), 'BA' => __( 'Bahia', 'woocommerce' ), 'CE' => __( 'Ceará', 'woocommerce' ), 'DF' => __( 'Distrito Federal', 'woocommerce' ), 'ES' => __( 'Espírito Santo', 'woocommerce' ), 'GO' => __( 'Goiás', 'woocommerce' ), 'MA' => __( 'Maranhão', 'woocommerce' ), 'MT' => __( 'Mato Grosso', 'woocommerce' ), 'MS' => __( 'Mato Grosso do Sul', 'woocommerce' ), 'MG' => __( 'Minas Gerais', 'woocommerce' ), 'PA' => __( 'Pará', 'woocommerce' ), 'PB' => __( 'Paraíba', 'woocommerce' ), 'PR' => __( 'Paraná', 'woocommerce' ), 'PE' => __( 'Pernambuco', 'woocommerce' ), 'PI' => __( 'Piauí', 'woocommerce' ), 'RJ' => __( 'Rio de Janeiro', 'woocommerce' ), 'RN' => __( 'Rio Grande do Norte', 'woocommerce' ), 'RS' => __( 'Rio Grande do Sul', 'woocommerce' ), 'RO' => __( 'Rondônia', 'woocommerce' ), 'RR' => __( 'Roraima', 'woocommerce' ), 'SC' => __( 'Santa Catarina', 'woocommerce' ), 'SP' => __( 'São Paulo', 'woocommerce' ), 'SE' => __( 'Sergipe', 'woocommerce' ), 'TO' => __( 'Tocantins', 'woocommerce' ) ); i18n/states/BG.php000066600000002625152133032050007632 0ustar00 __( 'Blagoevgrad', 'woocommerce' ), 'BG-02' => __( 'Burgas', 'woocommerce' ), 'BG-08' => __( 'Dobrich', 'woocommerce' ), 'BG-07' => __( 'Gabrovo', 'woocommerce' ), 'BG-26' => __( 'Haskovo', 'woocommerce' ), 'BG-09' => __( 'Kardzhali', 'woocommerce' ), 'BG-10' => __( 'Kyustendil', 'woocommerce' ), 'BG-11' => __( 'Lovech', 'woocommerce' ), 'BG-12' => __( 'Montana', 'woocommerce' ), 'BG-13' => __( 'Pazardzhik', 'woocommerce' ), 'BG-14' => __( 'Pernik', 'woocommerce' ), 'BG-15' => __( 'Pleven', 'woocommerce' ), 'BG-16' => __( 'Plovdiv', 'woocommerce' ), 'BG-17' => __( 'Razgrad', 'woocommerce' ), 'BG-18' => __( 'Ruse', 'woocommerce' ), 'BG-27' => __( 'Shumen', 'woocommerce' ), 'BG-19' => __( 'Silistra', 'woocommerce' ), 'BG-20' => __( 'Sliven', 'woocommerce' ), 'BG-21' => __( 'Smolyan', 'woocommerce' ), 'BG-23' => __( 'Sofia', 'woocommerce' ), 'BG-22' => __( 'Sofia-Grad', 'woocommerce' ), 'BG-24' => __( 'Stara Zagora', 'woocommerce' ), 'BG-25' => __( 'Targovishte', 'woocommerce' ), 'BG-03' => __( 'Varna', 'woocommerce' ), 'BG-04' => __( 'Veliko Tarnovo', 'woocommerce' ), 'BG-05' => __( 'Vidin', 'woocommerce' ), 'BG-06' => __( 'Vratsa', 'woocommerce' ), 'BG-28' => __( 'Yambol', 'woocommerce' ), ); i18n/states/CA.php000066600000001426152133032050007623 0ustar00 __( 'Alberta', 'woocommerce' ), 'BC' => __( 'British Columbia', 'woocommerce' ), 'MB' => __( 'Manitoba', 'woocommerce' ), 'NB' => __( 'New Brunswick', 'woocommerce' ), 'NL' => __( 'Newfoundland and Labrador', 'woocommerce' ), 'NT' => __( 'Northwest Territories', 'woocommerce' ), 'NS' => __( 'Nova Scotia', 'woocommerce' ), 'NU' => __( 'Nunavut', 'woocommerce' ), 'ON' => __( 'Ontario', 'woocommerce' ), 'PE' => __( 'Prince Edward Island', 'woocommerce' ), 'QC' => __( 'Quebec', 'woocommerce' ), 'SK' => __( 'Saskatchewan', 'woocommerce' ), 'YT' => __( 'Yukon Territory', 'woocommerce' ) ); i18n/states/MY.php000066600000001565152133032050007671 0ustar00 __( 'Johor', 'woocommerce' ), 'KDH' => __( 'Kedah', 'woocommerce' ), 'KTN' => __( 'Kelantan', 'woocommerce' ), 'LBN' => __( 'Labuan', 'woocommerce' ), 'MLK' => __( 'Malacca (Melaka)', 'woocommerce' ), 'NSN' => __( 'Negeri Sembilan', 'woocommerce' ), 'PHG' => __( 'Pahang', 'woocommerce' ), 'PNG' => __( 'Penang (Pulau Pinang)', 'woocommerce' ), 'PRK' => __( 'Perak', 'woocommerce' ), 'PLS' => __( 'Perlis', 'woocommerce' ), 'SBH' => __( 'Sabah', 'woocommerce' ), 'SWK' => __( 'Sarawak', 'woocommerce' ), 'SGR' => __( 'Selangor', 'woocommerce' ), 'TRG' => __( 'Terengganu', 'woocommerce' ), 'PJY' => __( 'Putrajaya', 'woocommerce' ), 'KUL' => __( 'Kuala Lumpur', 'woocommerce' ) ); i18n/states/ZA.php000066600000001122152133032050007643 0ustar00 __( 'Eastern Cape', 'woocommerce' ), 'FS' => __( 'Free State', 'woocommerce' ), 'GP' => __( 'Gauteng', 'woocommerce' ), 'KZN' => __( 'KwaZulu-Natal', 'woocommerce' ), 'LP' => __( 'Limpopo', 'woocommerce' ), 'MP' => __( 'Mpumalanga', 'woocommerce' ), 'NC' => __( 'Northern Cape', 'woocommerce' ), 'NW' => __( 'North West', 'woocommerce' ), 'WC' => __( 'Western Cape', 'woocommerce' ) ); i18n/states/PE.php000066600000002463152133032050007646 0ustar00 __( 'El Callao', 'woocommerce' ), 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'woocommerce' ), 'AMA' => __( 'Amazonas', 'woocommerce' ), 'ANC' => __( 'Ancash', 'woocommerce' ), 'APU' => __( 'Apurímac', 'woocommerce' ), 'ARE' => __( 'Arequipa', 'woocommerce' ), 'AYA' => __( 'Ayacucho', 'woocommerce' ), 'CAJ' => __( 'Cajamarca', 'woocommerce' ), 'CUS' => __( 'Cusco', 'woocommerce' ), 'HUV' => __( 'Huancavelica', 'woocommerce' ), 'HUC' => __( 'Huánuco', 'woocommerce' ), 'ICA' => __( 'Ica', 'woocommerce' ), 'JUN' => __( 'Junín', 'woocommerce' ), 'LAL' => __( 'La Libertad', 'woocommerce' ), 'LAM' => __( 'Lambayeque', 'woocommerce' ), 'LIM' => __( 'Lima', 'woocommerce' ), 'LOR' => __( 'Loreto', 'woocommerce' ), 'MDD' => __( 'Madre de Dios', 'woocommerce' ), 'MOQ' => __( 'Moquegua', 'woocommerce' ), 'PAS' => __( 'Pasco', 'woocommerce' ), 'PIU' => __( 'Piura', 'woocommerce' ), 'PUN' => __( 'Puno', 'woocommerce' ), 'SAM' => __( 'San Martín', 'woocommerce' ), 'TAC' => __( 'Tacna', 'woocommerce' ), 'TUM' => __( 'Tumbes', 'woocommerce' ), 'UCA' => __( 'Ucayali', 'woocommerce' ) ); i18n/states/TH.php000066600000017630152133032050007657 0ustar00 __( 'Amnat Charoen (อำนาจเจริญ)', 'woocommerce' ), 'TH-15' => __( 'Ang Thong (อ่างทอง)', 'woocommerce' ), 'TH-14' => __( 'Ayutthaya (พระนครศรีอยุธยา)', 'woocommerce' ), 'TH-10' => __( 'Bangkok (กรุงเทพมหานคร)', 'woocommerce' ), 'TH-38' => __( 'Bueng Kan (บึงกาฬ)', 'woocommerce' ), 'TH-31' => __( 'Buri Ram (บุรีรัมย์)', 'woocommerce' ), 'TH-24' => __( 'Chachoengsao (ฉะเชิงเทรา)', 'woocommerce' ), 'TH-18' => __( 'Chai Nat (ชัยนาท)', 'woocommerce' ), 'TH-36' => __( 'Chaiyaphum (ชัยภูมิ)', 'woocommerce' ), 'TH-22' => __( 'Chanthaburi (จันทบุรี)', 'woocommerce' ), 'TH-50' => __( 'Chiang Mai (เชียงใหม่)', 'woocommerce' ), 'TH-57' => __( 'Chiang Rai (เชียงราย)', 'woocommerce' ), 'TH-20' => __( 'Chonburi (ชลบุรี)', 'woocommerce' ), 'TH-86' => __( 'Chumphon (ชุมพร)', 'woocommerce' ), 'TH-46' => __( 'Kalasin (กาฬสินธุ์)', 'woocommerce' ), 'TH-62' => __( 'Kamphaeng Phet (กำแพงเพชร)', 'woocommerce' ), 'TH-71' => __( 'Kanchanaburi (กาญจนบุรี)', 'woocommerce' ), 'TH-40' => __( 'Khon Kaen (ขอนแก่น)', 'woocommerce' ), 'TH-81' => __( 'Krabi (กระบี่)', 'woocommerce' ), 'TH-52' => __( 'Lampang (ลำปาง)', 'woocommerce' ), 'TH-51' => __( 'Lamphun (ลำพูน)', 'woocommerce' ), 'TH-42' => __( 'Loei (เลย)', 'woocommerce' ), 'TH-16' => __( 'Lopburi (ลพบุรี)', 'woocommerce' ), 'TH-58' => __( 'Mae Hong Son (แม่ฮ่องสอน)', 'woocommerce' ), 'TH-44' => __( 'Maha Sarakham (มหาสารคาม)', 'woocommerce' ), 'TH-49' => __( 'Mukdahan (มุกดาหาร)', 'woocommerce' ), 'TH-26' => __( 'Nakhon Nayok (นครนายก)', 'woocommerce' ), 'TH-73' => __( 'Nakhon Pathom (นครปฐม)', 'woocommerce' ), 'TH-48' => __( 'Nakhon Phanom (นครพนม)', 'woocommerce' ), 'TH-30' => __( 'Nakhon Ratchasima (นครราชสีมา)', 'woocommerce' ), 'TH-60' => __( 'Nakhon Sawan (นครสวรรค์)', 'woocommerce' ), 'TH-80' => __( 'Nakhon Si Thammarat (นครศรีธรรมราช)', 'woocommerce' ), 'TH-55' => __( 'Nan (น่าน)', 'woocommerce' ), 'TH-96' => __( 'Narathiwat (นราธิวาส)', 'woocommerce' ), 'TH-39' => __( 'Nong Bua Lam Phu (หนองบัวลำภู)', 'woocommerce' ), 'TH-43' => __( 'Nong Khai (หนองคาย)', 'woocommerce' ), 'TH-12' => __( 'Nonthaburi (นนทบุรี)', 'woocommerce' ), 'TH-13' => __( 'Pathum Thani (ปทุมธานี)', 'woocommerce' ), 'TH-94' => __( 'Pattani (ปัตตานี)', 'woocommerce' ), 'TH-82' => __( 'Phang Nga (พังงา)', 'woocommerce' ), 'TH-93' => __( 'Phatthalung (พัทลุง)', 'woocommerce' ), 'TH-56' => __( 'Phayao (พะเยา)', 'woocommerce' ), 'TH-67' => __( 'Phetchabun (เพชรบูรณ์)', 'woocommerce' ), 'TH-76' => __( 'Phetchaburi (เพชรบุรี)', 'woocommerce' ), 'TH-66' => __( 'Phichit (พิจิตร)', 'woocommerce' ), 'TH-65' => __( 'Phitsanulok (พิษณุโลก)', 'woocommerce' ), 'TH-54' => __( 'Phrae (แพร่)', 'woocommerce' ), 'TH-83' => __( 'Phuket (ภูเก็ต)', 'woocommerce' ), 'TH-25' => __( 'Prachin Buri (ปราจีนบุรี)', 'woocommerce' ), 'TH-77' => __( 'Prachuap Khiri Khan (ประจวบคีรีขันธ์)', 'woocommerce' ), 'TH-85' => __( 'Ranong (ระนอง)', 'woocommerce' ), 'TH-70' => __( 'Ratchaburi (ราชบุรี)', 'woocommerce' ), 'TH-21' => __( 'Rayong (ระยอง)', 'woocommerce' ), 'TH-45' => __( 'Roi Et (ร้อยเอ็ด)', 'woocommerce' ), 'TH-27' => __( 'Sa Kaeo (สระแก้ว)', 'woocommerce' ), 'TH-47' => __( 'Sakon Nakhon (สกลนคร)', 'woocommerce' ), 'TH-11' => __( 'Samut Prakan (สมุทรปราการ)', 'woocommerce' ), 'TH-74' => __( 'Samut Sakhon (สมุทรสาคร)', 'woocommerce' ), 'TH-75' => __( 'Samut Songkhram (สมุทรสงคราม)', 'woocommerce' ), 'TH-19' => __( 'Saraburi (สระบุรี)', 'woocommerce' ), 'TH-91' => __( 'Satun (สตูล)', 'woocommerce' ), 'TH-17' => __( 'Sing Buri (สิงห์บุรี)', 'woocommerce' ), 'TH-33' => __( 'Sisaket (ศรีสะเกษ)', 'woocommerce' ), 'TH-90' => __( 'Songkhla (สงขลา)', 'woocommerce' ), 'TH-64' => __( 'Sukhothai (สุโขทัย)', 'woocommerce' ), 'TH-72' => __( 'Suphan Buri (สุพรรณบุรี)', 'woocommerce' ), 'TH-84' => __( 'Surat Thani (สุราษฎร์ธานี)', 'woocommerce' ), 'TH-32' => __( 'Surin (สุรินทร์)', 'woocommerce' ), 'TH-63' => __( 'Tak (ตาก)', 'woocommerce' ), 'TH-92' => __( 'Trang (ตรัง)', 'woocommerce' ), 'TH-23' => __( 'Trat (ตราด)', 'woocommerce' ), 'TH-34' => __( 'Ubon Ratchathani (อุบลราชธานี)', 'woocommerce' ), 'TH-41' => __( 'Udon Thani (อุดรธานี)', 'woocommerce' ), 'TH-61' => __( 'Uthai Thani (อุทัยธานี)', 'woocommerce' ), 'TH-53' => __( 'Uttaradit (อุตรดิตถ์)', 'woocommerce' ), 'TH-95' => __( 'Yala (ยะลา)', 'woocommerce' ), 'TH-35' => __( 'Yasothon (ยโสธร)', 'woocommerce' ) ); i18n/states/PH.php000066600000007512152133032050007651 0ustar00 __( 'Abra', 'woocommerce' ), 'AGN' => __( 'Agusan del Norte', 'woocommerce' ), 'AGS' => __( 'Agusan del Sur', 'woocommerce' ), 'AKL' => __( 'Aklan', 'woocommerce' ), 'ALB' => __( 'Albay', 'woocommerce' ), 'ANT' => __( 'Antique', 'woocommerce' ), 'APA' => __( 'Apayao', 'woocommerce' ), 'AUR' => __( 'Aurora', 'woocommerce' ), 'BAS' => __( 'Basilan', 'woocommerce' ), 'BAN' => __( 'Bataan', 'woocommerce' ), 'BTN' => __( 'Batanes', 'woocommerce' ), 'BTG' => __( 'Batangas', 'woocommerce' ), 'BEN' => __( 'Benguet', 'woocommerce' ), 'BIL' => __( 'Biliran', 'woocommerce' ), 'BOH' => __( 'Bohol', 'woocommerce' ), 'BUK' => __( 'Bukidnon', 'woocommerce' ), 'BUL' => __( 'Bulacan', 'woocommerce' ), 'CAG' => __( 'Cagayan', 'woocommerce' ), 'CAN' => __( 'Camarines Norte', 'woocommerce' ), 'CAS' => __( 'Camarines Sur', 'woocommerce' ), 'CAM' => __( 'Camiguin', 'woocommerce' ), 'CAP' => __( 'Capiz', 'woocommerce' ), 'CAT' => __( 'Catanduanes', 'woocommerce' ), 'CAV' => __( 'Cavite', 'woocommerce' ), 'CEB' => __( 'Cebu', 'woocommerce' ), 'COM' => __( 'Compostela Valley', 'woocommerce' ), 'NCO' => __( 'Cotabato', 'woocommerce' ), 'DAV' => __( 'Davao del Norte', 'woocommerce' ), 'DAS' => __( 'Davao del Sur', 'woocommerce' ), 'DAC' => __( 'Davao Occidental', 'woocommerce' ), // TODO: Needs to be updated when ISO code is assigned 'DAO' => __( 'Davao Oriental', 'woocommerce' ), 'DIN' => __( 'Dinagat Islands', 'woocommerce' ), 'EAS' => __( 'Eastern Samar', 'woocommerce' ), 'GUI' => __( 'Guimaras', 'woocommerce' ), 'IFU' => __( 'Ifugao', 'woocommerce' ), 'ILN' => __( 'Ilocos Norte', 'woocommerce' ), 'ILS' => __( 'Ilocos Sur', 'woocommerce' ), 'ILI' => __( 'Iloilo', 'woocommerce' ), 'ISA' => __( 'Isabela', 'woocommerce' ), 'KAL' => __( 'Kalinga', 'woocommerce' ), 'LUN' => __( 'La Union', 'woocommerce' ), 'LAG' => __( 'Laguna', 'woocommerce' ), 'LAN' => __( 'Lanao del Norte', 'woocommerce' ), 'LAS' => __( 'Lanao del Sur', 'woocommerce' ), 'LEY' => __( 'Leyte', 'woocommerce' ), 'MAG' => __( 'Maguindanao', 'woocommerce' ), 'MAD' => __( 'Marinduque', 'woocommerce' ), 'MAS' => __( 'Masbate', 'woocommerce' ), 'MSC' => __( 'Misamis Occidental', 'woocommerce' ), 'MSR' => __( 'Misamis Oriental', 'woocommerce' ), 'MOU' => __( 'Mountain Province', 'woocommerce' ), 'NEC' => __( 'Negros Occidental', 'woocommerce' ), 'NER' => __( 'Negros Oriental', 'woocommerce' ), 'NSA' => __( 'Northern Samar', 'woocommerce' ), 'NUE' => __( 'Nueva Ecija', 'woocommerce' ), 'NUV' => __( 'Nueva Vizcaya', 'woocommerce' ), 'MDC' => __( 'Occidental Mindoro', 'woocommerce' ), 'MDR' => __( 'Oriental Mindoro', 'woocommerce' ), 'PLW' => __( 'Palawan', 'woocommerce' ), 'PAM' => __( 'Pampanga', 'woocommerce' ), 'PAN' => __( 'Pangasinan', 'woocommerce' ), 'QUE' => __( 'Quezon', 'woocommerce' ), 'QUI' => __( 'Quirino', 'woocommerce' ), 'RIZ' => __( 'Rizal', 'woocommerce' ), 'ROM' => __( 'Romblon', 'woocommerce' ), 'WSA' => __( 'Samar', 'woocommerce' ), 'SAR' => __( 'Sarangani', 'woocommerce' ), 'SIQ' => __( 'Siquijor', 'woocommerce' ), 'SOR' => __( 'Sorsogon', 'woocommerce' ), 'SCO' => __( 'South Cotabato', 'woocommerce' ), 'SLE' => __( 'Southern Leyte', 'woocommerce' ), 'SUK' => __( 'Sultan Kudarat', 'woocommerce' ), 'SLU' => __( 'Sulu', 'woocommerce' ), 'SUN' => __( 'Surigao del Norte', 'woocommerce' ), 'SUR' => __( 'Surigao del Sur', 'woocommerce' ), 'TAR' => __( 'Tarlac', 'woocommerce' ), 'TAW' => __( 'Tawi-Tawi', 'woocommerce' ), 'ZMB' => __( 'Zambales', 'woocommerce' ), 'ZAN' => __( 'Zamboanga del Norte', 'woocommerce' ), 'ZAS' => __( 'Zamboanga del Sur', 'woocommerce' ), 'ZSI' => __( 'Zamboanga Sibugay', 'woocommerce' ), '00' => __( 'Metro Manila', 'woocommerce' ), ); i18n/states/IT.php000066600000011243152133032050007652 0ustar00 __( 'Agrigento', 'woocommerce' ), 'AL' => __( 'Alessandria', 'woocommerce' ), 'AN' => __( 'Ancona', 'woocommerce' ), 'AO' => __( 'Aosta', 'woocommerce' ), 'AR' => __( 'Arezzo', 'woocommerce' ), 'AP' => __( 'Ascoli Piceno', 'woocommerce' ), 'AT' => __( 'Asti', 'woocommerce' ), 'AV' => __( 'Avellino', 'woocommerce' ), 'BA' => __( 'Bari', 'woocommerce' ), 'BT' => __( 'Barletta-Andria-Trani', 'woocommerce' ), 'BL' => __( 'Belluno', 'woocommerce' ), 'BN' => __( 'Benevento', 'woocommerce' ), 'BG' => __( 'Bergamo', 'woocommerce' ), 'BI' => __( 'Biella', 'woocommerce' ), 'BO' => __( 'Bologna', 'woocommerce' ), 'BZ' => __( 'Bolzano', 'woocommerce' ), 'BS' => __( 'Brescia', 'woocommerce' ), 'BR' => __( 'Brindisi', 'woocommerce' ), 'CA' => __( 'Cagliari', 'woocommerce' ), 'CL' => __( 'Caltanissetta', 'woocommerce' ), 'CB' => __( 'Campobasso', 'woocommerce' ), 'CI' => __( 'Carbonia-Iglesias', 'woocommerce' ), 'CE' => __( 'Caserta', 'woocommerce' ), 'CT' => __( 'Catania', 'woocommerce' ), 'CZ' => __( 'Catanzaro', 'woocommerce' ), 'CH' => __( 'Chieti', 'woocommerce' ), 'CO' => __( 'Como', 'woocommerce' ), 'CS' => __( 'Cosenza', 'woocommerce' ), 'CR' => __( 'Cremona', 'woocommerce' ), 'KR' => __( 'Crotone', 'woocommerce' ), 'CN' => __( 'Cuneo', 'woocommerce' ), 'EN' => __( 'Enna', 'woocommerce' ), 'FM' => __( 'Fermo', 'woocommerce' ), 'FE' => __( 'Ferrara', 'woocommerce' ), 'FI' => __( 'Firenze', 'woocommerce' ), 'FG' => __( 'Foggia', 'woocommerce' ), 'FC' => __( 'Forlì-Cesena', 'woocommerce' ), 'FR' => __( 'Frosinone', 'woocommerce' ), 'GE' => __( 'Genova', 'woocommerce' ), 'GO' => __( 'Gorizia', 'woocommerce' ), 'GR' => __( 'Grosseto', 'woocommerce' ), 'IM' => __( 'Imperia', 'woocommerce' ), 'IS' => __( 'Isernia', 'woocommerce' ), 'SP' => __( 'La Spezia', 'woocommerce' ), 'AQ' => __( 'L'Aquila', 'woocommerce' ), 'LT' => __( 'Latina', 'woocommerce' ), 'LE' => __( 'Lecce', 'woocommerce' ), 'LC' => __( 'Lecco', 'woocommerce' ), 'LI' => __( 'Livorno', 'woocommerce' ), 'LO' => __( 'Lodi', 'woocommerce' ), 'LU' => __( 'Lucca', 'woocommerce' ), 'MC' => __( 'Macerata', 'woocommerce' ), 'MN' => __( 'Mantova', 'woocommerce' ), 'MS' => __( 'Massa-Carrara', 'woocommerce' ), 'MT' => __( 'Matera', 'woocommerce' ), 'ME' => __( 'Messina', 'woocommerce' ), 'MI' => __( 'Milano', 'woocommerce' ), 'MO' => __( 'Modena', 'woocommerce' ), 'MB' => __( 'Monza e della Brianza', 'woocommerce' ), 'NA' => __( 'Napoli', 'woocommerce' ), 'NO' => __( 'Novara', 'woocommerce' ), 'NU' => __( 'Nuoro', 'woocommerce' ), 'OT' => __( 'Olbia-Tempio', 'woocommerce' ), 'OR' => __( 'Oristano', 'woocommerce' ), 'PD' => __( 'Padova', 'woocommerce' ), 'PA' => __( 'Palermo', 'woocommerce' ), 'PR' => __( 'Parma', 'woocommerce' ), 'PV' => __( 'Pavia', 'woocommerce' ), 'PG' => __( 'Perugia', 'woocommerce' ), 'PU' => __( 'Pesaro e Urbino', 'woocommerce' ), 'PE' => __( 'Pescara', 'woocommerce' ), 'PC' => __( 'Piacenza', 'woocommerce' ), 'PI' => __( 'Pisa', 'woocommerce' ), 'PT' => __( 'Pistoia', 'woocommerce' ), 'PN' => __( 'Pordenone', 'woocommerce' ), 'PZ' => __( 'Potenza', 'woocommerce' ), 'PO' => __( 'Prato', 'woocommerce' ), 'RG' => __( 'Ragusa', 'woocommerce' ), 'RA' => __( 'Ravenna', 'woocommerce' ), 'RC' => __( 'Reggio Calabria', 'woocommerce' ), 'RE' => __( 'Reggio Emilia', 'woocommerce' ), 'RI' => __( 'Rieti', 'woocommerce' ), 'RN' => __( 'Rimini', 'woocommerce' ), 'RM' => __( 'Roma', 'woocommerce' ), 'RO' => __( 'Rovigo', 'woocommerce' ), 'SA' => __( 'Salerno', 'woocommerce' ), 'VS' => __( 'Medio Campidano', 'woocommerce' ), 'SS' => __( 'Sassari', 'woocommerce' ), 'SV' => __( 'Savona', 'woocommerce' ), 'SI' => __( 'Siena', 'woocommerce' ), 'SR' => __( 'Siracusa', 'woocommerce' ), 'SO' => __( 'Sondrio', 'woocommerce' ), 'TA' => __( 'Taranto', 'woocommerce' ), 'TE' => __( 'Teramo', 'woocommerce' ), 'TR' => __( 'Terni', 'woocommerce' ), 'TO' => __( 'Torino', 'woocommerce' ), 'OG' => __( 'Ogliastra', 'woocommerce' ), 'TP' => __( 'Trapani', 'woocommerce' ), 'TN' => __( 'Trento', 'woocommerce' ), 'TV' => __( 'Treviso', 'woocommerce' ), 'TS' => __( 'Trieste', 'woocommerce' ), 'UD' => __( 'Udine', 'woocommerce' ), 'VA' => __( 'Varese', 'woocommerce' ), 'VE' => __( 'Venezia', 'woocommerce' ), 'VB' => __( 'Verbano-Cusio-Ossola', 'woocommerce' ), 'VC' => __( 'Vercelli', 'woocommerce' ), 'VR' => __( 'Verona', 'woocommerce' ), 'VV' => __( 'Vibo Valentia', 'woocommerce' ), 'VI' => __( 'Vicenza', 'woocommerce' ), 'VT' => __( 'Viterbo', 'woocommerce' ) ); i18n/states/ES.php000066600000004556152133032050007656 0ustar00 __( 'A Coruña', 'woocommerce' ), 'VI' => __( 'Araba/Álava', 'woocommerce' ), 'AB' => __( 'Albacete', 'woocommerce' ), 'A' => __( 'Alicante', 'woocommerce' ), 'AL' => __( 'Almería', 'woocommerce' ), 'O' => __( 'Asturias', 'woocommerce' ), 'AV' => __( 'Ávila', 'woocommerce' ), 'BA' => __( 'Badajoz', 'woocommerce' ), 'PM' => __( 'Baleares', 'woocommerce' ), 'B' => __( 'Barcelona', 'woocommerce' ), 'BU' => __( 'Burgos', 'woocommerce' ), 'CC' => __( 'Cáceres', 'woocommerce' ), 'CA' => __( 'Cádiz', 'woocommerce' ), 'S' => __( 'Cantabria', 'woocommerce' ), 'CS' => __( 'Castellón', 'woocommerce' ), 'CE' => __( 'Ceuta', 'woocommerce' ), 'CR' => __( 'Ciudad Real', 'woocommerce' ), 'CO' => __( 'Córdoba', 'woocommerce' ), 'CU' => __( 'Cuenca', 'woocommerce' ), 'GI' => __( 'Girona', 'woocommerce' ), 'GR' => __( 'Granada', 'woocommerce' ), 'GU' => __( 'Guadalajara', 'woocommerce' ), 'SS' => __( 'Gipuzkoa', 'woocommerce' ), 'H' => __( 'Huelva', 'woocommerce' ), 'HU' => __( 'Huesca', 'woocommerce' ), 'J' => __( 'Jaén', 'woocommerce' ), 'LO' => __( 'La Rioja', 'woocommerce' ), 'GC' => __( 'Las Palmas', 'woocommerce' ), 'LE' => __( 'León', 'woocommerce' ), 'L' => __( 'Lleida', 'woocommerce' ), 'LU' => __( 'Lugo', 'woocommerce' ), 'M' => __( 'Madrid', 'woocommerce' ), 'MA' => __( 'Málaga', 'woocommerce' ), 'ML' => __( 'Melilla', 'woocommerce' ), 'MU' => __( 'Murcia', 'woocommerce' ), 'NA' => __( 'Navarra', 'woocommerce' ), 'OR' => __( 'Ourense', 'woocommerce' ), 'P' => __( 'Palencia', 'woocommerce' ), 'PO' => __( 'Pontevedra', 'woocommerce' ), 'SA' => __( 'Salamanca', 'woocommerce' ), 'TF' => __( 'Santa Cruz de Tenerife', 'woocommerce' ), 'SG' => __( 'Segovia', 'woocommerce' ), 'SE' => __( 'Sevilla', 'woocommerce' ), 'SO' => __( 'Soria', 'woocommerce' ), 'T' => __( 'Tarragona', 'woocommerce' ), 'TE' => __( 'Teruel', 'woocommerce' ), 'TO' => __( 'Toledo', 'woocommerce' ), 'V' => __( 'Valencia', 'woocommerce' ), 'VA' => __( 'Valladolid', 'woocommerce' ), 'BI' => __( 'Bizkaia', 'woocommerce' ), 'ZA' => __( 'Zamora', 'woocommerce' ), 'Z' => __( 'Zaragoza', 'woocommerce' ) ); i18n/states/HU.php000066600000002052152133032050007650 0ustar00 __( 'Bács-Kiskun', 'woocommerce' ), 'BE' => __( 'Békés', 'woocommerce' ), 'BA' => __( 'Baranya', 'woocommerce' ), 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'woocommerce' ), 'BU' => __( 'Budapest', 'woocommerce' ), 'CS' => __( 'Csongrád', 'woocommerce' ), 'FE' => __( 'Fejér', 'woocommerce' ), 'GS' => __( 'Győr-Moson-Sopron', 'woocommerce' ), 'HB' => __( 'Hajdú-Bihar', 'woocommerce' ), 'HE' => __( 'Heves', 'woocommerce' ), 'JN' => __( 'Jász-Nagykun-Szolnok', 'woocommerce' ), 'KE' => __( 'Komárom-Esztergom', 'woocommerce' ), 'NO' => __( 'Nógrád', 'woocommerce' ), 'PE' => __( 'Pest', 'woocommerce' ), 'SO' => __( 'Somogy', 'woocommerce' ), 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'woocommerce' ), 'TO' => __( 'Tolna', 'woocommerce' ), 'VA' => __( 'Vas', 'woocommerce' ), 'VE' => __( 'Veszprém', 'woocommerce' ), 'ZA' => __( 'Zala', 'woocommerce' ) ); i18n/states/BD.php000066600000005731152133032050007630 0ustar00 __( 'Bagerhat', 'woocommerce' ), 'BAN' => __( 'Bandarban', 'woocommerce' ), 'BAR' => __( 'Barguna', 'woocommerce' ), 'BARI' => __( 'Barisal', 'woocommerce' ), 'BHO' => __( 'Bhola', 'woocommerce' ), 'BOG' => __( 'Bogra', 'woocommerce' ), 'BRA' => __( 'Brahmanbaria', 'woocommerce' ), 'CHA' => __( 'Chandpur', 'woocommerce' ), 'CHI' => __( 'Chittagong', 'woocommerce' ), 'CHU' => __( 'Chuadanga', 'woocommerce' ), 'COM' => __( 'Comilla', 'woocommerce' ), 'COX' => __( 'Cox\'s Bazar', 'woocommerce' ), 'DHA' => __( 'Dhaka', 'woocommerce' ), 'DIN' => __( 'Dinajpur', 'woocommerce' ), 'FAR' => __( 'Faridpur ', 'woocommerce' ), 'FEN' => __( 'Feni', 'woocommerce' ), 'GAI' => __( 'Gaibandha', 'woocommerce' ), 'GAZI' => __( 'Gazipur', 'woocommerce' ), 'GOP' => __( 'Gopalganj', 'woocommerce' ), 'HAB' => __( 'Habiganj', 'woocommerce' ), 'JAM' => __( 'Jamalpur', 'woocommerce' ), 'JES' => __( 'Jessore', 'woocommerce' ), 'JHA' => __( 'Jhalokati', 'woocommerce' ), 'JHE' => __( 'Jhenaidah', 'woocommerce' ), 'JOY' => __( 'Joypurhat', 'woocommerce' ), 'KHA' => __( 'Khagrachhari', 'woocommerce' ), 'KHU' => __( 'Khulna', 'woocommerce' ), 'KIS' => __( 'Kishoreganj', 'woocommerce' ), 'KUR' => __( 'Kurigram', 'woocommerce' ), 'KUS' => __( 'Kushtia', 'woocommerce' ), 'LAK' => __( 'Lakshmipur', 'woocommerce' ), 'LAL' => __( 'Lalmonirhat', 'woocommerce' ), 'MAD' => __( 'Madaripur', 'woocommerce' ), 'MAG' => __( 'Magura', 'woocommerce' ), 'MAN' => __( 'Manikganj ', 'woocommerce' ), 'MEH' => __( 'Meherpur', 'woocommerce' ), 'MOU' => __( 'Moulvibazar', 'woocommerce' ), 'MUN' => __( 'Munshiganj', 'woocommerce' ), 'MYM' => __( 'Mymensingh', 'woocommerce' ), 'NAO' => __( 'Naogaon', 'woocommerce' ), 'NAR' => __( 'Narail', 'woocommerce' ), 'NARG' => __( 'Narayanganj', 'woocommerce' ), 'NARD' => __( 'Narsingdi', 'woocommerce' ), 'NAT' => __( 'Natore', 'woocommerce' ), 'NAW' => __( 'Nawabganj', 'woocommerce' ), 'NET' => __( 'Netrakona', 'woocommerce' ), 'NIL' => __( 'Nilphamari', 'woocommerce' ), 'NOA' => __( 'Noakhali', 'woocommerce' ), 'PAB' => __( 'Pabna', 'woocommerce' ), 'PAN' => __( 'Panchagarh', 'woocommerce' ), 'PAT' => __( 'Patuakhali', 'woocommerce' ), 'PIR' => __( 'Pirojpur', 'woocommerce' ), 'RAJB' => __( 'Rajbari', 'woocommerce' ), 'RAJ' => __( 'Rajshahi', 'woocommerce' ), 'RAN' => __( 'Rangamati', 'woocommerce' ), 'RANP' => __( 'Rangpur', 'woocommerce' ), 'SAT' => __( 'Satkhira', 'woocommerce' ), 'SHA' => __( 'Shariatpur', 'woocommerce' ), 'SHE' => __( 'Sherpur', 'woocommerce' ), 'SIR' => __( 'Sirajganj', 'woocommerce' ), 'SUN' => __( 'Sunamganj', 'woocommerce' ), 'SYL' => __( 'Sylhet', 'woocommerce' ), 'TAN' => __( 'Tangail', 'woocommerce' ), 'THA' => __( 'Thakurgaon', 'woocommerce' ) ); i18n/states/TR.php000066600000007400152133032050007663 0ustar00 __( 'Adana', 'woocommerce' ), 'TR02' => __( 'Adıyaman', 'woocommerce' ), 'TR03' => __( 'Afyon', 'woocommerce' ), 'TR04' => __( 'Ağrı', 'woocommerce' ), 'TR05' => __( 'Amasya', 'woocommerce' ), 'TR06' => __( 'Ankara', 'woocommerce' ), 'TR07' => __( 'Antalya', 'woocommerce' ), 'TR08' => __( 'Artvin', 'woocommerce' ), 'TR09' => __( 'Aydın', 'woocommerce' ), 'TR10' => __( 'Balıkesir', 'woocommerce' ), 'TR11' => __( 'Bilecik', 'woocommerce' ), 'TR12' => __( 'Bingöl', 'woocommerce' ), 'TR13' => __( 'Bitlis', 'woocommerce' ), 'TR14' => __( 'Bolu', 'woocommerce' ), 'TR15' => __( 'Burdur', 'woocommerce' ), 'TR16' => __( 'Bursa', 'woocommerce' ), 'TR17' => __( 'Çanakkale', 'woocommerce' ), 'TR18' => __( 'Çankırı', 'woocommerce' ), 'TR19' => __( 'Çorum', 'woocommerce' ), 'TR20' => __( 'Denizli', 'woocommerce' ), 'TR21' => __( 'Diyarbakır', 'woocommerce' ), 'TR22' => __( 'Edirne', 'woocommerce' ), 'TR23' => __( 'Elazığ', 'woocommerce' ), 'TR24' => __( 'Erzincan', 'woocommerce' ), 'TR25' => __( 'Erzurum', 'woocommerce' ), 'TR26' => __( 'Eskişehir', 'woocommerce' ), 'TR27' => __( 'Gaziantep', 'woocommerce' ), 'TR28' => __( 'Giresun', 'woocommerce' ), 'TR29' => __( 'Gümüşhane', 'woocommerce' ), 'TR30' => __( 'Hakkari', 'woocommerce' ), 'TR31' => __( 'Hatay', 'woocommerce' ), 'TR32' => __( 'Isparta', 'woocommerce' ), 'TR33' => __( 'İçel', 'woocommerce' ), 'TR34' => __( 'İstanbul', 'woocommerce' ), 'TR35' => __( 'İzmir', 'woocommerce' ), 'TR36' => __( 'Kars', 'woocommerce' ), 'TR37' => __( 'Kastamonu', 'woocommerce' ), 'TR38' => __( 'Kayseri', 'woocommerce' ), 'TR39' => __( 'Kırklareli', 'woocommerce' ), 'TR40' => __( 'Kırşehir', 'woocommerce' ), 'TR41' => __( 'Kocaeli', 'woocommerce' ), 'TR42' => __( 'Konya', 'woocommerce' ), 'TR43' => __( 'Kütahya', 'woocommerce' ), 'TR44' => __( 'Malatya', 'woocommerce' ), 'TR45' => __( 'Manisa', 'woocommerce' ), 'TR46' => __( 'Kahramanmaraş', 'woocommerce' ), 'TR47' => __( 'Mardin', 'woocommerce' ), 'TR48' => __( 'Muğla', 'woocommerce' ), 'TR49' => __( 'Muş', 'woocommerce' ), 'TR50' => __( 'Nevşehir', 'woocommerce' ), 'TR51' => __( 'Niğde', 'woocommerce' ), 'TR52' => __( 'Ordu', 'woocommerce' ), 'TR53' => __( 'Rize', 'woocommerce' ), 'TR54' => __( 'Sakarya', 'woocommerce' ), 'TR55' => __( 'Samsun', 'woocommerce' ), 'TR56' => __( 'Siirt', 'woocommerce' ), 'TR57' => __( 'Sinop', 'woocommerce' ), 'TR58' => __( 'Sivas', 'woocommerce' ), 'TR59' => __( 'Tekirdağ', 'woocommerce' ), 'TR60' => __( 'Tokat', 'woocommerce' ), 'TR61' => __( 'Trabzon', 'woocommerce' ), 'TR62' => __( 'Tunceli', 'woocommerce' ), 'TR63' => __( 'Şanlıurfa', 'woocommerce' ), 'TR64' => __( 'Uşak', 'woocommerce' ), 'TR65' => __( 'Van', 'woocommerce' ), 'TR66' => __( 'Yozgat', 'woocommerce' ), 'TR67' => __( 'Zonguldak', 'woocommerce' ), 'TR68' => __( 'Aksaray', 'woocommerce' ), 'TR69' => __( 'Bayburt', 'woocommerce' ), 'TR70' => __( 'Karaman', 'woocommerce' ), 'TR71' => __( 'Kırıkkale', 'woocommerce' ), 'TR72' => __( 'Batman', 'woocommerce' ), 'TR73' => __( 'Şırnak', 'woocommerce' ), 'TR74' => __( 'Bartın', 'woocommerce' ), 'TR75' => __( 'Ardahan', 'woocommerce' ), 'TR76' => __( 'Iğdır', 'woocommerce' ), 'TR77' => __( 'Yalova', 'woocommerce' ), 'TR78' => __( 'Karabük', 'woocommerce' ), 'TR79' => __( 'Kilis', 'woocommerce' ), 'TR80' => __( 'Osmaniye', 'woocommerce' ), 'TR81' => __( 'Düzce', 'woocommerce' ), ); i18n/states/NP.php000066600000001404152133032050007651 0ustar00 __( 'Bagmati', 'woocommerce' ), 'BHE' => __( 'Bheri', 'woocommerce' ), 'DHA' => __( 'Dhawalagiri', 'woocommerce' ), 'GAN' => __( 'Gandaki', 'woocommerce' ), 'JAN' => __( 'Janakpur', 'woocommerce' ), 'KAR' => __( 'Karnali', 'woocommerce' ), 'KOS' => __( 'Koshi', 'woocommerce' ), 'LUM' => __( 'Lumbini', 'woocommerce' ), 'MAH' => __( 'Mahakali', 'woocommerce' ), 'MEC' => __( 'Mechi', 'woocommerce' ), 'NAR' => __( 'Narayani', 'woocommerce' ), 'RAP' => __( 'Rapti', 'woocommerce' ), 'SAG' => __( 'Sagarmatha', 'woocommerce' ), 'SET' => __( 'Seti', 'woocommerce' ) ); i18n/states/IR.php000066600000004125152133032050007651 0ustar00 __( 'Khuzestan (خوزستان)', 'woocommerce' ), 'THR' => __( 'Tehran (تهران)', 'woocommerce' ), 'ILM' => __( 'Ilaam (ایلام)', 'woocommerce' ), 'BHR' => __( 'Bushehr (بوشهر)', 'woocommerce' ), 'ADL' => __( 'Ardabil (اردبیل)', 'woocommerce' ), 'ESF' => __( 'Isfahan (اصفهان)', 'woocommerce' ), 'YZD' => __( 'Yazd (یزد)', 'woocommerce' ), 'KRH' => __( 'Kermanshah (کرمانشاه)', 'woocommerce' ), 'KRN' => __( 'Kerman (کرمان)', 'woocommerce' ), 'HDN' => __( 'Hamadan (همدان)', 'woocommerce' ), 'GZN' => __( 'Ghazvin (قزوین)', 'woocommerce' ), 'ZJN' => __( 'Zanjan (زنجان)', 'woocommerce' ), 'LRS' => __( 'Luristan (لرستان)', 'woocommerce' ), 'ABZ' => __( 'Alborz (البرز)', 'woocommerce' ), 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'woocommerce' ), 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'woocommerce' ), 'CHB' => __( 'Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'woocommerce' ), 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'woocommerce' ), 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'woocommerce' ), 'NKH' => __( 'North Khorasan (خراسان جنوبی)', 'woocommerce' ), 'SMN' => __( 'Semnan (سمنان)', 'woocommerce' ), 'FRS' => __( 'Fars (فارس)', 'woocommerce' ), 'QHM' => __( 'Qom (قم)', 'woocommerce' ), 'KRD' => __( 'Kurdistan / کردستان)', 'woocommerce' ), 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'woocommerce' ), 'GLS' => __( 'Golestan (گلستان)', 'woocommerce' ), 'GIL' => __( 'Gilan (گیلان)', 'woocommerce' ), 'MZN' => __( 'Mazandaran (مازندران)', 'woocommerce' ), 'MKZ' => __( 'Markazi (مرکزی)', 'woocommerce' ), 'HRZ' => __( 'Hormozgan (هرمزگان)', 'woocommerce' ), 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'woocommerce' ) ); i18n/states/IN.php000066600000003370152133032050007646 0ustar00 __( 'Andhra Pradesh', 'woocommerce' ), 'AR' => __( 'Arunachal Pradesh', 'woocommerce' ), 'AS' => __( 'Assam', 'woocommerce' ), 'BR' => __( 'Bihar', 'woocommerce' ), 'CT' => __( 'Chhattisgarh', 'woocommerce' ), 'GA' => __( 'Goa', 'woocommerce' ), 'GJ' => __( 'Gujarat', 'woocommerce' ), 'HR' => __( 'Haryana', 'woocommerce' ), 'HP' => __( 'Himachal Pradesh', 'woocommerce' ), 'JK' => __( 'Jammu and Kashmir', 'woocommerce' ), 'JH' => __( 'Jharkhand', 'woocommerce' ), 'KA' => __( 'Karnataka', 'woocommerce' ), 'KL' => __( 'Kerala', 'woocommerce' ), 'MP' => __( 'Madhya Pradesh', 'woocommerce' ), 'MH' => __( 'Maharashtra', 'woocommerce' ), 'MN' => __( 'Manipur', 'woocommerce' ), 'ML' => __( 'Meghalaya', 'woocommerce' ), 'MZ' => __( 'Mizoram', 'woocommerce' ), 'NL' => __( 'Nagaland', 'woocommerce' ), 'OR' => __( 'Orissa', 'woocommerce' ), 'PB' => __( 'Punjab', 'woocommerce' ), 'RJ' => __( 'Rajasthan', 'woocommerce' ), 'SK' => __( 'Sikkim', 'woocommerce' ), 'TN' => __( 'Tamil Nadu', 'woocommerce' ), 'TS' => __( 'Telangana', 'woocommerce' ), 'TR' => __( 'Tripura', 'woocommerce' ), 'UK' => __( 'Uttarakhand', 'woocommerce' ), 'UP' => __( 'Uttar Pradesh', 'woocommerce' ), 'WB' => __( 'West Bengal', 'woocommerce' ), 'AN' => __( 'Andaman and Nicobar Islands', 'woocommerce' ), 'CH' => __( 'Chandigarh', 'woocommerce' ), 'DN' => __( 'Dadar and Nagar Haveli', 'woocommerce' ), 'DD' => __( 'Daman and Diu', 'woocommerce' ), 'DL' => __( 'Delhi', 'woocommerce' ), 'LD' => __( 'Lakshadeep', 'woocommerce' ), 'PY' => __( 'Pondicherry (Puducherry)', 'woocommerce' ) ); i18n/states/JP.php000066600000004175152133032050007655 0ustar00 __( 'Hokkaido', 'woocommerce' ), 'JP02' => __( 'Aomori', 'woocommerce' ), 'JP03' => __( 'Iwate', 'woocommerce' ), 'JP04' => __( 'Miyagi', 'woocommerce' ), 'JP05' => __( 'Akita', 'woocommerce' ), 'JP06' => __( 'Yamagata', 'woocommerce' ), 'JP07' => __( 'Fukushima', 'woocommerce' ), 'JP08' => __( 'Ibaraki', 'woocommerce' ), 'JP09' => __( 'Tochigi', 'woocommerce' ), 'JP10' => __( 'Gunma', 'woocommerce' ), 'JP11' => __( 'Saitama', 'woocommerce' ), 'JP12' => __( 'Chiba', 'woocommerce' ), 'JP13' => __( 'Tokyo', 'woocommerce' ), 'JP14' => __( 'Kanagawa', 'woocommerce' ), 'JP15' => __( 'Niigata', 'woocommerce' ), 'JP16' => __( 'Toyama', 'woocommerce' ), 'JP17' => __( 'Ishikawa', 'woocommerce' ), 'JP18' => __( 'Fukui', 'woocommerce' ), 'JP19' => __( 'Yamanashi', 'woocommerce' ), 'JP20' => __( 'Nagano', 'woocommerce' ), 'JP21' => __( 'Gifu', 'woocommerce' ), 'JP22' => __( 'Shizuoka', 'woocommerce' ), 'JP23' => __( 'Aichi', 'woocommerce' ), 'JP24' => __( 'Mie', 'woocommerce' ), 'JP25' => __( 'Shiga', 'woocommerce' ), 'JP26' => __( 'Kyoto', 'woocommerce' ), 'JP27' => __( 'Osaka', 'woocommerce' ), 'JP28' => __( 'Hyogo', 'woocommerce' ), 'JP29' => __( 'Nara', 'woocommerce' ), 'JP30' => __( 'Wakayama', 'woocommerce' ), 'JP31' => __( 'Tottori', 'woocommerce' ), 'JP32' => __( 'Shimane', 'woocommerce' ), 'JP33' => __( 'Okayama', 'woocommerce' ), 'JP34' => __( 'Hiroshima', 'woocommerce' ), 'JP35' => __( 'Yamaguchi', 'woocommerce' ), 'JP36' => __( 'Tokushima', 'woocommerce' ), 'JP37' => __( 'Kagawa', 'woocommerce' ), 'JP38' => __( 'Ehime', 'woocommerce' ), 'JP39' => __( 'Kochi', 'woocommerce' ), 'JP40' => __( 'Fukuoka', 'woocommerce' ), 'JP41' => __( 'Saga', 'woocommerce' ), 'JP42' => __( 'Nagasaki', 'woocommerce' ), 'JP43' => __( 'Kumamoto', 'woocommerce' ), 'JP44' => __( 'Oita', 'woocommerce' ), 'JP45' => __( 'Miyazaki', 'woocommerce' ), 'JP46' => __( 'Kagoshima', 'woocommerce' ), 'JP47' => __( 'Okinawa', 'woocommerce' ), ); i18n/states/AR.php000066600000002326152133032050007642 0ustar00 __( 'Ciudad Autónoma de Buenos Aires', 'woocommerce' ), 'B' => __( 'Buenos Aires', 'woocommerce' ), 'K' => __( 'Catamarca', 'woocommerce' ), 'H' => __( 'Chaco', 'woocommerce' ), 'U' => __( 'Chubut', 'woocommerce' ), 'X' => __( 'Córdoba', 'woocommerce' ), 'W' => __( 'Corrientes', 'woocommerce' ), 'E' => __( 'Entre Ríos', 'woocommerce' ), 'P' => __( 'Formosa', 'woocommerce' ), 'Y' => __( 'Jujuy', 'woocommerce' ), 'L' => __( 'La Pampa', 'woocommerce' ), 'F' => __( 'La Rioja', 'woocommerce' ), 'M' => __( 'Mendoza', 'woocommerce' ), 'N' => __( 'Misiones', 'woocommerce' ), 'Q' => __( 'Neuquén', 'woocommerce' ), 'R' => __( 'Río Negro', 'woocommerce' ), 'A' => __( 'Salta', 'woocommerce' ), 'J' => __( 'San Juan', 'woocommerce' ), 'D' => __( 'San Luis', 'woocommerce' ), 'Z' => __( 'Santa Cruz', 'woocommerce' ), 'S' => __( 'Santa Fe', 'woocommerce' ), 'G' => __( 'Santiago del Estero', 'woocommerce' ), 'V' => __( 'Tierra del Fuego', 'woocommerce' ), 'T' => __( 'Tucumán', 'woocommerce' ) ); i18n/states/AU.php000066600000001105152133032050007637 0ustar00 __( 'Australian Capital Territory', 'woocommerce' ), 'NSW' => __( 'New South Wales', 'woocommerce' ), 'NT' => __( 'Northern Territory', 'woocommerce' ), 'QLD' => __( 'Queensland', 'woocommerce' ), 'SA' => __( 'South Australia', 'woocommerce' ), 'TAS' => __( 'Tasmania', 'woocommerce' ), 'VIC' => __( 'Victoria', 'woocommerce' ), 'WA' => __( 'Western Australia', 'woocommerce' ) ); i18n/states/US.php000066600000004743152133032050007674 0ustar00 __( 'Alabama', 'woocommerce' ), 'AK' => __( 'Alaska', 'woocommerce' ), 'AZ' => __( 'Arizona', 'woocommerce' ), 'AR' => __( 'Arkansas', 'woocommerce' ), 'CA' => __( 'California', 'woocommerce' ), 'CO' => __( 'Colorado', 'woocommerce' ), 'CT' => __( 'Connecticut', 'woocommerce' ), 'DE' => __( 'Delaware', 'woocommerce' ), 'DC' => __( 'District Of Columbia', 'woocommerce' ), 'FL' => __( 'Florida', 'woocommerce' ), 'GA' => _x( 'Georgia', 'US state of Georgia', 'woocommerce' ), 'HI' => __( 'Hawaii', 'woocommerce' ), 'ID' => __( 'Idaho', 'woocommerce' ), 'IL' => __( 'Illinois', 'woocommerce' ), 'IN' => __( 'Indiana', 'woocommerce' ), 'IA' => __( 'Iowa', 'woocommerce' ), 'KS' => __( 'Kansas', 'woocommerce' ), 'KY' => __( 'Kentucky', 'woocommerce' ), 'LA' => __( 'Louisiana', 'woocommerce' ), 'ME' => __( 'Maine', 'woocommerce' ), 'MD' => __( 'Maryland', 'woocommerce' ), 'MA' => __( 'Massachusetts', 'woocommerce' ), 'MI' => __( 'Michigan', 'woocommerce' ), 'MN' => __( 'Minnesota', 'woocommerce' ), 'MS' => __( 'Mississippi', 'woocommerce' ), 'MO' => __( 'Missouri', 'woocommerce' ), 'MT' => __( 'Montana', 'woocommerce' ), 'NE' => __( 'Nebraska', 'woocommerce' ), 'NV' => __( 'Nevada', 'woocommerce' ), 'NH' => __( 'New Hampshire', 'woocommerce' ), 'NJ' => __( 'New Jersey', 'woocommerce' ), 'NM' => __( 'New Mexico', 'woocommerce' ), 'NY' => __( 'New York', 'woocommerce' ), 'NC' => __( 'North Carolina', 'woocommerce' ), 'ND' => __( 'North Dakota', 'woocommerce' ), 'OH' => __( 'Ohio', 'woocommerce' ), 'OK' => __( 'Oklahoma', 'woocommerce' ), 'OR' => __( 'Oregon', 'woocommerce' ), 'PA' => __( 'Pennsylvania', 'woocommerce' ), 'RI' => __( 'Rhode Island', 'woocommerce' ), 'SC' => __( 'South Carolina', 'woocommerce' ), 'SD' => __( 'South Dakota', 'woocommerce' ), 'TN' => __( 'Tennessee', 'woocommerce' ), 'TX' => __( 'Texas', 'woocommerce' ), 'UT' => __( 'Utah', 'woocommerce' ), 'VT' => __( 'Vermont', 'woocommerce' ), 'VA' => __( 'Virginia', 'woocommerce' ), 'WA' => __( 'Washington', 'woocommerce' ), 'WV' => __( 'West Virginia', 'woocommerce' ), 'WI' => __( 'Wisconsin', 'woocommerce' ), 'WY' => __( 'Wyoming', 'woocommerce' ), 'AA' => __( 'Armed Forces (AA)', 'woocommerce' ), 'AE' => __( 'Armed Forces (AE)', 'woocommerce' ), 'AP' => __( 'Armed Forces (AP)', 'woocommerce' ), ); i18n/languages/woocommerce.pot000066600002073535152133032050012351 0ustar00# Copyright (C) 2017 WooThemes # This file is distributed under the same license as the WooCommerce package. msgid "" msgstr "" "Project-Id-Version: WooCommerce 2.6.14\n" "Report-Msgid-Bugs-To: https://github.com/woothemes/woocommerce/issues\n" "POT-Creation-Date: 2017-02-02 22:05:25+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "X-Generator: grunt-wp-i18n 0.5.4\n" #: i18n/continents.php:19 msgid "Africa" msgstr "" #: i18n/continents.php:82 i18n/countries.php:26 msgid "Antarctica" msgstr "" #: i18n/continents.php:92 msgid "Asia" msgstr "" #: i18n/continents.php:150 msgid "Europe" msgstr "" #: i18n/continents.php:207 msgid "North America" msgstr "" #: i18n/continents.php:254 msgid "Oceania" msgstr "" #: i18n/continents.php:285 msgid "South America" msgstr "" #: i18n/countries.php:18 msgid "Afghanistan" msgstr "" #: i18n/countries.php:19 msgid "Åland Islands" msgstr "" #: i18n/countries.php:20 msgid "Albania" msgstr "" #: i18n/countries.php:21 msgid "Algeria" msgstr "" #: i18n/countries.php:22 msgid "American Samoa" msgstr "" #: i18n/countries.php:23 msgid "Andorra" msgstr "" #: i18n/countries.php:24 msgid "Angola" msgstr "" #: i18n/countries.php:25 msgid "Anguilla" msgstr "" #: i18n/countries.php:27 msgid "Antigua and Barbuda" msgstr "" #: i18n/countries.php:28 msgid "Argentina" msgstr "" #: i18n/countries.php:29 msgid "Armenia" msgstr "" #: i18n/countries.php:30 msgid "Aruba" msgstr "" #: i18n/countries.php:31 msgid "Australia" msgstr "" #: i18n/countries.php:32 msgid "Austria" msgstr "" #: i18n/countries.php:33 msgid "Azerbaijan" msgstr "" #: i18n/countries.php:34 msgid "Bahamas" msgstr "" #: i18n/countries.php:35 msgid "Bahrain" msgstr "" #: i18n/countries.php:36 msgid "Bangladesh" msgstr "" #: i18n/countries.php:37 msgid "Barbados" msgstr "" #: i18n/countries.php:38 msgid "Belarus" msgstr "" #: i18n/countries.php:39 msgid "Belgium" msgstr "" #: i18n/countries.php:40 msgid "Belau" msgstr "" #: i18n/countries.php:41 msgid "Belize" msgstr "" #: i18n/countries.php:42 msgid "Benin" msgstr "" #: i18n/countries.php:43 msgid "Bermuda" msgstr "" #: i18n/countries.php:44 msgid "Bhutan" msgstr "" #: i18n/countries.php:45 msgid "Bolivia" msgstr "" #: i18n/countries.php:46 msgid "Bonaire, Saint Eustatius and Saba" msgstr "" #: i18n/countries.php:47 msgid "Bosnia and Herzegovina" msgstr "" #: i18n/countries.php:48 msgid "Botswana" msgstr "" #: i18n/countries.php:49 msgid "Bouvet Island" msgstr "" #: i18n/countries.php:50 msgid "Brazil" msgstr "" #: i18n/countries.php:51 msgid "British Indian Ocean Territory" msgstr "" #: i18n/countries.php:52 msgid "British Virgin Islands" msgstr "" #: i18n/countries.php:53 msgid "Brunei" msgstr "" #: i18n/countries.php:54 msgid "Bulgaria" msgstr "" #: i18n/countries.php:55 msgid "Burkina Faso" msgstr "" #: i18n/countries.php:56 msgid "Burundi" msgstr "" #: i18n/countries.php:57 msgid "Cambodia" msgstr "" #: i18n/countries.php:58 msgid "Cameroon" msgstr "" #: i18n/countries.php:59 msgid "Canada" msgstr "" #: i18n/countries.php:60 msgid "Cape Verde" msgstr "" #: i18n/countries.php:61 msgid "Cayman Islands" msgstr "" #: i18n/countries.php:62 msgid "Central African Republic" msgstr "" #: i18n/countries.php:63 msgid "Chad" msgstr "" #: i18n/countries.php:64 msgid "Chile" msgstr "" #: i18n/countries.php:65 msgid "China" msgstr "" #: i18n/countries.php:66 msgid "Christmas Island" msgstr "" #: i18n/countries.php:67 msgid "Cocos (Keeling) Islands" msgstr "" #: i18n/countries.php:68 msgid "Colombia" msgstr "" #: i18n/countries.php:69 msgid "Comoros" msgstr "" #: i18n/countries.php:70 msgid "Congo (Brazzaville)" msgstr "" #: i18n/countries.php:71 msgid "Congo (Kinshasa)" msgstr "" #: i18n/countries.php:72 msgid "Cook Islands" msgstr "" #: i18n/countries.php:73 msgid "Costa Rica" msgstr "" #: i18n/countries.php:74 msgid "Croatia" msgstr "" #: i18n/countries.php:75 msgid "Cuba" msgstr "" #: i18n/countries.php:76 msgid "Curaçao" msgstr "" #: i18n/countries.php:77 msgid "Cyprus" msgstr "" #: i18n/countries.php:78 msgid "Czech Republic" msgstr "" #: i18n/countries.php:79 msgid "Denmark" msgstr "" #: i18n/countries.php:80 msgid "Djibouti" msgstr "" #: i18n/countries.php:81 msgid "Dominica" msgstr "" #: i18n/countries.php:82 msgid "Dominican Republic" msgstr "" #: i18n/countries.php:83 msgid "Ecuador" msgstr "" #: i18n/countries.php:84 msgid "Egypt" msgstr "" #: i18n/countries.php:85 msgid "El Salvador" msgstr "" #: i18n/countries.php:86 msgid "Equatorial Guinea" msgstr "" #: i18n/countries.php:87 msgid "Eritrea" msgstr "" #: i18n/countries.php:88 msgid "Estonia" msgstr "" #: i18n/countries.php:89 msgid "Ethiopia" msgstr "" #: i18n/countries.php:90 msgid "Falkland Islands" msgstr "" #: i18n/countries.php:91 msgid "Faroe Islands" msgstr "" #: i18n/countries.php:92 msgid "Fiji" msgstr "" #: i18n/countries.php:93 msgid "Finland" msgstr "" #: i18n/countries.php:94 msgid "France" msgstr "" #: i18n/countries.php:95 msgid "French Guiana" msgstr "" #: i18n/countries.php:96 msgid "French Polynesia" msgstr "" #: i18n/countries.php:97 msgid "French Southern Territories" msgstr "" #: i18n/countries.php:98 msgid "Gabon" msgstr "" #: i18n/countries.php:99 msgid "Gambia" msgstr "" #: i18n/countries.php:100 msgid "Georgia" msgstr "" #: i18n/countries.php:101 msgid "Germany" msgstr "" #: i18n/countries.php:102 msgid "Ghana" msgstr "" #: i18n/countries.php:103 msgid "Gibraltar" msgstr "" #: i18n/countries.php:104 msgid "Greece" msgstr "" #: i18n/countries.php:105 msgid "Greenland" msgstr "" #: i18n/countries.php:106 msgid "Grenada" msgstr "" #: i18n/countries.php:107 msgid "Guadeloupe" msgstr "" #: i18n/countries.php:108 msgid "Guam" msgstr "" #: i18n/countries.php:109 msgid "Guatemala" msgstr "" #: i18n/countries.php:110 msgid "Guernsey" msgstr "" #: i18n/countries.php:111 msgid "Guinea" msgstr "" #: i18n/countries.php:112 msgid "Guinea-Bissau" msgstr "" #: i18n/countries.php:113 msgid "Guyana" msgstr "" #: i18n/countries.php:114 msgid "Haiti" msgstr "" #: i18n/countries.php:115 msgid "Heard Island and McDonald Islands" msgstr "" #: i18n/countries.php:116 msgid "Honduras" msgstr "" #: i18n/countries.php:117 msgid "Hong Kong" msgstr "" #: i18n/countries.php:118 msgid "Hungary" msgstr "" #: i18n/countries.php:119 msgid "Iceland" msgstr "" #: i18n/countries.php:120 msgid "India" msgstr "" #: i18n/countries.php:121 msgid "Indonesia" msgstr "" #: i18n/countries.php:122 msgid "Iran" msgstr "" #: i18n/countries.php:123 msgid "Iraq" msgstr "" #: i18n/countries.php:124 msgid "Republic of Ireland" msgstr "" #: i18n/countries.php:125 msgid "Isle of Man" msgstr "" #: i18n/countries.php:126 msgid "Israel" msgstr "" #: i18n/countries.php:127 msgid "Italy" msgstr "" #: i18n/countries.php:128 msgid "Ivory Coast" msgstr "" #: i18n/countries.php:129 msgid "Jamaica" msgstr "" #: i18n/countries.php:130 msgid "Japan" msgstr "" #: i18n/countries.php:131 msgid "Jersey" msgstr "" #: i18n/countries.php:132 msgid "Jordan" msgstr "" #: i18n/countries.php:133 msgid "Kazakhstan" msgstr "" #: i18n/countries.php:134 msgid "Kenya" msgstr "" #: i18n/countries.php:135 msgid "Kiribati" msgstr "" #: i18n/countries.php:136 msgid "Kuwait" msgstr "" #: i18n/countries.php:137 msgid "Kyrgyzstan" msgstr "" #: i18n/countries.php:138 msgid "Laos" msgstr "" #: i18n/countries.php:139 msgid "Latvia" msgstr "" #: i18n/countries.php:140 msgid "Lebanon" msgstr "" #: i18n/countries.php:141 msgid "Lesotho" msgstr "" #: i18n/countries.php:142 msgid "Liberia" msgstr "" #: i18n/countries.php:143 msgid "Libya" msgstr "" #: i18n/countries.php:144 msgid "Liechtenstein" msgstr "" #: i18n/countries.php:145 msgid "Lithuania" msgstr "" #: i18n/countries.php:146 msgid "Luxembourg" msgstr "" #: i18n/countries.php:147 msgid "Macao S.A.R., China" msgstr "" #: i18n/countries.php:148 msgid "Macedonia" msgstr "" #: i18n/countries.php:149 msgid "Madagascar" msgstr "" #: i18n/countries.php:150 msgid "Malawi" msgstr "" #: i18n/countries.php:151 msgid "Malaysia" msgstr "" #: i18n/countries.php:152 msgid "Maldives" msgstr "" #: i18n/countries.php:153 msgid "Mali" msgstr "" #: i18n/countries.php:154 msgid "Malta" msgstr "" #: i18n/countries.php:155 msgid "Marshall Islands" msgstr "" #: i18n/countries.php:156 msgid "Martinique" msgstr "" #: i18n/countries.php:157 msgid "Mauritania" msgstr "" #: i18n/countries.php:158 msgid "Mauritius" msgstr "" #: i18n/countries.php:159 msgid "Mayotte" msgstr "" #: i18n/countries.php:160 msgid "Mexico" msgstr "" #: i18n/countries.php:161 msgid "Micronesia" msgstr "" #: i18n/countries.php:162 msgid "Moldova" msgstr "" #: i18n/countries.php:163 msgid "Monaco" msgstr "" #: i18n/countries.php:164 msgid "Mongolia" msgstr "" #: i18n/countries.php:165 msgid "Montenegro" msgstr "" #: i18n/countries.php:166 msgid "Montserrat" msgstr "" #: i18n/countries.php:167 msgid "Morocco" msgstr "" #: i18n/countries.php:168 msgid "Mozambique" msgstr "" #: i18n/countries.php:169 msgid "Myanmar" msgstr "" #: i18n/countries.php:170 msgid "Namibia" msgstr "" #: i18n/countries.php:171 msgid "Nauru" msgstr "" #: i18n/countries.php:172 msgid "Nepal" msgstr "" #: i18n/countries.php:173 msgid "Netherlands" msgstr "" #: i18n/countries.php:174 msgid "New Caledonia" msgstr "" #: i18n/countries.php:175 msgid "New Zealand" msgstr "" #: i18n/countries.php:176 msgid "Nicaragua" msgstr "" #: i18n/countries.php:177 msgid "Niger" msgstr "" #: i18n/countries.php:178 msgid "Nigeria" msgstr "" #: i18n/countries.php:179 msgid "Niue" msgstr "" #: i18n/countries.php:180 msgid "Norfolk Island" msgstr "" #: i18n/countries.php:181 msgid "Northern Mariana Islands" msgstr "" #: i18n/countries.php:182 msgid "North Korea" msgstr "" #: i18n/countries.php:183 msgid "Norway" msgstr "" #: i18n/countries.php:184 msgid "Oman" msgstr "" #: i18n/countries.php:185 msgid "Pakistan" msgstr "" #: i18n/countries.php:186 msgid "Palestinian Territory" msgstr "" #: i18n/countries.php:187 msgid "Panama" msgstr "" #: i18n/countries.php:188 msgid "Papua New Guinea" msgstr "" #: i18n/countries.php:189 msgid "Paraguay" msgstr "" #: i18n/countries.php:190 msgid "Peru" msgstr "" #: i18n/countries.php:191 msgid "Philippines" msgstr "" #: i18n/countries.php:192 msgid "Pitcairn" msgstr "" #: i18n/countries.php:193 msgid "Poland" msgstr "" #: i18n/countries.php:194 msgid "Portugal" msgstr "" #: i18n/countries.php:195 msgid "Puerto Rico" msgstr "" #: i18n/countries.php:196 msgid "Qatar" msgstr "" #: i18n/countries.php:197 msgid "Reunion" msgstr "" #: i18n/countries.php:198 msgid "Romania" msgstr "" #: i18n/countries.php:199 msgid "Russia" msgstr "" #: i18n/countries.php:200 msgid "Rwanda" msgstr "" #: i18n/countries.php:201 msgid "Saint Barthélemy" msgstr "" #: i18n/countries.php:202 msgid "Saint Helena" msgstr "" #: i18n/countries.php:203 msgid "Saint Kitts and Nevis" msgstr "" #: i18n/countries.php:204 msgid "Saint Lucia" msgstr "" #: i18n/countries.php:205 msgid "Saint Martin (French part)" msgstr "" #: i18n/countries.php:206 msgid "Saint Martin (Dutch part)" msgstr "" #: i18n/countries.php:207 msgid "Saint Pierre and Miquelon" msgstr "" #: i18n/countries.php:208 msgid "Saint Vincent and the Grenadines" msgstr "" #: i18n/countries.php:209 msgid "San Marino" msgstr "" #: i18n/countries.php:210 msgid "São Tomé and Príncipe" msgstr "" #: i18n/countries.php:211 msgid "Saudi Arabia" msgstr "" #: i18n/countries.php:212 msgid "Senegal" msgstr "" #: i18n/countries.php:213 msgid "Serbia" msgstr "" #: i18n/countries.php:214 msgid "Seychelles" msgstr "" #: i18n/countries.php:215 msgid "Sierra Leone" msgstr "" #: i18n/countries.php:216 msgid "Singapore" msgstr "" #: i18n/countries.php:217 msgid "Slovakia" msgstr "" #: i18n/countries.php:218 msgid "Slovenia" msgstr "" #: i18n/countries.php:219 msgid "Solomon Islands" msgstr "" #: i18n/countries.php:220 msgid "Somalia" msgstr "" #: i18n/countries.php:221 msgid "South Africa" msgstr "" #: i18n/countries.php:222 msgid "South Georgia/Sandwich Islands" msgstr "" #: i18n/countries.php:223 msgid "South Korea" msgstr "" #: i18n/countries.php:224 msgid "South Sudan" msgstr "" #: i18n/countries.php:225 msgid "Spain" msgstr "" #: i18n/countries.php:226 msgid "Sri Lanka" msgstr "" #: i18n/countries.php:227 msgid "Sudan" msgstr "" #: i18n/countries.php:228 msgid "Suriname" msgstr "" #: i18n/countries.php:229 msgid "Svalbard and Jan Mayen" msgstr "" #: i18n/countries.php:230 msgid "Swaziland" msgstr "" #: i18n/countries.php:231 msgid "Sweden" msgstr "" #: i18n/countries.php:232 msgid "Switzerland" msgstr "" #: i18n/countries.php:233 msgid "Syria" msgstr "" #: i18n/countries.php:234 msgid "Taiwan" msgstr "" #: i18n/countries.php:235 msgid "Tajikistan" msgstr "" #: i18n/countries.php:236 msgid "Tanzania" msgstr "" #: i18n/countries.php:237 msgid "Thailand" msgstr "" #: i18n/countries.php:238 msgid "Timor-Leste" msgstr "" #: i18n/countries.php:239 msgid "Togo" msgstr "" #: i18n/countries.php:240 msgid "Tokelau" msgstr "" #: i18n/countries.php:241 msgid "Tonga" msgstr "" #: i18n/countries.php:242 msgid "Trinidad and Tobago" msgstr "" #: i18n/countries.php:243 msgid "Tunisia" msgstr "" #: i18n/countries.php:244 msgid "Turkey" msgstr "" #: i18n/countries.php:245 msgid "Turkmenistan" msgstr "" #: i18n/countries.php:246 msgid "Turks and Caicos Islands" msgstr "" #: i18n/countries.php:247 msgid "Tuvalu" msgstr "" #: i18n/countries.php:248 msgid "Uganda" msgstr "" #: i18n/countries.php:249 msgid "Ukraine" msgstr "" #: i18n/countries.php:250 msgid "United Arab Emirates" msgstr "" #: i18n/countries.php:251 msgid "United Kingdom (UK)" msgstr "" #: i18n/countries.php:252 msgid "United States (US)" msgstr "" #: i18n/countries.php:253 msgid "United States (US) Minor Outlying Islands" msgstr "" #: i18n/countries.php:254 msgid "United States (US) Virgin Islands" msgstr "" #: i18n/countries.php:255 msgid "Uruguay" msgstr "" #: i18n/countries.php:256 msgid "Uzbekistan" msgstr "" #: i18n/countries.php:257 msgid "Vanuatu" msgstr "" #: i18n/countries.php:258 msgid "Vatican" msgstr "" #: i18n/countries.php:259 msgid "Venezuela" msgstr "" #: i18n/countries.php:260 msgid "Vietnam" msgstr "" #: i18n/countries.php:261 msgid "Wallis and Futuna" msgstr "" #: i18n/countries.php:262 msgid "Western Sahara" msgstr "" #: i18n/countries.php:263 msgid "Samoa" msgstr "" #: i18n/countries.php:264 msgid "Yemen" msgstr "" #: i18n/countries.php:265 msgid "Zambia" msgstr "" #: i18n/countries.php:266 msgid "Zimbabwe" msgstr "" #: i18n/locale-info.php:371 msgid "Consumption tax" msgstr "" #: i18n/states/AR.php:13 msgid "Ciudad Autónoma de Buenos Aires" msgstr "" #: i18n/states/AR.php:14 msgid "Buenos Aires" msgstr "" #: i18n/states/AR.php:15 msgid "Catamarca" msgstr "" #: i18n/states/AR.php:16 msgid "Chaco" msgstr "" #: i18n/states/AR.php:17 msgid "Chubut" msgstr "" #: i18n/states/AR.php:18 i18n/states/ES.php:30 msgid "Córdoba" msgstr "" #: i18n/states/AR.php:19 msgid "Corrientes" msgstr "" #: i18n/states/AR.php:20 msgid "Entre Ríos" msgstr "" #: i18n/states/AR.php:21 msgid "Formosa" msgstr "" #: i18n/states/AR.php:22 msgid "Jujuy" msgstr "" #: i18n/states/AR.php:23 msgid "La Pampa" msgstr "" #: i18n/states/AR.php:24 i18n/states/ES.php:39 msgid "La Rioja" msgstr "" #: i18n/states/AR.php:25 msgid "Mendoza" msgstr "" #: i18n/states/AR.php:26 msgid "Misiones" msgstr "" #: i18n/states/AR.php:27 msgid "Neuquén" msgstr "" #: i18n/states/AR.php:28 msgid "Río Negro" msgstr "" #: i18n/states/AR.php:29 msgid "Salta" msgstr "" #: i18n/states/AR.php:30 msgid "San Juan" msgstr "" #: i18n/states/AR.php:31 msgid "San Luis" msgstr "" #: i18n/states/AR.php:32 msgid "Santa Cruz" msgstr "" #: i18n/states/AR.php:33 msgid "Santa Fe" msgstr "" #: i18n/states/AR.php:34 msgid "Santiago del Estero" msgstr "" #: i18n/states/AR.php:35 msgid "Tierra del Fuego" msgstr "" #: i18n/states/AR.php:36 msgid "Tucumán" msgstr "" #: i18n/states/AU.php:13 msgid "Australian Capital Territory" msgstr "" #: i18n/states/AU.php:14 msgid "New South Wales" msgstr "" #: i18n/states/AU.php:15 msgid "Northern Territory" msgstr "" #: i18n/states/AU.php:16 msgid "Queensland" msgstr "" #: i18n/states/AU.php:17 msgid "South Australia" msgstr "" #: i18n/states/AU.php:18 msgid "Tasmania" msgstr "" #: i18n/states/AU.php:19 msgid "Victoria" msgstr "" #: i18n/states/AU.php:20 msgid "Western Australia" msgstr "" #: i18n/states/BD.php:13 msgid "Bagerhat" msgstr "" #: i18n/states/BD.php:14 msgid "Bandarban" msgstr "" #: i18n/states/BD.php:15 msgid "Barguna" msgstr "" #: i18n/states/BD.php:16 msgid "Barisal" msgstr "" #: i18n/states/BD.php:17 msgid "Bhola" msgstr "" #: i18n/states/BD.php:18 msgid "Bogra" msgstr "" #: i18n/states/BD.php:19 msgid "Brahmanbaria" msgstr "" #: i18n/states/BD.php:20 msgid "Chandpur" msgstr "" #: i18n/states/BD.php:21 msgid "Chittagong" msgstr "" #: i18n/states/BD.php:22 msgid "Chuadanga" msgstr "" #: i18n/states/BD.php:23 msgid "Comilla" msgstr "" #: i18n/states/BD.php:24 msgid "Cox's Bazar" msgstr "" #: i18n/states/BD.php:25 msgid "Dhaka" msgstr "" #: i18n/states/BD.php:26 msgid "Dinajpur" msgstr "" #: i18n/states/BD.php:27 msgid "Faridpur " msgstr "" #: i18n/states/BD.php:28 msgid "Feni" msgstr "" #: i18n/states/BD.php:29 msgid "Gaibandha" msgstr "" #: i18n/states/BD.php:30 msgid "Gazipur" msgstr "" #: i18n/states/BD.php:31 msgid "Gopalganj" msgstr "" #: i18n/states/BD.php:32 msgid "Habiganj" msgstr "" #: i18n/states/BD.php:33 msgid "Jamalpur" msgstr "" #: i18n/states/BD.php:34 msgid "Jessore" msgstr "" #: i18n/states/BD.php:35 msgid "Jhalokati" msgstr "" #: i18n/states/BD.php:36 msgid "Jhenaidah" msgstr "" #: i18n/states/BD.php:37 msgid "Joypurhat" msgstr "" #: i18n/states/BD.php:38 msgid "Khagrachhari" msgstr "" #: i18n/states/BD.php:39 msgid "Khulna" msgstr "" #: i18n/states/BD.php:40 msgid "Kishoreganj" msgstr "" #: i18n/states/BD.php:41 msgid "Kurigram" msgstr "" #: i18n/states/BD.php:42 msgid "Kushtia" msgstr "" #: i18n/states/BD.php:43 msgid "Lakshmipur" msgstr "" #: i18n/states/BD.php:44 msgid "Lalmonirhat" msgstr "" #: i18n/states/BD.php:45 msgid "Madaripur" msgstr "" #: i18n/states/BD.php:46 msgid "Magura" msgstr "" #: i18n/states/BD.php:47 msgid "Manikganj " msgstr "" #: i18n/states/BD.php:48 msgid "Meherpur" msgstr "" #: i18n/states/BD.php:49 msgid "Moulvibazar" msgstr "" #: i18n/states/BD.php:50 msgid "Munshiganj" msgstr "" #: i18n/states/BD.php:51 msgid "Mymensingh" msgstr "" #: i18n/states/BD.php:52 msgid "Naogaon" msgstr "" #: i18n/states/BD.php:53 msgid "Narail" msgstr "" #: i18n/states/BD.php:54 msgid "Narayanganj" msgstr "" #: i18n/states/BD.php:55 msgid "Narsingdi" msgstr "" #: i18n/states/BD.php:56 msgid "Natore" msgstr "" #: i18n/states/BD.php:57 msgid "Nawabganj" msgstr "" #: i18n/states/BD.php:58 msgid "Netrakona" msgstr "" #: i18n/states/BD.php:59 msgid "Nilphamari" msgstr "" #: i18n/states/BD.php:60 msgid "Noakhali" msgstr "" #: i18n/states/BD.php:61 msgid "Pabna" msgstr "" #: i18n/states/BD.php:62 msgid "Panchagarh" msgstr "" #: i18n/states/BD.php:63 msgid "Patuakhali" msgstr "" #: i18n/states/BD.php:64 msgid "Pirojpur" msgstr "" #: i18n/states/BD.php:65 msgid "Rajbari" msgstr "" #: i18n/states/BD.php:66 msgid "Rajshahi" msgstr "" #: i18n/states/BD.php:67 msgid "Rangamati" msgstr "" #: i18n/states/BD.php:68 msgid "Rangpur" msgstr "" #: i18n/states/BD.php:69 msgid "Satkhira" msgstr "" #: i18n/states/BD.php:70 msgid "Shariatpur" msgstr "" #: i18n/states/BD.php:71 msgid "Sherpur" msgstr "" #: i18n/states/BD.php:72 msgid "Sirajganj" msgstr "" #: i18n/states/BD.php:73 msgid "Sunamganj" msgstr "" #: i18n/states/BD.php:74 msgid "Sylhet" msgstr "" #: i18n/states/BD.php:75 msgid "Tangail" msgstr "" #: i18n/states/BD.php:76 msgid "Thakurgaon" msgstr "" #: i18n/states/BG.php:13 msgid "Blagoevgrad" msgstr "" #: i18n/states/BG.php:14 msgid "Burgas" msgstr "" #: i18n/states/BG.php:15 msgid "Dobrich" msgstr "" #: i18n/states/BG.php:16 msgid "Gabrovo" msgstr "" #: i18n/states/BG.php:17 msgid "Haskovo" msgstr "" #: i18n/states/BG.php:18 msgid "Kardzhali" msgstr "" #: i18n/states/BG.php:19 msgid "Kyustendil" msgstr "" #: i18n/states/BG.php:20 msgid "Lovech" msgstr "" #: i18n/states/BG.php:21 i18n/states/US.php:39 msgid "Montana" msgstr "" #: i18n/states/BG.php:22 msgid "Pazardzhik" msgstr "" #: i18n/states/BG.php:23 msgid "Pernik" msgstr "" #: i18n/states/BG.php:24 msgid "Pleven" msgstr "" #: i18n/states/BG.php:25 msgid "Plovdiv" msgstr "" #: i18n/states/BG.php:26 msgid "Razgrad" msgstr "" #: i18n/states/BG.php:27 msgid "Ruse" msgstr "" #: i18n/states/BG.php:28 msgid "Shumen" msgstr "" #: i18n/states/BG.php:29 msgid "Silistra" msgstr "" #: i18n/states/BG.php:30 msgid "Sliven" msgstr "" #: i18n/states/BG.php:31 msgid "Smolyan" msgstr "" #: i18n/states/BG.php:32 msgid "Sofia" msgstr "" #: i18n/states/BG.php:33 msgid "Sofia-Grad" msgstr "" #: i18n/states/BG.php:34 msgid "Stara Zagora" msgstr "" #: i18n/states/BG.php:35 msgid "Targovishte" msgstr "" #: i18n/states/BG.php:36 msgid "Varna" msgstr "" #: i18n/states/BG.php:37 msgid "Veliko Tarnovo" msgstr "" #: i18n/states/BG.php:38 msgid "Vidin" msgstr "" #: i18n/states/BG.php:39 msgid "Vratsa" msgstr "" #: i18n/states/BG.php:40 msgid "Yambol" msgstr "" #: i18n/states/BR.php:13 msgid "Acre" msgstr "" #: i18n/states/BR.php:14 msgid "Alagoas" msgstr "" #: i18n/states/BR.php:15 msgid "Amapá" msgstr "" #: i18n/states/BR.php:16 i18n/states/PE.php:15 msgid "Amazonas" msgstr "" #: i18n/states/BR.php:17 msgid "Bahia" msgstr "" #: i18n/states/BR.php:18 msgid "Ceará" msgstr "" #: i18n/states/BR.php:19 i18n/states/MX.php:13 msgid "Distrito Federal" msgstr "" #: i18n/states/BR.php:20 msgid "Espírito Santo" msgstr "" #: i18n/states/BR.php:21 msgid "Goiás" msgstr "" #: i18n/states/BR.php:22 msgid "Maranhão" msgstr "" #: i18n/states/BR.php:23 msgid "Mato Grosso" msgstr "" #: i18n/states/BR.php:24 msgid "Mato Grosso do Sul" msgstr "" #: i18n/states/BR.php:25 msgid "Minas Gerais" msgstr "" #: i18n/states/BR.php:26 msgid "Pará" msgstr "" #: i18n/states/BR.php:27 msgid "Paraíba" msgstr "" #: i18n/states/BR.php:28 msgid "Paraná" msgstr "" #: i18n/states/BR.php:29 msgid "Pernambuco" msgstr "" #: i18n/states/BR.php:30 msgid "Piauí" msgstr "" #: i18n/states/BR.php:31 msgid "Rio de Janeiro" msgstr "" #: i18n/states/BR.php:32 msgid "Rio Grande do Norte" msgstr "" #: i18n/states/BR.php:33 msgid "Rio Grande do Sul" msgstr "" #: i18n/states/BR.php:34 msgid "Rondônia" msgstr "" #: i18n/states/BR.php:35 msgid "Roraima" msgstr "" #: i18n/states/BR.php:36 msgid "Santa Catarina" msgstr "" #: i18n/states/BR.php:37 msgid "São Paulo" msgstr "" #: i18n/states/BR.php:38 msgid "Sergipe" msgstr "" #: i18n/states/BR.php:39 msgid "Tocantins" msgstr "" #: i18n/states/CA.php:13 msgid "Alberta" msgstr "" #: i18n/states/CA.php:14 msgid "British Columbia" msgstr "" #: i18n/states/CA.php:15 msgid "Manitoba" msgstr "" #: i18n/states/CA.php:16 msgid "New Brunswick" msgstr "" #: i18n/states/CA.php:17 msgid "Newfoundland and Labrador" msgstr "" #: i18n/states/CA.php:18 msgid "Northwest Territories" msgstr "" #: i18n/states/CA.php:19 msgid "Nova Scotia" msgstr "" #: i18n/states/CA.php:20 msgid "Nunavut" msgstr "" #: i18n/states/CA.php:21 msgid "Ontario" msgstr "" #: i18n/states/CA.php:22 msgid "Prince Edward Island" msgstr "" #: i18n/states/CA.php:23 msgid "Quebec" msgstr "" #: i18n/states/CA.php:24 msgid "Saskatchewan" msgstr "" #: i18n/states/CA.php:25 msgid "Yukon Territory" msgstr "" #: i18n/states/CN.php:13 msgid "Yunnan / 云南" msgstr "" #: i18n/states/CN.php:14 msgid "Beijing / 北京" msgstr "" #: i18n/states/CN.php:15 msgid "Tianjin / 天津" msgstr "" #: i18n/states/CN.php:16 msgid "Hebei / 河北" msgstr "" #: i18n/states/CN.php:17 msgid "Shanxi / 山西" msgstr "" #: i18n/states/CN.php:18 msgid "Inner Mongolia / 內蒙古" msgstr "" #: i18n/states/CN.php:19 msgid "Liaoning / 辽宁" msgstr "" #: i18n/states/CN.php:20 msgid "Jilin / 吉林" msgstr "" #: i18n/states/CN.php:21 msgid "Heilongjiang / 黑龙江" msgstr "" #: i18n/states/CN.php:22 msgid "Shanghai / 上海" msgstr "" #: i18n/states/CN.php:23 msgid "Jiangsu / 江苏" msgstr "" #: i18n/states/CN.php:24 msgid "Zhejiang / 浙江" msgstr "" #: i18n/states/CN.php:25 msgid "Anhui / 安徽" msgstr "" #: i18n/states/CN.php:26 msgid "Fujian / 福建" msgstr "" #: i18n/states/CN.php:27 msgid "Jiangxi / 江西" msgstr "" #: i18n/states/CN.php:28 msgid "Shandong / 山东" msgstr "" #: i18n/states/CN.php:29 msgid "Henan / 河南" msgstr "" #: i18n/states/CN.php:30 msgid "Hubei / 湖北" msgstr "" #: i18n/states/CN.php:31 msgid "Hunan / 湖南" msgstr "" #: i18n/states/CN.php:32 msgid "Guangdong / 广东" msgstr "" #: i18n/states/CN.php:33 msgid "Guangxi Zhuang / 广西壮族" msgstr "" #: i18n/states/CN.php:34 msgid "Hainan / 海南" msgstr "" #: i18n/states/CN.php:35 msgid "Chongqing / 重庆" msgstr "" #: i18n/states/CN.php:36 msgid "Sichuan / 四川" msgstr "" #: i18n/states/CN.php:37 msgid "Guizhou / 贵州" msgstr "" #: i18n/states/CN.php:38 msgid "Shaanxi / 陕西" msgstr "" #: i18n/states/CN.php:39 msgid "Gansu / 甘肃" msgstr "" #: i18n/states/CN.php:40 msgid "Qinghai / 青海" msgstr "" #: i18n/states/CN.php:41 msgid "Ningxia Hui / 宁夏" msgstr "" #: i18n/states/CN.php:42 msgid "Macau / 澳门" msgstr "" #: i18n/states/CN.php:43 msgid "Tibet / 西藏" msgstr "" #: i18n/states/CN.php:44 msgid "Xinjiang / 新疆" msgstr "" #: i18n/states/ES.php:13 msgid "A Coruña" msgstr "" #: i18n/states/ES.php:14 msgid "Araba/Álava" msgstr "" #: i18n/states/ES.php:15 msgid "Albacete" msgstr "" #: i18n/states/ES.php:16 msgid "Alicante" msgstr "" #: i18n/states/ES.php:17 msgid "Almería" msgstr "" #: i18n/states/ES.php:18 msgid "Asturias" msgstr "" #: i18n/states/ES.php:19 msgid "Ávila" msgstr "" #: i18n/states/ES.php:20 msgid "Badajoz" msgstr "" #: i18n/states/ES.php:21 msgid "Baleares" msgstr "" #: i18n/states/ES.php:22 msgid "Barcelona" msgstr "" #: i18n/states/ES.php:23 msgid "Burgos" msgstr "" #: i18n/states/ES.php:24 msgid "Cáceres" msgstr "" #: i18n/states/ES.php:25 msgid "Cádiz" msgstr "" #: i18n/states/ES.php:26 msgid "Cantabria" msgstr "" #: i18n/states/ES.php:27 msgid "Castellón" msgstr "" #: i18n/states/ES.php:28 msgid "Ceuta" msgstr "" #: i18n/states/ES.php:29 msgid "Ciudad Real" msgstr "" #: i18n/states/ES.php:31 msgid "Cuenca" msgstr "" #: i18n/states/ES.php:32 msgid "Girona" msgstr "" #: i18n/states/ES.php:33 msgid "Granada" msgstr "" #: i18n/states/ES.php:34 msgid "Guadalajara" msgstr "" #: i18n/states/ES.php:35 msgid "Gipuzkoa" msgstr "" #: i18n/states/ES.php:36 msgid "Huelva" msgstr "" #: i18n/states/ES.php:37 msgid "Huesca" msgstr "" #: i18n/states/ES.php:38 msgid "Jaén" msgstr "" #: i18n/states/ES.php:40 msgid "Las Palmas" msgstr "" #: i18n/states/ES.php:41 msgid "León" msgstr "" #: i18n/states/ES.php:42 msgid "Lleida" msgstr "" #: i18n/states/ES.php:43 msgid "Lugo" msgstr "" #: i18n/states/ES.php:44 msgid "Madrid" msgstr "" #: i18n/states/ES.php:45 msgid "Málaga" msgstr "" #: i18n/states/ES.php:46 msgid "Melilla" msgstr "" #: i18n/states/ES.php:47 msgid "Murcia" msgstr "" #: i18n/states/ES.php:48 msgid "Navarra" msgstr "" #: i18n/states/ES.php:49 msgid "Ourense" msgstr "" #: i18n/states/ES.php:50 msgid "Palencia" msgstr "" #: i18n/states/ES.php:51 msgid "Pontevedra" msgstr "" #: i18n/states/ES.php:52 msgid "Salamanca" msgstr "" #: i18n/states/ES.php:53 msgid "Santa Cruz de Tenerife" msgstr "" #: i18n/states/ES.php:54 msgid "Segovia" msgstr "" #: i18n/states/ES.php:55 msgid "Sevilla" msgstr "" #: i18n/states/ES.php:56 msgid "Soria" msgstr "" #: i18n/states/ES.php:57 msgid "Tarragona" msgstr "" #: i18n/states/ES.php:58 msgid "Teruel" msgstr "" #: i18n/states/ES.php:59 msgid "Toledo" msgstr "" #: i18n/states/ES.php:60 msgid "Valencia" msgstr "" #: i18n/states/ES.php:61 msgid "Valladolid" msgstr "" #: i18n/states/ES.php:62 msgid "Bizkaia" msgstr "" #: i18n/states/ES.php:63 msgid "Zamora" msgstr "" #: i18n/states/ES.php:64 msgid "Zaragoza" msgstr "" #: i18n/states/GR.php:13 msgid "Αττική" msgstr "" #: i18n/states/GR.php:14 msgid "Ανατολική Μακεδονία και Θράκη" msgstr "" #: i18n/states/GR.php:15 msgid "Κεντρική Μακεδονία" msgstr "" #: i18n/states/GR.php:16 msgid "Δυτική Μακεδονία" msgstr "" #: i18n/states/GR.php:17 msgid "Ήπειρος" msgstr "" #: i18n/states/GR.php:18 msgid "Θεσσαλία" msgstr "" #: i18n/states/GR.php:19 msgid "Ιόνιοι Νήσοι" msgstr "" #: i18n/states/GR.php:20 msgid "Δυτική Ελλάδα" msgstr "" #: i18n/states/GR.php:21 msgid "Στερεά Ελλάδα" msgstr "" #: i18n/states/GR.php:22 msgid "Πελοπόννησος" msgstr "" #: i18n/states/GR.php:23 msgid "Βόρειο Αιγαίο" msgstr "" #: i18n/states/GR.php:24 msgid "Νότιο Αιγαίο" msgstr "" #: i18n/states/GR.php:25 msgid "Κρήτη" msgstr "" #: i18n/states/HK.php:13 msgid "Hong Kong Island" msgstr "" #: i18n/states/HK.php:14 msgid "Kowloon" msgstr "" #: i18n/states/HK.php:15 msgid "New Territories" msgstr "" #: i18n/states/HU.php:13 msgid "Bács-Kiskun" msgstr "" #: i18n/states/HU.php:14 msgid "Békés" msgstr "" #: i18n/states/HU.php:15 msgid "Baranya" msgstr "" #: i18n/states/HU.php:16 msgid "Borsod-Abaúj-Zemplén" msgstr "" #: i18n/states/HU.php:17 msgid "Budapest" msgstr "" #: i18n/states/HU.php:18 msgid "Csongrád" msgstr "" #: i18n/states/HU.php:19 msgid "Fejér" msgstr "" #: i18n/states/HU.php:20 msgid "Győr-Moson-Sopron" msgstr "" #: i18n/states/HU.php:21 msgid "Hajdú-Bihar" msgstr "" #: i18n/states/HU.php:22 msgid "Heves" msgstr "" #: i18n/states/HU.php:23 msgid "Jász-Nagykun-Szolnok" msgstr "" #: i18n/states/HU.php:24 msgid "Komárom-Esztergom" msgstr "" #: i18n/states/HU.php:25 msgid "Nógrád" msgstr "" #: i18n/states/HU.php:26 msgid "Pest" msgstr "" #: i18n/states/HU.php:27 msgid "Somogy" msgstr "" #: i18n/states/HU.php:28 msgid "Szabolcs-Szatmár-Bereg" msgstr "" #: i18n/states/HU.php:29 msgid "Tolna" msgstr "" #: i18n/states/HU.php:30 msgid "Vas" msgstr "" #: i18n/states/HU.php:31 msgid "Veszprém" msgstr "" #: i18n/states/HU.php:32 msgid "Zala" msgstr "" #: i18n/states/ID.php:13 msgid "Daerah Istimewa Aceh" msgstr "" #: i18n/states/ID.php:14 msgid "Sumatera Utara" msgstr "" #: i18n/states/ID.php:15 msgid "Sumatera Barat" msgstr "" #: i18n/states/ID.php:16 msgid "Riau" msgstr "" #: i18n/states/ID.php:17 msgid "Kepulauan Riau" msgstr "" #: i18n/states/ID.php:18 msgid "Jambi" msgstr "" #: i18n/states/ID.php:19 msgid "Sumatera Selatan" msgstr "" #: i18n/states/ID.php:20 msgid "Bangka Belitung" msgstr "" #: i18n/states/ID.php:21 msgid "Bengkulu" msgstr "" #: i18n/states/ID.php:22 msgid "Lampung" msgstr "" #: i18n/states/ID.php:23 msgid "DKI Jakarta" msgstr "" #: i18n/states/ID.php:24 msgid "Jawa Barat" msgstr "" #: i18n/states/ID.php:25 msgid "Banten" msgstr "" #: i18n/states/ID.php:26 msgid "Jawa Tengah" msgstr "" #: i18n/states/ID.php:27 msgid "Jawa Timur" msgstr "" #: i18n/states/ID.php:28 msgid "Daerah Istimewa Yogyakarta" msgstr "" #: i18n/states/ID.php:29 msgid "Bali" msgstr "" #: i18n/states/ID.php:30 msgid "Nusa Tenggara Barat" msgstr "" #: i18n/states/ID.php:31 msgid "Nusa Tenggara Timur" msgstr "" #: i18n/states/ID.php:32 msgid "Kalimantan Barat" msgstr "" #: i18n/states/ID.php:33 msgid "Kalimantan Tengah" msgstr "" #: i18n/states/ID.php:34 msgid "Kalimantan Timur" msgstr "" #: i18n/states/ID.php:35 msgid "Kalimantan Selatan" msgstr "" #: i18n/states/ID.php:36 msgid "Kalimantan Utara" msgstr "" #: i18n/states/ID.php:37 msgid "Sulawesi Utara" msgstr "" #: i18n/states/ID.php:38 msgid "Sulawesi Tengah" msgstr "" #: i18n/states/ID.php:39 msgid "Sulawesi Tenggara" msgstr "" #: i18n/states/ID.php:40 msgid "Sulawesi Barat" msgstr "" #: i18n/states/ID.php:41 msgid "Sulawesi Selatan" msgstr "" #: i18n/states/ID.php:42 msgid "Gorontalo" msgstr "" #: i18n/states/ID.php:43 msgid "Maluku" msgstr "" #: i18n/states/ID.php:44 msgid "Maluku Utara" msgstr "" #: i18n/states/ID.php:45 msgid "Papua" msgstr "" #: i18n/states/ID.php:46 msgid "Papua Barat" msgstr "" #: i18n/states/IN.php:13 msgid "Andhra Pradesh" msgstr "" #: i18n/states/IN.php:14 msgid "Arunachal Pradesh" msgstr "" #: i18n/states/IN.php:15 msgid "Assam" msgstr "" #: i18n/states/IN.php:16 msgid "Bihar" msgstr "" #: i18n/states/IN.php:17 msgid "Chhattisgarh" msgstr "" #: i18n/states/IN.php:18 msgid "Goa" msgstr "" #: i18n/states/IN.php:19 msgid "Gujarat" msgstr "" #: i18n/states/IN.php:20 msgid "Haryana" msgstr "" #: i18n/states/IN.php:21 msgid "Himachal Pradesh" msgstr "" #: i18n/states/IN.php:22 msgid "Jammu and Kashmir" msgstr "" #: i18n/states/IN.php:23 msgid "Jharkhand" msgstr "" #: i18n/states/IN.php:24 msgid "Karnataka" msgstr "" #: i18n/states/IN.php:25 msgid "Kerala" msgstr "" #: i18n/states/IN.php:26 msgid "Madhya Pradesh" msgstr "" #: i18n/states/IN.php:27 msgid "Maharashtra" msgstr "" #: i18n/states/IN.php:28 msgid "Manipur" msgstr "" #: i18n/states/IN.php:29 msgid "Meghalaya" msgstr "" #: i18n/states/IN.php:30 msgid "Mizoram" msgstr "" #: i18n/states/IN.php:31 msgid "Nagaland" msgstr "" #: i18n/states/IN.php:32 msgid "Orissa" msgstr "" #: i18n/states/IN.php:33 msgid "Punjab" msgstr "" #: i18n/states/IN.php:34 msgid "Rajasthan" msgstr "" #: i18n/states/IN.php:35 msgid "Sikkim" msgstr "" #: i18n/states/IN.php:36 msgid "Tamil Nadu" msgstr "" #: i18n/states/IN.php:37 msgid "Telangana" msgstr "" #: i18n/states/IN.php:38 msgid "Tripura" msgstr "" #: i18n/states/IN.php:39 msgid "Uttarakhand" msgstr "" #: i18n/states/IN.php:40 msgid "Uttar Pradesh" msgstr "" #: i18n/states/IN.php:41 msgid "West Bengal" msgstr "" #: i18n/states/IN.php:42 msgid "Andaman and Nicobar Islands" msgstr "" #: i18n/states/IN.php:43 msgid "Chandigarh" msgstr "" #: i18n/states/IN.php:44 msgid "Dadar and Nagar Haveli" msgstr "" #: i18n/states/IN.php:45 msgid "Daman and Diu" msgstr "" #: i18n/states/IN.php:46 msgid "Delhi" msgstr "" #: i18n/states/IN.php:47 msgid "Lakshadeep" msgstr "" #: i18n/states/IN.php:48 msgid "Pondicherry (Puducherry)" msgstr "" #: i18n/states/IR.php:13 msgid "Khuzestan (خوزستان)" msgstr "" #: i18n/states/IR.php:14 msgid "Tehran (تهران)" msgstr "" #: i18n/states/IR.php:15 msgid "Ilaam (ایلام)" msgstr "" #: i18n/states/IR.php:16 msgid "Bushehr (بوشهر)" msgstr "" #: i18n/states/IR.php:17 msgid "Ardabil (اردبیل)" msgstr "" #: i18n/states/IR.php:18 msgid "Isfahan (اصفهان)" msgstr "" #: i18n/states/IR.php:19 msgid "Yazd (یزد)" msgstr "" #: i18n/states/IR.php:20 msgid "Kermanshah (کرمانشاه)" msgstr "" #: i18n/states/IR.php:21 msgid "Kerman (کرمان)" msgstr "" #: i18n/states/IR.php:22 msgid "Hamadan (همدان)" msgstr "" #: i18n/states/IR.php:23 msgid "Ghazvin (قزوین)" msgstr "" #: i18n/states/IR.php:24 msgid "Zanjan (زنجان)" msgstr "" #: i18n/states/IR.php:25 msgid "Luristan (لرستان)" msgstr "" #: i18n/states/IR.php:26 msgid "Alborz (البرز)" msgstr "" #: i18n/states/IR.php:27 msgid "East Azarbaijan (آذربایجان شرقی)" msgstr "" #: i18n/states/IR.php:28 msgid "West Azarbaijan (آذربایجان غربی)" msgstr "" #: i18n/states/IR.php:29 msgid "Chaharmahal and Bakhtiari (چهارمحال و بختیاری)" msgstr "" #: i18n/states/IR.php:30 msgid "South Khorasan (خراسان جنوبی)" msgstr "" #: i18n/states/IR.php:31 msgid "Razavi Khorasan (خراسان رضوی)" msgstr "" #: i18n/states/IR.php:32 msgid "North Khorasan (خراسان جنوبی)" msgstr "" #: i18n/states/IR.php:33 msgid "Semnan (سمنان)" msgstr "" #: i18n/states/IR.php:34 msgid "Fars (فارس)" msgstr "" #: i18n/states/IR.php:35 msgid "Qom (قم)" msgstr "" #: i18n/states/IR.php:36 msgid "Kurdistan / کردستان)" msgstr "" #: i18n/states/IR.php:37 msgid "Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)" msgstr "" #: i18n/states/IR.php:38 msgid "Golestan (گلستان)" msgstr "" #: i18n/states/IR.php:39 msgid "Gilan (گیلان)" msgstr "" #: i18n/states/IR.php:40 msgid "Mazandaran (مازندران)" msgstr "" #: i18n/states/IR.php:41 msgid "Markazi (مرکزی)" msgstr "" #: i18n/states/IR.php:42 msgid "Hormozgan (هرمزگان)" msgstr "" #: i18n/states/IR.php:43 msgid "Sistan and Baluchestan (سیستان و بلوچستان)" msgstr "" #: i18n/states/IT.php:13 msgid "Agrigento" msgstr "" #: i18n/states/IT.php:14 msgid "Alessandria" msgstr "" #: i18n/states/IT.php:15 msgid "Ancona" msgstr "" #: i18n/states/IT.php:16 msgid "Aosta" msgstr "" #: i18n/states/IT.php:17 msgid "Arezzo" msgstr "" #: i18n/states/IT.php:18 msgid "Ascoli Piceno" msgstr "" #: i18n/states/IT.php:19 msgid "Asti" msgstr "" #: i18n/states/IT.php:20 msgid "Avellino" msgstr "" #: i18n/states/IT.php:21 msgid "Bari" msgstr "" #: i18n/states/IT.php:22 msgid "Barletta-Andria-Trani" msgstr "" #: i18n/states/IT.php:23 msgid "Belluno" msgstr "" #: i18n/states/IT.php:24 msgid "Benevento" msgstr "" #: i18n/states/IT.php:25 msgid "Bergamo" msgstr "" #: i18n/states/IT.php:26 msgid "Biella" msgstr "" #: i18n/states/IT.php:27 msgid "Bologna" msgstr "" #: i18n/states/IT.php:28 msgid "Bolzano" msgstr "" #: i18n/states/IT.php:29 msgid "Brescia" msgstr "" #: i18n/states/IT.php:30 msgid "Brindisi" msgstr "" #: i18n/states/IT.php:31 msgid "Cagliari" msgstr "" #: i18n/states/IT.php:32 msgid "Caltanissetta" msgstr "" #: i18n/states/IT.php:33 msgid "Campobasso" msgstr "" #: i18n/states/IT.php:34 msgid "Carbonia-Iglesias" msgstr "" #: i18n/states/IT.php:35 msgid "Caserta" msgstr "" #: i18n/states/IT.php:36 msgid "Catania" msgstr "" #: i18n/states/IT.php:37 msgid "Catanzaro" msgstr "" #: i18n/states/IT.php:38 msgid "Chieti" msgstr "" #: i18n/states/IT.php:39 msgid "Como" msgstr "" #: i18n/states/IT.php:40 msgid "Cosenza" msgstr "" #: i18n/states/IT.php:41 msgid "Cremona" msgstr "" #: i18n/states/IT.php:42 msgid "Crotone" msgstr "" #: i18n/states/IT.php:43 msgid "Cuneo" msgstr "" #: i18n/states/IT.php:44 msgid "Enna" msgstr "" #: i18n/states/IT.php:45 msgid "Fermo" msgstr "" #: i18n/states/IT.php:46 msgid "Ferrara" msgstr "" #: i18n/states/IT.php:47 msgid "Firenze" msgstr "" #: i18n/states/IT.php:48 msgid "Foggia" msgstr "" #: i18n/states/IT.php:49 msgid "Forlì-Cesena" msgstr "" #: i18n/states/IT.php:50 msgid "Frosinone" msgstr "" #: i18n/states/IT.php:51 msgid "Genova" msgstr "" #: i18n/states/IT.php:52 msgid "Gorizia" msgstr "" #: i18n/states/IT.php:53 msgid "Grosseto" msgstr "" #: i18n/states/IT.php:54 msgid "Imperia" msgstr "" #: i18n/states/IT.php:55 msgid "Isernia" msgstr "" #: i18n/states/IT.php:56 msgid "La Spezia" msgstr "" #: i18n/states/IT.php:57 msgid "L'Aquila" msgstr "" #: i18n/states/IT.php:58 msgid "Latina" msgstr "" #: i18n/states/IT.php:59 msgid "Lecce" msgstr "" #: i18n/states/IT.php:60 msgid "Lecco" msgstr "" #: i18n/states/IT.php:61 msgid "Livorno" msgstr "" #: i18n/states/IT.php:62 msgid "Lodi" msgstr "" #: i18n/states/IT.php:63 msgid "Lucca" msgstr "" #: i18n/states/IT.php:64 msgid "Macerata" msgstr "" #: i18n/states/IT.php:65 msgid "Mantova" msgstr "" #: i18n/states/IT.php:66 msgid "Massa-Carrara" msgstr "" #: i18n/states/IT.php:67 msgid "Matera" msgstr "" #: i18n/states/IT.php:68 msgid "Messina" msgstr "" #: i18n/states/IT.php:69 msgid "Milano" msgstr "" #: i18n/states/IT.php:70 msgid "Modena" msgstr "" #: i18n/states/IT.php:71 msgid "Monza e della Brianza" msgstr "" #: i18n/states/IT.php:72 msgid "Napoli" msgstr "" #: i18n/states/IT.php:73 msgid "Novara" msgstr "" #: i18n/states/IT.php:74 msgid "Nuoro" msgstr "" #: i18n/states/IT.php:75 msgid "Olbia-Tempio" msgstr "" #: i18n/states/IT.php:76 msgid "Oristano" msgstr "" #: i18n/states/IT.php:77 msgid "Padova" msgstr "" #: i18n/states/IT.php:78 msgid "Palermo" msgstr "" #: i18n/states/IT.php:79 msgid "Parma" msgstr "" #: i18n/states/IT.php:80 msgid "Pavia" msgstr "" #: i18n/states/IT.php:81 msgid "Perugia" msgstr "" #: i18n/states/IT.php:82 msgid "Pesaro e Urbino" msgstr "" #: i18n/states/IT.php:83 msgid "Pescara" msgstr "" #: i18n/states/IT.php:84 msgid "Piacenza" msgstr "" #: i18n/states/IT.php:85 msgid "Pisa" msgstr "" #: i18n/states/IT.php:86 msgid "Pistoia" msgstr "" #: i18n/states/IT.php:87 msgid "Pordenone" msgstr "" #: i18n/states/IT.php:88 msgid "Potenza" msgstr "" #: i18n/states/IT.php:89 msgid "Prato" msgstr "" #: i18n/states/IT.php:90 msgid "Ragusa" msgstr "" #: i18n/states/IT.php:91 msgid "Ravenna" msgstr "" #: i18n/states/IT.php:92 msgid "Reggio Calabria" msgstr "" #: i18n/states/IT.php:93 msgid "Reggio Emilia" msgstr "" #: i18n/states/IT.php:94 msgid "Rieti" msgstr "" #: i18n/states/IT.php:95 msgid "Rimini" msgstr "" #: i18n/states/IT.php:96 msgid "Roma" msgstr "" #: i18n/states/IT.php:97 msgid "Rovigo" msgstr "" #: i18n/states/IT.php:98 msgid "Salerno" msgstr "" #: i18n/states/IT.php:99 msgid "Medio Campidano" msgstr "" #: i18n/states/IT.php:100 msgid "Sassari" msgstr "" #: i18n/states/IT.php:101 msgid "Savona" msgstr "" #: i18n/states/IT.php:102 msgid "Siena" msgstr "" #: i18n/states/IT.php:103 msgid "Siracusa" msgstr "" #: i18n/states/IT.php:104 msgid "Sondrio" msgstr "" #: i18n/states/IT.php:105 msgid "Taranto" msgstr "" #: i18n/states/IT.php:106 msgid "Teramo" msgstr "" #: i18n/states/IT.php:107 msgid "Terni" msgstr "" #: i18n/states/IT.php:108 msgid "Torino" msgstr "" #: i18n/states/IT.php:109 msgid "Ogliastra" msgstr "" #: i18n/states/IT.php:110 msgid "Trapani" msgstr "" #: i18n/states/IT.php:111 msgid "Trento" msgstr "" #: i18n/states/IT.php:112 msgid "Treviso" msgstr "" #: i18n/states/IT.php:113 msgid "Trieste" msgstr "" #: i18n/states/IT.php:114 msgid "Udine" msgstr "" #: i18n/states/IT.php:115 msgid "Varese" msgstr "" #: i18n/states/IT.php:116 msgid "Venezia" msgstr "" #: i18n/states/IT.php:117 msgid "Verbano-Cusio-Ossola" msgstr "" #: i18n/states/IT.php:118 msgid "Vercelli" msgstr "" #: i18n/states/IT.php:119 msgid "Verona" msgstr "" #: i18n/states/IT.php:120 msgid "Vibo Valentia" msgstr "" #: i18n/states/IT.php:121 msgid "Vicenza" msgstr "" #: i18n/states/IT.php:122 msgid "Viterbo" msgstr "" #: i18n/states/JP.php:13 msgid "Hokkaido" msgstr "" #: i18n/states/JP.php:14 msgid "Aomori" msgstr "" #: i18n/states/JP.php:15 msgid "Iwate" msgstr "" #: i18n/states/JP.php:16 msgid "Miyagi" msgstr "" #: i18n/states/JP.php:17 msgid "Akita" msgstr "" #: i18n/states/JP.php:18 msgid "Yamagata" msgstr "" #: i18n/states/JP.php:19 msgid "Fukushima" msgstr "" #: i18n/states/JP.php:20 msgid "Ibaraki" msgstr "" #: i18n/states/JP.php:21 msgid "Tochigi" msgstr "" #: i18n/states/JP.php:22 msgid "Gunma" msgstr "" #: i18n/states/JP.php:23 msgid "Saitama" msgstr "" #: i18n/states/JP.php:24 msgid "Chiba" msgstr "" #: i18n/states/JP.php:25 msgid "Tokyo" msgstr "" #: i18n/states/JP.php:26 msgid "Kanagawa" msgstr "" #: i18n/states/JP.php:27 msgid "Niigata" msgstr "" #: i18n/states/JP.php:28 msgid "Toyama" msgstr "" #: i18n/states/JP.php:29 msgid "Ishikawa" msgstr "" #: i18n/states/JP.php:30 msgid "Fukui" msgstr "" #: i18n/states/JP.php:31 msgid "Yamanashi" msgstr "" #: i18n/states/JP.php:32 msgid "Nagano" msgstr "" #: i18n/states/JP.php:33 msgid "Gifu" msgstr "" #: i18n/states/JP.php:34 msgid "Shizuoka" msgstr "" #: i18n/states/JP.php:35 msgid "Aichi" msgstr "" #: i18n/states/JP.php:36 msgid "Mie" msgstr "" #: i18n/states/JP.php:37 msgid "Shiga" msgstr "" #: i18n/states/JP.php:38 msgid "Kyoto" msgstr "" #: i18n/states/JP.php:39 msgid "Osaka" msgstr "" #: i18n/states/JP.php:40 msgid "Hyogo" msgstr "" #: i18n/states/JP.php:41 msgid "Nara" msgstr "" #: i18n/states/JP.php:42 msgid "Wakayama" msgstr "" #: i18n/states/JP.php:43 msgid "Tottori" msgstr "" #: i18n/states/JP.php:44 msgid "Shimane" msgstr "" #: i18n/states/JP.php:45 msgid "Okayama" msgstr "" #: i18n/states/JP.php:46 msgid "Hiroshima" msgstr "" #: i18n/states/JP.php:47 msgid "Yamaguchi" msgstr "" #: i18n/states/JP.php:48 msgid "Tokushima" msgstr "" #: i18n/states/JP.php:49 msgid "Kagawa" msgstr "" #: i18n/states/JP.php:50 msgid "Ehime" msgstr "" #: i18n/states/JP.php:51 msgid "Kochi" msgstr "" #: i18n/states/JP.php:52 msgid "Fukuoka" msgstr "" #: i18n/states/JP.php:53 msgid "Saga" msgstr "" #: i18n/states/JP.php:54 msgid "Nagasaki" msgstr "" #: i18n/states/JP.php:55 msgid "Kumamoto" msgstr "" #: i18n/states/JP.php:56 msgid "Oita" msgstr "" #: i18n/states/JP.php:57 msgid "Miyazaki" msgstr "" #: i18n/states/JP.php:58 msgid "Kagoshima" msgstr "" #: i18n/states/JP.php:59 msgid "Okinawa" msgstr "" #: i18n/states/MX.php:14 msgid "Jalisco" msgstr "" #: i18n/states/MX.php:15 msgid "Nuevo León" msgstr "" #: i18n/states/MX.php:16 msgid "Aguascalientes" msgstr "" #: i18n/states/MX.php:17 msgid "Baja California" msgstr "" #: i18n/states/MX.php:18 msgid "Baja California Sur" msgstr "" #: i18n/states/MX.php:19 msgid "Campeche" msgstr "" #: i18n/states/MX.php:20 msgid "Chiapas" msgstr "" #: i18n/states/MX.php:21 msgid "Chihuahua" msgstr "" #: i18n/states/MX.php:22 msgid "Coahuila" msgstr "" #: i18n/states/MX.php:23 msgid "Colima" msgstr "" #: i18n/states/MX.php:24 msgid "Durango" msgstr "" #: i18n/states/MX.php:25 msgid "Guanajuato" msgstr "" #: i18n/states/MX.php:26 msgid "Guerrero" msgstr "" #: i18n/states/MX.php:27 msgid "Hidalgo" msgstr "" #: i18n/states/MX.php:28 msgid "Edo. de México" msgstr "" #: i18n/states/MX.php:29 msgid "Michoacán" msgstr "" #: i18n/states/MX.php:30 msgid "Morelos" msgstr "" #: i18n/states/MX.php:31 msgid "Nayarit" msgstr "" #: i18n/states/MX.php:32 msgid "Oaxaca" msgstr "" #: i18n/states/MX.php:33 msgid "Puebla" msgstr "" #: i18n/states/MX.php:34 msgid "Querétaro" msgstr "" #: i18n/states/MX.php:35 msgid "Quintana Roo" msgstr "" #: i18n/states/MX.php:36 msgid "San Luis Potosí" msgstr "" #: i18n/states/MX.php:37 msgid "Sinaloa" msgstr "" #: i18n/states/MX.php:38 msgid "Sonora" msgstr "" #: i18n/states/MX.php:39 msgid "Tabasco" msgstr "" #: i18n/states/MX.php:40 msgid "Tamaulipas" msgstr "" #: i18n/states/MX.php:41 msgid "Tlaxcala" msgstr "" #: i18n/states/MX.php:42 msgid "Veracruz" msgstr "" #: i18n/states/MX.php:43 msgid "Yucatán" msgstr "" #: i18n/states/MX.php:44 msgid "Zacatecas" msgstr "" #: i18n/states/MY.php:13 msgid "Johor" msgstr "" #: i18n/states/MY.php:14 msgid "Kedah" msgstr "" #: i18n/states/MY.php:15 msgid "Kelantan" msgstr "" #: i18n/states/MY.php:16 msgid "Labuan" msgstr "" #: i18n/states/MY.php:17 msgid "Malacca (Melaka)" msgstr "" #: i18n/states/MY.php:18 msgid "Negeri Sembilan" msgstr "" #: i18n/states/MY.php:19 msgid "Pahang" msgstr "" #: i18n/states/MY.php:20 msgid "Penang (Pulau Pinang)" msgstr "" #: i18n/states/MY.php:21 msgid "Perak" msgstr "" #: i18n/states/MY.php:22 msgid "Perlis" msgstr "" #: i18n/states/MY.php:23 msgid "Sabah" msgstr "" #: i18n/states/MY.php:24 msgid "Sarawak" msgstr "" #: i18n/states/MY.php:25 msgid "Selangor" msgstr "" #: i18n/states/MY.php:26 msgid "Terengganu" msgstr "" #: i18n/states/MY.php:27 msgid "Putrajaya" msgstr "" #: i18n/states/MY.php:28 msgid "Kuala Lumpur" msgstr "" #: i18n/states/NP.php:13 msgid "Bagmati" msgstr "" #: i18n/states/NP.php:14 msgid "Bheri" msgstr "" #: i18n/states/NP.php:15 msgid "Dhawalagiri" msgstr "" #: i18n/states/NP.php:16 msgid "Gandaki" msgstr "" #: i18n/states/NP.php:17 msgid "Janakpur" msgstr "" #: i18n/states/NP.php:18 msgid "Karnali" msgstr "" #: i18n/states/NP.php:19 msgid "Koshi" msgstr "" #: i18n/states/NP.php:20 msgid "Lumbini" msgstr "" #: i18n/states/NP.php:21 msgid "Mahakali" msgstr "" #: i18n/states/NP.php:22 msgid "Mechi" msgstr "" #: i18n/states/NP.php:23 msgid "Narayani" msgstr "" #: i18n/states/NP.php:24 msgid "Rapti" msgstr "" #: i18n/states/NP.php:25 msgid "Sagarmatha" msgstr "" #: i18n/states/NP.php:26 msgid "Seti" msgstr "" #: i18n/states/NZ.php:13 msgid "Northland" msgstr "" #: i18n/states/NZ.php:14 msgid "Auckland" msgstr "" #: i18n/states/NZ.php:15 msgid "Waikato" msgstr "" #: i18n/states/NZ.php:16 msgid "Bay of Plenty" msgstr "" #: i18n/states/NZ.php:17 msgid "Taranaki" msgstr "" #: i18n/states/NZ.php:18 msgid "Gisborne" msgstr "" #: i18n/states/NZ.php:19 msgid "Hawke’s Bay" msgstr "" #: i18n/states/NZ.php:20 msgid "Manawatu-Wanganui" msgstr "" #: i18n/states/NZ.php:21 msgid "Wellington" msgstr "" #: i18n/states/NZ.php:22 msgid "Nelson" msgstr "" #: i18n/states/NZ.php:23 msgid "Marlborough" msgstr "" #: i18n/states/NZ.php:24 msgid "Tasman" msgstr "" #: i18n/states/NZ.php:25 msgid "West Coast" msgstr "" #: i18n/states/NZ.php:26 msgid "Canterbury" msgstr "" #: i18n/states/NZ.php:27 msgid "Otago" msgstr "" #: i18n/states/NZ.php:28 msgid "Southland" msgstr "" #: i18n/states/PE.php:13 msgid "El Callao" msgstr "" #: i18n/states/PE.php:14 msgid "Municipalidad Metropolitana de Lima" msgstr "" #: i18n/states/PE.php:16 msgid "Ancash" msgstr "" #: i18n/states/PE.php:17 msgid "Apurímac" msgstr "" #: i18n/states/PE.php:18 msgid "Arequipa" msgstr "" #: i18n/states/PE.php:19 msgid "Ayacucho" msgstr "" #: i18n/states/PE.php:20 msgid "Cajamarca" msgstr "" #: i18n/states/PE.php:21 msgid "Cusco" msgstr "" #: i18n/states/PE.php:22 msgid "Huancavelica" msgstr "" #: i18n/states/PE.php:23 msgid "Huánuco" msgstr "" #: i18n/states/PE.php:24 msgid "Ica" msgstr "" #: i18n/states/PE.php:25 msgid "Junín" msgstr "" #: i18n/states/PE.php:26 msgid "La Libertad" msgstr "" #: i18n/states/PE.php:27 msgid "Lambayeque" msgstr "" #: i18n/states/PE.php:28 msgid "Lima" msgstr "" #: i18n/states/PE.php:29 msgid "Loreto" msgstr "" #: i18n/states/PE.php:30 msgid "Madre de Dios" msgstr "" #: i18n/states/PE.php:31 msgid "Moquegua" msgstr "" #: i18n/states/PE.php:32 msgid "Pasco" msgstr "" #: i18n/states/PE.php:33 msgid "Piura" msgstr "" #: i18n/states/PE.php:34 msgid "Puno" msgstr "" #: i18n/states/PE.php:35 msgid "San Martín" msgstr "" #: i18n/states/PE.php:36 msgid "Tacna" msgstr "" #: i18n/states/PE.php:37 msgid "Tumbes" msgstr "" #: i18n/states/PE.php:38 msgid "Ucayali" msgstr "" #: i18n/states/PH.php:12 msgid "Abra" msgstr "" #: i18n/states/PH.php:13 msgid "Agusan del Norte" msgstr "" #: i18n/states/PH.php:14 msgid "Agusan del Sur" msgstr "" #: i18n/states/PH.php:15 msgid "Aklan" msgstr "" #: i18n/states/PH.php:16 msgid "Albay" msgstr "" #: i18n/states/PH.php:17 msgid "Antique" msgstr "" #: i18n/states/PH.php:18 msgid "Apayao" msgstr "" #: i18n/states/PH.php:19 msgid "Aurora" msgstr "" #: i18n/states/PH.php:20 msgid "Basilan" msgstr "" #: i18n/states/PH.php:21 msgid "Bataan" msgstr "" #: i18n/states/PH.php:22 msgid "Batanes" msgstr "" #: i18n/states/PH.php:23 msgid "Batangas" msgstr "" #: i18n/states/PH.php:24 msgid "Benguet" msgstr "" #: i18n/states/PH.php:25 msgid "Biliran" msgstr "" #: i18n/states/PH.php:26 msgid "Bohol" msgstr "" #: i18n/states/PH.php:27 msgid "Bukidnon" msgstr "" #: i18n/states/PH.php:28 msgid "Bulacan" msgstr "" #: i18n/states/PH.php:29 msgid "Cagayan" msgstr "" #: i18n/states/PH.php:30 msgid "Camarines Norte" msgstr "" #: i18n/states/PH.php:31 msgid "Camarines Sur" msgstr "" #: i18n/states/PH.php:32 msgid "Camiguin" msgstr "" #: i18n/states/PH.php:33 msgid "Capiz" msgstr "" #: i18n/states/PH.php:34 msgid "Catanduanes" msgstr "" #: i18n/states/PH.php:35 msgid "Cavite" msgstr "" #: i18n/states/PH.php:36 msgid "Cebu" msgstr "" #: i18n/states/PH.php:37 msgid "Compostela Valley" msgstr "" #: i18n/states/PH.php:38 msgid "Cotabato" msgstr "" #: i18n/states/PH.php:39 msgid "Davao del Norte" msgstr "" #: i18n/states/PH.php:40 msgid "Davao del Sur" msgstr "" #: i18n/states/PH.php:41 msgid "Davao Occidental" msgstr "" #: i18n/states/PH.php:42 msgid "Davao Oriental" msgstr "" #: i18n/states/PH.php:43 msgid "Dinagat Islands" msgstr "" #: i18n/states/PH.php:44 msgid "Eastern Samar" msgstr "" #: i18n/states/PH.php:45 msgid "Guimaras" msgstr "" #: i18n/states/PH.php:46 msgid "Ifugao" msgstr "" #: i18n/states/PH.php:47 msgid "Ilocos Norte" msgstr "" #: i18n/states/PH.php:48 msgid "Ilocos Sur" msgstr "" #: i18n/states/PH.php:49 msgid "Iloilo" msgstr "" #: i18n/states/PH.php:50 msgid "Isabela" msgstr "" #: i18n/states/PH.php:51 msgid "Kalinga" msgstr "" #: i18n/states/PH.php:52 msgid "La Union" msgstr "" #: i18n/states/PH.php:53 msgid "Laguna" msgstr "" #: i18n/states/PH.php:54 msgid "Lanao del Norte" msgstr "" #: i18n/states/PH.php:55 msgid "Lanao del Sur" msgstr "" #: i18n/states/PH.php:56 msgid "Leyte" msgstr "" #: i18n/states/PH.php:57 msgid "Maguindanao" msgstr "" #: i18n/states/PH.php:58 msgid "Marinduque" msgstr "" #: i18n/states/PH.php:59 msgid "Masbate" msgstr "" #: i18n/states/PH.php:60 msgid "Misamis Occidental" msgstr "" #: i18n/states/PH.php:61 msgid "Misamis Oriental" msgstr "" #: i18n/states/PH.php:62 msgid "Mountain Province" msgstr "" #: i18n/states/PH.php:63 msgid "Negros Occidental" msgstr "" #: i18n/states/PH.php:64 msgid "Negros Oriental" msgstr "" #: i18n/states/PH.php:65 msgid "Northern Samar" msgstr "" #: i18n/states/PH.php:66 msgid "Nueva Ecija" msgstr "" #: i18n/states/PH.php:67 msgid "Nueva Vizcaya" msgstr "" #: i18n/states/PH.php:68 msgid "Occidental Mindoro" msgstr "" #: i18n/states/PH.php:69 msgid "Oriental Mindoro" msgstr "" #: i18n/states/PH.php:70 msgid "Palawan" msgstr "" #: i18n/states/PH.php:71 msgid "Pampanga" msgstr "" #: i18n/states/PH.php:72 msgid "Pangasinan" msgstr "" #: i18n/states/PH.php:73 msgid "Quezon" msgstr "" #: i18n/states/PH.php:74 msgid "Quirino" msgstr "" #: i18n/states/PH.php:75 msgid "Rizal" msgstr "" #: i18n/states/PH.php:76 msgid "Romblon" msgstr "" #: i18n/states/PH.php:77 msgid "Samar" msgstr "" #: i18n/states/PH.php:78 msgid "Sarangani" msgstr "" #: i18n/states/PH.php:79 msgid "Siquijor" msgstr "" #: i18n/states/PH.php:80 msgid "Sorsogon" msgstr "" #: i18n/states/PH.php:81 msgid "South Cotabato" msgstr "" #: i18n/states/PH.php:82 msgid "Southern Leyte" msgstr "" #: i18n/states/PH.php:83 msgid "Sultan Kudarat" msgstr "" #: i18n/states/PH.php:84 msgid "Sulu" msgstr "" #: i18n/states/PH.php:85 msgid "Surigao del Norte" msgstr "" #: i18n/states/PH.php:86 msgid "Surigao del Sur" msgstr "" #: i18n/states/PH.php:87 msgid "Tarlac" msgstr "" #: i18n/states/PH.php:88 msgid "Tawi-Tawi" msgstr "" #: i18n/states/PH.php:89 msgid "Zambales" msgstr "" #: i18n/states/PH.php:90 msgid "Zamboanga del Norte" msgstr "" #: i18n/states/PH.php:91 msgid "Zamboanga del Sur" msgstr "" #: i18n/states/PH.php:92 msgid "Zamboanga Sibugay" msgstr "" #: i18n/states/PH.php:93 msgid "Metro Manila" msgstr "" #: i18n/states/TH.php:13 msgid "" "Amnat Charoen " "(อำนาจเจริญ)" msgstr "" #: i18n/states/TH.php:14 msgid "Ang Thong (อ่างทอง)" msgstr "" #: i18n/states/TH.php:15 msgid "" "Ayutthaya " "(พระนครศรีอũ" "8;ุธยา)" msgstr "" #: i18n/states/TH.php:16 msgid "" "Bangkok " "(กรุงเทพมหาŨ" "9;คร)" msgstr "" #: i18n/states/TH.php:17 msgid "Bueng Kan (บึงกาฬ)" msgstr "" #: i18n/states/TH.php:18 msgid "Buri Ram (บุรีรัมย์)" msgstr "" #: i18n/states/TH.php:19 msgid "" "Chachoengsao " "(ฉะเชิงเทรา)" msgstr "" #: i18n/states/TH.php:20 msgid "Chai Nat (ชัยนาท)" msgstr "" #: i18n/states/TH.php:21 msgid "Chaiyaphum (ชัยภูมิ)" msgstr "" #: i18n/states/TH.php:22 msgid "Chanthaburi (จันทบุรี)" msgstr "" #: i18n/states/TH.php:23 msgid "Chiang Mai (เชียงใหม่)" msgstr "" #: i18n/states/TH.php:24 msgid "Chiang Rai (เชียงราย)" msgstr "" #: i18n/states/TH.php:25 msgid "Chonburi (ชลบุรี)" msgstr "" #: i18n/states/TH.php:26 msgid "Chumphon (ชุมพร)" msgstr "" #: i18n/states/TH.php:27 msgid "Kalasin (กาฬสินธุ์)" msgstr "" #: i18n/states/TH.php:28 msgid "" "Kamphaeng Phet " "(กำแพงเพชร)" msgstr "" #: i18n/states/TH.php:29 msgid "" "Kanchanaburi " "(กาญจนบุรี)" msgstr "" #: i18n/states/TH.php:30 msgid "Khon Kaen (ขอนแก่น)" msgstr "" #: i18n/states/TH.php:31 msgid "Krabi (กระบี่)" msgstr "" #: i18n/states/TH.php:32 msgid "Lampang (ลำปาง)" msgstr "" #: i18n/states/TH.php:33 msgid "Lamphun (ลำพูน)" msgstr "" #: i18n/states/TH.php:34 msgid "Loei (เลย)" msgstr "" #: i18n/states/TH.php:35 msgid "Lopburi (ลพบุรี)" msgstr "" #: i18n/states/TH.php:36 msgid "" "Mae Hong Son " "(แม่ฮ่องสอน)" msgstr "" #: i18n/states/TH.php:37 msgid "" "Maha Sarakham " "(มหาสารคาม)" msgstr "" #: i18n/states/TH.php:38 msgid "Mukdahan (มุกดาหาร)" msgstr "" #: i18n/states/TH.php:39 msgid "Nakhon Nayok (นครนายก)" msgstr "" #: i18n/states/TH.php:40 msgid "Nakhon Pathom (นครปฐม)" msgstr "" #: i18n/states/TH.php:41 msgid "Nakhon Phanom (นครพนม)" msgstr "" #: i18n/states/TH.php:42 msgid "" "Nakhon Ratchasima " "(นครราชสีมา)" msgstr "" #: i18n/states/TH.php:43 msgid "" "Nakhon Sawan " "(นครสวรรค์)" msgstr "" #: i18n/states/TH.php:44 msgid "" "Nakhon Si Thammarat " "(นครศรีธรรมũ" "9;าช)" msgstr "" #: i18n/states/TH.php:45 msgid "Nan (น่าน)" msgstr "" #: i18n/states/TH.php:46 msgid "Narathiwat (นราธิวาส)" msgstr "" #: i18n/states/TH.php:47 msgid "" "Nong Bua Lam Phu " "(หนองบัวลำภŬ" "1;)" msgstr "" #: i18n/states/TH.php:48 msgid "Nong Khai (หนองคาย)" msgstr "" #: i18n/states/TH.php:49 msgid "Nonthaburi (นนทบุรี)" msgstr "" #: i18n/states/TH.php:50 msgid "Pathum Thani (ปทุมธานี)" msgstr "" #: i18n/states/TH.php:51 msgid "Pattani (ปัตตานี)" msgstr "" #: i18n/states/TH.php:52 msgid "Phang Nga (พังงา)" msgstr "" #: i18n/states/TH.php:53 msgid "Phatthalung (พัทลุง)" msgstr "" #: i18n/states/TH.php:54 msgid "Phayao (พะเยา)" msgstr "" #: i18n/states/TH.php:55 msgid "Phetchabun (เพชรบูรณ์)" msgstr "" #: i18n/states/TH.php:56 msgid "Phetchaburi (เพชรบุรี)" msgstr "" #: i18n/states/TH.php:57 msgid "Phichit (พิจิตร)" msgstr "" #: i18n/states/TH.php:58 msgid "Phitsanulok (พิษณุโลก)" msgstr "" #: i18n/states/TH.php:59 msgid "Phrae (แพร่)" msgstr "" #: i18n/states/TH.php:60 msgid "Phuket (ภูเก็ต)" msgstr "" #: i18n/states/TH.php:61 msgid "" "Prachin Buri " "(ปราจีนบุรี)" msgstr "" #: i18n/states/TH.php:62 msgid "" "Prachuap Khiri Khan " "(ประจวบคีรีŦ" "6;ันธ์)" msgstr "" #: i18n/states/TH.php:63 msgid "Ranong (ระนอง)" msgstr "" #: i18n/states/TH.php:64 msgid "Ratchaburi (ราชบุรี)" msgstr "" #: i18n/states/TH.php:65 msgid "Rayong (ระยอง)" msgstr "" #: i18n/states/TH.php:66 msgid "Roi Et (ร้อยเอ็ด)" msgstr "" #: i18n/states/TH.php:67 msgid "Sa Kaeo (สระแก้ว)" msgstr "" #: i18n/states/TH.php:68 msgid "Sakon Nakhon (สกลนคร)" msgstr "" #: i18n/states/TH.php:69 msgid "" "Samut Prakan " "(สมุทรปรากาũ" "9;)" msgstr "" #: i18n/states/TH.php:70 msgid "" "Samut Sakhon " "(สมุทรสาคร)" msgstr "" #: i18n/states/TH.php:71 msgid "" "Samut Songkhram " "(สมุทรสงคราũ" "7;)" msgstr "" #: i18n/states/TH.php:72 msgid "Saraburi (สระบุรี)" msgstr "" #: i18n/states/TH.php:73 msgid "Satun (สตูล)" msgstr "" #: i18n/states/TH.php:74 msgid "Sing Buri (สิงห์บุรี)" msgstr "" #: i18n/states/TH.php:75 msgid "Sisaket (ศรีสะเกษ)" msgstr "" #: i18n/states/TH.php:76 msgid "Songkhla (สงขลา)" msgstr "" #: i18n/states/TH.php:77 msgid "Sukhothai (สุโขทัย)" msgstr "" #: i18n/states/TH.php:78 msgid "" "Suphan Buri " "(สุพรรณบุรี)" msgstr "" #: i18n/states/TH.php:79 msgid "" "Surat Thani " "(สุราษฎร์ธาŨ" "9;ี)" msgstr "" #: i18n/states/TH.php:80 msgid "Surin (สุรินทร์)" msgstr "" #: i18n/states/TH.php:81 msgid "Tak (ตาก)" msgstr "" #: i18n/states/TH.php:82 msgid "Trang (ตรัง)" msgstr "" #: i18n/states/TH.php:83 msgid "Trat (ตราด)" msgstr "" #: i18n/states/TH.php:84 msgid "" "Ubon Ratchathani " "(อุบลราชธานū" "7;)" msgstr "" #: i18n/states/TH.php:85 msgid "Udon Thani (อุดรธานี)" msgstr "" #: i18n/states/TH.php:86 msgid "" "Uthai Thani " "(อุทัยธานี)" msgstr "" #: i18n/states/TH.php:87 msgid "Uttaradit (อุตรดิตถ์)" msgstr "" #: i18n/states/TH.php:88 msgid "Yala (ยะลา)" msgstr "" #: i18n/states/TH.php:89 msgid "Yasothon (ยโสธร)" msgstr "" #: i18n/states/TR.php:13 msgid "Adana" msgstr "" #: i18n/states/TR.php:14 msgid "Adıyaman" msgstr "" #: i18n/states/TR.php:15 msgid "Afyon" msgstr "" #: i18n/states/TR.php:16 msgid "Ağrı" msgstr "" #: i18n/states/TR.php:17 msgid "Amasya" msgstr "" #: i18n/states/TR.php:18 msgid "Ankara" msgstr "" #: i18n/states/TR.php:19 msgid "Antalya" msgstr "" #: i18n/states/TR.php:20 msgid "Artvin" msgstr "" #: i18n/states/TR.php:21 msgid "Aydın" msgstr "" #: i18n/states/TR.php:22 msgid "Balıkesir" msgstr "" #: i18n/states/TR.php:23 msgid "Bilecik" msgstr "" #: i18n/states/TR.php:24 msgid "Bingöl" msgstr "" #: i18n/states/TR.php:25 msgid "Bitlis" msgstr "" #: i18n/states/TR.php:26 msgid "Bolu" msgstr "" #: i18n/states/TR.php:27 msgid "Burdur" msgstr "" #: i18n/states/TR.php:28 msgid "Bursa" msgstr "" #: i18n/states/TR.php:29 msgid "Çanakkale" msgstr "" #: i18n/states/TR.php:30 msgid "Çankırı" msgstr "" #: i18n/states/TR.php:31 msgid "Çorum" msgstr "" #: i18n/states/TR.php:32 msgid "Denizli" msgstr "" #: i18n/states/TR.php:33 msgid "Diyarbakır" msgstr "" #: i18n/states/TR.php:34 msgid "Edirne" msgstr "" #: i18n/states/TR.php:35 msgid "Elazığ" msgstr "" #: i18n/states/TR.php:36 msgid "Erzincan" msgstr "" #: i18n/states/TR.php:37 msgid "Erzurum" msgstr "" #: i18n/states/TR.php:38 msgid "Eskişehir" msgstr "" #: i18n/states/TR.php:39 msgid "Gaziantep" msgstr "" #: i18n/states/TR.php:40 msgid "Giresun" msgstr "" #: i18n/states/TR.php:41 msgid "Gümüşhane" msgstr "" #: i18n/states/TR.php:42 msgid "Hakkari" msgstr "" #: i18n/states/TR.php:43 msgid "Hatay" msgstr "" #: i18n/states/TR.php:44 msgid "Isparta" msgstr "" #: i18n/states/TR.php:45 msgid "İçel" msgstr "" #: i18n/states/TR.php:46 msgid "İstanbul" msgstr "" #: i18n/states/TR.php:47 msgid "İzmir" msgstr "" #: i18n/states/TR.php:48 msgid "Kars" msgstr "" #: i18n/states/TR.php:49 msgid "Kastamonu" msgstr "" #: i18n/states/TR.php:50 msgid "Kayseri" msgstr "" #: i18n/states/TR.php:51 msgid "Kırklareli" msgstr "" #: i18n/states/TR.php:52 msgid "Kırşehir" msgstr "" #: i18n/states/TR.php:53 msgid "Kocaeli" msgstr "" #: i18n/states/TR.php:54 msgid "Konya" msgstr "" #: i18n/states/TR.php:55 msgid "Kütahya" msgstr "" #: i18n/states/TR.php:56 msgid "Malatya" msgstr "" #: i18n/states/TR.php:57 msgid "Manisa" msgstr "" #: i18n/states/TR.php:58 msgid "Kahramanmaraş" msgstr "" #: i18n/states/TR.php:59 msgid "Mardin" msgstr "" #: i18n/states/TR.php:60 msgid "Muğla" msgstr "" #: i18n/states/TR.php:61 msgid "Muş" msgstr "" #: i18n/states/TR.php:62 msgid "Nevşehir" msgstr "" #: i18n/states/TR.php:63 msgid "Niğde" msgstr "" #: i18n/states/TR.php:64 msgid "Ordu" msgstr "" #: i18n/states/TR.php:65 msgid "Rize" msgstr "" #: i18n/states/TR.php:66 msgid "Sakarya" msgstr "" #: i18n/states/TR.php:67 msgid "Samsun" msgstr "" #: i18n/states/TR.php:68 msgid "Siirt" msgstr "" #: i18n/states/TR.php:69 msgid "Sinop" msgstr "" #: i18n/states/TR.php:70 msgid "Sivas" msgstr "" #: i18n/states/TR.php:71 msgid "Tekirdağ" msgstr "" #: i18n/states/TR.php:72 msgid "Tokat" msgstr "" #: i18n/states/TR.php:73 msgid "Trabzon" msgstr "" #: i18n/states/TR.php:74 msgid "Tunceli" msgstr "" #: i18n/states/TR.php:75 msgid "Şanlıurfa" msgstr "" #: i18n/states/TR.php:76 msgid "Uşak" msgstr "" #: i18n/states/TR.php:77 msgid "Van" msgstr "" #: i18n/states/TR.php:78 msgid "Yozgat" msgstr "" #: i18n/states/TR.php:79 msgid "Zonguldak" msgstr "" #: i18n/states/TR.php:80 msgid "Aksaray" msgstr "" #: i18n/states/TR.php:81 msgid "Bayburt" msgstr "" #: i18n/states/TR.php:82 msgid "Karaman" msgstr "" #: i18n/states/TR.php:83 msgid "Kırıkkale" msgstr "" #: i18n/states/TR.php:84 msgid "Batman" msgstr "" #: i18n/states/TR.php:85 msgid "Şırnak" msgstr "" #: i18n/states/TR.php:86 msgid "Bartın" msgstr "" #: i18n/states/TR.php:87 msgid "Ardahan" msgstr "" #: i18n/states/TR.php:88 msgid "Iğdır" msgstr "" #: i18n/states/TR.php:89 msgid "Yalova" msgstr "" #: i18n/states/TR.php:90 msgid "Karabük" msgstr "" #: i18n/states/TR.php:91 msgid "Kilis" msgstr "" #: i18n/states/TR.php:92 msgid "Osmaniye" msgstr "" #: i18n/states/TR.php:93 msgid "Düzce" msgstr "" #: i18n/states/US.php:13 msgid "Alabama" msgstr "" #: i18n/states/US.php:14 msgid "Alaska" msgstr "" #: i18n/states/US.php:15 msgid "Arizona" msgstr "" #: i18n/states/US.php:16 msgid "Arkansas" msgstr "" #: i18n/states/US.php:17 msgid "California" msgstr "" #: i18n/states/US.php:18 msgid "Colorado" msgstr "" #: i18n/states/US.php:19 msgid "Connecticut" msgstr "" #: i18n/states/US.php:20 msgid "Delaware" msgstr "" #: i18n/states/US.php:21 msgid "District Of Columbia" msgstr "" #: i18n/states/US.php:22 msgid "Florida" msgstr "" #: i18n/states/US.php:24 msgid "Hawaii" msgstr "" #: i18n/states/US.php:25 msgid "Idaho" msgstr "" #: i18n/states/US.php:26 msgid "Illinois" msgstr "" #: i18n/states/US.php:27 msgid "Indiana" msgstr "" #: i18n/states/US.php:28 msgid "Iowa" msgstr "" #: i18n/states/US.php:29 msgid "Kansas" msgstr "" #: i18n/states/US.php:30 msgid "Kentucky" msgstr "" #: i18n/states/US.php:31 msgid "Louisiana" msgstr "" #: i18n/states/US.php:32 msgid "Maine" msgstr "" #: i18n/states/US.php:33 msgid "Maryland" msgstr "" #: i18n/states/US.php:34 msgid "Massachusetts" msgstr "" #: i18n/states/US.php:35 msgid "Michigan" msgstr "" #: i18n/states/US.php:36 msgid "Minnesota" msgstr "" #: i18n/states/US.php:37 msgid "Mississippi" msgstr "" #: i18n/states/US.php:38 msgid "Missouri" msgstr "" #: i18n/states/US.php:40 msgid "Nebraska" msgstr "" #: i18n/states/US.php:41 msgid "Nevada" msgstr "" #: i18n/states/US.php:42 msgid "New Hampshire" msgstr "" #: i18n/states/US.php:43 msgid "New Jersey" msgstr "" #: i18n/states/US.php:44 msgid "New Mexico" msgstr "" #: i18n/states/US.php:45 msgid "New York" msgstr "" #: i18n/states/US.php:46 msgid "North Carolina" msgstr "" #: i18n/states/US.php:47 msgid "North Dakota" msgstr "" #: i18n/states/US.php:48 msgid "Ohio" msgstr "" #: i18n/states/US.php:49 msgid "Oklahoma" msgstr "" #: i18n/states/US.php:50 msgid "Oregon" msgstr "" #: i18n/states/US.php:51 msgid "Pennsylvania" msgstr "" #: i18n/states/US.php:52 msgid "Rhode Island" msgstr "" #: i18n/states/US.php:53 msgid "South Carolina" msgstr "" #: i18n/states/US.php:54 msgid "South Dakota" msgstr "" #: i18n/states/US.php:55 msgid "Tennessee" msgstr "" #: i18n/states/US.php:56 msgid "Texas" msgstr "" #: i18n/states/US.php:57 msgid "Utah" msgstr "" #: i18n/states/US.php:58 msgid "Vermont" msgstr "" #: i18n/states/US.php:59 msgid "Virginia" msgstr "" #: i18n/states/US.php:60 msgid "Washington" msgstr "" #: i18n/states/US.php:61 msgid "West Virginia" msgstr "" #: i18n/states/US.php:62 msgid "Wisconsin" msgstr "" #: i18n/states/US.php:63 msgid "Wyoming" msgstr "" #: i18n/states/US.php:64 msgid "Armed Forces (AA)" msgstr "" #: i18n/states/US.php:65 msgid "Armed Forces (AE)" msgstr "" #: i18n/states/US.php:66 msgid "Armed Forces (AP)" msgstr "" #: i18n/states/ZA.php:13 msgid "Eastern Cape" msgstr "" #: i18n/states/ZA.php:14 msgid "Free State" msgstr "" #: i18n/states/ZA.php:15 msgid "Gauteng" msgstr "" #: i18n/states/ZA.php:16 msgid "KwaZulu-Natal" msgstr "" #: i18n/states/ZA.php:17 msgid "Limpopo" msgstr "" #: i18n/states/ZA.php:18 msgid "Mpumalanga" msgstr "" #: i18n/states/ZA.php:19 msgid "Northern Cape" msgstr "" #: i18n/states/ZA.php:20 msgid "North West" msgstr "" #: i18n/states/ZA.php:21 msgid "Western Cape" msgstr "" #: includes/abstracts/abstract-wc-order.php:307 #: includes/abstracts/abstract-wc-order.php:363 msgid "Backordered" msgstr "" #: includes/abstracts/abstract-wc-order.php:1708 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:94 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:689 #: includes/admin/meta-boxes/views/html-order-items.php:156 #: includes/admin/meta-boxes/views/html-order-shipping.php:18 #: includes/admin/settings/class-wc-settings-shipping.php:27 #: includes/admin/settings/class-wc-settings-tax.php:185 #: includes/admin/settings/views/html-settings-tax.php:27 #: includes/wc-cart-functions.php:217 templates/cart/cart-totals.php:55 #: templates/cart/cart-totals.php:56 msgid "Shipping" msgstr "" #: includes/abstracts/abstract-wc-order.php:1865 msgid "via %s" msgstr "" #: includes/abstracts/abstract-wc-order.php:1870 #: includes/abstracts/abstract-wc-product.php:1040 #: includes/abstracts/abstract-wc-product.php:1046 #: includes/class-wc-cart.php:1611 includes/class-wc-product-grouped.php:156 #: includes/class-wc-product-variable.php:362 #: includes/class-wc-product-variation.php:328 msgid "Free!" msgstr "" #: includes/abstracts/abstract-wc-order.php:1934 msgid "Subtotal:" msgstr "" #: includes/abstracts/abstract-wc-order.php:1941 msgid "Discount:" msgstr "" #: includes/abstracts/abstract-wc-order.php:1948 msgid "Shipping:" msgstr "" #: includes/abstracts/abstract-wc-order.php:1963 #: includes/admin/meta-boxes/views/html-order-fee.php:18 msgid "Fee" msgstr "" #: includes/abstracts/abstract-wc-order.php:2001 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:297 #: includes/shortcodes/class-wc-shortcode-checkout.php:154 #: templates/checkout/thankyou.php:55 msgid "Payment Method:" msgstr "" #: includes/abstracts/abstract-wc-order.php:2009 #: includes/admin/meta-boxes/views/html-order-items.php:229 #: includes/admin/meta-boxes/views/html-order-refund.php:16 msgid "Refund" msgstr "" #: includes/abstracts/abstract-wc-order.php:2016 #: includes/admin/meta-boxes/views/html-order-item.php:106 #: includes/admin/meta-boxes/views/html-order-item.php:148 #: includes/shortcodes/class-wc-shortcode-checkout.php:149 #: templates/checkout/thankyou.php:50 msgid "Total:" msgstr "" #: includes/abstracts/abstract-wc-order.php:2282 #: templates/emails/plain/email-order-items.php:58 msgid "Download %d" msgstr "" #: includes/abstracts/abstract-wc-order.php:2282 #: templates/emails/plain/email-order-items.php:60 #: templates/myaccount/downloads.php:75 msgid "Download" msgstr "" #. Plugin Name of the plugin/theme msgid "WooCommerce" msgstr "" #: includes/abstracts/abstract-wc-order.php:2385 msgid "Unable to update order from %1$s to %2$s." msgstr "" #: includes/abstracts/abstract-wc-order.php:2394 msgid "Order status changed from %1$s to %2$s." msgstr "" #: includes/abstracts/abstract-wc-order.php:2398 msgid "Order status changed to %s." msgstr "" #: includes/abstracts/abstract-wc-order.php:2641 msgid "Item %1$s variation #%2$s stock reduced from %3$s to %4$s." msgstr "" #: includes/abstracts/abstract-wc-order.php:2643 msgid "Item %1$s stock reduced from %2$s to %3$s." msgstr "" #: includes/abstracts/abstract-wc-payment-gateway.php:432 msgid "Use a new payment method" msgstr "" #: includes/abstracts/abstract-wc-payment-gateway.php:456 msgid "Save to Account" msgstr "" #: includes/abstracts/abstract-wc-product.php:584 #: includes/class-wc-product-simple.php:48 #: includes/class-wc-product-variation.php:208 msgid "Add to cart" msgstr "" #: includes/abstracts/abstract-wc-product.php:593 #: includes/class-wc-embed.php:112 includes/class-wc-product-simple.php:48 #: includes/class-wc-product-variable.php:43 #: includes/class-wc-product-variation.php:208 msgid "Read more" msgstr "" #: includes/abstracts/abstract-wc-product.php:692 #: includes/admin/class-wc-admin-post-types.php:407 #: includes/admin/class-wc-admin-reports.php:100 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:329 #: includes/admin/reports/class-wc-report-stock.php:117 #: includes/admin/views/html-bulk-edit-product.php:224 #: includes/admin/views/html-quick-edit-product.php:167 #: includes/class-wc-ajax.php:859 includes/class-wc-ajax.php:2467 msgid "Out of stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:694 templates/cart/cart.php:92 msgid "Available on backorder" msgstr "" #: includes/abstracts/abstract-wc-product.php:694 #: includes/abstracts/abstract-wc-product.php:698 #: includes/abstracts/abstract-wc-product.php:708 #: includes/admin/class-wc-admin-post-types.php:405 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:328 #: includes/admin/reports/class-wc-report-stock.php:115 #: includes/admin/views/html-bulk-edit-product.php:223 #: includes/admin/views/html-quick-edit-product.php:166 #: includes/class-wc-ajax.php:858 includes/class-wc-ajax.php:2466 msgid "In stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:702 msgid "Only %s left in stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:705 #: includes/abstracts/abstract-wc-product.php:715 msgid "(also available on backorder)" msgstr "" #: includes/abstracts/abstract-wc-product.php:712 msgid "%s in stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:1201 #: includes/class-wc-embed.php:127 templates/single-product/rating.php:36 msgid "Rated %s out of 5" msgstr "" #: includes/abstracts/abstract-wc-product.php:1203 #: includes/admin/class-wc-admin-dashboard.php:236 #: templates/single-product/review-rating.php:29 msgid "out of 5" msgstr "" #: includes/abstracts/abstract-wc-rest-controller.php:96 msgid "Unable to accept more than %s items for this request." msgstr "" #: includes/abstracts/abstract-wc-rest-controller.php:206 msgid "List of created resources." msgstr "" #: includes/abstracts/abstract-wc-rest-controller.php:214 msgid "List of updated resources." msgstr "" #: includes/abstracts/abstract-wc-rest-controller.php:222 msgid "List of delete resources." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:53 #: includes/abstracts/abstract-wc-rest-terms-controller.php:117 #: includes/api/class-wc-rest-customer-downloads-controller.php:74 #: includes/api/class-wc-rest-customers-controller.php:135 #: includes/api/class-wc-rest-order-notes-controller.php:121 #: includes/api/class-wc-rest-product-attributes-controller.php:127 #: includes/api/class-wc-rest-product-reviews-controller.php:134 #: includes/api/class-wc-rest-report-sales-controller.php:69 #: includes/api/class-wc-rest-reports-controller.php:62 #: includes/api/class-wc-rest-tax-classes-controller.php:90 #: includes/api/class-wc-rest-taxes-controller.php:114 #: includes/api/class-wc-rest-webhook-deliveries.php:90 msgid "Sorry, you cannot list resources." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:67 #: includes/api/class-wc-rest-customers-controller.php:149 #: includes/api/class-wc-rest-order-notes-controller.php:135 #: includes/api/class-wc-rest-tax-classes-controller.php:104 #: includes/api/class-wc-rest-taxes-controller.php:128 msgid "Sorry, you are not allowed to create resources." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:83 #: includes/abstracts/abstract-wc-rest-terms-controller.php:155 #: includes/api/class-wc-rest-customers-controller.php:165 #: includes/api/class-wc-rest-order-notes-controller.php:151 #: includes/api/class-wc-rest-product-attributes-controller.php:159 #: includes/api/class-wc-rest-product-reviews-controller.php:150 #: includes/api/class-wc-rest-taxes-controller.php:142 #: includes/api/class-wc-rest-webhook-deliveries.php:106 msgid "Sorry, you cannot view this resource." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:99 #: includes/api/class-wc-rest-customers-controller.php:181 #: includes/api/class-wc-rest-taxes-controller.php:156 msgid "Sorry, you are not allowed to edit this resource." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:115 #: includes/api/class-wc-rest-customers-controller.php:197 #: includes/api/class-wc-rest-order-notes-controller.php:167 #: includes/api/class-wc-rest-tax-classes-controller.php:118 #: includes/api/class-wc-rest-taxes-controller.php:170 msgid "Sorry, you are not allowed to delete this resource." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:129 #: includes/abstracts/abstract-wc-rest-terms-controller.php:212 #: includes/api/class-wc-rest-customers-controller.php:211 #: includes/api/class-wc-rest-product-attributes-controller.php:209 #: includes/api/class-wc-rest-taxes-controller.php:184 msgid "Sorry, you are not allowed to manipule this resource." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:155 msgid "Invalid id." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:176 #: includes/api/class-wc-rest-order-notes-controller.php:216 #: includes/api/class-wc-rest-order-refunds-controller.php:282 #: includes/api/class-wc-rest-orders-controller.php:890 #: includes/api/class-wc-rest-webhooks-controller.php:144 msgid "Cannot create existing %s." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:259 #: includes/api/class-wc-rest-orders-controller.php:1090 #: includes/api/class-wc-rest-webhooks-controller.php:230 msgid "ID is invalid." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:418 #: includes/api/class-wc-rest-products-controller.php:1770 #: includes/api/class-wc-rest-webhooks-controller.php:318 msgid "Invalid post id." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:434 #: includes/api/class-wc-rest-products-controller.php:1786 msgid "Sorry, you are not allowed to delete %s." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:446 #: includes/api/class-wc-rest-products-controller.php:1817 msgid "The %s does not support trashing." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:451 #: includes/api/class-wc-rest-products-controller.php:1822 msgid "The %s has already been deleted." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:460 #: includes/api/class-wc-rest-order-notes-controller.php:314 #: includes/api/class-wc-rest-products-controller.php:1831 #: includes/api/class-wc-rest-webhooks-controller.php:327 msgid "The %s cannot be deleted." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:615 msgid "Limit response to resources published after a given ISO8601 compliant date." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:621 msgid "Limit response to resources published before a given ISO8601 compliant date." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:627 #: includes/api/class-wc-rest-customers-controller.php:857 #: includes/api/class-wc-rest-taxes-controller.php:657 msgid "Ensure result set excludes specific IDs." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:636 #: includes/abstracts/abstract-wc-rest-terms-controller.php:702 msgid "Limit result set to specific ids." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:645 #: includes/abstracts/abstract-wc-rest-terms-controller.php:712 #: includes/api/class-wc-rest-customers-controller.php:875 #: includes/api/class-wc-rest-taxes-controller.php:675 msgid "Offset the result set by a specific number of items." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:651 #: includes/abstracts/abstract-wc-rest-terms-controller.php:719 #: includes/api/class-wc-rest-customers-controller.php:882 #: includes/api/class-wc-rest-taxes-controller.php:682 msgid "Order sort attribute ascending or descending." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:658 #: includes/api/class-wc-rest-customers-controller.php:890 #: includes/api/class-wc-rest-taxes-controller.php:690 msgid "Sort collection by object attribute." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:675 msgid "Limit result set to those of particular parent ids." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:684 msgid "Limit result set to all items except those of a particular parent id." msgstr "" #: includes/abstracts/abstract-wc-rest-posts-controller.php:696 msgid "" "Use WP Query arguments to modify the response; private query vars require " "appropriate authorization." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:49 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:63 #: includes/api/class-wc-rest-product-attributes-controller.php:63 msgid "Name for the resource." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:60 #: includes/api/class-wc-rest-coupons-controller.php:82 #: includes/api/class-wc-rest-customer-downloads-controller.php:46 #: includes/api/class-wc-rest-customers-controller.php:78 #: includes/api/class-wc-rest-customers-controller.php:624 #: includes/api/class-wc-rest-order-notes-controller.php:81 #: includes/api/class-wc-rest-order-notes-controller.php:399 #: includes/api/class-wc-rest-order-refunds-controller.php:87 #: includes/api/class-wc-rest-order-refunds-controller.php:363 #: includes/api/class-wc-rest-orders-controller.php:76 #: includes/api/class-wc-rest-orders-controller.php:1145 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:74 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:195 #: includes/api/class-wc-rest-product-attributes-controller.php:75 #: includes/api/class-wc-rest-product-attributes-controller.php:534 #: includes/api/class-wc-rest-product-categories-controller.php:168 #: includes/api/class-wc-rest-product-reviews-controller.php:92 #: includes/api/class-wc-rest-product-reviews-controller.php:280 #: includes/api/class-wc-rest-product-shipping-classes-controller.php:94 #: includes/api/class-wc-rest-product-tags-controller.php:94 #: includes/api/class-wc-rest-products-controller.php:77 #: includes/api/class-wc-rest-products-controller.php:1865 #: includes/api/class-wc-rest-tax-classes-controller.php:332 #: includes/api/class-wc-rest-taxes-controller.php:62 #: includes/api/class-wc-rest-taxes-controller.php:575 #: includes/api/class-wc-rest-webhook-deliveries.php:66 #: includes/api/class-wc-rest-webhook-deliveries.php:234 #: includes/api/class-wc-rest-webhooks-controller.php:92 #: includes/api/class-wc-rest-webhooks-controller.php:481 msgid "Unique identifier for the resource." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:86 #: includes/api/class-wc-rest-customers-controller.php:104 #: includes/api/class-wc-rest-order-notes-controller.php:105 #: includes/api/class-wc-rest-order-refunds-controller.php:107 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:104 #: includes/api/class-wc-rest-product-attributes-controller.php:101 #: includes/api/class-wc-rest-tax-classes-controller.php:74 #: includes/api/class-wc-rest-taxes-controller.php:88 #: includes/api/class-wc-rest-webhooks-controller.php:118 msgid "Required to be true, as resource does not support trashing." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:136 #: includes/api/class-wc-rest-product-attributes-controller.php:141 msgid "Sorry, you cannot create new resource." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:174 #: includes/api/class-wc-rest-product-attributes-controller.php:177 msgid "Sorry, you cannot update resource." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:193 #: includes/api/class-wc-rest-product-attributes-controller.php:195 msgid "Sorry, you cannot delete resource." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:229 msgid "Taxonomy doesn't exist." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:237 #: includes/api/class-wc-rest-customer-downloads-controller.php:70 #: includes/api/class-wc-rest-product-attributes-controller.php:155 #: includes/api/class-wc-rest-product-attributes-controller.php:173 #: includes/api/class-wc-rest-product-attributes-controller.php:191 #: includes/api/class-wc-rest-product-attributes-controller.php:629 msgid "Resource doesn't exist." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:376 #: includes/abstracts/abstract-wc-rest-terms-controller.php:480 msgid "Can not set resource parent, taxonomy is not hierarchical." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:382 #: includes/abstracts/abstract-wc-rest-terms-controller.php:486 msgid "Parent resource doesn't exist." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:536 #: includes/api/class-wc-rest-product-attributes-controller.php:415 msgid "Resource does not support trashing." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:545 #: includes/api/class-wc-rest-customers-controller.php:470 #: includes/api/class-wc-rest-product-attributes-controller.php:434 #: includes/api/class-wc-rest-taxes-controller.php:471 msgid "The resource cannot be deleted." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:693 msgid "Ensure result set excludes specific ids." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:730 msgid "Sort collection by resource attribute." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:746 msgid "Whether to hide resources not assigned to any products." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:753 msgid "Limit result set to resources assigned to a specific parent." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:760 msgid "Limit result set to resources assigned to a specific product." msgstr "" #: includes/abstracts/abstract-wc-rest-terms-controller.php:766 msgid "Limit result set to resources with a specific slug." msgstr "" #: includes/abstracts/abstract-wc-settings-api.php:735 #: includes/admin/class-wc-admin-settings.php:605 #: includes/admin/meta-boxes/views/html-product-attribute.php:44 msgid "Select all" msgstr "" #: includes/abstracts/abstract-wc-settings-api.php:735 #: includes/admin/class-wc-admin-settings.php:605 #: includes/admin/meta-boxes/views/html-product-attribute.php:45 msgid "Select none" msgstr "" #: includes/abstracts/abstract-wc-shipping-method.php:279 #: includes/admin/class-wc-admin-meta-boxes.php:121 msgid "Items" msgstr "" #: includes/admin/class-wc-admin-addons.php:128 msgid "Need a fresh look? Try Storefront child themes" msgstr "" #: includes/admin/class-wc-admin-addons.php:132 msgid "View more Storefront child themes" msgstr "" #: includes/admin/class-wc-admin-addons.php:137 msgid "Need a theme? Try Storefront" msgstr "" #: includes/admin/class-wc-admin-addons.php:348 msgid "Free" msgstr "" #: includes/admin/class-wc-admin-addons.php:350 msgid "Installed" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:26 msgid "key" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:27 msgid "keys" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:40 #: includes/admin/class-wc-admin-post-types.php:256 #: includes/admin/class-wc-admin-setup-wizard.php:227 #: includes/admin/settings/class-wc-settings-shipping.php:307 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:22 #: includes/admin/settings/views/html-keys-edit.php:16 #: includes/gateways/bacs/class-wc-gateway-bacs.php:86 #: includes/gateways/cheque/class-wc-gateway-cheque.php:67 #: includes/gateways/cod/class-wc-gateway-cod.php:76 #: includes/gateways/paypal/includes/settings-paypal.php:25 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:202 #: includes/wc-template-functions.php:1106 msgid "Description" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:41 #: includes/admin/settings/views/html-keys-edit.php:62 msgid "Consumer Key Ending In" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:42 #: includes/admin/settings/views/html-keys-edit.php:25 msgid "User" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:43 #: includes/admin/settings/views/html-keys-edit.php:40 msgid "Permissions" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:44 #: includes/admin/settings/views/html-keys-edit.php:70 msgid "Last Access" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:70 msgid "API Key" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:79 #: includes/admin/class-wc-admin-webhooks-table-list.php:95 msgid "ID: %d" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:80 msgid "View/Edit" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:81 msgid "Revoke API Key" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:81 #: includes/admin/class-wc-admin-api-keys-table-list.php:169 msgid "Revoke" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:134 #: includes/admin/settings/views/html-keys-edit.php:47 #: includes/class-wc-auth.php:79 msgid "Read" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:135 #: includes/admin/settings/views/html-keys-edit.php:48 #: includes/class-wc-auth.php:80 msgid "Write" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:136 #: includes/admin/settings/views/html-keys-edit.php:49 #: includes/class-wc-auth.php:81 msgid "Read/Write" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:159 #: includes/admin/settings/views/html-keys-edit.php:79 msgid "Unknown" msgstr "" #: includes/admin/class-wc-admin-api-keys.php:61 #: includes/admin/settings/class-wc-settings-api.php:46 msgid "Keys/Apps" msgstr "" #: includes/admin/class-wc-admin-api-keys.php:61 msgid "Add Key" msgstr "" #: includes/admin/class-wc-admin-api-keys.php:71 msgid "Search Key" msgstr "" #: includes/admin/class-wc-admin-api-keys.php:132 msgid "API Key revoked successfully." msgstr "" #: includes/admin/class-wc-admin-api-keys.php:141 #: includes/admin/class-wc-admin-api-keys.php:156 #: includes/admin/class-wc-admin-notices.php:128 #: includes/admin/class-wc-admin-settings.php:75 #: includes/admin/class-wc-admin-webhooks.php:128 #: includes/admin/class-wc-admin-webhooks.php:185 #: includes/admin/class-wc-admin-webhooks.php:265 #: includes/admin/class-wc-admin-webhooks.php:294 #: includes/emails/class-wc-email.php:680 msgid "Action failed. Please refresh the page and retry." msgstr "" #: includes/admin/class-wc-admin-assets.php:146 msgid "Please enter in decimal (%s) format without thousand separators." msgstr "" #: includes/admin/class-wc-admin-assets.php:147 msgid "" "Please enter in monetary decimal (%s) format without thousand separators " "and currency symbols." msgstr "" #: includes/admin/class-wc-admin-assets.php:148 msgid "Please enter in country code with two capital letters." msgstr "" #: includes/admin/class-wc-admin-assets.php:149 msgid "Please enter in a value less than the regular price." msgstr "" #: includes/admin/class-wc-admin-assets.php:188 msgid "" "Are you sure you want to link all variations? This will create a new " "variation for each and every possible combination of variation attributes " "(max %d per run)." msgstr "" #: includes/admin/class-wc-admin-assets.php:189 msgid "Enter a value" msgstr "" #: includes/admin/class-wc-admin-assets.php:190 msgid "Variation menu order (determines position in the list of variations)" msgstr "" #: includes/admin/class-wc-admin-assets.php:191 msgid "Enter a value (fixed or %)" msgstr "" #: includes/admin/class-wc-admin-assets.php:192 msgid "Are you sure you want to delete all variations? This cannot be undone." msgstr "" #: includes/admin/class-wc-admin-assets.php:193 msgid "Last warning, are you sure?" msgstr "" #: includes/admin/class-wc-admin-assets.php:194 #: includes/admin/class-wc-admin-taxonomies.php:130 #: includes/admin/class-wc-admin-taxonomies.php:239 msgid "Choose an image" msgstr "" #: includes/admin/class-wc-admin-assets.php:195 msgid "Set variation image" msgstr "" #: includes/admin/class-wc-admin-assets.php:196 msgid "variation added" msgstr "" #: includes/admin/class-wc-admin-assets.php:197 msgid "variations added" msgstr "" #: includes/admin/class-wc-admin-assets.php:198 msgid "No variations added" msgstr "" #: includes/admin/class-wc-admin-assets.php:199 msgid "Are you sure you want to remove this variation?" msgstr "" #: includes/admin/class-wc-admin-assets.php:200 msgid "Sale start date (YYYY-MM-DD format or leave blank)" msgstr "" #: includes/admin/class-wc-admin-assets.php:201 msgid "Sale end date (YYYY-MM-DD format or leave blank)" msgstr "" #: includes/admin/class-wc-admin-assets.php:202 msgid "Save changes before changing page?" msgstr "" #: includes/admin/class-wc-admin-assets.php:203 msgid "%qty% variation" msgstr "" #: includes/admin/class-wc-admin-assets.php:204 msgid "%qty% variations" msgstr "" #: includes/admin/class-wc-admin-assets.php:216 #: includes/admin/class-wc-admin-assets.php:354 #: includes/admin/settings/views/html-webhooks-edit.php:50 #: includes/class-wc-frontend-scripts.php:331 msgid "Select an option…" msgstr "" #: includes/admin/class-wc-admin-assets.php:235 msgid "" "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." msgstr "" #: includes/admin/class-wc-admin-assets.php:236 msgid "Please select some items." msgstr "" #: includes/admin/class-wc-admin-assets.php:237 msgid "Are you sure you wish to process this refund? This action cannot be undone." msgstr "" #: includes/admin/class-wc-admin-assets.php:238 msgid "Are you sure you wish to delete this refund? This action cannot be undone." msgstr "" #: includes/admin/class-wc-admin-assets.php:239 msgid "" "Are you sure you wish to delete this tax column? This action cannot be " "undone." msgstr "" #: includes/admin/class-wc-admin-assets.php:240 msgid "Remove this item meta?" msgstr "" #: includes/admin/class-wc-admin-assets.php:241 msgid "Remove this attribute?" msgstr "" #: includes/admin/class-wc-admin-assets.php:242 #: includes/admin/class-wc-admin-attributes.php:276 #: includes/admin/class-wc-admin-attributes.php:331 #: includes/admin/class-wc-admin-attributes.php:365 #: includes/admin/class-wc-admin-attributes.php:388 #: includes/admin/class-wc-admin-attributes.php:444 #: includes/admin/class-wc-admin-attributes.php:485 #: includes/admin/class-wc-admin-post-types.php:224 #: includes/admin/class-wc-admin-setup-wizard.php:467 #: includes/admin/class-wc-admin-webhooks-table-list.php:40 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:173 #: includes/admin/meta-boxes/views/html-product-attribute.php:12 #: includes/admin/meta-boxes/views/html-variation-admin.php:258 #: includes/admin/settings/views/html-webhooks-edit.php:15 #: includes/admin/views/html-admin-page-status-report.php:646 #: includes/class-wc-ajax.php:1435 #: includes/widgets/class-wc-widget-product-categories.php:52 #: templates/single-product-reviews.php:73 msgid "Name" msgstr "" #: includes/admin/class-wc-admin-assets.php:243 #: includes/admin/meta-boxes/views/html-product-attribute.php:3 #: includes/admin/meta-boxes/views/html-variation-admin.php:17 #: includes/admin/settings/views/html-admin-page-shipping-classes.php:48 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:52 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:87 msgid "Remove" msgstr "" #: includes/admin/class-wc-admin-assets.php:244 #: includes/admin/meta-boxes/views/html-order-download-permission.php:11 #: includes/admin/meta-boxes/views/html-product-attribute.php:4 #: includes/admin/meta-boxes/views/html-variation-admin.php:18 msgid "Click to toggle" msgstr "" #: includes/admin/class-wc-admin-assets.php:245 #: includes/admin/meta-boxes/views/html-product-attribute.php:25 msgid "Value(s)" msgstr "" #: includes/admin/class-wc-admin-assets.php:246 msgid "Enter some text, or some attributes by pipe (|) separating values." msgstr "" #: includes/admin/class-wc-admin-assets.php:247 #: includes/admin/meta-boxes/views/html-product-attribute.php:70 msgid "Visible on the product page" msgstr "" #: includes/admin/class-wc-admin-assets.php:248 #: includes/admin/meta-boxes/views/html-product-attribute.php:76 msgid "Used for variations" msgstr "" #: includes/admin/class-wc-admin-assets.php:249 msgid "Enter a name for the new attribute term:" msgstr "" #: includes/admin/class-wc-admin-assets.php:250 msgid "Calculate totals based on order items, discounts, and shipping?" msgstr "" #: includes/admin/class-wc-admin-assets.php:251 msgid "" "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." msgstr "" #: includes/admin/class-wc-admin-assets.php:252 msgid "" "Copy billing information to shipping information? This will remove any " "currently entered shipping information." msgstr "" #: includes/admin/class-wc-admin-assets.php:253 msgid "" "Load the customer's billing information? This will remove any currently " "entered billing information." msgstr "" #: includes/admin/class-wc-admin-assets.php:254 msgid "" "Load the customer's shipping information? This will remove any currently " "entered shipping information." msgstr "" #: includes/admin/class-wc-admin-assets.php:255 #: includes/admin/class-wc-admin-post-types.php:237 #: includes/admin/class-wc-admin-post-types.php:2112 #: includes/admin/views/html-bulk-edit-product.php:199 #: includes/admin/views/html-quick-edit-product.php:157 msgid "Featured" msgstr "" #: includes/admin/class-wc-admin-assets.php:259 msgid "No customer selected" msgstr "" #: includes/admin/class-wc-admin-assets.php:283 msgid "" "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." msgstr "" #: includes/admin/class-wc-admin-assets.php:284 msgid "Are you sure you want to revoke access to this download?" msgstr "" #: includes/admin/class-wc-admin-assets.php:285 msgid "You cannot add the same tax rate twice!" msgstr "" #: includes/admin/class-wc-admin-assets.php:286 msgid "" "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." msgstr "" #: includes/admin/class-wc-admin-assets.php:287 msgid "Are you sure you wish to delete this note? This action cannot be undone." msgstr "" #: includes/admin/class-wc-admin-assets.php:336 #: includes/admin/views/html-admin-page-status-report.php:19 msgid "Copying to clipboard failed. Please press Ctrl/Cmd+C to copy." msgstr "" #: includes/admin/class-wc-admin-attributes.php:98 #: includes/api/legacy/v2/class-wc-api-products.php:2095 #: includes/api/legacy/v3/class-wc-api-products.php:2676 msgid "Slug \"%s\" is too long (28 characters max). Shorten it, please." msgstr "" #: includes/admin/class-wc-admin-attributes.php:100 #: includes/api/legacy/v2/class-wc-api-products.php:2097 #: includes/api/legacy/v3/class-wc-api-products.php:2678 msgid "Slug \"%s\" is not allowed because it is a reserved term. Change it, please." msgstr "" #: includes/admin/class-wc-admin-attributes.php:117 #: includes/admin/class-wc-admin-attributes.php:146 msgid "Please, provide an attribute name and slug." msgstr "" #: includes/admin/class-wc-admin-attributes.php:121 #: includes/admin/class-wc-admin-attributes.php:154 #: includes/api/legacy/v2/class-wc-api-products.php:2099 #: includes/api/legacy/v3/class-wc-api-products.php:2680 msgid "Slug \"%s\" is already in use. Change it, please." msgstr "" #: includes/admin/class-wc-admin-attributes.php:201 msgid "Attribute updated successfully" msgstr "" #: includes/admin/class-wc-admin-attributes.php:256 msgid "Edit Attribute" msgstr "" #: includes/admin/class-wc-admin-attributes.php:261 msgid "Error: non-existing attribute ID." msgstr "" #: includes/admin/class-wc-admin-attributes.php:280 #: includes/admin/class-wc-admin-attributes.php:446 msgid "Name for the attribute (shown on the front-end)." msgstr "" #: includes/admin/class-wc-admin-attributes.php:285 #: includes/admin/class-wc-admin-attributes.php:366 #: includes/admin/class-wc-admin-attributes.php:450 #: includes/admin/settings/class-wc-settings-shipping.php:306 #: includes/admin/settings/views/html-admin-page-shipping-classes.php:62 msgid "Slug" msgstr "" #: includes/admin/class-wc-admin-attributes.php:289 #: includes/admin/class-wc-admin-attributes.php:452 msgid "Unique slug/reference for the attribute; must be shorter than 28 characters." msgstr "" #: includes/admin/class-wc-admin-attributes.php:294 #: includes/admin/class-wc-admin-attributes.php:456 msgid "Enable Archives?" msgstr "" #: includes/admin/class-wc-admin-attributes.php:298 #: includes/admin/class-wc-admin-attributes.php:458 msgid "" "Enable this if you want this attribute to have product archives in your " "store." msgstr "" #: includes/admin/class-wc-admin-attributes.php:303 #: includes/admin/class-wc-admin-attributes.php:367 #: includes/admin/class-wc-admin-attributes.php:462 #: includes/admin/class-wc-admin-post-types.php:238 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:21 msgid "Type" msgstr "" #: includes/admin/class-wc-admin-attributes.php:321 #: includes/admin/class-wc-admin-attributes.php:478 msgid "" "Determines how you select attributes for products. Under admin panel -> " "products -> product data -> attributes -> values, Text " "allows manual entry whereas select allows pre-configured " "terms in a drop-down list." msgstr "" #: includes/admin/class-wc-admin-attributes.php:326 #: includes/admin/class-wc-admin-attributes.php:482 msgid "Default sort order" msgstr "" #: includes/admin/class-wc-admin-attributes.php:330 #: includes/admin/class-wc-admin-attributes.php:397 #: includes/admin/class-wc-admin-attributes.php:484 msgid "Custom ordering" msgstr "" #: includes/admin/class-wc-admin-attributes.php:332 #: includes/admin/class-wc-admin-attributes.php:391 #: includes/admin/class-wc-admin-attributes.php:486 msgid "Name (numeric)" msgstr "" #: includes/admin/class-wc-admin-attributes.php:333 #: includes/admin/class-wc-admin-attributes.php:394 #: includes/admin/class-wc-admin-attributes.php:487 msgid "Term ID" msgstr "" #: includes/admin/class-wc-admin-attributes.php:335 #: includes/admin/class-wc-admin-attributes.php:489 msgid "" "Determines the sort order of the terms on the frontend shop product pages. " "If using custom ordering, you can drag and drop the terms in this attribute." msgstr "" #: includes/admin/class-wc-admin-attributes.php:340 msgid "Update" msgstr "" #: includes/admin/class-wc-admin-attributes.php:357 #: includes/admin/class-wc-admin-menus.php:62 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:104 msgid "Attributes" msgstr "" #: includes/admin/class-wc-admin-attributes.php:368 #: includes/widgets/class-wc-widget-product-categories.php:49 #: includes/widgets/class-wc-widget-products.php:53 msgid "Order by" msgstr "" #: includes/admin/class-wc-admin-attributes.php:369 msgid "Terms" msgstr "" #: includes/admin/class-wc-admin-attributes.php:381 #: includes/admin/class-wc-admin-post-types.php:446 #: includes/admin/class-wc-admin-post-types.php:572 #: includes/admin/class-wc-admin-post-types.php:2116 #: includes/admin/class-wc-admin-webhooks-table-list.php:99 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:249 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:333 #: includes/admin/reports/class-wc-report-customer-list.php:159 #: includes/admin/reports/class-wc-report-stock.php:134 #: includes/admin/settings/views/html-admin-page-shipping-classes.php:48 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:87 #: includes/class-wc-post-types.php:246 includes/class-wc-post-types.php:303 #: includes/class-wc-post-types.php:365 includes/class-wc-post-types.php:406 #: templates/myaccount/my-address.php:51 msgid "Edit" msgstr "" #: includes/admin/class-wc-admin-attributes.php:381 #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:58 #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:78 #: includes/admin/meta-boxes/views/html-product-download.php:6 #: includes/admin/meta-boxes/views/html-product-variation-download.php:5 #: includes/wc-account-functions.php:256 msgid "Delete" msgstr "" #: includes/admin/class-wc-admin-attributes.php:384 msgid "Public" msgstr "" #: includes/admin/class-wc-admin-attributes.php:426 msgid "Configure terms" msgstr "" #: includes/admin/class-wc-admin-attributes.php:430 msgid "No attributes currently exist." msgstr "" #: includes/admin/class-wc-admin-attributes.php:440 msgid "Add New Attribute" msgstr "" #: includes/admin/class-wc-admin-attributes.php:441 msgid "" "Attributes let you define extra product data, such as size or colour. You " "can use these attributes in the shop sidebar using the \"layered nav\" " "widgets. Please note: you cannot rename an attribute later on." msgstr "" #: includes/admin/class-wc-admin-attributes.php:492 msgid "Add Attribute" msgstr "" #: includes/admin/class-wc-admin-attributes.php:503 msgid "Are you sure you want to delete this attribute?" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:37 #: includes/widgets/class-wc-widget-recent-reviews.php:25 msgid "WooCommerce Recent Reviews" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:40 #: includes/admin/class-wc-admin-menus.php:97 msgid "WooCommerce Status" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:100 msgid "%s net sales this month" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:111 msgid "%s top seller this month (sold %d)" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:142 msgid "%s order awaiting processing" msgid_plural "%s orders awaiting processing" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-dashboard.php:147 msgid "%s order on-hold" msgid_plural "%s orders on-hold" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-dashboard.php:198 msgid "%s product low in stock" msgid_plural "%s products low in stock" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-dashboard.php:203 msgid "%s product out of stock" msgid_plural "%s products out of stock" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-dashboard.php:238 msgid "reviewed by" msgstr "" #: includes/admin/class-wc-admin-dashboard.php:244 msgid "There are no product reviews yet." msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:46 msgid "Make a duplicate from this product" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:47 msgid "Duplicate" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:73 msgid "Copy to a new draft" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:84 msgid "No product to duplicate has been supplied!" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:106 msgid "Product creation failed, could not find original product:" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:133 msgid "(Copy)" msgstr "" #: includes/admin/class-wc-admin-duplicate-product.php:167 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1289 #: includes/api/class-wc-rest-products-controller.php:1337 #: includes/api/legacy/v2/class-wc-api-products.php:1263 #: includes/api/legacy/v3/class-wc-api-products.php:1758 #: includes/cli/class-wc-cli-product.php:1536 msgid "Variation #%s of %s" msgstr "" #: includes/admin/class-wc-admin-help.php:41 #: includes/admin/class-wc-admin-help.php:45 msgid "General Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:49 msgid "Product Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:53 msgid "Tax Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:57 #: includes/admin/settings/class-wc-settings-shipping.php:48 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:8 #: includes/admin/settings/views/html-admin-page-shipping-zones-instance.php:7 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:8 #: includes/admin/views/html-notice-legacy-shipping.php:13 msgid "Shipping Zones" msgstr "" #: includes/admin/class-wc-admin-help.php:61 #: includes/admin/settings/class-wc-settings-shipping.php:49 #: includes/admin/settings/class-wc-settings-shipping.php:77 msgid "Shipping Options" msgstr "" #: includes/admin/class-wc-admin-help.php:65 #: includes/admin/settings/class-wc-settings-shipping.php:50 #: includes/admin/settings/views/html-admin-page-shipping-classes.php:8 #: includes/class-wc-post-types.php:136 includes/class-wc-post-types.php:138 msgid "Shipping Classes" msgstr "" #: includes/admin/class-wc-admin-help.php:69 msgid "Checkout Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:73 #: includes/admin/class-wc-admin-setup-wizard.php:608 msgid "Bank Transfer (BACS) Payments" msgstr "" #: includes/admin/class-wc-admin-help.php:77 msgid "Check Payments" msgstr "" #: includes/admin/class-wc-admin-help.php:81 #: includes/admin/class-wc-admin-setup-wizard.php:614 #: includes/gateways/cod/class-wc-gateway-cod.php:26 #: includes/gateways/cod/class-wc-gateway-cod.php:72 msgid "Cash on Delivery" msgstr "" #: includes/admin/class-wc-admin-help.php:85 #: includes/admin/class-wc-admin-setup-wizard.php:588 msgid "PayPal Standard" msgstr "" #: includes/admin/class-wc-admin-help.php:89 #: includes/admin/class-wc-admin-setup-wizard.php:567 msgid "PayPal by Braintree" msgstr "" #: includes/admin/class-wc-admin-help.php:93 #: includes/admin/class-wc-admin-setup-wizard.php:581 msgid "Stripe" msgstr "" #: includes/admin/class-wc-admin-help.php:97 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:24 msgid "Simplify Commerce" msgstr "" #: includes/admin/class-wc-admin-help.php:101 msgid "Account Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:105 msgid "Email Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:109 msgid "Webhook Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:113 msgid "Simple Products" msgstr "" #: includes/admin/class-wc-admin-help.php:117 #: includes/admin/class-wc-admin-pointers.php:192 #: includes/class-wc-post-types.php:63 includes/class-wc-post-types.php:65 #: includes/widgets/class-wc-widget-product-categories.php:43 msgid "Product Categories" msgstr "" #: includes/admin/class-wc-admin-help.php:121 #: includes/admin/class-wc-admin-help.php:125 msgid "Product Categories, Tags, Shipping Classes, & Attributes" msgstr "" #: includes/admin/class-wc-admin-help.php:129 #: includes/admin/class-wc-admin-help.php:197 #: includes/admin/class-wc-admin-help.php:206 #: includes/admin/class-wc-admin-menus.php:97 #: includes/admin/views/html-admin-page-status.php:12 msgid "System Status" msgstr "" #: includes/admin/class-wc-admin-help.php:133 #: includes/admin/class-wc-admin-menus.php:70 msgid "Reports" msgstr "" #: includes/admin/class-wc-admin-help.php:137 #: includes/admin/class-wc-admin-help.php:141 #: includes/admin/settings/class-wc-settings-checkout.php:75 #: includes/class-wc-post-types.php:360 msgid "Coupons" msgstr "" #: includes/admin/class-wc-admin-help.php:145 #: includes/admin/class-wc-admin-help.php:149 msgid "Managing Orders" msgstr "" #: includes/admin/class-wc-admin-help.php:172 #: includes/admin/class-wc-admin-help.php:174 msgid "WooCommerce 101" msgstr "" #: includes/admin/class-wc-admin-help.php:181 #: includes/admin/class-wc-admin-help.php:183 msgid "Help & Support" msgstr "" #: includes/admin/class-wc-admin-help.php:185 msgid "" "Should you need help understanding, using, or extending WooCommerce, " "%splease read our documentation%s. You will find all kinds of resources " "including snippets, tutorials and much more." msgstr "" #: includes/admin/class-wc-admin-help.php:190 msgid "" "For further assistance with WooCommerce core you can use the %1$scommunity " "forum%2$s. If you need help with premium extensions sold by WooCommerce, " "please %3$suse our helpdesk%4$s." msgstr "" #: includes/admin/class-wc-admin-help.php:196 msgid "" "Before asking for help we recommend checking the system status page to " "identify any problems with your configuration." msgstr "" #: includes/admin/class-wc-admin-help.php:197 msgid "Community Forum" msgstr "" #: includes/admin/class-wc-admin-help.php:197 msgid "WooThemes Helpdesk" msgstr "" #: includes/admin/class-wc-admin-help.php:202 #: includes/admin/class-wc-admin-help.php:204 msgid "Found a bug?" msgstr "" #: includes/admin/class-wc-admin-help.php:205 msgid "" "If you find a bug within WooCommerce core you can create a ticket via Github issues. Ensure you read the contribution guide prior to submitting your report. To help " "us solve your issue, please be as descriptive as possible and include your " "system status report." msgstr "" #: includes/admin/class-wc-admin-help.php:206 msgid "Report a bug" msgstr "" #: includes/admin/class-wc-admin-help.php:212 #: includes/admin/class-wc-admin-help.php:214 msgid "Education" msgstr "" #: includes/admin/class-wc-admin-help.php:215 msgid "" "If you would like to learn about using WooCommerce from an expert, consider " "following a WooCommerce course ran by one of our educational partners." msgstr "" #: includes/admin/class-wc-admin-help.php:216 msgid "View Education Partners" msgstr "" #: includes/admin/class-wc-admin-help.php:221 #: includes/admin/class-wc-admin-help.php:223 #: includes/admin/class-wc-admin-help.php:225 msgid "Setup Wizard" msgstr "" #: includes/admin/class-wc-admin-help.php:224 msgid "" "If you need to access the setup wizard again, please click on the button " "below." msgstr "" #: includes/admin/class-wc-admin-help.php:230 msgid "For more information:" msgstr "" #: includes/admin/class-wc-admin-help.php:231 msgid "About WooCommerce" msgstr "" #: includes/admin/class-wc-admin-help.php:232 msgid "WordPress.org Project" msgstr "" #: includes/admin/class-wc-admin-help.php:233 msgid "Github Project" msgstr "" #: includes/admin/class-wc-admin-help.php:234 msgid "Official Themes" msgstr "" #: includes/admin/class-wc-admin-help.php:235 msgid "Official Extensions" msgstr "" #: includes/admin/class-wc-admin-importers.php:34 msgid "WooCommerce Tax Rates (CSV)" msgstr "" #: includes/admin/class-wc-admin-importers.php:34 msgid "Import tax rates to your store via a csv file." msgstr "" #: includes/admin/class-wc-admin-menus.php:72 msgid "Sales Reports" msgstr "" #: includes/admin/class-wc-admin-menus.php:80 msgid "WooCommerce Settings" msgstr "" #: includes/admin/class-wc-admin-menus.php:80 #: includes/admin/settings/class-wc-settings-api.php:45 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:52 #: includes/admin/views/html-admin-page-status-report.php:476 #: includes/class-wc-install.php:832 msgid "Settings" msgstr "" #: includes/admin/class-wc-admin-menus.php:105 #: includes/admin/views/html-admin-page-addons.php:16 msgid "WooCommerce Extensions" msgstr "" #: includes/admin/class-wc-admin-menus.php:105 msgid "Extensions" msgstr "" #: includes/admin/class-wc-admin-menus.php:236 msgid "WooCommerce Endpoints" msgstr "" #: includes/admin/class-wc-admin-menus.php:272 msgid "Select All" msgstr "" #: includes/admin/class-wc-admin-menus.php:275 msgid "Add to Menu" msgstr "" #: includes/admin/class-wc-admin-menus.php:308 msgid "Visit Store" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:113 #: includes/admin/class-wc-admin-pointers.php:156 msgid "Product Short Description" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:114 #: includes/admin/views/html-bulk-edit-product.php:15 #: includes/admin/views/html-quick-edit-product.php:15 msgid "Product Data" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:115 msgid "Product Gallery" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:120 msgid "%s Data" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:122 msgid "%s Notes" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:123 msgid "Downloadable Product Permissions" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:123 msgid "" "Note: Permissions for order items will automatically be granted when the " "order status changes to processing/completed." msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:124 msgid "%s Actions" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:128 msgid "Coupon Data" msgstr "" #: includes/admin/class-wc-admin-meta-boxes.php:164 #: includes/admin/settings/class-wc-settings-products.php:462 #: templates/single-product-reviews.php:35 msgid "Reviews" msgstr "" #: includes/admin/class-wc-admin-notices.php:132 #: includes/class-wc-checkout.php:74 includes/class-wc-checkout.php:83 #: includes/class-wc-emails.php:48 includes/class-wc-emails.php:57 #: includes/class-wc-payment-gateways.php:51 #: includes/class-wc-payment-gateways.php:60 includes/class-wc-shipping.php:69 #: includes/class-wc-shipping.php:78 includes/emails/class-wc-email.php:684 #: woocommerce.php:126 woocommerce.php:134 msgid "Cheatin’ huh?" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:36 msgid "Product Permalinks" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:41 msgid "Product category base" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:48 msgid "Product tag base" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:55 msgid "Product attribute base" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:96 msgid "These settings control the permalinks used specifically for products." msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:115 #: includes/admin/class-wc-admin-taxonomies.php:94 #: includes/admin/class-wc-admin-taxonomies.php:201 msgid "Default" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:120 msgid "Shop base" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:124 msgid "Shop base with category" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:130 msgid "Custom Base" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:132 msgid "" "Enter a custom base to use. A base must be set or " "WordPress will use default instead." msgstr "" #: includes/admin/class-wc-admin-pointers.php:60 msgid "Product Name" msgstr "" #: includes/admin/class-wc-admin-pointers.php:61 msgid "" "Give your new product a name here. This is a required field and will be " "what your customers will see in your store." msgstr "" #: includes/admin/class-wc-admin-pointers.php:73 #: templates/single-product/tabs/description.php:25 msgid "Product Description" msgstr "" #: includes/admin/class-wc-admin-pointers.php:74 msgid "" "This is your products main body of content. Here you should describe your " "product in detail." msgstr "" #: includes/admin/class-wc-admin-pointers.php:89 msgid "Choose Product Type" msgstr "" #: includes/admin/class-wc-admin-pointers.php:90 msgid "" "Choose a type for this product. Simple is suitable for most physical goods " "and services (we recommend setting up a simple product for now)." msgstr "" #: includes/admin/class-wc-admin-pointers.php:91 msgid "Variable is for more complex products such as t-shirts with multiple sizes." msgstr "" #: includes/admin/class-wc-admin-pointers.php:92 msgid "Grouped products are for grouping several simple products into one." msgstr "" #: includes/admin/class-wc-admin-pointers.php:93 msgid "Finally, external products are for linking off-site." msgstr "" #: includes/admin/class-wc-admin-pointers.php:108 msgid "Virtual Products" msgstr "" #: includes/admin/class-wc-admin-pointers.php:109 msgid "" "Check the \"Virtual\" box if this is a non-physical item, for example a " "service, which does not need shipping." msgstr "" #: includes/admin/class-wc-admin-pointers.php:124 #: includes/admin/settings/class-wc-settings-products.php:47 #: includes/admin/settings/class-wc-settings-products.php:363 msgid "Downloadable Products" msgstr "" #: includes/admin/class-wc-admin-pointers.php:125 msgid "" "If purchasing this product gives a customer access to a downloadable file, " "e.g. software, check this box." msgstr "" #: includes/admin/class-wc-admin-pointers.php:140 msgid "Prices" msgstr "" #: includes/admin/class-wc-admin-pointers.php:141 msgid "Next you'll need to give your product a price." msgstr "" #: includes/admin/class-wc-admin-pointers.php:157 msgid "" "Add a quick summary for your product here. This will appear on the product " "page under the product name." msgstr "" #: includes/admin/class-wc-admin-pointers.php:168 #: includes/admin/settings/class-wc-settings-products.php:176 msgid "Product Images" msgstr "" #: includes/admin/class-wc-admin-pointers.php:169 msgid "" "Upload or assign an image to your product here. This image will be shown in " "your store's catalog." msgstr "" #: includes/admin/class-wc-admin-pointers.php:180 #: includes/class-wc-post-types.php:99 includes/class-wc-post-types.php:101 #: includes/widgets/class-wc-widget-product-tag-cloud.php:29 msgid "Product Tags" msgstr "" #: includes/admin/class-wc-admin-pointers.php:181 msgid "" "You can optionally \"tag\" your products here. Tags as a method of labeling " "your products to make them easier for customers to find." msgstr "" #: includes/admin/class-wc-admin-pointers.php:193 msgid "" "Optionally assign categories to your products to make them easier to browse " "through and find in your store." msgstr "" #: includes/admin/class-wc-admin-pointers.php:204 msgid "Publish Your Product!" msgstr "" #: includes/admin/class-wc-admin-pointers.php:205 msgid "" "When you are finished editing your product, hit the \"Publish\" button to " "publish your product to your store." msgstr "" #: includes/admin/class-wc-admin-post-types.php:127 msgid "Product updated. View Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:128 #: includes/admin/class-wc-admin-post-types.php:143 #: includes/admin/class-wc-admin-post-types.php:159 msgid "Custom field updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:129 #: includes/admin/class-wc-admin-post-types.php:144 #: includes/admin/class-wc-admin-post-types.php:160 msgid "Custom field deleted." msgstr "" #: includes/admin/class-wc-admin-post-types.php:130 msgid "Product updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:131 msgid "Product restored to revision from %s" msgstr "" #: includes/admin/class-wc-admin-post-types.php:132 msgid "Product published. View Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:133 msgid "Product saved." msgstr "" #: includes/admin/class-wc-admin-post-types.php:134 msgid "Product submitted. Preview Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:135 msgid "" "Product scheduled for: %1$s. Preview Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:136 #: includes/admin/class-wc-admin-post-types.php:151 #: includes/admin/class-wc-admin-post-types.php:167 #: includes/admin/settings/views/html-webhook-log.php:10 #: includes/admin/settings/views/html-webhooks-edit.php:126 #: includes/admin/settings/views/html-webhooks-edit.php:135 #: includes/admin/settings/views/html-webhooks-edit.php:143 msgid "M j, Y @ G:i" msgstr "" #: includes/admin/class-wc-admin-post-types.php:137 msgid "Product draft updated. Preview Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:142 #: includes/admin/class-wc-admin-post-types.php:145 #: includes/admin/class-wc-admin-post-types.php:147 msgid "Order updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:146 msgid "Order restored to revision from %s" msgstr "" #: includes/admin/class-wc-admin-post-types.php:148 msgid "Order saved." msgstr "" #: includes/admin/class-wc-admin-post-types.php:149 msgid "Order submitted." msgstr "" #: includes/admin/class-wc-admin-post-types.php:150 msgid "Order scheduled for: %1$s." msgstr "" #: includes/admin/class-wc-admin-post-types.php:152 msgid "Order draft updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:153 msgid "Order updated and email sent." msgstr "" #: includes/admin/class-wc-admin-post-types.php:158 #: includes/admin/class-wc-admin-post-types.php:161 #: includes/admin/class-wc-admin-post-types.php:163 msgid "Coupon updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:162 msgid "Coupon restored to revision from %s" msgstr "" #: includes/admin/class-wc-admin-post-types.php:164 msgid "Coupon saved." msgstr "" #: includes/admin/class-wc-admin-post-types.php:165 msgid "Coupon submitted." msgstr "" #: includes/admin/class-wc-admin-post-types.php:166 msgid "Coupon scheduled for: %1$s." msgstr "" #: includes/admin/class-wc-admin-post-types.php:168 msgid "Coupon draft updated." msgstr "" #: includes/admin/class-wc-admin-post-types.php:183 msgid "%s product updated." msgid_plural "%s products updated." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:184 msgid "%s product not updated, somebody is editing it." msgid_plural "%s products not updated, somebody is editing them." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:185 msgid "%s product permanently deleted." msgid_plural "%s products permanently deleted." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:186 msgid "%s product moved to the Trash." msgid_plural "%s products moved to the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:187 msgid "%s product restored from the Trash." msgid_plural "%s products restored from the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:191 msgid "%s order updated." msgid_plural "%s orders updated." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:192 msgid "%s order not updated, somebody is editing it." msgid_plural "%s orders not updated, somebody is editing them." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:193 msgid "%s order permanently deleted." msgid_plural "%s orders permanently deleted." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:194 msgid "%s order moved to the Trash." msgid_plural "%s orders moved to the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:195 msgid "%s order restored from the Trash." msgid_plural "%s orders restored from the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:199 msgid "%s coupon updated." msgid_plural "%s coupons updated." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:200 msgid "%s coupon not updated, somebody is editing it." msgid_plural "%s coupons not updated, somebody is editing them." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:201 msgid "%s coupon permanently deleted." msgid_plural "%s coupons permanently deleted." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:202 msgid "%s coupon moved to the Trash." msgid_plural "%s coupons moved to the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:203 msgid "%s coupon restored from the Trash." msgid_plural "%s coupons restored from the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:223 #: includes/admin/class-wc-admin-taxonomies.php:317 msgid "Image" msgstr "" #: includes/admin/class-wc-admin-post-types.php:227 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:284 #: includes/admin/meta-boxes/views/html-variation-admin.php:68 #: includes/admin/views/html-quick-edit-product.php:22 msgid "SKU" msgstr "" #: includes/admin/class-wc-admin-post-types.php:231 #: includes/admin/class-wc-admin-reports.php:91 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:687 #: includes/admin/reports/class-wc-report-stock.php:34 #: includes/admin/reports/class-wc-report-stock.php:35 msgid "Stock" msgstr "" #: includes/admin/class-wc-admin-post-types.php:234 #: includes/admin/views/html-bulk-edit-product.php:21 #: includes/admin/views/html-quick-edit-product.php:33 #: includes/widgets/class-wc-widget-products.php:56 templates/cart/cart.php:37 #: templates/cart/cart.php:97 templates/emails/email-order-details.php:36 msgid "Price" msgstr "" #: includes/admin/class-wc-admin-post-types.php:235 #: includes/admin/reports/class-wc-report-sales-by-category.php:192 msgid "Categories" msgstr "" #: includes/admin/class-wc-admin-post-types.php:236 msgid "Tags" msgstr "" #: includes/admin/class-wc-admin-post-types.php:239 #: includes/admin/class-wc-admin-post-types.php:279 #: includes/admin/reports/class-wc-report-coupon-usage.php:349 #: includes/admin/reports/class-wc-report-customers.php:226 #: includes/admin/reports/class-wc-report-sales-by-category.php:263 #: includes/admin/reports/class-wc-report-sales-by-date.php:476 #: includes/admin/reports/class-wc-report-sales-by-product.php:375 #: includes/admin/settings/views/html-webhook-logs.php:17 #: includes/admin/settings/views/html-webhook-logs.php:25 #: includes/wc-account-functions.php:178 #: includes/widgets/class-wc-widget-products.php:55 #: templates/myaccount/my-orders.php:14 msgid "Date" msgstr "" #: includes/admin/class-wc-admin-post-types.php:253 msgid "Code" msgstr "" #: includes/admin/class-wc-admin-post-types.php:254 msgid "Coupon type" msgstr "" #: includes/admin/class-wc-admin-post-types.php:255 #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:70 #: includes/admin/reports/class-wc-report-sales-by-date.php:596 msgid "Coupon amount" msgstr "" #: includes/admin/class-wc-admin-post-types.php:257 msgid "Product IDs" msgstr "" #: includes/admin/class-wc-admin-post-types.php:258 msgid "Usage / Limit" msgstr "" #: includes/admin/class-wc-admin-post-types.php:259 msgid "Expiry date" msgstr "" #: includes/admin/class-wc-admin-post-types.php:272 #: includes/admin/class-wc-admin-webhooks-table-list.php:41 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:671 #: includes/admin/settings/views/html-webhook-log.php:25 #: includes/admin/settings/views/html-webhooks-edit.php:24 #: includes/wc-account-functions.php:179 templates/myaccount/my-orders.php:15 msgid "Status" msgstr "" #: includes/admin/class-wc-admin-post-types.php:273 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:165 #: includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php:195 #: includes/wc-account-functions.php:177 templates/myaccount/my-orders.php:13 msgid "Order" msgstr "" #: includes/admin/class-wc-admin-post-types.php:274 msgid "Purchased" msgstr "" #: includes/admin/class-wc-admin-post-types.php:275 msgid "Billing" msgstr "" #: includes/admin/class-wc-admin-post-types.php:276 msgid "Ship to" msgstr "" #: includes/admin/class-wc-admin-post-types.php:277 msgid "Customer Message" msgstr "" #: includes/admin/class-wc-admin-post-types.php:278 #: includes/class-wc-checkout.php:125 msgid "Order Notes" msgstr "" #: includes/admin/class-wc-admin-post-types.php:280 #: includes/admin/meta-boxes/views/html-order-items.php:54 #: includes/admin/reports/class-wc-report-taxes-by-code.php:177 #: includes/wc-account-functions.php:180 templates/cart/cart-totals.php:92 #: templates/cart/cart-totals.php:93 templates/cart/cart.php:39 #: templates/cart/cart.php:120 templates/checkout/review-order.php:27 #: templates/checkout/review-order.php:106 templates/myaccount/my-orders.php:16 #: templates/order/order-details.php:33 msgid "Total" msgstr "" #: includes/admin/class-wc-admin-post-types.php:281 #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:43 #: includes/admin/reports/class-wc-report-customer-list.php:215 #: includes/admin/reports/class-wc-report-stock.php:169 msgid "Actions" msgstr "" #: includes/admin/class-wc-admin-post-types.php:356 msgid "Grouped" msgstr "" #: includes/admin/class-wc-admin-post-types.php:358 msgid "External/Affiliate" msgstr "" #: includes/admin/class-wc-admin-post-types.php:362 #: includes/admin/class-wc-admin-post-types.php:1643 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:52 #: includes/admin/meta-boxes/views/html-variation-admin.php:80 msgid "Virtual" msgstr "" #: includes/admin/class-wc-admin-post-types.php:364 #: includes/admin/class-wc-admin-post-types.php:1635 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:59 #: includes/admin/meta-boxes/views/html-variation-admin.php:78 msgid "Downloadable" msgstr "" #: includes/admin/class-wc-admin-post-types.php:366 msgid "Simple" msgstr "" #: includes/admin/class-wc-admin-post-types.php:370 msgid "Variable" msgstr "" #: includes/admin/class-wc-admin-post-types.php:394 msgid "Toggle featured" msgstr "" #: includes/admin/class-wc-admin-post-types.php:396 #: includes/admin/class-wc-admin-post-types.php:634 #: includes/admin/class-wc-admin-post-types.php:715 #: includes/admin/class-wc-admin-post-types.php:717 #: includes/admin/class-wc-admin-post-types.php:719 #: includes/admin/settings/class-wc-settings-checkout.php:332 #: includes/admin/settings/class-wc-settings-emails.php:269 #: includes/admin/settings/class-wc-settings-shipping.php:214 #: includes/admin/views/html-bulk-edit-product.php:205 #: includes/admin/views/html-bulk-edit-product.php:242 #: includes/admin/views/html-bulk-edit-product.php:303 msgid "Yes" msgstr "" #: includes/admin/class-wc-admin-post-types.php:398 #: includes/admin/settings/class-wc-settings-shipping.php:215 #: includes/admin/views/html-bulk-edit-product.php:206 #: includes/admin/views/html-bulk-edit-product.php:243 #: includes/admin/views/html-bulk-edit-product.php:304 msgid "No" msgstr "" #: includes/admin/class-wc-admin-post-types.php:446 msgid "Edit this item" msgstr "" #: includes/admin/class-wc-admin-post-types.php:447 msgid "Edit this item inline" msgstr "" #: includes/admin/class-wc-admin-post-types.php:447 msgid "Quick Edit" msgstr "" #: includes/admin/class-wc-admin-post-types.php:451 #: includes/admin/class-wc-admin-post-types.php:578 #: includes/admin/class-wc-admin-webhooks-table-list.php:104 msgid "Restore this item from the Trash" msgstr "" #: includes/admin/class-wc-admin-post-types.php:451 #: includes/admin/class-wc-admin-post-types.php:578 #: includes/admin/class-wc-admin-webhooks-table-list.php:104 #: includes/admin/class-wc-admin-webhooks-table-list.php:246 msgid "Restore" msgstr "" #: includes/admin/class-wc-admin-post-types.php:453 #: includes/admin/class-wc-admin-post-types.php:580 #: includes/admin/class-wc-admin-webhooks-table-list.php:106 msgid "Move this item to the Trash" msgstr "" #: includes/admin/class-wc-admin-post-types.php:453 #: includes/admin/class-wc-admin-post-types.php:580 #: includes/admin/class-wc-admin-webhooks-table-list.php:106 msgid "Trash" msgstr "" #: includes/admin/class-wc-admin-post-types.php:457 #: includes/admin/class-wc-admin-post-types.php:584 #: includes/admin/class-wc-admin-webhooks-table-list.php:109 msgid "Delete this item permanently" msgstr "" #: includes/admin/class-wc-admin-post-types.php:457 #: includes/admin/class-wc-admin-post-types.php:584 #: includes/admin/class-wc-admin-webhooks-table-list.php:109 #: includes/admin/class-wc-admin-webhooks-table-list.php:247 #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:76 #: includes/admin/settings/views/html-webhooks-edit.php:153 msgid "Delete Permanently" msgstr "" #: includes/admin/class-wc-admin-post-types.php:463 msgid "Preview “%s”" msgstr "" #: includes/admin/class-wc-admin-post-types.php:463 msgid "Preview" msgstr "" #: includes/admin/class-wc-admin-post-types.php:465 msgid "View “%s”" msgstr "" #: includes/admin/class-wc-admin-post-types.php:465 #: includes/admin/class-wc-admin-post-types.php:797 #: includes/admin/reports/class-wc-report-stock.php:141 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:36 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:87 #: includes/admin/views/html-admin-page-status-logs.php:23 #: templates/myaccount/my-orders.php:76 templates/myaccount/orders.php:72 msgid "View" msgstr "" #: includes/admin/class-wc-admin-post-types.php:623 msgid "Unpublished" msgstr "" #: includes/admin/class-wc-admin-post-types.php:625 msgid "Y/m/d g:i:s A" msgstr "" #: includes/admin/class-wc-admin-post-types.php:626 msgid "Y/m/d" msgstr "" #: includes/admin/class-wc-admin-post-types.php:642 #: includes/admin/reports/class-wc-report-sales-by-date.php:413 msgid "%d item" msgid_plural "%d items" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:682 msgid "Tel:" msgstr "" #: includes/admin/class-wc-admin-post-types.php:695 #: includes/admin/class-wc-admin-post-types.php:731 msgid "Via" msgstr "" #: includes/admin/class-wc-admin-post-types.php:717 msgid "plus %d other note" msgid_plural "plus %d other notes" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:719 msgid "%d note" msgid_plural "%d notes" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:758 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:242 msgid "Guest" msgstr "" #: includes/admin/class-wc-admin-post-types.php:768 msgid "Show more details" msgstr "" #: includes/admin/class-wc-admin-post-types.php:782 msgid "Processing" msgstr "" #: includes/admin/class-wc-admin-post-types.php:790 msgid "Complete" msgstr "" #: includes/admin/class-wc-admin-post-types.php:940 msgid "Sort Products" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1421 #: includes/admin/class-wc-admin-post-types.php:1422 msgid "Mark processing" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1424 #: includes/admin/class-wc-admin-post-types.php:1425 msgid "Mark on-hold" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1427 #: includes/admin/class-wc-admin-post-types.php:1428 msgid "Mark complete" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1464 msgid "Order status changed by bulk edit:" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1498 msgid "Order status changed." msgid_plural "%s order statuses changed." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:1595 msgid "Show all product types" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1608 #: includes/wc-product-functions.php:529 msgid "Grouped product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1611 #: includes/wc-product-functions.php:530 msgid "External/Affiliate product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1614 #: includes/wc-product-functions.php:531 msgid "Variable product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1617 #: includes/wc-product-functions.php:528 msgid "Simple product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1658 msgid "Show all types" msgstr "" #: includes/admin/class-wc-admin-post-types.php:1687 #: includes/admin/settings/views/html-keys-edit.php:35 msgid "Search for a customer…" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2051 msgid "Product name" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2054 #: templates/cart/cart.php:138 templates/checkout/form-coupon.php:36 msgid "Coupon code" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2068 msgid "Description (optional)" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2101 msgid "Catalog/search" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2102 #: includes/admin/views/html-bulk-edit-product.php:187 #: includes/admin/views/html-quick-edit-product.php:144 msgid "Catalog" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2103 #: includes/admin/views/html-bulk-edit-product.php:188 #: includes/admin/views/html-quick-edit-product.php:145 msgid "Search" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2104 #: includes/admin/views/html-bulk-edit-product.php:189 #: includes/admin/views/html-quick-edit-product.php:146 msgid "Hidden" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2108 msgid "Catalog visibility:" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2124 msgid "" "Choose where this product should be displayed in your catalog. The product " "will always be accessible directly." msgstr "" #: includes/admin/class-wc-admin-post-types.php:2130 msgid "Enable this option to feature this product." msgstr "" #: includes/admin/class-wc-admin-post-types.php:2132 msgid "Featured Product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2135 msgid "OK" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2136 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:157 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:735 #: includes/admin/meta-boxes/views/html-order-items.php:245 #: includes/admin/meta-boxes/views/html-order-items.php:291 #: templates/myaccount/my-orders.php:80 templates/myaccount/orders.php:76 msgid "Cancel" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2275 msgid "When you receive a new order, it will appear here." msgstr "" #: includes/admin/class-wc-admin-post-types.php:2276 msgid "Learn more about orders" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2281 msgid "" "Coupons are a great way to offer discounts and rewards to your customers. " "They will appear here once created." msgstr "" #: includes/admin/class-wc-admin-post-types.php:2282 msgid "Learn more about coupons" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2287 msgid "Ready to start selling something awesome?" msgstr "" #: includes/admin/class-wc-admin-post-types.php:2288 #: includes/admin/class-wc-admin-setup-wizard.php:767 msgid "Create your first product!" msgstr "" #: includes/admin/class-wc-admin-profile.php:41 msgid "Customer Billing Address" msgstr "" #: includes/admin/class-wc-admin-profile.php:44 #: includes/admin/class-wc-admin-profile.php:97 #: templates/myaccount/form-edit-account.php:30 msgid "First name" msgstr "" #: includes/admin/class-wc-admin-profile.php:48 #: includes/admin/class-wc-admin-profile.php:101 #: templates/myaccount/form-edit-account.php:34 msgid "Last name" msgstr "" #: includes/admin/class-wc-admin-profile.php:52 #: includes/admin/class-wc-admin-profile.php:105 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:51 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:100 msgid "Company" msgstr "" #: includes/admin/class-wc-admin-profile.php:56 #: includes/admin/class-wc-admin-profile.php:109 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:55 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:104 msgid "Address 1" msgstr "" #: includes/admin/class-wc-admin-profile.php:60 #: includes/admin/class-wc-admin-profile.php:113 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:59 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:108 msgid "Address 2" msgstr "" #: includes/admin/class-wc-admin-profile.php:64 #: includes/admin/class-wc-admin-profile.php:117 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:63 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:112 #: includes/admin/settings/class-wc-settings-tax.php:180 #: includes/admin/settings/views/html-settings-tax.php:22 #: templates/cart/shipping-calculator.php:83 msgid "City" msgstr "" #: includes/admin/class-wc-admin-profile.php:68 #: includes/admin/class-wc-admin-profile.php:121 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:67 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:116 #: includes/class-wc-countries.php:657 includes/class-wc-countries.php:793 #: includes/class-wc-countries.php:834 includes/class-wc-countries.php:928 msgid "Postcode" msgstr "" #: includes/admin/class-wc-admin-profile.php:72 #: includes/admin/class-wc-admin-profile.php:125 #: includes/admin/class-wc-admin-settings.php:572 #: includes/admin/class-wc-admin-settings.php:597 #: includes/admin/class-wc-admin-setup-wizard.php:464 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:71 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:120 #: includes/class-wc-countries.php:565 msgid "Country" msgstr "" #: includes/admin/class-wc-admin-profile.php:76 #: includes/admin/class-wc-admin-profile.php:129 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:75 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:124 #: includes/wc-template-functions.php:1839 #: templates/cart/shipping-calculator.php:39 msgid "Select a country…" msgstr "" #: includes/admin/class-wc-admin-profile.php:79 #: includes/admin/class-wc-admin-profile.php:132 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:78 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:127 msgid "State/County" msgstr "" #: includes/admin/class-wc-admin-profile.php:80 #: includes/admin/class-wc-admin-profile.php:133 msgid "State/County or state code" msgstr "" #: includes/admin/class-wc-admin-profile.php:84 msgid "Telephone" msgstr "" #: includes/admin/class-wc-admin-profile.php:88 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:83 #: includes/admin/reports/class-wc-report-customer-list.php:210 #: includes/admin/settings/class-wc-settings-emails.php:233 #: includes/class-wc-emails.php:463 templates/single-product-reviews.php:75 msgid "Email" msgstr "" #: includes/admin/class-wc-admin-profile.php:94 msgid "Customer Shipping Address" msgstr "" #: includes/admin/class-wc-admin-reports.php:45 #: includes/admin/reports/class-wc-report-customer-list.php:212 #: includes/admin/settings/class-wc-settings-accounts.php:113 #: includes/class-wc-post-types.php:299 includes/class-wc-query.php:100 #: includes/wc-account-functions.php:91 msgid "Orders" msgstr "" #: includes/admin/class-wc-admin-reports.php:48 msgid "Sales by date" msgstr "" #: includes/admin/class-wc-admin-reports.php:54 msgid "Sales by product" msgstr "" #: includes/admin/class-wc-admin-reports.php:60 msgid "Sales by category" msgstr "" #: includes/admin/class-wc-admin-reports.php:66 msgid "Coupons by date" msgstr "" #: includes/admin/class-wc-admin-reports.php:74 #: includes/admin/reports/class-wc-report-customer-list.php:28 msgid "Customers" msgstr "" #: includes/admin/class-wc-admin-reports.php:77 msgid "Customers vs. Guests" msgstr "" #: includes/admin/class-wc-admin-reports.php:83 msgid "Customer List" msgstr "" #: includes/admin/class-wc-admin-reports.php:94 msgid "Low in stock" msgstr "" #: includes/admin/class-wc-admin-reports.php:106 msgid "Most Stocked" msgstr "" #: includes/admin/class-wc-admin-reports.php:117 msgid "Taxes" msgstr "" #: includes/admin/class-wc-admin-reports.php:120 msgid "Taxes by code" msgstr "" #: includes/admin/class-wc-admin-reports.php:126 msgid "Taxes by date" msgstr "" #: includes/admin/class-wc-admin-settings.php:83 msgid "Your settings have been saved." msgstr "" #: includes/admin/class-wc-admin-settings.php:142 msgid "The changes you made will be lost if you navigate away from this page." msgstr "" #: includes/admin/class-wc-admin-settings.php:514 msgid "" "The settings of this image size have been disabled because its values are " "being overwritten by a filter." msgstr "" #: includes/admin/class-wc-admin-settings.php:523 msgid "Hard Crop?" msgstr "" #: includes/admin/class-wc-admin-settings.php:550 msgid "Select a page…" msgstr "" #: includes/admin/class-wc-admin-settings.php:572 #: includes/admin/class-wc-admin-setup-wizard.php:300 msgid "Choose a country…" msgstr "" #: includes/admin/class-wc-admin-settings.php:597 msgid "Choose countries…" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:59 msgid "Introduction" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:64 #: includes/admin/class-wc-admin-setup-wizard.php:220 msgid "Page Setup" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:69 msgid "Store Locale" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:74 msgid "Shipping & Tax" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:79 #: includes/admin/class-wc-admin-setup-wizard.php:644 msgid "Payments" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:84 msgid "Ready!" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:147 msgid "WooCommerce › Setup Wizard" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:163 msgid "Return to the WordPress Dashboard" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:205 msgid "Welcome to the world of WooCommerce!" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:206 msgid "" "Thank you for choosing WooCommerce to power your online store! This quick " "setup wizard will help you configure the basic settings. It’s " "completely optional and shouldn’t take longer than five minutes." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:207 msgid "" "No time right now? If you don’t want to go through the wizard, you can skip " "and return to the WordPress dashboard. Come back anytime if you change your " "mind!" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:209 msgid "Let's Go!" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:210 msgid "Not right now" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:222 msgid "" "Your store needs a few essential %spages%s. The following will be created " "automatically (if they do not already exist):" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:226 msgid "Page Name" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:233 msgid "The shop page will display your products." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:237 msgid "" "The cart page will be where the customers go to view their cart and begin " "checkout." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:242 msgid "The checkout page will be where the customers go to pay for their items." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:248 msgid "" "Registered customers will be able to manage their account details and view " "past orders on this page." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:254 msgid "" "Once created, these pages can be managed from your admin dashboard on the " "%sPages screen%s. You can control which pages are shown on your website via " "%sAppearance > Menus%s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:257 #: includes/admin/class-wc-admin-setup-wizard.php:373 #: includes/admin/class-wc-admin-setup-wizard.php:494 #: includes/admin/class-wc-admin-setup-wizard.php:687 msgid "Continue" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:258 #: includes/admin/class-wc-admin-setup-wizard.php:374 #: includes/admin/class-wc-admin-setup-wizard.php:495 #: includes/admin/class-wc-admin-setup-wizard.php:688 msgid "Skip this step" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:294 msgid "Store Locale Setup" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:298 msgid "Where is your store based?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:306 msgid "Which currency will your store use?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:308 #: includes/admin/class-wc-admin-setup-wizard.php:309 msgid "Choose a currency…" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:316 msgid "If your currency is not listed you can %sadd it later%s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:320 #: includes/admin/settings/class-wc-settings-general.php:179 #: includes/admin/views/html-admin-page-status-report.php:491 msgid "Currency Position" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:323 #: includes/admin/settings/class-wc-settings-general.php:187 msgid "Left" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:324 #: includes/admin/settings/class-wc-settings-general.php:188 msgid "Right" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:325 #: includes/admin/settings/class-wc-settings-general.php:189 msgid "Left with space" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:326 #: includes/admin/settings/class-wc-settings-general.php:190 msgid "Right with space" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:331 #: includes/admin/settings/class-wc-settings-general.php:196 #: includes/admin/views/html-admin-page-status-report.php:496 msgid "Thousand Separator" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:337 #: includes/admin/settings/class-wc-settings-general.php:206 #: includes/admin/views/html-admin-page-status-report.php:501 msgid "Decimal Separator" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:343 #: includes/admin/settings/class-wc-settings-general.php:216 #: includes/admin/views/html-admin-page-status-report.php:506 msgid "Number of Decimals" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:349 msgid "Which unit should be used for product weights?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:352 #: includes/admin/settings/class-wc-settings-products.php:430 msgid "kg" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:353 #: includes/admin/settings/class-wc-settings-products.php:431 msgid "g" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:354 #: includes/admin/settings/class-wc-settings-products.php:432 msgid "lbs" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:355 #: includes/admin/settings/class-wc-settings-products.php:433 msgid "oz" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:360 msgid "Which unit should be used for product dimensions?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:363 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:200 #: includes/admin/settings/class-wc-settings-products.php:447 msgid "m" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:364 #: includes/admin/settings/class-wc-settings-products.php:448 msgid "cm" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:365 #: includes/admin/settings/class-wc-settings-products.php:449 msgid "mm" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:366 #: includes/admin/settings/class-wc-settings-products.php:450 msgid "in" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:367 #: includes/admin/settings/class-wc-settings-products.php:451 msgid "yd" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:414 msgid "Shipping & Tax Setup" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:416 msgid "" "If you will be charging sales tax, or shipping physical goods to customers, " "you can enable these below. This is optional and can be changed later." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:419 msgid "Will you be shipping products?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:422 msgid "Yes, I will be shipping physical goods to customers" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:426 msgid "Will you be charging sales tax?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:429 msgid "Yes, I will be charging sales tax" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:433 msgid "How will you enter product prices?" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:435 msgid "I will enter prices inclusive of tax" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:436 msgid "I will enter prices exclusive of tax" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:459 msgid "" "The following tax rates will be imported automatically for you. You can " "read more about taxes in %1$sour documentation%2$s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:465 #: includes/class-wc-countries.php:660 includes/class-wc-countries.php:923 msgid "State" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:466 msgid "Rate (%)" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:486 msgid "" "You may need to add/edit rates based on your products or business location " "which can be done from the %1$stax settings%2$s screen. If in doubt, speak " "to an accountant." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:569 #: includes/admin/class-wc-admin-setup-wizard.php:576 msgid "" "Safe and secure payments using credit cards or your customer's PayPal " "account. %sLearn more about PayPal%s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:574 msgid "PayPal Express Checkout" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:583 msgid "" "A modern and robust way to accept credit card payments on your store. " "%sLearn more about Stripe%s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:589 msgid "Accept payments via PayPal using account balance or credit card." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:594 #: includes/admin/class-wc-admin-setup-wizard.php:597 msgid "PayPal email address" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:603 msgid "A simple offline gateway that lets you accept a check as method of payment." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:609 msgid "A simple offline gateway that lets you accept BACS payment." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:615 msgid "A simple offline gateway that lets you accept cash on delivery." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:646 msgid "" "WooCommerce can accept both online and offline payments. %2$sAdditional " "payment methods%3$s can be installed later and managed from the " "%1$scheckout settings%3$s screen." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:751 msgid "Your Store is Ready!" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:755 msgid "" "Want to help make WooCommerce even more awesome? Allow WooThemes to collect " "non-sensitive diagnostic data and usage information. %sFind out more%s." msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:757 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:317 #: includes/admin/views/html-bulk-edit-product.php:284 #: includes/admin/views/html-notice-tracking.php:13 #: includes/admin/views/html-quick-edit-product.php:203 #: includes/class-wc-ajax.php:853 includes/class-wc-ajax.php:2461 msgid "Allow" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:758 msgid "No thanks" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:765 msgid "Next Steps" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:771 msgid "Learn More" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:773 msgid "Watch the WC 101 video walkthroughs" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:774 msgid "Get eCommerce advice in your inbox" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:775 msgid "Learn more about getting started" msgstr "" #: includes/admin/class-wc-admin-status.php:50 msgid "Product Transients Cleared" msgstr "" #: includes/admin/class-wc-admin-status.php:75 msgid "%d Transients Rows Cleared" msgstr "" #: includes/admin/class-wc-admin-status.php:82 msgid "Roles successfully reset" msgstr "" #: includes/admin/class-wc-admin-status.php:94 msgid "Terms successfully recounted" msgstr "" #: includes/admin/class-wc-admin-status.php:102 msgid "Sessions successfully cleared" msgstr "" #: includes/admin/class-wc-admin-status.php:106 msgid "All missing WooCommerce pages was installed successfully." msgstr "" #: includes/admin/class-wc-admin-status.php:114 msgid "Tax rates successfully deleted" msgstr "" #: includes/admin/class-wc-admin-status.php:120 msgid "Usage tracking settings successfully reset." msgstr "" #: includes/admin/class-wc-admin-status.php:129 msgid "There was an error calling %s" msgstr "" #: includes/admin/class-wc-admin-status.php:138 msgid "Your changes have been saved." msgstr "" #: includes/admin/class-wc-admin-status.php:151 msgid "WC Transients" msgstr "" #: includes/admin/class-wc-admin-status.php:152 msgid "Clear transients" msgstr "" #: includes/admin/class-wc-admin-status.php:153 msgid "This tool will clear the product/shop transients cache." msgstr "" #: includes/admin/class-wc-admin-status.php:156 msgid "Expired Transients" msgstr "" #: includes/admin/class-wc-admin-status.php:157 msgid "Clear expired transients" msgstr "" #: includes/admin/class-wc-admin-status.php:158 msgid "This tool will clear ALL expired transients from WordPress." msgstr "" #: includes/admin/class-wc-admin-status.php:161 msgid "Term counts" msgstr "" #: includes/admin/class-wc-admin-status.php:162 msgid "Recount terms" msgstr "" #: includes/admin/class-wc-admin-status.php:163 msgid "" "This tool will recount product terms - useful when changing your settings " "in a way which hides products from the catalog." msgstr "" #: includes/admin/class-wc-admin-status.php:166 msgid "Capabilities" msgstr "" #: includes/admin/class-wc-admin-status.php:167 msgid "Reset capabilities" msgstr "" #: includes/admin/class-wc-admin-status.php:168 msgid "" "This tool will reset the admin, customer and shop_manager roles to default. " "Use this if your users cannot access all of the WooCommerce admin pages." msgstr "" #: includes/admin/class-wc-admin-status.php:171 msgid "Customer Sessions" msgstr "" #: includes/admin/class-wc-admin-status.php:172 msgid "Clear all sessions" msgstr "" #: includes/admin/class-wc-admin-status.php:173 msgid "" "Warning: This tool will delete all customer " "session data from the database, including any current live carts." msgstr "" #: includes/admin/class-wc-admin-status.php:176 msgid "Install WooCommerce Pages" msgstr "" #: includes/admin/class-wc-admin-status.php:177 msgid "Install pages" msgstr "" #: includes/admin/class-wc-admin-status.php:178 msgid "" "Note: This tool will install all the missing " "WooCommerce pages. Pages already defined and set up will not be replaced." msgstr "" #: includes/admin/class-wc-admin-status.php:181 msgid "Delete all WooCommerce tax rates" msgstr "" #: includes/admin/class-wc-admin-status.php:182 msgid "Delete ALL tax rates" msgstr "" #: includes/admin/class-wc-admin-status.php:183 msgid "" "Note: This option will delete ALL of your " "tax rates, use with caution." msgstr "" #: includes/admin/class-wc-admin-status.php:186 msgid "Reset Usage Tracking Settings" msgstr "" #: includes/admin/class-wc-admin-status.php:187 msgid "Reset usage tracking settings" msgstr "" #: includes/admin/class-wc-admin-status.php:188 msgid "" "This will reset your usage tracking settings, causing it to show the opt-in " "banner again and not sending any data." msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:92 #: includes/admin/class-wc-admin-taxonomies.php:198 #: includes/widgets/class-wc-widget-layered-nav.php:86 msgid "Display type" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:95 #: includes/admin/class-wc-admin-taxonomies.php:202 #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:101 #: includes/admin/settings/class-wc-settings-products.php:28 #: includes/class-wc-post-types.php:241 #: includes/widgets/class-wc-widget-products.php:29 msgid "Products" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:96 #: includes/admin/class-wc-admin-taxonomies.php:203 msgid "Subcategories" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:97 #: includes/admin/class-wc-admin-taxonomies.php:204 msgid "Both" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:101 #: includes/admin/class-wc-admin-taxonomies.php:209 #: includes/admin/class-wc-admin-taxonomies.php:346 msgid "Thumbnail" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:105 #: includes/admin/class-wc-admin-taxonomies.php:214 msgid "Upload/Add image" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:106 #: includes/admin/class-wc-admin-taxonomies.php:215 msgid "Remove image" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:132 #: includes/admin/class-wc-admin-taxonomies.php:241 msgid "Use image" msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:293 msgid "" "Product categories for your store can be managed here. To change the order " "of categories on the front-end you can drag and drop to sort them. To see " "more categories listed click the \"screen options\" link at the top of the " "page." msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:300 msgid "" "Attribute terms can be assigned to products and " "variations.

    Note: Deleting a term will remove it from all " "products and variations to which it has been assigned. Recreating a term " "will not automatically assign it back to products." msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:26 msgid "webhook" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:27 msgid "webhooks" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:42 #: includes/admin/settings/views/html-webhooks-edit.php:41 msgid "Topic" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:43 #: includes/admin/settings/views/html-webhooks-edit.php:93 msgid "Delivery URL" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:164 #: includes/admin/class-wc-admin-webhooks-table-list.php:165 msgid "Activated (%s)" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:172 #: includes/admin/class-wc-admin-webhooks-table-list.php:173 msgid "Paused (%s)" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:180 #: includes/admin/class-wc-admin-webhooks-table-list.php:181 msgid "Disabled (%s)" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:252 #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:78 #: includes/admin/settings/views/html-webhooks-edit.php:153 msgid "Move to Trash" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:263 msgid "Empty Trash" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:49 #: includes/admin/class-wc-admin-webhooks.php:198 #: includes/api/class-wc-rest-webhooks-controller.php:363 #: includes/api/legacy/v2/class-wc-api-webhooks.php:197 #: includes/api/legacy/v3/class-wc-api-webhooks.php:197 msgid "Webhook created on %s" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:189 msgid "You don't have permissions to create Webhooks!" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:269 msgid "You don't have permissions to edit Webhooks!" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:298 msgid "You don't have permissions to delete Webhooks!" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:374 msgid "1 webhook moved to the Trash." msgid_plural "%d webhooks moved to the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-webhooks.php:380 msgid "1 webhook restored from the Trash." msgid_plural "%d webhooks restored from the Trash." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-webhooks.php:386 msgid "1 webhook permanently deleted." msgid_plural "%d webhooks permanently deleted." msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-webhooks.php:390 msgid "Webhook updated successfully." msgstr "" #: includes/admin/class-wc-admin-webhooks.php:394 msgid "Webhook created successfully." msgstr "" #: includes/admin/class-wc-admin-webhooks.php:406 #: includes/admin/settings/class-wc-settings-api.php:47 #: includes/class-wc-post-types.php:401 msgid "Webhooks" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:406 #: includes/class-wc-post-types.php:404 msgid "Add Webhook" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:416 #: includes/class-wc-post-types.php:411 msgid "Search Webhooks" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:447 msgid "This Webhook has no log yet." msgstr "" #: includes/admin/class-wc-admin-webhooks.php:498 #: includes/admin/class-wc-admin-webhooks.php:500 msgid "‹ Previous" msgstr "" #: includes/admin/class-wc-admin-webhooks.php:504 #: includes/admin/class-wc-admin-webhooks.php:506 msgid "Next ›" msgstr "" #: includes/admin/class-wc-admin.php:182 msgid "HTML Email Template" msgstr "" #: includes/admin/class-wc-admin.php:229 msgid "" "If you like WooCommerce please leave us a " "%s★★★★★%s rating. A huge thanks in advance!" msgstr "" #: includes/admin/class-wc-admin.php:229 msgid "Thanks :)" msgstr "" #: includes/admin/class-wc-admin.php:237 msgid "Thank you for selling with WooCommerce." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:125 msgid "The file does not exist, please try again." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:160 msgid "The CSV is invalid." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:168 msgid "Import complete - imported %s tax rates." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:178 msgid "All done!" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:178 msgid "View Tax Rates" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:214 msgid "Import Tax Rates" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:230 msgid "" "Hi there! Upload a CSV file containing tax rates to import the contents " "into your shop. Choose a .csv file to upload, then click \"Upload file and " "import\"." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:232 msgid "" "Tax rates need to be defined with columns in a specific order (10 columns). " "Click here to download a sample." msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:240 msgid "" "Before you can upload your import file, you will need to fix the following " "error:" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:249 msgid "Choose a file from your computer:" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:255 msgid "Maximum size: %s" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:260 msgid "OR enter path to file:" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:267 msgid "Delimiter" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:273 msgid "Upload file and import" msgstr "" #: includes/admin/importers/class-wc-tax-rate-importer.php:287 msgid "Sorry, there has been an error." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:41 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:84 #: includes/admin/settings/class-wc-settings-general.php:28 #: includes/admin/settings/class-wc-settings-products.php:44 msgid "General" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:46 msgid "Usage Restriction" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:51 msgid "Usage Limits" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:67 msgid "Discount type" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:70 msgid "Value of the coupon." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:73 msgid "Allow free shipping" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:73 msgid "" "Check this box if the coupon grants free shipping. A free " "shipping method must be enabled in your shipping zone and be set to " "require \"a valid free shipping coupon\" (see the \"Free Shipping " "Requires\" setting)." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:76 msgid "Coupon expiry date" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:86 msgid "Minimum spend" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:86 msgid "No minimum" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:86 msgid "" "This field allows you to set the minimum spend (subtotal, including taxes) " "allowed to use the coupon." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:89 msgid "Maximum spend" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:89 msgid "No maximum" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:89 msgid "" "This field allows you to set the maximum spend (subtotal, including taxes) " "allowed when using the coupon." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:92 msgid "Individual use only" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:92 msgid "" "Check this box if the coupon cannot be used in conjunction with other " "coupons." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:95 msgid "Exclude sale items" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:95 msgid "" "Check this box if the coupon should not apply to items on sale. Per-item " "coupons will only work if the item is not on sale. Per-cart coupons will " "only work if there are no sale items in the cart." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:102 #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:120 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:480 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:497 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:517 #: includes/admin/meta-boxes/views/html-order-items.php:309 #: includes/admin/reports/class-wc-report-sales-by-product.php:202 msgid "Search for a product…" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:114 msgid "" "Products which need to be in the cart to use this coupon or, for \"Product " "Discounts\", which products are discounted." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:119 msgid "Exclude products" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:132 msgid "" "Products which must not be in the cart to use this coupon or, for \"Product " "Discounts\", which products are not discounted." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:139 msgid "Product categories" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:140 msgid "Any category" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:149 msgid "" "A product must be in this category for the coupon to remain valid or, for " "\"Product Discounts\", products in these categories will be discounted." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:154 msgid "Exclude categories" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:155 msgid "No categories" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:164 msgid "" "Product must not be in this category for the coupon to remain valid or, for " "\"Product Discounts\", products in these categories will not be discounted." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:170 msgid "Email restrictions" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:170 msgid "No restrictions" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:170 msgid "" "List of allowed emails to check against the customer's billing email when " "an order is placed. Separate email addresses with commas." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:184 msgid "Usage limit per coupon" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:184 msgid "How many times this coupon can be used before it is void." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:190 msgid "Limit usage to X items" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:190 msgid "" "The maximum number of individual items this coupon can apply to when using " "product discounts. Leave blank to apply to all qualifying items in cart." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:196 msgid "Usage limit per user" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:196 msgid "" "How many times this coupon can be used by an invidual user. Uses billing " "email for guests, and user ID for logged in users." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:236 msgid "" "Coupon code already exists - customers will use the latest coupon with this " "code." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:44 msgid "Resend order emails" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:60 msgid "Regenerate download permissions" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:67 msgid "Apply" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:84 msgid "Save %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:84 msgid "Save/update the %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:132 msgid "%s email notification manually sent." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:43 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:92 #: includes/class-wc-countries.php:546 includes/class-wc-form-handler.php:193 msgid "First Name" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:47 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:96 #: includes/class-wc-countries.php:552 includes/class-wc-form-handler.php:194 msgid "Last Name" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:86 #: includes/class-wc-countries.php:1022 msgid "Phone" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:173 msgid "Payment via %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:191 msgid "Customer IP" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:197 msgid "General Details" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:199 msgid "Order date:" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:200 msgid "h" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:203 msgid "Order status:" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:207 msgid "Customer payment page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:221 msgid "Customer:" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:229 msgid "View other orders" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:248 #: templates/checkout/form-billing.php:33 msgid "Billing Details" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:250 msgid "Load billing address" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:257 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:259 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:342 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:344 #: includes/class-wc-countries.php:571 msgid "Address" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:259 msgid "No billing address set." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:299 #: includes/admin/meta-boxes/views/html-order-shipping.php:25 #: includes/admin/settings/class-wc-settings-emails.php:101 #: includes/admin/settings/class-wc-settings-emails.php:112 #: includes/admin/settings/views/settings-tax.php:95 #: includes/admin/views/html-admin-page-status-report.php:166 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:56 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:65 #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:86 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:83 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:92 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:122 #: includes/wc-account-functions.php:251 #: templates/order/order-details-customer.php:61 #: templates/order/order-details-customer.php:72 #: templates/single-product/meta.php:35 msgid "N/A" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:313 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:315 #: includes/admin/meta-boxes/views/html-order-shipping.php:41 #: includes/admin/meta-boxes/views/html-order-shipping.php:43 msgid "Other" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:322 msgid "Transaction ID" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:332 #: includes/gateways/paypal/includes/settings-paypal.php:82 msgid "Shipping Details" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:334 msgid "Copy from billing" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:335 msgid "Load shipping address" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:344 msgid "No shipping address set." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:362 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:392 msgid "Customer Provided Note" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:393 msgid "Customer's notes about the order" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-downloads.php:57 #: includes/class-wc-ajax.php:1081 msgid "File %d" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-downloads.php:70 msgid "Search for a downloadable product…" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-downloads.php:71 msgid "Grant Access" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:58 msgid "added on %1$s at %2$s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:59 msgid "by %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:60 #: includes/class-wc-ajax.php:1727 msgid "Delete note" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:67 msgid "There are no notes yet." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:73 msgid "Add note" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:73 msgid "" "Add a note for your reference, or add a customer note (the user will be " "notified)." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:79 msgid "Private note" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:80 msgid "Note to customer" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-notes.php:82 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:428 #: includes/admin/meta-boxes/views/html-order-items.php:314 #: includes/admin/meta-boxes/views/html-order-items.php:371 msgid "Add" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:40 msgid "Product Type" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:53 msgid "Virtual products are intangible and aren't shipped." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:60 msgid "Downloadable products give access to a file upon purchase." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:89 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:685 #: includes/admin/settings/class-wc-settings-products.php:46 #: includes/admin/settings/class-wc-settings-products.php:244 msgid "Inventory" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:99 msgid "Linked Products" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:109 #: includes/class-wc-post-types.php:285 msgid "Variations" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:114 msgid "Advanced" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:134 msgid "Product URL" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:134 msgid "Enter the external URL to the product." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:137 msgid "Button text" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:137 msgid "This text will be shown on the button linking to the external product." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:144 #: includes/admin/meta-boxes/views/html-variation-admin.php:93 msgid "Regular price" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:147 #: includes/admin/meta-boxes/views/html-variation-admin.php:97 msgid "Sale price" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:147 #: includes/admin/meta-boxes/views/html-variation-admin.php:97 msgid "Schedule" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:154 msgid "Sale price dates" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:157 msgid "The sale will end at the beginning of the set date." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:168 #: includes/admin/meta-boxes/views/html-variation-admin.php:254 msgid "Downloadable files" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:173 #: includes/admin/meta-boxes/views/html-variation-admin.php:258 msgid "This is the name of the download shown to the customer." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:174 #: includes/admin/meta-boxes/views/html-variation-admin.php:259 msgid "File URL" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:174 #: includes/admin/meta-boxes/views/html-variation-admin.php:259 msgid "" "This is the URL or absolute path to the file which customers will get " "access to. URLs entered here should already be encoded." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:200 #: includes/admin/meta-boxes/views/html-variation-admin.php:289 msgid "Add File" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:209 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:696 #: includes/admin/meta-boxes/views/html-variation-admin.php:298 msgid "Download limit" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:209 #: includes/admin/meta-boxes/views/html-order-download-permission.php:23 #: includes/admin/meta-boxes/views/html-variation-admin.php:299 #: includes/admin/meta-boxes/views/html-variation-admin.php:303 msgid "Unlimited" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:209 #: includes/admin/meta-boxes/views/html-variation-admin.php:298 msgid "Leave blank for unlimited re-downloads." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:215 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:697 #: includes/admin/meta-boxes/views/html-variation-admin.php:302 msgid "Download expiry" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:215 #: includes/admin/meta-boxes/views/html-order-download-permission.php:27 #: templates/myaccount/downloads.php:67 msgid "Never" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:215 #: includes/admin/meta-boxes/views/html-variation-admin.php:302 msgid "Enter the number of days before a download link expires, or leave blank." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:221 msgid "Download type" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:221 msgid "Choose a download type - this controls the schema." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:222 msgid "Standard Product" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:223 msgid "Application/Software" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:224 msgid "Music" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:238 msgid "Tax status" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:240 #: includes/admin/views/html-bulk-edit-product.php:76 #: includes/admin/views/html-quick-edit-product.php:55 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:26 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:53 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:82 msgid "Taxable" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:241 #: includes/admin/views/html-bulk-edit-product.php:77 #: includes/admin/views/html-quick-edit-product.php:56 msgid "Shipping only" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:245 msgid "" "Define whether or not the entire product is taxable, or just the cost of " "shipping it." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:250 #: includes/admin/meta-boxes/views/html-order-items.php:21 #: includes/admin/settings/views/html-settings-tax.php:13 #: includes/admin/settings/views/settings-tax.php:45 #: includes/admin/views/html-bulk-edit-product.php:95 #: includes/admin/views/html-quick-edit-product.php:73 #: includes/class-wc-ajax.php:841 includes/class-wc-ajax.php:2449 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:215 msgid "Standard" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:260 #: includes/admin/meta-boxes/views/html-order-items.php:340 #: includes/admin/meta-boxes/views/html-variation-admin.php:223 msgid "Tax class" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:263 msgid "" "Choose a tax class for this product. Tax classes are used to apply " "different tax rates specific to certain types of product." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:284 msgid "Stock Keeping Unit" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:284 msgid "" "SKU refers to a Stock-keeping unit, a unique identifier for each distinct " "product and service that can be purchased." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:294 #: includes/admin/meta-boxes/views/html-variation-admin.php:84 #: includes/admin/views/html-bulk-edit-product.php:236 #: includes/admin/views/html-quick-edit-product.php:182 msgid "Manage stock?" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:294 msgid "Enable stock management at product level" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:303 #: includes/admin/meta-boxes/views/html-variation-admin.php:129 msgid "Stock quantity" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:305 msgid "" "Stock quantity. If this is a variable product this value will be used to " "control stock for all variations, unless you define stock at variation " "level." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:314 #: includes/admin/meta-boxes/views/html-variation-admin.php:133 msgid "Allow backorders?" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:315 #: includes/admin/views/html-bulk-edit-product.php:282 #: includes/admin/views/html-quick-edit-product.php:201 #: includes/class-wc-ajax.php:851 includes/class-wc-ajax.php:2459 msgid "Do not allow" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:316 #: includes/admin/views/html-bulk-edit-product.php:283 #: includes/admin/views/html-quick-edit-product.php:202 #: includes/class-wc-ajax.php:852 includes/class-wc-ajax.php:2460 msgid "Allow, but notify customer" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:318 msgid "" "If managing stock, this controls whether or not backorders are allowed. If " "enabled, stock quantity can go below 0." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:327 #: includes/admin/meta-boxes/views/html-variation-admin.php:160 #: includes/admin/reports/class-wc-report-stock.php:168 msgid "Stock status" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:330 #: includes/admin/meta-boxes/views/html-variation-admin.php:160 #: includes/api/class-wc-rest-products-controller.php:2083 msgid "" "Controls whether or not the product is listed as \"in stock\" or \"out of " "stock\" on the frontend." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:339 msgid "Sold individually" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:339 msgid "Enable this to only allow one of this item to be bought in a single order" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:358 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:693 #: includes/admin/meta-boxes/views/html-variation-admin.php:175 #: includes/admin/views/html-bulk-edit-product.php:117 #: includes/admin/views/html-quick-edit-product.php:98 #: templates/single-product/product-attributes.php:38 msgid "Weight" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:358 msgid "Weight in decimal form" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:364 #: templates/single-product/product-attributes.php:45 msgid "Dimensions" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:366 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:690 #: includes/admin/views/html-quick-edit-product.php:111 msgid "Length" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:367 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:691 #: includes/admin/views/html-quick-edit-product.php:112 msgid "Width" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:368 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:692 #: includes/admin/views/html-quick-edit-product.php:113 msgid "Height" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:370 msgid "LxWxH in decimal form" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:391 #: includes/admin/views/html-bulk-edit-product.php:169 #: includes/admin/views/html-quick-edit-product.php:126 msgid "No shipping class" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:397 #: includes/admin/meta-boxes/views/html-variation-admin.php:207 #: includes/admin/views/html-bulk-edit-product.php:165 #: includes/admin/views/html-quick-edit-product.php:123 msgid "Shipping class" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:397 msgid "" "Shipping classes are used by certain shipping methods to group similar " "products." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:409 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:468 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:706 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:740 msgid "Expand" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:409 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:468 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:706 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:740 msgid "Close" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:412 msgid "Custom product attribute" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:470 msgid "Save attributes" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:479 msgid "Up-sells" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:492 msgid "" "Up-sells are products which you recommend instead of the currently viewed " "product, for example, products that are more profitable or better quality " "or more expensive." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:496 msgid "Cross-sells" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:509 msgid "" "Cross-sells are products which you promote in the cart, based on the " "current product." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:516 msgid "Grouping" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:528 msgid "Set this option to make this product part of a grouped product." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:546 msgid "Purchase note" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:546 msgid "Enter an optional note to send the customer after purchase." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:553 msgid "Menu order" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:553 msgid "Custom ordering position." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:561 msgid "Enable reviews" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:614 msgid "" "Before you can add a variation you need to add some variation attributes on " "the Attributes tab." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:616 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:98 msgid "Learn more" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:624 msgid "Default Form Values" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:624 msgid "These are the attributes that will be pre-selected on the frontend." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:639 msgid "No default" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:668 msgid "Add variation" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:669 msgid "Create variations from all attributes" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:670 msgid "Delete all variations" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:672 msgid "Toggle "Enabled"" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:673 msgid "Toggle "Downloadable"" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:674 msgid "Toggle "Virtual"" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:676 msgid "Pricing" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:677 msgid "Set regular prices" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:678 msgid "Increase regular prices (fixed amount or percentage)" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:679 msgid "Decrease regular prices (fixed amount or percentage)" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:680 msgid "Set sale prices" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:681 msgid "Increase sale prices (fixed amount or percentage)" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:682 msgid "Decrease sale prices (fixed amount or percentage)" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:683 msgid "Set scheduled sale dates" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:686 msgid "Toggle "Manage stock"" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:695 msgid "Downloadable products" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:701 #: includes/admin/views/html-report-by-date.php:48 msgid "Go" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:704 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:738 msgid "%s item" msgid_plural "%s items" msgstr[0] "" msgstr[1] "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:709 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:743 msgid "Go to the first page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:710 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:744 msgid "Go to the previous page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:712 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:746 msgid "Select Page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:713 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:747 msgid "Current page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:720 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:754 msgid "Go to the next page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:721 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:755 msgid "Go to the last page" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:734 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:28 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:79 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:24 #: includes/admin/settings/views/html-keys-edit.php:96 #: includes/admin/views/html-admin-page-status-tools.php:63 #: includes/admin/views/html-admin-settings.php:31 #: templates/myaccount/form-edit-account.php:66 msgid "Save changes" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:845 msgid "Product SKU must be unique." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1165 msgid "" "The downloadable file %s cannot be used as it does not have an allowed file " "type. Allowed types include: %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1178 msgid "The downloadable file %s cannot be used as it does not exist on the server." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1342 msgid "#%s – Variation SKU must be unique." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1431 msgid "" "#%s – The downloadable file %s cannot be used as it does not have an " "allowed file type. Allowed types include: %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:1438 msgid "" "#%s – The downloadable file %s cannot be used as it does not exist on " "the server." msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:58 #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:78 msgid "Delete image" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:78 msgid "Add Images to Product Gallery" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:78 msgid "Add to gallery" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-images.php:78 msgid "Add product gallery images" msgstr "" #: includes/admin/meta-boxes/views/html-order-download-permission.php:10 msgid "Revoke Access" msgstr "" #: includes/admin/meta-boxes/views/html-order-download-permission.php:13 msgid "Downloaded %s time" msgid_plural "Downloaded %s times" msgstr[0] "" msgstr[1] "" #: includes/admin/meta-boxes/views/html-order-download-permission.php:20 msgid "Downloads remaining" msgstr "" #: includes/admin/meta-boxes/views/html-order-download-permission.php:26 msgid "Access expires" msgstr "" #: includes/admin/meta-boxes/views/html-order-download-permission.php:30 msgid "Customer download link" msgstr "" #: includes/admin/meta-boxes/views/html-order-fee.php:21 msgid "Fee Name" msgstr "" #: includes/admin/meta-boxes/views/html-order-item-meta.php:90 msgid "Add meta" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:29 #: templates/single-product/meta.php:35 msgid "SKU:" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:33 msgid "Variation ID:" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:37 msgid "No longer exists" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:102 #: includes/admin/meta-boxes/views/html-order-item.php:144 msgid "Pre-discount:" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:107 msgid "After pre-tax discounts." msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:165 msgid "Edit item" msgstr "" #: includes/admin/meta-boxes/views/html-order-item.php:165 msgid "Delete item" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:50 #: includes/class-wc-form-handler.php:495 #: includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php:309 msgid "Item" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:52 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:31 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:58 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:87 msgid "Cost" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:53 #: templates/checkout/form-pay.php:30 msgid "Qty" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:59 #: includes/admin/meta-boxes/views/html-order-items.php:60 #: includes/admin/reports/class-wc-report-taxes-by-code.php:149 #: includes/admin/settings/class-wc-settings-tax.php:33 #: includes/class-wc-countries.php:343 includes/class-wc-tax.php:659 msgid "Tax" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:120 msgid "Delete selected row(s)" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:121 msgid "Reduce stock" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:122 msgid "Increase stock" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:131 msgid "Coupon(s) Used" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:146 msgid "This is the total discount. Discounts are defined per line item." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:146 msgid "Discount" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:156 msgid "This is the shipping and handling total costs for the order." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:188 msgid "Order Total" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:208 msgid "Refunded" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:221 msgid "Add item(s)" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:223 msgid "To edit this order change the status back to \"Pending\"" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:223 msgid "This order is no longer editable." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:226 #: includes/admin/meta-boxes/views/html-order-items.php:328 msgid "Add tax" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:236 msgid "Calculate Taxes" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:237 msgid "Calculate Total" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:242 msgid "Add product(s)" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:243 msgid "Add fee" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:244 msgid "Add shipping cost" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:246 #: templates/myaccount/form-reset-password.php:47 msgid "Save" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:256 msgid "Restock refunded items" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:260 msgid "Amount already refunded" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:264 msgid "Total available to refund" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:268 #: includes/admin/reports/class-wc-report-sales-by-date.php:636 msgid "Refund amount" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:275 msgid "Note: the refund reason will be visible by the customer." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:275 msgid "Reason for refund (optional)" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:287 msgid "Payment Gateway" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:289 msgid "" "The payment gateway used to place this order does not support automatic " "refunds." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:290 msgid "" "You will need to manually issue a refund through your payment gateway after " "using this." msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:302 msgid "Add products" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:339 msgid "Rate name" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:341 msgid "Rate code" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:342 #: includes/admin/settings/class-wc-settings-tax.php:181 msgid "Rate %" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:363 msgid "Or, enter tax rate ID:" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:364 #: includes/gateways/paypal/includes/settings-paypal.php:113 #: includes/gateways/paypal/includes/settings-paypal.php:126 #: includes/gateways/paypal/includes/settings-paypal.php:134 #: includes/gateways/paypal/includes/settings-paypal.php:142 msgid "Optional" msgstr "" #: includes/admin/meta-boxes/views/html-order-refund.php:19 msgid "ID: " msgstr "" #: includes/admin/meta-boxes/views/html-order-shipping.php:22 msgid "Shipping Name" msgstr "" #: includes/admin/meta-boxes/views/html-order-shipping.php:24 msgid "Shipping Method" msgstr "" #: includes/admin/meta-boxes/views/html-product-attribute.php:30 msgid "Select terms" msgstr "" #: includes/admin/meta-boxes/views/html-product-attribute.php:46 msgid "Add new" msgstr "" #: includes/admin/meta-boxes/views/html-product-attribute.php:55 msgid "\"%s\" separate terms" msgstr "" #: includes/admin/meta-boxes/views/html-product-attribute.php:63 msgid "Enter some text, or some attributes by \"%s\" separating values." msgstr "" #: includes/admin/meta-boxes/views/html-product-download.php:3 #: includes/admin/meta-boxes/views/html-product-variation-download.php:2 msgid "File Name" msgstr "" #: includes/admin/meta-boxes/views/html-product-download.php:4 #: includes/admin/meta-boxes/views/html-product-variation-download.php:3 msgid "http://" msgstr "" #: includes/admin/meta-boxes/views/html-product-download.php:5 #: includes/admin/meta-boxes/views/html-product-variation-download.php:4 msgid "Choose file" msgstr "" #: includes/admin/meta-boxes/views/html-product-download.php:5 #: includes/admin/meta-boxes/views/html-product-variation-download.php:4 msgid "Insert file URL" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:19 msgid "Drag and drop, or click to set admin variation order" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:33 #: includes/class-wc-product-variation.php:654 msgid "Any" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:64 msgid "Remove this image" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:64 msgid "Upload an image" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:68 msgid "Enter a SKU for this variation or leave blank to use the parent product SKU." msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:76 #: includes/admin/settings/class-wc-settings-checkout.php:292 #: includes/admin/settings/class-wc-settings-emails.php:269 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:20 #: includes/admin/views/html-admin-page-status-tools.php:31 #: includes/admin/views/html-admin-page-status-tools.php:42 #: includes/admin/views/html-admin-page-status-tools.php:53 msgid "Enabled" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:78 msgid "" "Enable this option if access is given to a downloadable file upon purchase " "of a product" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:80 msgid "Enable this option if a product is not shipped or there is no shipping cost" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:84 msgid "Enable this option to enable stock management at variation level" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:94 msgid "Variation price (required)" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:97 msgid "Cancel schedule" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:103 msgid "Sale start date" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:107 msgid "Sale end date" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:129 msgid "" "Enter a quantity to enable stock management at variation level, or leave " "blank to use the parent product's options." msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:175 msgid "" "Enter a weight for this variation or leave blank to use the parent product " "weight." msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:183 msgid "Dimensions (L×W×H)" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:211 #: includes/admin/meta-boxes/views/html-variation-admin.php:225 msgid "Same as parent" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:248 msgid "Variation description" msgstr "" #: includes/admin/reports/class-wc-admin-report.php:496 msgid "Sold %s worth in the last %d days" msgstr "" #: includes/admin/reports/class-wc-admin-report.php:498 msgid "Sold 1 item in the last %d days" msgid_plural "Sold %d items in the last %d days" msgstr[0] "" msgstr[1] "" #: includes/admin/reports/class-wc-report-coupon-usage.php:108 msgid "%s discounts in total" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:114 msgid "%s coupons used in total" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:128 #: includes/admin/reports/class-wc-report-customers.php:162 #: includes/admin/reports/class-wc-report-sales-by-category.php:113 #: includes/admin/reports/class-wc-report-sales-by-date.php:436 #: includes/admin/reports/class-wc-report-sales-by-product.php:126 #: includes/admin/reports/class-wc-report-taxes-by-code.php:49 #: includes/admin/reports/class-wc-report-taxes-by-date.php:49 msgid "Year" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:129 #: includes/admin/reports/class-wc-report-customers.php:163 #: includes/admin/reports/class-wc-report-sales-by-category.php:114 #: includes/admin/reports/class-wc-report-sales-by-date.php:437 #: includes/admin/reports/class-wc-report-sales-by-product.php:127 #: includes/admin/reports/class-wc-report-taxes-by-code.php:50 #: includes/admin/reports/class-wc-report-taxes-by-date.php:50 msgid "Last Month" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:130 #: includes/admin/reports/class-wc-report-customers.php:164 #: includes/admin/reports/class-wc-report-sales-by-category.php:115 #: includes/admin/reports/class-wc-report-sales-by-date.php:438 #: includes/admin/reports/class-wc-report-sales-by-product.php:128 #: includes/admin/reports/class-wc-report-taxes-by-code.php:51 #: includes/admin/reports/class-wc-report-taxes-by-date.php:51 msgid "This Month" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:131 #: includes/admin/reports/class-wc-report-customers.php:165 #: includes/admin/reports/class-wc-report-sales-by-category.php:116 #: includes/admin/reports/class-wc-report-sales-by-date.php:439 #: includes/admin/reports/class-wc-report-sales-by-product.php:129 msgid "Last 7 Days" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:171 msgid "Filter by coupon" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:199 msgid "Choose coupons…" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:200 msgid "All coupons" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:207 #: includes/admin/reports/class-wc-report-sales-by-category.php:223 #: includes/admin/reports/class-wc-report-sales-by-product.php:203 #: includes/widgets/class-wc-widget-products.php:43 msgid "Show" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:215 msgid "No used coupons found" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:220 msgid "Most Popular" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:262 #: includes/admin/reports/class-wc-report-coupon-usage.php:309 msgid "No coupons found in range" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:267 msgid "Most Discount" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:352 #: includes/admin/reports/class-wc-report-customers.php:229 #: includes/admin/reports/class-wc-report-sales-by-category.php:266 #: includes/admin/reports/class-wc-report-sales-by-date.php:480 #: includes/admin/reports/class-wc-report-sales-by-product.php:378 #: includes/admin/reports/class-wc-report-taxes-by-code.php:38 #: includes/admin/reports/class-wc-report-taxes-by-date.php:38 #: includes/admin/settings/views/html-settings-tax.php:35 msgid "Export CSV" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:459 msgid "Number of coupons used" msgstr "" #: includes/admin/reports/class-wc-report-coupon-usage.php:467 msgid "Discount amount" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:27 #: includes/admin/settings/class-wc-settings-emails.php:260 #: includes/class-wc-install.php:600 msgid "Customer" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:37 msgid "No customers found." msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:51 msgid "%s previous order linked" msgid_plural "%s previous orders linked" msgstr[0] "" msgstr[1] "" #: includes/admin/reports/class-wc-report-customer-list.php:61 msgid "Refreshed stats for %s" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:66 msgid "Search customers" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:153 msgid "Refresh stats" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:165 msgid "View orders" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:178 msgid "Link previous orders" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:208 msgid "Name (Last, First)" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:209 #: templates/myaccount/form-login.php:84 msgid "Username" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:211 msgid "Location" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:213 msgid "Money Spent" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:214 msgid "Last order" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:40 msgid "%s signups in this period" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:108 msgid "Customer Sales" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:109 msgid "Guest Sales" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:118 #: includes/admin/reports/class-wc-report-customers.php:315 msgid "Customer Orders" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:123 #: includes/admin/reports/class-wc-report-customers.php:325 msgid "Guest Orders" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:142 msgid "orders" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:321 msgid "customer orders" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:331 msgid "guest orders" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:335 msgid "Signups" msgstr "" #: includes/admin/reports/class-wc-report-customers.php:342 msgid "new users" msgstr "" #: includes/admin/reports/class-wc-report-low-in-stock.php:25 msgid "No low in stock products found." msgstr "" #: includes/admin/reports/class-wc-report-out-of-stock.php:25 msgid "No out of stock products found." msgstr "" #: includes/admin/reports/class-wc-report-sales-by-category.php:96 msgid "%s sales in %s" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-category.php:207 msgid "Select categories…" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-category.php:221 msgid "None" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-category.php:222 msgid "All" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-category.php:282 msgid "← Choose a category to view stats" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:363 msgid "%s average gross daily sales" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:364 msgid "%s average net daily sales" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:368 msgid "%s average gross monthly sales" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:369 msgid "%s average net monthly sales" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:374 msgid "%s gross sales in this period" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:375 msgid "" "This is the sum of the order totals after any refunds and including " "shipping and taxes." msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:388 msgid "%s net sales in this period" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:389 msgid "" "This is the sum of the order totals after any refunds and excluding " "shipping and taxes." msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:402 msgid "%s orders placed" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:408 msgid "%s items purchased" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:418 msgid "%s charged for shipping" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:423 msgid "%s worth of coupons used" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:560 #: includes/admin/reports/class-wc-report-sales-by-product.php:492 msgid "Number of items sold" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:568 msgid "Number of orders" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:576 msgid "Average gross sales amount" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:586 msgid "Average net sales amount" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:606 msgid "Shipping amount" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:616 msgid "Gross Sales amount" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:626 msgid "Net Sales amount" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:106 msgid "%s sales for the selected items" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:112 msgid "%s purchases for the selected items" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:158 msgid "Showing reports for:" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:190 msgid "Reset" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:198 msgid "Product Search" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:213 msgid "Top Sellers" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:248 #: includes/admin/reports/class-wc-report-sales-by-product.php:296 #: includes/admin/reports/class-wc-report-sales-by-product.php:336 msgid "No products found in range" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:253 msgid "Top Freebies" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:301 msgid "Top Earners" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:394 msgid "← Choose a product to view stats" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:500 msgid "Sales amount" msgstr "" #: includes/admin/reports/class-wc-report-stock.php:44 msgid "No products found." msgstr "" #: includes/admin/reports/class-wc-report-stock.php:149 msgid "product" msgstr "" #: includes/admin/reports/class-wc-report-stock.php:165 #: includes/class-wc-post-types.php:242 templates/cart/cart.php:36 #: templates/cart/cart.php:79 templates/checkout/form-pay.php:29 #: templates/checkout/review-order.php:26 #: templates/emails/email-order-details.php:34 #: templates/order/order-details.php:32 msgid "Product" msgstr "" #: includes/admin/reports/class-wc-report-stock.php:166 msgid "Parent" msgstr "" #: includes/admin/reports/class-wc-report-stock.php:167 msgid "Units in stock" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:150 msgid "Rate" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:151 #: includes/admin/reports/class-wc-report-taxes-by-date.php:153 msgid "Number of Orders" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:152 msgid "Tax Amount" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:152 msgid "This is the sum of the \"Tax Rows\" tax amount within your orders." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:153 msgid "Shipping Tax Amount" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:153 msgid "This is the sum of the \"Tax Rows\" shipping tax amount within your orders." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:154 #: includes/admin/reports/class-wc-report-taxes-by-date.php:156 msgid "Total Tax" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:154 #: includes/admin/reports/class-wc-report-taxes-by-date.php:156 msgid "This is the total tax for the rate (shipping tax + product tax)." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-code.php:186 #: includes/admin/reports/class-wc-report-taxes-by-date.php:201 msgid "No taxes found in this period" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:152 msgid "Period" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:154 msgid "Total Sales" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:154 msgid "This is the sum of the 'Order Total' field within your orders." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:155 msgid "Total Shipping" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:155 msgid "This is the sum of the 'Shipping Total' field within your orders." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:157 msgid "Net profit" msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:157 msgid "Total sales minus shipping and tax." msgstr "" #: includes/admin/reports/class-wc-report-taxes-by-date.php:190 #: templates/checkout/form-pay.php:31 msgid "Totals" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:28 msgid "Accounts" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:43 msgid "Account Pages" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:43 msgid "" "These pages need to be set so that WooCommerce knows where to send users to " "access account related functionality." msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:46 msgid "My Account Page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:47 #: includes/admin/settings/class-wc-settings-checkout.php:138 #: includes/admin/settings/class-wc-settings-checkout.php:149 msgid "Page contents:" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:61 msgid "Enable Registration" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:62 msgid "Enable registration on the \"Checkout\" page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:71 msgid "Enable registration on the \"My Account\" page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:80 #: includes/class-wc-download-handler.php:138 templates/auth/form-login.php:44 #: templates/global/form-login.php:48 templates/myaccount/form-login.php:37 #: templates/myaccount/form-login.php:56 msgid "Login" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:81 msgid "Display returning customer login reminder on the \"Checkout\" page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:90 msgid "Account Creation" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:91 msgid "Automatically generate username from customer email" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:100 msgid "Automatically generate customer password" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:110 msgid "My Account Endpoints" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:110 msgid "" "Endpoints are appended to your page URLs to handle specific actions on the " "accounts pages. They should be unique and can be left blank to disable the " "endpoint." msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:114 msgid "Endpoint for the My Account → Orders page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:122 #: includes/class-wc-post-types.php:306 includes/class-wc-post-types.php:307 msgid "View Order" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:123 msgid "Endpoint for the My Account → View Order page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:131 #: includes/class-wc-query.php:108 includes/wc-account-functions.php:92 msgid "Downloads" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:132 msgid "Endpoint for the My Account → Downloads page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:140 msgid "Edit Account" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:141 msgid "Endpoint for the My Account → Edit Account page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:149 #: includes/class-wc-query.php:114 includes/wc-account-functions.php:93 msgid "Addresses" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:150 msgid "Endpoint for the My Account → Addresses page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:158 #: includes/class-wc-query.php:117 includes/wc-account-functions.php:94 msgid "Payment Methods" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:159 msgid "Endpoint for the My Account → Payment Methods page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:167 #: includes/class-wc-query.php:123 msgid "Lost Password" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:168 msgid "Endpoint for the My Account → Lost Password page" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:176 #: includes/wc-account-functions.php:96 templates/auth/form-grant-access.php:39 msgid "Logout" msgstr "" #: includes/admin/settings/class-wc-settings-accounts.php:177 msgid "" "Endpoint for the triggering logout. You can add this to your menus via a " "custom link: yoursite.com/?customer-logout=true" msgstr "" #: includes/admin/settings/class-wc-settings-api.php:27 #: includes/admin/settings/class-wc-settings-api.php:68 #: includes/admin/views/html-admin-page-status-report.php:515 msgid "API" msgstr "" #: includes/admin/settings/class-wc-settings-api.php:61 #: includes/admin/settings/class-wc-settings-general.php:50 msgid "General Options" msgstr "" #: includes/admin/settings/class-wc-settings-api.php:69 msgid "Enable the REST API" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:44 msgid "Checkout Options" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:69 msgid "Checkout Process" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:76 msgid "Enable the use of coupons" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:81 msgid "Coupons can be applied from the cart and checkout pages." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:85 msgid "Calculate coupon discounts sequentially" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:89 msgid "" "When applying multiple coupons, apply the first coupon to the full price " "and the second coupon to the discounted price and so on." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:96 msgid "Enable guest checkout" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:97 msgid "Allows customers to checkout without creating an account." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:106 msgid "Force secure checkout" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:112 msgid "" "Force SSL (HTTPS) on the checkout pages (an SSL Certificate " "is required)." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:116 msgid "Force HTTP when leaving the checkout" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:130 msgid "Checkout Pages" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:131 msgid "" "These pages need to be set so that WooCommerce knows where to send users to " "checkout." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:137 msgid "Cart Page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:148 msgid "Checkout Page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:159 msgid "Terms and Conditions" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:160 msgid "" "If you define a \"Terms\" page the customer will be asked if they accept " "them when checking out." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:175 msgid "Checkout Endpoints" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:175 msgid "" "Endpoints are appended to your page URLs to handle specific actions during " "the checkout process. They should be unique." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:178 #: templates/checkout/thankyou.php:30 templates/myaccount/my-orders.php:72 #: templates/myaccount/orders.php:68 msgid "Pay" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:179 msgid "Endpoint for the Checkout → Pay page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:187 #: includes/class-wc-query.php:94 msgid "Order Received" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:188 msgid "Endpoint for the Checkout → Order Received page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:196 #: includes/class-wc-query.php:120 #: templates/myaccount/form-add-payment-method.php:53 #: templates/myaccount/payment-methods.php:78 msgid "Add Payment Method" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:197 msgid "Endpoint for the Checkout → Add Payment Method page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:205 msgid "Delete Payment Method" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:206 msgid "Endpoint for the delete payment method page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:214 msgid "Set Default Payment Method" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:215 msgid "Endpoint for the setting a default payment method page" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:229 msgid "Payment Gateways" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:230 msgid "" "Installed gateways are listed below. Drag and drop gateways to control " "their display order on the frontend." msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:282 msgid "Gateway Display Order" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:290 msgid "Gateway" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:291 msgid "Gateway ID" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:318 msgid "(no title)" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:27 msgid "Emails" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:43 msgid "Email Options" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:56 msgid "Email Notifications" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:56 msgid "" "Email notifications sent from WooCommerce are listed below. Click on an " "email to configure it." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:64 msgid "Email Sender Options" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:67 msgid "\"From\" Name" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:68 msgid "How the sender's name appears in outgoing WooCommerce emails." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:78 msgid "\"From\" Address" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:79 msgid "How the sender's email appears in outgoing WooCommerce emails." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:93 msgid "Email Template" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:93 msgid "" "This section lets you customize the WooCommerce emails. Click here to preview your email template." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:96 msgid "Header Image" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:97 msgid "" "URL to an image you want to show in the email header. Upload images using " "the media uploader (Admin > Media)." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:108 msgid "Footer Text" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:109 msgid "The text to appear in the footer of WooCommerce emails." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:114 msgid "Powered by WooCommerce" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:120 msgid "Base Colour" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:121 msgid "" "The base colour for WooCommerce email templates. Default " "#557da1." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:131 msgid "Background Colour" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:132 msgid "" "The background colour for WooCommerce email templates. Default " "#f5f5f5." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:142 msgid "Body Background Colour" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:143 msgid "The main body background colour. Default #fdfdfd." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:153 msgid "Body Text Colour" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:154 msgid "The main body text colour. Default #505050." msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:234 msgid "Content Type" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:235 #: includes/emails/class-wc-email-cancelled-order.php:109 #: includes/emails/class-wc-email-failed-order.php:109 #: includes/emails/class-wc-email-new-order.php:114 msgid "Recipient(s)" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:267 msgid "Manually sent" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:267 msgid "Manual" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:271 #: includes/wc-webhook-functions.php:25 msgid "Disabled" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:283 msgid "Configure" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:53 msgid "Base Location" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:54 msgid "" "This is the base location for your business. Tax rates will be based on " "this country." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:63 msgid "Selling Location(s)" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:64 msgid "This option lets you limit which countries you are willing to sell to." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:72 msgid "Sell to All Countries" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:73 #: includes/admin/settings/class-wc-settings-general.php:79 msgid "Sell to All Countries, Except For…" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:74 #: includes/admin/settings/class-wc-settings-general.php:88 msgid "Sell to Specific Countries" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:97 msgid "Shipping Location(s)" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:98 msgid "" "Choose which countries you want to ship to, or choose to ship to all " "locations you sell to." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:105 msgid "Ship to all countries you sell to" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:106 msgid "Ship to all countries" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:107 msgid "Ship to specific countries only" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:108 msgid "Disable shipping & shipping calculations" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:113 msgid "Ship to Specific Countries" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:122 msgid "Default Customer Location" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:124 msgid "" "This option determines a customers default location. The MaxMind GeoLite " "Database will be periodically downloaded to your wp-content directory if " "using geolocation." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:129 msgid "No location by default" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:130 #: includes/admin/settings/views/settings-tax.php:33 msgid "Shop base address" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:131 msgid "Geolocate" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:132 msgid "Geolocate (with page caching support)" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:137 msgid "Enable Taxes" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:138 msgid "Enable taxes and tax calculations" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:145 msgid "Store Notice" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:146 msgid "Enable site-wide store notice text" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:153 msgid "Store Notice Text" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:156 #: includes/wc-template-functions.php:448 msgid "" "This is a demo store for testing purposes — no orders shall be " "fulfilled." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:164 msgid "Currency Options" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:164 msgid "The following options affect how prices are displayed on the frontend." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:167 #: includes/admin/views/html-admin-page-status-report.php:486 msgid "Currency" msgstr "" #: includes/admin/settings/class-wc-settings-general.php:168 msgid "" "This controls what currency prices are listed at in the catalog and which " "currency gateways will take payments in." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:180 msgid "This controls the position of the currency symbol." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:197 msgid "This sets the thousand separator of displayed prices." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:207 msgid "This sets the decimal separator of displayed prices." msgstr "" #: includes/admin/settings/class-wc-settings-general.php:217 msgid "This sets the number of decimal points shown in displayed prices." msgstr "" #: includes/admin/settings/class-wc-settings-integrations.php:28 msgid "Integration" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:45 msgid "Display" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:85 msgid "Shop & Product Pages" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:92 msgid "Shop Page" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:93 msgid "" "The base page can also be used in your product " "permalinks." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:99 msgid "" "This sets the base page of your shop - this is where your product archive " "will be." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:103 msgid "Shop Page Display" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:104 msgid "This controls what is shown on the product archive." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:111 #: includes/admin/settings/class-wc-settings-products.php:127 msgid "Show products" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:112 msgid "Show categories" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:113 msgid "Show categories & products" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:119 msgid "Default Category Display" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:120 msgid "This controls what is shown on category archives." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:128 msgid "Show subcategories" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:129 msgid "Show subcategories & products" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:135 msgid "Default Product Sorting" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:136 msgid "This controls the default sort order of the catalog." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:143 msgid "Default sorting (custom ordering + name)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:144 msgid "Popularity (sales)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:145 #: includes/widgets/class-wc-widget-rating-filter.php:30 msgid "Average Rating" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:146 msgid "Sort by most recent" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:147 msgid "Sort by price (asc)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:148 msgid "Sort by price (desc)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:154 msgid "Add to cart behaviour" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:155 msgid "Redirect to the cart page after successful addition" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:163 msgid "Enable AJAX add to cart buttons on archives" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:178 msgid "" "These settings affect the display and dimensions of images in your catalog " "- the display on the front-end will still be affected by CSS styles. After " "changing these settings you may need to regenerate your " "thumbnails." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:183 msgid "Catalog Images" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:184 msgid "This size is usually used in product listings" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:197 msgid "Single Product Image" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:198 msgid "This is the size used by the main image on the product page." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:211 msgid "Product Thumbnails" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:212 msgid "This size is usually used for the gallery of images on the product page." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:225 msgid "Product Image Gallery" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:226 msgid "Enable Lightbox for product images" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:229 msgid "" "Include WooCommerce's lightbox. Product gallery images will open in a " "lightbox." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:251 msgid "Manage Stock" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:252 msgid "Enable stock management" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:259 msgid "Hold Stock (minutes)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:260 msgid "" "Hold stock (for unpaid orders) for x minutes. When this limit is reached, " "the pending order will be cancelled. Leave blank to disable." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:273 msgid "Notifications" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:274 msgid "Enable low stock notifications" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:283 msgid "Enable out of stock notifications" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:292 msgid "Notification Recipient(s)" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:293 msgid "Enter recipients (comma separated) that will receive this notification." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:303 msgid "Low Stock Threshold" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:317 msgid "Out Of Stock Threshold" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:330 msgid "Out Of Stock Visibility" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:331 msgid "Hide out of stock items from the catalog" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:338 msgid "Stock Display Format" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:339 msgid "This controls how stock is displayed on the frontend." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:346 msgid "Always show stock e.g. \"12 in stock\"" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:347 msgid "Only show stock when low e.g. \"Only 2 left in stock\" vs. \"In Stock\"" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:348 msgid "Never show stock amount" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:369 msgid "File Download Method" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:370 msgid "" "Forcing downloads will keep URLs hidden, but some servers may serve large " "files unreliably. If supported, X-Accel-Redirect/ " "X-Sendfile can be used to serve downloads instead (server " "requires mod_xsendfile)." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:378 msgid "Force Downloads" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:379 msgid "X-Accel-Redirect/X-Sendfile" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:380 msgid "Redirect only" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:386 msgid "Access Restriction" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:387 msgid "Downloads require login" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:391 msgid "This setting does not apply to guest purchases." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:397 msgid "Grant access to downloadable products after payment" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:401 msgid "" "Enable this option to grant access to downloads when orders are " "\"processing\", rather than \"completed\"." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:416 msgid "Measurements" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:422 msgid "Weight Unit" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:423 msgid "This controls what unit you will define weights in." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:439 msgid "Dimensions Unit" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:440 msgid "This controls what unit you will define lengths in." msgstr "" #: includes/admin/settings/class-wc-settings-products.php:469 msgid "Product Ratings" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:470 msgid "Enable ratings on reviews" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:479 msgid "Ratings are required to leave a review" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:489 msgid "Show \"verified owner\" label for customer reviews" msgstr "" #: includes/admin/settings/class-wc-settings-products.php:499 msgid "Only allow reviews from \"verified owners\"" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:80 msgid "Calculations" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:81 msgid "Enable the shipping calculator on the cart page" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:90 msgid "Hide shipping costs until an address is entered" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:99 msgid "Shipping Destination" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:100 msgid "This controls which shipping address is used by default." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:105 msgid "Default to customer shipping address" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:106 msgid "Default to customer billing address" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:107 msgid "Force shipping to the customer billing address" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:202 #: includes/admin/settings/class-wc-settings-shipping.php:264 msgid "Zone does not exist!" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:210 #: includes/admin/settings/class-wc-settings-shipping.php:242 #: includes/admin/settings/class-wc-settings-shipping.php:297 #: includes/admin/settings/class-wc-settings-tax.php:175 msgid "Your changed data will be lost if you leave this page without saving." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:211 msgid "" "Do you wish to save your changes first? Your changed data will be discarded " "if you choose to cancel." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:212 #: includes/admin/settings/class-wc-settings-shipping.php:243 #: includes/admin/settings/class-wc-settings-shipping.php:298 msgid "Your changes were not saved. Please retry." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:213 msgid "Shipping method could not be added. Please retry." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:244 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:52 msgid "No shipping methods offered to this zone." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:261 msgid "Invalid shipping method!" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:267 msgid "This shipping method does not have any settings to configure." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:273 msgid "Edit failed. Please try again." msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:305 #: includes/class-wc-post-types.php:139 msgid "Shipping Class" msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:308 msgid "Product Count" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:55 #: includes/admin/settings/views/settings-tax.php:9 msgid "Tax Options" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:56 msgid "Standard Rates" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:63 msgid "%s Rates" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:174 msgid "No row(s) selected" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:177 msgid "Country Code" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:178 msgid "State Code" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:179 #: includes/admin/settings/views/html-settings-tax.php:21 msgid "ZIP/Postcode" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:182 msgid "Tax Name" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:183 #: includes/admin/settings/views/html-settings-tax.php:25 msgid "Priority" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:184 #: includes/admin/settings/views/html-settings-tax.php:26 msgid "Compound" msgstr "" #: includes/admin/settings/class-wc-settings-tax.php:186 #: includes/admin/views/html-bulk-edit-product.php:89 #: includes/admin/views/html-quick-edit-product.php:68 msgid "Tax Class" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:9 msgid "" "Shipping classes can be used to group products of similar type and can be " "used by some Shipping Methods (such as Flat Rate Shipping) to provide " "different rates to different classes of product." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:23 msgid "Save Shipping Classes" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:24 msgid "Add Shipping Class" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:33 msgid "No Shipping classes have been created." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:52 msgid "Shipping Class Name" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:54 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:93 msgid "Cancel changes" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-classes.php:68 msgid "Description for your reference" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:10 msgid "" "The following shipping methods apply to customers with shipping addresses " "within this zone." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:18 msgid "" "Drag and drop to re-order your shipping methods. This is the order in which " "they will display during checkout." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:19 #: includes/gateways/bacs/class-wc-gateway-bacs.php:79 #: includes/gateways/cheque/class-wc-gateway-cheque.php:60 #: includes/gateways/cod/class-wc-gateway-cod.php:69 #: includes/gateways/paypal/includes/settings-paypal.php:18 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:195 #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:74 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:117 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:94 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:70 #: includes/widgets/class-wc-widget-cart.php:32 #: includes/widgets/class-wc-widget-layered-nav-filters.php:30 #: includes/widgets/class-wc-widget-layered-nav.php:75 #: includes/widgets/class-wc-widget-price-filter.php:32 #: includes/widgets/class-wc-widget-product-categories.php:44 #: includes/widgets/class-wc-widget-product-search.php:30 #: includes/widgets/class-wc-widget-product-tag-cloud.php:30 #: includes/widgets/class-wc-widget-products.php:30 #: includes/widgets/class-wc-widget-rating-filter.php:31 #: includes/widgets/class-wc-widget-recent-reviews.php:30 #: includes/widgets/class-wc-widget-recently-viewed.php:30 #: includes/widgets/class-wc-widget-top-rated-products.php:32 msgid "Title" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:29 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:93 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:119 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:55 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:129 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:141 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:167 msgid "Add shipping method" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:39 msgid "Add shipping methods to this zone" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:40 msgid "" "You can add multiple shipping methods within this zone. Only customers " "within the zone will see them." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:41 msgid "Click \"Add shipping method\" to get started." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:68 #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:95 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:143 msgid "Close modal panel" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:101 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:149 msgid "" "Choose the shipping method you wish to add. Only shipping methods which " "support zones are listed." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:9 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:66 msgid "" "A shipping zone is a geographic region where a certain set of shipping " "methods and rates apply." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:9 msgid "" "WooCommerce will automatically choose the correct shipping zone based on " "your customer‘s shipping address and present the shipping methods " "within that zone to them." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:15 msgid "" "Drag and drop to re-order your custom zones. This is the order in which " "they will be matched against the customer address." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:16 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:91 msgid "Zone Name" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:17 msgid "Region(s)" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:18 msgid "Shipping Method(s)" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:25 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:74 msgid "Add shipping zone" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:34 #: includes/class-wc-shipping-zone.php:49 msgid "Rest of the World" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:39 msgid "" "This zone is used for shipping addresses that aren‘t included in any " "other shipping zone. Adding shipping methods to this zone is optional." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:55 #: includes/admin/settings/views/html-admin-page-shipping-zones.php:129 msgid "Save changes to continue adding shipping methods to this zone" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:67 msgid "For example:" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:69 msgid "Local Zone = California ZIP 90210 = Local pickup" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:70 msgid "US Domestic Zone = All US states = Flat rate shipping" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:71 msgid "Europe Zone = Any country in Europe = Flat rate shipping" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:73 msgid "" "Add as many zones as you need – customers will only see the methods " "available for their address." msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:100 msgid "Select regions within this zone" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:119 msgid "Limit to specific ZIP/postcodes" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:121 msgid "List 1 postcode per line" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zones.php:122 msgid "" "Postcodes containing wildcards (e.g. CB23*) and fully numeric ranges (e.g. " "90210...99000) are also supported." msgstr "" #: includes/admin/settings/views/html-keys-edit.php:8 msgid "Key Details" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:17 msgid "Friendly name for identifying this key." msgstr "" #: includes/admin/settings/views/html-keys-edit.php:26 msgid "Owner of these keys." msgstr "" #: includes/admin/settings/views/html-keys-edit.php:41 msgid "Select the access type of these keys." msgstr "" #: includes/admin/settings/views/html-keys-edit.php:92 msgid "Generate API Key" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:97 #: includes/class-wc-ajax.php:2401 msgid "Revoke Key" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:110 msgid "Consumer Key" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:113 #: includes/admin/settings/views/html-keys-edit.php:121 #: includes/admin/views/html-admin-page-status-report.php:18 msgid "Copied!" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:113 #: includes/admin/settings/views/html-keys-edit.php:121 msgid "Copy" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:118 msgid "Consumer Secret" msgstr "" #: includes/admin/settings/views/html-keys-edit.php:126 msgid "QRCode" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:8 msgid "Search…" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:13 msgid "\"%s\" Tax Rates" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:19 msgid "Country Code" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:19 msgid "A 2 digit country code, e.g. US. Leave blank to apply to all." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:20 msgid "State Code" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:20 msgid "A 2 digit state code, e.g. AL. Leave blank to apply to all." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:21 msgid "" "Postcode for this rule. Semi-colon (;) separate multiple values. Leave " "blank to apply to all areas. Wildcards (*) and ranges for numeric postcodes " "(e.g. 12345...12350) can also be used." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:22 msgid "" "Cities for this rule. Semi-colon (;) separate multiple values. Leave blank " "to apply to all cities." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:23 msgid "Rate %" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:23 msgid "Enter a tax rate (percentage) to 4 decimal places." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:24 msgid "Tax Name" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:24 msgid "Enter a name for this tax rate." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:25 msgid "" "Choose a priority for this tax rate. Only 1 matching rate per priority will " "be used. To define multiple tax rates for a single area you need to specify " "a different priority per rate." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:26 msgid "" "Choose whether or not this is a compound rate. Compound tax rates are " "applied on top of other tax rates." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:27 msgid "Choose whether or not this tax rate also gets applied to shipping." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:33 msgid "Insert row" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:34 msgid "Remove selected row(s)" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:36 msgid "Import CSV" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:42 msgid "Loading…" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:48 msgid "Tax rate ID: %s" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:91 msgid "No Matching Tax Rates Found." msgstr "" #: includes/admin/settings/views/html-settings-tax.php:102 msgid "First page" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:106 msgid "Previous page" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:111 msgid "Current Page" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:118 msgid "Next page" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:122 msgid "Last page" msgstr "" #: includes/admin/settings/views/html-webhook-log.php:13 #: includes/wc-account-functions.php:211 msgid "Method" msgstr "" #: includes/admin/settings/views/html-webhook-log.php:14 msgid "Duration" msgstr "" #: includes/admin/settings/views/html-webhook-log.php:15 #: includes/admin/settings/views/html-webhook-log.php:26 msgid "Headers" msgstr "" #: includes/admin/settings/views/html-webhook-log.php:21 #: includes/admin/settings/views/html-webhook-log.php:33 msgid "Content" msgstr "" #: includes/admin/settings/views/html-webhook-logs.php:18 #: includes/admin/settings/views/html-webhook-logs.php:26 msgid "URL" msgstr "" #: includes/admin/settings/views/html-webhook-logs.php:19 #: includes/admin/settings/views/html-webhook-logs.php:27 msgid "Request" msgstr "" #: includes/admin/settings/views/html-webhook-logs.php:20 #: includes/admin/settings/views/html-webhook-logs.php:28 msgid "Response" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:10 msgid "Webhook Data" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:16 msgid "" "Friendly name for identifying this webhook, defaults to Webhook created on " "%s." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:25 msgid "" "The options are "Active" (delivers payload), "Paused" " "(does not deliver), or "Disabled" (does not deliver due delivery " "failures)." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:42 msgid "Select when the webhook will fire." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:51 msgid "Coupon Created" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:52 msgid "Coupon Updated" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:53 msgid "Coupon Deleted" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:54 msgid "Customer Created" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:55 msgid "Customer Updated" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:56 msgid "Customer Deleted" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:57 msgid "Order Created" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:58 msgid "Order Updated" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:59 msgid "Order Deleted" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:60 msgid "Product Created" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:61 msgid "Product Updated" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:62 msgid "Product Deleted" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:63 msgid "Action" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:64 msgid "Custom" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:75 msgid "Action Event" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:76 msgid "Enter the Action that will trigger this webhook." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:84 msgid "Custom Topic" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:85 msgid "Enter the Custom Topic that will trigger this webhook." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:94 msgid "URL where the webhook payload is delivered." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:102 msgid "Secret" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:103 msgid "" "The Secret Key is used to generate a hash of the delivered webhook and " "provided in the request headers." msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:116 msgid "Webhook Actions" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:123 #: includes/admin/settings/views/html-webhooks-edit.php:132 msgid "Created at" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:140 msgid "Updated at" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:151 msgid "Save Webhook" msgstr "" #: includes/admin/settings/views/html-webhooks-edit.php:163 msgid "Webhook Logs" msgstr "" #: includes/admin/settings/views/settings-tax.php:12 msgid "Prices Entered With Tax" msgstr "" #: includes/admin/settings/views/settings-tax.php:16 msgid "" "This option is important as it will affect how you input prices. Changing " "it will not update existing products." msgstr "" #: includes/admin/settings/views/settings-tax.php:18 msgid "Yes, I will enter prices inclusive of tax" msgstr "" #: includes/admin/settings/views/settings-tax.php:19 msgid "No, I will enter prices exclusive of tax" msgstr "" #: includes/admin/settings/views/settings-tax.php:24 msgid "Calculate Tax Based On" msgstr "" #: includes/admin/settings/views/settings-tax.php:26 msgid "This option determines which address is used to calculate tax." msgstr "" #: includes/admin/settings/views/settings-tax.php:31 msgid "Customer shipping address" msgstr "" #: includes/admin/settings/views/settings-tax.php:32 msgid "Customer billing address" msgstr "" #: includes/admin/settings/views/settings-tax.php:38 msgid "Shipping Tax Class" msgstr "" #: includes/admin/settings/views/settings-tax.php:39 msgid "" "Optionally control which tax class shipping gets, or leave it so shipping " "tax is based on the cart items themselves." msgstr "" #: includes/admin/settings/views/settings-tax.php:45 msgid "Shipping tax class based on cart items" msgstr "" #: includes/admin/settings/views/settings-tax.php:50 msgid "Rounding" msgstr "" #: includes/admin/settings/views/settings-tax.php:51 msgid "Round tax at subtotal level, instead of rounding per line" msgstr "" #: includes/admin/settings/views/settings-tax.php:58 msgid "Additional Tax Classes" msgstr "" #: includes/admin/settings/views/settings-tax.php:59 msgid "" "List additional tax classes below (1 per line). This is in addition to the " "default \"Standard Rate\"." msgstr "" #: includes/admin/settings/views/settings-tax.php:63 msgid "Reduced Rate%sZero Rate" msgstr "" #: includes/admin/settings/views/settings-tax.php:67 msgid "Display Prices in the Shop" msgstr "" #: includes/admin/settings/views/settings-tax.php:73 #: includes/admin/settings/views/settings-tax.php:85 msgid "Including tax" msgstr "" #: includes/admin/settings/views/settings-tax.php:74 #: includes/admin/settings/views/settings-tax.php:86 msgid "Excluding tax" msgstr "" #: includes/admin/settings/views/settings-tax.php:79 msgid "Display Prices During Cart and Checkout" msgstr "" #: includes/admin/settings/views/settings-tax.php:92 msgid "Price Display Suffix" msgstr "" #: includes/admin/settings/views/settings-tax.php:97 msgid "" "Define text to show after your product prices. This could be, for example, " "\"inc. Vat\" to explain your pricing. You can also have prices substituted " "here using one of the following: {price_including_tax}, " "{price_excluding_tax}." msgstr "" #: includes/admin/settings/views/settings-tax.php:101 msgid "Display Tax Totals" msgstr "" #: includes/admin/settings/views/settings-tax.php:107 msgid "As a single total" msgstr "" #: includes/admin/settings/views/settings-tax.php:108 msgid "Itemized" msgstr "" #: includes/admin/views/html-admin-page-addons.php:50 msgid "" "Our catalog of WooCommerce Extensions can be found on WooCommerce.com here: " "WooCommerce Extensions Catalog" msgstr "" #: includes/admin/views/html-admin-page-addons.php:56 msgid "Looking for a WooCommerce theme?" msgstr "" #: includes/admin/views/html-admin-page-addons.php:57 msgid "We recommend Storefront, the %sofficial%s WooCommerce theme." msgstr "" #: includes/admin/views/html-admin-page-addons.php:58 msgid "" "Storefront is an intuitive, flexible and %sfree%s WordPress theme offering " "deep integration with WooCommerce and many of the most popular " "customer-facing extensions." msgstr "" #: includes/admin/views/html-admin-page-addons.php:60 msgid "Read all about it" msgstr "" #: includes/admin/views/html-admin-page-addons.php:61 msgid "Download & install" msgstr "" #: includes/admin/views/html-admin-page-status-logs.php:14 msgid "Log file: %s (%s)" msgstr "" #: includes/admin/views/html-admin-page-status-logs.php:32 msgid "There are currently no logs to view." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:13 msgid "" "Please copy and paste this information in your ticket when contacting " "support:" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:14 msgid "Get System Report" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:15 msgid "Understanding the Status Report" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:18 msgid "Copy for Support" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:25 msgid "WordPress Environment" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:30 msgid "Home URL" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:31 msgid "The URL of your site's homepage." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:35 msgid "Site URL" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:36 msgid "The root URL of your site." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:40 msgid "WC Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:41 msgid "The version of WooCommerce installed on your site." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:45 msgid "Log Directory Writable" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:46 msgid "" "Several WooCommerce extensions can write logs which makes debugging " "problems easier. The directory must be writable for this to happen." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:51 msgid "" "To allow logging, make %s writable or define a custom " "WC_LOG_DIR." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:56 msgid "WP Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:57 msgid "The version of WordPress installed on your site." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:61 msgid "WP Multisite" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:62 msgid "Whether or not you have WordPress Multisite enabled." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:66 msgid "WP Memory Limit" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:67 msgid "The maximum amount of memory (RAM) that your site can use at one time." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:77 msgid "%s - We recommend setting memory to at least 64MB. See: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:77 msgid "Increasing memory allocated to PHP" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:84 msgid "WP Debug Mode" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:85 msgid "Displays whether or not WordPress is in Debug Mode." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:95 msgid "WP Cron" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:96 msgid "Displays whether or not WP Cron Jobs are enabled." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:106 msgid "Language" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:107 msgid "The current language used by WordPress. Default = English" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:115 msgid "Server Environment" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:120 msgid "Server Info" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:121 msgid "Information about the web server that is currently hosting your site." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:125 msgid "PHP Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:126 msgid "The version of PHP installed on your hosting server." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:133 msgid "%s - We recommend a minimum PHP version of 5.6. See: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:133 msgid "How to update your PHP version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:138 msgid "Couldn't determine PHP version because phpversion() doesn't exist." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:144 msgid "PHP Post Max Size" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:145 msgid "The largest filesize that can be contained in one post." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:149 msgid "PHP Time Limit" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:150 msgid "" "The amount of time (in seconds) that your site will spend on a single " "operation before timing out (to avoid server lockups)" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:154 msgid "PHP Max Input Vars" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:155 msgid "" "The maximum number of variables your server can use for a single function " "to avoid overloads." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:159 msgid "cURL Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:160 msgid "The version of cURL installed on your server." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:171 msgid "SUHOSIN Installed" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:172 msgid "" "Suhosin is an advanced protection system for PHP installations. It was " "designed to protect your servers on the one hand against a number of well " "known problems in PHP applications and on the other hand against potential " "unknown vulnerabilities within these applications or the PHP core itself. " "If enabled on your server, Suhosin may need to be configured to increase " "its data submission limits." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:185 msgid "MySQL Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:186 msgid "The version of MySQL installed on your hosting server." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:192 msgid "%s - We recommend a minimum MySQL version of 5.6. See: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:192 msgid "WordPress Requirements" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:201 msgid "Max Upload Size" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:202 msgid "The largest filesize that can be uploaded to your WordPress installation." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:206 msgid "Default Timezone is UTC" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:207 msgid "The default timezone for your server." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:211 msgid "Default timezone is %s - it should be UTC" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:222 msgid "" "Payment gateways can use cURL to communicate with remote servers to " "authorize payments, other plugins may also use it when communicating with " "remote services." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:228 msgid "" "Your server does not have fsockopen or cURL enabled - PayPal IPN and other " "scripts which communicate with other servers will not work. Contact your " "hosting provider." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:233 msgid "" "Some webservices like shipping use SOAP to get information from remote " "servers, for example, live shipping quotes from FedEx require SOAP to be " "installed." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:239 msgid "" "Your server does not have the %s class enabled - some gateway plugins which " "use SOAP may not work as expected." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:244 msgid "HTML/Multipart emails use DOMDocument to generate inline CSS in templates." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:250 msgid "" "Your server does not have the %s class enabled - HTML/Multipart emails, and " "also some extensions, will not work without DOMDocument." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:255 msgid "GZip (gzopen) is used to open the GEOIP database from MaxMind." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:261 msgid "" "Your server does not support the %s function - this is required to use the " "GeoIP database from MaxMind." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:266 msgid "" "Multibyte String (mbstring) is used to convert character encoding, like for " "emails or converting characters to lowercase." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:272 msgid "" "Your server does not support the %s functions - this is required for better " "character encoding. Some fallbacks will be used instead for it." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:276 msgid "Remote Post" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:277 msgid "" "PayPal uses this method of communicating when sending back transaction " "information." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:291 msgid "" "wp_remote_post() failed. PayPal IPN won't work with your server. Contact " "your hosting provider." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:293 #: includes/admin/views/html-admin-page-status-report.php:311 #: includes/class-wc-auth.php:375 msgid "Error: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:295 #: includes/admin/views/html-admin-page-status-report.php:313 msgid "Status code: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:301 msgid "Remote Get" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:302 msgid "" "WooCommerce plugins may use this method of communication when checking for " "plugin updates." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:309 msgid "" "wp_remote_get() failed. The WooCommerce plugin updater won't work with your " "server. Contact your hosting provider." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:340 msgid "Database" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:345 msgid "WC Database Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:346 msgid "" "The version of WooCommerce that the database is formatted for. This should " "be the same as your WooCommerce Version." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:376 msgid "Table does not exist" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:384 msgid "MaxMind GeoIP Database" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:385 msgid "The GeoIP database from MaxMind is used to geolocate customers." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:390 msgid "" "The MaxMind GeoIP Database does not exist - Geolocation will not function. " "You can download and install it manually from %1$s to the path: %2$s. " "Scroll down to \\\"Downloads\\\" and download the \\\"Binary / gzip\\\" " "file next to \\\"GeoLite Country\\\"" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:404 msgid "Active Plugins" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:429 msgid "Visit plugin homepage" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:457 msgid "Network enabled" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:481 msgid "Force SSL" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:482 msgid "Does your site force a SSL Certificate for transactions?" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:487 msgid "" "What currency prices are listed at in the catalog and which currency " "gateways will take payments in." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:492 msgid "The position of the currency symbol." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:497 msgid "The thousand separator of displayed prices." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:502 msgid "The decimal separator of displayed prices." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:507 msgid "The number of decimal points shown in displayed prices." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:520 msgid "API Enabled" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:521 msgid "Does your site have REST API enabled?" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:529 msgid "WC Pages" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:538 msgid "The URL of your WooCommerce shop's homepage (along with the Page ID)." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:543 msgid "The URL of your WooCommerce shop's cart (along with the page ID)." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:548 msgid "The URL of your WooCommerce shop's checkout (along with the page ID)." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:553 msgid "" "The URL of your WooCommerce shop's “My Account” Page (along with the page " "ID)." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:574 msgid "Page not set" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:577 msgid "Page ID is set, but the page does not exist" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:580 msgid "Page visibility should be %spublic%s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:590 msgid "Page does not exist" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:595 msgid "Page does not contain the shortcode: %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:613 msgid "Taxonomies" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:613 msgid "" "A list of taxonomy terms that can be used in regard to order/product " "statuses." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:618 msgid "Product Types" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:634 msgid "Theme" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:647 msgid "The name of the current active theme." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:651 msgid "Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:652 msgid "The installed version of the current active theme." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:657 #: includes/admin/views/html-admin-page-status-report.php:690 msgid "%s is available" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:662 msgid "Author URL" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:663 msgid "The theme developers URL." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:667 msgid "Child Theme" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:668 msgid "Displays whether or not the current theme is a child theme." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:670 msgid "" "If you're modifying WooCommerce on a parent theme you didn't build " "personally, then we recommend using a child theme. See: How to create a child theme" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:679 msgid "Parent Theme Name" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:680 msgid "The name of the parent theme." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:684 msgid "Parent Theme Version" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:685 msgid "The installed version of the parent theme." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:695 msgid "Parent Theme Author URL" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:696 msgid "The parent theme developers URL." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:701 msgid "WooCommerce Support" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:702 msgid "" "Displays whether or not the current active theme declares WooCommerce " "support." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:705 msgid "Not Declared" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:716 msgid "Templates" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:716 msgid "" "This section shows any files that are overriding the default WooCommerce " "template pages." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:722 msgid "Archive Template" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:724 msgid "" "Your theme has a woocommerce.php file, you will not be able to override the " "woocommerce/archive-product.php custom template since woocommerce.php has " "priority over archive-product.php. This is intended to prevent display " "issues." msgstr "" #: includes/admin/views/html-admin-page-status-report.php:758 msgid "" "%s version %s is out of " "date. The core version is %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:770 #: includes/admin/views/html-admin-page-status-report.php:779 msgid "Overrides" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:791 msgid "Learn how to update outdated templates" msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:28 msgid "Shipping Debug Mode" msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:34 msgid "" "Enable Shipping Debug Mode to show matching shipping zones and to bypass " "shipping rate cache." msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:39 msgid "Template Debug Mode" msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:45 msgid "" "Enable Template Debug Mode to bypass all theme and plugin template " "overrides for logged-in administrators. Used for debugging purposes." msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:50 msgid "Remove All Data" msgstr "" #: includes/admin/views/html-admin-page-status-tools.php:56 msgid "" "This tool will remove all WooCommerce, Product and Order data when using " "the \"Delete\" link on the plugins screen. It will also remove any " "setting/option prepended with \"woocommerce_\" so may also affect installed " "WooCommerce Extensions." msgstr "" #: includes/admin/views/html-admin-page-status.php:13 msgid "Tools" msgstr "" #: includes/admin/views/html-admin-page-status.php:14 msgid "Logs" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:26 #: includes/admin/views/html-bulk-edit-product.php:50 #: includes/admin/views/html-bulk-edit-product.php:75 #: includes/admin/views/html-bulk-edit-product.php:94 #: includes/admin/views/html-bulk-edit-product.php:122 #: includes/admin/views/html-bulk-edit-product.php:146 #: includes/admin/views/html-bulk-edit-product.php:168 #: includes/admin/views/html-bulk-edit-product.php:185 #: includes/admin/views/html-bulk-edit-product.php:204 #: includes/admin/views/html-bulk-edit-product.php:222 #: includes/admin/views/html-bulk-edit-product.php:241 #: includes/admin/views/html-bulk-edit-product.php:260 #: includes/admin/views/html-bulk-edit-product.php:281 #: includes/admin/views/html-bulk-edit-product.php:302 msgid "— No Change —" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:27 #: includes/admin/views/html-bulk-edit-product.php:51 #: includes/admin/views/html-bulk-edit-product.php:123 #: includes/admin/views/html-bulk-edit-product.php:147 #: includes/admin/views/html-bulk-edit-product.php:261 msgid "Change to:" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:28 #: includes/admin/views/html-bulk-edit-product.php:52 msgid "Increase by (fixed amount or %):" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:29 #: includes/admin/views/html-bulk-edit-product.php:53 msgid "Decrease by (fixed amount or %):" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:39 msgid "Enter price (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:45 #: includes/admin/views/html-quick-edit-product.php:40 msgid "Sale" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:54 msgid "Decrease regular price by (fixed amount or %):" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:64 msgid "Enter sale price (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:70 #: includes/admin/views/html-quick-edit-product.php:50 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:21 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:48 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:77 msgid "Tax Status" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:133 msgid "%s (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:141 #: includes/admin/views/html-quick-edit-product.php:109 msgid "L/W/H" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:157 msgid "Length (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:158 msgid "Width (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:159 msgid "Height (%s)" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:180 #: includes/admin/views/html-quick-edit-product.php:138 msgid "Visibility" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:186 #: includes/admin/views/html-quick-edit-product.php:143 msgid "Catalog & search" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:217 #: includes/admin/views/html-quick-edit-product.php:161 msgid "In stock?" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:255 #: includes/admin/views/html-bulk-edit-product.php:271 #: includes/admin/views/html-quick-edit-product.php:186 msgid "Stock Qty" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:276 #: includes/admin/views/html-quick-edit-product.php:196 msgid "Backorders?" msgstr "" #: includes/admin/views/html-bulk-edit-product.php:297 msgid "Sold Individually?" msgstr "" #: includes/admin/views/html-notice-custom.php:12 #: includes/admin/views/html-notice-legacy-shipping.php:11 #: includes/admin/views/html-notice-no-shipping-methods.php:11 #: includes/admin/views/html-notice-simplify-commerce.php:19 #: includes/admin/views/html-notice-template-check.php:13 #: includes/admin/views/html-notice-theme-support.php:12 #: includes/admin/views/html-notice-updated.php:12 msgid "Dismiss" msgstr "" #: includes/admin/views/html-notice-install.php:12 msgid "" "Welcome to WooCommerce – You‘re almost ready " "to start selling :)" msgstr "" #: includes/admin/views/html-notice-install.php:13 msgid "Run the Setup Wizard" msgstr "" #: includes/admin/views/html-notice-install.php:13 msgid "Skip Setup" msgstr "" #: includes/admin/views/html-notice-legacy-shipping.php:13 msgid "New:" msgstr "" #: includes/admin/views/html-notice-legacy-shipping.php:13 msgid "" "a group of regions that can be assigned different shipping methods and " "rates." msgstr "" #: includes/admin/views/html-notice-legacy-shipping.php:14 msgid "" "Legacy shipping methods (Flat Rate, International Flat Rate, Local Pickup " "and Delivery, and Free Shipping) are deprecated but will continue to work " "as normal for now. They will be removed in future versions of " "WooCommerce. We recommend disabling these and setting up new rates " "within shipping zones as soon as possible." msgstr "" #: includes/admin/views/html-notice-legacy-shipping.php:18 #: includes/admin/views/html-notice-no-shipping-methods.php:18 msgid "Setup shipping zones" msgstr "" #: includes/admin/views/html-notice-legacy-shipping.php:20 #: includes/admin/views/html-notice-no-shipping-methods.php:19 msgid "Learn more about shipping zones" msgstr "" #: includes/admin/views/html-notice-no-shipping-methods.php:13 msgid "Add Shipping Methods & Zones" msgstr "" #: includes/admin/views/html-notice-no-shipping-methods.php:14 msgid "" "Shipping is currently enabled, but you haven't added any shipping methods " "to your shipping zones." msgstr "" #: includes/admin/views/html-notice-no-shipping-methods.php:15 msgid "" "Customers will not be able to purchase physical goods from your store until " "a shipping method is available." msgstr "" #: includes/admin/views/html-notice-simplify-commerce.php:21 msgid "" "The Simplify Commerce payment gateway is deprecated " "– Please install our new free Simplify Commerce plugin from " "WordPress.org. Simplify Commerce will be removed from WooCommerce core in a " "future update." msgstr "" #: includes/admin/views/html-notice-simplify-commerce.php:23 msgid "Install our new Simplify Commerce plugin" msgstr "" #: includes/admin/views/html-notice-template-check.php:15 msgid "" "Your theme (%s) contains outdated copies of some WooCommerce " "template files. These files may need updating to ensure they are " "compatible with the current version of WooCommerce. You can see which files " "are affected from the %ssystem status page%s. If in doubt, check with the " "author of the theme." msgstr "" #: includes/admin/views/html-notice-template-check.php:16 msgid "Learn More About Templates" msgstr "" #: includes/admin/views/html-notice-theme-support.php:14 msgid "" "Your theme does not declare WooCommerce support – " "Please read our %sintegration%s guide or check out our %sStorefront%s theme " "which is totally free to download and designed specifically for use with " "WooCommerce." msgstr "" #: includes/admin/views/html-notice-theme-support.php:16 msgid "Read More About Storefront" msgstr "" #: includes/admin/views/html-notice-theme-support.php:17 msgid "Theme Integration Guide" msgstr "" #: includes/admin/views/html-notice-tracking.php:11 msgid "" "Want to help make WooCommerce even more awesome? Allow WooThemes to collect " "non-sensitive diagnostic data and usage information, and get %s discount on " "your next WooThemes purchase. %sFind out more%s." msgstr "" #: includes/admin/views/html-notice-tracking.php:14 msgid "No, do not bother me again" msgstr "" #: includes/admin/views/html-notice-update.php:12 #: includes/admin/views/html-notice-updating.php:12 msgid "WooCommerce Data Update" msgstr "" #: includes/admin/views/html-notice-update.php:12 msgid "We need to update your store's database to the latest version." msgstr "" #: includes/admin/views/html-notice-update.php:13 msgid "Run the updater" msgstr "" #: includes/admin/views/html-notice-update.php:17 msgid "" "It is strongly recommended that you backup your database before proceeding. " "Are you sure you wish to run the updater now?" msgstr "" #: includes/admin/views/html-notice-updated.php:14 msgid "" "WooCommerce data update complete. Thank you for updating to the latest " "version!" msgstr "" #: includes/admin/views/html-notice-updating.php:12 msgid "Your database is being updated in the background." msgstr "" #: includes/admin/views/html-notice-updating.php:12 msgid "Taking a while? Click here to run it now." msgstr "" #: includes/admin/views/html-quick-edit-product.php:35 msgid "Regular Price" msgstr "" #: includes/admin/views/html-quick-edit-product.php:42 msgid "Sale Price" msgstr "" #: includes/admin/views/html-report-by-date.php:30 msgid "Custom:" msgstr "" #: includes/api/class-wc-rest-authentication.php:124 msgid "Consumer Secret is invalid." msgstr "" #: includes/api/class-wc-rest-authentication.php:172 msgid "Consumer Key is invalid." msgstr "" #: includes/api/class-wc-rest-authentication.php:222 msgid "Invalid Signature - failed to sort parameters." msgstr "" #: includes/api/class-wc-rest-authentication.php:241 msgid "Invalid Signature - signature method is invalid." msgstr "" #: includes/api/class-wc-rest-authentication.php:249 msgid "Invalid Signature - provided signature does not match." msgstr "" #: includes/api/class-wc-rest-authentication.php:300 msgid "Invalid timestamp." msgstr "" #: includes/api/class-wc-rest-authentication.php:310 msgid "Invalid nonce - nonce has already been used." msgstr "" #: includes/api/class-wc-rest-authentication.php:374 msgid "The API key provided does not have read permissions." msgstr "" #: includes/api/class-wc-rest-authentication.php:384 msgid "The API key provided does not have write permissions." msgstr "" #: includes/api/class-wc-rest-authentication.php:422 msgid "" "WooCommerce API - Use a consumer key in the username field and a consumer " "secret in the password field." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:70 #: includes/api/class-wc-rest-coupons-controller.php:450 #: includes/api/class-wc-rest-orders-controller.php:1760 msgid "Coupon code." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:108 #: includes/api/class-wc-rest-orders-controller.php:102 #: includes/api/class-wc-rest-product-reviews-controller.php:118 #: includes/api/class-wc-rest-products-controller.php:102 msgid "Whether to bypass trash and force deletion." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:229 msgid "The coupon code cannot be empty." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:249 #: includes/api/legacy/v2/class-wc-api-coupons.php:242 #: includes/api/legacy/v2/class-wc-api-coupons.php:358 #: includes/api/legacy/v3/class-wc-api-coupons.php:242 #: includes/api/legacy/v3/class-wc-api-coupons.php:358 #: includes/cli/class-wc-cli-coupon.php:78 #: includes/cli/class-wc-cli-coupon.php:453 msgid "The coupon code already exists" msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:444 msgid "Unique identifier for the object." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:455 msgid "The date the coupon was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:461 msgid "The date the coupon was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:467 msgid "Coupon description." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:472 msgid "Determines the type of discount that will be applied." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:479 msgid "The amount of discount." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:484 msgid "UTC DateTime when the coupon expires." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:489 msgid "Number of times the coupon has been used already." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:495 msgid "Whether coupon can only be used individually." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:501 msgid "List of product ID's the coupon can be used on." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:509 msgid "List of product ID's the coupon cannot be used on." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:517 msgid "How many times the coupon can be used." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:522 msgid "How many times the coupon can be used per customer." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:527 msgid "Max number of items in the cart the coupon can be applied to." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:532 msgid "Define if can be applied for free shipping." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:538 msgid "List of category ID's the coupon applies to." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:546 msgid "List of category ID's the coupon does not apply to." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:554 msgid "Define if should not apply when have sale items." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:560 msgid "Minimum order amount that needs to be in the cart before coupon applies." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:565 msgid "Maximum order amount allowed when using the coupon." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:570 msgid "List of email addresses that can use this coupon." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:578 msgid "List of user IDs who have used the coupon." msgstr "" #: includes/api/class-wc-rest-coupons-controller.php:601 msgid "Limit result set to resources with a specific code." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:166 msgid "Download file URL." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:172 msgid "Download ID (MD5)." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:178 msgid "Downloadable product ID." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:184 msgid "Downloadable file name." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:190 msgid "Order ID." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:196 #: includes/api/class-wc-rest-orders-controller.php:1163 msgid "Order key." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:202 msgid "Amount of downloads remaining." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:208 msgid "The date when the download access expires, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:214 msgid "File details." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:220 #: includes/api/class-wc-rest-products-controller.php:2017 #: includes/api/class-wc-rest-products-controller.php:2491 msgid "File name." msgstr "" #: includes/api/class-wc-rest-customer-downloads-controller.php:226 #: includes/api/class-wc-rest-products-controller.php:2022 #: includes/api/class-wc-rest-products-controller.php:2496 msgid "File URL." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:58 msgid "New user email address." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:62 msgid "New user username." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:67 msgid "New user password." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:109 msgid "ID to reassign posts to." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:322 #: includes/api/class-wc-rest-tax-classes-controller.php:182 #: includes/api/class-wc-rest-taxes-controller.php:363 msgid "Cannot create existing resource." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:373 #: includes/api/class-wc-rest-customers-controller.php:393 #: includes/api/class-wc-rest-customers-controller.php:452 #: includes/api/class-wc-rest-order-notes-controller.php:272 #: includes/api/class-wc-rest-order-notes-controller.php:305 #: includes/api/class-wc-rest-product-reviews-controller.php:197 #: includes/api/class-wc-rest-tax-classes-controller.php:243 #: includes/api/class-wc-rest-taxes-controller.php:399 #: includes/api/class-wc-rest-taxes-controller.php:419 #: includes/api/class-wc-rest-taxes-controller.php:462 #: includes/api/class-wc-rest-webhook-deliveries.php:154 msgid "Invalid resource id." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:397 msgid "Email address is invalid." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:401 msgid "Username isn't editable." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:447 msgid "Customers do not support trashing." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:457 msgid "Invalid resource id for reassignment." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:630 msgid "The date the customer was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:636 msgid "The date the customer was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:642 msgid "The email address for the customer." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:648 msgid "Customer first name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:656 msgid "Customer last name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:664 msgid "Customer login name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:672 msgid "Customer password." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:677 msgid "Last order data." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:683 msgid "Last order ID." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:689 msgid "UTC DateTime of the customer last order." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:697 msgid "Quantity of orders made by the customer." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:703 msgid "Total amount spent." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:709 msgid "Avatar URL." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:715 msgid "List of billing address data." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:720 #: includes/api/class-wc-rest-customers-controller.php:783 #: includes/api/class-wc-rest-orders-controller.php:1259 #: includes/api/class-wc-rest-orders-controller.php:1322 msgid "First name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:725 #: includes/api/class-wc-rest-customers-controller.php:788 #: includes/api/class-wc-rest-orders-controller.php:1264 #: includes/api/class-wc-rest-orders-controller.php:1327 msgid "Last name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:730 #: includes/api/class-wc-rest-customers-controller.php:793 #: includes/api/class-wc-rest-orders-controller.php:1269 #: includes/api/class-wc-rest-orders-controller.php:1332 msgid "Company name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:735 #: includes/api/class-wc-rest-customers-controller.php:798 #: includes/api/class-wc-rest-orders-controller.php:1274 #: includes/api/class-wc-rest-orders-controller.php:1337 msgid "Address line 1." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:740 #: includes/api/class-wc-rest-customers-controller.php:803 #: includes/api/class-wc-rest-orders-controller.php:1279 #: includes/api/class-wc-rest-orders-controller.php:1342 msgid "Address line 2." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:745 #: includes/api/class-wc-rest-customers-controller.php:808 #: includes/api/class-wc-rest-orders-controller.php:1284 #: includes/api/class-wc-rest-orders-controller.php:1347 #: includes/api/class-wc-rest-taxes-controller.php:596 msgid "City name." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:750 #: includes/api/class-wc-rest-customers-controller.php:813 #: includes/api/class-wc-rest-orders-controller.php:1289 #: includes/api/class-wc-rest-orders-controller.php:1352 msgid "ISO code or name of the state, province or district." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:755 #: includes/api/class-wc-rest-customers-controller.php:818 #: includes/api/class-wc-rest-orders-controller.php:1294 #: includes/api/class-wc-rest-orders-controller.php:1357 msgid "Postal code." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:760 #: includes/api/class-wc-rest-customers-controller.php:823 msgid "ISO code of the country." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:765 #: includes/api/class-wc-rest-orders-controller.php:1304 msgid "Email address." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:771 #: includes/api/class-wc-rest-orders-controller.php:1310 msgid "Phone number." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:778 msgid "List of shipping address data." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:866 #: includes/api/class-wc-rest-taxes-controller.php:666 msgid "Limit result set to specific IDs." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:902 msgid "Limit result set to resources with a specific email." msgstr "" #: includes/api/class-wc-rest-customers-controller.php:908 msgid "Limit result set to resources with a specific role." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:53 #: includes/api/class-wc-rest-order-notes-controller.php:85 #: includes/api/class-wc-rest-order-refunds-controller.php:61 #: includes/api/class-wc-rest-order-refunds-controller.php:83 msgid "The order ID." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:70 msgid "Order note content." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:183 #: includes/api/class-wc-rest-order-refunds-controller.php:128 msgid "Invalid order ID." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:222 #: includes/api/class-wc-rest-order-notes-controller.php:266 #: includes/api/class-wc-rest-order-notes-controller.php:299 msgid "Invalid order id." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:231 msgid "Cannot create order note, please try again." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:293 #: includes/api/class-wc-rest-webhooks-controller.php:312 msgid "Webhooks do not support trashing." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:405 msgid "The date the order note was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:411 msgid "Order note." msgstr "" #: includes/api/class-wc-rest-order-notes-controller.php:416 msgid "" "Shows/define if the note is only for reference or for the customer (the " "user will be notified)." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:134 msgid "Invalid order refund ID." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:288 msgid "Order is invalid" msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:292 msgid "Refund amount must be greater than zero." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:308 msgid "Cannot create order refund, please try again." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:325 msgid "" "An error occurred while attempting to create the refund using the payment " "gateway API." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:369 msgid "The date the order refund was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:375 msgid "Refund amount." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:380 msgid "Reason for refund." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:385 #: includes/api/class-wc-rest-orders-controller.php:1431 msgid "Line items data." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:392 #: includes/api/class-wc-rest-orders-controller.php:1438 #: includes/api/class-wc-rest-orders-controller.php:1572 #: includes/api/class-wc-rest-orders-controller.php:1624 #: includes/api/class-wc-rest-orders-controller.php:1684 #: includes/api/class-wc-rest-orders-controller.php:1754 msgid "Item ID." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:398 #: includes/api/class-wc-rest-orders-controller.php:1444 #: includes/api/class-wc-rest-products-controller.php:1871 #: includes/api/class-wc-rest-report-top-sellers-controller.php:152 msgid "Product name." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:404 #: includes/api/class-wc-rest-orders-controller.php:1450 msgid "Product SKU." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:410 #: includes/api/class-wc-rest-orders-controller.php:1456 #: includes/api/class-wc-rest-report-top-sellers-controller.php:158 msgid "Product ID." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:415 #: includes/api/class-wc-rest-orders-controller.php:1461 msgid "Variation ID, if applicable." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:420 #: includes/api/class-wc-rest-orders-controller.php:1466 msgid "Quantity ordered." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:425 #: includes/api/class-wc-rest-orders-controller.php:1471 msgid "Tax class of product." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:431 #: includes/api/class-wc-rest-orders-controller.php:1477 msgid "Product price." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:437 #: includes/api/class-wc-rest-orders-controller.php:1483 msgid "Line subtotal (before discounts)." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:442 #: includes/api/class-wc-rest-orders-controller.php:1488 msgid "Line subtotal tax (before discounts)." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:447 #: includes/api/class-wc-rest-orders-controller.php:1493 #: includes/api/class-wc-rest-orders-controller.php:1640 #: includes/api/class-wc-rest-orders-controller.php:1705 msgid "Line total (after discounts)." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:452 #: includes/api/class-wc-rest-orders-controller.php:1498 #: includes/api/class-wc-rest-orders-controller.php:1645 #: includes/api/class-wc-rest-orders-controller.php:1710 msgid "Line total tax (after discounts)." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:457 #: includes/api/class-wc-rest-orders-controller.php:1503 #: includes/api/class-wc-rest-orders-controller.php:1651 #: includes/api/class-wc-rest-orders-controller.php:1715 msgid "Line taxes." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:465 #: includes/api/class-wc-rest-orders-controller.php:1511 #: includes/api/class-wc-rest-orders-controller.php:1584 #: includes/api/class-wc-rest-orders-controller.php:1659 #: includes/api/class-wc-rest-orders-controller.php:1723 msgid "Tax rate ID." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:471 #: includes/api/class-wc-rest-orders-controller.php:1517 #: includes/api/class-wc-rest-orders-controller.php:1665 #: includes/api/class-wc-rest-orders-controller.php:1729 msgid "Tax total." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:477 #: includes/api/class-wc-rest-orders-controller.php:1523 #: includes/api/class-wc-rest-orders-controller.php:1735 msgid "Tax subtotal." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:486 #: includes/api/class-wc-rest-orders-controller.php:1532 msgid "Line item meta data." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:494 #: includes/api/class-wc-rest-orders-controller.php:1540 msgid "Meta key." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:500 #: includes/api/class-wc-rest-orders-controller.php:1546 msgid "Meta label." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:506 #: includes/api/class-wc-rest-orders-controller.php:1552 msgid "Meta value." msgstr "" #: includes/api/class-wc-rest-order-refunds-controller.php:533 #: includes/api/class-wc-rest-orders-controller.php:1843 msgid "Number of decimal points to use in each resource." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:501 #: includes/api/class-wc-rest-orders-controller.php:995 msgid "Customer ID is invalid." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:514 msgid "Cannot create order: %s." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:615 msgid "Product ID or SKU is required." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:632 msgid "Product ID or variation ID provided does not match this line item." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:640 msgid "Product is invalid." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:645 msgid "Product quantity must be a positive float." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:650 msgid "Product quantity is required." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:686 msgid "Cannot create line item, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:691 msgid "Cannot update line item, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:707 msgid "Shipping total must be a positive amount." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:713 msgid "Shipping method ID is required." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:721 msgid "Cannot create shipping method, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:742 msgid "Cannot update shipping method, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:760 msgid "Fee name is required." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:776 msgid "Fee tax class is required when fee is taxable." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:790 msgid "Cannot create fee, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:815 msgid "Cannot update fee, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:831 msgid "Coupon discount must be a positive amount." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:837 msgid "Coupon code is required." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:843 msgid "Cannot create coupon, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:860 msgid "Cannot update coupon, try again." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:947 msgid "Order item ID provided is not associated with order." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1151 msgid "Parent order ID." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1156 msgid "Order status." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1169 msgid "Order number." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1175 msgid "Currency the order was created with, in ISO format." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1182 msgid "Version of WooCommerce when the order was made." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1188 msgid "Shows if the prices included tax during checkout." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1194 msgid "The date the order was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1200 msgid "The date the order was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1206 msgid "User ID who owns the order. 0 for guests." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1212 msgid "Total discount amount for the order." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1218 msgid "Total discount tax amount for the order." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1224 msgid "Total shipping amount for the order." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1230 msgid "Total shipping tax amount for the order." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1236 msgid "Sum of line item taxes only." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1242 msgid "Grand total." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1248 msgid "Sum of all taxes." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1254 msgid "Billing address." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1299 #: includes/api/class-wc-rest-orders-controller.php:1362 msgid "Country code in ISO 3166-1 alpha-2 format." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1317 msgid "Shipping address." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1369 msgid "Payment method ID." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1374 msgid "Payment method title." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1379 msgid "" "Define if the order is paid. It will set the status to processing and " "reduce stock items." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1385 msgid "Unique transaction ID." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1390 msgid "Customer's IP address." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1396 msgid "User agent of the customer." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1402 msgid "Shows where the order was created." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1408 msgid "Note left by customer during checkout." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1413 msgid "The date the order was completed, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1419 msgid "The date the order has been paid, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1425 msgid "MD5 hash of cart items to ensure orders are not modified." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1564 msgid "Tax lines data." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1578 msgid "Tax rate code." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1590 msgid "Tax rate label." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1596 msgid "Show if is a compound tax rate." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1602 msgid "Tax total (not including shipping taxes)." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1608 msgid "Shipping tax total." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1617 msgid "Shipping lines data." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1630 msgid "Shipping method name." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1635 msgid "Shipping method ID." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1677 msgid "Fee lines data." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1690 msgid "Fee name." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1695 msgid "Tax class of fee." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1700 msgid "Tax status of fee." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1747 msgid "Coupons line data." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1765 msgid "Discount total." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1770 msgid "Discount total tax." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1779 msgid "List of refunds." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1787 msgid "Refund ID." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1793 msgid "Refund reason." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1799 msgid "Refund total." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1823 msgid "Limit result set to orders assigned a specific status." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1830 msgid "Limit result set to orders assigned a specific customer." msgstr "" #: includes/api/class-wc-rest-orders-controller.php:1836 msgid "Limit result set to orders assigned a specific product." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:46 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:78 #: includes/api/class-wc-rest-product-attribute-terms-controller.php:114 msgid "Unique identifier for the attribute of the terms." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:201 msgid "Term name." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:209 #: includes/api/class-wc-rest-product-attributes-controller.php:548 #: includes/api/class-wc-rest-product-categories-controller.php:182 #: includes/api/class-wc-rest-product-shipping-classes-controller.php:108 #: includes/api/class-wc-rest-product-tags-controller.php:108 msgid "An alphanumeric identifier for the resource unique to its type." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:217 #: includes/api/class-wc-rest-product-categories-controller.php:195 #: includes/api/class-wc-rest-product-shipping-classes-controller.php:116 #: includes/api/class-wc-rest-product-tags-controller.php:116 msgid "HTML description of the resource." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:225 #: includes/api/class-wc-rest-product-categories-controller.php:250 msgid "Menu order, used to custom sort the resource." msgstr "" #: includes/api/class-wc-rest-product-attribute-terms-controller.php:230 #: includes/api/class-wc-rest-product-categories-controller.php:255 #: includes/api/class-wc-rest-product-shipping-classes-controller.php:124 #: includes/api/class-wc-rest-product-tags-controller.php:124 msgid "Number of published products for the resource." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:372 #: includes/api/legacy/v2/class-wc-api-products.php:2262 #: includes/api/legacy/v3/class-wc-api-products.php:2844 msgid "Could not edit the attribute" msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:540 #: includes/api/class-wc-rest-products-controller.php:2331 #: includes/api/class-wc-rest-products-controller.php:2373 #: includes/api/class-wc-rest-products-controller.php:2659 msgid "Attribute name." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:556 msgid "Type of attribute." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:563 msgid "Default sort order." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:570 msgid "Enable/Disable attribute archives." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:644 msgid "Slug \"%s\" is too long (28 characters max)." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:646 msgid "Slug \"%s\" is not allowed because it is a reserved term." msgstr "" #: includes/api/class-wc-rest-product-attributes-controller.php:648 msgid "Slug \"%s\" is already in use." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:174 #: includes/api/class-wc-rest-products-controller.php:2229 msgid "Category name." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:190 msgid "The id for the parent of the resource." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:203 msgid "Category archive display type." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:210 msgid "Image data." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:215 #: includes/api/class-wc-rest-products-controller.php:2278 #: includes/api/class-wc-rest-products-controller.php:2607 msgid "Image ID." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:220 #: includes/api/class-wc-rest-products-controller.php:2283 #: includes/api/class-wc-rest-products-controller.php:2612 msgid "The date the image was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:226 #: includes/api/class-wc-rest-products-controller.php:2289 #: includes/api/class-wc-rest-products-controller.php:2618 msgid "The date the image was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:232 #: includes/api/class-wc-rest-products-controller.php:2295 #: includes/api/class-wc-rest-products-controller.php:2624 msgid "Image URL." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:238 #: includes/api/class-wc-rest-products-controller.php:2301 #: includes/api/class-wc-rest-products-controller.php:2630 msgid "Image name." msgstr "" #: includes/api/class-wc-rest-product-categories-controller.php:243 #: includes/api/class-wc-rest-products-controller.php:2306 #: includes/api/class-wc-rest-products-controller.php:2635 msgid "Image alternative text." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:46 #: includes/api/class-wc-rest-product-reviews-controller.php:88 msgid "Unique identifier for the variable product." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:50 msgid "Unique identifier for the variation." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:68 msgid "Review content." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:73 msgid "Name of the reviewer." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:78 msgid "Email of the reviewer." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:166 #: includes/api/class-wc-rest-product-reviews-controller.php:191 msgid "Invalid product id." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:286 msgid "The date the review was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:292 msgid "Review rating (0 to 5)." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:298 msgid "Reviewer name." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:304 msgid "Reviewer email." msgstr "" #: includes/api/class-wc-rest-product-reviews-controller.php:310 msgid "Shows if the reviewer bought the product or not." msgstr "" #: includes/api/class-wc-rest-product-shipping-classes-controller.php:100 msgid "Shipping class name." msgstr "" #: includes/api/class-wc-rest-product-tags-controller.php:100 #: includes/api/class-wc-rest-products-controller.php:2256 msgid "Tag name." msgstr "" #: includes/api/class-wc-rest-products-controller.php:322 #: includes/api/class-wc-rest-products-controller.php:323 #: includes/api/legacy/v1/class-wc-api-products.php:464 #: includes/api/legacy/v1/class-wc-api-products.php:465 #: includes/api/legacy/v2/class-wc-api-products.php:1736 #: includes/api/legacy/v2/class-wc-api-products.php:1737 #: includes/api/legacy/v3/class-wc-api-products.php:2258 #: includes/api/legacy/v3/class-wc-api-products.php:2259 #: includes/cli/class-wc-cli-product.php:921 #: includes/cli/class-wc-cli-product.php:922 #: includes/wc-product-functions.php:302 #: templates/single-product/product-image.php:47 msgid "Placeholder" msgstr "" #: includes/api/class-wc-rest-products-controller.php:775 msgid "#%s is an invalid image ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:976 #: includes/api/class-wc-rest-products-controller.php:1384 msgid "The SKU already exists on another product." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1876 msgid "Product slug." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1881 msgid "Product URL." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1888 msgid "The date the product was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1894 msgid "The date the product was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1900 msgid "Product type." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1907 msgid "Product status (post status)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1914 msgid "Featured product." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1920 msgid "Catalog visibility." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1927 msgid "Product description." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1932 msgid "Product short description." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1937 #: includes/api/class-wc-rest-products-controller.php:2418 msgid "Unique identifier." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1942 msgid "Current product price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1948 msgid "Product regular price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1953 msgid "Product sale price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1958 #: includes/api/class-wc-rest-products-controller.php:2439 msgid "Start date of sale price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1963 #: includes/api/class-wc-rest-products-controller.php:2444 msgid "End data of sale price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1968 msgid "Price formatted in HTML." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1974 msgid "Shows if the product is on sale." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1980 msgid "Shows if the product can be bought." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1986 msgid "Amount of sales." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1992 msgid "If the product is virtual." msgstr "" #: includes/api/class-wc-rest-products-controller.php:1998 msgid "If the product is downloadable." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2004 #: includes/api/class-wc-rest-products-controller.php:2478 msgid "List of downloadable files." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2011 #: includes/api/class-wc-rest-products-controller.php:2485 msgid "File MD5 hash." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2030 msgid "Amount of times the product can be downloaded." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2036 msgid "Number of days that the customer has up to be able to download the product." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2042 msgid "Download type, this controls the schema on the front-end." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2049 msgid "Product external URL. Only for external products." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2055 msgid "Product external button text. Only for external products." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2060 #: includes/api/class-wc-rest-products-controller.php:2516 msgid "Tax status." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2067 #: includes/api/class-wc-rest-products-controller.php:2523 #: includes/api/class-wc-rest-taxes-controller.php:634 msgid "Tax class." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2072 msgid "Stock management at product level." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2078 #: includes/api/class-wc-rest-products-controller.php:2534 msgid "Stock quantity." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2089 #: includes/api/class-wc-rest-products-controller.php:2545 msgid "If managing stock, this controls if backorders are allowed." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2096 #: includes/api/class-wc-rest-products-controller.php:2552 msgid "Shows if backorders are allowed." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2102 msgid "Shows if the product is on backordered." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2108 msgid "Allow one item to be bought in a single order." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2114 msgid "Product weight (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2119 msgid "Product dimensions." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2124 msgid "Product length (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2129 msgid "Product width (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2134 msgid "Product height (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2141 msgid "Shows if the product need to be shipped." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2147 msgid "Shows whether or not the product shipping is taxable." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2153 #: includes/api/class-wc-rest-products-controller.php:2591 msgid "Shipping class slug." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2158 #: includes/api/class-wc-rest-products-controller.php:2596 msgid "Shipping class ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2164 msgid "Allow reviews." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2170 msgid "Reviews average rating." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2176 msgid "Amount of reviews that the product have." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2182 msgid "List of related products IDs." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2191 msgid "List of up-sell products IDs." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2199 msgid "List of cross-sell products IDs." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2207 msgid "Product parent ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2212 msgid "Optional note to send the customer after purchase." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2217 msgid "List of categories." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2224 msgid "Category ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2235 msgid "Category slug." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2244 msgid "List of tags." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2251 msgid "Tag ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2262 msgid "Tag slug." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2271 msgid "List of images." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2311 #: includes/api/class-wc-rest-products-controller.php:2640 msgid "Image position. 0 means that the image is featured." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2319 #: includes/api/class-wc-rest-products-controller.php:2647 msgid "List of attributes." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2326 #: includes/api/class-wc-rest-products-controller.php:2368 #: includes/api/class-wc-rest-products-controller.php:2654 msgid "Attribute ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2336 msgid "Attribute position." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2341 msgid "" "Define if the attribute is visible on the \"Additional Information\" tab in " "the product's page." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2347 msgid "Define if the attribute can be used as variation." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2353 msgid "List of available term names of the attribute." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2361 msgid "Defaults variation attributes." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2378 #: includes/api/class-wc-rest-products-controller.php:2664 msgid "Selected attribute term name." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2386 msgid "List of variations." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2393 msgid "Variation ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2399 msgid "The date the variation was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2405 msgid "The date the variation was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2411 msgid "Variation URL." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2423 msgid "Current variation price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2429 msgid "Variation regular price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2434 msgid "Variation sale price." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2449 msgid "Shows if the variation is on sale." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2455 msgid "Shows if the variation can be bought." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2461 msgid "If the variation is visible." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2466 msgid "If the variation is virtual." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2472 msgid "If the variation is downloadable." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2504 msgid "Amount of times the variation can be downloaded." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2510 msgid "" "Number of days that the customer has up to be able to download the " "variation." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2528 msgid "Stock management at variation level." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2539 msgid "" "Controls whether or not the variation is listed as \"in stock\" or \"out of " "stock\" on the frontend." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2558 msgid "Shows if the variation is on backordered." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2564 msgid "Variation weight (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2569 msgid "Variation dimensions." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2574 msgid "Variation length (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2579 msgid "Variation width (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2584 msgid "Variation height (%s)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2602 msgid "Variation image data." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2675 msgid "List of grouped products ID." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2684 msgid "Menu order, used to custom sort products." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2703 msgid "Limit result set to products with a specific slug." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2709 msgid "Limit result set to products assigned a specific status." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2716 msgid "Limit result set to products assigned a specific type." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2723 msgid "Limit result set to products assigned a specific category." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2729 msgid "Limit result set to products assigned a specific tag." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2735 msgid "Limit result set to products assigned a specific shipping class." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2741 msgid "Limit result set to products with a specific attribute." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2747 msgid "" "Limit result set to products with a specific attribute term (required an " "assigned attribute)." msgstr "" #: includes/api/class-wc-rest-products-controller.php:2753 msgid "Limit result set to products with a specific SKU." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:293 msgid "Gross sales in the period." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:299 msgid "Net sales in the period." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:305 msgid "Average net daily sales." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:311 msgid "Total of orders placed." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:317 msgid "Total of items purchased." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:323 msgid "Total charged for taxes." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:329 msgid "Total charged for shipping." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:335 msgid "Total of refunded orders." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:341 msgid "Total of coupons used." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:347 msgid "Group type." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:353 msgid "Totals." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:376 msgid "Report period." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:383 msgid "" "Return sales for a specific start date, the date need to be in the %s " "format." msgstr "" #: includes/api/class-wc-rest-report-sales-controller.php:390 msgid "Return sales for a specific end date, the date need to be in the %s format." msgstr "" #: includes/api/class-wc-rest-report-top-sellers-controller.php:164 msgid "Total number of purchases." msgstr "" #: includes/api/class-wc-rest-reports-controller.php:79 msgid "List of sales reports." msgstr "" #: includes/api/class-wc-rest-reports-controller.php:83 msgid "List of top sellers products." msgstr "" #: includes/api/class-wc-rest-reports-controller.php:147 msgid "An alphanumeric identifier for the resource." msgstr "" #: includes/api/class-wc-rest-reports-controller.php:153 msgid "A human-readable description of the resource." msgstr "" #: includes/api/class-wc-rest-tax-classes-controller.php:62 msgid "Unique slug for the resource." msgstr "" #: includes/api/class-wc-rest-tax-classes-controller.php:136 #: includes/api/legacy/v3/class-wc-api-taxes.php:534 #: includes/cli/class-wc-cli-tax.php:434 msgid "Standard Rate" msgstr "" #: includes/api/class-wc-rest-tax-classes-controller.php:223 #: includes/api/class-wc-rest-taxes-controller.php:456 msgid "Taxes do not support trashing." msgstr "" #: includes/api/class-wc-rest-tax-classes-controller.php:338 msgid "Tax class name." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:581 msgid "Country ISO 3166 code." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:586 msgid "State code." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:591 msgid "Postcode/ZIP." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:601 msgid "Tax rate." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:606 msgid "Tax rate name." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:611 msgid "Tax priority." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:617 msgid "Whether or not this is a compound rate." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:623 msgid "Whether or not this tax rate also gets applied to shipping." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:629 msgid "Indicates the order that will appear in queries." msgstr "" #: includes/api/class-wc-rest-taxes-controller.php:700 msgid "Sort by tax class." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:46 #: includes/api/class-wc-rest-webhook-deliveries.php:62 msgid "Unique identifier for the webhook." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:122 #: includes/api/class-wc-rest-webhook-deliveries.php:148 msgid "Invalid webhook id." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:240 msgid "The delivery duration, in seconds." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:246 msgid "" "A friendly summary of the response including the HTTP response code, " "message, and body." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:252 #: includes/api/class-wc-rest-webhook-deliveries.php:259 msgid "The URL where the webhook was delivered." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:266 msgid "Request headers." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:275 msgid "Request body." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:281 msgid "The HTTP response code from the receiving server." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:287 msgid "The HTTP response message from the receiving server." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:293 msgid "Array of the response headers from the receiving server." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:302 msgid "The response body from the receiving server." msgstr "" #: includes/api/class-wc-rest-webhook-deliveries.php:308 msgid "The date the webhook delivery was logged, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:72 #: includes/api/class-wc-rest-webhooks-controller.php:502 msgid "Webhook topic." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:77 msgid "Webhook delivery URL." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:82 msgid "Webhook secret." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:149 msgid "Webhook topic is required and must be valid." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:154 #: includes/api/class-wc-rest-webhooks-controller.php:249 msgid "Webhook delivery URL must be a valid URL starting with http:// or https://." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:240 msgid "Webhook topic must be valid." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:487 msgid "A friendly name for the webhook." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:492 msgid "Webhook status." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:507 msgid "Webhook resource." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:513 msgid "Webhook event." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:519 msgid "WooCommerce action names associated with the webhook." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:528 msgid "The URL where the webhook payload is delivered." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:535 msgid "" "Secret key used to generate a hash of the delivered webhook and provided in " "the request headers. This will default is a MD5 hash from the current " "user's ID|username if not provided." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:540 msgid "The date the webhook was created, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:546 msgid "The date the webhook was last modified, in the site's timezone." msgstr "" #: includes/api/class-wc-rest-webhooks-controller.php:567 msgid "Limit result set to webhooks assigned a specific status." msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:93 #: includes/api/legacy/v2/class-wc-api-authentication.php:93 msgid "Consumer Key is missing" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:109 #: includes/api/legacy/v2/class-wc-api-authentication.php:109 msgid "Consumer Secret is missing" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:115 #: includes/api/legacy/v2/class-wc-api-authentication.php:115 #: includes/api/legacy/v3/class-wc-api-authentication.php:83 #: includes/api/legacy/v3/class-wc-api-authentication.php:115 msgid "Consumer Secret is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:148 #: includes/api/legacy/v2/class-wc-api-authentication.php:148 #: includes/api/legacy/v3/class-wc-api-authentication.php:145 msgid "%s parameter is missing" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:183 #: includes/api/legacy/v2/class-wc-api-authentication.php:183 #: includes/api/legacy/v3/class-wc-api-authentication.php:180 msgid "Consumer Key is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:201 #: includes/api/legacy/v2/class-wc-api-authentication.php:201 #: includes/api/legacy/v3/class-wc-api-authentication.php:198 msgid "API user is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:251 #: includes/api/legacy/v2/class-wc-api-authentication.php:251 #: includes/api/legacy/v3/class-wc-api-authentication.php:242 msgid "Invalid Signature - failed to sort parameters" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:265 #: includes/api/legacy/v2/class-wc-api-authentication.php:265 #: includes/api/legacy/v3/class-wc-api-authentication.php:262 msgid "Invalid Signature - signature method is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:273 #: includes/api/legacy/v2/class-wc-api-authentication.php:273 #: includes/api/legacy/v3/class-wc-api-authentication.php:271 msgid "Invalid Signature - provided signature does not match" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:331 #: includes/api/legacy/v2/class-wc-api-authentication.php:331 #: includes/api/legacy/v3/class-wc-api-authentication.php:336 msgid "Invalid timestamp" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:341 #: includes/api/legacy/v2/class-wc-api-authentication.php:341 #: includes/api/legacy/v3/class-wc-api-authentication.php:346 msgid "Invalid nonce - nonce has already been used" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:376 #: includes/api/legacy/v2/class-wc-api-authentication.php:376 #: includes/api/legacy/v3/class-wc-api-authentication.php:381 msgid "The API key provided does not have read permissions" msgstr "" #: includes/api/legacy/v1/class-wc-api-authentication.php:385 #: includes/api/legacy/v2/class-wc-api-authentication.php:385 #: includes/api/legacy/v3/class-wc-api-authentication.php:390 msgid "The API key provided does not have write permissions" msgstr "" #: includes/api/legacy/v1/class-wc-api-coupons.php:109 #: includes/api/legacy/v2/class-wc-api-coupons.php:120 #: includes/api/legacy/v3/class-wc-api-coupons.php:120 msgid "Invalid coupon ID" msgstr "" #: includes/api/legacy/v1/class-wc-api-coupons.php:153 #: includes/api/legacy/v2/class-wc-api-coupons.php:166 #: includes/api/legacy/v3/class-wc-api-coupons.php:166 msgid "You do not have permission to read the coupons count" msgstr "" #: includes/api/legacy/v1/class-wc-api-coupons.php:172 #: includes/api/legacy/v2/class-wc-api-coupons.php:192 #: includes/api/legacy/v3/class-wc-api-coupons.php:192 msgid "Invalid coupon code" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:195 #: includes/api/legacy/v2/class-wc-api-customers.php:241 #: includes/api/legacy/v3/class-wc-api-customers.php:242 msgid "You do not have permission to read the customers count" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:211 #: includes/api/legacy/v2/class-wc-api-customers.php:354 #: includes/api/legacy/v3/class-wc-api-customers.php:355 msgid "You do not have permission to create this customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:461 #: includes/api/legacy/v2/class-wc-api-customers.php:728 #: includes/api/legacy/v3/class-wc-api-customers.php:717 msgid "Invalid customer ID" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:467 #: includes/api/legacy/v2/class-wc-api-customers.php:735 #: includes/api/legacy/v3/class-wc-api-customers.php:724 msgid "Invalid customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:474 #: includes/api/legacy/v2/class-wc-api-customers.php:743 #: includes/api/legacy/v3/class-wc-api-customers.php:732 msgid "You do not have permission to read this customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:479 #: includes/api/legacy/v2/class-wc-api-customers.php:749 #: includes/api/legacy/v3/class-wc-api-customers.php:738 msgid "You do not have permission to edit this customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-customers.php:484 #: includes/api/legacy/v2/class-wc-api-customers.php:755 #: includes/api/legacy/v3/class-wc-api-customers.php:744 msgid "You do not have permission to delete this customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-json-handler.php:59 #: includes/api/legacy/v2/class-wc-api-json-handler.php:58 #: includes/api/legacy/v3/class-wc-api-json-handler.php:58 msgid "JSONP support is disabled on this site" msgstr "" #: includes/api/legacy/v1/class-wc-api-json-handler.php:67 #: includes/api/legacy/v2/class-wc-api-json-handler.php:66 #: includes/api/legacy/v3/class-wc-api-json-handler.php:66 msgid "The JSONP callback function is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-orders.php:258 #: includes/api/legacy/v2/class-wc-api-orders.php:318 #: includes/api/legacy/v3/class-wc-api-orders.php:350 msgid "You do not have permission to read the orders count" msgstr "" #: includes/api/legacy/v1/class-wc-api-products.php:143 #: includes/api/legacy/v2/class-wc-api-products.php:183 #: includes/api/legacy/v3/class-wc-api-products.php:228 msgid "You do not have permission to read the products count" msgstr "" #: includes/api/legacy/v1/class-wc-api-reports.php:471 #: includes/api/legacy/v2/class-wc-api-reports.php:321 #: includes/api/legacy/v3/class-wc-api-reports.php:321 msgid "You do not have permission to read this report" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:74 #: includes/api/legacy/v2/class-wc-api-resource.php:85 #: includes/api/legacy/v3/class-wc-api-resource.php:85 msgid "Invalid %s ID" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:86 #: includes/api/legacy/v2/class-wc-api-resource.php:102 #: includes/api/legacy/v3/class-wc-api-resource.php:102 msgid "Invalid %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:93 #: includes/api/legacy/v2/class-wc-api-resource.php:110 #: includes/api/legacy/v3/class-wc-api-resource.php:110 msgid "You do not have permission to read this %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:98 #: includes/api/legacy/v2/class-wc-api-resource.php:115 #: includes/api/legacy/v3/class-wc-api-resource.php:115 msgid "You do not have permission to edit this %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:103 #: includes/api/legacy/v2/class-wc-api-resource.php:120 #: includes/api/legacy/v3/class-wc-api-resource.php:120 msgid "You do not have permission to delete this %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:305 #: includes/api/legacy/v2/class-wc-api-resource.php:366 #: includes/api/legacy/v3/class-wc-api-resource.php:366 msgid "Permanently deleted customer" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:307 #: includes/api/legacy/v2/class-wc-api-resource.php:368 #: includes/api/legacy/v3/class-wc-api-resource.php:368 msgid "The customer cannot be deleted" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:316 #: includes/api/legacy/v2/class-wc-api-products.php:437 #: includes/api/legacy/v2/class-wc-api-resource.php:378 #: includes/api/legacy/v3/class-wc-api-products.php:492 #: includes/api/legacy/v3/class-wc-api-products.php:3174 #: includes/api/legacy/v3/class-wc-api-resource.php:377 msgid "This %s cannot be deleted" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:319 #: includes/api/legacy/v2/class-wc-api-products.php:446 #: includes/api/legacy/v2/class-wc-api-resource.php:382 #: includes/api/legacy/v3/class-wc-api-products.php:501 #: includes/api/legacy/v3/class-wc-api-resource.php:380 msgid "Permanently deleted %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-resource.php:325 #: includes/api/legacy/v2/class-wc-api-products.php:450 #: includes/api/legacy/v2/class-wc-api-products.php:2329 #: includes/api/legacy/v2/class-wc-api-resource.php:386 #: includes/api/legacy/v3/class-wc-api-products.php:505 #: includes/api/legacy/v3/class-wc-api-products.php:845 #: includes/api/legacy/v3/class-wc-api-products.php:1033 #: includes/api/legacy/v3/class-wc-api-products.php:2913 #: includes/api/legacy/v3/class-wc-api-products.php:3181 #: includes/api/legacy/v3/class-wc-api-products.php:3487 #: includes/api/legacy/v3/class-wc-api-resource.php:386 #: includes/api/legacy/v3/class-wc-api-taxes.php:354 #: includes/api/legacy/v3/class-wc-api-taxes.php:665 msgid "Deleted %s" msgstr "" #: includes/api/legacy/v1/class-wc-api-server.php:170 #: includes/api/legacy/v2/class-wc-api-server.php:164 #: includes/api/legacy/v3/class-wc-api-server.php:164 msgid "Invalid authentication method" msgstr "" #: includes/api/legacy/v1/class-wc-api-server.php:321 #: includes/api/legacy/v2/class-wc-api-server.php:318 #: includes/api/legacy/v3/class-wc-api-server.php:318 msgid "Unsupported request method" msgstr "" #: includes/api/legacy/v1/class-wc-api-server.php:338 #: includes/api/legacy/v2/class-wc-api-server.php:337 #: includes/api/legacy/v3/class-wc-api-server.php:337 msgid "The handler for the route is invalid" msgstr "" #: includes/api/legacy/v1/class-wc-api-server.php:374 #: includes/api/legacy/v2/class-wc-api-server.php:374 #: includes/api/legacy/v3/class-wc-api-server.php:374 msgid "No route was found matching the URL and request method" msgstr "" #: includes/api/legacy/v1/class-wc-api-server.php:409 #: includes/api/legacy/v2/class-wc-api-coupons.php:227 #: includes/api/legacy/v2/class-wc-api-customers.php:361 #: includes/api/legacy/v2/class-wc-api-products.php:224 #: includes/api/legacy/v2/class-wc-api-products.php:2091 #: includes/api/legacy/v2/class-wc-api-server.php:427 #: includes/api/legacy/v3/class-wc-api-coupons.php:227 #: includes/api/legacy/v3/class-wc-api-customers.php:362 #: includes/api/legacy/v3/class-wc-api-products.php:269 #: includes/api/legacy/v3/class-wc-api-products.php:2672 #: includes/api/legacy/v3/class-wc-api-products.php:3059 #: includes/api/legacy/v3/class-wc-api-server.php:427 #: includes/api/legacy/v3/class-wc-api-taxes.php:575 #: includes/class-wc-auth.php:176 includes/cli/class-wc-cli-coupon.php:63 #: includes/cli/class-wc-cli-product.php:154 #: includes/cli/class-wc-cli-tax.php:130 msgid "Missing parameter %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:213 #: includes/api/legacy/v2/class-wc-api-customers.php:347 #: includes/api/legacy/v2/class-wc-api-orders.php:384 #: includes/api/legacy/v2/class-wc-api-orders.php:1285 #: includes/api/legacy/v2/class-wc-api-orders.php:1574 #: includes/api/legacy/v2/class-wc-api-products.php:210 #: includes/api/legacy/v2/class-wc-api-products.php:2127 #: includes/api/legacy/v2/class-wc-api-webhooks.php:169 #: includes/api/legacy/v3/class-wc-api-coupons.php:213 #: includes/api/legacy/v3/class-wc-api-customers.php:348 #: includes/api/legacy/v3/class-wc-api-orders.php:416 #: includes/api/legacy/v3/class-wc-api-orders.php:1330 #: includes/api/legacy/v3/class-wc-api-orders.php:1619 #: includes/api/legacy/v3/class-wc-api-products.php:255 #: includes/api/legacy/v3/class-wc-api-products.php:681 #: includes/api/legacy/v3/class-wc-api-products.php:934 #: includes/api/legacy/v3/class-wc-api-products.php:2708 #: includes/api/legacy/v3/class-wc-api-products.php:3039 #: includes/api/legacy/v3/class-wc-api-products.php:3373 #: includes/api/legacy/v3/class-wc-api-taxes.php:184 #: includes/api/legacy/v3/class-wc-api-taxes.php:564 #: includes/api/legacy/v3/class-wc-api-webhooks.php:169 msgid "No %1$s data specified to create %1$s" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:220 #: includes/api/legacy/v3/class-wc-api-coupons.php:220 msgid "You do not have permission to create coupons" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:270 #: includes/api/legacy/v2/class-wc-api-coupons.php:379 #: includes/api/legacy/v3/class-wc-api-coupons.php:270 #: includes/api/legacy/v3/class-wc-api-coupons.php:379 #: includes/cli/class-wc-cli-coupon.php:106 #: includes/cli/class-wc-cli-coupon.php:465 msgid "Invalid coupon type - the coupon type must be any of these: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:329 #: includes/api/legacy/v2/class-wc-api-customers.php:402 #: includes/api/legacy/v2/class-wc-api-orders.php:521 #: includes/api/legacy/v2/class-wc-api-orders.php:1342 #: includes/api/legacy/v2/class-wc-api-orders.php:1651 #: includes/api/legacy/v2/class-wc-api-products.php:312 #: includes/api/legacy/v2/class-wc-api-products.php:2208 #: includes/api/legacy/v2/class-wc-api-webhooks.php:245 #: includes/api/legacy/v3/class-wc-api-coupons.php:329 #: includes/api/legacy/v3/class-wc-api-customers.php:403 #: includes/api/legacy/v3/class-wc-api-orders.php:558 #: includes/api/legacy/v3/class-wc-api-orders.php:1387 #: includes/api/legacy/v3/class-wc-api-orders.php:1696 #: includes/api/legacy/v3/class-wc-api-products.php:362 #: includes/api/legacy/v3/class-wc-api-products.php:758 #: includes/api/legacy/v3/class-wc-api-products.php:979 #: includes/api/legacy/v3/class-wc-api-products.php:2790 #: includes/api/legacy/v3/class-wc-api-products.php:3102 #: includes/api/legacy/v3/class-wc-api-products.php:3431 #: includes/api/legacy/v3/class-wc-api-taxes.php:254 #: includes/api/legacy/v3/class-wc-api-webhooks.php:245 msgid "No %1$s data specified to edit %1$s" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:364 #: includes/api/legacy/v2/class-wc-api-coupons.php:372 #: includes/api/legacy/v3/class-wc-api-coupons.php:364 #: includes/api/legacy/v3/class-wc-api-coupons.php:372 #: includes/cli/class-wc-cli-coupon.php:459 msgid "Failed to update coupon" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:526 #: includes/api/legacy/v2/class-wc-api-customers.php:791 #: includes/api/legacy/v2/class-wc-api-orders.php:1764 #: includes/api/legacy/v2/class-wc-api-products.php:2395 #: includes/api/legacy/v3/class-wc-api-coupons.php:526 #: includes/api/legacy/v3/class-wc-api-customers.php:780 #: includes/api/legacy/v3/class-wc-api-orders.php:1809 #: includes/api/legacy/v3/class-wc-api-products.php:3223 #: includes/api/legacy/v3/class-wc-api-taxes.php:457 msgid "No %1$s data specified to create/edit %1$s" msgstr "" #: includes/api/legacy/v2/class-wc-api-coupons.php:534 #: includes/api/legacy/v2/class-wc-api-customers.php:799 #: includes/api/legacy/v2/class-wc-api-orders.php:1772 #: includes/api/legacy/v2/class-wc-api-products.php:2403 #: includes/api/legacy/v3/class-wc-api-coupons.php:534 #: includes/api/legacy/v3/class-wc-api-customers.php:788 #: includes/api/legacy/v3/class-wc-api-orders.php:1817 #: includes/api/legacy/v3/class-wc-api-products.php:3231 #: includes/api/legacy/v3/class-wc-api-taxes.php:465 msgid "Unable to accept more than %s items for this request" msgstr "" #: includes/api/legacy/v2/class-wc-api-customers.php:219 #: includes/api/legacy/v2/class-wc-api-customers.php:222 #: includes/api/legacy/v3/class-wc-api-customers.php:220 #: includes/api/legacy/v3/class-wc-api-customers.php:223 msgid "Invalid customer Email" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:391 #: includes/api/legacy/v3/class-wc-api-orders.php:423 msgid "You do not have permission to create orders" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:407 #: includes/api/legacy/v2/class-wc-api-orders.php:552 #: includes/api/legacy/v3/class-wc-api-orders.php:439 #: includes/api/legacy/v3/class-wc-api-orders.php:589 #: includes/cli/class-wc-cli-order.php:114 #: includes/cli/class-wc-cli-order.php:450 msgid "Customer ID is invalid" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:417 #: includes/api/legacy/v3/class-wc-api-orders.php:449 #: includes/cli/class-wc-cli-order.php:122 msgid "Cannot create order: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:451 #: includes/api/legacy/v3/class-wc-api-orders.php:488 #: includes/cli/class-wc-cli-order.php:151 msgid "Payment method ID and title are required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:467 #: includes/api/legacy/v2/class-wc-api-orders.php:617 #: includes/api/legacy/v3/class-wc-api-orders.php:504 #: includes/api/legacy/v3/class-wc-api-orders.php:653 #: includes/cli/class-wc-cli-order.php:166 #: includes/cli/class-wc-cli-order.php:521 msgid "Provided order currency is invalid" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:538 #: includes/api/legacy/v2/class-wc-api-orders.php:1587 #: includes/api/legacy/v3/class-wc-api-orders.php:575 #: includes/api/legacy/v3/class-wc-api-orders.php:1632 #: includes/cli/class-wc-cli-order.php:429 msgid "Order ID is invalid" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:842 #: includes/api/legacy/v3/class-wc-api-orders.php:884 #: includes/cli/class-wc-cli-order.php:891 msgid "Order item ID provided is not associated with order" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:865 #: includes/api/legacy/v3/class-wc-api-orders.php:907 #: includes/cli/class-wc-cli-order.php:913 msgid "Product ID or SKU is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:875 #: includes/api/legacy/v3/class-wc-api-orders.php:917 #: includes/cli/class-wc-cli-order.php:923 msgid "Product ID provided does not match this line item" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:890 #: includes/api/legacy/v3/class-wc-api-orders.php:932 #: includes/cli/class-wc-cli-order.php:938 msgid "The product variation is invalid" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:901 #: includes/api/legacy/v3/class-wc-api-orders.php:943 #: includes/cli/class-wc-cli-order.php:949 msgid "Product is invalid" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:906 #: includes/api/legacy/v3/class-wc-api-orders.php:948 #: includes/cli/class-wc-cli-order.php:954 msgid "Product quantity must be a positive float" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:911 #: includes/api/legacy/v3/class-wc-api-orders.php:953 #: includes/cli/class-wc-cli-order.php:959 msgid "Product quantity is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:944 #: includes/api/legacy/v3/class-wc-api-orders.php:988 #: includes/cli/class-wc-cli-order.php:996 msgid "Cannot create line item, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:952 #: includes/api/legacy/v3/class-wc-api-orders.php:996 #: includes/cli/class-wc-cli-order.php:1004 msgid "Cannot update line item, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1020 #: includes/api/legacy/v3/class-wc-api-orders.php:1065 #: includes/cli/class-wc-cli-order.php:1078 msgid "Shipping total must be a positive amount" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1027 #: includes/api/legacy/v3/class-wc-api-orders.php:1072 #: includes/cli/class-wc-cli-order.php:1085 msgid "Shipping method ID is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1035 #: includes/api/legacy/v3/class-wc-api-orders.php:1080 #: includes/cli/class-wc-cli-order.php:1093 msgid "Cannot create shipping method, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1057 #: includes/api/legacy/v3/class-wc-api-orders.php:1102 #: includes/cli/class-wc-cli-order.php:1115 msgid "Cannot update shipping method, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1077 #: includes/api/legacy/v3/class-wc-api-orders.php:1122 #: includes/cli/class-wc-cli-order.php:1135 msgid "Fee title is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1093 #: includes/api/legacy/v3/class-wc-api-orders.php:1138 #: includes/cli/class-wc-cli-order.php:1151 msgid "Fee tax class is required when fee is taxable" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1112 #: includes/api/legacy/v3/class-wc-api-orders.php:1157 #: includes/cli/class-wc-cli-order.php:1170 msgid "Cannot create fee, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1138 #: includes/api/legacy/v3/class-wc-api-orders.php:1183 #: includes/cli/class-wc-cli-order.php:1196 msgid "Cannot update fee, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1156 #: includes/api/legacy/v3/class-wc-api-orders.php:1201 #: includes/cli/class-wc-cli-order.php:1214 msgid "Coupon discount total must be a positive amount" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1163 #: includes/api/legacy/v3/class-wc-api-orders.php:1208 #: includes/cli/class-wc-cli-order.php:1221 msgid "Coupon code is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1169 #: includes/api/legacy/v3/class-wc-api-orders.php:1214 #: includes/cli/class-wc-cli-order.php:1227 msgid "Cannot create coupon, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1187 #: includes/api/legacy/v3/class-wc-api-orders.php:1232 #: includes/cli/class-wc-cli-order.php:1245 msgid "Cannot update coupon, try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1252 #: includes/api/legacy/v2/class-wc-api-orders.php:1360 #: includes/api/legacy/v2/class-wc-api-orders.php:1422 #: includes/api/legacy/v3/class-wc-api-orders.php:1297 #: includes/api/legacy/v3/class-wc-api-orders.php:1405 #: includes/api/legacy/v3/class-wc-api-orders.php:1467 msgid "Invalid order note ID" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1258 #: includes/api/legacy/v2/class-wc-api-orders.php:1367 #: includes/api/legacy/v2/class-wc-api-orders.php:1429 #: includes/api/legacy/v3/class-wc-api-orders.php:1303 #: includes/api/legacy/v3/class-wc-api-orders.php:1412 #: includes/api/legacy/v3/class-wc-api-orders.php:1474 msgid "An order note with the provided ID could not be found" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1292 #: includes/api/legacy/v3/class-wc-api-orders.php:1337 msgid "You do not have permission to create order notes" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1307 #: includes/api/legacy/v3/class-wc-api-orders.php:1352 msgid "Order note is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1316 #: includes/api/legacy/v3/class-wc-api-orders.php:1361 msgid "Cannot create order note, please try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1372 #: includes/api/legacy/v2/class-wc-api-orders.php:1434 #: includes/api/legacy/v3/class-wc-api-orders.php:1417 #: includes/api/legacy/v3/class-wc-api-orders.php:1479 msgid "The order note ID provided is not associated with the order" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1441 #: includes/api/legacy/v3/class-wc-api-orders.php:1486 msgid "This order note cannot be deleted" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1446 #: includes/api/legacy/v3/class-wc-api-orders.php:1491 msgid "Permanently deleted order note" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1504 #: includes/api/legacy/v2/class-wc-api-orders.php:1667 #: includes/api/legacy/v2/class-wc-api-orders.php:1726 #: includes/api/legacy/v3/class-wc-api-orders.php:1549 #: includes/api/legacy/v3/class-wc-api-orders.php:1712 #: includes/api/legacy/v3/class-wc-api-orders.php:1771 msgid "Invalid order refund ID" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1511 #: includes/api/legacy/v2/class-wc-api-orders.php:1674 #: includes/api/legacy/v2/class-wc-api-orders.php:1733 #: includes/api/legacy/v3/class-wc-api-orders.php:1556 #: includes/api/legacy/v3/class-wc-api-orders.php:1719 #: includes/api/legacy/v3/class-wc-api-orders.php:1778 msgid "An order refund with the provided ID could not be found" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1581 #: includes/api/legacy/v3/class-wc-api-orders.php:1626 msgid "You do not have permission to create order refunds" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1594 #: includes/api/legacy/v3/class-wc-api-orders.php:1639 msgid "Refund amount is required" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1596 #: includes/api/legacy/v3/class-wc-api-orders.php:1641 msgid "Refund amount must be positive" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1606 #: includes/api/legacy/v3/class-wc-api-orders.php:1651 msgid "Cannot create order refund, please try again" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1623 #: includes/api/legacy/v3/class-wc-api-orders.php:1668 msgid "" "An error occurred while attempting to create the refund using the payment " "gateway API" msgstr "" #: includes/api/legacy/v2/class-wc-api-orders.php:1679 #: includes/api/legacy/v2/class-wc-api-orders.php:1738 #: includes/api/legacy/v3/class-wc-api-orders.php:1724 #: includes/api/legacy/v3/class-wc-api-orders.php:1783 msgid "The order refund ID provided is not associated with the order" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:217 #: includes/api/legacy/v3/class-wc-api-products.php:262 msgid "You do not have permission to create products" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:239 #: includes/api/legacy/v2/class-wc-api-products.php:358 #: includes/api/legacy/v3/class-wc-api-products.php:284 #: includes/api/legacy/v3/class-wc-api-products.php:413 #: includes/cli/class-wc-cli-product.php:169 #: includes/cli/class-wc-cli-product.php:648 msgid "Invalid product type - the product type must be any of these: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:540 #: includes/api/legacy/v2/class-wc-api-products.php:576 #: includes/api/legacy/v3/class-wc-api-products.php:595 #: includes/api/legacy/v3/class-wc-api-products.php:631 msgid "You do not have permission to read product categories" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:571 #: includes/api/legacy/v3/class-wc-api-products.php:626 msgid "Invalid product category ID" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:582 #: includes/api/legacy/v3/class-wc-api-products.php:637 msgid "A product category with the provided ID could not be found" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:881 #: includes/api/legacy/v2/class-wc-api-products.php:1310 #: includes/api/legacy/v3/class-wc-api-products.php:1366 #: includes/api/legacy/v3/class-wc-api-products.php:1805 #: includes/cli/class-wc-cli-product.php:1133 #: includes/cli/class-wc-cli-product.php:1583 msgid "The SKU already exists on another product" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:1812 #: includes/api/legacy/v3/class-wc-api-products.php:2368 #: includes/cli/class-wc-cli-product.php:2025 msgid "Invalid URL %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:1824 #: includes/api/legacy/v2/class-wc-api-products.php:1826 #: includes/api/legacy/v3/class-wc-api-products.php:2380 #: includes/api/legacy/v3/class-wc-api-products.php:2382 #: includes/cli/class-wc-cli-product.php:2037 #: includes/cli/class-wc-cli-product.php:2039 includes/wc-rest-functions.php:83 #: includes/wc-rest-functions.php:85 msgid "Error getting remote image %s." msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:1824 #: includes/api/legacy/v3/class-wc-api-products.php:2380 #: includes/cli/class-wc-cli-product.php:2037 includes/wc-rest-functions.php:83 msgid "Error: %s." msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:1847 #: includes/api/legacy/v3/class-wc-api-products.php:2403 #: includes/cli/class-wc-cli-product.php:2060 #: includes/wc-rest-functions.php:106 msgid "Invalid image type." msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:1864 #: includes/api/legacy/v3/class-wc-api-products.php:2420 #: includes/cli/class-wc-cli-product.php:2077 msgid "Zero size file downloaded" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2005 #: includes/api/legacy/v2/class-wc-api-products.php:2049 #: includes/api/legacy/v3/class-wc-api-products.php:2586 #: includes/api/legacy/v3/class-wc-api-products.php:2630 msgid "You do not have permission to read product attributes" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2044 #: includes/api/legacy/v3/class-wc-api-products.php:2625 #: includes/api/legacy/v3/class-wc-api-products.php:2993 msgid "Invalid product attribute ID" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2059 #: includes/api/legacy/v2/class-wc-api-products.php:2301 #: includes/api/legacy/v3/class-wc-api-products.php:2640 #: includes/api/legacy/v3/class-wc-api-products.php:2884 #: includes/api/legacy/v3/class-wc-api-products.php:2937 #: includes/api/legacy/v3/class-wc-api-products.php:3004 #: includes/api/legacy/v3/class-wc-api-products.php:3052 #: includes/api/legacy/v3/class-wc-api-products.php:3116 #: includes/api/legacy/v3/class-wc-api-products.php:3167 msgid "A product attribute with the provided ID could not be found" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2104 #: includes/api/legacy/v3/class-wc-api-products.php:2685 msgid "" "Invalid product attribute type - the product attribute type must be any of " "these: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2109 #: includes/api/legacy/v3/class-wc-api-products.php:2690 msgid "" "Invalid product attribute order_by type - the product attribute order_by " "type must be any of these: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2134 #: includes/api/legacy/v3/class-wc-api-products.php:2715 #: includes/api/legacy/v3/class-wc-api-products.php:3046 msgid "You do not have permission to create product attributes" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2216 #: includes/api/legacy/v3/class-wc-api-products.php:2798 #: includes/api/legacy/v3/class-wc-api-products.php:3110 msgid "You do not have permission to edit product attributes" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2289 #: includes/api/legacy/v3/class-wc-api-products.php:2872 msgid "You do not have permission to delete product attributes" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2311 #: includes/api/legacy/v3/class-wc-api-products.php:2894 msgid "Could not delete the attribute" msgstr "" #: includes/api/legacy/v2/class-wc-api-products.php:2350 msgid "Invalid product SKU" msgstr "" #: includes/api/legacy/v2/class-wc-api-resource.php:94 #: includes/api/legacy/v3/class-wc-api-resource.php:94 msgid "No %s found with the ID equal to %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:143 #: includes/api/legacy/v3/class-wc-api-webhooks.php:143 msgid "You do not have permission to read the webhooks count" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:176 #: includes/api/legacy/v3/class-wc-api-webhooks.php:176 msgid "You do not have permission to create webhooks" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:183 #: includes/api/legacy/v3/class-wc-api-webhooks.php:183 msgid "Webhook topic is required and must be valid" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:188 #: includes/api/legacy/v2/class-wc-api-webhooks.php:279 #: includes/api/legacy/v3/class-wc-api-webhooks.php:188 #: includes/api/legacy/v3/class-wc-api-webhooks.php:279 msgid "Webhook delivery URL must be a valid URL starting with http:// or https://" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:203 #: includes/api/legacy/v3/class-wc-api-webhooks.php:203 msgid "Cannot create webhook: %s" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:268 #: includes/api/legacy/v3/class-wc-api-webhooks.php:268 msgid "Webhook topic must be valid" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:437 #: includes/api/legacy/v3/class-wc-api-webhooks.php:440 msgid "Invalid webhook delivery ID" msgstr "" #: includes/api/legacy/v2/class-wc-api-webhooks.php:445 #: includes/api/legacy/v3/class-wc-api-webhooks.php:448 msgid "Invalid webhook delivery" msgstr "" #: includes/api/legacy/v3/class-wc-api-authentication.php:112 msgid "" "WooCommerce API. Use a consumer key in the username field and a consumer " "secret in the password field" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:686 msgid "You do not have permission to create product categories" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:706 msgid "Product category parent is invalid" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:766 msgid "You do not have permission to edit product categories" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:796 msgid "Could not edit the category" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:829 msgid "You do not have permission to delete product category" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:835 msgid "Could not delete the category" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:862 #: includes/api/legacy/v3/class-wc-api-products.php:898 msgid "You do not have permission to read product tags" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:893 msgid "Invalid product tag ID" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:904 msgid "A product tag with the provided ID could not be found" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:939 msgid "You do not have permission to create product tags" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:987 msgid "You do not have permission to edit product tags" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:999 msgid "Could not edit the tag" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:1022 msgid "You do not have permission to delete product tag" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:1028 msgid "Could not delete the tag" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:2931 #: includes/api/legacy/v3/class-wc-api-products.php:2998 msgid "You do not have permission to read product attribute terms" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3010 msgid "A product attribute term with the provided ID could not be found" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3161 msgid "You do not have permission to delete product attribute terms" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3299 #: includes/api/legacy/v3/class-wc-api-products.php:3334 msgid "You do not have permission to read product shipping classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3329 msgid "Invalid product shipping class ID" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3340 msgid "A product shipping class with the provided ID could not be found" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3378 msgid "You do not have permission to create product shipping classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3396 msgid "Product shipping class parent is invalid" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3439 msgid "You do not have permission to edit product shipping classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3451 msgid "Could not edit the shipping class" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3476 msgid "You do not have permission to delete product shipping classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-products.php:3482 msgid "Could not delete the shipping class" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:128 msgid "You do not have permission to read tax rate" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:135 msgid "A tax rate with the provided ID could not be found" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:189 msgid "You do not have permission to create tax rates" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:259 msgid "You do not have permission to edit tax rates" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:343 msgid "You do not have permission to delete tax rates" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:351 msgid "Could not delete the tax rate" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:373 msgid "You do not have permission to read the taxes count" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:526 msgid "You do not have permission to read tax classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:569 msgid "You do not have permission to create tax classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:593 #: includes/cli/class-wc-cli-tax.php:148 msgid "Tax class already exists" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:631 msgid "You do not have permission to delete tax classes" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:647 msgid "Could not delete the tax class" msgstr "" #: includes/api/legacy/v3/class-wc-api-taxes.php:681 msgid "You do not have permission to read the tax classes count" msgstr "" #: includes/class-wc-ajax.php:217 msgid "Sorry there was a problem removing this coupon." msgstr "" #: includes/class-wc-ajax.php:223 msgid "Coupon has been removed." msgstr "" #: includes/class-wc-ajax.php:290 msgid "Sorry, your session has expired." msgstr "" #: includes/class-wc-ajax.php:290 msgid "Return to shop" msgstr "" #: includes/class-wc-ajax.php:1370 msgid "Item %s stock reduced from %s to %s." msgstr "" #: includes/class-wc-ajax.php:1378 msgid "" "No products had their stock reduced - they may not have stock management " "enabled." msgstr "" #: includes/class-wc-ajax.php:1411 msgid "Item %s stock increased from %s to %s." msgstr "" #: includes/class-wc-ajax.php:1418 msgid "" "No products had their stock increased - they may not have stock management " "enabled." msgstr "" #: includes/class-wc-ajax.php:1435 msgid "Value" msgstr "" #: includes/class-wc-ajax.php:2187 msgid "Invalid refund amount" msgstr "" #: includes/class-wc-ajax.php:2232 msgid "Refund failed" msgstr "" #: includes/class-wc-ajax.php:2247 msgid "Item #%s stock increased from %s to %s." msgstr "" #: includes/class-wc-ajax.php:2335 msgid "Description is missing." msgstr "" #: includes/class-wc-ajax.php:2338 msgid "User is missing." msgstr "" #: includes/class-wc-ajax.php:2341 msgid "Permissions is missing." msgstr "" #: includes/class-wc-ajax.php:2370 msgid "API Key updated successfully." msgstr "" #: includes/class-wc-ajax.php:2400 msgid "" "API Key generated successfully. Make sure to copy your new API keys now. " "You won't be able to see it again!" msgstr "" #: includes/class-wc-ajax.php:2613 msgid "Dismiss this notice." msgstr "" #: includes/class-wc-auth.php:100 msgid "View coupons" msgstr "" #: includes/class-wc-auth.php:101 msgid "View customers" msgstr "" #: includes/class-wc-auth.php:102 msgid "View orders and sales reports" msgstr "" #: includes/class-wc-auth.php:103 includes/class-wc-product-grouped.php:41 msgid "View products" msgstr "" #: includes/class-wc-auth.php:106 includes/class-wc-auth.php:113 msgid "Create webhooks" msgstr "" #: includes/class-wc-auth.php:107 msgid "Create coupons" msgstr "" #: includes/class-wc-auth.php:108 msgid "Create customers" msgstr "" #: includes/class-wc-auth.php:109 msgid "Create orders" msgstr "" #: includes/class-wc-auth.php:110 msgid "Create products" msgstr "" #: includes/class-wc-auth.php:114 msgid "View and manage coupons" msgstr "" #: includes/class-wc-auth.php:115 msgid "View and manage customers" msgstr "" #: includes/class-wc-auth.php:116 msgid "View and manage orders and sales reports" msgstr "" #: includes/class-wc-auth.php:117 msgid "View and manage products" msgstr "" #: includes/class-wc-auth.php:181 msgid "Invalid scope %s" msgstr "" #: includes/class-wc-auth.php:188 msgid "The %s is not a valid URL" msgstr "" #: includes/class-wc-auth.php:195 msgid "The callback_url need to be over SSL" msgstr "" #: includes/class-wc-auth.php:213 msgid "%s - API %s (created on %s at %s)." msgstr "" #: includes/class-wc-auth.php:275 msgid "" "An error occurred in the request and at the time were unable to send the " "consumer data" msgstr "" #: includes/class-wc-auth.php:317 msgid "API disabled!" msgstr "" #: includes/class-wc-auth.php:359 msgid "Invalid nonce verification" msgstr "" #: includes/class-wc-auth.php:370 msgid "You do not have permissions to access this page!" msgstr "" #: includes/class-wc-auth.php:375 msgid "Access Denied" msgstr "" #: includes/class-wc-breadcrumb.php:119 msgid "Error 404" msgstr "" #: includes/class-wc-breadcrumb.php:211 msgid "Products tagged “%s”" msgstr "" #: includes/class-wc-breadcrumb.php:262 msgid "Posts tagged “%s”" msgstr "" #: includes/class-wc-breadcrumb.php:303 msgid "Author: %s" msgstr "" #: includes/class-wc-breadcrumb.php:338 msgid "Search results for “%s”" msgstr "" #: includes/class-wc-breadcrumb.php:347 msgid "Page %d" msgstr "" #: includes/class-wc-cache-helper.php:218 msgid "" "In order for database caching to work with WooCommerce you " "must add _wc_session_ to the \"Ignored Query Strings\" option " "in W3 Total Cache settings here." msgstr "" #: includes/class-wc-cart.php:238 msgid "" "%s has been removed from your cart because it can no longer be purchased. " "Please contact us if you need assistance." msgstr "" #: includes/class-wc-cart.php:457 msgid "An item which is no longer available was removed from your cart." msgstr "" #: includes/class-wc-cart.php:483 msgid "" "Sorry, \"%s\" is not in stock. Please edit your cart and try again. We " "apologise for any inconvenience caused." msgstr "" #: includes/class-wc-cart.php:497 msgid "" "Sorry, we do not have enough \"%s\" in stock to fulfill your order (%s in " "stock). Please edit your cart and try again. We apologise for any " "inconvenience caused." msgstr "" #: includes/class-wc-cart.php:532 msgid "" "Sorry, we do not have enough \"%s\" in stock to fulfill your order right " "now. Please try again in %d minutes or edit your cart and try again. We " "apologise for any inconvenience caused." msgstr "" #: includes/class-wc-cart.php:695 msgid "Get cart should not be called before the wp_loaded action." msgstr "" #: includes/class-wc-cart.php:929 includes/class-wc-cart.php:964 #: includes/class-wc-frontend-scripts.php:312 #: includes/wc-cart-functions.php:116 templates/cart/mini-cart.php:85 msgid "View Cart" msgstr "" #: includes/class-wc-cart.php:929 msgid "You cannot add another "%s" to your cart." msgstr "" #: includes/class-wc-cart.php:935 msgid "Sorry, this product cannot be purchased." msgstr "" #: includes/class-wc-cart.php:940 msgid "" "You cannot add "%s" to the cart because the product is out of " "stock." msgstr "" #: includes/class-wc-cart.php:944 msgid "" "You cannot add that amount of "%s" to the cart because there is " "not enough stock (%s remaining)." msgstr "" #: includes/class-wc-cart.php:965 msgid "" "You cannot add that amount to the cart — we have %s in stock and you " "already have %s in your cart." msgstr "" #: includes/class-wc-checkout.php:106 msgid "Account username" msgstr "" #: includes/class-wc-checkout.php:115 msgid "Account password" msgstr "" #: includes/class-wc-checkout.php:206 includes/class-wc-checkout.php:217 #: includes/class-wc-checkout.php:219 includes/class-wc-checkout.php:244 #: includes/class-wc-checkout.php:256 includes/class-wc-checkout.php:269 #: includes/class-wc-checkout.php:280 includes/class-wc-checkout.php:287 msgid "Error %d: Unable to create order. Please try again." msgstr "" #: includes/class-wc-checkout.php:356 msgid "We were unable to process your order, please try again." msgstr "" #: includes/class-wc-checkout.php:369 msgid "" "Sorry, your session has expired. Return to shop" msgstr "" #: includes/class-wc-checkout.php:473 includes/class-wc-form-handler.php:114 #: includes/shortcodes/class-wc-shortcode-cart.php:27 msgid "Please enter a valid postcode/ZIP." msgstr "" #: includes/class-wc-checkout.php:482 includes/class-wc-form-handler.php:123 msgid "is not a valid phone number." msgstr "" #: includes/class-wc-checkout.php:488 includes/class-wc-form-handler.php:130 msgid "is not a valid email address." msgstr "" #: includes/class-wc-checkout.php:506 msgid "is not valid. Please enter one of the following:" msgstr "" #: includes/class-wc-checkout.php:562 includes/class-wc-form-handler.php:311 msgid "You must accept our Terms & Conditions." msgstr "" #: includes/class-wc-checkout.php:569 msgid "Please enter an address to continue." msgstr "" #: includes/class-wc-checkout.php:571 msgid "" "Unfortunately we do not ship %s. Please enter an " "alternative shipping address." msgstr "" #: includes/class-wc-checkout.php:580 msgid "" "No shipping method has been selected. Please double check your address, or " "contact us if you need any help." msgstr "" #: includes/class-wc-checkout.php:592 includes/class-wc-form-handler.php:321 msgid "Invalid payment method." msgstr "" #: includes/class-wc-comments.php:198 msgid "Please rate the product." msgstr "" #: includes/class-wc-countries.php:321 msgid "to the" msgstr "" #: includes/class-wc-countries.php:321 msgid "to" msgstr "" #: includes/class-wc-countries.php:333 msgid "the" msgstr "" #: includes/class-wc-countries.php:343 msgid "VAT" msgstr "" #: includes/class-wc-countries.php:353 msgid "(incl. VAT)" msgstr "" #: includes/class-wc-countries.php:353 msgid "(incl. tax)" msgstr "" #: includes/class-wc-countries.php:363 msgid "(ex. VAT)" msgstr "" #: includes/class-wc-countries.php:363 msgid "(ex. tax)" msgstr "" #: includes/class-wc-countries.php:559 msgid "Company Name" msgstr "" #: includes/class-wc-countries.php:584 msgid "Town / City" msgstr "" #: includes/class-wc-countries.php:591 msgid "State / County" msgstr "" #: includes/class-wc-countries.php:598 #: templates/cart/shipping-calculator.php:91 msgid "Postcode / ZIP" msgstr "" #: includes/class-wc-countries.php:654 msgid "Suburb" msgstr "" #: includes/class-wc-countries.php:674 msgid "District" msgstr "" #: includes/class-wc-countries.php:681 includes/class-wc-countries.php:703 #: includes/class-wc-countries.php:726 includes/class-wc-countries.php:787 #: includes/class-wc-countries.php:812 includes/class-wc-countries.php:829 #: includes/class-wc-countries.php:891 includes/class-wc-countries.php:915 #: includes/class-wc-countries.php:957 msgid "Province" msgstr "" #: includes/class-wc-countries.php:709 msgid "Canton" msgstr "" #: includes/class-wc-countries.php:721 includes/class-wc-countries.php:777 #: includes/class-wc-countries.php:838 msgid "Region" msgstr "" #: includes/class-wc-countries.php:774 msgid "Town / District" msgstr "" #: includes/class-wc-countries.php:782 includes/class-wc-countries.php:931 msgid "County" msgstr "" #: includes/class-wc-countries.php:817 msgid "Prefecture" msgstr "" #: includes/class-wc-countries.php:849 msgid "State / Zone" msgstr "" #: includes/class-wc-countries.php:897 msgid "Municipality" msgstr "" #: includes/class-wc-countries.php:920 msgid "ZIP" msgstr "" #: includes/class-wc-countries.php:1014 msgid "Email Address" msgstr "" #: includes/class-wc-coupon.php:775 msgid "Coupon code applied successfully." msgstr "" #: includes/class-wc-coupon.php:778 msgid "Coupon code removed successfully." msgstr "" #: includes/class-wc-coupon.php:796 msgid "Coupon is not valid." msgstr "" #: includes/class-wc-coupon.php:799 msgid "Coupon \"%s\" does not exist!" msgstr "" #: includes/class-wc-coupon.php:802 msgid "" "Sorry, it seems the coupon \"%s\" is invalid - it has now been removed from " "your order." msgstr "" #: includes/class-wc-coupon.php:805 msgid "" "Sorry, it seems the coupon \"%s\" is not yours - it has now been removed " "from your order." msgstr "" #: includes/class-wc-coupon.php:808 msgid "Coupon code already applied!" msgstr "" #: includes/class-wc-coupon.php:811 msgid "" "Sorry, coupon \"%s\" has already been applied and cannot be used in " "conjunction with other coupons." msgstr "" #: includes/class-wc-coupon.php:814 msgid "Coupon usage limit has been reached." msgstr "" #: includes/class-wc-coupon.php:817 msgid "This coupon has expired." msgstr "" #: includes/class-wc-coupon.php:820 msgid "The minimum spend for this coupon is %s." msgstr "" #: includes/class-wc-coupon.php:823 msgid "The maximum spend for this coupon is %s." msgstr "" #: includes/class-wc-coupon.php:826 msgid "Sorry, this coupon is not applicable to your cart contents." msgstr "" #: includes/class-wc-coupon.php:839 msgid "Sorry, this coupon is not applicable to the products: %s." msgstr "" #: includes/class-wc-coupon.php:858 msgid "Sorry, this coupon is not applicable to the categories: %s." msgstr "" #: includes/class-wc-coupon.php:861 msgid "Sorry, this coupon is not valid for sale items." msgstr "" #: includes/class-wc-coupon.php:881 msgid "Coupon does not exist!" msgstr "" #: includes/class-wc-coupon.php:884 msgid "Please enter a coupon code." msgstr "" #: includes/class-wc-download-handler.php:53 msgid "Invalid download link." msgstr "" #: includes/class-wc-download-handler.php:100 #: includes/class-wc-form-handler.php:674 #: includes/shortcodes/class-wc-shortcode-checkout.php:176 #: includes/shortcodes/class-wc-shortcode-my-account.php:113 msgid "Invalid order." msgstr "" #: includes/class-wc-download-handler.php:111 msgid "Sorry, you have reached your download limit for this file" msgstr "" #: includes/class-wc-download-handler.php:122 msgid "Sorry, this download has expired" msgstr "" #: includes/class-wc-download-handler.php:135 #: includes/class-wc-download-handler.php:138 msgid "You must be logged in to download files." msgstr "" #: includes/class-wc-download-handler.php:138 msgid "Log in to Download Files" msgstr "" #: includes/class-wc-download-handler.php:141 msgid "This is not your download link." msgstr "" #: includes/class-wc-download-handler.php:174 msgid "No file defined" msgstr "" #: includes/class-wc-download-handler.php:284 msgid "File not found" msgstr "" #: includes/class-wc-download-handler.php:420 msgid "Go to shop" msgstr "" #: includes/class-wc-emails.php:456 msgid "Note" msgstr "" #: includes/class-wc-emails.php:470 msgid "Tel" msgstr "" #: includes/class-wc-emails.php:509 msgid "Product low in stock" msgstr "" #: includes/class-wc-emails.php:510 msgid "%s is low in stock." msgstr "" #: includes/class-wc-emails.php:510 msgid "There are %d left" msgstr "" #: includes/class-wc-emails.php:527 msgid "Product out of stock" msgstr "" #: includes/class-wc-emails.php:528 msgid "%s is out of stock." msgstr "" #: includes/class-wc-emails.php:557 msgid "Product Backorder" msgstr "" #: includes/class-wc-emails.php:558 msgid "%1$s units of %2$s have been backordered in order #%3$s." msgstr "" #: includes/class-wc-embed.php:109 msgid "Buy Now" msgstr "" #: includes/class-wc-form-handler.php:101 #: includes/class-wc-form-handler.php:200 msgid "is a required field." msgstr "" #: includes/class-wc-form-handler.php:145 msgid "Address changed successfully." msgstr "" #: includes/class-wc-form-handler.php:195 #: templates/myaccount/form-edit-account.php:40 #: templates/myaccount/form-login.php:91 msgid "Email address" msgstr "" #: includes/class-wc-form-handler.php:207 includes/wc-user-functions.php:49 msgid "Please provide a valid email address." msgstr "" #: includes/class-wc-form-handler.php:209 msgid "This email address is already registered." msgstr "" #: includes/class-wc-form-handler.php:215 msgid "Please fill out all password fields." msgstr "" #: includes/class-wc-form-handler.php:218 msgid "Please enter your current password." msgstr "" #: includes/class-wc-form-handler.php:221 msgid "Please re-enter your password." msgstr "" #: includes/class-wc-form-handler.php:224 msgid "New passwords do not match." msgstr "" #: includes/class-wc-form-handler.php:227 msgid "Your current password is incorrect." msgstr "" #: includes/class-wc-form-handler.php:248 msgid "Account details changed successfully." msgstr "" #: includes/class-wc-form-handler.php:384 msgid "Payment method added." msgstr "" #: includes/class-wc-form-handler.php:408 #: includes/class-wc-form-handler.php:413 #: includes/class-wc-form-handler.php:418 #: includes/class-wc-form-handler.php:446 #: includes/class-wc-form-handler.php:451 #: includes/class-wc-form-handler.php:456 msgid "Invalid payment method" msgstr "" #: includes/class-wc-form-handler.php:424 msgid "Payment method deleted." msgstr "" #: includes/class-wc-form-handler.php:462 msgid "This payment method was successfully set as your default." msgstr "" #: includes/class-wc-form-handler.php:499 #: includes/class-wc-form-handler.php:502 msgid "%s removed." msgstr "" #: includes/class-wc-form-handler.php:500 msgid "Undo?" msgstr "" #: includes/class-wc-form-handler.php:551 msgid "You can only have 1 %s in your cart." msgstr "" #: includes/class-wc-form-handler.php:575 msgid "Cart updated." msgstr "" #: includes/class-wc-form-handler.php:641 msgid "The cart has been filled with the items from your previous order." msgstr "" #: includes/class-wc-form-handler.php:664 msgid "Order cancelled by customer." msgstr "" #: includes/class-wc-form-handler.php:667 msgid "Your order was cancelled." msgstr "" #: includes/class-wc-form-handler.php:672 msgid "" "Your order can no longer be cancelled. Please contact us if you need " "assistance." msgstr "" #: includes/class-wc-form-handler.php:782 msgid "Please choose the quantity of items you wish to add to your cart…" msgstr "" #: includes/class-wc-form-handler.php:790 msgid "Please choose a product to add to your cart…" msgstr "" #: includes/class-wc-form-handler.php:849 msgid "%s is a required field" msgid_plural "%s are required fields" msgstr[0] "" msgstr[1] "" #: includes/class-wc-form-handler.php:851 msgid "Please choose product options…" msgstr "" #: includes/class-wc-form-handler.php:881 #: includes/class-wc-form-handler.php:885 #: includes/class-wc-form-handler.php:889 #: includes/class-wc-form-handler.php:898 #: includes/class-wc-form-handler.php:1033 msgid "Error" msgstr "" #: includes/class-wc-form-handler.php:885 msgid "Username is required." msgstr "" #: includes/class-wc-form-handler.php:889 msgid "Password is required." msgstr "" #: includes/class-wc-form-handler.php:898 msgid "A user could not be found with this email address." msgstr "" #: includes/class-wc-form-handler.php:970 msgid "Please enter your password." msgstr "" #: includes/class-wc-form-handler.php:974 msgid "Passwords do not match." msgstr "" #: includes/class-wc-form-handler.php:1016 msgid "Anti-spam field was filled in." msgstr "" #: includes/class-wc-frontend-scripts.php:267 msgid "Please select a rating" msgstr "" #: includes/class-wc-frontend-scripts.php:282 msgid "Error processing checkout. Please try again." msgstr "" #: includes/class-wc-frontend-scripts.php:289 #: includes/wc-template-functions.php:1789 msgid "required" msgstr "" #: includes/class-wc-frontend-scripts.php:323 msgid "" "Sorry, no products matched your selection. Please choose a different " "combination." msgstr "" #: includes/class-wc-frontend-scripts.php:324 msgid "Please select some product options before adding this product to your cart." msgstr "" #: includes/class-wc-frontend-scripts.php:325 #: templates/single-product/add-to-cart/variation.php:31 msgid "Sorry, this product is unavailable. Please choose a different combination." msgstr "" #: includes/class-wc-frontend-scripts.php:349 msgid "Please enter a stronger password." msgstr "" #: includes/class-wc-frontend-scripts.php:350 msgid "" "The password should be at least seven characters long. To make it stronger, " "use upper and lower case letters, numbers and symbols like ! \" ? $ % ^ " "& )." msgstr "" #: includes/class-wc-install.php:256 msgid "Monthly" msgstr "" #: includes/class-wc-install.php:605 msgid "Shop Manager" msgstr "" #: includes/class-wc-install.php:832 msgid "View WooCommerce Settings" msgstr "" #: includes/class-wc-install.php:848 msgid "View WooCommerce Documentation" msgstr "" #: includes/class-wc-install.php:848 msgid "Docs" msgstr "" #: includes/class-wc-install.php:849 msgid "View WooCommerce API Docs" msgstr "" #: includes/class-wc-install.php:849 msgid "API Docs" msgstr "" #: includes/class-wc-install.php:850 msgid "Visit Premium Customer Support Forum" msgstr "" #: includes/class-wc-install.php:850 msgid "Premium Support" msgstr "" #: includes/class-wc-install.php:989 msgid "" "%1$s could not be installed (%2$s). %3$sPlease install it manually by " "clicking here.%4$s" msgstr "" #: includes/class-wc-install.php:1017 msgid "" "%1$s was installed but could not be activated. %2$sPlease activate it " "manually by clicking here.%3$s" msgstr "" #: includes/class-wc-order.php:46 includes/wc-cart-functions.php:310 msgid "(includes %s)" msgstr "" #: includes/class-wc-post-types.php:66 msgid "Product Category" msgstr "" #: includes/class-wc-post-types.php:68 msgid "Search Product Categories" msgstr "" #: includes/class-wc-post-types.php:69 msgid "All Product Categories" msgstr "" #: includes/class-wc-post-types.php:70 msgid "Parent Product Category" msgstr "" #: includes/class-wc-post-types.php:71 msgid "Parent Product Category:" msgstr "" #: includes/class-wc-post-types.php:72 msgid "Edit Product Category" msgstr "" #: includes/class-wc-post-types.php:73 msgid "Update Product Category" msgstr "" #: includes/class-wc-post-types.php:74 msgid "Add New Product Category" msgstr "" #: includes/class-wc-post-types.php:75 msgid "New Product Category Name" msgstr "" #: includes/class-wc-post-types.php:76 msgid "No Product Category found" msgstr "" #: includes/class-wc-post-types.php:102 msgid "Product Tag" msgstr "" #: includes/class-wc-post-types.php:104 msgid "Search Product Tags" msgstr "" #: includes/class-wc-post-types.php:105 msgid "All Product Tags" msgstr "" #: includes/class-wc-post-types.php:106 msgid "Edit Product Tag" msgstr "" #: includes/class-wc-post-types.php:107 msgid "Update Product Tag" msgstr "" #: includes/class-wc-post-types.php:108 msgid "Add New Product Tag" msgstr "" #: includes/class-wc-post-types.php:109 msgid "New Product Tag Name" msgstr "" #: includes/class-wc-post-types.php:110 msgid "Popular Product Tags" msgstr "" #: includes/class-wc-post-types.php:111 msgid "Separate Product Tags with commas" msgstr "" #: includes/class-wc-post-types.php:112 msgid "Add or remove Product Tags" msgstr "" #: includes/class-wc-post-types.php:113 msgid "Choose from the most used Product tags" msgstr "" #: includes/class-wc-post-types.php:114 msgid "No Product Tags found" msgstr "" #: includes/class-wc-post-types.php:141 msgid "Search Shipping Classes" msgstr "" #: includes/class-wc-post-types.php:142 msgid "All Shipping Classes" msgstr "" #: includes/class-wc-post-types.php:143 msgid "Parent Shipping Class" msgstr "" #: includes/class-wc-post-types.php:144 msgid "Parent Shipping Class:" msgstr "" #: includes/class-wc-post-types.php:145 msgid "Edit Shipping Class" msgstr "" #: includes/class-wc-post-types.php:146 msgid "Update Shipping Class" msgstr "" #: includes/class-wc-post-types.php:147 msgid "Add New Shipping Class" msgstr "" #: includes/class-wc-post-types.php:148 msgid "New Shipping Class Name" msgstr "" #: includes/class-wc-post-types.php:180 msgid "Search %s" msgstr "" #: includes/class-wc-post-types.php:181 msgid "All %s" msgstr "" #: includes/class-wc-post-types.php:182 msgid "Parent %s" msgstr "" #: includes/class-wc-post-types.php:183 msgid "Parent %s:" msgstr "" #: includes/class-wc-post-types.php:184 msgid "Edit %s" msgstr "" #: includes/class-wc-post-types.php:185 msgid "Update %s" msgstr "" #: includes/class-wc-post-types.php:186 msgid "Add New %s" msgstr "" #: includes/class-wc-post-types.php:187 msgid "New %s" msgstr "" #: includes/class-wc-post-types.php:188 msgid "No "%s" found" msgstr "" #: includes/class-wc-post-types.php:244 msgid "Add Product" msgstr "" #: includes/class-wc-post-types.php:245 msgid "Add New Product" msgstr "" #: includes/class-wc-post-types.php:247 msgid "Edit Product" msgstr "" #: includes/class-wc-post-types.php:248 msgid "New Product" msgstr "" #: includes/class-wc-post-types.php:249 includes/class-wc-post-types.php:250 msgid "View Product" msgstr "" #: includes/class-wc-post-types.php:251 msgid "Search Products" msgstr "" #: includes/class-wc-post-types.php:252 msgid "No Products found" msgstr "" #: includes/class-wc-post-types.php:253 msgid "No Products found in trash" msgstr "" #: includes/class-wc-post-types.php:254 msgid "Parent Product" msgstr "" #: includes/class-wc-post-types.php:255 #: templates/emails/email-order-items.php:34 msgid "Product Image" msgstr "" #: includes/class-wc-post-types.php:256 msgid "Set product image" msgstr "" #: includes/class-wc-post-types.php:257 msgid "Remove product image" msgstr "" #: includes/class-wc-post-types.php:258 msgid "Use as product image" msgstr "" #: includes/class-wc-post-types.php:259 msgid "Insert into product" msgstr "" #: includes/class-wc-post-types.php:260 msgid "Uploaded to this product" msgstr "" #: includes/class-wc-post-types.php:261 msgid "Filter products" msgstr "" #: includes/class-wc-post-types.php:262 msgid "Products navigation" msgstr "" #: includes/class-wc-post-types.php:263 msgid "Products list" msgstr "" #: includes/class-wc-post-types.php:265 msgid "This is where you can add new products to your store." msgstr "" #: includes/class-wc-post-types.php:301 msgid "Add Order" msgstr "" #: includes/class-wc-post-types.php:302 msgid "Add New Order" msgstr "" #: includes/class-wc-post-types.php:304 msgid "Edit Order" msgstr "" #: includes/class-wc-post-types.php:305 msgid "New Order" msgstr "" #: includes/class-wc-post-types.php:308 msgid "Search Orders" msgstr "" #: includes/class-wc-post-types.php:309 msgid "No Orders found" msgstr "" #: includes/class-wc-post-types.php:310 msgid "No Orders found in trash" msgstr "" #: includes/class-wc-post-types.php:311 msgid "Parent Orders" msgstr "" #: includes/class-wc-post-types.php:313 msgid "Filter orders" msgstr "" #: includes/class-wc-post-types.php:314 msgid "Orders navigation" msgstr "" #: includes/class-wc-post-types.php:315 msgid "Orders list" msgstr "" #: includes/class-wc-post-types.php:317 msgid "This is where store orders are stored." msgstr "" #: includes/class-wc-post-types.php:339 msgid "Refunds" msgstr "" #: includes/class-wc-post-types.php:361 msgid "Coupon" msgstr "" #: includes/class-wc-post-types.php:363 msgid "Add Coupon" msgstr "" #: includes/class-wc-post-types.php:364 msgid "Add New Coupon" msgstr "" #: includes/class-wc-post-types.php:366 msgid "Edit Coupon" msgstr "" #: includes/class-wc-post-types.php:367 msgid "New Coupon" msgstr "" #: includes/class-wc-post-types.php:368 msgid "View Coupons" msgstr "" #: includes/class-wc-post-types.php:369 msgid "View Coupon" msgstr "" #: includes/class-wc-post-types.php:370 msgid "Search Coupons" msgstr "" #: includes/class-wc-post-types.php:371 msgid "No Coupons found" msgstr "" #: includes/class-wc-post-types.php:372 msgid "No Coupons found in trash" msgstr "" #: includes/class-wc-post-types.php:373 msgid "Parent Coupon" msgstr "" #: includes/class-wc-post-types.php:374 msgid "Filter coupons" msgstr "" #: includes/class-wc-post-types.php:375 msgid "Coupons navigation" msgstr "" #: includes/class-wc-post-types.php:376 msgid "Coupons list" msgstr "" #: includes/class-wc-post-types.php:378 msgid "This is where you can add new coupons that customers can use in your store." msgstr "" #: includes/class-wc-post-types.php:402 msgid "Webhook" msgstr "" #: includes/class-wc-post-types.php:405 msgid "Add New Webhook" msgstr "" #: includes/class-wc-post-types.php:407 msgid "Edit Webhook" msgstr "" #: includes/class-wc-post-types.php:408 msgid "New Webhook" msgstr "" #: includes/class-wc-post-types.php:409 msgid "View Webhooks" msgstr "" #: includes/class-wc-post-types.php:410 msgid "View Webhook" msgstr "" #: includes/class-wc-post-types.php:412 msgid "No Webhooks found" msgstr "" #: includes/class-wc-post-types.php:413 msgid "No Webhooks found in trash" msgstr "" #: includes/class-wc-post-types.php:414 msgid "Parent Webhook" msgstr "" #: includes/class-wc-post-types.php:447 msgid "Pending Payment (%s)" msgid_plural "Pending Payment (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:455 msgid "Processing (%s)" msgid_plural "Processing (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:463 msgid "On Hold (%s)" msgid_plural "On Hold (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:471 msgid "Completed (%s)" msgid_plural "Completed (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:479 msgid "Cancelled (%s)" msgid_plural "Cancelled (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:487 msgid "Refunded (%s)" msgid_plural "Refunded (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-post-types.php:495 msgid "Failed (%s)" msgid_plural "Failed (%s)" msgstr[0] "" msgstr[1] "" #: includes/class-wc-product-external.php:88 msgid "Buy product" msgstr "" #: includes/class-wc-product-variable.php:43 msgid "Select options" msgstr "" #: includes/class-wc-product-variable.php:745 msgid "" "This variable product has no active variations. Add or enable variations to " "allow this product to be purchased." msgstr "" #: includes/class-wc-product-variation.php:723 msgid "%s – %s%s" msgstr "" #: includes/class-wc-query.php:91 msgid "Pay for Order" msgstr "" #: includes/class-wc-query.php:98 msgid "Orders (page %d)" msgstr "" #: includes/class-wc-query.php:105 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:614 #: templates/emails/email-order-details.php:26 #: templates/emails/email-order-details.php:28 msgid "Order #%s" msgstr "" #: includes/class-wc-query.php:111 #: includes/gateways/bacs/class-wc-gateway-bacs.php:123 #: includes/wc-account-functions.php:95 msgid "Account Details" msgstr "" #: includes/class-wc-shipping-zone.php:52 #: includes/class-wc-shipping-zone.php:183 msgid "Zone" msgstr "" #: includes/class-wc-shipping-zone.php:226 msgid "%s and %d other region" msgid_plural "%s and %d other regions" msgstr[0] "" msgstr[1] "" #: includes/class-wc-shipping-zone.php:230 msgid "Everywhere" msgstr "" #: includes/class-wc-webhook.php:618 msgid "Error: Delivery URL cannot be reached: %s" msgstr "" #: includes/class-wc-webhook.php:622 msgid "Error: Delivery URL returned response code: %s" msgstr "" #: includes/cli/class-wc-cli-coupon.php:241 #: includes/cli/class-wc-cli-coupon.php:431 msgid "Invalid coupon ID or code: %s" msgstr "" #: includes/cli/class-wc-cli-customer.php:566 msgid "Invalid customer \"%s\"" msgstr "" #: includes/cli/class-wc-cli-order.php:109 msgid "Missing customer_id field" msgstr "" #: includes/cli/class-wc-cli-order.php:272 msgid "Invalid order \"%s\"" msgstr "" #: includes/cli/class-wc-cli-product-category.php:124 msgid "Invalid product category ID \"%s\"" msgstr "" #: includes/cli/class-wc-cli-product.php:295 #: includes/cli/class-wc-cli-product.php:544 msgid "Invalid product \"%s\"" msgstr "" #: includes/cli/class-wc-cli-tax.php:300 includes/cli/class-wc-cli-tax.php:495 msgid "Invalid tax rate ID: %s" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:27 #: includes/emails/class-wc-email-cancelled-order.php:29 msgid "Cancelled order" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:28 msgid "" "Cancelled order emails are sent to chosen recipient(s) when orders have " "been marked cancelled (if they were previously processing or on-hold)." msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:30 msgid "[{site_title}] Cancelled order ({order_number})" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:103 #: includes/emails/class-wc-email-customer-completed-order.php:139 #: includes/emails/class-wc-email-customer-refunded-order.php:198 #: includes/emails/class-wc-email-failed-order.php:103 #: includes/emails/class-wc-email-new-order.php:108 #: includes/emails/class-wc-email.php:481 #: includes/gateways/bacs/class-wc-gateway-bacs.php:73 #: includes/gateways/cheque/class-wc-gateway-cheque.php:54 #: includes/gateways/paypal/includes/settings-paypal.php:12 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:188 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:14 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:83 msgid "Enable/Disable" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:105 #: includes/emails/class-wc-email-customer-completed-order.php:141 #: includes/emails/class-wc-email-customer-refunded-order.php:200 #: includes/emails/class-wc-email-failed-order.php:105 #: includes/emails/class-wc-email-new-order.php:110 #: includes/emails/class-wc-email.php:483 msgid "Enable this email notification" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:111 #: includes/emails/class-wc-email-failed-order.php:111 #: includes/emails/class-wc-email-new-order.php:116 msgid "" "Enter recipients (comma separated) for this email. Defaults to " "%s." msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:117 #: includes/emails/class-wc-email-customer-completed-order.php:145 #: includes/emails/class-wc-email-failed-order.php:117 #: includes/emails/class-wc-email-new-order.php:122 msgid "Subject" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:119 #: includes/emails/class-wc-email-failed-order.php:119 #: includes/emails/class-wc-email-new-order.php:124 msgid "" "This controls the email subject line. Leave blank to use the default " "subject: %s." msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:125 #: includes/emails/class-wc-email-customer-completed-order.php:153 #: includes/emails/class-wc-email-customer-invoice.php:166 #: includes/emails/class-wc-email-failed-order.php:125 #: includes/emails/class-wc-email-new-order.php:130 #: includes/emails/class-wc-email.php:495 msgid "Email Heading" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:127 #: includes/emails/class-wc-email-failed-order.php:127 #: includes/emails/class-wc-email-new-order.php:132 msgid "" "This controls the main heading contained within the email notification. " "Leave blank to use the default heading: %s." msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:133 #: includes/emails/class-wc-email-customer-completed-order.php:177 #: includes/emails/class-wc-email-customer-refunded-order.php:236 #: includes/emails/class-wc-email-failed-order.php:133 #: includes/emails/class-wc-email-new-order.php:138 #: includes/emails/class-wc-email.php:503 msgid "Email type" msgstr "" #: includes/emails/class-wc-email-cancelled-order.php:135 #: includes/emails/class-wc-email-customer-completed-order.php:179 #: includes/emails/class-wc-email-customer-invoice.php:192 #: includes/emails/class-wc-email-customer-refunded-order.php:238 #: includes/emails/class-wc-email-failed-order.php:135 #: includes/emails/class-wc-email-new-order.php:140 #: includes/emails/class-wc-email.php:505 msgid "Choose which format of email to send." msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:29 msgid "Completed order" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:30 msgid "" "Order complete emails are sent to customers when their orders are marked " "completed and usually indicate that their orders have been shipped." msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:32 msgid "Your order is complete" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:33 msgid "Your {site_title} order from {order_date} is complete" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:42 msgid "Your order is complete - download your files" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:43 msgid "Your {site_title} order from {order_date} is complete - download your files" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:147 #: includes/emails/class-wc-email-customer-completed-order.php:155 #: includes/emails/class-wc-email-customer-completed-order.php:163 #: includes/emails/class-wc-email-customer-completed-order.php:171 #: includes/emails/class-wc-email-customer-invoice.php:160 #: includes/emails/class-wc-email-customer-invoice.php:168 #: includes/emails/class-wc-email-customer-invoice.php:176 #: includes/emails/class-wc-email-customer-invoice.php:184 #: includes/emails/class-wc-email-customer-refunded-order.php:206 #: includes/emails/class-wc-email-customer-refunded-order.php:214 #: includes/emails/class-wc-email-customer-refunded-order.php:222 #: includes/emails/class-wc-email-customer-refunded-order.php:230 #: includes/emails/class-wc-email.php:489 #: includes/emails/class-wc-email.php:497 msgid "Defaults to %s" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:161 msgid "Subject (downloadable)" msgstr "" #: includes/emails/class-wc-email-customer-completed-order.php:169 msgid "Email Heading (downloadable)" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:42 msgid "Customer invoice" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:43 msgid "" "Customer invoice emails can be sent to customers containing their order " "information and payment links." msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:48 msgid "Invoice for order {order_number} from {order_date}" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:49 msgid "Invoice for order {order_number}" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:51 msgid "Your {site_title} order from {order_date}" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:52 msgid "Order {order_number} details" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:158 #: includes/emails/class-wc-email.php:487 msgid "Email Subject" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:174 msgid "Email Subject (paid)" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:182 msgid "Email Heading (paid)" msgstr "" #: includes/emails/class-wc-email-customer-invoice.php:190 msgid "Email Type" msgstr "" #: includes/emails/class-wc-email-customer-new-account.php:57 msgid "New account" msgstr "" #: includes/emails/class-wc-email-customer-new-account.php:58 msgid "" "Customer \"new account\" emails are sent to the customer when a customer " "signs up via checkout or account pages." msgstr "" #: includes/emails/class-wc-email-customer-new-account.php:63 msgid "Your account on {site_title}" msgstr "" #: includes/emails/class-wc-email-customer-new-account.php:64 msgid "Welcome to {site_title}" msgstr "" #: includes/emails/class-wc-email-customer-note.php:36 msgid "Customer note" msgstr "" #: includes/emails/class-wc-email-customer-note.php:37 msgid "Customer note emails are sent when you add a note to an order." msgstr "" #: includes/emails/class-wc-email-customer-note.php:42 msgid "Note added to your {site_title} order from {order_date}" msgstr "" #: includes/emails/class-wc-email-customer-note.php:43 msgid "A note has been added to your order" msgstr "" #: includes/emails/class-wc-email-customer-on-hold-order.php:28 msgid "Order on-hold" msgstr "" #: includes/emails/class-wc-email-customer-on-hold-order.php:29 msgid "" "This is an order notification sent to customers containing order details " "after an order is placed on-hold." msgstr "" #: includes/emails/class-wc-email-customer-on-hold-order.php:30 #: includes/emails/class-wc-email-customer-processing-order.php:30 msgid "Thank you for your order" msgstr "" #: includes/emails/class-wc-email-customer-on-hold-order.php:31 #: includes/emails/class-wc-email-customer-processing-order.php:31 msgid "Your {site_title} order receipt from {order_date}" msgstr "" #: includes/emails/class-wc-email-customer-processing-order.php:28 msgid "Processing order" msgstr "" #: includes/emails/class-wc-email-customer-processing-order.php:29 msgid "" "This is an order notification sent to customers containing order details " "after payment." msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:57 msgid "Your {site_title} order from {order_date} has been partially refunded" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:58 msgid "Your {site_title} order from {order_date} has been refunded" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:60 msgid "Your order has been fully refunded" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:61 msgid "Your order has been partially refunded" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:68 msgid "Partially Refunded order" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:69 msgid "" "Order partially refunded emails are sent to customers when their orders are " "partially refunded." msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:75 msgid "Refunded order" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:76 msgid "" "Order refunded emails are sent to customers when their orders are marked " "refunded." msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:204 msgid "Full Refund Subject" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:212 msgid "Partial Refund Subject" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:220 msgid "Full Refund Email Heading" msgstr "" #: includes/emails/class-wc-email-customer-refunded-order.php:228 msgid "Partial Refund Email Heading" msgstr "" #: includes/emails/class-wc-email-customer-reset-password.php:49 msgid "Reset password" msgstr "" #: includes/emails/class-wc-email-customer-reset-password.php:50 msgid "" "Customer \"reset password\" emails are sent when customers reset their " "passwords." msgstr "" #: includes/emails/class-wc-email-customer-reset-password.php:56 msgid "Password Reset for {site_title}" msgstr "" #: includes/emails/class-wc-email-customer-reset-password.php:57 msgid "Password Reset Instructions" msgstr "" #: includes/emails/class-wc-email-failed-order.php:27 #: includes/emails/class-wc-email-failed-order.php:29 msgid "Failed order" msgstr "" #: includes/emails/class-wc-email-failed-order.php:28 msgid "" "Failed order emails are sent to chosen recipient(s) when orders have been " "marked failed (if they were previously processing or on-hold)." msgstr "" #: includes/emails/class-wc-email-failed-order.php:30 msgid "[{site_title}] Failed order ({order_number})" msgstr "" #: includes/emails/class-wc-email-new-order.php:27 msgid "New order" msgstr "" #: includes/emails/class-wc-email-new-order.php:28 msgid "" "New order emails are sent to chosen recipient(s) when a new order is " "received." msgstr "" #: includes/emails/class-wc-email-new-order.php:29 msgid "New customer order" msgstr "" #: includes/emails/class-wc-email-new-order.php:30 msgid "[{site_title}] New customer order ({order_number}) - {order_date}" msgstr "" #: includes/emails/class-wc-email.php:519 msgid "Plain text" msgstr "" #: includes/emails/class-wc-email.php:522 msgid "HTML" msgstr "" #: includes/emails/class-wc-email.php:523 msgid "Multipart" msgstr "" #: includes/emails/class-wc-email.php:588 msgid "Could not write to template file." msgstr "" #: includes/emails/class-wc-email.php:634 msgid "Template file copied to theme." msgstr "" #: includes/emails/class-wc-email.php:663 msgid "Template file deleted from theme." msgstr "" #: includes/emails/class-wc-email.php:709 msgid "Return to Emails" msgstr "" #: includes/emails/class-wc-email.php:737 msgid "HTML template" msgstr "" #: includes/emails/class-wc-email.php:738 msgid "Plain text template" msgstr "" #: includes/emails/class-wc-email.php:763 msgid "Delete template file" msgstr "" #: includes/emails/class-wc-email.php:766 msgid "" "This template has been overridden by your theme and can be found in: " "%s." msgstr "" #: includes/emails/class-wc-email.php:779 msgid "Copy file to theme" msgstr "" #: includes/emails/class-wc-email.php:782 msgid "" "To override and edit this email template copy %s to your theme " "folder: %s." msgstr "" #: includes/emails/class-wc-email.php:791 msgid "File was not found." msgstr "" #: includes/emails/class-wc-email.php:818 msgid "View template" msgstr "" #: includes/emails/class-wc-email.php:819 msgid "Hide template" msgstr "" #: includes/emails/class-wc-email.php:830 msgid "Are you sure you want to delete this template file?" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:31 msgid "BACS" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:32 msgid "Allows payments by BACS, more commonly known as direct bank/wire transfer." msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:75 msgid "Enable Bank Transfer" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:81 #: includes/gateways/cheque/class-wc-gateway-cheque.php:62 #: includes/gateways/paypal/includes/settings-paypal.php:20 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:197 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:16 #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:76 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:22 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:91 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:119 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:96 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:72 msgid "This controls the title which the user sees during checkout." msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:82 msgid "Direct Bank Transfer" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:88 #: includes/gateways/cheque/class-wc-gateway-cheque.php:69 #: includes/gateways/cod/class-wc-gateway-cod.php:71 msgid "Payment method description that the customer will see on your checkout." msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:89 msgid "" "Make your payment directly into our bank account. Please use your Order ID " "as the payment reference. Your order won't be shipped until the funds have " "cleared in our account." msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:93 #: includes/gateways/cheque/class-wc-gateway-cheque.php:74 #: includes/gateways/cod/class-wc-gateway-cod.php:83 msgid "Instructions" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:95 #: includes/gateways/cheque/class-wc-gateway-cheque.php:76 msgid "Instructions that will be added to the thank you page and emails." msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:119 #: includes/gateways/bacs/class-wc-gateway-bacs.php:277 msgid "Sort Code" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:129 msgid "Account Name" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:130 #: includes/gateways/bacs/class-wc-gateway-bacs.php:297 #: includes/gateways/class-wc-payment-gateway-echeck.php:44 msgid "Account Number" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:131 msgid "Bank Name" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:133 #: includes/gateways/bacs/class-wc-gateway-bacs.php:305 msgid "IBAN" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:134 msgid "BIC / Swift" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:159 msgid "+ Add Account" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:159 msgid "Remove selected account(s)" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:282 msgid "Our Bank Details" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:309 msgid "BIC" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:337 msgid "Awaiting BACS payment" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:366 msgid "BSB" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:371 msgid "Bank Transit Number" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:376 msgid "IFSC" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:381 msgid "Branch Sort" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:386 #: includes/gateways/bacs/class-wc-gateway-bacs.php:391 msgid "Bank Code" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:396 #: includes/gateways/class-wc-payment-gateway-echeck.php:40 msgid "Routing Number" msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:401 msgid "Branch Code" msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:28 msgid "" "Allows check payments. Why would you take checks in this day and age? Well " "you probably wouldn't but it does allow you to make test purchases for " "testing order emails and the 'success' pages etc." msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:56 msgid "Enable Check Payments" msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:70 msgid "" "Please send a check to Store Name, Store Street, Store Town, Store State / " "County, Store Postcode." msgstr "" #: includes/gateways/class-wc-payment-gateway-cc.php:54 msgid "Card Code" msgstr "" #: includes/gateways/class-wc-payment-gateway-cc.php:55 msgid "CVC" msgstr "" #: includes/gateways/class-wc-payment-gateway-cc.php:60 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:304 msgid "Card Number" msgstr "" #: includes/gateways/class-wc-payment-gateway-cc.php:64 msgid "Expiry (MM/YY)" msgstr "" #: includes/gateways/class-wc-payment-gateway-cc.php:65 msgid "MM / YY" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:27 msgid "Have your customers pay with cash (or by other means) upon delivery." msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:62 msgid "Enable COD" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:63 msgid "Enable Cash on Delivery" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:78 msgid "Payment method description that the customer will see on your website." msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:79 #: includes/gateways/cod/class-wc-gateway-cod.php:86 msgid "Pay with cash upon delivery." msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:85 msgid "Instructions that will be added to the thank you page." msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:90 msgid "Enable for shipping methods" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:95 msgid "" "If COD is only available for certain methods, set it up here. Leave blank " "to enable for all methods." msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:99 msgid "Select shipping methods" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:103 msgid "Accept for virtual orders" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:104 msgid "Accept COD if the order is virtual" msgstr "" #: includes/gateways/cod/class-wc-gateway-cod.php:203 msgid "Payment to be made upon delivery." msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:35 msgid "Proceed to PayPal" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:36 #: includes/gateways/paypal/includes/settings-paypal.php:21 msgid "PayPal" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:37 msgid "" "PayPal standard sends customers to PayPal to enter their payment " "information. PayPal IPN requires fsockopen/cURL support to update order " "statuses after payment. Check the %ssystem status%s page for more details." msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:95 msgid "PayPal Acceptance Mark" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:98 msgid "What is PayPal?" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:207 msgid "Gateway Disabled" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:207 msgid "PayPal does not support your store currency." msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:271 msgid "Refund Failed: No transaction ID" msgstr "" #: includes/gateways/paypal/class-wc-gateway-paypal.php:292 msgid "Refunded %s - Refund ID: %s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:133 msgid "Validation error: PayPal currencies do not match (code %s)." msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:148 msgid "Validation error: PayPal amounts do not match (gross %s)." msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:164 msgid "Validation error: PayPal IPN response from a different email address (%s)." msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:187 msgid "IPN payment completed" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:195 msgid "Payment pending: %s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:214 #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:254 #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:269 msgid "Payment %s via IPN." msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:257 msgid "Payment for order %s refunded" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:258 msgid "Order #%s has been marked as refunded - PayPal reason code: %s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:272 msgid "Payment for order %s reversed" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:273 msgid "Order #%s has been marked on-hold due to a reversal - PayPal reason code: %s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:284 msgid "Reversal cancelled for order #%s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:285 msgid "" "Order #%s has had a reversal cancelled. Please check the status of payment " "and update the order status accordingly here: %s" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:94 msgid "Validation error: PayPal amounts do not match (amt %s)." msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:96 msgid "PDT payment completed" msgstr "" #: includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php:179 #: includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php:203 msgid "Shipping via %s" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:14 msgid "Enable PayPal standard" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:28 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:204 msgid "This controls the description which the user sees during checkout." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:29 msgid "" "Pay via PayPal; you can pay with your credit card if you don't have a " "PayPal account." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:32 msgid "PayPal Email" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:34 msgid "" "Please enter your PayPal email address; this is needed in order to take " "payment." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:40 msgid "PayPal Sandbox" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:42 msgid "Enable PayPal sandbox" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:44 msgid "" "PayPal sandbox can be used to test payments. Sign up for a developer " "account here." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:47 msgid "Debug Log" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:49 msgid "Enable logging" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:51 msgid "Log PayPal events, such as IPN requests, inside %s" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:54 msgid "Advanced options" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:59 msgid "Receiver Email" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:61 msgid "" "If your main PayPal email differs from the PayPal email entered above, " "input your main receiver email for your PayPal account here. This is used " "to validate IPN requests." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:67 msgid "PayPal Identity Token" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:69 msgid "" "Optionally enable \"Payment Data Transfer\" (Profile > Profile and Settings " "> My Selling Tools > Website Preferences) and then copy your identity token " "here. This will allow payments to be verified without the need for PayPal " "IPN." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:75 msgid "Invoice Prefix" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:77 msgid "" "Please enter a prefix for your invoice numbers. If you use your PayPal " "account for multiple stores ensure this prefix is unique as PayPal will not " "allow orders with the same invoice number." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:84 msgid "Send shipping details to PayPal instead of billing." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:85 msgid "" "PayPal allows us to send one address. If you are using PayPal for shipping " "labels you may prefer to send the shipping address rather than billing." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:89 msgid "Address Override" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:91 msgid "" "Enable \"address_override\" to prevent address information from being " "changed." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:92 msgid "" "PayPal verifies addresses therefore this setting can cause errors (we " "recommend keeping it disabled)." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:96 msgid "Payment Action" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:99 msgid "" "Choose whether you wish to capture funds immediately or authorize payment " "only." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:103 msgid "Capture" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:104 msgid "Authorize" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:108 msgid "Page Style" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:110 msgid "" "Optionally enter the name of the page style you wish to use. These are " "defined within your PayPal account." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:116 msgid "API Credentials" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:118 msgid "" "Enter your PayPal API credentials to process refunds via PayPal. Learn how " "to access your PayPal API Credentials %shere%s." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:121 msgid "API Username" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:123 #: includes/gateways/paypal/includes/settings-paypal.php:131 #: includes/gateways/paypal/includes/settings-paypal.php:139 msgid "Get your API credentials from PayPal." msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:129 msgid "API Password" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:137 msgid "API Signature" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:94 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:188 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:418 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:593 msgid "" "Please make sure your card details have been entered correctly and that " "your browser supports JavaScript." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:97 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:191 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:421 msgid "" "Developers: Please make sure that you're including jQuery and there are no " "JavaScript errors on the page." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:114 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:211 msgid "Error creating user in Simplify Commerce." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:182 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:292 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:493 msgid "Sorry, the minimum allowed order total is 0.50 to use this payment method." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:298 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:435 msgid "Customer not found" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:306 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:500 msgid "%s - Order #%s" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:322 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:519 msgid "Simplify payment error: %s" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:332 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:452 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:529 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:694 msgid "Simplify payment approved (ID: %s, Auth Code: %s)" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:336 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:533 msgid "Simplify payment declined" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:338 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:535 msgid "Payment was declined - please try another card." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:352 #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:457 msgid "Simplify Transaction Failed (%s)" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:430 msgid "%s - Pre-order for \"%s\"" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:430 msgid "(Order #%s)" msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:454 msgid "Payment was declined - the customer need to try another card." msgstr "" #: includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php:501 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:666 msgid "Payment was declined by Simplify Commerce." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:25 msgid "" "Take payments via Simplify Commerce - uses simplify.js to create card " "tokens and the Simplify Commerce SDK. Requires SSL when sandbox is disabled." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:26 msgid "Use a new card" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:90 msgid "Simplify Commerce by MasterCard" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:95 msgid "Getting started" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:96 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:102 msgid "" "Simplify Commerce is your merchant account and payment gateway all rolled " "into one. Choose Simplify Commerce as your WooCommerce payment gateway to " "get access to your money quickly with a powerful, secure payment engine " "backed by MasterCard." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:98 msgid "Sign up for Simplify Commerce" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:147 msgid "" "Simplify Commerce Error: Simplify commerce requires PHP 5.3 and above. You " "are using version %s." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:152 msgid "Simplify Commerce Error: Please enter your public and private keys" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:157 msgid "" "Simplify Commerce is enabled, but the force SSL option " "is disabled; your checkout may not be secure! Please enable SSL and ensure " "your server has a valid SSL certificate - Simplify Commerce will only work " "in sandbox mode." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:189 msgid "Enable Simplify Commerce" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:198 msgid "Credit card" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:209 msgid "Payment Mode" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:210 msgid "Enable Hosted Payments" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:212 msgid "" "Standard will display the credit card fields on your store (SSL required). " "%1$s Hosted Payments will display a Simplify Commerce modal dialog on your " "store (if SSL) or will redirect the customer to Simplify Commerce hosted " "page (if not SSL). %1$s Note: Hosted Payments need a new API Key pair with " "the hosted payments flag selected. %2$sFor more details check the Simplify " "Commerce docs%3$s." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:216 msgid "Hosted Payments" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:220 msgid "Modal Color" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:222 msgid "Set the color of the buttons and titles on the modal dialog." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:227 msgid "Sandbox" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:228 msgid "Enable Sandbox Mode" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:230 msgid "" "Place the payment gateway in sandbox mode using sandbox API keys (real " "payments will not be taken)." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:234 msgid "Sandbox Public Key" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:236 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:243 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:250 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:257 msgid "Get your API keys from your Simplify account: Settings > API Keys." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:241 msgid "Sandbox Private Key" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:248 msgid "Public Key" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:255 msgid "Private Key" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:271 msgid "TEST MODE ENABLED. Use a test card: %s" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:305 msgid "Expiry Month" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:306 msgid "Expiry Year" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:307 msgid "is invalid" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:315 #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:329 msgid "There was a problem adding this card." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:637 msgid "" "Thank you for your order, please click the button below to pay with credit " "card using Simplify Commerce by MasterCard." msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:646 msgid "Pay Now" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:646 msgid "Cancel order & restore cart" msgstr "" #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:730 msgid "Refund was declined." msgstr "" #: includes/libraries/wp-background-process.php:423 msgid "Every %d Minutes" msgstr "" #: includes/payment-tokens/class-wc-payment-token-cc.php:72 msgid "ending in %s" msgstr "" #: includes/payment-tokens/class-wc-payment-token-cc.php:73 msgid "(expires %s)" msgstr "" #: includes/payment-tokens/class-wc-payment-token-echeck.php:48 #: includes/wc-account-functions.php:226 includes/wc-account-functions.php:313 msgid "eCheck" msgstr "" #: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:25 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:17 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:23 msgid "Flat Rate" msgstr "" #: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:26 msgid "Lets you charge a fixed rate for shipping." msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:7 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:7 msgid "Enter a cost (excl. tax) or sum, e.g. 10.00 * [qty]." msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:7 msgid "" "Use [qty] for the number of items,
    [cost] " "for the total cost of items, and [fee percent=\"10\" min_fee=\"20\" " "max_fee=\"\"] for percentage based fees." msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:14 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:20 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:89 msgid "Method Title" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:44 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:71 msgid "Shipping Class Costs" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:47 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:74 msgid "These costs can optionally be added based on the %sproduct shipping class%s." msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:54 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:81 msgid "\"%s\" Shipping Class Cost" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:63 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:90 msgid "No Shipping Class Cost" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:71 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:98 msgid "Calculation Type" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:76 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:103 msgid "Per Class: Charge shipping for each shipping class individually" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:77 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:104 msgid "Per Order: Charge shipping for the most expensive shipping class" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:40 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:92 msgid "Free Shipping" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:41 msgid "" "Free Shipping is a special method which can be triggered with coupons and " "minimum spends." msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:81 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:117 msgid "Free Shipping Requires..." msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:87 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:123 msgid "A valid free shipping coupon" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:88 msgid "A minimum order amount" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:89 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:125 msgid "A minimum order amount OR a coupon" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:90 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:126 msgid "A minimum order amount AND a coupon" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:94 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:130 msgid "Minimum Order Amount" msgstr "" #: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:97 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:133 msgid "" "Users will need to spend this amount to get free shipping (if enabled " "above)." msgstr "" #: includes/shipping/legacy-flat-rate/class-wc-shipping-legacy-flat-rate.php:26 msgid "Flat Rate (Legacy)" msgstr "" #: includes/shipping/legacy-flat-rate/class-wc-shipping-legacy-flat-rate.php:27 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:31 #: includes/shipping/legacy-international-delivery/class-wc-shipping-legacy-international-delivery.php:24 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:25 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:25 msgid "" "This method is deprecated in 2.6.0 and will be removed in future " "versions - we recommend disabling it and instead setting up a new rate " "within your Shipping Zones." msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:7 msgid "" "Supports the following placeholders: [qty] = number of items, " "[cost] = cost of items, [fee percent=\"10\" " "min_fee=\"20\"] = Percentage based fee." msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:16 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:85 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:113 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:90 msgid "Once disabled, this legacy method will no longer be available." msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:27 #: includes/shipping/legacy-international-delivery/class-wc-shipping-legacy-international-delivery.php:45 msgid "Availability" msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:32 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:101 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:158 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:114 msgid "All allowed countries" msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:33 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:37 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:102 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:106 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:159 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:163 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:115 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:119 msgid "Specific Countries" msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:44 #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:113 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:170 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:126 msgid "Select some countries" msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:111 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:117 msgid "Additional Rates" msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:114 msgid "" "These rates are extra shipping options with additional costs (based on the " "flat rate)." msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:119 msgid "" "One per line: Option Name | Additional Cost [+- Percents] | Per Cost Type " "(order, class, or item) Example: Priority Mail | 6.95 [+ 0.2%] | " "order." msgstr "" #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:122 msgid "" "Option Name | Additional Cost [+- Percents%] | Per Cost Type (order, class, " "or item)" msgstr "" #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:30 msgid "Free Shipping (Legacy)" msgstr "" #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:96 #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:153 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:109 msgid "Method availability" msgstr "" #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:124 msgid "A minimum order amount (defined below)" msgstr "" #: includes/shipping/legacy-international-delivery/class-wc-shipping-legacy-international-delivery.php:23 msgid "International Flat Rate (Legacy)" msgstr "" #: includes/shipping/legacy-international-delivery/class-wc-shipping-legacy-international-delivery.php:51 msgid "Selected countries" msgstr "" #: includes/shipping/legacy-international-delivery/class-wc-shipping-legacy-international-delivery.php:52 msgid "Excluding selected countries" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:24 msgid "Local Delivery (Legacy)" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:111 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:88 msgid "Enable" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:120 msgid "Local Delivery" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:124 msgid "Fee Type" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:127 msgid "How to calculate delivery charges" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:130 msgid "Fixed amount" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:131 msgid "Percentage of cart total" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:132 msgid "Fixed amount per product" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:137 msgid "Delivery Fee" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:139 msgid "" "What fee do you want to charge for local delivery, disregarded if you " "choose free. Leave blank to disable." msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:145 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:101 msgid "Allowed ZIP/Post Codes" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:147 msgid "What ZIP/post codes are available for local delivery?" msgstr "" #: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php:149 #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:105 msgid "" "Separate codes with a comma. Accepts wildcards, e.g. P* will " "match a postcode of PE30. Also accepts a pattern, e.g. NG1___ " "would match NG1 1AA but not NG10 1AA" msgstr "" #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:24 msgid "Local Pickup (Legacy)" msgstr "" #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:97 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:24 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:73 msgid "Local Pickup" msgstr "" #: includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php:103 msgid "What ZIP/post codes are available for local pickup?" msgstr "" #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:25 msgid "" "Allow customers to pick up orders themselves. By default, when using local " "pickup store base taxes will apply regardless of customer address." msgstr "" #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:90 msgid "Optional cost for local pickup." msgstr "" #: includes/shortcodes/class-wc-shortcode-cart.php:42 msgid "Shipping costs updated." msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:89 msgid "Invalid order. If you have an account please log in and try again." msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:89 #: includes/shortcodes/class-wc-shortcode-my-account.php:113 #: templates/checkout/thankyou.php:32 msgid "My Account" msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:117 msgid "Pay for order" msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:121 #: includes/shortcodes/class-wc-shortcode-checkout.php:168 msgid "" "This order’s status is “%s”—it cannot be paid for. " "Please contact us if you need assistance." msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:125 #: includes/shortcodes/class-wc-shortcode-checkout.php:172 msgid "Sorry, this order is invalid and cannot be paid for." msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:141 #: templates/checkout/thankyou.php:42 msgid "Order Number:" msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:145 #: templates/checkout/thankyou.php:46 msgid "Date:" msgstr "" #: includes/shortcodes/class-wc-shortcode-checkout.php:246 msgid "" "The order totals have been updated. Please confirm your order by pressing " "the Place Order button at the bottom of the page." msgstr "" #: includes/shortcodes/class-wc-shortcode-my-account.php:195 msgid "Your password has been reset." msgstr "" #: includes/shortcodes/class-wc-shortcode-my-account.php:195 msgid "Log in" msgstr "" #: includes/shortcodes/class-wc-shortcode-my-account.php:238 msgid "Enter a username or e-mail address." msgstr "" #: includes/shortcodes/class-wc-shortcode-my-account.php:254 #: includes/shortcodes/class-wc-shortcode-my-account.php:259 msgid "Invalid username or e-mail." msgstr "" #: includes/shortcodes/class-wc-shortcode-my-account.php:272 msgid "Password reset is not allowed for this user" msgstr "" #: includes/shortcodes/class-wc-shortcode-order-tracking.php:48 msgid "Please enter a valid order ID" msgstr "" #: includes/shortcodes/class-wc-shortcode-order-tracking.php:52 msgid "Please enter a valid order email" msgstr "" #: includes/shortcodes/class-wc-shortcode-order-tracking.php:71 msgid "Sorry, we could not find that order ID in our database." msgstr "" #: includes/vendor/class-wp-rest-controller.php:30 msgid "The register_routes() method must be overriden" msgstr "" #: includes/vendor/class-wp-rest-controller.php:40 #: includes/vendor/class-wp-rest-controller.php:50 #: includes/vendor/class-wp-rest-controller.php:60 #: includes/vendor/class-wp-rest-controller.php:70 #: includes/vendor/class-wp-rest-controller.php:80 #: includes/vendor/class-wp-rest-controller.php:90 #: includes/vendor/class-wp-rest-controller.php:100 #: includes/vendor/class-wp-rest-controller.php:110 #: includes/vendor/class-wp-rest-controller.php:120 #: includes/vendor/class-wp-rest-controller.php:130 #: includes/vendor/class-wp-rest-controller.php:140 #: includes/vendor/class-wp-rest-controller.php:151 msgid "Method '%s' not implemented. Must be over-ridden in subclass." msgstr "" #: includes/vendor/class-wp-rest-controller.php:253 msgid "Current page of the collection." msgstr "" #: includes/vendor/class-wp-rest-controller.php:261 msgid "Maximum number of items to be returned in result set." msgstr "" #: includes/vendor/class-wp-rest-controller.php:270 msgid "Limit results to those matching a string." msgstr "" #: includes/vendor/class-wp-rest-controller.php:288 msgid "" "Scope under which the request is made; determines fields present in " "response." msgstr "" #: includes/vendor/wp-rest-functions.php:169 msgid "%s is not one of %s" msgstr "" #: includes/vendor/wp-rest-functions.php:174 #: includes/vendor/wp-rest-functions.php:178 msgid "%s is not of type %s" msgstr "" #: includes/vendor/wp-rest-functions.php:185 includes/wc-rest-functions.php:199 msgid "The date you provided is invalid." msgstr "" #: includes/vendor/wp-rest-functions.php:191 msgid "The email address you provided is invalid." msgstr "" #: includes/vendor/wp-rest-functions.php:200 msgid "%s must be greater than %d (exclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:202 msgid "%s must be greater than %d (inclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:206 msgid "%s must be less than %d (exclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:208 msgid "%s must be less than %d (inclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:213 msgid "%s must be between %d (exclusive) and %d (exclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:217 msgid "%s must be between %d (inclusive) and %d (exclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:221 msgid "%s must be between %d (exclusive) and %d (inclusive)" msgstr "" #: includes/vendor/wp-rest-functions.php:225 msgid "%s must be between %d (inclusive) and %d (inclusive)" msgstr "" #: includes/wc-account-functions.php:90 msgid "Dashboard" msgstr "" #: includes/wc-account-functions.php:196 msgid "File" msgstr "" #: includes/wc-account-functions.php:197 msgid "Remaining" msgstr "" #: includes/wc-account-functions.php:198 includes/wc-account-functions.php:212 msgid "Expires" msgstr "" #: includes/wc-account-functions.php:225 includes/wc-account-functions.php:291 msgid "Credit Card" msgstr "" #: includes/wc-account-functions.php:265 msgid "Make Default" msgstr "" #: includes/wc-attribute-functions.php:172 msgid "Select" msgstr "" #: includes/wc-attribute-functions.php:173 msgid "Text" msgstr "" #: includes/wc-cart-functions.php:27 msgid "This product is protected and cannot be purchased." msgstr "" #: includes/wc-cart-functions.php:109 msgid "%s has been added to your cart." msgid_plural "%s have been added to your cart." msgstr[0] "" msgstr[1] "" #: includes/wc-cart-functions.php:114 msgid "Continue Shopping" msgstr "" #: includes/wc-cart-functions.php:140 msgid "and" msgstr "" #: includes/wc-cart-functions.php:245 templates/cart/cart.php:138 msgid "Coupon:" msgstr "" #: includes/wc-cart-functions.php:276 msgid "Free shipping coupon" msgstr "" #: includes/wc-cart-functions.php:281 msgid "[Remove]" msgstr "" #: includes/wc-cart-functions.php:308 templates/cart/cart-totals.php:71 msgid "estimated for %s" msgstr "" #: includes/wc-core-functions.php:84 msgid "Order – %s" msgstr "" #: includes/wc-core-functions.php:90 msgid "Invalid order status" msgstr "" #: includes/wc-core-functions.php:137 msgid "Invalid order ID" msgstr "" #: includes/wc-core-functions.php:279 msgid "United Arab Emirates dirham" msgstr "" #: includes/wc-core-functions.php:280 msgid "Afghan afghani" msgstr "" #: includes/wc-core-functions.php:281 msgid "Albanian lek" msgstr "" #: includes/wc-core-functions.php:282 msgid "Armenian dram" msgstr "" #: includes/wc-core-functions.php:283 msgid "Netherlands Antillean guilder" msgstr "" #: includes/wc-core-functions.php:284 msgid "Angolan kwanza" msgstr "" #: includes/wc-core-functions.php:285 msgid "Argentine peso" msgstr "" #: includes/wc-core-functions.php:286 msgid "Australian dollar" msgstr "" #: includes/wc-core-functions.php:287 msgid "Aruban florin" msgstr "" #: includes/wc-core-functions.php:288 msgid "Azerbaijani manat" msgstr "" #: includes/wc-core-functions.php:289 msgid "Bosnia and Herzegovina convertible mark" msgstr "" #: includes/wc-core-functions.php:290 msgid "Barbadian dollar" msgstr "" #: includes/wc-core-functions.php:291 msgid "Bangladeshi taka" msgstr "" #: includes/wc-core-functions.php:292 msgid "Bulgarian lev" msgstr "" #: includes/wc-core-functions.php:293 msgid "Bahraini dinar" msgstr "" #: includes/wc-core-functions.php:294 msgid "Burundian franc" msgstr "" #: includes/wc-core-functions.php:295 msgid "Bermudian dollar" msgstr "" #: includes/wc-core-functions.php:296 msgid "Brunei dollar" msgstr "" #: includes/wc-core-functions.php:297 msgid "Bolivian boliviano" msgstr "" #: includes/wc-core-functions.php:298 msgid "Brazilian real" msgstr "" #: includes/wc-core-functions.php:299 msgid "Bahamian dollar" msgstr "" #: includes/wc-core-functions.php:300 msgid "Bitcoin" msgstr "" #: includes/wc-core-functions.php:301 msgid "Bhutanese ngultrum" msgstr "" #: includes/wc-core-functions.php:302 msgid "Botswana pula" msgstr "" #: includes/wc-core-functions.php:303 msgid "Belarusian ruble" msgstr "" #: includes/wc-core-functions.php:304 msgid "Belize dollar" msgstr "" #: includes/wc-core-functions.php:305 msgid "Canadian dollar" msgstr "" #: includes/wc-core-functions.php:306 msgid "Congolese franc" msgstr "" #: includes/wc-core-functions.php:307 msgid "Swiss franc" msgstr "" #: includes/wc-core-functions.php:308 msgid "Chilean peso" msgstr "" #: includes/wc-core-functions.php:309 msgid "Chinese yuan" msgstr "" #: includes/wc-core-functions.php:310 msgid "Colombian peso" msgstr "" #: includes/wc-core-functions.php:311 msgid "Costa Rican colón" msgstr "" #: includes/wc-core-functions.php:312 msgid "Cuban convertible peso" msgstr "" #: includes/wc-core-functions.php:313 msgid "Cuban peso" msgstr "" #: includes/wc-core-functions.php:314 msgid "Cape Verdean escudo" msgstr "" #: includes/wc-core-functions.php:315 msgid "Czech koruna" msgstr "" #: includes/wc-core-functions.php:316 msgid "Djiboutian franc" msgstr "" #: includes/wc-core-functions.php:317 msgid "Danish krone" msgstr "" #: includes/wc-core-functions.php:318 msgid "Dominican peso" msgstr "" #: includes/wc-core-functions.php:319 msgid "Algerian dinar" msgstr "" #: includes/wc-core-functions.php:320 msgid "Egyptian pound" msgstr "" #: includes/wc-core-functions.php:321 msgid "Eritrean nakfa" msgstr "" #: includes/wc-core-functions.php:322 msgid "Ethiopian birr" msgstr "" #: includes/wc-core-functions.php:323 msgid "Euro" msgstr "" #: includes/wc-core-functions.php:324 msgid "Fijian dollar" msgstr "" #: includes/wc-core-functions.php:325 msgid "Falkland Islands pound" msgstr "" #: includes/wc-core-functions.php:326 msgid "Pound sterling" msgstr "" #: includes/wc-core-functions.php:327 msgid "Georgian lari" msgstr "" #: includes/wc-core-functions.php:328 msgid "Guernsey pound" msgstr "" #: includes/wc-core-functions.php:329 msgid "Ghana cedi" msgstr "" #: includes/wc-core-functions.php:330 msgid "Gibraltar pound" msgstr "" #: includes/wc-core-functions.php:331 msgid "Gambian dalasi" msgstr "" #: includes/wc-core-functions.php:332 msgid "Guinean franc" msgstr "" #: includes/wc-core-functions.php:333 msgid "Guatemalan quetzal" msgstr "" #: includes/wc-core-functions.php:334 msgid "Guyanese dollar" msgstr "" #: includes/wc-core-functions.php:335 msgid "Hong Kong dollar" msgstr "" #: includes/wc-core-functions.php:336 msgid "Honduran lempira" msgstr "" #: includes/wc-core-functions.php:337 msgid "Croatian kuna" msgstr "" #: includes/wc-core-functions.php:338 msgid "Haitian gourde" msgstr "" #: includes/wc-core-functions.php:339 msgid "Hungarian forint" msgstr "" #: includes/wc-core-functions.php:340 msgid "Indonesian rupiah" msgstr "" #: includes/wc-core-functions.php:341 msgid "Israeli new shekel" msgstr "" #: includes/wc-core-functions.php:342 msgid "Manx pound" msgstr "" #: includes/wc-core-functions.php:343 msgid "Indian rupee" msgstr "" #: includes/wc-core-functions.php:344 msgid "Iraqi dinar" msgstr "" #: includes/wc-core-functions.php:345 msgid "Iranian rial" msgstr "" #: includes/wc-core-functions.php:346 msgid "Icelandic króna" msgstr "" #: includes/wc-core-functions.php:347 msgid "Jersey pound" msgstr "" #: includes/wc-core-functions.php:348 msgid "Jamaican dollar" msgstr "" #: includes/wc-core-functions.php:349 msgid "Jordanian dinar" msgstr "" #: includes/wc-core-functions.php:350 msgid "Japanese yen" msgstr "" #: includes/wc-core-functions.php:351 msgid "Kenyan shilling" msgstr "" #: includes/wc-core-functions.php:352 msgid "Kyrgyzstani som" msgstr "" #: includes/wc-core-functions.php:353 msgid "Cambodian riel" msgstr "" #: includes/wc-core-functions.php:354 msgid "Comorian franc" msgstr "" #: includes/wc-core-functions.php:355 msgid "North Korean won" msgstr "" #: includes/wc-core-functions.php:356 msgid "South Korean won" msgstr "" #: includes/wc-core-functions.php:357 msgid "Kuwaiti dinar" msgstr "" #: includes/wc-core-functions.php:358 msgid "Cayman Islands dollar" msgstr "" #: includes/wc-core-functions.php:359 msgid "Kazakhstani tenge" msgstr "" #: includes/wc-core-functions.php:360 msgid "Lao kip" msgstr "" #: includes/wc-core-functions.php:361 msgid "Lebanese pound" msgstr "" #: includes/wc-core-functions.php:362 msgid "Sri Lankan rupee" msgstr "" #: includes/wc-core-functions.php:363 msgid "Liberian dollar" msgstr "" #: includes/wc-core-functions.php:364 msgid "Lesotho loti" msgstr "" #: includes/wc-core-functions.php:365 msgid "Libyan dinar" msgstr "" #: includes/wc-core-functions.php:366 msgid "Moroccan dirham" msgstr "" #: includes/wc-core-functions.php:367 msgid "Moldovan leu" msgstr "" #: includes/wc-core-functions.php:368 msgid "Malagasy ariary" msgstr "" #: includes/wc-core-functions.php:369 msgid "Macedonian denar" msgstr "" #: includes/wc-core-functions.php:370 msgid "Burmese kyat" msgstr "" #: includes/wc-core-functions.php:371 msgid "Mongolian tögrög" msgstr "" #: includes/wc-core-functions.php:372 msgid "Macanese pataca" msgstr "" #: includes/wc-core-functions.php:373 msgid "Mauritanian ouguiya" msgstr "" #: includes/wc-core-functions.php:374 msgid "Mauritian rupee" msgstr "" #: includes/wc-core-functions.php:375 msgid "Maldivian rufiyaa" msgstr "" #: includes/wc-core-functions.php:376 msgid "Malawian kwacha" msgstr "" #: includes/wc-core-functions.php:377 msgid "Mexican peso" msgstr "" #: includes/wc-core-functions.php:378 msgid "Malaysian ringgit" msgstr "" #: includes/wc-core-functions.php:379 msgid "Mozambican metical" msgstr "" #: includes/wc-core-functions.php:380 msgid "Namibian dollar" msgstr "" #: includes/wc-core-functions.php:381 msgid "Nigerian naira" msgstr "" #: includes/wc-core-functions.php:382 msgid "Nicaraguan córdoba" msgstr "" #: includes/wc-core-functions.php:383 msgid "Norwegian krone" msgstr "" #: includes/wc-core-functions.php:384 msgid "Nepalese rupee" msgstr "" #: includes/wc-core-functions.php:385 msgid "New Zealand dollar" msgstr "" #: includes/wc-core-functions.php:386 msgid "Omani rial" msgstr "" #: includes/wc-core-functions.php:387 msgid "Panamanian balboa" msgstr "" #: includes/wc-core-functions.php:388 msgid "Peruvian nuevo sol" msgstr "" #: includes/wc-core-functions.php:389 msgid "Papua New Guinean kina" msgstr "" #: includes/wc-core-functions.php:390 msgid "Philippine peso" msgstr "" #: includes/wc-core-functions.php:391 msgid "Pakistani rupee" msgstr "" #: includes/wc-core-functions.php:392 msgid "Polish złoty" msgstr "" #: includes/wc-core-functions.php:393 msgid "Transnistrian ruble" msgstr "" #: includes/wc-core-functions.php:394 msgid "Paraguayan guaraní" msgstr "" #: includes/wc-core-functions.php:395 msgid "Qatari riyal" msgstr "" #: includes/wc-core-functions.php:396 msgid "Romanian leu" msgstr "" #: includes/wc-core-functions.php:397 msgid "Serbian dinar" msgstr "" #: includes/wc-core-functions.php:398 msgid "Russian ruble" msgstr "" #: includes/wc-core-functions.php:399 msgid "Rwandan franc" msgstr "" #: includes/wc-core-functions.php:400 msgid "Saudi riyal" msgstr "" #: includes/wc-core-functions.php:401 msgid "Solomon Islands dollar" msgstr "" #: includes/wc-core-functions.php:402 msgid "Seychellois rupee" msgstr "" #: includes/wc-core-functions.php:403 msgid "Sudanese pound" msgstr "" #: includes/wc-core-functions.php:404 msgid "Swedish krona" msgstr "" #: includes/wc-core-functions.php:405 msgid "Singapore dollar" msgstr "" #: includes/wc-core-functions.php:406 msgid "Saint Helena pound" msgstr "" #: includes/wc-core-functions.php:407 msgid "Sierra Leonean leone" msgstr "" #: includes/wc-core-functions.php:408 msgid "Somali shilling" msgstr "" #: includes/wc-core-functions.php:409 msgid "Surinamese dollar" msgstr "" #: includes/wc-core-functions.php:410 msgid "South Sudanese pound" msgstr "" #: includes/wc-core-functions.php:411 msgid "São Tomé and Príncipe dobra" msgstr "" #: includes/wc-core-functions.php:412 msgid "Syrian pound" msgstr "" #: includes/wc-core-functions.php:413 msgid "Swazi lilangeni" msgstr "" #: includes/wc-core-functions.php:414 msgid "Thai baht" msgstr "" #: includes/wc-core-functions.php:415 msgid "Tajikistani somoni" msgstr "" #: includes/wc-core-functions.php:416 msgid "Turkmenistan manat" msgstr "" #: includes/wc-core-functions.php:417 msgid "Tunisian dinar" msgstr "" #: includes/wc-core-functions.php:418 msgid "Tongan paʻanga" msgstr "" #: includes/wc-core-functions.php:419 msgid "Turkish lira" msgstr "" #: includes/wc-core-functions.php:420 msgid "Trinidad and Tobago dollar" msgstr "" #: includes/wc-core-functions.php:421 msgid "New Taiwan dollar" msgstr "" #: includes/wc-core-functions.php:422 msgid "Tanzanian shilling" msgstr "" #: includes/wc-core-functions.php:423 msgid "Ukrainian hryvnia" msgstr "" #: includes/wc-core-functions.php:424 msgid "Ugandan shilling" msgstr "" #: includes/wc-core-functions.php:425 msgid "United States dollar" msgstr "" #: includes/wc-core-functions.php:426 msgid "Uruguayan peso" msgstr "" #: includes/wc-core-functions.php:427 msgid "Uzbekistani som" msgstr "" #: includes/wc-core-functions.php:428 msgid "Venezuelan bolívar" msgstr "" #: includes/wc-core-functions.php:429 msgid "Vietnamese đồng" msgstr "" #: includes/wc-core-functions.php:430 msgid "Vanuatu vatu" msgstr "" #: includes/wc-core-functions.php:431 msgid "Samoan tālā" msgstr "" #: includes/wc-core-functions.php:432 msgid "Central African CFA franc" msgstr "" #: includes/wc-core-functions.php:433 msgid "East Caribbean dollar" msgstr "" #: includes/wc-core-functions.php:434 msgid "West African CFA franc" msgstr "" #: includes/wc-core-functions.php:435 msgid "CFP franc" msgstr "" #: includes/wc-core-functions.php:436 msgid "Yemeni rial" msgstr "" #: includes/wc-core-functions.php:437 msgid "South African rand" msgstr "" #: includes/wc-core-functions.php:438 msgid "Zambian kwacha" msgstr "" #: includes/wc-core-functions.php:1188 msgid "MasterCard" msgstr "" #: includes/wc-core-functions.php:1189 msgid "Visa" msgstr "" #: includes/wc-core-functions.php:1190 msgid "Discover" msgstr "" #: includes/wc-core-functions.php:1191 msgid "American Express" msgstr "" #: includes/wc-core-functions.php:1192 msgid "Diners" msgstr "" #: includes/wc-core-functions.php:1193 msgid "JCB" msgstr "" #: includes/wc-coupon-functions.php:24 msgid "Cart Discount" msgstr "" #: includes/wc-coupon-functions.php:25 msgid "Cart % Discount" msgstr "" #: includes/wc-coupon-functions.php:26 msgid "Product Discount" msgstr "" #: includes/wc-coupon-functions.php:27 msgid "Product % Discount" msgstr "" #: includes/wc-deprecated-functions.php:708 msgid "" "The shop_order_status taxonomy is no more in WooCommerce 2.2! You should " "use the new WooCommerce post_status instead, read more..." msgstr "" #: includes/wc-deprecated-functions.php:712 msgid "" "The \"publish\" order status is no more in WooCommerce 2.2! You should use " "the new WooCommerce post_status instead, read more..." msgstr "" #: includes/wc-notice-functions.php:27 includes/wc-notice-functions.php:59 #: includes/wc-notice-functions.php:77 includes/wc-notice-functions.php:99 #: includes/wc-notice-functions.php:113 includes/wc-notice-functions.php:126 #: includes/wc-notice-functions.php:173 msgid "This function should not be called before woocommerce_init." msgstr "" #: includes/wc-order-functions.php:222 msgid "wc_get_order should not be called before the woocommerce_init action." msgstr "" #: includes/wc-order-functions.php:694 msgid "Unpaid order cancelled - time limit reached." msgstr "" #: includes/wc-order-functions.php:836 msgid "Refund – %s" msgstr "" #: includes/wc-order-functions.php:987 includes/wc-update-functions.php:771 msgid "Order Fully Refunded" msgstr "" #: includes/wc-product-functions.php:26 msgid "wc_get_product should not be called before the woocommerce_init action." msgstr "" #: includes/wc-rest-functions.php:71 msgid "Invalid URL %s." msgstr "" #: includes/wc-rest-functions.php:124 msgid "Zero size file downloaded." msgstr "" #: includes/wc-rest-functions.php:192 msgid "%1$s is not of type %2$s" msgstr "" #: includes/wc-template-functions.php:31 msgid "Checkout is not available whilst your cart is empty." msgstr "" #: includes/wc-template-functions.php:146 msgid "New products" msgstr "" #: includes/wc-template-functions.php:154 msgid "New products added to %s" msgstr "" #: includes/wc-template-functions.php:163 msgid "New products tagged %s" msgstr "" #: includes/wc-template-functions.php:468 msgid "Search Results: “%s”" msgstr "" #: includes/wc-template-functions.php:471 msgid " – Page %s" msgstr "" #: includes/wc-template-functions.php:775 msgid "Default sorting" msgstr "" #: includes/wc-template-functions.php:776 msgid "Sort by popularity" msgstr "" #: includes/wc-template-functions.php:777 msgid "Sort by average rating" msgstr "" #: includes/wc-template-functions.php:778 msgid "Sort by newness" msgstr "" #: includes/wc-template-functions.php:779 msgid "Sort by price: low to high" msgstr "" #: includes/wc-template-functions.php:780 msgid "Sort by price: high to low" msgstr "" #: includes/wc-template-functions.php:1115 #: templates/checkout/form-shipping.php:54 #: templates/single-product/tabs/additional-information.php:25 msgid "Additional Information" msgstr "" #: includes/wc-template-functions.php:1124 msgid "Reviews (%d)" msgstr "" #: includes/wc-template-functions.php:1257 msgid "" "Use $args argument as an array instead. Deprecated argument will be removed " "in WC 2.2." msgstr "" #: includes/wc-template-functions.php:1480 msgid "Place order" msgstr "" #: includes/wc-template-functions.php:1847 msgid "Update country" msgstr "" #: includes/wc-template-functions.php:1868 #: templates/cart/shipping-calculator.php:63 msgid "Select a state…" msgstr "" #: includes/wc-template-functions.php:1913 #: includes/wc-template-functions.php:2060 #: includes/wc-template-functions.php:2070 msgid "Choose an option" msgstr "" #: includes/wc-term-functions.php:167 msgid "Select a category" msgstr "" #: includes/wc-term-functions.php:170 msgid "Uncategorized" msgstr "" #: includes/wc-user-functions.php:53 msgid "An account is already registered with your email address. Please login." msgstr "" #: includes/wc-user-functions.php:61 msgid "Please enter a valid account username." msgstr "" #: includes/wc-user-functions.php:65 msgid "An account is already registered with that username. Please choose another." msgstr "" #: includes/wc-user-functions.php:85 msgid "Please enter an account password." msgstr "" #: includes/wc-user-functions.php:111 msgid "ERROR" msgstr "" #: includes/wc-user-functions.php:111 msgid "" "Couldn’t register you… please contact us if you continue to " "have problems." msgstr "" #: includes/wc-webhook-functions.php:23 msgid "Active" msgstr "" #: includes/wc-webhook-functions.php:24 msgid "Paused" msgstr "" #: includes/widgets/class-wc-widget-cart.php:25 msgid "Display the user's Cart in the sidebar." msgstr "" #: includes/widgets/class-wc-widget-cart.php:27 msgid "WooCommerce Cart" msgstr "" #: includes/widgets/class-wc-widget-cart.php:31 msgid "Cart" msgstr "" #: includes/widgets/class-wc-widget-cart.php:37 msgid "Hide if cart is empty" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:23 msgid "Shows active layered nav filters so users can see and deactivate them." msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:25 msgid "WooCommerce Layered Nav Filters" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:29 msgid "Active Filters" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:147 #: includes/widgets/class-wc-widget-layered-nav-filters.php:154 #: includes/widgets/class-wc-widget-layered-nav-filters.php:159 #: includes/widgets/class-wc-widget-layered-nav-filters.php:164 msgid "Remove filter" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:154 msgid "Min" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:159 msgid "Max" msgstr "" #: includes/widgets/class-wc-widget-layered-nav-filters.php:164 #: includes/widgets/class-wc-widget-rating-filter.php:177 #: includes/widgets/class-wc-widget-rating-filter.php:178 msgid "Rated %s and above" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:23 msgid "" "Shows a custom attribute in a widget which lets you narrow down the list of " "products when viewing product categories." msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:25 msgid "WooCommerce Layered Nav" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:74 msgid "Filter by" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:80 msgid "Attribute" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:88 msgid "List" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:89 msgid "Dropdown" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:95 msgid "Query type" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:97 msgid "AND" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:98 msgid "OR" msgstr "" #: includes/widgets/class-wc-widget-layered-nav.php:224 msgid "Any %s" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:25 msgid "" "Shows a price filter slider in a widget which lets you narrow down the list " "of shown products when viewing product categories." msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:27 msgid "WooCommerce Price Filter" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:31 msgid "Filter by price" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:149 msgid "Min price" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:150 msgid "Max price" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:151 msgid "Filter" msgstr "" #: includes/widgets/class-wc-widget-price-filter.php:153 msgid "Price:" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:37 msgid "A list or dropdown of product categories." msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:39 msgid "WooCommerce Product Categories" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:51 msgid "Category Order" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:58 msgid "Show as dropdown" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:63 msgid "Show product counts" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:68 msgid "Show hierarchy" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:73 msgid "Only show children of the current category" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:78 msgid "Hide empty categories" msgstr "" #: includes/widgets/class-wc-widget-product-categories.php:236 msgid "No product categories exist." msgstr "" #: includes/widgets/class-wc-widget-product-search.php:23 msgid "A Search box for products only." msgstr "" #: includes/widgets/class-wc-widget-product-search.php:25 msgid "WooCommerce Product Search" msgstr "" #: includes/widgets/class-wc-widget-product-tag-cloud.php:23 msgid "Your most used product tags in cloud format." msgstr "" #: includes/widgets/class-wc-widget-product-tag-cloud.php:25 msgid "WooCommerce Product Tags" msgstr "" #: includes/widgets/class-wc-widget-product-tag-cloud.php:86 #. translators: %s for product quantity, e.g. 1 product and 2 products msgid "%s product" msgid_plural "%s products" msgstr[0] "" msgstr[1] "" #: includes/widgets/class-wc-widget-products.php:23 msgid "Display a list of your products on your site." msgstr "" #: includes/widgets/class-wc-widget-products.php:25 msgid "WooCommerce Products" msgstr "" #: includes/widgets/class-wc-widget-products.php:38 #: includes/widgets/class-wc-widget-recently-viewed.php:38 #: includes/widgets/class-wc-widget-top-rated-products.php:40 msgid "Number of products to show" msgstr "" #: includes/widgets/class-wc-widget-products.php:45 msgid "All Products" msgstr "" #: includes/widgets/class-wc-widget-products.php:46 msgid "Featured Products" msgstr "" #: includes/widgets/class-wc-widget-products.php:47 msgid "On-sale Products" msgstr "" #: includes/widgets/class-wc-widget-products.php:57 msgid "Random" msgstr "" #: includes/widgets/class-wc-widget-products.php:58 msgid "Sales" msgstr "" #: includes/widgets/class-wc-widget-products.php:66 msgid "ASC" msgstr "" #: includes/widgets/class-wc-widget-products.php:67 msgid "DESC" msgstr "" #: includes/widgets/class-wc-widget-products.php:73 msgid "Hide free products" msgstr "" #: includes/widgets/class-wc-widget-products.php:78 msgid "Show hidden products" msgstr "" #: includes/widgets/class-wc-widget-rating-filter.php:24 msgid "Filter products by rating when viewing product archives and categories." msgstr "" #: includes/widgets/class-wc-widget-rating-filter.php:26 msgid "WooCommerce Average Rating Filter" msgstr "" #: includes/widgets/class-wc-widget-recent-reviews.php:23 msgid "Display a list of your most recent reviews on your site." msgstr "" #: includes/widgets/class-wc-widget-recent-reviews.php:29 msgid "Recent Reviews" msgstr "" #: includes/widgets/class-wc-widget-recent-reviews.php:38 msgid "Number of reviews to show" msgstr "" #: includes/widgets/class-wc-widget-recently-viewed.php:23 msgid "Display a list of recently viewed products." msgstr "" #: includes/widgets/class-wc-widget-recently-viewed.php:25 msgid "WooCommerce Recently Viewed" msgstr "" #: includes/widgets/class-wc-widget-recently-viewed.php:29 msgid "Recently Viewed Products" msgstr "" #: includes/widgets/class-wc-widget-top-rated-products.php:25 msgid "Display a list of your top rated products on your site." msgstr "" #: includes/widgets/class-wc-widget-top-rated-products.php:27 msgid "WooCommerce Top Rated Products" msgstr "" #: includes/widgets/class-wc-widget-top-rated-products.php:31 msgid "Top Rated Products" msgstr "" #: templates/auth/form-grant-access.php:25 templates/auth/form-login.php:27 msgid "%s would like to connect to your store" msgstr "" #: templates/auth/form-grant-access.php:29 msgid "This will give \"%s\" %s access which will allow it to:" msgstr "" #: templates/auth/form-grant-access.php:39 msgid "Logged in as %s" msgstr "" #: templates/auth/form-grant-access.php:43 msgid "Approve" msgstr "" #: templates/auth/form-grant-access.php:44 msgid "Deny" msgstr "" #: templates/auth/form-login.php:31 msgid "" "To connect to %1$s you need to be logged in. Log in to your store below, or " "%2$scancel and return to %1$s%3$s" msgstr "" #: templates/auth/form-login.php:35 templates/myaccount/form-login.php:44 msgid "Username or email address" msgstr "" #: templates/auth/form-login.php:39 templates/global/form-login.php:39 #: templates/myaccount/form-login.php:48 templates/myaccount/form-login.php:98 msgid "Password" msgstr "" #: templates/auth/header.php:29 msgid "Application Authentication Request" msgstr "" #: templates/cart/cart-empty.php:28 msgid "Your cart is currently empty." msgstr "" #: templates/cart/cart-empty.php:36 msgid "Return To Shop" msgstr "" #: templates/cart/cart-shipping.php:48 msgid "Shipping costs will be calculated once you have provided your address." msgstr "" #: templates/cart/cart-shipping.php:50 msgid "" "There are no shipping methods available. Please double check your address, " "or contact us if you need any help." msgstr "" #: templates/cart/cart-totals.php:28 msgid "Cart Totals" msgstr "" #: templates/cart/cart-totals.php:33 templates/cart/cart-totals.php:34 #: templates/cart/mini-cart.php:80 templates/checkout/review-order.php:59 msgid "Subtotal" msgstr "" #: templates/cart/cart.php:38 templates/cart/cart.php:103 #: templates/emails/email-order-details.php:35 msgid "Quantity" msgstr "" #: templates/cart/cart.php:60 templates/cart/mini-cart.php:49 msgid "Remove this item" msgstr "" #: templates/cart/cart.php:138 templates/checkout/form-coupon.php:40 msgid "Apply Coupon" msgstr "" #: templates/cart/cart.php:144 msgid "Update Cart" msgstr "" #: templates/cart/cross-sells.php:47 msgid "You may be interested in…" msgstr "" #: templates/cart/mini-cart.php:72 msgid "No products in the cart." msgstr "" #: templates/cart/mini-cart.php:86 msgid "Checkout" msgstr "" #: templates/cart/proceed-to-checkout-button.php:27 msgid "Proceed to Checkout" msgstr "" #: templates/cart/shipping-calculator.php:33 msgid "Calculate Shipping" msgstr "" #: templates/cart/shipping-calculator.php:56 #: templates/cart/shipping-calculator.php:62 #: templates/cart/shipping-calculator.php:74 msgid "State / county" msgstr "" #: templates/cart/shipping-calculator.php:96 msgid "Update Totals" msgstr "" #: templates/checkout/cart-errors.php:27 msgid "" "There are some issues with the items in your cart (shown above). Please go " "back to the cart page and resolve these issues before checking out." msgstr "" #: templates/checkout/cart-errors.php:31 msgid "Return To Cart" msgstr "" #: templates/checkout/form-billing.php:29 msgid "Billing & Shipping" msgstr "" #: templates/checkout/form-billing.php:52 msgid "Create an account?" msgstr "" #: templates/checkout/form-billing.php:63 msgid "" "Create an account by entering the information below. If you are a returning " "customer please login at the top of the page." msgstr "" #: templates/checkout/form-checkout.php:29 msgid "You must be logged in to checkout." msgstr "" #: templates/checkout/form-checkout.php:55 msgid "Your order" msgstr "" #: templates/checkout/form-coupon.php:28 msgid "Have a coupon?" msgstr "" #: templates/checkout/form-coupon.php:28 msgid "Click here to enter your code" msgstr "" #: templates/checkout/form-login.php:27 msgid "Returning customer?" msgstr "" #: templates/checkout/form-login.php:28 msgid "Click here to login" msgstr "" #: templates/checkout/form-login.php:35 msgid "" "If you have shopped with us before, please enter your details in the boxes " "below. If you are a new customer, please proceed to the Billing & " "Shipping section." msgstr "" #: templates/checkout/form-pay.php:79 msgid "" "Sorry, it seems that there are no available payment methods for your " "location. Please contact us if you require assistance or wish to make " "alternate arrangements." msgstr "" #: templates/checkout/form-shipping.php:28 msgid "Ship to a different address?" msgstr "" #: templates/checkout/payment.php:35 msgid "" "Sorry, it seems that there are no available payment methods for your state. " "Please contact us if you require assistance or wish to make alternate " "arrangements." msgstr "" #: templates/checkout/payment.php:35 msgid "Please fill in your details above to see available payment methods." msgstr "" #: templates/checkout/payment.php:42 msgid "" "Since your browser does not support JavaScript, or it is disabled, please " "ensure you click the Update Totals button before placing your " "order. You may be charged more than the amount stated above if you fail to " "do so." msgstr "" #: templates/checkout/payment.php:43 msgid "Update totals" msgstr "" #: templates/checkout/terms.php:17 msgid "" "I’ve read and accept the terms & " "conditions" msgstr "" #: templates/checkout/thankyou.php:27 msgid "" "Unfortunately your order cannot be processed as the originating " "bank/merchant has declined your transaction. Please attempt your purchase " "again." msgstr "" #: templates/checkout/thankyou.php:38 templates/checkout/thankyou.php:69 msgid "Thank you. Your order has been received." msgstr "" #: templates/emails/admin-cancelled-order.php:28 #: templates/emails/plain/admin-cancelled-order.php:25 msgid "The order #%d from %s has been cancelled. The order was as follows:" msgstr "" #: templates/emails/admin-failed-order.php:28 #: templates/emails/plain/admin-failed-order.php:25 msgid "Payment for order #%d from %s has failed. The order was as follows:" msgstr "" #: templates/emails/admin-new-order.php:28 msgid "You have received an order from %s. The order is as follows:" msgstr "" #: templates/emails/customer-completed-order.php:28 #: templates/emails/plain/customer-completed-order.php:25 msgid "" "Hi there. Your recent order on %s has been completed. Your order details " "are shown below for your reference:" msgstr "" #: templates/emails/customer-invoice.php:29 #: templates/emails/plain/customer-invoice.php:26 msgid "" "An order has been created for you on %s. To pay for this order please use " "the following link: %s" msgstr "" #: templates/emails/customer-invoice.php:29 msgid "pay" msgstr "" #: templates/emails/customer-new-account.php:27 #: templates/emails/plain/customer-new-account.php:25 msgid "Thanks for creating an account on %s. Your username is %s" msgstr "" #: templates/emails/customer-new-account.php:31 msgid "Your password has been automatically generated: %s" msgstr "" #: templates/emails/customer-new-account.php:35 #: templates/emails/plain/customer-new-account.php:30 msgid "" "You can access your account area to view your orders and change your " "password here: %s." msgstr "" #: templates/emails/customer-note.php:28 #: templates/emails/plain/customer-note.php:25 msgid "Hello, a note has just been added to your order:" msgstr "" #: templates/emails/customer-note.php:32 #: templates/emails/plain/customer-note.php:33 msgid "For your reference, your order details are shown below." msgstr "" #: templates/emails/customer-on-hold-order.php:28 #: templates/emails/plain/customer-on-hold-order.php:25 msgid "" "Your order is on-hold until we confirm payment has been received. Your " "order details are shown below for your reference:" msgstr "" #: templates/emails/customer-processing-order.php:28 #: templates/emails/plain/customer-processing-order.php:25 msgid "" "Your order has been received and is now being processed. Your order details " "are shown below for your reference:" msgstr "" #: templates/emails/customer-refunded-order.php:30 msgid "Hi there. Your order on %s has been partially refunded." msgstr "" #: templates/emails/customer-refunded-order.php:33 msgid "Hi there. Your order on %s has been refunded." msgstr "" #: templates/emails/customer-reset-password.php:27 #: templates/emails/plain/customer-reset-password.php:25 msgid "Someone requested that the password be reset for the following account:" msgstr "" #: templates/emails/customer-reset-password.php:28 #: templates/emails/plain/customer-reset-password.php:27 msgid "Username: %s" msgstr "" #: templates/emails/customer-reset-password.php:29 #: templates/emails/plain/customer-reset-password.php:28 msgid "If this was a mistake, just ignore this email and nothing will happen." msgstr "" #: templates/emails/customer-reset-password.php:30 #: templates/emails/plain/customer-reset-password.php:29 msgid "To reset your password, visit the following address:" msgstr "" #: templates/emails/customer-reset-password.php:33 msgid "Click here to reset your password" msgstr "" #: templates/emails/email-addresses.php:26 #: templates/emails/plain/email-addresses.php:23 msgid "Billing address" msgstr "" #: templates/emails/email-addresses.php:32 #: templates/emails/plain/email-addresses.php:27 msgid "Shipping address" msgstr "" #: templates/emails/email-customer-details.php:26 #: templates/emails/plain/email-customer-details.php:25 msgid "Customer details" msgstr "" #: templates/emails/plain/admin-new-order.php:25 msgid "You have received an order from %s." msgstr "" #: templates/emails/plain/customer-new-account.php:28 msgid "Your password is %s." msgstr "" #: templates/emails/plain/customer-refunded-order.php:25 msgid "" "Hi there. Your order on %s has been refunded. Your order details are shown " "below for your reference:" msgstr "" #: templates/emails/plain/email-order-details.php:25 msgid "Order number: %s" msgstr "" #: templates/emails/plain/email-order-details.php:26 msgid "jS F Y" msgstr "" #: templates/emails/plain/email-order-details.php:43 msgid "View order: %s" msgstr "" #: templates/emails/plain/email-order-items.php:44 msgid "Quantity: %s" msgstr "" #: templates/emails/plain/email-order-items.php:47 msgid "Cost: %s" msgstr "" #: templates/global/form-login.php:35 #: templates/myaccount/form-lost-password.php:30 msgid "Username or email" msgstr "" #: templates/global/form-login.php:51 templates/myaccount/form-login.php:58 msgid "Remember me" msgstr "" #: templates/global/form-login.php:55 templates/myaccount/form-login.php:62 msgid "Lost your password?" msgstr "" #: templates/loop/no-products-found.php:24 msgid "No products were found matching your selection." msgstr "" #: templates/loop/result-count.php:39 msgid "Showing the single result" msgid_plural "Showing all %d results" msgstr[0] "" msgstr[1] "" #: templates/loop/sale-flash.php:28 templates/single-product/sale-flash.php:28 msgid "Sale!" msgstr "" #: templates/myaccount/dashboard.php:28 msgid "Hello %s%s%s (not %2$s? %sSign out%s)" msgstr "" #: templates/myaccount/dashboard.php:34 msgid "" "From your account dashboard you can view your %1$srecent orders%2$s, manage " "your %3$sshipping and billing addresses%2$s and %4$sedit your password and " "account details%2$s." msgstr "" #: templates/myaccount/downloads.php:59 msgid "∞" msgstr "" #: templates/myaccount/downloads.php:98 templates/myaccount/orders.php:119 msgid "Go Shop" msgstr "" #: templates/myaccount/downloads.php:100 msgid "No downloads available yet." msgstr "" #: templates/myaccount/form-add-payment-method.php:59 msgid "" "Sorry, it seems that there are no payment methods which support adding a " "new payment method. Please contact us if you require assistance or wish to " "make alternate arrangements." msgstr "" #: templates/myaccount/form-edit-account.php:45 msgid "Password Change" msgstr "" #: templates/myaccount/form-edit-account.php:48 msgid "Current Password (leave blank to leave unchanged)" msgstr "" #: templates/myaccount/form-edit-account.php:52 msgid "New Password (leave blank to leave unchanged)" msgstr "" #: templates/myaccount/form-edit-account.php:56 msgid "Confirm New Password" msgstr "" #: templates/myaccount/form-edit-address.php:23 #: templates/myaccount/my-address.php:27 templates/myaccount/my-address.php:32 #: templates/order/order-details-customer.php:58 msgid "Billing Address" msgstr "" #: templates/myaccount/form-edit-address.php:23 #: templates/myaccount/my-address.php:28 #: templates/order/order-details-customer.php:69 msgid "Shipping Address" msgstr "" #: templates/myaccount/form-edit-address.php:46 msgid "Save Address" msgstr "" #: templates/myaccount/form-login.php:75 templates/myaccount/form-login.php:112 msgid "Register" msgstr "" #: templates/myaccount/form-login.php:105 msgid "Anti-spam" msgstr "" #: templates/myaccount/form-lost-password.php:27 msgid "" "Lost your password? Please enter your username or email address. You will " "receive a link to create a new password via email." msgstr "" #: templates/myaccount/form-lost-password.php:40 msgid "Reset Password" msgstr "" #: templates/myaccount/form-reset-password.php:27 msgid "Enter a new password below." msgstr "" #: templates/myaccount/form-reset-password.php:30 msgid "New password" msgstr "" #: templates/myaccount/form-reset-password.php:34 msgid "Re-enter new password" msgstr "" #: templates/myaccount/lost-password-confirmation.php:24 msgid "Password reset email has been sent." msgstr "" #: templates/myaccount/lost-password-confirmation.php:27 msgid "" "A password reset email has been sent to the email address on file for your " "account, but may take several minutes to show up in your inbox. Please wait " "at least 10 minutes before attempting another reset." msgstr "" #: templates/myaccount/my-address.php:41 msgid "The following addresses will be used on the checkout page by default." msgstr "" #: templates/myaccount/my-address.php:70 msgid "You have not set up this type of address yet." msgstr "" #: templates/myaccount/my-downloads.php:30 msgid "Available Downloads" msgstr "" #: templates/myaccount/my-downloads.php:39 msgid "%s download remaining" msgid_plural "%s downloads remaining" msgstr[0] "" msgstr[1] "" #: templates/myaccount/my-orders.php:30 msgid "Recent Orders" msgstr "" #: templates/myaccount/my-orders.php:65 templates/myaccount/orders.php:61 msgid "%s for %s item" msgid_plural "%s for %s items" msgstr[0] "" msgstr[1] "" #: templates/myaccount/orders.php:107 msgid "Previous" msgstr "" #: templates/myaccount/orders.php:111 msgid "Next" msgstr "" #: templates/myaccount/orders.php:121 msgid "No order has been made yet." msgstr "" #: templates/myaccount/payment-methods.php:51 msgid "%s ending in %s" msgstr "" #: templates/myaccount/payment-methods.php:72 msgid "No saved methods found." msgstr "" #: templates/myaccount/view-order.php:28 templates/order/tracking.php:26 msgid "Order #%1$s was placed on %2$s and is currently %3$s." msgstr "" #: templates/myaccount/view-order.php:36 templates/order/tracking.php:34 msgid "Order Updates" msgstr "" #: templates/myaccount/view-order.php:42 templates/order/tracking.php:40 msgid "l jS \\o\\f F Y, h:ia" msgstr "" #: templates/order/form-tracking.php:29 msgid "" "To track your order please enter your Order ID in the box below and press " "the \"Track\" button. This was given to you on your receipt and in the " "confirmation email you should have received." msgstr "" #: templates/order/form-tracking.php:31 msgid "Order ID" msgstr "" #: templates/order/form-tracking.php:31 msgid "Found in your order confirmation email." msgstr "" #: templates/order/form-tracking.php:32 msgid "Billing Email" msgstr "" #: templates/order/form-tracking.php:32 msgid "Email you used during checkout." msgstr "" #: templates/order/form-tracking.php:35 msgid "Track" msgstr "" #: templates/order/order-again.php:25 msgid "Order Again" msgstr "" #: templates/order/order-details-customer.php:23 msgid "Customer Details" msgstr "" #: templates/order/order-details-customer.php:28 msgid "Note:" msgstr "" #: templates/order/order-details-customer.php:35 msgid "Email:" msgstr "" #: templates/order/order-details-customer.php:42 msgid "Telephone:" msgstr "" #: templates/order/order-details.php:28 msgid "Order Details" msgstr "" #: templates/product-searchform.php:27 msgid "Search for:" msgstr "" #: templates/single-product/add-to-cart/variable.php:32 msgid "This product is currently out of stock and unavailable." msgstr "" #: templates/single-product/add-to-cart/variable.php:43 msgid "Clear" msgstr "" #: templates/single-product/meta.php:39 msgid "Category:" msgid_plural "Categories:" msgstr[0] "" msgstr[1] "" #: templates/single-product/meta.php:41 msgid "Tag:" msgid_plural "Tags:" msgstr[0] "" msgstr[1] "" #: templates/single-product/rating.php:38 msgid "out of %s5%s" msgstr "" #: templates/single-product/rating.php:39 msgid "based on %s customer rating" msgid_plural "based on %s customer ratings" msgstr[0] "" msgstr[1] "" #: templates/single-product/rating.php:42 msgid "%s customer review" msgid_plural "%s customer reviews" msgstr[0] "" msgstr[1] "" #: templates/single-product/related.php:51 msgid "Related Products" msgstr "" #: templates/single-product/review-meta.php:28 msgid "Your comment is awaiting approval" msgstr "" #: templates/single-product/review-meta.php:36 msgid "verified owner" msgstr "" #: templates/single-product/review-rating.php:28 msgid "Rated %d out of 5" msgstr "" #: templates/single-product/up-sells.php:48 msgid "You may also like…" msgstr "" #: templates/single-product-reviews.php:33 msgid "%s review for %s%s%s" msgid_plural "%s reviews for %s%s%s" msgstr[0] "" msgstr[1] "" #: templates/single-product-reviews.php:56 msgid "There are no reviews yet." msgstr "" #: templates/single-product-reviews.php:69 msgid "Add a review" msgstr "" #: templates/single-product-reviews.php:69 msgid "Be the first to review “%s”" msgstr "" #: templates/single-product-reviews.php:70 msgid "Leave a Reply to %s" msgstr "" #: templates/single-product-reviews.php:78 msgid "Submit" msgstr "" #: templates/single-product-reviews.php:84 msgid "You must be logged in to post a review." msgstr "" #: templates/single-product-reviews.php:88 msgid "Your Rating" msgstr "" #: templates/single-product-reviews.php:89 msgid "Rate…" msgstr "" #: templates/single-product-reviews.php:90 msgid "Perfect" msgstr "" #: templates/single-product-reviews.php:91 msgid "Good" msgstr "" #: templates/single-product-reviews.php:92 msgid "Average" msgstr "" #: templates/single-product-reviews.php:93 msgid "Not that bad" msgstr "" #: templates/single-product-reviews.php:94 msgid "Very Poor" msgstr "" #: templates/single-product-reviews.php:98 msgid "Your Review" msgstr "" #: templates/single-product-reviews.php:107 msgid "Only logged in customers who have purchased this product may leave a review." msgstr "" #. Plugin URI of the plugin/theme msgid "https://woocommerce.com/" msgstr "" #. Description of the plugin/theme msgid "An e-commerce toolkit that helps you sell anything. Beautifully." msgstr "" #. Author of the plugin/theme msgid "WooThemes" msgstr "" #. Author URI of the plugin/theme msgid "https://woocommerce.com" msgstr "" #: i18n/locale-info.php:87 i18n/locale-info.php:97 i18n/locale-info.php:107 msgctxt "Canadian Tax Rates" msgid "PST" msgstr "" #: i18n/locale-info.php:117 msgctxt "Canadian Tax Rates" msgid "QST" msgstr "" #: i18n/locale-info.php:127 i18n/locale-info.php:134 i18n/locale-info.php:141 #: i18n/locale-info.php:148 i18n/locale-info.php:155 msgctxt "Canadian Tax Rates" msgid "HST" msgstr "" #: i18n/locale-info.php:162 i18n/locale-info.php:169 i18n/locale-info.php:176 #: i18n/locale-info.php:183 i18n/locale-info.php:190 i18n/locale-info.php:197 #: i18n/locale-info.php:204 i18n/locale-info.php:211 msgctxt "Canadian Tax Rates" msgid "GST" msgstr "" #: i18n/states/US.php:23 msgctxt "US state of Georgia" msgid "Georgia" msgstr "" #: includes/abstracts/abstract-wc-order.php:1191 #: includes/abstracts/abstract-wc-order.php:1202 #: includes/admin/class-wc-admin-post-types.php:745 #: includes/admin/class-wc-admin-post-types.php:754 msgctxt "full name" msgid "%1$s %2$s" msgstr "" #: includes/abstracts/abstract-wc-product.php:1062 msgctxt "min_price" msgid "From:" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:154 #: includes/admin/settings/views/html-keys-edit.php:75 msgctxt "date and time" msgid "%1$s at %2$s" msgstr "" #: includes/admin/class-wc-admin-assets.php:112 #: includes/admin/class-wc-admin-setup-wizard.php:96 #: includes/class-wc-frontend-scripts.php:332 msgctxt "enhanced select" msgid "One result is available, press enter to select it." msgstr "" #: includes/admin/class-wc-admin-assets.php:113 #: includes/admin/class-wc-admin-setup-wizard.php:97 #: includes/class-wc-frontend-scripts.php:333 msgctxt "enhanced select" msgid "%qty% results are available, use up and down arrow keys to navigate." msgstr "" #: includes/admin/class-wc-admin-assets.php:114 #: includes/admin/class-wc-admin-setup-wizard.php:98 #: includes/class-wc-frontend-scripts.php:334 msgctxt "enhanced select" msgid "No matches found" msgstr "" #: includes/admin/class-wc-admin-assets.php:115 #: includes/admin/class-wc-admin-setup-wizard.php:99 #: includes/class-wc-frontend-scripts.php:335 msgctxt "enhanced select" msgid "Loading failed" msgstr "" #: includes/admin/class-wc-admin-assets.php:116 #: includes/admin/class-wc-admin-setup-wizard.php:100 #: includes/class-wc-frontend-scripts.php:336 msgctxt "enhanced select" msgid "Please enter 1 or more characters" msgstr "" #: includes/admin/class-wc-admin-assets.php:117 #: includes/admin/class-wc-admin-setup-wizard.php:101 #: includes/class-wc-frontend-scripts.php:337 msgctxt "enhanced select" msgid "Please enter %qty% or more characters" msgstr "" #: includes/admin/class-wc-admin-assets.php:118 #: includes/admin/class-wc-admin-setup-wizard.php:102 #: includes/class-wc-frontend-scripts.php:338 msgctxt "enhanced select" msgid "Please delete 1 character" msgstr "" #: includes/admin/class-wc-admin-assets.php:119 #: includes/admin/class-wc-admin-setup-wizard.php:103 #: includes/class-wc-frontend-scripts.php:339 msgctxt "enhanced select" msgid "Please delete %qty% characters" msgstr "" #: includes/admin/class-wc-admin-assets.php:120 #: includes/admin/class-wc-admin-setup-wizard.php:104 #: includes/class-wc-frontend-scripts.php:340 msgctxt "enhanced select" msgid "You can only select 1 item" msgstr "" #: includes/admin/class-wc-admin-assets.php:121 #: includes/admin/class-wc-admin-setup-wizard.php:105 #: includes/class-wc-frontend-scripts.php:341 msgctxt "enhanced select" msgid "You can only select %qty% items" msgstr "" #: includes/admin/class-wc-admin-assets.php:122 #: includes/admin/class-wc-admin-setup-wizard.php:106 #: includes/class-wc-frontend-scripts.php:342 msgctxt "enhanced select" msgid "Loading more results…" msgstr "" #: includes/admin/class-wc-admin-assets.php:123 #: includes/admin/class-wc-admin-setup-wizard.php:107 #: includes/class-wc-frontend-scripts.php:343 msgctxt "enhanced select" msgid "Searching…" msgstr "" #: includes/admin/class-wc-admin-menus.php:142 #: includes/class-wc-post-types.php:312 msgctxt "Admin menu name" msgid "Orders" msgstr "" #: includes/class-wc-post-types.php:67 msgctxt "Admin menu name" msgid "Categories" msgstr "" #: includes/class-wc-post-types.php:103 msgctxt "Admin menu name" msgid "Tags" msgstr "" #: includes/class-wc-post-types.php:140 msgctxt "Admin menu name" msgid "Shipping Classes" msgstr "" #: includes/class-wc-post-types.php:243 msgctxt "Admin menu name" msgid "Products" msgstr "" #: includes/class-wc-post-types.php:362 msgctxt "Admin menu name" msgid "Coupons" msgstr "" #: includes/class-wc-post-types.php:403 msgctxt "Admin menu name" msgid "Webhooks" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:68 #: includes/class-wc-post-types.php:87 includes/wc-update-functions.php:51 msgctxt "slug" msgid "product-category" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:78 #: includes/class-wc-post-types.php:125 includes/wc-update-functions.php:52 msgctxt "slug" msgid "product-tag" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:194 #: includes/class-wc-post-types.php:235 includes/wc-core-functions.php:790 #: includes/wc-core-functions.php:825 includes/wc-update-functions.php:60 msgctxt "slug" msgid "product" msgstr "" #: includes/wc-product-functions.php:249 msgctxt "slug" msgid "uncategorized" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:103 #: includes/admin/class-wc-admin-permalink-settings.php:204 msgctxt "default-slug" msgid "shop" msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:104 msgctxt "default-slug" msgid "product" msgstr "" #: includes/admin/class-wc-admin-post-types.php:535 msgctxt "Count / Limit" msgid "%1$s / %2$s" msgstr "" #: includes/admin/class-wc-admin-post-types.php:762 msgctxt "Order number by X" msgid "%s by %s" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:232 #: includes/class-wc-install.php:295 msgctxt "Page title" msgid "Shop" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:236 #: includes/class-wc-install.php:300 msgctxt "Page title" msgid "Cart" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:240 #: includes/class-wc-install.php:305 msgctxt "Page title" msgid "Checkout" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:246 #: includes/class-wc-install.php:310 msgctxt "Page title" msgid "My Account" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:602 #: includes/gateways/cheque/class-wc-gateway-cheque.php:27 #: includes/gateways/cheque/class-wc-gateway-cheque.php:63 msgctxt "Check payment method" msgid "Check Payments" msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:116 msgctxt "Check payment method" msgid "Awaiting check payment" msgstr "" #: includes/admin/class-wc-admin-webhooks-table-list.php:212 msgctxt "posts" msgid "All (%s)" msgid_plural "All (%s)" msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-webhooks.php:49 #: includes/admin/class-wc-admin-webhooks.php:198 #: includes/admin/settings/views/html-webhooks-edit.php:16 #: includes/api/class-wc-rest-webhooks-controller.php:363 #: includes/api/legacy/v2/class-wc-api-webhooks.php:197 #: includes/api/legacy/v3/class-wc-api-webhooks.php:197 msgctxt "Webhook created on date parsed by strftime" msgid "%b %d, %Y @ %I:%M %p" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:76 msgctxt "placeholder" msgid "YYYY-MM-DD" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:184 #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:196 msgctxt "placeholder" msgid "Unlimited usage" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php:190 msgctxt "placeholder" msgid "Apply to all qualifying items in cart" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:137 msgctxt "placeholder" msgid "Buy product" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:155 #: includes/admin/meta-boxes/views/html-variation-admin.php:104 msgctxt "placeholder" msgid "From…" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:156 #: includes/admin/meta-boxes/views/html-variation-admin.php:108 msgctxt "placeholder" msgid "To…" msgstr "" #: includes/class-wc-checkout.php:108 msgctxt "placeholder" msgid "Username" msgstr "" #: includes/class-wc-checkout.php:117 msgctxt "placeholder" msgid "Password" msgstr "" #: includes/class-wc-checkout.php:126 msgctxt "placeholder" msgid "Notes about your order, e.g. special notes for delivery." msgstr "" #: includes/class-wc-countries.php:572 msgctxt "placeholder" msgid "Street address" msgstr "" #: includes/class-wc-countries.php:578 msgctxt "placeholder" msgid "Apartment, suite, unit etc. (optional)" msgstr "" #: templates/product-searchform.php:28 msgctxt "placeholder" msgid "Search Products…" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:169 msgctxt "Order #123 details" msgid "%s #%s details" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:184 msgctxt "on date at time" msgid "on %s @ %s" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:242 #: includes/admin/views/html-bulk-edit-product.php:78 #: includes/admin/views/html-quick-edit-product.php:57 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:27 #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:54 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:83 msgctxt "Tax status" msgid "None" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:718 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:752 msgctxt "number of pages" msgid "of" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:289 msgctxt "Refund $amount" msgid "Refund %s via %s" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:290 msgctxt "Refund $amount manually" msgid "Refund %s manually" msgstr "" #: includes/admin/meta-boxes/views/html-order-refund.php:19 msgctxt "Ex: Refund - $date >by< $username" msgid "by" msgstr "" #: includes/admin/reports/class-wc-report-customer-list.php:136 #: templates/myaccount/my-orders.php:55 templates/myaccount/orders.php:51 msgctxt "hash before order number" msgid "#" msgstr "" #: includes/admin/reports/class-wc-report-sales-by-date.php:413 msgctxt "%s = amount of the refunds, %d = number of refunded orders." msgid "%s refunded %d order" msgid_plural "%s refunded %d orders" msgstr[0] "" msgstr[1] "" #: includes/admin/settings/class-wc-settings-checkout.php:28 msgctxt "Settings tab label" msgid "Checkout" msgstr "" #: includes/admin/settings/class-wc-settings-checkout.php:95 msgctxt "Settings group label" msgid "Checkout Process" msgstr "" #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:66 msgctxt "Shipping Method Settings" msgid "%s Settings" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:98 msgctxt "%s will be a number eventually, but must be a string for now." msgid "%s items" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:112 msgctxt "Pagination, like `1 of 3`" msgid "%1$s of %2$s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:453 msgctxt "Version info" msgid "%s is available" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:465 msgctxt "by author" msgid "by %s" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:535 msgctxt "Page setting" msgid "Shop Base" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:540 msgctxt "Page setting" msgid "Cart" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:545 msgctxt "Page setting" msgid "Checkout" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:550 msgctxt "Page setting" msgid "My Account" msgstr "" #: includes/admin/views/html-admin-page-status-report.php:564 msgctxt "WC Pages links in the System Status" msgid "Edit %s page" msgstr "" #: includes/admin/views/html-report-by-date.php:16 msgctxt "start date and end date" msgid "From %s to %s" msgstr "" #: includes/class-wc-checkout.php:451 msgctxt "Shipping FIELDNAME" msgid "Shipping %s" msgstr "" #: includes/class-wc-checkout.php:454 msgctxt "Billing FIELDNAME" msgid "Billing %s" msgstr "" #: includes/class-wc-checkout.php:460 msgctxt "FIELDNAME is a required field." msgid "%s is a required field." msgstr "" #: includes/class-wc-install.php:294 msgctxt "Page slug" msgid "shop" msgstr "" #: includes/class-wc-install.php:299 msgctxt "Page slug" msgid "cart" msgstr "" #: includes/class-wc-install.php:304 msgctxt "Page slug" msgid "checkout" msgstr "" #: includes/class-wc-install.php:309 msgctxt "Page slug" msgid "my-account" msgstr "" #: includes/class-wc-post-types.php:300 msgctxt "shop_order post type singular name" msgid "Order" msgstr "" #: includes/class-wc-post-types.php:442 includes/wc-order-functions.php:192 msgctxt "Order status" msgid "Pending Payment" msgstr "" #: includes/class-wc-post-types.php:450 includes/wc-order-functions.php:193 msgctxt "Order status" msgid "Processing" msgstr "" #: includes/class-wc-post-types.php:458 includes/wc-order-functions.php:194 msgctxt "Order status" msgid "On Hold" msgstr "" #: includes/class-wc-post-types.php:466 includes/wc-order-functions.php:195 msgctxt "Order status" msgid "Completed" msgstr "" #: includes/class-wc-post-types.php:474 includes/wc-order-functions.php:196 msgctxt "Order status" msgid "Cancelled" msgstr "" #: includes/class-wc-post-types.php:482 includes/wc-order-functions.php:197 msgctxt "Order status" msgid "Refunded" msgstr "" #: includes/class-wc-post-types.php:490 includes/wc-order-functions.php:198 msgctxt "Order status" msgid "Failed" msgstr "" #: includes/class-wc-product-grouped.php:152 #: includes/class-wc-product-variable.php:353 #: includes/class-wc-product-variable.php:359 msgctxt "Price range: from-to" msgid "%1$s–%2$s" msgstr "" #: includes/wc-account-functions.php:58 msgctxt "edit-address-slug" msgid "billing" msgstr "" #: includes/wc-account-functions.php:59 msgctxt "edit-address-slug" msgid "shipping" msgstr "" #: includes/wc-cart-functions.php:104 msgctxt "Item name in quotes" msgid "“%s”" msgstr "" #: includes/wc-core-functions.php:84 includes/wc-order-functions.php:836 msgctxt "Order date parsed by strftime" msgid "%b %d, %Y @ %I:%M %p" msgstr "" #: includes/wc-template-functions.php:1435 msgctxt "breadcrumb" msgid "Home" msgstr "" #: includes/widgets/class-wc-widget-products.php:64 msgctxt "Sorting order" msgid "Order" msgstr "" #: includes/widgets/class-wc-widget-recent-reviews.php:86 msgctxt "by comment author" msgid "by %1$s" msgstr "" #: templates/global/quantity-input.php:24 msgctxt "Product quantity input tooltip" msgid "Qty" msgstr "" #: templates/loop/result-count.php:41 msgctxt "%1$d = first, %2$d = last, %3$d = total" msgid "Showing the single result" msgid_plural "Showing %1$d–%2$d of %3$d results" msgstr[0] "" msgstr[1] "" #: templates/product-searchform.php:28 msgctxt "label" msgid "Search for:" msgstr "" #: templates/product-searchform.php:29 msgctxt "submit button" msgid "Search" msgstr ""i18n/countries.php000066600000026000152133032060010044 0ustar00 __( 'Afghanistan', 'woocommerce' ), 'AX' => __( 'Åland Islands', 'woocommerce' ), 'AL' => __( 'Albania', 'woocommerce' ), 'DZ' => __( 'Algeria', 'woocommerce' ), 'AS' => __( 'American Samoa', 'woocommerce' ), 'AD' => __( 'Andorra', 'woocommerce' ), 'AO' => __( 'Angola', 'woocommerce' ), 'AI' => __( 'Anguilla', 'woocommerce' ), 'AQ' => __( 'Antarctica', 'woocommerce' ), 'AG' => __( 'Antigua and Barbuda', 'woocommerce' ), 'AR' => __( 'Argentina', 'woocommerce' ), 'AM' => __( 'Armenia', 'woocommerce' ), 'AW' => __( 'Aruba', 'woocommerce' ), 'AU' => __( 'Australia', 'woocommerce' ), 'AT' => __( 'Austria', 'woocommerce' ), 'AZ' => __( 'Azerbaijan', 'woocommerce' ), 'BS' => __( 'Bahamas', 'woocommerce' ), 'BH' => __( 'Bahrain', 'woocommerce' ), 'BD' => __( 'Bangladesh', 'woocommerce' ), 'BB' => __( 'Barbados', 'woocommerce' ), 'BY' => __( 'Belarus', 'woocommerce' ), 'BE' => __( 'Belgium', 'woocommerce' ), 'PW' => __( 'Belau', 'woocommerce' ), 'BZ' => __( 'Belize', 'woocommerce' ), 'BJ' => __( 'Benin', 'woocommerce' ), 'BM' => __( 'Bermuda', 'woocommerce' ), 'BT' => __( 'Bhutan', 'woocommerce' ), 'BO' => __( 'Bolivia', 'woocommerce' ), 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'woocommerce' ), 'BA' => __( 'Bosnia and Herzegovina', 'woocommerce' ), 'BW' => __( 'Botswana', 'woocommerce' ), 'BV' => __( 'Bouvet Island', 'woocommerce' ), 'BR' => __( 'Brazil', 'woocommerce' ), 'IO' => __( 'British Indian Ocean Territory', 'woocommerce' ), 'VG' => __( 'British Virgin Islands', 'woocommerce' ), 'BN' => __( 'Brunei', 'woocommerce' ), 'BG' => __( 'Bulgaria', 'woocommerce' ), 'BF' => __( 'Burkina Faso', 'woocommerce' ), 'BI' => __( 'Burundi', 'woocommerce' ), 'KH' => __( 'Cambodia', 'woocommerce' ), 'CM' => __( 'Cameroon', 'woocommerce' ), 'CA' => __( 'Canada', 'woocommerce' ), 'CV' => __( 'Cape Verde', 'woocommerce' ), 'KY' => __( 'Cayman Islands', 'woocommerce' ), 'CF' => __( 'Central African Republic', 'woocommerce' ), 'TD' => __( 'Chad', 'woocommerce' ), 'CL' => __( 'Chile', 'woocommerce' ), 'CN' => __( 'China', 'woocommerce' ), 'CX' => __( 'Christmas Island', 'woocommerce' ), 'CC' => __( 'Cocos (Keeling) Islands', 'woocommerce' ), 'CO' => __( 'Colombia', 'woocommerce' ), 'KM' => __( 'Comoros', 'woocommerce' ), 'CG' => __( 'Congo (Brazzaville)', 'woocommerce' ), 'CD' => __( 'Congo (Kinshasa)', 'woocommerce' ), 'CK' => __( 'Cook Islands', 'woocommerce' ), 'CR' => __( 'Costa Rica', 'woocommerce' ), 'HR' => __( 'Croatia', 'woocommerce' ), 'CU' => __( 'Cuba', 'woocommerce' ), 'CW' => __( 'Curaçao', 'woocommerce' ), 'CY' => __( 'Cyprus', 'woocommerce' ), 'CZ' => __( 'Czech Republic', 'woocommerce' ), 'DK' => __( 'Denmark', 'woocommerce' ), 'DJ' => __( 'Djibouti', 'woocommerce' ), 'DM' => __( 'Dominica', 'woocommerce' ), 'DO' => __( 'Dominican Republic', 'woocommerce' ), 'EC' => __( 'Ecuador', 'woocommerce' ), 'EG' => __( 'Egypt', 'woocommerce' ), 'SV' => __( 'El Salvador', 'woocommerce' ), 'GQ' => __( 'Equatorial Guinea', 'woocommerce' ), 'ER' => __( 'Eritrea', 'woocommerce' ), 'EE' => __( 'Estonia', 'woocommerce' ), 'ET' => __( 'Ethiopia', 'woocommerce' ), 'FK' => __( 'Falkland Islands', 'woocommerce' ), 'FO' => __( 'Faroe Islands', 'woocommerce' ), 'FJ' => __( 'Fiji', 'woocommerce' ), 'FI' => __( 'Finland', 'woocommerce' ), 'FR' => __( 'France', 'woocommerce' ), 'GF' => __( 'French Guiana', 'woocommerce' ), 'PF' => __( 'French Polynesia', 'woocommerce' ), 'TF' => __( 'French Southern Territories', 'woocommerce' ), 'GA' => __( 'Gabon', 'woocommerce' ), 'GM' => __( 'Gambia', 'woocommerce' ), 'GE' => __( 'Georgia', 'woocommerce' ), 'DE' => __( 'Germany', 'woocommerce' ), 'GH' => __( 'Ghana', 'woocommerce' ), 'GI' => __( 'Gibraltar', 'woocommerce' ), 'GR' => __( 'Greece', 'woocommerce' ), 'GL' => __( 'Greenland', 'woocommerce' ), 'GD' => __( 'Grenada', 'woocommerce' ), 'GP' => __( 'Guadeloupe', 'woocommerce' ), 'GU' => __( 'Guam', 'woocommerce' ), 'GT' => __( 'Guatemala', 'woocommerce' ), 'GG' => __( 'Guernsey', 'woocommerce' ), 'GN' => __( 'Guinea', 'woocommerce' ), 'GW' => __( 'Guinea-Bissau', 'woocommerce' ), 'GY' => __( 'Guyana', 'woocommerce' ), 'HT' => __( 'Haiti', 'woocommerce' ), 'HM' => __( 'Heard Island and McDonald Islands', 'woocommerce' ), 'HN' => __( 'Honduras', 'woocommerce' ), 'HK' => __( 'Hong Kong', 'woocommerce' ), 'HU' => __( 'Hungary', 'woocommerce' ), 'IS' => __( 'Iceland', 'woocommerce' ), 'IN' => __( 'India', 'woocommerce' ), 'ID' => __( 'Indonesia', 'woocommerce' ), 'IR' => __( 'Iran', 'woocommerce' ), 'IQ' => __( 'Iraq', 'woocommerce' ), 'IE' => __( 'Republic of Ireland', 'woocommerce' ), 'IM' => __( 'Isle of Man', 'woocommerce' ), 'IL' => __( 'Israel', 'woocommerce' ), 'IT' => __( 'Italy', 'woocommerce' ), 'CI' => __( 'Ivory Coast', 'woocommerce' ), 'JM' => __( 'Jamaica', 'woocommerce' ), 'JP' => __( 'Japan', 'woocommerce' ), 'JE' => __( 'Jersey', 'woocommerce' ), 'JO' => __( 'Jordan', 'woocommerce' ), 'KZ' => __( 'Kazakhstan', 'woocommerce' ), 'KE' => __( 'Kenya', 'woocommerce' ), 'KI' => __( 'Kiribati', 'woocommerce' ), 'KW' => __( 'Kuwait', 'woocommerce' ), 'KG' => __( 'Kyrgyzstan', 'woocommerce' ), 'LA' => __( 'Laos', 'woocommerce' ), 'LV' => __( 'Latvia', 'woocommerce' ), 'LB' => __( 'Lebanon', 'woocommerce' ), 'LS' => __( 'Lesotho', 'woocommerce' ), 'LR' => __( 'Liberia', 'woocommerce' ), 'LY' => __( 'Libya', 'woocommerce' ), 'LI' => __( 'Liechtenstein', 'woocommerce' ), 'LT' => __( 'Lithuania', 'woocommerce' ), 'LU' => __( 'Luxembourg', 'woocommerce' ), 'MO' => __( 'Macao S.A.R., China', 'woocommerce' ), 'MK' => __( 'Macedonia', 'woocommerce' ), 'MG' => __( 'Madagascar', 'woocommerce' ), 'MW' => __( 'Malawi', 'woocommerce' ), 'MY' => __( 'Malaysia', 'woocommerce' ), 'MV' => __( 'Maldives', 'woocommerce' ), 'ML' => __( 'Mali', 'woocommerce' ), 'MT' => __( 'Malta', 'woocommerce' ), 'MH' => __( 'Marshall Islands', 'woocommerce' ), 'MQ' => __( 'Martinique', 'woocommerce' ), 'MR' => __( 'Mauritania', 'woocommerce' ), 'MU' => __( 'Mauritius', 'woocommerce' ), 'YT' => __( 'Mayotte', 'woocommerce' ), 'MX' => __( 'Mexico', 'woocommerce' ), 'FM' => __( 'Micronesia', 'woocommerce' ), 'MD' => __( 'Moldova', 'woocommerce' ), 'MC' => __( 'Monaco', 'woocommerce' ), 'MN' => __( 'Mongolia', 'woocommerce' ), 'ME' => __( 'Montenegro', 'woocommerce' ), 'MS' => __( 'Montserrat', 'woocommerce' ), 'MA' => __( 'Morocco', 'woocommerce' ), 'MZ' => __( 'Mozambique', 'woocommerce' ), 'MM' => __( 'Myanmar', 'woocommerce' ), 'NA' => __( 'Namibia', 'woocommerce' ), 'NR' => __( 'Nauru', 'woocommerce' ), 'NP' => __( 'Nepal', 'woocommerce' ), 'NL' => __( 'Netherlands', 'woocommerce' ), 'NC' => __( 'New Caledonia', 'woocommerce' ), 'NZ' => __( 'New Zealand', 'woocommerce' ), 'NI' => __( 'Nicaragua', 'woocommerce' ), 'NE' => __( 'Niger', 'woocommerce' ), 'NG' => __( 'Nigeria', 'woocommerce' ), 'NU' => __( 'Niue', 'woocommerce' ), 'NF' => __( 'Norfolk Island', 'woocommerce' ), 'MP' => __( 'Northern Mariana Islands', 'woocommerce' ), 'KP' => __( 'North Korea', 'woocommerce' ), 'NO' => __( 'Norway', 'woocommerce' ), 'OM' => __( 'Oman', 'woocommerce' ), 'PK' => __( 'Pakistan', 'woocommerce' ), 'PS' => __( 'Palestinian Territory', 'woocommerce' ), 'PA' => __( 'Panama', 'woocommerce' ), 'PG' => __( 'Papua New Guinea', 'woocommerce' ), 'PY' => __( 'Paraguay', 'woocommerce' ), 'PE' => __( 'Peru', 'woocommerce' ), 'PH' => __( 'Philippines', 'woocommerce' ), 'PN' => __( 'Pitcairn', 'woocommerce' ), 'PL' => __( 'Poland', 'woocommerce' ), 'PT' => __( 'Portugal', 'woocommerce' ), 'PR' => __( 'Puerto Rico', 'woocommerce' ), 'QA' => __( 'Qatar', 'woocommerce' ), 'RE' => __( 'Reunion', 'woocommerce' ), 'RO' => __( 'Romania', 'woocommerce' ), 'RU' => __( 'Russia', 'woocommerce' ), 'RW' => __( 'Rwanda', 'woocommerce' ), 'BL' => __( 'Saint Barthélemy', 'woocommerce' ), 'SH' => __( 'Saint Helena', 'woocommerce' ), 'KN' => __( 'Saint Kitts and Nevis', 'woocommerce' ), 'LC' => __( 'Saint Lucia', 'woocommerce' ), 'MF' => __( 'Saint Martin (French part)', 'woocommerce' ), 'SX' => __( 'Saint Martin (Dutch part)', 'woocommerce' ), 'PM' => __( 'Saint Pierre and Miquelon', 'woocommerce' ), 'VC' => __( 'Saint Vincent and the Grenadines', 'woocommerce' ), 'SM' => __( 'San Marino', 'woocommerce' ), 'ST' => __( 'São Tomé and Príncipe', 'woocommerce' ), 'SA' => __( 'Saudi Arabia', 'woocommerce' ), 'SN' => __( 'Senegal', 'woocommerce' ), 'RS' => __( 'Serbia', 'woocommerce' ), 'SC' => __( 'Seychelles', 'woocommerce' ), 'SL' => __( 'Sierra Leone', 'woocommerce' ), 'SG' => __( 'Singapore', 'woocommerce' ), 'SK' => __( 'Slovakia', 'woocommerce' ), 'SI' => __( 'Slovenia', 'woocommerce' ), 'SB' => __( 'Solomon Islands', 'woocommerce' ), 'SO' => __( 'Somalia', 'woocommerce' ), 'ZA' => __( 'South Africa', 'woocommerce' ), 'GS' => __( 'South Georgia/Sandwich Islands', 'woocommerce' ), 'KR' => __( 'South Korea', 'woocommerce' ), 'SS' => __( 'South Sudan', 'woocommerce' ), 'ES' => __( 'Spain', 'woocommerce' ), 'LK' => __( 'Sri Lanka', 'woocommerce' ), 'SD' => __( 'Sudan', 'woocommerce' ), 'SR' => __( 'Suriname', 'woocommerce' ), 'SJ' => __( 'Svalbard and Jan Mayen', 'woocommerce' ), 'SZ' => __( 'Swaziland', 'woocommerce' ), 'SE' => __( 'Sweden', 'woocommerce' ), 'CH' => __( 'Switzerland', 'woocommerce' ), 'SY' => __( 'Syria', 'woocommerce' ), 'TW' => __( 'Taiwan', 'woocommerce' ), 'TJ' => __( 'Tajikistan', 'woocommerce' ), 'TZ' => __( 'Tanzania', 'woocommerce' ), 'TH' => __( 'Thailand', 'woocommerce' ), 'TL' => __( 'Timor-Leste', 'woocommerce' ), 'TG' => __( 'Togo', 'woocommerce' ), 'TK' => __( 'Tokelau', 'woocommerce' ), 'TO' => __( 'Tonga', 'woocommerce' ), 'TT' => __( 'Trinidad and Tobago', 'woocommerce' ), 'TN' => __( 'Tunisia', 'woocommerce' ), 'TR' => __( 'Turkey', 'woocommerce' ), 'TM' => __( 'Turkmenistan', 'woocommerce' ), 'TC' => __( 'Turks and Caicos Islands', 'woocommerce' ), 'TV' => __( 'Tuvalu', 'woocommerce' ), 'UG' => __( 'Uganda', 'woocommerce' ), 'UA' => __( 'Ukraine', 'woocommerce' ), 'AE' => __( 'United Arab Emirates', 'woocommerce' ), 'GB' => __( 'United Kingdom (UK)', 'woocommerce' ), 'US' => __( 'United States (US)', 'woocommerce' ), 'UM' => __( 'United States (US) Minor Outlying Islands', 'woocommerce' ), 'VI' => __( 'United States (US) Virgin Islands', 'woocommerce' ), 'UY' => __( 'Uruguay', 'woocommerce' ), 'UZ' => __( 'Uzbekistan', 'woocommerce' ), 'VU' => __( 'Vanuatu', 'woocommerce' ), 'VA' => __( 'Vatican', 'woocommerce' ), 'VE' => __( 'Venezuela', 'woocommerce' ), 'VN' => __( 'Vietnam', 'woocommerce' ), 'WF' => __( 'Wallis and Futuna', 'woocommerce' ), 'EH' => __( 'Western Sahara', 'woocommerce' ), 'WS' => __( 'Samoa', 'woocommerce' ), 'YE' => __( 'Yemen', 'woocommerce' ), 'ZM' => __( 'Zambia', 'woocommerce' ), 'ZW' => __( 'Zimbabwe', 'woocommerce' ), ); dummy-data/dummy-variations.csv000066600000001774152133032060012643 0ustar00"Parent","parent_sku","post_parent","ID","post_status","sku","downloadable","virtual","stock","regular_price","sale_price","weight","length","width","height","file_path","file_paths","download_limit","images","tax:product_shipping_class","meta:attribute_pa_color" "Ship Your Idea","","22","23","publish","","no","no","","20","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front1.jpg","","black" "Ship Your Idea","","40","41","publish","","no","no","","35","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_front.jpg","","black" "Ship Your Idea","","22","24","publish","","no","no","","20","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg","","green" "Ship Your Idea","","40","42","publish","","no","no","","35","30","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_front.jpg","","blue" dummy-data/dummy-products.csv000066600000057047152133032060012333 0ustar00"post_title","post_name","ID","post_excerpt","post_content","post_status","menu_order","post_date","post_parent","comment_status","sku","downloadable","virtual","visibility","stock","stock_status","backorders","manage_stock","regular_price","sale_price","weight","length","width","height","tax_status","tax_class","upsell_ids","crosssell_ids","featured","sale_price_dates_from","sale_price_dates_to","file_path","file_paths","download_limit","download_expiry","product_url","button_text","meta:_yoast_wpseo_focuskw","meta:_yoast_wpseo_title","meta:_yoast_wpseo_metadesc","meta:_yoast_wpseo_metakeywords","images","tax:product_type","tax:product_cat","tax:product_tag","tax:product_shipping_class","meta:total_sales","attribute:pa_color","attribute_data:pa_color","attribute_default:pa_color" "Woo Logo","woo-logo","15","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:35:51","0","open","","no","no","visible","5","instock","no","yes","20","18","","","","","","","60","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_back.jpg","simple","Clothing|T-shirts","","","0","","","" "Premium Quality","premium-quality","19","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:41:52","0","open","","no","no","visible","","instock","no","no","20","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg","simple","Clothing|T-shirts","","","0","","","" "Ship Your Idea","ship-your-idea","22","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:46:01","0","open","","no","no","visible","","instock","no","no","","","","","","","","","40","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_back.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_back.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front1.jpg","variable","Clothing|T-shirts","","","0","Black|Green","0|0|1","" "Ninja Silhouette","ninja-silhouette","31","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:49:51","0","open","","no","no","visible","","instock","no","no","20","","","","","","","","56","34|37","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_back.jpg","simple","Clothing|T-shirts","","","0","","","" "Woo Ninja","woo-ninja","34","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:52:06","0","open","","no","no","visible","","instock","no","no","20","","","","","","","","47","37|31","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_back.jpg","simple","Clothing|T-shirts","","","0","","","" "Happy Ninja","happy-ninja","37","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 10:53:15","0","open","","no","no","visible","","instock","no","no","18","","","","","","","","53","34|31","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_back.jpg","simple","Clothing|T-shirts","","","0","","","" "Ship Your Idea","ship-your-idea-2","40","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:00:28","0","open","","no","no","visible","","instock","no","no","","","","","","","","","","22","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_back.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_back.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_front.jpg","variable","Clothing|Hoodies","","","0","Black|Blue","0|0|1","black" "Woo Ninja","woo-ninja-2","47","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:02:31","0","open","","no","no","visible","","instock","no","no","35","","","","","","","","","34","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_back.jpg","simple","Clothing|Hoodies","","","0","","","" "Patient Ninja","patient-ninja","50","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:03:56","0","open","","no","no","visible","","instock","no","no","35","","","","","","","","","53","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_back.jpg","simple","Clothing|Hoodies","","","0","","","" "Happy Ninja","happy-ninja-2","53","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:05:37","0","open","","no","no","visible","","instock","no","no","35","","","","","","","","","37","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_back.jpg","simple","Clothing|Hoodies","","","0","","","" "Ninja Silhouette","ninja-silhouette-2","56","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:07:19","0","open","","no","no","visible","","instock","no","no","35","","","","","","","","","31","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_back.jpg","simple","Clothing|Hoodies","","","0","","","" "Woo Logo","woo-logo-2","60","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:12:55","0","open","","no","no","visible","","instock","no","no","35","","","","","","","","","15","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_front.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_back.jpg","simple","Clothing|Hoodies","","","0","","","" "Ship Your Idea","ship-your-idea-3","67","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:22:50","0","open","","no","no","visible","","instock","no","no","15","","","","","","","","22|40","22|40","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_1_up.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_1_flat.jpg","simple","Posters","","","0","","","" "Flying Ninja","flying-ninja","70","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:25:01","0","open","","no","no","visible","","instock","no","no","15","12","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_2_up.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_2_flat.jpg","simple","Posters","","","0","","","" "Premium Quality","premium-quality-2","73","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:27:38","0","open","","no","no","visible","","instock","no","no","15","12","","","","","","","19","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_3_up.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_3_flat.jpg","simple","Posters","","","0","","","" "Woo Ninja","woo-ninja-3","76","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:28:45","0","open","","no","no","visible","","instock","no","no","15","","","","","","","","","34|47","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_4_up.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_4_flat.jpg","simple","Posters","","","0","","","" "Woo Logo","woo-logo-3","79","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:29:44","0","open","","no","no","visible","","instock","no","no","15","","","","","","","","","15|60","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_5_up.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_5_flat.jpg","simple","Posters","","","0","","","" "Woo Album #1","woo-album-1","83","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:33:05","0","open","","yes","no","visible","","instock","no","no","9","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_flat.jpg","simple","Albums|Music","","","0","","","" "Woo Album #2","woo-album-2","87","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:34:14","0","open","","yes","no","visible","","instock","no","no","9","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_flat.jpg","simple","Albums|Music","","","0","","","" "Woo Album #3","woo-album-3","90","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:35:18","0","open","","yes","no","visible","","instock","no","no","9","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_flat.jpg","simple","Albums|Music","","","0","","","" "Woo Single #1","woo-single-1","93","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:36:34","0","open","","yes","no","visible","","instock","no","no","3","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_flat.jpg","simple","Music|Singles","","","0","","","" "Woo Album #4","woo-album-4","96","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:37:23","0","open","","yes","no","visible","","instock","no","no","9","","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_flat.jpg","simple","Albums|Music","","","0","","","" "Woo Single #2","woo-single-2","99","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.","publish","0","2013-06-07 11:38:12","0","open","","no","no","visible","","instock","no","no","3","2","","","","","","","","","no","","","","","","","","","","","","","http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_angle.jpg|http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_flat.jpg","simple","Music|Singles","","","0","","","" dummy-data/dummy-data.xml000066600001631741152133032060011406 0ustar00 WooCommerce Dummy Data http://demo.woothemes.com/woocommerce Just another WooThemes Demo site Fri, 14 Jun 2013 12:35:54 +0000 en-US 1.2 http://demo2.woothemes.com/ http://demo.woothemes.com/woocommerce 17pa_colorblack 19pa_colorblue 5product_typeexternal 16pa_colorgreen 3product_typegrouped 2product_typesimple 4product_typevariable 14product_catclothing 18product_cathoodiesclothing 13product_catmusic 20product_catposters 21product_catsinglesmusic 15product_catt-shirtsclothing 22product_catalbumsmusic https://wordpress.org/?v=3.5.1 T_1_front http://demo.woothemes.com/woocommerce/product/woo-logo/t_1_front/ Fri, 07 Jun 2013 10:35:28 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_front.jpg 16 2013-06-07 10:35:28 2013-06-07 10:35:28 open open t_1_front inherit 15 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_front.jpg _wp_attached_file _wp_attachment_metadata T_1_back http://demo.woothemes.com/woocommerce/product/woo-logo/t_1_back/ Fri, 07 Jun 2013 10:35:39 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_back.jpg 17 2013-06-07 10:35:39 2013-06-07 10:35:39 open open t_1_back inherit 15 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_back.jpg _wp_attached_file _wp_attachment_metadata T_2_front http://demo.woothemes.com/woocommerce/product/premium-quality/t_2_front/ Fri, 07 Jun 2013 10:41:23 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg 20 2013-06-07 10:41:23 2013-06-07 10:41:23 open open t_2_front inherit 19 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg _wp_attached_file _wp_attachment_metadata T_2_back http://demo.woothemes.com/woocommerce/product/premium-quality/t_2_back/ Fri, 07 Jun 2013 10:41:34 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg 21 2013-06-07 10:41:34 2013-06-07 10:41:34 open open t_2_back inherit 19 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg _wp_attached_file _wp_attachment_metadata T_4_front http://demo.woothemes.com/woocommerce/product/ship-your-idea/t_4_front/ Fri, 07 Jun 2013 10:45:14 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front.jpg 25 2013-06-07 10:45:14 2013-06-07 10:45:14 open open t_4_front inherit 22 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front.jpg _wp_attached_file _wp_attachment_metadata T_3_back http://demo.woothemes.com/woocommerce/product/ship-your-idea/t_3_back/ Fri, 07 Jun 2013 10:45:26 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_back.jpg 26 2013-06-07 10:45:26 2013-06-07 10:45:26 open open t_3_back inherit 22 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_back.jpg _wp_attached_file _wp_attachment_metadata T_3_front http://demo.woothemes.com/woocommerce/product/ship-your-idea/t_3_front/ Fri, 07 Jun 2013 10:45:27 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg 27 2013-06-07 10:45:27 2013-06-07 10:45:27 open open t_3_front inherit 22 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg _wp_attached_file _wp_attachment_metadata T_4_back http://demo.woothemes.com/woocommerce/product/ship-your-idea/t_4_back/ Fri, 07 Jun 2013 10:45:29 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_back.jpg 28 2013-06-07 10:45:29 2013-06-07 10:45:29 open open t_4_back inherit 22 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_back.jpg _wp_attached_file _wp_attachment_metadata T_4_front http://demo.woothemes.com/woocommerce/product/ship-your-idea/t_4_front-2/ Fri, 07 Jun 2013 10:45:30 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front1.jpg 29 2013-06-07 10:45:30 2013-06-07 10:45:30 open open t_4_front-2 inherit 22 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front1.jpg _wp_attached_file _wp_attachment_metadata T_5_front http://demo.woothemes.com/woocommerce/product/ninja-silhouette/t_5_front/ Fri, 07 Jun 2013 10:49:13 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_front.jpg 32 2013-06-07 10:49:13 2013-06-07 10:49:13 open open t_5_front inherit 31 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_front.jpg _wp_attached_file _wp_attachment_metadata T_5_back http://demo.woothemes.com/woocommerce/product/ninja-silhouette/t_5_back/ Fri, 07 Jun 2013 10:49:23 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_back.jpg 33 2013-06-07 10:49:23 2013-06-07 10:49:23 open open t_5_back inherit 31 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_5_back.jpg _wp_attached_file _wp_attachment_metadata T_6_front http://demo.woothemes.com/woocommerce/product/woo-ninja/t_6_front/ Fri, 07 Jun 2013 10:51:51 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_front.jpg 35 2013-06-07 10:51:51 2013-06-07 10:51:51 open open t_6_front inherit 34 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_front.jpg _wp_attached_file _wp_attachment_metadata T_6_back http://demo.woothemes.com/woocommerce/product/woo-ninja/t_6_back/ Fri, 07 Jun 2013 10:52:02 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_back.jpg 36 2013-06-07 10:52:02 2013-06-07 10:52:02 open open t_6_back inherit 34 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_6_back.jpg _wp_attached_file _wp_attachment_metadata T_7_front http://demo.woothemes.com/woocommerce/product/happy-ninja/t_7_front/ Fri, 07 Jun 2013 10:52:55 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_front.jpg 38 2013-06-07 10:52:55 2013-06-07 10:52:55 open open t_7_front inherit 37 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_front.jpg _wp_attached_file _wp_attachment_metadata T_7_back http://demo.woothemes.com/woocommerce/product/happy-ninja/t_7_back/ Fri, 07 Jun 2013 10:53:29 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_back.jpg 39 2013-06-07 10:53:29 2013-06-07 10:53:29 open open t_7_back inherit 37 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_7_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_7_front http://demo.woothemes.com/woocommerce/product/ship-your-idea-2/hoodie_7_front/ Fri, 07 Jun 2013 10:59:40 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_front.jpg 43 2013-06-07 10:59:40 2013-06-07 10:59:40 open open hoodie_7_front inherit 40 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_7_back http://demo.woothemes.com/woocommerce/product/ship-your-idea-2/hoodie_7_back/ Fri, 07 Jun 2013 10:59:54 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_back.jpg 44 2013-06-07 10:59:54 2013-06-07 10:59:54 open open hoodie_7_back inherit 40 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_7_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_1_back http://demo.woothemes.com/woocommerce/product/ship-your-idea-2/hoodie_1_back/ Fri, 07 Jun 2013 11:00:00 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_back.jpg 45 2013-06-07 11:00:00 2013-06-07 11:00:00 open open hoodie_1_back inherit 40 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_1_front http://demo.woothemes.com/woocommerce/product/ship-your-idea-2/hoodie_1_front/ Fri, 07 Jun 2013 11:00:01 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_front.jpg 46 2013-06-07 11:00:01 2013-06-07 11:00:01 open open hoodie_1_front inherit 40 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_1_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_2_front http://demo.woothemes.com/woocommerce/product/woo-ninja-2/hoodie_2_front/ Fri, 07 Jun 2013 11:01:23 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_front.jpg 48 2013-06-07 11:01:23 2013-06-07 11:01:23 open open hoodie_2_front inherit 47 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_2_back http://demo.woothemes.com/woocommerce/product/woo-ninja-2/hoodie_2_back/ Fri, 07 Jun 2013 11:02:26 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_back.jpg 49 2013-06-07 11:02:26 2013-06-07 11:02:26 open open hoodie_2_back inherit 47 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_2_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_3_front http://demo.woothemes.com/woocommerce/product/patient-ninja/hoodie_3_front/ Fri, 07 Jun 2013 11:03:16 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_front.jpg 51 2013-06-07 11:03:16 2013-06-07 11:03:16 open open hoodie_3_front inherit 50 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_3_back http://demo.woothemes.com/woocommerce/product/patient-ninja/hoodie_3_back/ Fri, 07 Jun 2013 11:03:50 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_back.jpg 52 2013-06-07 11:03:50 2013-06-07 11:03:50 open open hoodie_3_back inherit 50 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_3_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_4_front http://demo.woothemes.com/woocommerce/product/happy-ninja-2/hoodie_4_front/ Fri, 07 Jun 2013 11:05:03 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_front.jpg 54 2013-06-07 11:05:03 2013-06-07 11:05:03 open open hoodie_4_front inherit 53 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_4_back http://demo.woothemes.com/woocommerce/product/happy-ninja-2/hoodie_4_back/ Fri, 07 Jun 2013 11:05:13 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_back.jpg 55 2013-06-07 11:05:13 2013-06-07 11:05:13 open open hoodie_4_back inherit 53 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_4_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_5_front http://demo.woothemes.com/woocommerce/product/ninja-silhouette-2/hoodie_5_front/ Fri, 07 Jun 2013 11:06:32 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_front.jpg 57 2013-06-07 11:06:32 2013-06-07 11:06:32 open open hoodie_5_front inherit 56 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_5_back http://demo.woothemes.com/woocommerce/product/ninja-silhouette-2/hoodie_5_back/ Fri, 07 Jun 2013 11:07:10 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_back.jpg 58 2013-06-07 11:07:10 2013-06-07 11:07:10 open open hoodie_5_back inherit 56 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_5_back.jpg _wp_attached_file _wp_attachment_metadata hoodie_6_front http://demo.woothemes.com/woocommerce/product/woo-logo-2/hoodie_6_front/ Fri, 07 Jun 2013 11:12:02 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_front.jpg 61 2013-06-07 11:12:02 2013-06-07 11:12:02 open open hoodie_6_front inherit 60 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_front.jpg _wp_attached_file _wp_attachment_metadata hoodie_6_back http://demo.woothemes.com/woocommerce/product/woo-logo-2/hoodie_6_back/ Fri, 07 Jun 2013 11:12:16 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_back.jpg 62 2013-06-07 11:12:16 2013-06-07 11:12:16 open open hoodie_6_back inherit 60 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/hoodie_6_back.jpg _wp_attached_file _wp_attachment_metadata poster_1_up http://demo.woothemes.com/woocommerce/product/ship-your-idea-3/poster_1_up/ Fri, 07 Jun 2013 11:21:34 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_1_up.jpg 68 2013-06-07 11:21:34 2013-06-07 11:21:34 open open poster_1_up inherit 67 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_1_up.jpg _wp_attached_file _wp_attachment_metadata Poster_1_flat http://demo.woothemes.com/woocommerce/product/ship-your-idea-3/poster_1_flat/ Fri, 07 Jun 2013 11:22:05 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_1_flat.jpg 69 2013-06-07 11:22:05 2013-06-07 11:22:05 open open poster_1_flat inherit 67 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_1_flat.jpg _wp_attached_file _wp_attachment_metadata poster_2_up http://demo.woothemes.com/woocommerce/product/flying-ninja/poster_2_up/ Fri, 07 Jun 2013 11:24:19 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_2_up.jpg 71 2013-06-07 11:24:19 2013-06-07 11:24:19 open open poster_2_up inherit 70 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_2_up.jpg _wp_attached_file _wp_attachment_metadata Poster_2_flat http://demo.woothemes.com/woocommerce/product/flying-ninja/poster_2_flat/ Fri, 07 Jun 2013 11:24:47 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_2_flat.jpg 72 2013-06-07 11:24:47 2013-06-07 11:24:47 open open poster_2_flat inherit 70 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_2_flat.jpg _wp_attached_file _wp_attachment_metadata poster_3_up http://demo.woothemes.com/woocommerce/product/premium-quality-2/poster_3_up/ Fri, 07 Jun 2013 11:26:47 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_3_up.jpg 74 2013-06-07 11:26:47 2013-06-07 11:26:47 open open poster_3_up inherit 73 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_3_up.jpg _wp_attached_file _wp_attachment_metadata Poster_3_flat http://demo.woothemes.com/woocommerce/product/premium-quality-2/poster_3_flat/ Fri, 07 Jun 2013 11:27:31 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_3_flat.jpg 75 2013-06-07 11:27:31 2013-06-07 11:27:31 open open poster_3_flat inherit 73 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_3_flat.jpg _wp_attached_file _wp_attachment_metadata poster_4_up http://demo.woothemes.com/woocommerce/product/woo-ninja-3/poster_4_up/ Fri, 07 Jun 2013 11:28:07 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_4_up.jpg 77 2013-06-07 11:28:07 2013-06-07 11:28:07 open open poster_4_up inherit 76 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_4_up.jpg _wp_attached_file _wp_attachment_metadata Poster_4_flat http://demo.woothemes.com/woocommerce/product/woo-ninja-3/poster_4_flat/ Fri, 07 Jun 2013 11:28:20 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_4_flat.jpg 78 2013-06-07 11:28:20 2013-06-07 11:28:20 open open poster_4_flat inherit 76 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_4_flat.jpg _wp_attached_file _wp_attachment_metadata poster_5_up http://demo.woothemes.com/woocommerce/product/woo-logo-3/poster_5_up/ Fri, 07 Jun 2013 11:29:26 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_5_up.jpg 80 2013-06-07 11:29:26 2013-06-07 11:29:26 open open poster_5_up inherit 79 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/poster_5_up.jpg _wp_attached_file _wp_attachment_metadata Poster_5_flat http://demo.woothemes.com/woocommerce/product/woo-logo-3/poster_5_flat/ Fri, 07 Jun 2013 11:29:37 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_5_flat.jpg 81 2013-06-07 11:29:37 2013-06-07 11:29:37 open open poster_5_flat inherit 79 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/Poster_5_flat.jpg _wp_attached_file _wp_attachment_metadata cd_1_angle http://demo.woothemes.com/woocommerce/product/woo-album-1/cd_1_angle/ Fri, 07 Jun 2013 11:32:44 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_angle.jpg 84 2013-06-07 11:32:44 2013-06-07 11:32:44 open open cd_1_angle inherit 83 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_angle.jpg _wp_attached_file _wp_attachment_metadata cd_1_flat http://demo.woothemes.com/woocommerce/product/woo-album-1/cd_1_flat/ Fri, 07 Jun 2013 11:32:57 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_flat.jpg 85 2013-06-07 11:32:57 2013-06-07 11:32:57 open open cd_1_flat inherit 83 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_1_flat.jpg _wp_attached_file _wp_attachment_metadata cd_2_angle http://demo.woothemes.com/woocommerce/product/woo-album-2/cd_2_angle/ Fri, 07 Jun 2013 11:33:53 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_angle.jpg 88 2013-06-07 11:33:53 2013-06-07 11:33:53 open open cd_2_angle inherit 87 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_angle.jpg _wp_attached_file _wp_attachment_metadata cd_2_flat http://demo.woothemes.com/woocommerce/product/woo-album-2/cd_2_flat/ Fri, 07 Jun 2013 11:34:07 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_flat.jpg 89 2013-06-07 11:34:07 2013-06-07 11:34:07 open open cd_2_flat inherit 87 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_2_flat.jpg _wp_attached_file _wp_attachment_metadata cd_3_angle http://demo.woothemes.com/woocommerce/product/woo-album-3/cd_3_angle/ Fri, 07 Jun 2013 11:34:58 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_angle.jpg 91 2013-06-07 11:34:58 2013-06-07 11:34:58 open open cd_3_angle inherit 90 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_angle.jpg _wp_attached_file _wp_attachment_metadata cd_3_flat http://demo.woothemes.com/woocommerce/product/woo-album-3/cd_3_flat/ Fri, 07 Jun 2013 11:35:10 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_flat.jpg 92 2013-06-07 11:35:10 2013-06-07 11:35:10 open open cd_3_flat inherit 90 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_3_flat.jpg _wp_attached_file _wp_attachment_metadata cd_4_flat http://demo.woothemes.com/woocommerce/product/woo-single-1/cd_4_flat/ Fri, 07 Jun 2013 11:36:10 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_flat.jpg 94 2013-06-07 11:36:10 2013-06-07 11:36:10 open open cd_4_flat inherit 93 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_flat.jpg _wp_attached_file _wp_attachment_metadata cd_4_angle http://demo.woothemes.com/woocommerce/product/woo-single-1/cd_4_angle/ Fri, 07 Jun 2013 11:36:22 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg 95 2013-06-07 11:36:22 2013-06-07 11:36:22 open open cd_4_angle inherit 93 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg _wp_attached_file _wp_attachment_metadata cd_5_angle http://demo.woothemes.com/woocommerce/product/woo-album-4/cd_5_angle/ Fri, 07 Jun 2013 11:37:04 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_angle.jpg 97 2013-06-07 11:37:04 2013-06-07 11:37:04 open open cd_5_angle inherit 96 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_angle.jpg _wp_attached_file _wp_attachment_metadata cd_5_flat http://demo.woothemes.com/woocommerce/product/woo-album-4/cd_5_flat/ Fri, 07 Jun 2013 11:37:17 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_flat.jpg 98 2013-06-07 11:37:17 2013-06-07 11:37:17 open open cd_5_flat inherit 96 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_5_flat.jpg _wp_attached_file _wp_attachment_metadata cd_6_angle http://demo.woothemes.com/woocommerce/product/woo-single-2/cd_6_angle/ Fri, 07 Jun 2013 11:37:51 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_angle.jpg 100 2013-06-07 11:37:51 2013-06-07 11:37:51 open open cd_6_angle inherit 99 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_angle.jpg _wp_attached_file _wp_attachment_metadata cd_6_flat http://demo.woothemes.com/woocommerce/product/woo-single-2/cd_6_flat/ Fri, 07 Jun 2013 11:38:03 +0000 wooteam http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_flat.jpg 101 2013-06-07 11:38:03 2013-06-07 11:38:03 open open cd_6_flat inherit 99 0 attachment 0 http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_6_flat.jpg _wp_attached_file _wp_attachment_metadata Woo Logo http://demo.woothemes.com/woocommerce/product/woo-logo/ Fri, 07 Jun 2013 10:35:51 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=15 15 2013-06-07 10:35:51 2013-06-07 10:35:51 open closed woo-logo publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _upsell_ids 13 bester.c@gmail.com 196.215.9.147 2013-06-07 11:57:05 2013-06-07 11:57:05 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Premium Quality http://demo.woothemes.com/woocommerce/product/premium-quality/ Fri, 07 Jun 2013 10:41:52 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=19 19 2013-06-07 10:41:52 2013-06-07 10:41:52 open closed premium-quality publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock 7 bester.c@gmail.com 196.215.9.147 2013-06-07 11:53:49 2013-06-07 11:53:49 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 14 andrew@chromeorange.co.uk 86.19.152.140 2013-06-07 11:57:45 2013-06-07 11:57:45 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Ship Your Idea http://demo.woothemes.com/woocommerce/product/ship-your-idea/ Fri, 07 Jun 2013 10:46:01 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=22 22 2013-06-07 10:46:01 2013-06-07 10:46:01 open closed ship-your-idea publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _min_variation_price _max_variation_price _min_variation_regular_price _max_variation_regular_price _min_variation_sale_price _max_variation_sale_price _default_attributes _wp_old_slug _upsell_ids 2 james@jameskoster.co.uk 86.146.141.82 2013-06-07 11:43:13 2013-06-07 11:43:13 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 10 bester.c@gmail.com 196.215.9.147 2013-06-07 11:55:15 2013-06-07 11:55:15 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 28 stuart@woothemes.com 82.32.109.140 2013-06-07 13:02:14 2013-06-07 13:02:14 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Ninja Silhouette http://demo.woothemes.com/woocommerce/product/ninja-silhouette/ Fri, 07 Jun 2013 10:49:51 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=31 31 2013-06-07 10:49:51 2013-06-07 10:49:51 open closed ninja-silhouette publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids _upsell_ids 8 bester.c@gmail.com 196.215.9.147 2013-06-07 11:54:32 2013-06-07 11:54:32 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Ninja http://demo.woothemes.com/woocommerce/product/woo-ninja/ Fri, 07 Jun 2013 10:52:06 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=34 34 2013-06-07 10:52:06 2013-06-07 10:52:06 open closed woo-ninja publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids _upsell_ids Happy Ninja http://demo.woothemes.com/woocommerce/product/happy-ninja/ Fri, 07 Jun 2013 10:53:15 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=37 37 2013-06-07 10:53:15 2013-06-07 10:53:15 open closed happy-ninja publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _crosssell_ids _upsell_ids 27 stuart@woothemes.com 82.32.109.140 2013-06-07 13:01:25 2013-06-07 13:01:25 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 39 maria@woothemes.com 24.225.103.32 2013-06-07 15:49:53 2013-06-07 15:49:53 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Ship Your Idea http://demo.woothemes.com/woocommerce/product/ship-your-idea-2/ Fri, 07 Jun 2013 11:00:28 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=40 40 2013-06-07 11:00:28 2013-06-07 11:00:28 open closed ship-your-idea-2 publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _min_variation_price _max_variation_price _min_variation_regular_price _max_variation_regular_price _min_variation_sale_price _max_variation_sale_price _default_attributes _thumbnail_id _crosssell_ids 29 stuart@woothemes.com 82.32.109.140 2013-06-07 13:03:29 2013-06-07 13:03:29 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 30 ryan@woothemes.com 99.153.225.252 2013-06-07 13:24:52 2013-06-07 13:24:52 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 43 maria@woothemes.com 24.225.103.32 2013-06-07 15:53:31 2013-06-07 15:53:31 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Ninja http://demo.woothemes.com/woocommerce/product/woo-ninja-2/ Fri, 07 Jun 2013 11:02:31 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=47 47 2013-06-07 11:02:31 2013-06-07 11:02:31 open closed woo-ninja-2 publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _crosssell_ids 15 bester.c@gmail.com 196.215.9.147 2013-06-07 11:57:59 2013-06-07 11:57:59 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 42 maria@woothemes.com 24.225.103.32 2013-06-07 15:53:13 2013-06-07 15:53:13 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Patient Ninja http://demo.woothemes.com/woocommerce/product/patient-ninja/ Fri, 07 Jun 2013 11:03:56 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=50 50 2013-06-07 11:03:56 2013-06-07 11:03:56 open closed patient-ninja publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _crosssell_ids 4 james@jameskoster.co.uk 86.146.141.82 2013-06-07 11:46:52 2013-06-07 11:46:52 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 6 bester.c@gmail.com 196.215.9.147 2013-06-07 11:53:13 2013-06-07 11:53:13 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 17 magnus@woothemes.com 79.161.106.35 2013-06-07 12:04:03 2013-06-07 12:04:03 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Happy Ninja http://demo.woothemes.com/woocommerce/product/happy-ninja-2/ Fri, 07 Jun 2013 11:05:37 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=53 53 2013-06-07 11:05:37 2013-06-07 11:05:37 open closed happy-ninja-2 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids 9 andrew@chromeorange.co.uk 86.19.152.140 2013-06-07 11:54:51 2013-06-07 11:54:51 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 40 maria@woothemes.com 24.225.103.32 2013-06-07 15:50:22 2013-06-07 15:50:22 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Ninja Silhouette http://demo.woothemes.com/woocommerce/product/ninja-silhouette-2/ Fri, 07 Jun 2013 11:07:19 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=56 56 2013-06-07 11:07:19 2013-06-07 11:07:19 open closed ninja-silhouette-2 publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _crosssell_ids 19 student@woothemes.com 196.215.9.147 2013-06-07 12:14:53 2013-06-07 12:14:53 1 0 600 akismet_error akismet_history akismet_as_submitted rating akismet_history 21 coen@woothemes.com 84.39.28.254 2013-06-07 12:20:56 2013-06-07 12:20:56 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 25 dan@woothemes.com 188.221.1.167 2013-06-07 12:41:42 2013-06-07 12:41:42 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 31 ryan@woothemes.com 99.153.225.252 2013-06-07 13:26:40 2013-06-07 13:26:40 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 44 maria@woothemes.com 24.225.103.32 2013-06-07 15:53:56 2013-06-07 15:53:56 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 48 gerhard@woothemes.com 72.251.244.9 2013-06-08 09:37:42 2013-06-08 09:37:42 0 0 0 akismet_error akismet_history akismet_as_submitted rating Woo Logo http://demo.woothemes.com/woocommerce/product/woo-logo-2/ Fri, 07 Jun 2013 11:12:55 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=60 60 2013-06-07 11:12:55 2013-06-07 11:12:55 open closed woo-logo-2 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids 18 magnus@woothemes.com 79.161.106.35 2013-06-07 12:04:33 2013-06-07 12:04:33 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 45 maria@woothemes.com 24.225.103.32 2013-06-07 15:54:25 2013-06-07 15:54:25 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Ship Your Idea http://demo.woothemes.com/woocommerce/product/ship-your-idea-3/ Fri, 07 Jun 2013 11:22:50 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=67 67 2013-06-07 11:22:50 2013-06-07 11:22:50 open closed ship-your-idea-3 publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id _upsell_ids _crosssell_ids Flying Ninja http://demo.woothemes.com/woocommerce/product/flying-ninja/ Fri, 07 Jun 2013 11:25:01 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=70 70 2013-06-07 11:25:01 2013-06-07 11:25:01 open closed flying-ninja publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _thumbnail_id 5 bester.c@gmail.com 196.215.9.147 2013-06-07 11:52:25 2013-06-07 11:52:25 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 12 andrew@chromeorange.co.uk 86.19.152.140 2013-06-07 11:56:36 2013-06-07 11:56:36 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 20 coen@woothemes.com 84.39.28.254 2013-06-07 12:19:25 2013-06-07 12:19:25 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 26 stuart@woothemes.com 82.32.109.140 2013-06-07 12:59:49 2013-06-07 12:59:49 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Premium Quality http://demo.woothemes.com/woocommerce/product/premium-quality-2/ Fri, 07 Jun 2013 11:27:38 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=73 73 2013-06-07 11:27:38 2013-06-07 11:27:38 open closed premium-quality-2 publish 0 0 product 0 _edit_last _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _upsell_ids _thumbnail_id 24 dan@woothemes.com 188.221.1.167 2013-06-07 12:39:04 2013-06-07 12:39:04 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 46 maria@woothemes.com 24.225.103.32 2013-06-07 15:55:29 2013-06-07 15:55:29 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Ninja http://demo.woothemes.com/woocommerce/product/woo-ninja-3/ Fri, 07 Jun 2013 11:28:45 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=76 76 2013-06-07 11:28:45 2013-06-07 11:28:45 open closed woo-ninja-3 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids 47 maria@woothemes.com 24.225.103.32 2013-06-07 15:56:24 2013-06-07 15:56:24 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Variation #23 of Ship Your Idea http://demo.woothemes.com/woocommerce/?product_variation=product-22-variation Fri, 07 Jun 2013 10:44:57 +0000 wooteam http://demo.woothemes.com/woocommerce/?product_variation=product-22-variation 23 2013-06-07 10:44:57 2013-06-07 10:44:57 open open product-22-variation publish 22 0 product_variation 0 _sku _weight _length _width _height _stock _thumbnail_id _virtual _downloadable _regular_price _sale_price _sale_price_dates_from _sale_price_dates_to _price _tax_class _download_limit _download_expiry _file_paths attribute_pa_color Variation #24 of Ship Your Idea http://demo.woothemes.com/woocommerce/?product_variation=product-22-variation-2 Fri, 07 Jun 2013 10:44:58 +0000 wooteam http://demo.woothemes.com/woocommerce/?product_variation=product-22-variation-2 24 2013-06-07 10:44:58 2013-06-07 10:44:58 open open product-22-variation-2 publish 22 1 product_variation 0 _sku _weight _length _width _height _stock _thumbnail_id _virtual _downloadable _regular_price _sale_price _sale_price_dates_from _sale_price_dates_to _price _tax_class _download_limit _download_expiry _file_paths attribute_pa_color Variation #41 of Ship Your Idea http://demo.woothemes.com/woocommerce/?product_variation=product-40-variation Fri, 07 Jun 2013 10:59:15 +0000 wooteam http://demo.woothemes.com/woocommerce/?product_variation=product-40-variation 41 2013-06-07 10:59:15 2013-06-07 10:59:15 open open product-40-variation publish 40 0 product_variation 0 _sku _weight _length _width _height _stock _thumbnail_id _virtual _downloadable _regular_price _sale_price _sale_price_dates_from _sale_price_dates_to _price _tax_class _download_limit _download_expiry _file_paths attribute_pa_color Variation #42 of Ship Your Idea http://demo.woothemes.com/woocommerce/?product_variation=product-40-variation-2 Fri, 07 Jun 2013 10:59:15 +0000 wooteam http://demo.woothemes.com/woocommerce/?product_variation=product-40-variation-2 42 2013-06-07 10:59:15 2013-06-07 10:59:15 open open product-40-variation-2 publish 40 1 product_variation 0 _sku _weight _length _width _height _stock _thumbnail_id _virtual _downloadable _regular_price _sale_price _sale_price_dates_from _sale_price_dates_to _price _tax_class _download_limit _download_expiry _file_paths attribute_pa_color Woo Logo http://demo.woothemes.com/woocommerce/product/woo-logo-3/ Fri, 07 Jun 2013 11:29:44 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=79 79 2013-06-07 11:29:44 2013-06-07 11:29:44 open closed woo-logo-3 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _crosssell_ids Woo Album #1 http://demo.woothemes.com/woocommerce/product/woo-album-1/ Fri, 07 Jun 2013 11:33:05 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=83 83 2013-06-07 11:33:05 2013-06-07 11:33:05 open closed woo-album-1 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _file_paths _download_limit _download_expiry Woo Album #2 http://demo.woothemes.com/woocommerce/product/woo-album-2/ Fri, 07 Jun 2013 11:34:14 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=87 87 2013-06-07 11:34:14 2013-06-07 11:34:14 open closed woo-album-2 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _file_paths _download_limit _download_expiry 11 bester.c@gmail.com 196.215.9.147 2013-06-07 11:56:32 2013-06-07 11:56:32 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Album #3 http://demo.woothemes.com/woocommerce/product/woo-album-3/ Fri, 07 Jun 2013 11:35:18 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=90 90 2013-06-07 11:35:18 2013-06-07 11:35:18 open closed woo-album-3 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _file_paths _download_limit _download_expiry 23 coen@woothemes.com 84.39.28.254 2013-06-07 12:22:07 2013-06-07 12:22:07 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Single #1 http://demo.woothemes.com/woocommerce/product/woo-single-1/ Fri, 07 Jun 2013 11:36:34 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=93 93 2013-06-07 11:36:34 2013-06-07 11:36:34 open closed woo-single-1 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _file_paths _download_limit _download_expiry Woo Album #4 http://demo.woothemes.com/woocommerce/product/woo-album-4/ Fri, 07 Jun 2013 11:37:23 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=96 96 2013-06-07 11:37:23 2013-06-07 11:37:23 open closed woo-album-4 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock _file_paths _download_limit _download_expiry 3 james@jameskoster.co.uk 86.146.141.82 2013-06-07 11:44:50 2013-06-07 11:44:50 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 22 coen@woothemes.com 84.39.28.254 2013-06-07 12:21:30 2013-06-07 12:21:30 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history Woo Single #2 http://demo.woothemes.com/woocommerce/product/woo-single-2/ Fri, 07 Jun 2013 11:38:12 +0000 wooteam http://demo.woothemes.com/woocommerce/?post_type=product&p=99 99 2013-06-07 11:38:12 2013-06-07 11:38:12 open closed woo-single-2 publish 0 0 product 0 _edit_last _thumbnail_id _visibility _stock_status total_sales _downloadable _virtual _product_image_gallery _regular_price _sale_price _tax_status _tax_class _purchase_note _featured _weight _length _width _height _sku _product_attributes _sale_price_dates_from _sale_price_dates_to _price _sold_individually _stock _backorders _manage_stock 16 bester.c@gmail.com 196.215.9.147 2013-06-07 11:58:43 2013-06-07 11:58:43 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history 41 maria@woothemes.com 24.225.103.32 2013-06-07 15:52:48 2013-06-07 15:52:48 1 0 0 akismet_error akismet_history akismet_as_submitted rating akismet_history dummy-data/sample_tax_rates.csv000066600000000412152133032060012652 0ustar00Country Code,State Code,ZIP/Postcode,City,Rate %,Tax Name,Priority,Compound,Shipping,Tax Class GB,*,*,*,20.0000,VAT,1,1,1, GB,*,*,*,5.0000,VAT,1,1,1,reduced-rate GB,*,*,*,0.0000,VAT,1,1,1,zero-rate US,*,*,*,10.0000,US,1,1,1, US,AL,12345; 123456,*,2.0000,US AL,2,1,1,uninstall.php000066600000010534152133032060007270 0ustar00get_var( "SHOW TABLES LIKE '{$wpdb->prefix}woocommerce_attribute_taxonomies';" ) ) { $wc_attributes = array_filter( (array) $wpdb->get_col( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies;" ) ); } else { $wc_attributes = array(); } // Tables. $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_api_keys" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_attribute_taxonomies" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_downloadable_product_permissions" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_termmeta" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_tax_rates" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_tax_rate_locations" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_shipping_zone_methods" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_shipping_zone_locations" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_shipping_zones" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_sessions" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_payment_tokens" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_payment_tokenmeta" ); // Delete options. $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'woocommerce\_%';"); // Delete posts + data. $wpdb->query( "DELETE FROM {$wpdb->posts} WHERE post_type IN ( 'product', 'product_variation', 'shop_coupon', 'shop_order', 'shop_order_refund' );" ); $wpdb->query( "DELETE meta FROM {$wpdb->postmeta} meta LEFT JOIN {$wpdb->posts} posts ON posts.ID = meta.post_id WHERE posts.ID IS NULL;" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_order_items" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_order_itemmeta" ); // Delete terms if > WP 4.2 (term splitting was added in 4.2) if ( version_compare( $wp_version, '4.2', '>=' ) ) { // Delete term taxonomies foreach ( array( 'product_cat', 'product_tag', 'product_shipping_class', 'product_type' ) as $taxonomy ) { $wpdb->delete( $wpdb->term_taxonomy, array( 'taxonomy' => $taxonomy, ) ); } // Delete term attributes foreach ( $wc_attributes as $taxonomy ) { $wpdb->delete( $wpdb->term_taxonomy, array( 'taxonomy' => 'pa_' . $taxonomy, ) ); } // Delete orphan relationships $wpdb->query( "DELETE tr FROM {$wpdb->term_relationships} tr LEFT JOIN {$wpdb->posts} posts ON posts.ID = tr.object_id WHERE posts.ID IS NULL;" ); // Delete orphan terms $wpdb->query( "DELETE t FROM {$wpdb->terms} t LEFT JOIN {$wpdb->term_taxonomy} tt ON t.term_id = tt.term_id WHERE tt.term_id IS NULL;" ); // Delete orphan term meta if ( ! empty( $wpdb->termmeta ) ) { $wpdb->query( "DELETE tm FROM {$wpdb->termmeta} tm LEFT JOIN {$wpdb->term_taxonomy} tt ON tm.term_id = tt.term_id WHERE tt.term_id IS NULL;" ); } } // Clear any cached data that has been removed wp_cache_flush(); }