WooCommerce - Version 3.0.2

Version Description

  • 2017-04-12 =
  • Fix - Removed required states for GP, GF, KW, LB, MQ, RE and YT countries.
  • Fix - Made cache in the [products] shortcode respect filters from plugins.
  • Fix - Added missing woocommerce_cross_sells_columns filter.
  • Fix - Fixed shortcode rendering on the shop page.
  • Fix - Fixed incorrect sale dates when bulk editing variations.
  • Fix - Fixed calls to wc_reduce_stock_levels in PayPal and Simplify gateways.
  • Fix - Exclude "location" meta when reading customer meta data.
  • Fix - Updated emails/email-addresses.php, emails/email-order-details.php, content-single-product.php, checkout/form-shipping.php, myaccount/form-add-payment-method.php, myaccount/form-edit-address.php, myaccount/form-lost-password.php, myaccount/form-reset-password.php, myaccount/orders.php and myaccount/view-order.php template version to 3.0.0 since they had changes since 2.6.
  • Fix - Fixed default behavior of variation tax classes when originally set to "parent".
  • Fix - When duplicating products, do not copy slug, append "(Copy)" to the product name, correctly copy all meta data, and prevent children of grouped products being duplicated too.
  • Fix - Removed duplicated items when outputting cross sells on the cart page.
  • Fix - Fixed output of default "add to cart" text of external products in loops.
  • Fix - Fixed backwards compatibility of guest checkout rules when being altered by plugins directly.
  • Fix - Use correct thumbnail sizes for variation images in the new gallery.
  • Fix - Fixed captions on thumbnails and main image in the new gallery.
  • Fix - Trigger wc_fragments_loaded after add to cart fragment refresh.
  • Fix - Download permissions; Convert dates to timestamp on read so UTC is preserved.
  • Fix - Fixed notices under PHP 7.1 when sorting products by name (numeric).
  • Fix - Added additional checks to ensure objects are read before using class methods to avoid errors.
  • Fix - Removed legacy suggest.js code which was causing JS error on bulk edit.
  • Fix - Fixed warnings on the "Lost password" page and when loading a product with invalid attributes.
  • Fix - Made background emailer update the queue after a successful send so duplicate mails are less likely.
  • Fix - Typo in flexslider_enabled option in new gallery script.
  • Fix - woocommerce_notify_low_stock and woocommerce_notify_no_stock options had no effect.
  • Tweak - For downloadable files, only validate file type when dealing with relative paths.
  • Tweak - Improved automatic variation name generation.
  • Dev - Added product visibility terms to system status report to help debug.
  • Dev - Introduced woocommerce_admin_order_date_format filter to replace missing post_date_column_time.
  • Dev - Introduced woocommerce_update_customer_args filter to prevent updates to user objects if needed.
  • REST API - Fixed saving of variations in legacy REST API v3.
  • REST API - Fixed backwards compatibility of line_items meta in legacy REST API.
Download this release

Release Info

Developer claudiosanches
Plugin Icon 128x128 WooCommerce
Version 3.0.2
Comparing to
See all releases

Code changes from version 3.0.1 to 3.0.2

Files changed (67) hide show
  1. assets/css/menu-rtl.css +1 -1
  2. assets/css/menu.css +1 -1
  3. assets/css/menu.scss +22 -19
  4. assets/js/admin/quick-edit.js +1 -5
  5. assets/js/admin/quick-edit.min.js +1 -1
  6. assets/js/frontend/add-to-cart-variation.js +1 -1
  7. assets/js/frontend/add-to-cart-variation.min.js +1 -1
  8. assets/js/frontend/add-to-cart.js +2 -0
  9. assets/js/frontend/add-to-cart.min.js +1 -1
  10. assets/js/frontend/single-product.js +1 -1
  11. assets/js/frontend/single-product.min.js +1 -1
  12. i18n/languages/woocommerce.pot +378 -361
  13. includes/abstracts/abstract-wc-data.php +16 -0
  14. includes/admin/class-wc-admin-duplicate-product.php +4 -1
  15. includes/admin/class-wc-admin-post-types.php +1 -1
  16. includes/admin/reports/class-wc-report-stock.php +4 -0
  17. includes/admin/views/html-admin-page-status-report.php +11 -0
  18. includes/api/class-wc-rest-system-status-controller.php +27 -10
  19. includes/api/legacy/v1/class-wc-api-products.php +1 -1
  20. includes/api/legacy/v2/class-wc-api-orders.php +2 -2
  21. includes/api/legacy/v2/class-wc-api-products.php +1 -1
  22. includes/api/legacy/v3/class-wc-api-orders.php +2 -2
  23. includes/api/legacy/v3/class-wc-api-products.php +2 -1
  24. includes/api/v1/class-wc-rest-products-controller.php +1 -1
  25. includes/class-wc-ajax.php +1 -1
  26. includes/class-wc-background-emailer.php +84 -1
  27. includes/class-wc-cart.php +3 -3
  28. includes/class-wc-checkout.php +1 -1
  29. includes/class-wc-countries.php +35 -0
  30. includes/class-wc-emails.php +8 -0
  31. includes/class-wc-install.php +2 -4
  32. includes/class-wc-order-item-shipping.php +1 -0
  33. includes/class-wc-order-item.php +1 -3
  34. includes/class-wc-product-download.php +1 -1
  35. includes/class-wc-product-external.php +1 -1
  36. includes/class-wc-product-variable.php +1 -1
  37. includes/class-wc-shortcodes.php +2 -1
  38. includes/data-stores/class-wc-customer-data-store.php +5 -5
  39. includes/data-stores/class-wc-customer-download-data-store.php +12 -1
  40. includes/data-stores/class-wc-product-data-store-cpt.php +14 -1
  41. includes/data-stores/class-wc-product-variation-data-store-cpt.php +17 -23
  42. includes/gateways/paypal/includes/class-wc-gateway-paypal-response.php +1 -1
  43. includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php +1 -1
  44. includes/shortcodes/class-wc-shortcode-checkout.php +1 -1
  45. includes/shortcodes/class-wc-shortcode-my-account.php +1 -1
  46. includes/wc-attribute-functions.php +12 -0
  47. includes/wc-cart-functions.php +1 -1
  48. includes/wc-core-functions.php +1 -0
  49. includes/wc-formatting-functions.php +1 -3
  50. includes/wc-product-functions.php +6 -0
  51. includes/wc-template-functions.php +10 -6
  52. includes/wc-term-functions.php +5 -2
  53. includes/wc-user-functions.php +5 -4
  54. readme.txt +36 -3
  55. templates/checkout/form-shipping.php +1 -1
  56. templates/content-single-product.php +1 -1
  57. templates/emails/email-addresses.php +1 -1
  58. templates/emails/email-order-details.php +1 -1
  59. templates/myaccount/form-add-payment-method.php +1 -1
  60. templates/myaccount/form-edit-address.php +1 -1
  61. templates/myaccount/form-lost-password.php +1 -1
  62. templates/myaccount/form-reset-password.php +1 -1
  63. templates/myaccount/orders.php +1 -1
  64. templates/myaccount/view-order.php +1 -1
  65. templates/single-product/product-image.php +2 -3
  66. templates/single-product/product-thumbnails.php +4 -5
  67. woocommerce.php +2 -2
assets/css/menu-rtl.css CHANGED
@@ -1 +1 @@
1
- @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;right: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 -2px 0 8px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}
1
+ @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;right:0;width:100%;height:100%;text-align:center;content:"";font-size:.9em;line-height:1.2}#woocommerce-update p.wc_plugin_upgrade_notice{font-weight:400;color:#fff!important;background:#d54d21!important;padding:1em!important;margin:9px 0!important}#woocommerce-update p.wc_plugin_upgrade_notice a{color:#fff;text-decoration:underline}#woocommerce-update p.wc_plugin_upgrade_notice::before{color:#fff!important;content:'\f348';display:inline-block;font:400 18px/1 dashicons;speak:none;margin:0 -2px 0 8px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}
assets/css/menu.css CHANGED
@@ -1 +1 @@
1
- @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}
1
+ @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}#woocommerce-update p.wc_plugin_upgrade_notice{font-weight:400;color:#fff!important;background:#d54d21!important;padding:1em!important;margin:9px 0!important}#woocommerce-update p.wc_plugin_upgrade_notice a{color:#fff;text-decoration:underline}#woocommerce-update p.wc_plugin_upgrade_notice::before{color:#fff!important;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/menu.scss CHANGED
@@ -43,26 +43,29 @@ span.mce_woocommerce_shortcodes_button {
43
  }
44
  }
45
 
46
- .wc_plugin_upgrade_notice {
47
- font-weight: normal;
48
- color: #fff;
49
- background: #d54d21;
50
- padding: 1em;
51
- margin: 9px 0;
 
52
 
53
- a {
54
- color: #fff;
55
- text-decoration: underline;
56
- }
57
 
58
- &::before {
59
- content: '\f348';
60
- display: inline-block;
61
- font: 400 18px/1 dashicons;
62
- speak: none;
63
- margin: 0 8px 0 -2px;
64
- -webkit-font-smoothing: antialiased;
65
- -moz-osx-font-smoothing: grayscale;
66
- vertical-align: top;
 
 
67
  }
68
  }
43
  }
44
  }
45
 
46
+ #woocommerce-update {
47
+ p.wc_plugin_upgrade_notice {
48
+ font-weight: normal;
49
+ color: #fff !important;
50
+ background: #d54d21 !important;
51
+ padding: 1em !important;
52
+ margin: 9px 0 !important;
53
 
54
+ a {
55
+ color: #fff;
56
+ text-decoration: underline;
57
+ }
58
 
59
+ &::before {
60
+ color: #fff !important;
61
+ content: '\f348';
62
+ display: inline-block;
63
+ font: 400 18px/1 dashicons;
64
+ speak: none;
65
+ margin: 0 8px 0 -2px;
66
+ -webkit-font-smoothing: antialiased;
67
+ -moz-osx-font-smoothing: grayscale;
68
+ vertical-align: top;
69
+ }
70
  }
71
  }
assets/js/admin/quick-edit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*global ajaxurl, inlineEditPost, inlineEditL10n, woocommerce_admin */
2
  jQuery(function( $ ) {
3
  $( '#the-list' ).on( 'click', '.editinline', function() {
4
 
@@ -104,10 +104,6 @@ jQuery(function( $ ) {
104
  $( 'input.text', '.inline-edit-row' ).val( '' );
105
  $( '#woocommerce-fields' ).find( 'select' ).prop( 'selectedIndex', 0 );
106
  $( '#woocommerce-fields-bulk' ).find( '.inline-edit-group .change-input' ).hide();
107
-
108
- // Autosuggest product tags on bulk edit
109
- var tax = 'product_tag';
110
- $( '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 } );
111
  });
112
 
113
  $( '#wpbody' ).on( 'change', '#woocommerce-fields-bulk .inline-edit-group .change_to', function() {
1
+ /*global inlineEditPost, woocommerce_admin */
2
  jQuery(function( $ ) {
3
  $( '#the-list' ).on( 'click', '.editinline', function() {
4
 
104
  $( 'input.text', '.inline-edit-row' ).val( '' );
105
  $( '#woocommerce-fields' ).find( 'select' ).prop( 'selectedIndex', 0 );
106
  $( '#woocommerce-fields-bulk' ).find( '.inline-edit-group .change-input' ).hide();
 
 
 
 
107
  });
108
 
109
  $( '#wpbody' ).on( 'change', '#woocommerce-fields-bulk .inline-edit-group .change_to', function() {
assets/js/admin/quick-edit.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(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<a(this).val()?a(this).closest("div").find(".change-input").show():a(this).closest("div").find(".change-input").hide()})});
1
+ jQuery(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()}),a("#wpbody").on("change","#woocommerce-fields-bulk .inline-edit-group .change_to",function(){0<a(this).val()?a(this).closest("div").find(".change-input").show():a(this).closest("div").find(".change-input").hide()})});
assets/js/frontend/add-to-cart-variation.js CHANGED
@@ -566,7 +566,7 @@
566
  $product_img.wc_set_variation_attr( 'data-large_image_width', variation.image.full_src_w );
567
  $product_img.wc_set_variation_attr( 'data-large_image_height', variation.image.full_src_h );
568
  $product_img_wrap.wc_set_variation_attr( 'data-thumb', variation.image.src );
569
- $gallery_img.wc_set_variation_attr( 'src', variation.image.src );
570
  $product_link.wc_set_variation_attr( 'href', variation.image.full_src );
571
  } else {
572
  $product_img.wc_reset_variation_attr( 'src' );
566
  $product_img.wc_set_variation_attr( 'data-large_image_width', variation.image.full_src_w );
567
  $product_img.wc_set_variation_attr( 'data-large_image_height', variation.image.full_src_h );
568
  $product_img_wrap.wc_set_variation_attr( 'data-thumb', variation.image.src );
569
+ $gallery_img.wc_set_variation_attr( 'src', variation.image.thumb_src );
570
  $product_link.wc_set_variation_attr( 'href', variation.image.full_src );
571
  } else {
572
  $product_img.wc_reset_variation_attr( 'src' );
assets/js/frontend/add-to-cart-variation.min.js CHANGED
@@ -1 +1 @@
1
- !function(a,b,c,d){var e=function(a){this.$form=a,this.$attributeFields=a.find(".variations select"),this.$singleVariation=a.find(".single_variation"),this.$singleVariationWrap=a.find(".single_variation_wrap"),this.$resetVariations=a.find(".reset_variations"),this.$product=a.closest(".product"),this.variationData=a.data("product_variations"),this.useAjax=!1===this.variationData,this.xhr=!1,this.$singleVariationWrap.show(),this.$form.unbind("check_variations update_variation_values found_variation"),this.$resetVariations.unbind("click"),this.$attributeFields.unbind("change "),this.getChosenAttributes=this.getChosenAttributes.bind(this),this.findMatchingVariations=this.findMatchingVariations.bind(this),this.isMatch=this.isMatch.bind(this),this.toggleResetLink=this.toggleResetLink.bind(this),a.on("click",".reset_variations",{variationForm:this},this.onReset),a.on("reload_product_variations",{variationForm:this},this.onReload),a.on("hide_variation",{variationForm:this},this.onHide),a.on("show_variation",{variationForm:this},this.onShow),a.on("click",".single_add_to_cart_button",{variationForm:this},this.onAddToCart),a.on("reset_data",{variationForm:this},this.onResetDisplayedVariation),a.on("reset_image",{variationForm:this},this.onResetImage),a.on("change",".variations select",{variationForm:this},this.onChange),a.on("found_variation",{variationForm:this},this.onFoundVariation),a.on("check_variations",{variationForm:this},this.onFindVariation),a.on("update_variation_values",{variationForm:this},this.onUpdateAttributes),a.trigger("check_variations"),a.trigger("wc_variation_form")};e.prototype.onReset=function(a){a.preventDefault(),a.data.variationForm.$attributeFields.val("").change(),a.data.variationForm.$form.trigger("reset_data")},e.prototype.onReload=function(a){var b=a.data.variationForm;b.variationData=b.$form.data("product_variations"),b.useAjax=!1===b.variationData,b.$form.trigger("check_variations")},e.prototype.onHide=function(a){a.preventDefault(),a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-is-unavailable").addClass("disabled wc-variation-selection-needed"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")},e.prototype.onShow=function(a,b,c){a.preventDefault(),c?(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("disabled wc-variation-selection-needed wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-disabled").addClass("woocommerce-variation-add-to-cart-enabled")):(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-selection-needed").addClass("disabled wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled"))},e.prototype.onAddToCart=function(c){a(this).is(".disabled")&&(c.preventDefault(),a(this).is(".wc-variation-is-unavailable")?b.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):a(this).is(".wc-variation-selection-needed")&&b.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))},e.prototype.onResetDisplayedVariation=function(a){var b=a.data.variationForm;b.$product.find(".product_meta").find(".sku").wc_reset_content(),b.$product.find(".product_weight").wc_reset_content(),b.$product.find(".product_dimensions").wc_reset_content(),b.$form.trigger("reset_image"),b.$singleVariation.slideUp(200).trigger("hide_variation")},e.prototype.onResetImage=function(a){a.data.variationForm.$form.wc_variations_image_update(!1)},e.prototype.onFindVariation=function(b){var c=b.data.variationForm,d=c.getChosenAttributes(),e=d.data;if(d.count===d.chosenCount)if(c.useAjax)c.xhr&&c.xhr.abort(),c.$form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.product_id=parseInt(c.$form.data("product_id"),10),e.custom_data=c.$form.data("custom_data"),c.xhr=a.ajax({url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),type:"POST",data:e,success:function(a){a?c.$form.trigger("found_variation",[a]):(c.$form.trigger("reset_data"),c.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),c.$form.find(".wc-no-matching-variations").slideDown(200))},complete:function(){c.$form.unblock()}});else{c.$form.trigger("update_variation_values");var f=c.findMatchingVariations(c.variationData,e),g=f.shift();g?c.$form.trigger("found_variation",[g]):(c.$form.trigger("reset_data"),c.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),c.$form.find(".wc-no-matching-variations").slideDown(200))}else c.$form.trigger("update_variation_values"),c.$form.trigger("reset_data");c.toggleResetLink(d.chosenCount>0)},e.prototype.onFoundVariation=function(b,c){var d=b.data.variationForm,e=d.$product.find(".product_meta").find(".sku"),f=d.$product.find(".product_weight"),g=d.$product.find(".product_dimensions"),h=d.$singleVariationWrap.find(".quantity"),i=!0,j="",k=!1,l="";c.sku?e.wc_set_content(c.sku):e.wc_reset_content(),c.weight?f.wc_set_content(c.weight):f.wc_reset_content(),c.dimensions?g.wc_set_content(c.dimensions):g.wc_reset_content(),d.$form.wc_variations_image_update(c),c.variation_is_visible?(k=wp.template("variation-template"),j=c.variation_id):k=wp.template("unavailable-variation-template"),l=k({variation:c}),l=l.replace("/*<![CDATA[*/",""),l=l.replace("/*]]>*/",""),d.$singleVariation.html(l),d.$form.find('input[name="variation_id"], input.variation_id').val(c.variation_id).change(),"yes"===c.is_sold_individually?(h.find("input.qty").val("1").attr("min","1").attr("max",""),h.hide()):(h.find("input.qty").attr("min",c.min_qty).attr("max",c.max_qty),h.show()),c.is_purchasable&&c.is_in_stock&&c.variation_is_visible||(i=!1),a.trim(d.$singleVariation.text())?d.$singleVariation.slideDown(200).trigger("show_variation",[c,i]):d.$singleVariation.show().trigger("show_variation",[c,i])},e.prototype.onChange=function(b){var c=b.data.variationForm;c.$form.find('input[name="variation_id"], input.variation_id').val("").change(),c.$form.find(".wc-no-matching-variations").remove(),c.useAjax?c.$form.trigger("check_variations"):(c.$form.trigger("woocommerce_variation_select_change"),c.$form.trigger("check_variations"),a(this).blur()),c.$form.trigger("woocommerce_variation_has_changed")},e.prototype.addSlashes=function(a){return a=a.replace(/'/g,"\\'"),a=a.replace(/"/g,'\\"')},e.prototype.onUpdateAttributes=function(b){var c=b.data.variationForm,d=c.getChosenAttributes(),e=d.data;c.useAjax||(c.$attributeFields.each(function(b,d){var f=a(d),g=f.data("attribute_name")||f.attr("name"),h=a(d).data("show_option_none"),i=":gt(0)",j=0,k=a("<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("<div/>").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;d<a.length;d++){var e=a[d];this.isMatch(e.attributes,b)&&c.push(e)}return c},e.prototype.isMatch=function(a,b){var c=!0;for(var e in a)if(a.hasOwnProperty(e)){var f=a[e],g=b[e];f!==d&&g!==d&&0!==f.length&&0!==g.length&&f!==g&&(c=!1)}return c},e.prototype.toggleResetLink=function(a){a?"hidden"===this.$resetVariations.css("visibility")&&this.$resetVariations.css("visibility","visible").hide().fadeIn():this.$resetVariations.css("visibility","hidden")},a.fn.wc_variation_form=function(){return new e(this),this},a.fn.wc_set_content=function(a){d===this.attr("data-o_content")&&this.attr("data-o_content",this.text()),this.text(a)},a.fn.wc_reset_content=function(){d!==this.attr("data-o_content")&&this.text(this.attr("data-o_content"))},a.fn.wc_set_variation_attr=function(a,b){d===this.attr("data-o_"+a)&&this.attr("data-o_"+a,this.attr(a)?this.attr(a):""),!1===b?this.removeAttr(a):this.attr(a,b)},a.fn.wc_reset_variation_attr=function(a){d!==this.attr("data-o_"+a)&&this.attr(a,this.attr("data-o_"+a))},a.fn.wc_maybe_trigger_slide_position_reset=function(b){var c=a(this),d=c.closest(".product"),e=d.find(".images"),f=!1,g=b&&b.image_id?b.image_id:"";c.attr("current-image")!==g&&(f=!0),c.attr("current-image",g),f&&e.trigger("woocommerce_gallery_reset_slide_position")},a.fn.wc_variations_image_update=function(c){var d=this,e=d.closest(".product"),f=e.find(".images"),g=e.find(".flex-control-nav li:eq(0) img"),h=f.find(".woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder").eq(0),i=h.find(".wp-post-image"),j=h.find("a").eq(0);c&&c.image&&c.image.src&&c.image.src.length>1?(i.wc_set_variation_attr("src",c.image.src),i.wc_set_variation_attr("height",c.image.src_h),i.wc_set_variation_attr("width",c.image.src_w),i.wc_set_variation_attr("srcset",c.image.srcset),i.wc_set_variation_attr("sizes",c.image.sizes),i.wc_set_variation_attr("title",c.image.title),i.wc_set_variation_attr("alt",c.image.alt),i.wc_set_variation_attr("data-src",c.image.full_src),i.wc_set_variation_attr("data-large_image",c.image.full_src),i.wc_set_variation_attr("data-large_image_width",c.image.full_src_w),i.wc_set_variation_attr("data-large_image_height",c.image.full_src_h),h.wc_set_variation_attr("data-thumb",c.image.src),g.wc_set_variation_attr("src",c.image.src),j.wc_set_variation_attr("href",c.image.full_src)):(i.wc_reset_variation_attr("src"),i.wc_reset_variation_attr("width"),i.wc_reset_variation_attr("height"),i.wc_reset_variation_attr("srcset"),i.wc_reset_variation_attr("sizes"),i.wc_reset_variation_attr("title"),i.wc_reset_variation_attr("alt"),i.wc_reset_variation_attr("data-src"),i.wc_reset_variation_attr("data-large_image"),i.wc_reset_variation_attr("data-large_image_width"),i.wc_reset_variation_attr("data-large_image_height"),h.wc_reset_variation_attr("data-thumb"),g.wc_reset_variation_attr("src"),j.wc_reset_variation_attr("href")),b.setTimeout(function(){f.trigger("woocommerce_gallery_init_zoom"),d.wc_maybe_trigger_slide_position_reset(c),a(b).trigger("resize")},10)},a(function(){"undefined"!=typeof wc_add_to_cart_variation_params&&a(".variations_form").each(function(){a(this).wc_variation_form()})})}(jQuery,window,document);
1
+ !function(a,b,c,d){var e=function(a){this.$form=a,this.$attributeFields=a.find(".variations select"),this.$singleVariation=a.find(".single_variation"),this.$singleVariationWrap=a.find(".single_variation_wrap"),this.$resetVariations=a.find(".reset_variations"),this.$product=a.closest(".product"),this.variationData=a.data("product_variations"),this.useAjax=!1===this.variationData,this.xhr=!1,this.$singleVariationWrap.show(),this.$form.unbind("check_variations update_variation_values found_variation"),this.$resetVariations.unbind("click"),this.$attributeFields.unbind("change "),this.getChosenAttributes=this.getChosenAttributes.bind(this),this.findMatchingVariations=this.findMatchingVariations.bind(this),this.isMatch=this.isMatch.bind(this),this.toggleResetLink=this.toggleResetLink.bind(this),a.on("click",".reset_variations",{variationForm:this},this.onReset),a.on("reload_product_variations",{variationForm:this},this.onReload),a.on("hide_variation",{variationForm:this},this.onHide),a.on("show_variation",{variationForm:this},this.onShow),a.on("click",".single_add_to_cart_button",{variationForm:this},this.onAddToCart),a.on("reset_data",{variationForm:this},this.onResetDisplayedVariation),a.on("reset_image",{variationForm:this},this.onResetImage),a.on("change",".variations select",{variationForm:this},this.onChange),a.on("found_variation",{variationForm:this},this.onFoundVariation),a.on("check_variations",{variationForm:this},this.onFindVariation),a.on("update_variation_values",{variationForm:this},this.onUpdateAttributes),a.trigger("check_variations"),a.trigger("wc_variation_form")};e.prototype.onReset=function(a){a.preventDefault(),a.data.variationForm.$attributeFields.val("").change(),a.data.variationForm.$form.trigger("reset_data")},e.prototype.onReload=function(a){var b=a.data.variationForm;b.variationData=b.$form.data("product_variations"),b.useAjax=!1===b.variationData,b.$form.trigger("check_variations")},e.prototype.onHide=function(a){a.preventDefault(),a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-is-unavailable").addClass("disabled wc-variation-selection-needed"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")},e.prototype.onShow=function(a,b,c){a.preventDefault(),c?(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("disabled wc-variation-selection-needed wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-disabled").addClass("woocommerce-variation-add-to-cart-enabled")):(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-selection-needed").addClass("disabled wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled"))},e.prototype.onAddToCart=function(c){a(this).is(".disabled")&&(c.preventDefault(),a(this).is(".wc-variation-is-unavailable")?b.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):a(this).is(".wc-variation-selection-needed")&&b.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))},e.prototype.onResetDisplayedVariation=function(a){var b=a.data.variationForm;b.$product.find(".product_meta").find(".sku").wc_reset_content(),b.$product.find(".product_weight").wc_reset_content(),b.$product.find(".product_dimensions").wc_reset_content(),b.$form.trigger("reset_image"),b.$singleVariation.slideUp(200).trigger("hide_variation")},e.prototype.onResetImage=function(a){a.data.variationForm.$form.wc_variations_image_update(!1)},e.prototype.onFindVariation=function(b){var c=b.data.variationForm,d=c.getChosenAttributes(),e=d.data;if(d.count===d.chosenCount)if(c.useAjax)c.xhr&&c.xhr.abort(),c.$form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.product_id=parseInt(c.$form.data("product_id"),10),e.custom_data=c.$form.data("custom_data"),c.xhr=a.ajax({url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),type:"POST",data:e,success:function(a){a?c.$form.trigger("found_variation",[a]):(c.$form.trigger("reset_data"),c.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),c.$form.find(".wc-no-matching-variations").slideDown(200))},complete:function(){c.$form.unblock()}});else{c.$form.trigger("update_variation_values");var f=c.findMatchingVariations(c.variationData,e),g=f.shift();g?c.$form.trigger("found_variation",[g]):(c.$form.trigger("reset_data"),c.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),c.$form.find(".wc-no-matching-variations").slideDown(200))}else c.$form.trigger("update_variation_values"),c.$form.trigger("reset_data");c.toggleResetLink(d.chosenCount>0)},e.prototype.onFoundVariation=function(b,c){var d=b.data.variationForm,e=d.$product.find(".product_meta").find(".sku"),f=d.$product.find(".product_weight"),g=d.$product.find(".product_dimensions"),h=d.$singleVariationWrap.find(".quantity"),i=!0,j="",k=!1,l="";c.sku?e.wc_set_content(c.sku):e.wc_reset_content(),c.weight?f.wc_set_content(c.weight):f.wc_reset_content(),c.dimensions?g.wc_set_content(c.dimensions):g.wc_reset_content(),d.$form.wc_variations_image_update(c),c.variation_is_visible?(k=wp.template("variation-template"),j=c.variation_id):k=wp.template("unavailable-variation-template"),l=k({variation:c}),l=l.replace("/*<![CDATA[*/",""),l=l.replace("/*]]>*/",""),d.$singleVariation.html(l),d.$form.find('input[name="variation_id"], input.variation_id').val(c.variation_id).change(),"yes"===c.is_sold_individually?(h.find("input.qty").val("1").attr("min","1").attr("max",""),h.hide()):(h.find("input.qty").attr("min",c.min_qty).attr("max",c.max_qty),h.show()),c.is_purchasable&&c.is_in_stock&&c.variation_is_visible||(i=!1),a.trim(d.$singleVariation.text())?d.$singleVariation.slideDown(200).trigger("show_variation",[c,i]):d.$singleVariation.show().trigger("show_variation",[c,i])},e.prototype.onChange=function(b){var c=b.data.variationForm;c.$form.find('input[name="variation_id"], input.variation_id').val("").change(),c.$form.find(".wc-no-matching-variations").remove(),c.useAjax?c.$form.trigger("check_variations"):(c.$form.trigger("woocommerce_variation_select_change"),c.$form.trigger("check_variations"),a(this).blur()),c.$form.trigger("woocommerce_variation_has_changed")},e.prototype.addSlashes=function(a){return a=a.replace(/'/g,"\\'"),a=a.replace(/"/g,'\\"')},e.prototype.onUpdateAttributes=function(b){var c=b.data.variationForm,d=c.getChosenAttributes(),e=d.data;c.useAjax||(c.$attributeFields.each(function(b,d){var f=a(d),g=f.data("attribute_name")||f.attr("name"),h=a(d).data("show_option_none"),i=":gt(0)",j=0,k=a("<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("<div/>").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;d<a.length;d++){var e=a[d];this.isMatch(e.attributes,b)&&c.push(e)}return c},e.prototype.isMatch=function(a,b){var c=!0;for(var e in a)if(a.hasOwnProperty(e)){var f=a[e],g=b[e];f!==d&&g!==d&&0!==f.length&&0!==g.length&&f!==g&&(c=!1)}return c},e.prototype.toggleResetLink=function(a){a?"hidden"===this.$resetVariations.css("visibility")&&this.$resetVariations.css("visibility","visible").hide().fadeIn():this.$resetVariations.css("visibility","hidden")},a.fn.wc_variation_form=function(){return new e(this),this},a.fn.wc_set_content=function(a){d===this.attr("data-o_content")&&this.attr("data-o_content",this.text()),this.text(a)},a.fn.wc_reset_content=function(){d!==this.attr("data-o_content")&&this.text(this.attr("data-o_content"))},a.fn.wc_set_variation_attr=function(a,b){d===this.attr("data-o_"+a)&&this.attr("data-o_"+a,this.attr(a)?this.attr(a):""),!1===b?this.removeAttr(a):this.attr(a,b)},a.fn.wc_reset_variation_attr=function(a){d!==this.attr("data-o_"+a)&&this.attr(a,this.attr("data-o_"+a))},a.fn.wc_maybe_trigger_slide_position_reset=function(b){var c=a(this),d=c.closest(".product"),e=d.find(".images"),f=!1,g=b&&b.image_id?b.image_id:"";c.attr("current-image")!==g&&(f=!0),c.attr("current-image",g),f&&e.trigger("woocommerce_gallery_reset_slide_position")},a.fn.wc_variations_image_update=function(c){var d=this,e=d.closest(".product"),f=e.find(".images"),g=e.find(".flex-control-nav li:eq(0) img"),h=f.find(".woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder").eq(0),i=h.find(".wp-post-image"),j=h.find("a").eq(0);c&&c.image&&c.image.src&&c.image.src.length>1?(i.wc_set_variation_attr("src",c.image.src),i.wc_set_variation_attr("height",c.image.src_h),i.wc_set_variation_attr("width",c.image.src_w),i.wc_set_variation_attr("srcset",c.image.srcset),i.wc_set_variation_attr("sizes",c.image.sizes),i.wc_set_variation_attr("title",c.image.title),i.wc_set_variation_attr("alt",c.image.alt),i.wc_set_variation_attr("data-src",c.image.full_src),i.wc_set_variation_attr("data-large_image",c.image.full_src),i.wc_set_variation_attr("data-large_image_width",c.image.full_src_w),i.wc_set_variation_attr("data-large_image_height",c.image.full_src_h),h.wc_set_variation_attr("data-thumb",c.image.src),g.wc_set_variation_attr("src",c.image.thumb_src),j.wc_set_variation_attr("href",c.image.full_src)):(i.wc_reset_variation_attr("src"),i.wc_reset_variation_attr("width"),i.wc_reset_variation_attr("height"),i.wc_reset_variation_attr("srcset"),i.wc_reset_variation_attr("sizes"),i.wc_reset_variation_attr("title"),i.wc_reset_variation_attr("alt"),i.wc_reset_variation_attr("data-src"),i.wc_reset_variation_attr("data-large_image"),i.wc_reset_variation_attr("data-large_image_width"),i.wc_reset_variation_attr("data-large_image_height"),h.wc_reset_variation_attr("data-thumb"),g.wc_reset_variation_attr("src"),j.wc_reset_variation_attr("href")),b.setTimeout(function(){f.trigger("woocommerce_gallery_init_zoom"),d.wc_maybe_trigger_slide_position_reset(c),a(b).trigger("resize")},10)},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.js CHANGED
@@ -107,6 +107,8 @@ jQuery( function( $ ) {
107
  $.each( fragments, function( key, value ) {
108
  $( key ).replaceWith( value );
109
  });
 
 
110
  }
111
 
112
  // Unblock.
107
  $.each( fragments, function( key, value ) {
108
  $( key ).replaceWith( value );
109
  });
110
+
111
+ $( document.body ).trigger( 'wc_fragments_loaded' );
112
  }
113
 
114
  // Unblock.
assets/js/frontend/add-to-cart.min.js CHANGED
@@ -1,4 +1,4 @@
1
  /*!
2
  * WooCommerce Add to Cart JS
3
  */
4
- jQuery(function(a){return"undefined"!=typeof wc_add_to_cart_params&&(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)return c.error&&c.product_url?void(window.location=c.product_url):"yes"===wc_add_to_cart_params.cart_redirect_after_add?void(window.location=wc_add_to_cart_params.cart_url):void a(document.body).trigger("added_to_cart",[c.fragments,c.cart_hash,b])}),!1}return!0}),void a(document.body).on("added_to_cart",function(b,c,d,e){var f=window.location.toString().replace("add-to-cart","added-to-cart");e="undefined"!=typeof e&&e,e&&e.removeClass("loading"),c&&a.each(c,function(b){a(b).addClass("updating")}),a(".shop_table.cart, .updating, .cart_totals").fadeTo("400","0.6").block({message:null,overlayCSS:{opacity:.6}}),e&&(e.addClass("added"),wc_add_to_cart_params.is_cart||0!==e.parent().find(".added_to_cart").length||e.after(' <a href="'+wc_add_to_cart_params.cart_url+'" class="added_to_cart wc-forward" title="'+wc_add_to_cart_params.i18n_view_cart+'">'+wc_add_to_cart_params.i18n_view_cart+"</a>")),c&&a.each(c,function(b,c){a(b).replaceWith(c)}),a(".widget_shopping_cart, .updating").stop(!0).css("opacity","1").unblock(),a(".shop_table.cart").load(f+" .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(f+" .cart_totals:eq(0) > *",function(){a(".cart_totals").stop(!0).css("opacity","1").unblock()})}))});
1
  /*!
2
  * WooCommerce Add to Cart JS
3
  */
4
+ jQuery(function(a){return"undefined"!=typeof wc_add_to_cart_params&&(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)return c.error&&c.product_url?void(window.location=c.product_url):"yes"===wc_add_to_cart_params.cart_redirect_after_add?void(window.location=wc_add_to_cart_params.cart_url):void a(document.body).trigger("added_to_cart",[c.fragments,c.cart_hash,b])}),!1}return!0}),void a(document.body).on("added_to_cart",function(b,c,d,e){var f=window.location.toString().replace("add-to-cart","added-to-cart");e="undefined"!=typeof e&&e,e&&e.removeClass("loading"),c&&a.each(c,function(b){a(b).addClass("updating")}),a(".shop_table.cart, .updating, .cart_totals").fadeTo("400","0.6").block({message:null,overlayCSS:{opacity:.6}}),e&&(e.addClass("added"),wc_add_to_cart_params.is_cart||0!==e.parent().find(".added_to_cart").length||e.after(' <a href="'+wc_add_to_cart_params.cart_url+'" class="added_to_cart wc-forward" title="'+wc_add_to_cart_params.i18n_view_cart+'">'+wc_add_to_cart_params.i18n_view_cart+"</a>")),c&&(a.each(c,function(b,c){a(b).replaceWith(c)}),a(document.body).trigger("wc_fragments_loaded")),a(".widget_shopping_cart, .updating").stop(!0).css("opacity","1").unblock(),a(".shop_table.cart").load(f+" .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(f+" .cart_totals:eq(0) > *",function(){a(".cart_totals").stop(!0).css("opacity","1").unblock()})}))});
assets/js/frontend/single-product.js CHANGED
@@ -93,7 +93,7 @@ jQuery( function( $ ) {
93
 
94
  // ...also taking args into account.
95
  if ( args ) {
96
- this.flexslider_enabled = false === args.photoswipe_enabled ? false : this.flexslider_enabled;
97
  this.zoom_enabled = false === args.zoom_enabled ? false : this.zoom_enabled;
98
  this.photoswipe_enabled = false === args.photoswipe_enabled ? false : this.photoswipe_enabled;
99
  }
93
 
94
  // ...also taking args into account.
95
  if ( args ) {
96
+ this.flexslider_enabled = false === args.flexslider_enabled ? false : this.flexslider_enabled;
97
  this.zoom_enabled = false === args.zoom_enabled ? false : this.zoom_enabled;
98
  this.photoswipe_enabled = false === args.photoswipe_enabled ? false : this.photoswipe_enabled;
99
  }
assets/js/frontend/single-product.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(a){if("undefined"==typeof wc_single_product_params)return!1;a("body").on("init",".wc-tabs-wrapper, .woocommerce-tabs",function(){a(".wc-tab, .woocommerce-tabs .panel:not(.panel .panel)").hide();var b=window.location.hash,c=window.location.href,d=a(this).find(".wc-tabs, ul.tabs").first();b.toLowerCase().indexOf("comment-")>=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('<p class="stars"><span><a class="star-1" href="#">1</a><a class="star-2" href="#">2</a><a class="star-3" href="#">3</a><a class="star-4" href="#">4</a><a class="star-5" href="#">5</a></span></p>')}).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}),a(".wc-tabs-wrapper, .woocommerce-tabs, #rating").trigger("init");var b=function(b,c){return this.$target=b,this.$images=a(".woocommerce-product-gallery__image",b),0===this.$images.length?void this.$target.css("opacity",1):(b.data("product_gallery",this),this.flexslider_enabled=a.isFunction(a.fn.flexslider)&&wc_single_product_params.flexslider_enabled,this.zoom_enabled=a.isFunction(a.fn.zoom)&&wc_single_product_params.zoom_enabled,this.photoswipe_enabled="undefined"!=typeof PhotoSwipe&&wc_single_product_params.photoswipe_enabled,c&&(this.flexslider_enabled=!1!==c.photoswipe_enabled&&this.flexslider_enabled,this.zoom_enabled=!1!==c.zoom_enabled&&this.zoom_enabled,this.photoswipe_enabled=!1!==c.photoswipe_enabled&&this.photoswipe_enabled),this.initFlexslider=this.initFlexslider.bind(this),this.initZoom=this.initZoom.bind(this),this.initPhotoswipe=this.initPhotoswipe.bind(this),this.onResetSlidePosition=this.onResetSlidePosition.bind(this),this.getGalleryItems=this.getGalleryItems.bind(this),this.openPhotoswipe=this.openPhotoswipe.bind(this),this.flexslider_enabled?(this.initFlexslider(),b.on("woocommerce_gallery_reset_slide_position",this.onResetSlidePosition)):this.$target.css("opacity",1),this.zoom_enabled&&(this.initZoom(),b.on("woocommerce_gallery_init_zoom",this.initZoom)),void(this.photoswipe_enabled&&this.initPhotoswipe()))};b.prototype.initFlexslider=function(){var b=this.$images,c=this.$target;c.flexslider({selector:".woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image",animation:wc_single_product_params.flexslider.animation,smoothHeight:wc_single_product_params.flexslider.smoothHeight,directionNav:wc_single_product_params.flexslider.directionNav,controlNav:wc_single_product_params.flexslider.controlNav,slideshow:wc_single_product_params.flexslider.slideshow,animationSpeed:wc_single_product_params.flexslider.animationSpeed,animationLoop:wc_single_product_params.flexslider.animationLoop,start:function(){c.css("opacity",1);var d=0;b.each(function(){var b=a(this).height();b>d&&(d=b)}),b.each(function(){a(this).css("min-height",d)})}})},b.prototype.initZoom=function(){var b=this.$images,c=this.$target.width(),d=!1;if(this.flexslider_enabled||(b=b.first()),a(b).each(function(b,e){var f=a(e).find("img");if(f.data("large_image_width")>c)return d=!0,!1}),d){var e={touch:!1};"ontouchstart"in window&&(e.on="click"),b.trigger("zoom.destroy"),b.zoom(e)}},b.prototype.initPhotoswipe=function(){this.zoom_enabled&&this.$images.length>0&&(this.$target.prepend('<a href="#" class="woocommerce-product-gallery__trigger">🔍</a>'),this.$target.on("click",".woocommerce-product-gallery__trigger",this.openPhotoswipe)),this.$target.on("click",".woocommerce-product-gallery__image a",this.openPhotoswipe)},b.prototype.onResetSlidePosition=function(){this.$target.flexslider(0)},b.prototype.getGalleryItems=function(){var b=this.$images,c=[];return b.length>0&&b.each(function(b,d){var e=a(d).find("img"),f=e.attr("data-large_image"),g=e.attr("data-large_image_width"),h=e.attr("data-large_image_height"),i={src:f,w:g,h:h,title:e.attr("title")};c.push(i)}),c},b.prototype.openPhotoswipe=function(b){b.preventDefault();var c,d=a(".pswp")[0],e=this.getGalleryItems(),f=a(b.target);c=f.is(".woocommerce-product-gallery__trigger")?this.$target.find(".flex-active-slide"):f.closest(".woocommerce-product-gallery__image");var g={index:a(c).index(),shareEl:!1,closeOnScroll:!1,history:!1,hideAnimationDuration:0,showAnimationDuration:0},h=new PhotoSwipe(d,PhotoSwipeUI_Default,e,g);h.init()},a.fn.wc_product_gallery=function(a){return new b(this,a),this},a(".woocommerce-product-gallery").each(function(){a(this).wc_product_gallery()})});
1
+ jQuery(function(a){if("undefined"==typeof wc_single_product_params)return!1;a("body").on("init",".wc-tabs-wrapper, .woocommerce-tabs",function(){a(".wc-tab, .woocommerce-tabs .panel:not(.panel .panel)").hide();var b=window.location.hash,c=window.location.href,d=a(this).find(".wc-tabs, ul.tabs").first();b.toLowerCase().indexOf("comment-")>=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('<p class="stars"><span><a class="star-1" href="#">1</a><a class="star-2" href="#">2</a><a class="star-3" href="#">3</a><a class="star-4" href="#">4</a><a class="star-5" href="#">5</a></span></p>')}).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}),a(".wc-tabs-wrapper, .woocommerce-tabs, #rating").trigger("init");var b=function(b,c){return this.$target=b,this.$images=a(".woocommerce-product-gallery__image",b),0===this.$images.length?void this.$target.css("opacity",1):(b.data("product_gallery",this),this.flexslider_enabled=a.isFunction(a.fn.flexslider)&&wc_single_product_params.flexslider_enabled,this.zoom_enabled=a.isFunction(a.fn.zoom)&&wc_single_product_params.zoom_enabled,this.photoswipe_enabled="undefined"!=typeof PhotoSwipe&&wc_single_product_params.photoswipe_enabled,c&&(this.flexslider_enabled=!1!==c.flexslider_enabled&&this.flexslider_enabled,this.zoom_enabled=!1!==c.zoom_enabled&&this.zoom_enabled,this.photoswipe_enabled=!1!==c.photoswipe_enabled&&this.photoswipe_enabled),this.initFlexslider=this.initFlexslider.bind(this),this.initZoom=this.initZoom.bind(this),this.initPhotoswipe=this.initPhotoswipe.bind(this),this.onResetSlidePosition=this.onResetSlidePosition.bind(this),this.getGalleryItems=this.getGalleryItems.bind(this),this.openPhotoswipe=this.openPhotoswipe.bind(this),this.flexslider_enabled?(this.initFlexslider(),b.on("woocommerce_gallery_reset_slide_position",this.onResetSlidePosition)):this.$target.css("opacity",1),this.zoom_enabled&&(this.initZoom(),b.on("woocommerce_gallery_init_zoom",this.initZoom)),void(this.photoswipe_enabled&&this.initPhotoswipe()))};b.prototype.initFlexslider=function(){var b=this.$images,c=this.$target;c.flexslider({selector:".woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image",animation:wc_single_product_params.flexslider.animation,smoothHeight:wc_single_product_params.flexslider.smoothHeight,directionNav:wc_single_product_params.flexslider.directionNav,controlNav:wc_single_product_params.flexslider.controlNav,slideshow:wc_single_product_params.flexslider.slideshow,animationSpeed:wc_single_product_params.flexslider.animationSpeed,animationLoop:wc_single_product_params.flexslider.animationLoop,start:function(){c.css("opacity",1);var d=0;b.each(function(){var b=a(this).height();b>d&&(d=b)}),b.each(function(){a(this).css("min-height",d)})}})},b.prototype.initZoom=function(){var b=this.$images,c=this.$target.width(),d=!1;if(this.flexslider_enabled||(b=b.first()),a(b).each(function(b,e){var f=a(e).find("img");if(f.data("large_image_width")>c)return d=!0,!1}),d){var e={touch:!1};"ontouchstart"in window&&(e.on="click"),b.trigger("zoom.destroy"),b.zoom(e)}},b.prototype.initPhotoswipe=function(){this.zoom_enabled&&this.$images.length>0&&(this.$target.prepend('<a href="#" class="woocommerce-product-gallery__trigger">🔍</a>'),this.$target.on("click",".woocommerce-product-gallery__trigger",this.openPhotoswipe)),this.$target.on("click",".woocommerce-product-gallery__image a",this.openPhotoswipe)},b.prototype.onResetSlidePosition=function(){this.$target.flexslider(0)},b.prototype.getGalleryItems=function(){var b=this.$images,c=[];return b.length>0&&b.each(function(b,d){var e=a(d).find("img"),f=e.attr("data-large_image"),g=e.attr("data-large_image_width"),h=e.attr("data-large_image_height"),i={src:f,w:g,h:h,title:e.attr("title")};c.push(i)}),c},b.prototype.openPhotoswipe=function(b){b.preventDefault();var c,d=a(".pswp")[0],e=this.getGalleryItems(),f=a(b.target);c=f.is(".woocommerce-product-gallery__trigger")?this.$target.find(".flex-active-slide"):f.closest(".woocommerce-product-gallery__image");var g={index:a(c).index(),shareEl:!1,closeOnScroll:!1,history:!1,hideAnimationDuration:0,showAnimationDuration:0},h=new PhotoSwipe(d,PhotoSwipeUI_Default,e,g);h.init()},a.fn.wc_product_gallery=function(a){return new b(this,a),this},a(".woocommerce-product-gallery").each(function(){a(this).wc_product_gallery()})});
i18n/languages/woocommerce.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce 3.0.1\n"
6
  "Report-Msgid-Bugs-To: https://github.com/woocommerce/woocommerce/issues\n"
7
- "POT-Creation-Date: 2017-04-06 22:32:24+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -5220,8 +5220,8 @@ msgstr ""
5220
  #: includes/abstracts/abstract-wc-product.php:1868
5221
  #: includes/admin/class-wc-admin-post-types.php:438
5222
  #: includes/admin/class-wc-admin-reports.php:100
5223
- #: includes/admin/reports/class-wc-report-stock.php:110
5224
- #: includes/wc-product-functions.php:802
5225
  msgid "Out of stock"
5226
  msgstr ""
5227
 
@@ -5237,7 +5237,7 @@ msgstr ""
5237
  #: includes/api/legacy/v3/class-wc-api-coupons.php:519
5238
  #: includes/api/legacy/v3/class-wc-api-customers.php:773
5239
  #: includes/api/legacy/v3/class-wc-api-orders.php:1818
5240
- #: includes/api/legacy/v3/class-wc-api-products.php:3077
5241
  #: includes/api/legacy/v3/class-wc-api-taxes.php:465
5242
  #. translators: %s: items limit
5243
  msgid "Unable to accept more than %s items for this request."
@@ -5958,7 +5958,7 @@ msgstr ""
5958
  #: includes/admin/meta-boxes/views/html-product-data-general.php:61
5959
  #: includes/admin/meta-boxes/views/html-variation-admin.php:320
5960
  #: includes/admin/settings/views/html-webhooks-edit.php:15
5961
- #: includes/admin/views/html-admin-page-status-report.php:540
5962
  #: includes/widgets/class-wc-widget-product-categories.php:52
5963
  #: templates/single-product-reviews.php:77
5964
  msgid "Name"
@@ -6067,7 +6067,7 @@ msgstr ""
6067
 
6068
  #: includes/admin/class-wc-admin-attributes.php:99
6069
  #: includes/api/legacy/v2/class-wc-api-products.php:1963
6070
- #: includes/api/legacy/v3/class-wc-api-products.php:2521
6071
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:646
6072
  #. translators: %s: attribute name
6073
  msgid "Slug \"%s\" is too long (28 characters max). Shorten it, please."
@@ -6075,7 +6075,7 @@ msgstr ""
6075
 
6076
  #: includes/admin/class-wc-admin-attributes.php:102
6077
  #: includes/api/legacy/v2/class-wc-api-products.php:1965
6078
- #: includes/api/legacy/v3/class-wc-api-products.php:2523
6079
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:648
6080
  #. translators: %s: attribute name
6081
  msgid "Slug \"%s\" is not allowed because it is a reserved term. Change it, please."
@@ -6089,7 +6089,7 @@ msgstr ""
6089
  #: includes/admin/class-wc-admin-attributes.php:124
6090
  #: includes/admin/class-wc-admin-attributes.php:158
6091
  #: includes/api/legacy/v2/class-wc-api-products.php:1967
6092
- #: includes/api/legacy/v3/class-wc-api-products.php:2525
6093
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:650
6094
  #. translators: %s: attribute name
6095
  msgid "Slug \"%s\" is already in use. Change it, please."
@@ -6202,7 +6202,7 @@ msgstr ""
6202
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:274
6203
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:364
6204
  #: includes/admin/reports/class-wc-report-customer-list.php:159
6205
- #: includes/admin/reports/class-wc-report-stock.php:127
6206
  #: includes/admin/settings/views/html-admin-page-shipping-classes.php:48
6207
  #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:107
6208
  #: includes/admin/settings/views/html-admin-page-shipping-zones.php:28
@@ -6344,6 +6344,10 @@ msgstr ""
6344
  msgid "Product creation failed, could not find original product: %s"
6345
  msgstr ""
6346
 
 
 
 
 
6347
  #: includes/admin/class-wc-admin-help.php:41
6348
  #: includes/admin/class-wc-admin-help.php:45
6349
  msgid "General Settings"
@@ -6708,7 +6712,7 @@ msgstr ""
6708
  #: includes/admin/class-wc-admin-menus.php:80
6709
  #: includes/admin/settings/class-wc-settings-api.php:45
6710
  #: includes/admin/views/html-admin-page-status-report.php:432
6711
- #: includes/class-wc-install.php:885
6712
  msgid "Settings"
6713
  msgstr ""
6714
 
@@ -7319,7 +7323,7 @@ msgstr ""
7319
  #: includes/admin/class-wc-admin-post-types.php:310
7320
  #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:43
7321
  #: includes/admin/reports/class-wc-report-customer-list.php:215
7322
- #: includes/admin/reports/class-wc-report-stock.php:168
7323
  msgid "Actions"
7324
  msgstr ""
7325
 
@@ -7380,9 +7384,9 @@ msgid "No"
7380
  msgstr ""
7381
 
7382
  #: includes/admin/class-wc-admin-post-types.php:436
7383
- #: includes/admin/reports/class-wc-report-stock.php:108
7384
- #: includes/wc-formatting-functions.php:970
7385
- #: includes/wc-product-functions.php:801
7386
  msgid "In stock"
7387
  msgstr ""
7388
 
@@ -7442,7 +7446,7 @@ msgid "Complete"
7442
  msgstr ""
7443
 
7444
  #: includes/admin/class-wc-admin-post-types.php:668
7445
- #: includes/admin/reports/class-wc-report-stock.php:134
7446
  #: includes/admin/views/html-admin-page-status-logs.php:28
7447
  #: templates/myaccount/my-orders.php:79 templates/myaccount/orders.php:75
7448
  msgid "View"
@@ -7676,7 +7680,7 @@ msgstr ""
7676
  #: includes/admin/class-wc-admin-profile.php:129
7677
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:75
7678
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:124
7679
- #: includes/wc-template-functions.php:1939
7680
  #: templates/cart/shipping-calculator.php:39
7681
  msgid "Select a country&hellip;"
7682
  msgstr ""
@@ -7699,13 +7703,13 @@ msgstr ""
7699
 
7700
  #: includes/admin/class-wc-admin-profile.php:84
7701
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:86
7702
- #: includes/class-wc-countries.php:1076 includes/class-wc-emails.php:412
7703
  msgid "Phone"
7704
  msgstr ""
7705
 
7706
  #: includes/admin/class-wc-admin-profile.php:88
7707
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:83
7708
- #: includes/class-wc-countries.php:1085 includes/class-wc-emails.php:405
7709
  #: includes/class-wc-form-handler.php:197
7710
  #: templates/myaccount/form-edit-account.php:40
7711
  #: templates/myaccount/form-login.php:91
@@ -8090,7 +8094,7 @@ msgid ""
8090
  msgstr ""
8091
 
8092
  #: includes/admin/class-wc-admin-setup-wizard.php:486
8093
- #: includes/class-wc-countries.php:675 includes/class-wc-countries.php:985
8094
  msgid "State"
8095
  msgstr ""
8096
 
@@ -8186,7 +8190,7 @@ msgstr ""
8186
 
8187
  #: includes/admin/class-wc-admin-setup-wizard.php:778
8188
  #: includes/admin/views/html-notice-tracking.php:13
8189
- #: includes/wc-product-functions.php:816
8190
  msgid "Allow"
8191
  msgstr ""
8192
 
@@ -8837,8 +8841,8 @@ msgstr ""
8837
  #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:93
8838
  #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:122
8839
  #: includes/wc-account-functions.php:264
8840
- #: includes/wc-formatting-functions.php:1039
8841
- #: includes/wc-formatting-functions.php:1058
8842
  #: templates/order/order-details-customer.php:66
8843
  #: templates/order/order-details-customer.php:78
8844
  #: templates/single-product/meta.php:31
@@ -8970,7 +8974,7 @@ msgstr ""
8970
  #: includes/admin/settings/class-wc-settings-shipping.php:27
8971
  #: includes/admin/settings/class-wc-settings-tax.php:178
8972
  #: includes/admin/settings/views/html-settings-tax.php:32
8973
- #: includes/class-wc-order-item-shipping.php:154
8974
  #: templates/cart/cart-totals.php:55 templates/cart/cart-totals.php:56
8975
  msgid "Shipping"
8976
  msgstr ""
@@ -9524,7 +9528,7 @@ msgstr ""
9524
 
9525
  #: includes/admin/meta-boxes/views/html-product-data-inventory.php:62
9526
  #: includes/admin/meta-boxes/views/html-variation-admin.php:204
9527
- #: includes/admin/reports/class-wc-report-stock.php:167
9528
  msgid "Stock status"
9529
  msgstr ""
9530
 
@@ -10285,13 +10289,13 @@ msgstr ""
10285
  msgid "No products found."
10286
  msgstr ""
10287
 
10288
- #: includes/admin/reports/class-wc-report-stock.php:146
10289
  #: includes/widgets/class-wc-widget-product-tag-cloud.php:86
10290
  #. translators: %s: product count
10291
  msgid "%s product"
10292
  msgstr ""
10293
 
10294
- #: includes/admin/reports/class-wc-report-stock.php:164
10295
  #: includes/class-wc-post-types.php:259
10296
  #: includes/data-stores/class-wc-product-data-store-cpt.php:94
10297
  #: includes/wc-account-functions.php:202 templates/cart/cart.php:35
@@ -10302,11 +10306,11 @@ msgstr ""
10302
  msgid "Product"
10303
  msgstr ""
10304
 
10305
- #: includes/admin/reports/class-wc-report-stock.php:165
10306
  msgid "Parent"
10307
  msgstr ""
10308
 
10309
- #: includes/admin/reports/class-wc-report-stock.php:166
10310
  msgid "Units in stock"
10311
  msgstr ""
10312
 
@@ -11707,7 +11711,7 @@ msgstr ""
11707
  #: includes/admin/views/html-bulk-edit-product.php:95
11708
  #: includes/admin/views/html-quick-edit-product.php:73
11709
  #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:217
11710
- #: includes/wc-product-functions.php:783
11711
  msgid "Standard"
11712
  msgstr ""
11713
 
@@ -12534,7 +12538,7 @@ msgid "Secure connection (HTTPS)"
12534
  msgstr ""
12535
 
12536
  #: includes/admin/views/html-admin-page-status-report.php:361
12537
- #: includes/api/class-wc-rest-system-status-controller.php:499
12538
  msgid "Is the connection to your store secure?"
12539
  msgstr ""
12540
 
@@ -12567,8 +12571,8 @@ msgid "Visit plugin homepage"
12567
  msgstr ""
12568
 
12569
  #: includes/admin/views/html-admin-page-status-report.php:406
12570
- #: includes/admin/views/html-admin-page-status-report.php:551
12571
- #: includes/admin/views/html-admin-page-status-report.php:582
12572
  #. translators: %s: plugin latest version
12573
  #. translators: %s: theme latest version
12574
  #. translators: %s: parant theme latest version
@@ -12627,126 +12631,134 @@ msgid ""
12627
  "statuses."
12628
  msgstr ""
12629
 
12630
- #: includes/admin/views/html-admin-page-status-report.php:487
 
 
 
 
 
 
 
 
12631
  msgid "WC pages"
12632
  msgstr ""
12633
 
12634
- #: includes/admin/views/html-admin-page-status-report.php:497
12635
  msgid "Edit %s page"
12636
  msgstr ""
12637
 
12638
- #: includes/admin/views/html-admin-page-status-report.php:503
12639
  msgid "The URL of your WooCommerce shop's %s (along with the Page ID)."
12640
  msgstr ""
12641
 
12642
- #: includes/admin/views/html-admin-page-status-report.php:507
12643
  msgid "Page not set"
12644
  msgstr ""
12645
 
12646
- #: includes/admin/views/html-admin-page-status-report.php:510
12647
  msgid "Page ID is set, but the page does not exist"
12648
  msgstr ""
12649
 
12650
- #: includes/admin/views/html-admin-page-status-report.php:513
12651
  msgid "Page visibility should be <a href=\"%s\" target=\"_blank\">public</a>"
12652
  msgstr ""
12653
 
12654
- #: includes/admin/views/html-admin-page-status-report.php:519
12655
  msgid "Page does not contain the shortcode."
12656
  msgstr ""
12657
 
12658
- #: includes/admin/views/html-admin-page-status-report.php:535
12659
  msgid "Theme"
12660
  msgstr ""
12661
 
12662
- #: includes/admin/views/html-admin-page-status-report.php:541
12663
  msgid "The name of the current active theme."
12664
  msgstr ""
12665
 
12666
- #: includes/admin/views/html-admin-page-status-report.php:545
12667
  msgid "Version"
12668
  msgstr ""
12669
 
12670
- #: includes/admin/views/html-admin-page-status-report.php:546
12671
  msgid "The installed version of the current active theme."
12672
  msgstr ""
12673
 
12674
- #: includes/admin/views/html-admin-page-status-report.php:556
12675
  msgid "Author URL"
12676
  msgstr ""
12677
 
12678
- #: includes/admin/views/html-admin-page-status-report.php:557
12679
  msgid "The theme developers URL."
12680
  msgstr ""
12681
 
12682
- #: includes/admin/views/html-admin-page-status-report.php:561
12683
  msgid "Child theme"
12684
  msgstr ""
12685
 
12686
- #: includes/admin/views/html-admin-page-status-report.php:562
12687
  msgid "Displays whether or not the current theme is a child theme."
12688
  msgstr ""
12689
 
12690
- #: includes/admin/views/html-admin-page-status-report.php:564
12691
  msgid ""
12692
  "If you're modifying WooCommerce on a parent theme you didn't build "
12693
  "personally, then we recommend using a child theme. See: <a href=\"%s\" "
12694
  "target=\"_blank\">How to create a child theme</a>"
12695
  msgstr ""
12696
 
12697
- #: includes/admin/views/html-admin-page-status-report.php:571
12698
  msgid "Parent theme name"
12699
  msgstr ""
12700
 
12701
- #: includes/admin/views/html-admin-page-status-report.php:572
12702
  msgid "The name of the parent theme."
12703
  msgstr ""
12704
 
12705
- #: includes/admin/views/html-admin-page-status-report.php:576
12706
  msgid "Parent theme version"
12707
  msgstr ""
12708
 
12709
- #: includes/admin/views/html-admin-page-status-report.php:577
12710
  msgid "The installed version of the parent theme."
12711
  msgstr ""
12712
 
12713
- #: includes/admin/views/html-admin-page-status-report.php:587
12714
  msgid "Parent theme author URL"
12715
  msgstr ""
12716
 
12717
- #: includes/admin/views/html-admin-page-status-report.php:588
12718
  msgid "The parent theme developers URL."
12719
  msgstr ""
12720
 
12721
- #: includes/admin/views/html-admin-page-status-report.php:593
12722
  msgid "WooCommerce support"
12723
  msgstr ""
12724
 
12725
- #: includes/admin/views/html-admin-page-status-report.php:594
12726
  msgid ""
12727
  "Displays whether or not the current active theme declares WooCommerce "
12728
  "support."
12729
  msgstr ""
12730
 
12731
- #: includes/admin/views/html-admin-page-status-report.php:597
12732
  msgid "Not declared"
12733
  msgstr ""
12734
 
12735
- #: includes/admin/views/html-admin-page-status-report.php:608
12736
  msgid "Templates"
12737
  msgstr ""
12738
 
12739
- #: includes/admin/views/html-admin-page-status-report.php:608
12740
  msgid ""
12741
  "This section shows any files that are overriding the default WooCommerce "
12742
  "template pages."
12743
  msgstr ""
12744
 
12745
- #: includes/admin/views/html-admin-page-status-report.php:614
12746
  msgid "Archive template"
12747
  msgstr ""
12748
 
12749
- #: includes/admin/views/html-admin-page-status-report.php:616
12750
  msgid ""
12751
  "Your theme has a woocommerce.php file, you will not be able to override the "
12752
  "woocommerce/archive-product.php custom template since woocommerce.php has "
@@ -12754,20 +12766,20 @@ msgid ""
12754
  "issues."
12755
  msgstr ""
12756
 
12757
- #: includes/admin/views/html-admin-page-status-report.php:622
12758
- #: includes/admin/views/html-admin-page-status-report.php:652
12759
  msgid "Overrides"
12760
  msgstr ""
12761
 
12762
- #: includes/admin/views/html-admin-page-status-report.php:632
12763
  msgid "%1$s version %2$s is out of date. The core version is %3$s"
12764
  msgstr ""
12765
 
12766
- #: includes/admin/views/html-admin-page-status-report.php:662
12767
  msgid "Outdated templates"
12768
  msgstr ""
12769
 
12770
- #: includes/admin/views/html-admin-page-status-report.php:664
12771
  msgid "Learn how to update"
12772
  msgstr ""
12773
 
@@ -12860,19 +12872,19 @@ msgstr ""
12860
 
12861
  #: includes/admin/views/html-bulk-edit-product.php:187
12862
  #: includes/admin/views/html-quick-edit-product.php:144
12863
- #: includes/wc-product-functions.php:731
12864
  msgid "Catalog"
12865
  msgstr ""
12866
 
12867
  #: includes/admin/views/html-bulk-edit-product.php:188
12868
  #: includes/admin/views/html-quick-edit-product.php:145
12869
- #: includes/wc-product-functions.php:732
12870
  msgid "Search"
12871
  msgstr ""
12872
 
12873
  #: includes/admin/views/html-bulk-edit-product.php:189
12874
  #: includes/admin/views/html-quick-edit-product.php:146
12875
- #: includes/wc-product-functions.php:733
12876
  msgid "Hidden"
12877
  msgstr ""
12878
 
@@ -13631,7 +13643,7 @@ msgstr ""
13631
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:265
13632
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:298
13633
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:126
13634
- #: includes/wc-core-functions.php:137 includes/wc-order-functions.php:498
13635
  msgid "Invalid order ID."
13636
  msgstr ""
13637
 
@@ -14711,8 +14723,8 @@ msgstr ""
14711
  #: includes/api/legacy/v1/class-wc-api-products.php:446
14712
  #: includes/api/legacy/v2/class-wc-api-products.php:1603
14713
  #: includes/api/legacy/v2/class-wc-api-products.php:1604
14714
- #: includes/api/legacy/v3/class-wc-api-products.php:2101
14715
  #: includes/api/legacy/v3/class-wc-api-products.php:2102
 
14716
  #: includes/api/v1/class-wc-rest-products-controller.php:313
14717
  #: includes/api/v1/class-wc-rest-products-controller.php:314
14718
  #: includes/wc-product-functions.php:324
@@ -15443,15 +15455,19 @@ msgstr ""
15443
  msgid "Taxonomy terms for product/order statuses."
15444
  msgstr ""
15445
 
15446
- #: includes/api/class-wc-rest-system-status-controller.php:493
 
 
 
 
15447
  msgid "Security."
15448
  msgstr ""
15449
 
15450
- #: includes/api/class-wc-rest-system-status-controller.php:505
15451
  msgid "Hide errors from visitors?"
15452
  msgstr ""
15453
 
15454
- #: includes/api/class-wc-rest-system-status-controller.php:513
15455
  msgid "WooCommerce pages."
15456
  msgstr ""
15457
 
@@ -15781,7 +15797,7 @@ msgstr ""
15781
 
15782
  #: includes/api/legacy/class-wc-rest-legacy-products-controller.php:531
15783
  #: includes/api/legacy/v2/class-wc-api-products.php:1274
15784
- #: includes/api/legacy/v3/class-wc-api-products.php:1763
15785
  #: includes/api/v1/class-wc-rest-products-controller.php:1374
15786
  #. translators: 1: variation id 2: product name
15787
  msgid "Variation #%1$s of %2$s"
@@ -15946,7 +15962,7 @@ msgstr ""
15946
  #: includes/api/legacy/v2/class-wc-api-products.php:442
15947
  #: includes/api/legacy/v2/class-wc-api-resource.php:384
15948
  #: includes/api/legacy/v3/class-wc-api-products.php:501
15949
- #: includes/api/legacy/v3/class-wc-api-products.php:3019
15950
  #: includes/api/legacy/v3/class-wc-api-resource.php:386
15951
  msgid "This %s cannot be deleted"
15952
  msgstr ""
@@ -15966,9 +15982,9 @@ msgstr ""
15966
  #: includes/api/legacy/v3/class-wc-api-products.php:514
15967
  #: includes/api/legacy/v3/class-wc-api-products.php:854
15968
  #: includes/api/legacy/v3/class-wc-api-products.php:1042
15969
- #: includes/api/legacy/v3/class-wc-api-products.php:2758
15970
- #: includes/api/legacy/v3/class-wc-api-products.php:3026
15971
- #: includes/api/legacy/v3/class-wc-api-products.php:3333
15972
  #: includes/api/legacy/v3/class-wc-api-resource.php:395
15973
  #: includes/api/legacy/v3/class-wc-api-taxes.php:354
15974
  #: includes/api/legacy/v3/class-wc-api-taxes.php:665
@@ -16008,8 +16024,8 @@ msgstr ""
16008
  #: includes/api/legacy/v3/class-wc-api-coupons.php:222
16009
  #: includes/api/legacy/v3/class-wc-api-customers.php:359
16010
  #: includes/api/legacy/v3/class-wc-api-products.php:273
16011
- #: includes/api/legacy/v3/class-wc-api-products.php:2517
16012
- #: includes/api/legacy/v3/class-wc-api-products.php:2904
16013
  #: includes/api/legacy/v3/class-wc-api-server.php:429
16014
  #: includes/api/legacy/v3/class-wc-api-taxes.php:575
16015
  #: includes/class-wc-auth.php:174
@@ -16033,9 +16049,9 @@ msgstr ""
16033
  #: includes/api/legacy/v3/class-wc-api-products.php:259
16034
  #: includes/api/legacy/v3/class-wc-api-products.php:690
16035
  #: includes/api/legacy/v3/class-wc-api-products.php:943
16036
- #: includes/api/legacy/v3/class-wc-api-products.php:2553
16037
- #: includes/api/legacy/v3/class-wc-api-products.php:2884
16038
- #: includes/api/legacy/v3/class-wc-api-products.php:3219
16039
  #: includes/api/legacy/v3/class-wc-api-taxes.php:184
16040
  #: includes/api/legacy/v3/class-wc-api-taxes.php:564
16041
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:169
@@ -16070,9 +16086,9 @@ msgstr ""
16070
  #: includes/api/legacy/v3/class-wc-api-products.php:371
16071
  #: includes/api/legacy/v3/class-wc-api-products.php:767
16072
  #: includes/api/legacy/v3/class-wc-api-products.php:988
16073
- #: includes/api/legacy/v3/class-wc-api-products.php:2635
16074
- #: includes/api/legacy/v3/class-wc-api-products.php:2947
16075
- #: includes/api/legacy/v3/class-wc-api-products.php:3277
16076
  #: includes/api/legacy/v3/class-wc-api-taxes.php:254
16077
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:250
16078
  msgid "No %1$s data specified to edit %1$s"
@@ -16092,7 +16108,7 @@ msgstr ""
16092
  #: includes/api/legacy/v3/class-wc-api-coupons.php:511
16093
  #: includes/api/legacy/v3/class-wc-api-customers.php:765
16094
  #: includes/api/legacy/v3/class-wc-api-orders.php:1810
16095
- #: includes/api/legacy/v3/class-wc-api-products.php:3069
16096
  #: includes/api/legacy/v3/class-wc-api-taxes.php:457
16097
  msgid "No %1$s data specified to create/edit %1$s"
16098
  msgstr ""
@@ -16349,101 +16365,101 @@ msgid "The SKU already exists on another product."
16349
  msgstr ""
16350
 
16351
  #: includes/api/legacy/v2/class-wc-api-products.php:1681
16352
- #: includes/api/legacy/v3/class-wc-api-products.php:2214
16353
  #: includes/wc-rest-functions.php:74
16354
  msgid "Invalid URL %s."
16355
  msgstr ""
16356
 
16357
  #: includes/api/legacy/v2/class-wc-api-products.php:1693
16358
  #: includes/api/legacy/v2/class-wc-api-products.php:1695
16359
- #: includes/api/legacy/v3/class-wc-api-products.php:2226
16360
- #: includes/api/legacy/v3/class-wc-api-products.php:2228
16361
  #: includes/wc-rest-functions.php:86 includes/wc-rest-functions.php:88
16362
  msgid "Error getting remote image %s."
16363
  msgstr ""
16364
 
16365
  #: includes/api/legacy/v2/class-wc-api-products.php:1693
16366
- #: includes/api/legacy/v3/class-wc-api-products.php:2226
16367
  #: includes/class-wc-auth.php:383 includes/wc-rest-functions.php:86
16368
  #. translators: %s: error messase
16369
  msgid "Error: %s."
16370
  msgstr ""
16371
 
16372
  #: includes/api/legacy/v2/class-wc-api-products.php:1716
16373
- #: includes/api/legacy/v3/class-wc-api-products.php:2249
16374
  #: includes/wc-rest-functions.php:109
16375
  msgid "Invalid image type."
16376
  msgstr ""
16377
 
16378
  #: includes/api/legacy/v2/class-wc-api-products.php:1733
16379
- #: includes/api/legacy/v3/class-wc-api-products.php:2266
16380
  #: includes/wc-rest-functions.php:127
16381
  msgid "Zero size file downloaded."
16382
  msgstr ""
16383
 
16384
  #: includes/api/legacy/v2/class-wc-api-products.php:1873
16385
  #: includes/api/legacy/v2/class-wc-api-products.php:1917
16386
- #: includes/api/legacy/v3/class-wc-api-products.php:2431
16387
- #: includes/api/legacy/v3/class-wc-api-products.php:2475
16388
  msgid "You do not have permission to read product attributes"
16389
  msgstr ""
16390
 
16391
  #: includes/api/legacy/v2/class-wc-api-products.php:1912
16392
- #: includes/api/legacy/v3/class-wc-api-products.php:2470
16393
- #: includes/api/legacy/v3/class-wc-api-products.php:2838
16394
  msgid "Invalid product attribute ID"
16395
  msgstr ""
16396
 
16397
  #: includes/api/legacy/v2/class-wc-api-products.php:1927
16398
  #: includes/api/legacy/v2/class-wc-api-products.php:2169
16399
- #: includes/api/legacy/v3/class-wc-api-products.php:2485
16400
- #: includes/api/legacy/v3/class-wc-api-products.php:2729
16401
- #: includes/api/legacy/v3/class-wc-api-products.php:2782
16402
- #: includes/api/legacy/v3/class-wc-api-products.php:2849
16403
- #: includes/api/legacy/v3/class-wc-api-products.php:2897
16404
- #: includes/api/legacy/v3/class-wc-api-products.php:2961
16405
- #: includes/api/legacy/v3/class-wc-api-products.php:3012
16406
  msgid "A product attribute with the provided ID could not be found"
16407
  msgstr ""
16408
 
16409
  #: includes/api/legacy/v2/class-wc-api-products.php:1972
16410
- #: includes/api/legacy/v3/class-wc-api-products.php:2530
16411
  msgid ""
16412
  "Invalid product attribute type - the product attribute type must be any of "
16413
  "these: %s"
16414
  msgstr ""
16415
 
16416
  #: includes/api/legacy/v2/class-wc-api-products.php:1977
16417
- #: includes/api/legacy/v3/class-wc-api-products.php:2535
16418
  msgid ""
16419
  "Invalid product attribute order_by type - the product attribute order_by "
16420
  "type must be any of these: %s"
16421
  msgstr ""
16422
 
16423
  #: includes/api/legacy/v2/class-wc-api-products.php:2002
16424
- #: includes/api/legacy/v3/class-wc-api-products.php:2560
16425
- #: includes/api/legacy/v3/class-wc-api-products.php:2891
16426
  msgid "You do not have permission to create product attributes"
16427
  msgstr ""
16428
 
16429
  #: includes/api/legacy/v2/class-wc-api-products.php:2084
16430
- #: includes/api/legacy/v3/class-wc-api-products.php:2643
16431
- #: includes/api/legacy/v3/class-wc-api-products.php:2955
16432
  msgid "You do not have permission to edit product attributes"
16433
  msgstr ""
16434
 
16435
  #: includes/api/legacy/v2/class-wc-api-products.php:2130
16436
- #: includes/api/legacy/v3/class-wc-api-products.php:2689
16437
  msgid "Could not edit the attribute"
16438
  msgstr ""
16439
 
16440
  #: includes/api/legacy/v2/class-wc-api-products.php:2157
16441
- #: includes/api/legacy/v3/class-wc-api-products.php:2717
16442
  msgid "You do not have permission to delete product attributes"
16443
  msgstr ""
16444
 
16445
  #: includes/api/legacy/v2/class-wc-api-products.php:2179
16446
- #: includes/api/legacy/v3/class-wc-api-products.php:2739
16447
  msgid "Could not delete the attribute"
16448
  msgstr ""
16449
 
@@ -16561,53 +16577,53 @@ msgstr ""
16561
  msgid "Could not delete the tag"
16562
  msgstr ""
16563
 
16564
- #: includes/api/legacy/v3/class-wc-api-products.php:2776
16565
- #: includes/api/legacy/v3/class-wc-api-products.php:2843
16566
  msgid "You do not have permission to read product attribute terms"
16567
  msgstr ""
16568
 
16569
- #: includes/api/legacy/v3/class-wc-api-products.php:2855
16570
  msgid "A product attribute term with the provided ID could not be found"
16571
  msgstr ""
16572
 
16573
- #: includes/api/legacy/v3/class-wc-api-products.php:3006
16574
  msgid "You do not have permission to delete product attribute terms"
16575
  msgstr ""
16576
 
16577
- #: includes/api/legacy/v3/class-wc-api-products.php:3145
16578
- #: includes/api/legacy/v3/class-wc-api-products.php:3180
16579
  msgid "You do not have permission to read product shipping classes"
16580
  msgstr ""
16581
 
16582
- #: includes/api/legacy/v3/class-wc-api-products.php:3175
16583
  msgid "Invalid product shipping class ID"
16584
  msgstr ""
16585
 
16586
- #: includes/api/legacy/v3/class-wc-api-products.php:3186
16587
  msgid "A product shipping class with the provided ID could not be found"
16588
  msgstr ""
16589
 
16590
- #: includes/api/legacy/v3/class-wc-api-products.php:3224
16591
  msgid "You do not have permission to create product shipping classes"
16592
  msgstr ""
16593
 
16594
- #: includes/api/legacy/v3/class-wc-api-products.php:3242
16595
  msgid "Product shipping class parent is invalid"
16596
  msgstr ""
16597
 
16598
- #: includes/api/legacy/v3/class-wc-api-products.php:3285
16599
  msgid "You do not have permission to edit product shipping classes"
16600
  msgstr ""
16601
 
16602
- #: includes/api/legacy/v3/class-wc-api-products.php:3297
16603
  msgid "Could not edit the shipping class"
16604
  msgstr ""
16605
 
16606
- #: includes/api/legacy/v3/class-wc-api-products.php:3322
16607
  msgid "You do not have permission to delete product shipping classes"
16608
  msgstr ""
16609
 
16610
- #: includes/api/legacy/v3/class-wc-api-products.php:3328
16611
  msgid "Could not delete the shipping class"
16612
  msgstr ""
16613
 
@@ -17304,7 +17320,7 @@ msgid "Get cart should not be called before the wp_loaded action."
17304
  msgstr ""
17305
 
17306
  #: includes/class-wc-cart.php:912 includes/class-wc-frontend-scripts.php:523
17307
- #: includes/wc-cart-functions.php:115 includes/wc-template-functions.php:1425
17308
  #. translators: %s: product name
17309
  msgid "View cart"
17310
  msgstr ""
@@ -17490,8 +17506,8 @@ msgstr ""
17490
  msgid "Suburb"
17491
  msgstr ""
17492
 
17493
- #: includes/class-wc-countries.php:672 includes/class-wc-countries.php:880
17494
- #: includes/class-wc-countries.php:990
17495
  msgid "Postcode"
17496
  msgstr ""
17497
 
@@ -17500,10 +17516,10 @@ msgid "District"
17500
  msgstr ""
17501
 
17502
  #: includes/class-wc-countries.php:700 includes/class-wc-countries.php:722
17503
- #: includes/class-wc-countries.php:747 includes/class-wc-countries.php:818
17504
- #: includes/class-wc-countries.php:852 includes/class-wc-countries.php:875
17505
- #: includes/class-wc-countries.php:947 includes/class-wc-countries.php:977
17506
- #: includes/class-wc-countries.php:1019
17507
  msgid "Province"
17508
  msgstr ""
17509
 
@@ -17511,37 +17527,37 @@ msgstr ""
17511
  msgid "Canton"
17512
  msgstr ""
17513
 
17514
- #: includes/class-wc-countries.php:742 includes/class-wc-countries.php:808
17515
- #: includes/class-wc-countries.php:884
17516
  msgid "Region"
17517
  msgstr ""
17518
 
17519
- #: includes/class-wc-countries.php:805
17520
  msgid "Town / District"
17521
  msgstr ""
17522
 
17523
- #: includes/class-wc-countries.php:813 includes/class-wc-countries.php:827
17524
- #: includes/class-wc-countries.php:993
17525
  msgid "County"
17526
  msgstr ""
17527
 
17528
- #: includes/class-wc-countries.php:824
17529
  msgid "Eircode"
17530
  msgstr ""
17531
 
17532
- #: includes/class-wc-countries.php:857
17533
  msgid "Prefecture"
17534
  msgstr ""
17535
 
17536
- #: includes/class-wc-countries.php:897
17537
  msgid "State / Zone"
17538
  msgstr ""
17539
 
17540
- #: includes/class-wc-countries.php:955
17541
  msgid "Municipality"
17542
  msgstr ""
17543
 
17544
- #: includes/class-wc-countries.php:982
17545
  msgid "ZIP"
17546
  msgstr ""
17547
 
@@ -17708,29 +17724,29 @@ msgstr ""
17708
  msgid "Note"
17709
  msgstr ""
17710
 
17711
- #: includes/class-wc-emails.php:454
17712
  msgid "Product low in stock"
17713
  msgstr ""
17714
 
17715
- #: includes/class-wc-emails.php:457
17716
  #. translators: 1: product name 2: items in stock
17717
  msgid "%1$s is low in stock. There are %2$d left."
17718
  msgstr ""
17719
 
17720
- #: includes/class-wc-emails.php:477
17721
  msgid "Product out of stock"
17722
  msgstr ""
17723
 
17724
- #: includes/class-wc-emails.php:479
17725
  #. translators: %s: product name
17726
  msgid "%s is out of stock."
17727
  msgstr ""
17728
 
17729
- #: includes/class-wc-emails.php:508
17730
  msgid "Product backorder"
17731
  msgstr ""
17732
 
17733
- #: includes/class-wc-emails.php:509
17734
  msgid "%1$s units of %2$s have been backordered in order #%3$s."
17735
  msgstr ""
17736
 
@@ -17889,7 +17905,7 @@ msgid "Error processing checkout. Please try again."
17889
  msgstr ""
17890
 
17891
  #: includes/class-wc-frontend-scripts.php:500
17892
- #: includes/wc-template-functions.php:1880
17893
  msgid "required"
17894
  msgstr ""
17895
 
@@ -17920,41 +17936,41 @@ msgstr ""
17920
  msgid "Shop manager"
17921
  msgstr ""
17922
 
17923
- #: includes/class-wc-install.php:885
17924
  msgid "View WooCommerce settings"
17925
  msgstr ""
17926
 
17927
- #: includes/class-wc-install.php:901
17928
  msgid "View WooCommerce documentation"
17929
  msgstr ""
17930
 
17931
- #: includes/class-wc-install.php:901
17932
  msgid "Docs"
17933
  msgstr ""
17934
 
17935
- #: includes/class-wc-install.php:902
17936
  msgid "View WooCommerce API docs"
17937
  msgstr ""
17938
 
17939
- #: includes/class-wc-install.php:902
17940
  msgid "API docs"
17941
  msgstr ""
17942
 
17943
- #: includes/class-wc-install.php:903
17944
  msgid "Visit premium customer support"
17945
  msgstr ""
17946
 
17947
- #: includes/class-wc-install.php:903
17948
  msgid "Premium support"
17949
  msgstr ""
17950
 
17951
- #: includes/class-wc-install.php:1045
17952
  msgid ""
17953
  "%1$s could not be installed (%2$s). <a href=\"%3$s\">Please install it "
17954
  "manually by clicking here.</a>"
17955
  msgstr ""
17956
 
17957
- #: includes/class-wc-install.php:1071
17958
  msgid ""
17959
  "%1$s was installed but could not be activated. <a href=\"%2$s\">Please "
17960
  "activate it manually by clicking here.</a>"
@@ -19831,13 +19847,13 @@ msgid "Refund was declined."
19831
  msgstr ""
19832
 
19833
  #: includes/legacy/abstract-wc-legacy-order.php:504
19834
- #: includes/wc-template-functions.php:2448
19835
  #. translators: 1: current item count
19836
  msgid "Download %d"
19837
  msgstr ""
19838
 
19839
  #: includes/legacy/abstract-wc-legacy-order.php:504
19840
- #: includes/wc-template-functions.php:2448 templates/myaccount/downloads.php:76
19841
  msgid "Download"
19842
  msgstr ""
19843
 
@@ -20402,679 +20418,679 @@ msgstr ""
20402
  msgid "estimated for %s"
20403
  msgstr ""
20404
 
20405
- #: includes/wc-core-functions.php:194
20406
  msgid "%s does not exist."
20407
  msgstr ""
20408
 
20409
- #: includes/wc-core-functions.php:279
20410
  msgid "United Arab Emirates dirham"
20411
  msgstr ""
20412
 
20413
- #: includes/wc-core-functions.php:280
20414
  msgid "Afghan afghani"
20415
  msgstr ""
20416
 
20417
- #: includes/wc-core-functions.php:281
20418
  msgid "Albanian lek"
20419
  msgstr ""
20420
 
20421
- #: includes/wc-core-functions.php:282
20422
  msgid "Armenian dram"
20423
  msgstr ""
20424
 
20425
- #: includes/wc-core-functions.php:283
20426
  msgid "Netherlands Antillean guilder"
20427
  msgstr ""
20428
 
20429
- #: includes/wc-core-functions.php:284
20430
  msgid "Angolan kwanza"
20431
  msgstr ""
20432
 
20433
- #: includes/wc-core-functions.php:285
20434
  msgid "Argentine peso"
20435
  msgstr ""
20436
 
20437
- #: includes/wc-core-functions.php:286
20438
  msgid "Australian dollar"
20439
  msgstr ""
20440
 
20441
- #: includes/wc-core-functions.php:287
20442
  msgid "Aruban florin"
20443
  msgstr ""
20444
 
20445
- #: includes/wc-core-functions.php:288
20446
  msgid "Azerbaijani manat"
20447
  msgstr ""
20448
 
20449
- #: includes/wc-core-functions.php:289
20450
  msgid "Bosnia and Herzegovina convertible mark"
20451
  msgstr ""
20452
 
20453
- #: includes/wc-core-functions.php:290
20454
  msgid "Barbadian dollar"
20455
  msgstr ""
20456
 
20457
- #: includes/wc-core-functions.php:291
20458
  msgid "Bangladeshi taka"
20459
  msgstr ""
20460
 
20461
- #: includes/wc-core-functions.php:292
20462
  msgid "Bulgarian lev"
20463
  msgstr ""
20464
 
20465
- #: includes/wc-core-functions.php:293
20466
  msgid "Bahraini dinar"
20467
  msgstr ""
20468
 
20469
- #: includes/wc-core-functions.php:294
20470
  msgid "Burundian franc"
20471
  msgstr ""
20472
 
20473
- #: includes/wc-core-functions.php:295
20474
  msgid "Bermudian dollar"
20475
  msgstr ""
20476
 
20477
- #: includes/wc-core-functions.php:296
20478
  msgid "Brunei dollar"
20479
  msgstr ""
20480
 
20481
- #: includes/wc-core-functions.php:297
20482
  msgid "Bolivian boliviano"
20483
  msgstr ""
20484
 
20485
- #: includes/wc-core-functions.php:298
20486
  msgid "Brazilian real"
20487
  msgstr ""
20488
 
20489
- #: includes/wc-core-functions.php:299
20490
  msgid "Bahamian dollar"
20491
  msgstr ""
20492
 
20493
- #: includes/wc-core-functions.php:300
20494
  msgid "Bitcoin"
20495
  msgstr ""
20496
 
20497
- #: includes/wc-core-functions.php:301
20498
  msgid "Bhutanese ngultrum"
20499
  msgstr ""
20500
 
20501
- #: includes/wc-core-functions.php:302
20502
  msgid "Botswana pula"
20503
  msgstr ""
20504
 
20505
- #: includes/wc-core-functions.php:303
20506
  msgid "Belarusian ruble"
20507
  msgstr ""
20508
 
20509
- #: includes/wc-core-functions.php:304
20510
  msgid "Belize dollar"
20511
  msgstr ""
20512
 
20513
- #: includes/wc-core-functions.php:305
20514
  msgid "Canadian dollar"
20515
  msgstr ""
20516
 
20517
- #: includes/wc-core-functions.php:306
20518
  msgid "Congolese franc"
20519
  msgstr ""
20520
 
20521
- #: includes/wc-core-functions.php:307
20522
  msgid "Swiss franc"
20523
  msgstr ""
20524
 
20525
- #: includes/wc-core-functions.php:308
20526
  msgid "Chilean peso"
20527
  msgstr ""
20528
 
20529
- #: includes/wc-core-functions.php:309
20530
  msgid "Chinese yuan"
20531
  msgstr ""
20532
 
20533
- #: includes/wc-core-functions.php:310
20534
  msgid "Colombian peso"
20535
  msgstr ""
20536
 
20537
- #: includes/wc-core-functions.php:311
20538
  msgid "Costa Rican col&oacute;n"
20539
  msgstr ""
20540
 
20541
- #: includes/wc-core-functions.php:312
20542
  msgid "Cuban convertible peso"
20543
  msgstr ""
20544
 
20545
- #: includes/wc-core-functions.php:313
20546
  msgid "Cuban peso"
20547
  msgstr ""
20548
 
20549
- #: includes/wc-core-functions.php:314
20550
  msgid "Cape Verdean escudo"
20551
  msgstr ""
20552
 
20553
- #: includes/wc-core-functions.php:315
20554
  msgid "Czech koruna"
20555
  msgstr ""
20556
 
20557
- #: includes/wc-core-functions.php:316
20558
  msgid "Djiboutian franc"
20559
  msgstr ""
20560
 
20561
- #: includes/wc-core-functions.php:317
20562
  msgid "Danish krone"
20563
  msgstr ""
20564
 
20565
- #: includes/wc-core-functions.php:318
20566
  msgid "Dominican peso"
20567
  msgstr ""
20568
 
20569
- #: includes/wc-core-functions.php:319
20570
  msgid "Algerian dinar"
20571
  msgstr ""
20572
 
20573
- #: includes/wc-core-functions.php:320
20574
  msgid "Egyptian pound"
20575
  msgstr ""
20576
 
20577
- #: includes/wc-core-functions.php:321
20578
  msgid "Eritrean nakfa"
20579
  msgstr ""
20580
 
20581
- #: includes/wc-core-functions.php:322
20582
  msgid "Ethiopian birr"
20583
  msgstr ""
20584
 
20585
- #: includes/wc-core-functions.php:323
20586
  msgid "Euro"
20587
  msgstr ""
20588
 
20589
- #: includes/wc-core-functions.php:324
20590
  msgid "Fijian dollar"
20591
  msgstr ""
20592
 
20593
- #: includes/wc-core-functions.php:325
20594
  msgid "Falkland Islands pound"
20595
  msgstr ""
20596
 
20597
- #: includes/wc-core-functions.php:326
20598
  msgid "Pound sterling"
20599
  msgstr ""
20600
 
20601
- #: includes/wc-core-functions.php:327
20602
  msgid "Georgian lari"
20603
  msgstr ""
20604
 
20605
- #: includes/wc-core-functions.php:328
20606
  msgid "Guernsey pound"
20607
  msgstr ""
20608
 
20609
- #: includes/wc-core-functions.php:329
20610
  msgid "Ghana cedi"
20611
  msgstr ""
20612
 
20613
- #: includes/wc-core-functions.php:330
20614
  msgid "Gibraltar pound"
20615
  msgstr ""
20616
 
20617
- #: includes/wc-core-functions.php:331
20618
  msgid "Gambian dalasi"
20619
  msgstr ""
20620
 
20621
- #: includes/wc-core-functions.php:332
20622
  msgid "Guinean franc"
20623
  msgstr ""
20624
 
20625
- #: includes/wc-core-functions.php:333
20626
  msgid "Guatemalan quetzal"
20627
  msgstr ""
20628
 
20629
- #: includes/wc-core-functions.php:334
20630
  msgid "Guyanese dollar"
20631
  msgstr ""
20632
 
20633
- #: includes/wc-core-functions.php:335
20634
  msgid "Hong Kong dollar"
20635
  msgstr ""
20636
 
20637
- #: includes/wc-core-functions.php:336
20638
  msgid "Honduran lempira"
20639
  msgstr ""
20640
 
20641
- #: includes/wc-core-functions.php:337
20642
  msgid "Croatian kuna"
20643
  msgstr ""
20644
 
20645
- #: includes/wc-core-functions.php:338
20646
  msgid "Haitian gourde"
20647
  msgstr ""
20648
 
20649
- #: includes/wc-core-functions.php:339
20650
  msgid "Hungarian forint"
20651
  msgstr ""
20652
 
20653
- #: includes/wc-core-functions.php:340
20654
  msgid "Indonesian rupiah"
20655
  msgstr ""
20656
 
20657
- #: includes/wc-core-functions.php:341
20658
  msgid "Israeli new shekel"
20659
  msgstr ""
20660
 
20661
- #: includes/wc-core-functions.php:342
20662
  msgid "Manx pound"
20663
  msgstr ""
20664
 
20665
- #: includes/wc-core-functions.php:343
20666
  msgid "Indian rupee"
20667
  msgstr ""
20668
 
20669
- #: includes/wc-core-functions.php:344
20670
  msgid "Iraqi dinar"
20671
  msgstr ""
20672
 
20673
- #: includes/wc-core-functions.php:345
20674
  msgid "Iranian rial"
20675
  msgstr ""
20676
 
20677
- #: includes/wc-core-functions.php:346
20678
  msgid "Iranian toman"
20679
  msgstr ""
20680
 
20681
- #: includes/wc-core-functions.php:347
20682
  msgid "Icelandic kr&oacute;na"
20683
  msgstr ""
20684
 
20685
- #: includes/wc-core-functions.php:348
20686
  msgid "Jersey pound"
20687
  msgstr ""
20688
 
20689
- #: includes/wc-core-functions.php:349
20690
  msgid "Jamaican dollar"
20691
  msgstr ""
20692
 
20693
- #: includes/wc-core-functions.php:350
20694
  msgid "Jordanian dinar"
20695
  msgstr ""
20696
 
20697
- #: includes/wc-core-functions.php:351
20698
  msgid "Japanese yen"
20699
  msgstr ""
20700
 
20701
- #: includes/wc-core-functions.php:352
20702
  msgid "Kenyan shilling"
20703
  msgstr ""
20704
 
20705
- #: includes/wc-core-functions.php:353
20706
  msgid "Kyrgyzstani som"
20707
  msgstr ""
20708
 
20709
- #: includes/wc-core-functions.php:354
20710
  msgid "Cambodian riel"
20711
  msgstr ""
20712
 
20713
- #: includes/wc-core-functions.php:355
20714
  msgid "Comorian franc"
20715
  msgstr ""
20716
 
20717
- #: includes/wc-core-functions.php:356
20718
  msgid "North Korean won"
20719
  msgstr ""
20720
 
20721
- #: includes/wc-core-functions.php:357
20722
  msgid "South Korean won"
20723
  msgstr ""
20724
 
20725
- #: includes/wc-core-functions.php:358
20726
  msgid "Kuwaiti dinar"
20727
  msgstr ""
20728
 
20729
- #: includes/wc-core-functions.php:359
20730
  msgid "Cayman Islands dollar"
20731
  msgstr ""
20732
 
20733
- #: includes/wc-core-functions.php:360
20734
  msgid "Kazakhstani tenge"
20735
  msgstr ""
20736
 
20737
- #: includes/wc-core-functions.php:361
20738
  msgid "Lao kip"
20739
  msgstr ""
20740
 
20741
- #: includes/wc-core-functions.php:362
20742
  msgid "Lebanese pound"
20743
  msgstr ""
20744
 
20745
- #: includes/wc-core-functions.php:363
20746
  msgid "Sri Lankan rupee"
20747
  msgstr ""
20748
 
20749
- #: includes/wc-core-functions.php:364
20750
  msgid "Liberian dollar"
20751
  msgstr ""
20752
 
20753
- #: includes/wc-core-functions.php:365
20754
  msgid "Lesotho loti"
20755
  msgstr ""
20756
 
20757
- #: includes/wc-core-functions.php:366
20758
  msgid "Libyan dinar"
20759
  msgstr ""
20760
 
20761
- #: includes/wc-core-functions.php:367
20762
  msgid "Moroccan dirham"
20763
  msgstr ""
20764
 
20765
- #: includes/wc-core-functions.php:368
20766
  msgid "Moldovan leu"
20767
  msgstr ""
20768
 
20769
- #: includes/wc-core-functions.php:369
20770
  msgid "Malagasy ariary"
20771
  msgstr ""
20772
 
20773
- #: includes/wc-core-functions.php:370
20774
  msgid "Macedonian denar"
20775
  msgstr ""
20776
 
20777
- #: includes/wc-core-functions.php:371
20778
  msgid "Burmese kyat"
20779
  msgstr ""
20780
 
20781
- #: includes/wc-core-functions.php:372
20782
  msgid "Mongolian t&ouml;gr&ouml;g"
20783
  msgstr ""
20784
 
20785
- #: includes/wc-core-functions.php:373
20786
  msgid "Macanese pataca"
20787
  msgstr ""
20788
 
20789
- #: includes/wc-core-functions.php:374
20790
  msgid "Mauritanian ouguiya"
20791
  msgstr ""
20792
 
20793
- #: includes/wc-core-functions.php:375
20794
  msgid "Mauritian rupee"
20795
  msgstr ""
20796
 
20797
- #: includes/wc-core-functions.php:376
20798
  msgid "Maldivian rufiyaa"
20799
  msgstr ""
20800
 
20801
- #: includes/wc-core-functions.php:377
20802
  msgid "Malawian kwacha"
20803
  msgstr ""
20804
 
20805
- #: includes/wc-core-functions.php:378
20806
  msgid "Mexican peso"
20807
  msgstr ""
20808
 
20809
- #: includes/wc-core-functions.php:379
20810
  msgid "Malaysian ringgit"
20811
  msgstr ""
20812
 
20813
- #: includes/wc-core-functions.php:380
20814
  msgid "Mozambican metical"
20815
  msgstr ""
20816
 
20817
- #: includes/wc-core-functions.php:381
20818
  msgid "Namibian dollar"
20819
  msgstr ""
20820
 
20821
- #: includes/wc-core-functions.php:382
20822
  msgid "Nigerian naira"
20823
  msgstr ""
20824
 
20825
- #: includes/wc-core-functions.php:383
20826
  msgid "Nicaraguan c&oacute;rdoba"
20827
  msgstr ""
20828
 
20829
- #: includes/wc-core-functions.php:384
20830
  msgid "Norwegian krone"
20831
  msgstr ""
20832
 
20833
- #: includes/wc-core-functions.php:385
20834
  msgid "Nepalese rupee"
20835
  msgstr ""
20836
 
20837
- #: includes/wc-core-functions.php:386
20838
  msgid "New Zealand dollar"
20839
  msgstr ""
20840
 
20841
- #: includes/wc-core-functions.php:387
20842
  msgid "Omani rial"
20843
  msgstr ""
20844
 
20845
- #: includes/wc-core-functions.php:388
20846
  msgid "Panamanian balboa"
20847
  msgstr ""
20848
 
20849
- #: includes/wc-core-functions.php:389
20850
  msgid "Peruvian nuevo sol"
20851
  msgstr ""
20852
 
20853
- #: includes/wc-core-functions.php:390
20854
  msgid "Papua New Guinean kina"
20855
  msgstr ""
20856
 
20857
- #: includes/wc-core-functions.php:391
20858
  msgid "Philippine peso"
20859
  msgstr ""
20860
 
20861
- #: includes/wc-core-functions.php:392
20862
  msgid "Pakistani rupee"
20863
  msgstr ""
20864
 
20865
- #: includes/wc-core-functions.php:393
20866
  msgid "Polish z&#x142;oty"
20867
  msgstr ""
20868
 
20869
- #: includes/wc-core-functions.php:394
20870
  msgid "Transnistrian ruble"
20871
  msgstr ""
20872
 
20873
- #: includes/wc-core-functions.php:395
20874
  msgid "Paraguayan guaran&iacute;"
20875
  msgstr ""
20876
 
20877
- #: includes/wc-core-functions.php:396
20878
  msgid "Qatari riyal"
20879
  msgstr ""
20880
 
20881
- #: includes/wc-core-functions.php:397
20882
  msgid "Romanian leu"
20883
  msgstr ""
20884
 
20885
- #: includes/wc-core-functions.php:398
20886
  msgid "Serbian dinar"
20887
  msgstr ""
20888
 
20889
- #: includes/wc-core-functions.php:399
20890
  msgid "Russian ruble"
20891
  msgstr ""
20892
 
20893
- #: includes/wc-core-functions.php:400
20894
  msgid "Rwandan franc"
20895
  msgstr ""
20896
 
20897
- #: includes/wc-core-functions.php:401
20898
  msgid "Saudi riyal"
20899
  msgstr ""
20900
 
20901
- #: includes/wc-core-functions.php:402
20902
  msgid "Solomon Islands dollar"
20903
  msgstr ""
20904
 
20905
- #: includes/wc-core-functions.php:403
20906
  msgid "Seychellois rupee"
20907
  msgstr ""
20908
 
20909
- #: includes/wc-core-functions.php:404
20910
  msgid "Sudanese pound"
20911
  msgstr ""
20912
 
20913
- #: includes/wc-core-functions.php:405
20914
  msgid "Swedish krona"
20915
  msgstr ""
20916
 
20917
- #: includes/wc-core-functions.php:406
20918
  msgid "Singapore dollar"
20919
  msgstr ""
20920
 
20921
- #: includes/wc-core-functions.php:407
20922
  msgid "Saint Helena pound"
20923
  msgstr ""
20924
 
20925
- #: includes/wc-core-functions.php:408
20926
  msgid "Sierra Leonean leone"
20927
  msgstr ""
20928
 
20929
- #: includes/wc-core-functions.php:409
20930
  msgid "Somali shilling"
20931
  msgstr ""
20932
 
20933
- #: includes/wc-core-functions.php:410
20934
  msgid "Surinamese dollar"
20935
  msgstr ""
20936
 
20937
- #: includes/wc-core-functions.php:411
20938
  msgid "South Sudanese pound"
20939
  msgstr ""
20940
 
20941
- #: includes/wc-core-functions.php:412
20942
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
20943
  msgstr ""
20944
 
20945
- #: includes/wc-core-functions.php:413
20946
  msgid "Syrian pound"
20947
  msgstr ""
20948
 
20949
- #: includes/wc-core-functions.php:414
20950
  msgid "Swazi lilangeni"
20951
  msgstr ""
20952
 
20953
- #: includes/wc-core-functions.php:415
20954
  msgid "Thai baht"
20955
  msgstr ""
20956
 
20957
- #: includes/wc-core-functions.php:416
20958
  msgid "Tajikistani somoni"
20959
  msgstr ""
20960
 
20961
- #: includes/wc-core-functions.php:417
20962
  msgid "Turkmenistan manat"
20963
  msgstr ""
20964
 
20965
- #: includes/wc-core-functions.php:418
20966
  msgid "Tunisian dinar"
20967
  msgstr ""
20968
 
20969
- #: includes/wc-core-functions.php:419
20970
  msgid "Tongan pa&#x2bb;anga"
20971
  msgstr ""
20972
 
20973
- #: includes/wc-core-functions.php:420
20974
  msgid "Turkish lira"
20975
  msgstr ""
20976
 
20977
- #: includes/wc-core-functions.php:421
20978
  msgid "Trinidad and Tobago dollar"
20979
  msgstr ""
20980
 
20981
- #: includes/wc-core-functions.php:422
20982
  msgid "New Taiwan dollar"
20983
  msgstr ""
20984
 
20985
- #: includes/wc-core-functions.php:423
20986
  msgid "Tanzanian shilling"
20987
  msgstr ""
20988
 
20989
- #: includes/wc-core-functions.php:424
20990
  msgid "Ukrainian hryvnia"
20991
  msgstr ""
20992
 
20993
- #: includes/wc-core-functions.php:425
20994
  msgid "Ugandan shilling"
20995
  msgstr ""
20996
 
20997
- #: includes/wc-core-functions.php:426
20998
  msgid "United States dollar"
20999
  msgstr ""
21000
 
21001
- #: includes/wc-core-functions.php:427
21002
  msgid "Uruguayan peso"
21003
  msgstr ""
21004
 
21005
- #: includes/wc-core-functions.php:428
21006
  msgid "Uzbekistani som"
21007
  msgstr ""
21008
 
21009
- #: includes/wc-core-functions.php:429
21010
  msgid "Venezuelan bol&iacute;var"
21011
  msgstr ""
21012
 
21013
- #: includes/wc-core-functions.php:430
21014
  msgid "Vietnamese &#x111;&#x1ed3;ng"
21015
  msgstr ""
21016
 
21017
- #: includes/wc-core-functions.php:431
21018
  msgid "Vanuatu vatu"
21019
  msgstr ""
21020
 
21021
- #: includes/wc-core-functions.php:432
21022
  msgid "Samoan t&#x101;l&#x101;"
21023
  msgstr ""
21024
 
21025
- #: includes/wc-core-functions.php:433
21026
  msgid "Central African CFA franc"
21027
  msgstr ""
21028
 
21029
- #: includes/wc-core-functions.php:434
21030
  msgid "East Caribbean dollar"
21031
  msgstr ""
21032
 
21033
- #: includes/wc-core-functions.php:435
21034
  msgid "West African CFA franc"
21035
  msgstr ""
21036
 
21037
- #: includes/wc-core-functions.php:436
21038
  msgid "CFP franc"
21039
  msgstr ""
21040
 
21041
- #: includes/wc-core-functions.php:437
21042
  msgid "Yemeni rial"
21043
  msgstr ""
21044
 
21045
- #: includes/wc-core-functions.php:438
21046
  msgid "South African rand"
21047
  msgstr ""
21048
 
21049
- #: includes/wc-core-functions.php:439
21050
  msgid "Zambian kwacha"
21051
  msgstr ""
21052
 
21053
- #: includes/wc-core-functions.php:1214
21054
  msgid "MasterCard"
21055
  msgstr ""
21056
 
21057
- #: includes/wc-core-functions.php:1215
21058
  msgid "Visa"
21059
  msgstr ""
21060
 
21061
- #: includes/wc-core-functions.php:1216
21062
  msgid "Discover"
21063
  msgstr ""
21064
 
21065
- #: includes/wc-core-functions.php:1217
21066
  msgid "American Express"
21067
  msgstr ""
21068
 
21069
- #: includes/wc-core-functions.php:1218
21070
  msgid "Diners"
21071
  msgstr ""
21072
 
21073
- #: includes/wc-core-functions.php:1219
21074
  msgid "JCB"
21075
  msgstr ""
21076
 
21077
- #: includes/wc-core-functions.php:1440
21078
  msgid ""
21079
  "The class <code>%s</code> provided by woocommerce_logging_class filter must "
21080
  "implement <code>WC_Logger_Interface</code>."
@@ -21092,15 +21108,15 @@ msgstr ""
21092
  msgid "Fixed product discount"
21093
  msgstr ""
21094
 
21095
- #: includes/wc-formatting-functions.php:976
21096
  msgid "Only %s left in stock"
21097
  msgstr ""
21098
 
21099
- #: includes/wc-formatting-functions.php:980
21100
  msgid "%s in stock"
21101
  msgstr ""
21102
 
21103
- #: includes/wc-formatting-functions.php:985
21104
  msgid "(can be backordered)"
21105
  msgstr ""
21106
 
@@ -21145,15 +21161,15 @@ msgstr ""
21145
  msgid "wc_get_product should not be called before the woocommerce_init action."
21146
  msgstr ""
21147
 
21148
- #: includes/wc-product-functions.php:730
21149
  msgid "Visible"
21150
  msgstr ""
21151
 
21152
- #: includes/wc-product-functions.php:814
21153
  msgid "Do not allow"
21154
  msgstr ""
21155
 
21156
- #: includes/wc-product-functions.php:815
21157
  msgid "Allow, but notify customer"
21158
  msgstr ""
21159
 
@@ -21220,44 +21236,44 @@ msgstr ""
21220
  msgid "Reviews (%d)"
21221
  msgstr ""
21222
 
21223
- #: includes/wc-template-functions.php:1437
21224
  msgid "Checkout"
21225
  msgstr ""
21226
 
21227
- #: includes/wc-template-functions.php:1562
21228
  msgid "Place order"
21229
  msgstr ""
21230
 
21231
- #: includes/wc-template-functions.php:1947
21232
  msgid "Update country"
21233
  msgstr ""
21234
 
21235
- #: includes/wc-template-functions.php:1968
21236
  #: templates/cart/shipping-calculator.php:63
21237
  msgid "Select a state&hellip;"
21238
  msgstr ""
21239
 
21240
- #: includes/wc-template-functions.php:2013
21241
- #: includes/wc-template-functions.php:2165
21242
- #: includes/wc-template-functions.php:2175
21243
  msgid "Choose an option"
21244
  msgstr ""
21245
 
21246
- #: includes/wc-template-functions.php:2534
21247
  #: includes/widgets/class-wc-widget-layered-nav-filters.php:166
21248
  #: includes/widgets/class-wc-widget-rating-filter.php:188
21249
  msgid "Rated %s out of 5"
21250
  msgstr ""
21251
 
21252
- #: includes/wc-template-functions.php:2535
21253
  msgid "out of 5"
21254
  msgstr ""
21255
 
21256
- #: includes/wc-term-functions.php:220
21257
  msgid "Select a category"
21258
  msgstr ""
21259
 
21260
- #: includes/wc-term-functions.php:223
21261
  msgid "Uncategorized"
21262
  msgstr ""
21263
 
@@ -22168,7 +22184,7 @@ msgstr ""
22168
  msgid "Dimensions"
22169
  msgstr ""
22170
 
22171
- #: templates/single-product/product-image.php:54
22172
  msgid "Awaiting product image"
22173
  msgstr ""
22174
 
@@ -22424,19 +22440,19 @@ msgid "Webhooks"
22424
  msgstr ""
22425
 
22426
  #: includes/admin/class-wc-admin-permalink-settings.php:76
22427
- #: includes/wc-core-functions.php:1587 includes/wc-update-functions.php:51
22428
  msgctxt "slug"
22429
  msgid "product-category"
22430
  msgstr ""
22431
 
22432
  #: includes/admin/class-wc-admin-permalink-settings.php:85
22433
- #: includes/wc-core-functions.php:1588 includes/wc-update-functions.php:52
22434
  msgctxt "slug"
22435
  msgid "product-tag"
22436
  msgstr ""
22437
 
22438
  #: includes/admin/class-wc-admin-permalink-settings.php:196
22439
- #: includes/wc-core-functions.php:1586 includes/wc-update-functions.php:60
22440
  msgctxt "slug"
22441
  msgid "product"
22442
  msgstr ""
@@ -22525,6 +22541,7 @@ msgstr ""
22525
 
22526
  #: includes/admin/meta-boxes/views/html-product-data-general.php:17
22527
  #: includes/class-wc-product-external.php:170
 
22528
  msgctxt "placeholder"
22529
  msgid "Buy product"
22530
  msgstr ""
@@ -22574,22 +22591,22 @@ msgctxt "Pagination"
22574
  msgid "%1$s of %2$s"
22575
  msgstr ""
22576
 
22577
- #: includes/api/class-wc-rest-system-status-controller.php:863
22578
  msgctxt "Page setting"
22579
  msgid "Shop base"
22580
  msgstr ""
22581
 
22582
- #: includes/api/class-wc-rest-system-status-controller.php:867
22583
  msgctxt "Page setting"
22584
  msgid "Cart"
22585
  msgstr ""
22586
 
22587
- #: includes/api/class-wc-rest-system-status-controller.php:871
22588
  msgctxt "Page setting"
22589
  msgid "Checkout"
22590
  msgstr ""
22591
 
22592
- #: includes/api/class-wc-rest-system-status-controller.php:875
22593
  msgctxt "Page setting"
22594
  msgid "My account"
22595
  msgstr ""
@@ -22676,7 +22693,7 @@ msgctxt "Price range: from-to"
22676
  msgid "%1$s&ndash;%2$s"
22677
  msgstr ""
22678
 
22679
- #: includes/wc-formatting-functions.php:1022
22680
  msgctxt "Price range: from-to"
22681
  msgid "%1$s &ndash; %2$s"
22682
  msgstr ""
@@ -22698,12 +22715,12 @@ msgid_plural "Shipping %d"
22698
  msgstr[0] ""
22699
  msgstr[1] ""
22700
 
22701
- #: includes/wc-template-functions.php:1512
22702
  msgctxt "breadcrumb"
22703
  msgid "Home"
22704
  msgstr ""
22705
 
22706
- #: includes/wc-template-functions.php:2550
22707
  msgctxt "min_price"
22708
  msgid "From:"
22709
  msgstr ""
2
  # This file is distributed under the same license as the WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WooCommerce 3.0.2\n"
6
  "Report-Msgid-Bugs-To: https://github.com/woocommerce/woocommerce/issues\n"
7
+ "POT-Creation-Date: 2017-04-12 18:59:45+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
5220
  #: includes/abstracts/abstract-wc-product.php:1868
5221
  #: includes/admin/class-wc-admin-post-types.php:438
5222
  #: includes/admin/class-wc-admin-reports.php:100
5223
+ #: includes/admin/reports/class-wc-report-stock.php:114
5224
+ #: includes/wc-product-functions.php:808
5225
  msgid "Out of stock"
5226
  msgstr ""
5227
 
5237
  #: includes/api/legacy/v3/class-wc-api-coupons.php:519
5238
  #: includes/api/legacy/v3/class-wc-api-customers.php:773
5239
  #: includes/api/legacy/v3/class-wc-api-orders.php:1818
5240
+ #: includes/api/legacy/v3/class-wc-api-products.php:3078
5241
  #: includes/api/legacy/v3/class-wc-api-taxes.php:465
5242
  #. translators: %s: items limit
5243
  msgid "Unable to accept more than %s items for this request."
5958
  #: includes/admin/meta-boxes/views/html-product-data-general.php:61
5959
  #: includes/admin/meta-boxes/views/html-variation-admin.php:320
5960
  #: includes/admin/settings/views/html-webhooks-edit.php:15
5961
+ #: includes/admin/views/html-admin-page-status-report.php:551
5962
  #: includes/widgets/class-wc-widget-product-categories.php:52
5963
  #: templates/single-product-reviews.php:77
5964
  msgid "Name"
6067
 
6068
  #: includes/admin/class-wc-admin-attributes.php:99
6069
  #: includes/api/legacy/v2/class-wc-api-products.php:1963
6070
+ #: includes/api/legacy/v3/class-wc-api-products.php:2522
6071
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:646
6072
  #. translators: %s: attribute name
6073
  msgid "Slug \"%s\" is too long (28 characters max). Shorten it, please."
6075
 
6076
  #: includes/admin/class-wc-admin-attributes.php:102
6077
  #: includes/api/legacy/v2/class-wc-api-products.php:1965
6078
+ #: includes/api/legacy/v3/class-wc-api-products.php:2524
6079
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:648
6080
  #. translators: %s: attribute name
6081
  msgid "Slug \"%s\" is not allowed because it is a reserved term. Change it, please."
6089
  #: includes/admin/class-wc-admin-attributes.php:124
6090
  #: includes/admin/class-wc-admin-attributes.php:158
6091
  #: includes/api/legacy/v2/class-wc-api-products.php:1967
6092
+ #: includes/api/legacy/v3/class-wc-api-products.php:2526
6093
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:650
6094
  #. translators: %s: attribute name
6095
  msgid "Slug \"%s\" is already in use. Change it, please."
6202
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:274
6203
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:364
6204
  #: includes/admin/reports/class-wc-report-customer-list.php:159
6205
+ #: includes/admin/reports/class-wc-report-stock.php:131
6206
  #: includes/admin/settings/views/html-admin-page-shipping-classes.php:48
6207
  #: includes/admin/settings/views/html-admin-page-shipping-zone-methods.php:107
6208
  #: includes/admin/settings/views/html-admin-page-shipping-zones.php:28
6344
  msgid "Product creation failed, could not find original product: %s"
6345
  msgstr ""
6346
 
6347
+ #: includes/admin/class-wc-admin-duplicate-product.php:120
6348
+ msgid "%s (Copy)"
6349
+ msgstr ""
6350
+
6351
  #: includes/admin/class-wc-admin-help.php:41
6352
  #: includes/admin/class-wc-admin-help.php:45
6353
  msgid "General Settings"
6712
  #: includes/admin/class-wc-admin-menus.php:80
6713
  #: includes/admin/settings/class-wc-settings-api.php:45
6714
  #: includes/admin/views/html-admin-page-status-report.php:432
6715
+ #: includes/class-wc-install.php:883
6716
  msgid "Settings"
6717
  msgstr ""
6718
 
7323
  #: includes/admin/class-wc-admin-post-types.php:310
7324
  #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:43
7325
  #: includes/admin/reports/class-wc-report-customer-list.php:215
7326
+ #: includes/admin/reports/class-wc-report-stock.php:172
7327
  msgid "Actions"
7328
  msgstr ""
7329
 
7384
  msgstr ""
7385
 
7386
  #: includes/admin/class-wc-admin-post-types.php:436
7387
+ #: includes/admin/reports/class-wc-report-stock.php:112
7388
+ #: includes/wc-formatting-functions.php:968
7389
+ #: includes/wc-product-functions.php:807
7390
  msgid "In stock"
7391
  msgstr ""
7392
 
7446
  msgstr ""
7447
 
7448
  #: includes/admin/class-wc-admin-post-types.php:668
7449
+ #: includes/admin/reports/class-wc-report-stock.php:138
7450
  #: includes/admin/views/html-admin-page-status-logs.php:28
7451
  #: templates/myaccount/my-orders.php:79 templates/myaccount/orders.php:75
7452
  msgid "View"
7680
  #: includes/admin/class-wc-admin-profile.php:129
7681
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:75
7682
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:124
7683
+ #: includes/wc-template-functions.php:1943
7684
  #: templates/cart/shipping-calculator.php:39
7685
  msgid "Select a country&hellip;"
7686
  msgstr ""
7703
 
7704
  #: includes/admin/class-wc-admin-profile.php:84
7705
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:86
7706
+ #: includes/class-wc-countries.php:1111 includes/class-wc-emails.php:412
7707
  msgid "Phone"
7708
  msgstr ""
7709
 
7710
  #: includes/admin/class-wc-admin-profile.php:88
7711
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:83
7712
+ #: includes/class-wc-countries.php:1120 includes/class-wc-emails.php:405
7713
  #: includes/class-wc-form-handler.php:197
7714
  #: templates/myaccount/form-edit-account.php:40
7715
  #: templates/myaccount/form-login.php:91
8094
  msgstr ""
8095
 
8096
  #: includes/admin/class-wc-admin-setup-wizard.php:486
8097
+ #: includes/class-wc-countries.php:675 includes/class-wc-countries.php:1015
8098
  msgid "State"
8099
  msgstr ""
8100
 
8190
 
8191
  #: includes/admin/class-wc-admin-setup-wizard.php:778
8192
  #: includes/admin/views/html-notice-tracking.php:13
8193
+ #: includes/wc-product-functions.php:822
8194
  msgid "Allow"
8195
  msgstr ""
8196
 
8841
  #: includes/shipping/legacy-flat-rate/includes/settings-flat-rate.php:93
8842
  #: includes/shipping/legacy-free-shipping/class-wc-shipping-legacy-free-shipping.php:122
8843
  #: includes/wc-account-functions.php:264
8844
+ #: includes/wc-formatting-functions.php:1037
8845
+ #: includes/wc-formatting-functions.php:1056
8846
  #: templates/order/order-details-customer.php:66
8847
  #: templates/order/order-details-customer.php:78
8848
  #: templates/single-product/meta.php:31
8974
  #: includes/admin/settings/class-wc-settings-shipping.php:27
8975
  #: includes/admin/settings/class-wc-settings-tax.php:178
8976
  #: includes/admin/settings/views/html-settings-tax.php:32
8977
+ #: includes/class-wc-order-item-shipping.php:155
8978
  #: templates/cart/cart-totals.php:55 templates/cart/cart-totals.php:56
8979
  msgid "Shipping"
8980
  msgstr ""
9528
 
9529
  #: includes/admin/meta-boxes/views/html-product-data-inventory.php:62
9530
  #: includes/admin/meta-boxes/views/html-variation-admin.php:204
9531
+ #: includes/admin/reports/class-wc-report-stock.php:171
9532
  msgid "Stock status"
9533
  msgstr ""
9534
 
10289
  msgid "No products found."
10290
  msgstr ""
10291
 
10292
+ #: includes/admin/reports/class-wc-report-stock.php:150
10293
  #: includes/widgets/class-wc-widget-product-tag-cloud.php:86
10294
  #. translators: %s: product count
10295
  msgid "%s product"
10296
  msgstr ""
10297
 
10298
+ #: includes/admin/reports/class-wc-report-stock.php:168
10299
  #: includes/class-wc-post-types.php:259
10300
  #: includes/data-stores/class-wc-product-data-store-cpt.php:94
10301
  #: includes/wc-account-functions.php:202 templates/cart/cart.php:35
10306
  msgid "Product"
10307
  msgstr ""
10308
 
10309
+ #: includes/admin/reports/class-wc-report-stock.php:169
10310
  msgid "Parent"
10311
  msgstr ""
10312
 
10313
+ #: includes/admin/reports/class-wc-report-stock.php:170
10314
  msgid "Units in stock"
10315
  msgstr ""
10316
 
11711
  #: includes/admin/views/html-bulk-edit-product.php:95
11712
  #: includes/admin/views/html-quick-edit-product.php:73
11713
  #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:217
11714
+ #: includes/wc-product-functions.php:789
11715
  msgid "Standard"
11716
  msgstr ""
11717
 
12538
  msgstr ""
12539
 
12540
  #: includes/admin/views/html-admin-page-status-report.php:361
12541
+ #: includes/api/class-wc-rest-system-status-controller.php:508
12542
  msgid "Is the connection to your store secure?"
12543
  msgstr ""
12544
 
12571
  msgstr ""
12572
 
12573
  #: includes/admin/views/html-admin-page-status-report.php:406
12574
+ #: includes/admin/views/html-admin-page-status-report.php:562
12575
+ #: includes/admin/views/html-admin-page-status-report.php:593
12576
  #. translators: %s: plugin latest version
12577
  #. translators: %s: theme latest version
12578
  #. translators: %s: parant theme latest version
12631
  "statuses."
12632
  msgstr ""
12633
 
12634
+ #: includes/admin/views/html-admin-page-status-report.php:483
12635
+ msgid "Taxonomies: Product visibility"
12636
+ msgstr ""
12637
+
12638
+ #: includes/admin/views/html-admin-page-status-report.php:484
12639
+ msgid "A list of taxonomy terms used for product visibility."
12640
+ msgstr ""
12641
+
12642
+ #: includes/admin/views/html-admin-page-status-report.php:498
12643
  msgid "WC pages"
12644
  msgstr ""
12645
 
12646
+ #: includes/admin/views/html-admin-page-status-report.php:508
12647
  msgid "Edit %s page"
12648
  msgstr ""
12649
 
12650
+ #: includes/admin/views/html-admin-page-status-report.php:514
12651
  msgid "The URL of your WooCommerce shop's %s (along with the Page ID)."
12652
  msgstr ""
12653
 
12654
+ #: includes/admin/views/html-admin-page-status-report.php:518
12655
  msgid "Page not set"
12656
  msgstr ""
12657
 
12658
+ #: includes/admin/views/html-admin-page-status-report.php:521
12659
  msgid "Page ID is set, but the page does not exist"
12660
  msgstr ""
12661
 
12662
+ #: includes/admin/views/html-admin-page-status-report.php:524
12663
  msgid "Page visibility should be <a href=\"%s\" target=\"_blank\">public</a>"
12664
  msgstr ""
12665
 
12666
+ #: includes/admin/views/html-admin-page-status-report.php:530
12667
  msgid "Page does not contain the shortcode."
12668
  msgstr ""
12669
 
12670
+ #: includes/admin/views/html-admin-page-status-report.php:546
12671
  msgid "Theme"
12672
  msgstr ""
12673
 
12674
+ #: includes/admin/views/html-admin-page-status-report.php:552
12675
  msgid "The name of the current active theme."
12676
  msgstr ""
12677
 
12678
+ #: includes/admin/views/html-admin-page-status-report.php:556
12679
  msgid "Version"
12680
  msgstr ""
12681
 
12682
+ #: includes/admin/views/html-admin-page-status-report.php:557
12683
  msgid "The installed version of the current active theme."
12684
  msgstr ""
12685
 
12686
+ #: includes/admin/views/html-admin-page-status-report.php:567
12687
  msgid "Author URL"
12688
  msgstr ""
12689
 
12690
+ #: includes/admin/views/html-admin-page-status-report.php:568
12691
  msgid "The theme developers URL."
12692
  msgstr ""
12693
 
12694
+ #: includes/admin/views/html-admin-page-status-report.php:572
12695
  msgid "Child theme"
12696
  msgstr ""
12697
 
12698
+ #: includes/admin/views/html-admin-page-status-report.php:573
12699
  msgid "Displays whether or not the current theme is a child theme."
12700
  msgstr ""
12701
 
12702
+ #: includes/admin/views/html-admin-page-status-report.php:575
12703
  msgid ""
12704
  "If you're modifying WooCommerce on a parent theme you didn't build "
12705
  "personally, then we recommend using a child theme. See: <a href=\"%s\" "
12706
  "target=\"_blank\">How to create a child theme</a>"
12707
  msgstr ""
12708
 
12709
+ #: includes/admin/views/html-admin-page-status-report.php:582
12710
  msgid "Parent theme name"
12711
  msgstr ""
12712
 
12713
+ #: includes/admin/views/html-admin-page-status-report.php:583
12714
  msgid "The name of the parent theme."
12715
  msgstr ""
12716
 
12717
+ #: includes/admin/views/html-admin-page-status-report.php:587
12718
  msgid "Parent theme version"
12719
  msgstr ""
12720
 
12721
+ #: includes/admin/views/html-admin-page-status-report.php:588
12722
  msgid "The installed version of the parent theme."
12723
  msgstr ""
12724
 
12725
+ #: includes/admin/views/html-admin-page-status-report.php:598
12726
  msgid "Parent theme author URL"
12727
  msgstr ""
12728
 
12729
+ #: includes/admin/views/html-admin-page-status-report.php:599
12730
  msgid "The parent theme developers URL."
12731
  msgstr ""
12732
 
12733
+ #: includes/admin/views/html-admin-page-status-report.php:604
12734
  msgid "WooCommerce support"
12735
  msgstr ""
12736
 
12737
+ #: includes/admin/views/html-admin-page-status-report.php:605
12738
  msgid ""
12739
  "Displays whether or not the current active theme declares WooCommerce "
12740
  "support."
12741
  msgstr ""
12742
 
12743
+ #: includes/admin/views/html-admin-page-status-report.php:608
12744
  msgid "Not declared"
12745
  msgstr ""
12746
 
12747
+ #: includes/admin/views/html-admin-page-status-report.php:619
12748
  msgid "Templates"
12749
  msgstr ""
12750
 
12751
+ #: includes/admin/views/html-admin-page-status-report.php:619
12752
  msgid ""
12753
  "This section shows any files that are overriding the default WooCommerce "
12754
  "template pages."
12755
  msgstr ""
12756
 
12757
+ #: includes/admin/views/html-admin-page-status-report.php:625
12758
  msgid "Archive template"
12759
  msgstr ""
12760
 
12761
+ #: includes/admin/views/html-admin-page-status-report.php:627
12762
  msgid ""
12763
  "Your theme has a woocommerce.php file, you will not be able to override the "
12764
  "woocommerce/archive-product.php custom template since woocommerce.php has "
12766
  "issues."
12767
  msgstr ""
12768
 
12769
+ #: includes/admin/views/html-admin-page-status-report.php:633
12770
+ #: includes/admin/views/html-admin-page-status-report.php:663
12771
  msgid "Overrides"
12772
  msgstr ""
12773
 
12774
+ #: includes/admin/views/html-admin-page-status-report.php:643
12775
  msgid "%1$s version %2$s is out of date. The core version is %3$s"
12776
  msgstr ""
12777
 
12778
+ #: includes/admin/views/html-admin-page-status-report.php:673
12779
  msgid "Outdated templates"
12780
  msgstr ""
12781
 
12782
+ #: includes/admin/views/html-admin-page-status-report.php:675
12783
  msgid "Learn how to update"
12784
  msgstr ""
12785
 
12872
 
12873
  #: includes/admin/views/html-bulk-edit-product.php:187
12874
  #: includes/admin/views/html-quick-edit-product.php:144
12875
+ #: includes/wc-product-functions.php:737
12876
  msgid "Catalog"
12877
  msgstr ""
12878
 
12879
  #: includes/admin/views/html-bulk-edit-product.php:188
12880
  #: includes/admin/views/html-quick-edit-product.php:145
12881
+ #: includes/wc-product-functions.php:738
12882
  msgid "Search"
12883
  msgstr ""
12884
 
12885
  #: includes/admin/views/html-bulk-edit-product.php:189
12886
  #: includes/admin/views/html-quick-edit-product.php:146
12887
+ #: includes/wc-product-functions.php:739
12888
  msgid "Hidden"
12889
  msgstr ""
12890
 
13643
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:265
13644
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:298
13645
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:126
13646
+ #: includes/wc-core-functions.php:138 includes/wc-order-functions.php:498
13647
  msgid "Invalid order ID."
13648
  msgstr ""
13649
 
14723
  #: includes/api/legacy/v1/class-wc-api-products.php:446
14724
  #: includes/api/legacy/v2/class-wc-api-products.php:1603
14725
  #: includes/api/legacy/v2/class-wc-api-products.php:1604
 
14726
  #: includes/api/legacy/v3/class-wc-api-products.php:2102
14727
+ #: includes/api/legacy/v3/class-wc-api-products.php:2103
14728
  #: includes/api/v1/class-wc-rest-products-controller.php:313
14729
  #: includes/api/v1/class-wc-rest-products-controller.php:314
14730
  #: includes/wc-product-functions.php:324
15455
  msgid "Taxonomy terms for product/order statuses."
15456
  msgstr ""
15457
 
15458
+ #: includes/api/class-wc-rest-system-status-controller.php:491
15459
+ msgid "Terms in the product visibility taxonomy."
15460
+ msgstr ""
15461
+
15462
+ #: includes/api/class-wc-rest-system-status-controller.php:502
15463
  msgid "Security."
15464
  msgstr ""
15465
 
15466
+ #: includes/api/class-wc-rest-system-status-controller.php:514
15467
  msgid "Hide errors from visitors?"
15468
  msgstr ""
15469
 
15470
+ #: includes/api/class-wc-rest-system-status-controller.php:522
15471
  msgid "WooCommerce pages."
15472
  msgstr ""
15473
 
15797
 
15798
  #: includes/api/legacy/class-wc-rest-legacy-products-controller.php:531
15799
  #: includes/api/legacy/v2/class-wc-api-products.php:1274
15800
+ #: includes/api/legacy/v3/class-wc-api-products.php:1764
15801
  #: includes/api/v1/class-wc-rest-products-controller.php:1374
15802
  #. translators: 1: variation id 2: product name
15803
  msgid "Variation #%1$s of %2$s"
15962
  #: includes/api/legacy/v2/class-wc-api-products.php:442
15963
  #: includes/api/legacy/v2/class-wc-api-resource.php:384
15964
  #: includes/api/legacy/v3/class-wc-api-products.php:501
15965
+ #: includes/api/legacy/v3/class-wc-api-products.php:3020
15966
  #: includes/api/legacy/v3/class-wc-api-resource.php:386
15967
  msgid "This %s cannot be deleted"
15968
  msgstr ""
15982
  #: includes/api/legacy/v3/class-wc-api-products.php:514
15983
  #: includes/api/legacy/v3/class-wc-api-products.php:854
15984
  #: includes/api/legacy/v3/class-wc-api-products.php:1042
15985
+ #: includes/api/legacy/v3/class-wc-api-products.php:2759
15986
+ #: includes/api/legacy/v3/class-wc-api-products.php:3027
15987
+ #: includes/api/legacy/v3/class-wc-api-products.php:3334
15988
  #: includes/api/legacy/v3/class-wc-api-resource.php:395
15989
  #: includes/api/legacy/v3/class-wc-api-taxes.php:354
15990
  #: includes/api/legacy/v3/class-wc-api-taxes.php:665
16024
  #: includes/api/legacy/v3/class-wc-api-coupons.php:222
16025
  #: includes/api/legacy/v3/class-wc-api-customers.php:359
16026
  #: includes/api/legacy/v3/class-wc-api-products.php:273
16027
+ #: includes/api/legacy/v3/class-wc-api-products.php:2518
16028
+ #: includes/api/legacy/v3/class-wc-api-products.php:2905
16029
  #: includes/api/legacy/v3/class-wc-api-server.php:429
16030
  #: includes/api/legacy/v3/class-wc-api-taxes.php:575
16031
  #: includes/class-wc-auth.php:174
16049
  #: includes/api/legacy/v3/class-wc-api-products.php:259
16050
  #: includes/api/legacy/v3/class-wc-api-products.php:690
16051
  #: includes/api/legacy/v3/class-wc-api-products.php:943
16052
+ #: includes/api/legacy/v3/class-wc-api-products.php:2554
16053
+ #: includes/api/legacy/v3/class-wc-api-products.php:2885
16054
+ #: includes/api/legacy/v3/class-wc-api-products.php:3220
16055
  #: includes/api/legacy/v3/class-wc-api-taxes.php:184
16056
  #: includes/api/legacy/v3/class-wc-api-taxes.php:564
16057
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:169
16086
  #: includes/api/legacy/v3/class-wc-api-products.php:371
16087
  #: includes/api/legacy/v3/class-wc-api-products.php:767
16088
  #: includes/api/legacy/v3/class-wc-api-products.php:988
16089
+ #: includes/api/legacy/v3/class-wc-api-products.php:2636
16090
+ #: includes/api/legacy/v3/class-wc-api-products.php:2948
16091
+ #: includes/api/legacy/v3/class-wc-api-products.php:3278
16092
  #: includes/api/legacy/v3/class-wc-api-taxes.php:254
16093
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:250
16094
  msgid "No %1$s data specified to edit %1$s"
16108
  #: includes/api/legacy/v3/class-wc-api-coupons.php:511
16109
  #: includes/api/legacy/v3/class-wc-api-customers.php:765
16110
  #: includes/api/legacy/v3/class-wc-api-orders.php:1810
16111
+ #: includes/api/legacy/v3/class-wc-api-products.php:3070
16112
  #: includes/api/legacy/v3/class-wc-api-taxes.php:457
16113
  msgid "No %1$s data specified to create/edit %1$s"
16114
  msgstr ""
16365
  msgstr ""
16366
 
16367
  #: includes/api/legacy/v2/class-wc-api-products.php:1681
16368
+ #: includes/api/legacy/v3/class-wc-api-products.php:2215
16369
  #: includes/wc-rest-functions.php:74
16370
  msgid "Invalid URL %s."
16371
  msgstr ""
16372
 
16373
  #: includes/api/legacy/v2/class-wc-api-products.php:1693
16374
  #: includes/api/legacy/v2/class-wc-api-products.php:1695
16375
+ #: includes/api/legacy/v3/class-wc-api-products.php:2227
16376
+ #: includes/api/legacy/v3/class-wc-api-products.php:2229
16377
  #: includes/wc-rest-functions.php:86 includes/wc-rest-functions.php:88
16378
  msgid "Error getting remote image %s."
16379
  msgstr ""
16380
 
16381
  #: includes/api/legacy/v2/class-wc-api-products.php:1693
16382
+ #: includes/api/legacy/v3/class-wc-api-products.php:2227
16383
  #: includes/class-wc-auth.php:383 includes/wc-rest-functions.php:86
16384
  #. translators: %s: error messase
16385
  msgid "Error: %s."
16386
  msgstr ""
16387
 
16388
  #: includes/api/legacy/v2/class-wc-api-products.php:1716
16389
+ #: includes/api/legacy/v3/class-wc-api-products.php:2250
16390
  #: includes/wc-rest-functions.php:109
16391
  msgid "Invalid image type."
16392
  msgstr ""
16393
 
16394
  #: includes/api/legacy/v2/class-wc-api-products.php:1733
16395
+ #: includes/api/legacy/v3/class-wc-api-products.php:2267
16396
  #: includes/wc-rest-functions.php:127
16397
  msgid "Zero size file downloaded."
16398
  msgstr ""
16399
 
16400
  #: includes/api/legacy/v2/class-wc-api-products.php:1873
16401
  #: includes/api/legacy/v2/class-wc-api-products.php:1917
16402
+ #: includes/api/legacy/v3/class-wc-api-products.php:2432
16403
+ #: includes/api/legacy/v3/class-wc-api-products.php:2476
16404
  msgid "You do not have permission to read product attributes"
16405
  msgstr ""
16406
 
16407
  #: includes/api/legacy/v2/class-wc-api-products.php:1912
16408
+ #: includes/api/legacy/v3/class-wc-api-products.php:2471
16409
+ #: includes/api/legacy/v3/class-wc-api-products.php:2839
16410
  msgid "Invalid product attribute ID"
16411
  msgstr ""
16412
 
16413
  #: includes/api/legacy/v2/class-wc-api-products.php:1927
16414
  #: includes/api/legacy/v2/class-wc-api-products.php:2169
16415
+ #: includes/api/legacy/v3/class-wc-api-products.php:2486
16416
+ #: includes/api/legacy/v3/class-wc-api-products.php:2730
16417
+ #: includes/api/legacy/v3/class-wc-api-products.php:2783
16418
+ #: includes/api/legacy/v3/class-wc-api-products.php:2850
16419
+ #: includes/api/legacy/v3/class-wc-api-products.php:2898
16420
+ #: includes/api/legacy/v3/class-wc-api-products.php:2962
16421
+ #: includes/api/legacy/v3/class-wc-api-products.php:3013
16422
  msgid "A product attribute with the provided ID could not be found"
16423
  msgstr ""
16424
 
16425
  #: includes/api/legacy/v2/class-wc-api-products.php:1972
16426
+ #: includes/api/legacy/v3/class-wc-api-products.php:2531
16427
  msgid ""
16428
  "Invalid product attribute type - the product attribute type must be any of "
16429
  "these: %s"
16430
  msgstr ""
16431
 
16432
  #: includes/api/legacy/v2/class-wc-api-products.php:1977
16433
+ #: includes/api/legacy/v3/class-wc-api-products.php:2536
16434
  msgid ""
16435
  "Invalid product attribute order_by type - the product attribute order_by "
16436
  "type must be any of these: %s"
16437
  msgstr ""
16438
 
16439
  #: includes/api/legacy/v2/class-wc-api-products.php:2002
16440
+ #: includes/api/legacy/v3/class-wc-api-products.php:2561
16441
+ #: includes/api/legacy/v3/class-wc-api-products.php:2892
16442
  msgid "You do not have permission to create product attributes"
16443
  msgstr ""
16444
 
16445
  #: includes/api/legacy/v2/class-wc-api-products.php:2084
16446
+ #: includes/api/legacy/v3/class-wc-api-products.php:2644
16447
+ #: includes/api/legacy/v3/class-wc-api-products.php:2956
16448
  msgid "You do not have permission to edit product attributes"
16449
  msgstr ""
16450
 
16451
  #: includes/api/legacy/v2/class-wc-api-products.php:2130
16452
+ #: includes/api/legacy/v3/class-wc-api-products.php:2690
16453
  msgid "Could not edit the attribute"
16454
  msgstr ""
16455
 
16456
  #: includes/api/legacy/v2/class-wc-api-products.php:2157
16457
+ #: includes/api/legacy/v3/class-wc-api-products.php:2718
16458
  msgid "You do not have permission to delete product attributes"
16459
  msgstr ""
16460
 
16461
  #: includes/api/legacy/v2/class-wc-api-products.php:2179
16462
+ #: includes/api/legacy/v3/class-wc-api-products.php:2740
16463
  msgid "Could not delete the attribute"
16464
  msgstr ""
16465
 
16577
  msgid "Could not delete the tag"
16578
  msgstr ""
16579
 
16580
+ #: includes/api/legacy/v3/class-wc-api-products.php:2777
16581
+ #: includes/api/legacy/v3/class-wc-api-products.php:2844
16582
  msgid "You do not have permission to read product attribute terms"
16583
  msgstr ""
16584
 
16585
+ #: includes/api/legacy/v3/class-wc-api-products.php:2856
16586
  msgid "A product attribute term with the provided ID could not be found"
16587
  msgstr ""
16588
 
16589
+ #: includes/api/legacy/v3/class-wc-api-products.php:3007
16590
  msgid "You do not have permission to delete product attribute terms"
16591
  msgstr ""
16592
 
16593
+ #: includes/api/legacy/v3/class-wc-api-products.php:3146
16594
+ #: includes/api/legacy/v3/class-wc-api-products.php:3181
16595
  msgid "You do not have permission to read product shipping classes"
16596
  msgstr ""
16597
 
16598
+ #: includes/api/legacy/v3/class-wc-api-products.php:3176
16599
  msgid "Invalid product shipping class ID"
16600
  msgstr ""
16601
 
16602
+ #: includes/api/legacy/v3/class-wc-api-products.php:3187
16603
  msgid "A product shipping class with the provided ID could not be found"
16604
  msgstr ""
16605
 
16606
+ #: includes/api/legacy/v3/class-wc-api-products.php:3225
16607
  msgid "You do not have permission to create product shipping classes"
16608
  msgstr ""
16609
 
16610
+ #: includes/api/legacy/v3/class-wc-api-products.php:3243
16611
  msgid "Product shipping class parent is invalid"
16612
  msgstr ""
16613
 
16614
+ #: includes/api/legacy/v3/class-wc-api-products.php:3286
16615
  msgid "You do not have permission to edit product shipping classes"
16616
  msgstr ""
16617
 
16618
+ #: includes/api/legacy/v3/class-wc-api-products.php:3298
16619
  msgid "Could not edit the shipping class"
16620
  msgstr ""
16621
 
16622
+ #: includes/api/legacy/v3/class-wc-api-products.php:3323
16623
  msgid "You do not have permission to delete product shipping classes"
16624
  msgstr ""
16625
 
16626
+ #: includes/api/legacy/v3/class-wc-api-products.php:3329
16627
  msgid "Could not delete the shipping class"
16628
  msgstr ""
16629
 
17320
  msgstr ""
17321
 
17322
  #: includes/class-wc-cart.php:912 includes/class-wc-frontend-scripts.php:523
17323
+ #: includes/wc-cart-functions.php:115 includes/wc-template-functions.php:1429
17324
  #. translators: %s: product name
17325
  msgid "View cart"
17326
  msgstr ""
17506
  msgid "Suburb"
17507
  msgstr ""
17508
 
17509
+ #: includes/class-wc-countries.php:672 includes/class-wc-countries.php:905
17510
+ #: includes/class-wc-countries.php:1020
17511
  msgid "Postcode"
17512
  msgstr ""
17513
 
17516
  msgstr ""
17517
 
17518
  #: includes/class-wc-countries.php:700 includes/class-wc-countries.php:722
17519
+ #: includes/class-wc-countries.php:747 includes/class-wc-countries.php:828
17520
+ #: includes/class-wc-countries.php:862 includes/class-wc-countries.php:900
17521
+ #: includes/class-wc-countries.php:977 includes/class-wc-countries.php:1007
17522
+ #: includes/class-wc-countries.php:1054
17523
  msgid "Province"
17524
  msgstr ""
17525
 
17527
  msgid "Canton"
17528
  msgstr ""
17529
 
17530
+ #: includes/class-wc-countries.php:742 includes/class-wc-countries.php:818
17531
+ #: includes/class-wc-countries.php:909
17532
  msgid "Region"
17533
  msgstr ""
17534
 
17535
+ #: includes/class-wc-countries.php:815
17536
  msgid "Town / District"
17537
  msgstr ""
17538
 
17539
+ #: includes/class-wc-countries.php:823 includes/class-wc-countries.php:837
17540
+ #: includes/class-wc-countries.php:1023
17541
  msgid "County"
17542
  msgstr ""
17543
 
17544
+ #: includes/class-wc-countries.php:834
17545
  msgid "Eircode"
17546
  msgstr ""
17547
 
17548
+ #: includes/class-wc-countries.php:867
17549
  msgid "Prefecture"
17550
  msgstr ""
17551
 
17552
+ #: includes/class-wc-countries.php:922
17553
  msgid "State / Zone"
17554
  msgstr ""
17555
 
17556
+ #: includes/class-wc-countries.php:985
17557
  msgid "Municipality"
17558
  msgstr ""
17559
 
17560
+ #: includes/class-wc-countries.php:1012
17561
  msgid "ZIP"
17562
  msgstr ""
17563
 
17724
  msgid "Note"
17725
  msgstr ""
17726
 
17727
+ #: includes/class-wc-emails.php:458
17728
  msgid "Product low in stock"
17729
  msgstr ""
17730
 
17731
+ #: includes/class-wc-emails.php:461
17732
  #. translators: 1: product name 2: items in stock
17733
  msgid "%1$s is low in stock. There are %2$d left."
17734
  msgstr ""
17735
 
17736
+ #: includes/class-wc-emails.php:485
17737
  msgid "Product out of stock"
17738
  msgstr ""
17739
 
17740
+ #: includes/class-wc-emails.php:487
17741
  #. translators: %s: product name
17742
  msgid "%s is out of stock."
17743
  msgstr ""
17744
 
17745
+ #: includes/class-wc-emails.php:516
17746
  msgid "Product backorder"
17747
  msgstr ""
17748
 
17749
+ #: includes/class-wc-emails.php:517
17750
  msgid "%1$s units of %2$s have been backordered in order #%3$s."
17751
  msgstr ""
17752
 
17905
  msgstr ""
17906
 
17907
  #: includes/class-wc-frontend-scripts.php:500
17908
+ #: includes/wc-template-functions.php:1884
17909
  msgid "required"
17910
  msgstr ""
17911
 
17936
  msgid "Shop manager"
17937
  msgstr ""
17938
 
17939
+ #: includes/class-wc-install.php:883
17940
  msgid "View WooCommerce settings"
17941
  msgstr ""
17942
 
17943
+ #: includes/class-wc-install.php:899
17944
  msgid "View WooCommerce documentation"
17945
  msgstr ""
17946
 
17947
+ #: includes/class-wc-install.php:899
17948
  msgid "Docs"
17949
  msgstr ""
17950
 
17951
+ #: includes/class-wc-install.php:900
17952
  msgid "View WooCommerce API docs"
17953
  msgstr ""
17954
 
17955
+ #: includes/class-wc-install.php:900
17956
  msgid "API docs"
17957
  msgstr ""
17958
 
17959
+ #: includes/class-wc-install.php:901
17960
  msgid "Visit premium customer support"
17961
  msgstr ""
17962
 
17963
+ #: includes/class-wc-install.php:901
17964
  msgid "Premium support"
17965
  msgstr ""
17966
 
17967
+ #: includes/class-wc-install.php:1043
17968
  msgid ""
17969
  "%1$s could not be installed (%2$s). <a href=\"%3$s\">Please install it "
17970
  "manually by clicking here.</a>"
17971
  msgstr ""
17972
 
17973
+ #: includes/class-wc-install.php:1069
17974
  msgid ""
17975
  "%1$s was installed but could not be activated. <a href=\"%2$s\">Please "
17976
  "activate it manually by clicking here.</a>"
19847
  msgstr ""
19848
 
19849
  #: includes/legacy/abstract-wc-legacy-order.php:504
19850
+ #: includes/wc-template-functions.php:2452
19851
  #. translators: 1: current item count
19852
  msgid "Download %d"
19853
  msgstr ""
19854
 
19855
  #: includes/legacy/abstract-wc-legacy-order.php:504
19856
+ #: includes/wc-template-functions.php:2452 templates/myaccount/downloads.php:76
19857
  msgid "Download"
19858
  msgstr ""
19859
 
20418
  msgid "estimated for %s"
20419
  msgstr ""
20420
 
20421
+ #: includes/wc-core-functions.php:195
20422
  msgid "%s does not exist."
20423
  msgstr ""
20424
 
20425
+ #: includes/wc-core-functions.php:280
20426
  msgid "United Arab Emirates dirham"
20427
  msgstr ""
20428
 
20429
+ #: includes/wc-core-functions.php:281
20430
  msgid "Afghan afghani"
20431
  msgstr ""
20432
 
20433
+ #: includes/wc-core-functions.php:282
20434
  msgid "Albanian lek"
20435
  msgstr ""
20436
 
20437
+ #: includes/wc-core-functions.php:283
20438
  msgid "Armenian dram"
20439
  msgstr ""
20440
 
20441
+ #: includes/wc-core-functions.php:284
20442
  msgid "Netherlands Antillean guilder"
20443
  msgstr ""
20444
 
20445
+ #: includes/wc-core-functions.php:285
20446
  msgid "Angolan kwanza"
20447
  msgstr ""
20448
 
20449
+ #: includes/wc-core-functions.php:286
20450
  msgid "Argentine peso"
20451
  msgstr ""
20452
 
20453
+ #: includes/wc-core-functions.php:287
20454
  msgid "Australian dollar"
20455
  msgstr ""
20456
 
20457
+ #: includes/wc-core-functions.php:288
20458
  msgid "Aruban florin"
20459
  msgstr ""
20460
 
20461
+ #: includes/wc-core-functions.php:289
20462
  msgid "Azerbaijani manat"
20463
  msgstr ""
20464
 
20465
+ #: includes/wc-core-functions.php:290
20466
  msgid "Bosnia and Herzegovina convertible mark"
20467
  msgstr ""
20468
 
20469
+ #: includes/wc-core-functions.php:291
20470
  msgid "Barbadian dollar"
20471
  msgstr ""
20472
 
20473
+ #: includes/wc-core-functions.php:292
20474
  msgid "Bangladeshi taka"
20475
  msgstr ""
20476
 
20477
+ #: includes/wc-core-functions.php:293
20478
  msgid "Bulgarian lev"
20479
  msgstr ""
20480
 
20481
+ #: includes/wc-core-functions.php:294
20482
  msgid "Bahraini dinar"
20483
  msgstr ""
20484
 
20485
+ #: includes/wc-core-functions.php:295
20486
  msgid "Burundian franc"
20487
  msgstr ""
20488
 
20489
+ #: includes/wc-core-functions.php:296
20490
  msgid "Bermudian dollar"
20491
  msgstr ""
20492
 
20493
+ #: includes/wc-core-functions.php:297
20494
  msgid "Brunei dollar"
20495
  msgstr ""
20496
 
20497
+ #: includes/wc-core-functions.php:298
20498
  msgid "Bolivian boliviano"
20499
  msgstr ""
20500
 
20501
+ #: includes/wc-core-functions.php:299
20502
  msgid "Brazilian real"
20503
  msgstr ""
20504
 
20505
+ #: includes/wc-core-functions.php:300
20506
  msgid "Bahamian dollar"
20507
  msgstr ""
20508
 
20509
+ #: includes/wc-core-functions.php:301
20510
  msgid "Bitcoin"
20511
  msgstr ""
20512
 
20513
+ #: includes/wc-core-functions.php:302
20514
  msgid "Bhutanese ngultrum"
20515
  msgstr ""
20516
 
20517
+ #: includes/wc-core-functions.php:303
20518
  msgid "Botswana pula"
20519
  msgstr ""
20520
 
20521
+ #: includes/wc-core-functions.php:304
20522
  msgid "Belarusian ruble"
20523
  msgstr ""
20524
 
20525
+ #: includes/wc-core-functions.php:305
20526
  msgid "Belize dollar"
20527
  msgstr ""
20528
 
20529
+ #: includes/wc-core-functions.php:306
20530
  msgid "Canadian dollar"
20531
  msgstr ""
20532
 
20533
+ #: includes/wc-core-functions.php:307
20534
  msgid "Congolese franc"
20535
  msgstr ""
20536
 
20537
+ #: includes/wc-core-functions.php:308
20538
  msgid "Swiss franc"
20539
  msgstr ""
20540
 
20541
+ #: includes/wc-core-functions.php:309
20542
  msgid "Chilean peso"
20543
  msgstr ""
20544
 
20545
+ #: includes/wc-core-functions.php:310
20546
  msgid "Chinese yuan"
20547
  msgstr ""
20548
 
20549
+ #: includes/wc-core-functions.php:311
20550
  msgid "Colombian peso"
20551
  msgstr ""
20552
 
20553
+ #: includes/wc-core-functions.php:312
20554
  msgid "Costa Rican col&oacute;n"
20555
  msgstr ""
20556
 
20557
+ #: includes/wc-core-functions.php:313
20558
  msgid "Cuban convertible peso"
20559
  msgstr ""
20560
 
20561
+ #: includes/wc-core-functions.php:314
20562
  msgid "Cuban peso"
20563
  msgstr ""
20564
 
20565
+ #: includes/wc-core-functions.php:315
20566
  msgid "Cape Verdean escudo"
20567
  msgstr ""
20568
 
20569
+ #: includes/wc-core-functions.php:316
20570
  msgid "Czech koruna"
20571
  msgstr ""
20572
 
20573
+ #: includes/wc-core-functions.php:317
20574
  msgid "Djiboutian franc"
20575
  msgstr ""
20576
 
20577
+ #: includes/wc-core-functions.php:318
20578
  msgid "Danish krone"
20579
  msgstr ""
20580
 
20581
+ #: includes/wc-core-functions.php:319
20582
  msgid "Dominican peso"
20583
  msgstr ""
20584
 
20585
+ #: includes/wc-core-functions.php:320
20586
  msgid "Algerian dinar"
20587
  msgstr ""
20588
 
20589
+ #: includes/wc-core-functions.php:321
20590
  msgid "Egyptian pound"
20591
  msgstr ""
20592
 
20593
+ #: includes/wc-core-functions.php:322
20594
  msgid "Eritrean nakfa"
20595
  msgstr ""
20596
 
20597
+ #: includes/wc-core-functions.php:323
20598
  msgid "Ethiopian birr"
20599
  msgstr ""
20600
 
20601
+ #: includes/wc-core-functions.php:324
20602
  msgid "Euro"
20603
  msgstr ""
20604
 
20605
+ #: includes/wc-core-functions.php:325
20606
  msgid "Fijian dollar"
20607
  msgstr ""
20608
 
20609
+ #: includes/wc-core-functions.php:326
20610
  msgid "Falkland Islands pound"
20611
  msgstr ""
20612
 
20613
+ #: includes/wc-core-functions.php:327
20614
  msgid "Pound sterling"
20615
  msgstr ""
20616
 
20617
+ #: includes/wc-core-functions.php:328
20618
  msgid "Georgian lari"
20619
  msgstr ""
20620
 
20621
+ #: includes/wc-core-functions.php:329
20622
  msgid "Guernsey pound"
20623
  msgstr ""
20624
 
20625
+ #: includes/wc-core-functions.php:330
20626
  msgid "Ghana cedi"
20627
  msgstr ""
20628
 
20629
+ #: includes/wc-core-functions.php:331
20630
  msgid "Gibraltar pound"
20631
  msgstr ""
20632
 
20633
+ #: includes/wc-core-functions.php:332
20634
  msgid "Gambian dalasi"
20635
  msgstr ""
20636
 
20637
+ #: includes/wc-core-functions.php:333
20638
  msgid "Guinean franc"
20639
  msgstr ""
20640
 
20641
+ #: includes/wc-core-functions.php:334
20642
  msgid "Guatemalan quetzal"
20643
  msgstr ""
20644
 
20645
+ #: includes/wc-core-functions.php:335
20646
  msgid "Guyanese dollar"
20647
  msgstr ""
20648
 
20649
+ #: includes/wc-core-functions.php:336
20650
  msgid "Hong Kong dollar"
20651
  msgstr ""
20652
 
20653
+ #: includes/wc-core-functions.php:337
20654
  msgid "Honduran lempira"
20655
  msgstr ""
20656
 
20657
+ #: includes/wc-core-functions.php:338
20658
  msgid "Croatian kuna"
20659
  msgstr ""
20660
 
20661
+ #: includes/wc-core-functions.php:339
20662
  msgid "Haitian gourde"
20663
  msgstr ""
20664
 
20665
+ #: includes/wc-core-functions.php:340
20666
  msgid "Hungarian forint"
20667
  msgstr ""
20668
 
20669
+ #: includes/wc-core-functions.php:341
20670
  msgid "Indonesian rupiah"
20671
  msgstr ""
20672
 
20673
+ #: includes/wc-core-functions.php:342
20674
  msgid "Israeli new shekel"
20675
  msgstr ""
20676
 
20677
+ #: includes/wc-core-functions.php:343
20678
  msgid "Manx pound"
20679
  msgstr ""
20680
 
20681
+ #: includes/wc-core-functions.php:344
20682
  msgid "Indian rupee"
20683
  msgstr ""
20684
 
20685
+ #: includes/wc-core-functions.php:345
20686
  msgid "Iraqi dinar"
20687
  msgstr ""
20688
 
20689
+ #: includes/wc-core-functions.php:346
20690
  msgid "Iranian rial"
20691
  msgstr ""
20692
 
20693
+ #: includes/wc-core-functions.php:347
20694
  msgid "Iranian toman"
20695
  msgstr ""
20696
 
20697
+ #: includes/wc-core-functions.php:348
20698
  msgid "Icelandic kr&oacute;na"
20699
  msgstr ""
20700
 
20701
+ #: includes/wc-core-functions.php:349
20702
  msgid "Jersey pound"
20703
  msgstr ""
20704
 
20705
+ #: includes/wc-core-functions.php:350
20706
  msgid "Jamaican dollar"
20707
  msgstr ""
20708
 
20709
+ #: includes/wc-core-functions.php:351
20710
  msgid "Jordanian dinar"
20711
  msgstr ""
20712
 
20713
+ #: includes/wc-core-functions.php:352
20714
  msgid "Japanese yen"
20715
  msgstr ""
20716
 
20717
+ #: includes/wc-core-functions.php:353
20718
  msgid "Kenyan shilling"
20719
  msgstr ""
20720
 
20721
+ #: includes/wc-core-functions.php:354
20722
  msgid "Kyrgyzstani som"
20723
  msgstr ""
20724
 
20725
+ #: includes/wc-core-functions.php:355
20726
  msgid "Cambodian riel"
20727
  msgstr ""
20728
 
20729
+ #: includes/wc-core-functions.php:356
20730
  msgid "Comorian franc"
20731
  msgstr ""
20732
 
20733
+ #: includes/wc-core-functions.php:357
20734
  msgid "North Korean won"
20735
  msgstr ""
20736
 
20737
+ #: includes/wc-core-functions.php:358
20738
  msgid "South Korean won"
20739
  msgstr ""
20740
 
20741
+ #: includes/wc-core-functions.php:359
20742
  msgid "Kuwaiti dinar"
20743
  msgstr ""
20744
 
20745
+ #: includes/wc-core-functions.php:360
20746
  msgid "Cayman Islands dollar"
20747
  msgstr ""
20748
 
20749
+ #: includes/wc-core-functions.php:361
20750
  msgid "Kazakhstani tenge"
20751
  msgstr ""
20752
 
20753
+ #: includes/wc-core-functions.php:362
20754
  msgid "Lao kip"
20755
  msgstr ""
20756
 
20757
+ #: includes/wc-core-functions.php:363
20758
  msgid "Lebanese pound"
20759
  msgstr ""
20760
 
20761
+ #: includes/wc-core-functions.php:364
20762
  msgid "Sri Lankan rupee"
20763
  msgstr ""
20764
 
20765
+ #: includes/wc-core-functions.php:365
20766
  msgid "Liberian dollar"
20767
  msgstr ""
20768
 
20769
+ #: includes/wc-core-functions.php:366
20770
  msgid "Lesotho loti"
20771
  msgstr ""
20772
 
20773
+ #: includes/wc-core-functions.php:367
20774
  msgid "Libyan dinar"
20775
  msgstr ""
20776
 
20777
+ #: includes/wc-core-functions.php:368
20778
  msgid "Moroccan dirham"
20779
  msgstr ""
20780
 
20781
+ #: includes/wc-core-functions.php:369
20782
  msgid "Moldovan leu"
20783
  msgstr ""
20784
 
20785
+ #: includes/wc-core-functions.php:370
20786
  msgid "Malagasy ariary"
20787
  msgstr ""
20788
 
20789
+ #: includes/wc-core-functions.php:371
20790
  msgid "Macedonian denar"
20791
  msgstr ""
20792
 
20793
+ #: includes/wc-core-functions.php:372
20794
  msgid "Burmese kyat"
20795
  msgstr ""
20796
 
20797
+ #: includes/wc-core-functions.php:373
20798
  msgid "Mongolian t&ouml;gr&ouml;g"
20799
  msgstr ""
20800
 
20801
+ #: includes/wc-core-functions.php:374
20802
  msgid "Macanese pataca"
20803
  msgstr ""
20804
 
20805
+ #: includes/wc-core-functions.php:375
20806
  msgid "Mauritanian ouguiya"
20807
  msgstr ""
20808
 
20809
+ #: includes/wc-core-functions.php:376
20810
  msgid "Mauritian rupee"
20811
  msgstr ""
20812
 
20813
+ #: includes/wc-core-functions.php:377
20814
  msgid "Maldivian rufiyaa"
20815
  msgstr ""
20816
 
20817
+ #: includes/wc-core-functions.php:378
20818
  msgid "Malawian kwacha"
20819
  msgstr ""
20820
 
20821
+ #: includes/wc-core-functions.php:379
20822
  msgid "Mexican peso"
20823
  msgstr ""
20824
 
20825
+ #: includes/wc-core-functions.php:380
20826
  msgid "Malaysian ringgit"
20827
  msgstr ""
20828
 
20829
+ #: includes/wc-core-functions.php:381
20830
  msgid "Mozambican metical"
20831
  msgstr ""
20832
 
20833
+ #: includes/wc-core-functions.php:382
20834
  msgid "Namibian dollar"
20835
  msgstr ""
20836
 
20837
+ #: includes/wc-core-functions.php:383
20838
  msgid "Nigerian naira"
20839
  msgstr ""
20840
 
20841
+ #: includes/wc-core-functions.php:384
20842
  msgid "Nicaraguan c&oacute;rdoba"
20843
  msgstr ""
20844
 
20845
+ #: includes/wc-core-functions.php:385
20846
  msgid "Norwegian krone"
20847
  msgstr ""
20848
 
20849
+ #: includes/wc-core-functions.php:386
20850
  msgid "Nepalese rupee"
20851
  msgstr ""
20852
 
20853
+ #: includes/wc-core-functions.php:387
20854
  msgid "New Zealand dollar"
20855
  msgstr ""
20856
 
20857
+ #: includes/wc-core-functions.php:388
20858
  msgid "Omani rial"
20859
  msgstr ""
20860
 
20861
+ #: includes/wc-core-functions.php:389
20862
  msgid "Panamanian balboa"
20863
  msgstr ""
20864
 
20865
+ #: includes/wc-core-functions.php:390
20866
  msgid "Peruvian nuevo sol"
20867
  msgstr ""
20868
 
20869
+ #: includes/wc-core-functions.php:391
20870
  msgid "Papua New Guinean kina"
20871
  msgstr ""
20872
 
20873
+ #: includes/wc-core-functions.php:392
20874
  msgid "Philippine peso"
20875
  msgstr ""
20876
 
20877
+ #: includes/wc-core-functions.php:393
20878
  msgid "Pakistani rupee"
20879
  msgstr ""
20880
 
20881
+ #: includes/wc-core-functions.php:394
20882
  msgid "Polish z&#x142;oty"
20883
  msgstr ""
20884
 
20885
+ #: includes/wc-core-functions.php:395
20886
  msgid "Transnistrian ruble"
20887
  msgstr ""
20888
 
20889
+ #: includes/wc-core-functions.php:396
20890
  msgid "Paraguayan guaran&iacute;"
20891
  msgstr ""
20892
 
20893
+ #: includes/wc-core-functions.php:397
20894
  msgid "Qatari riyal"
20895
  msgstr ""
20896
 
20897
+ #: includes/wc-core-functions.php:398
20898
  msgid "Romanian leu"
20899
  msgstr ""
20900
 
20901
+ #: includes/wc-core-functions.php:399
20902
  msgid "Serbian dinar"
20903
  msgstr ""
20904
 
20905
+ #: includes/wc-core-functions.php:400
20906
  msgid "Russian ruble"
20907
  msgstr ""
20908
 
20909
+ #: includes/wc-core-functions.php:401
20910
  msgid "Rwandan franc"
20911
  msgstr ""
20912
 
20913
+ #: includes/wc-core-functions.php:402
20914
  msgid "Saudi riyal"
20915
  msgstr ""
20916
 
20917
+ #: includes/wc-core-functions.php:403
20918
  msgid "Solomon Islands dollar"
20919
  msgstr ""
20920
 
20921
+ #: includes/wc-core-functions.php:404
20922
  msgid "Seychellois rupee"
20923
  msgstr ""
20924
 
20925
+ #: includes/wc-core-functions.php:405
20926
  msgid "Sudanese pound"
20927
  msgstr ""
20928
 
20929
+ #: includes/wc-core-functions.php:406
20930
  msgid "Swedish krona"
20931
  msgstr ""
20932
 
20933
+ #: includes/wc-core-functions.php:407
20934
  msgid "Singapore dollar"
20935
  msgstr ""
20936
 
20937
+ #: includes/wc-core-functions.php:408
20938
  msgid "Saint Helena pound"
20939
  msgstr ""
20940
 
20941
+ #: includes/wc-core-functions.php:409
20942
  msgid "Sierra Leonean leone"
20943
  msgstr ""
20944
 
20945
+ #: includes/wc-core-functions.php:410
20946
  msgid "Somali shilling"
20947
  msgstr ""
20948
 
20949
+ #: includes/wc-core-functions.php:411
20950
  msgid "Surinamese dollar"
20951
  msgstr ""
20952
 
20953
+ #: includes/wc-core-functions.php:412
20954
  msgid "South Sudanese pound"
20955
  msgstr ""
20956
 
20957
+ #: includes/wc-core-functions.php:413
20958
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
20959
  msgstr ""
20960
 
20961
+ #: includes/wc-core-functions.php:414
20962
  msgid "Syrian pound"
20963
  msgstr ""
20964
 
20965
+ #: includes/wc-core-functions.php:415
20966
  msgid "Swazi lilangeni"
20967
  msgstr ""
20968
 
20969
+ #: includes/wc-core-functions.php:416
20970
  msgid "Thai baht"
20971
  msgstr ""
20972
 
20973
+ #: includes/wc-core-functions.php:417
20974
  msgid "Tajikistani somoni"
20975
  msgstr ""
20976
 
20977
+ #: includes/wc-core-functions.php:418
20978
  msgid "Turkmenistan manat"
20979
  msgstr ""
20980
 
20981
+ #: includes/wc-core-functions.php:419
20982
  msgid "Tunisian dinar"
20983
  msgstr ""
20984
 
20985
+ #: includes/wc-core-functions.php:420
20986
  msgid "Tongan pa&#x2bb;anga"
20987
  msgstr ""
20988
 
20989
+ #: includes/wc-core-functions.php:421
20990
  msgid "Turkish lira"
20991
  msgstr ""
20992
 
20993
+ #: includes/wc-core-functions.php:422
20994
  msgid "Trinidad and Tobago dollar"
20995
  msgstr ""
20996
 
20997
+ #: includes/wc-core-functions.php:423
20998
  msgid "New Taiwan dollar"
20999
  msgstr ""
21000
 
21001
+ #: includes/wc-core-functions.php:424
21002
  msgid "Tanzanian shilling"
21003
  msgstr ""
21004
 
21005
+ #: includes/wc-core-functions.php:425
21006
  msgid "Ukrainian hryvnia"
21007
  msgstr ""
21008
 
21009
+ #: includes/wc-core-functions.php:426
21010
  msgid "Ugandan shilling"
21011
  msgstr ""
21012
 
21013
+ #: includes/wc-core-functions.php:427
21014
  msgid "United States dollar"
21015
  msgstr ""
21016
 
21017
+ #: includes/wc-core-functions.php:428
21018
  msgid "Uruguayan peso"
21019
  msgstr ""
21020
 
21021
+ #: includes/wc-core-functions.php:429
21022
  msgid "Uzbekistani som"
21023
  msgstr ""
21024
 
21025
+ #: includes/wc-core-functions.php:430
21026
  msgid "Venezuelan bol&iacute;var"
21027
  msgstr ""
21028
 
21029
+ #: includes/wc-core-functions.php:431
21030
  msgid "Vietnamese &#x111;&#x1ed3;ng"
21031
  msgstr ""
21032
 
21033
+ #: includes/wc-core-functions.php:432
21034
  msgid "Vanuatu vatu"
21035
  msgstr ""
21036
 
21037
+ #: includes/wc-core-functions.php:433
21038
  msgid "Samoan t&#x101;l&#x101;"
21039
  msgstr ""
21040
 
21041
+ #: includes/wc-core-functions.php:434
21042
  msgid "Central African CFA franc"
21043
  msgstr ""
21044
 
21045
+ #: includes/wc-core-functions.php:435
21046
  msgid "East Caribbean dollar"
21047
  msgstr ""
21048
 
21049
+ #: includes/wc-core-functions.php:436
21050
  msgid "West African CFA franc"
21051
  msgstr ""
21052
 
21053
+ #: includes/wc-core-functions.php:437
21054
  msgid "CFP franc"
21055
  msgstr ""
21056
 
21057
+ #: includes/wc-core-functions.php:438
21058
  msgid "Yemeni rial"
21059
  msgstr ""
21060
 
21061
+ #: includes/wc-core-functions.php:439
21062
  msgid "South African rand"
21063
  msgstr ""
21064
 
21065
+ #: includes/wc-core-functions.php:440
21066
  msgid "Zambian kwacha"
21067
  msgstr ""
21068
 
21069
+ #: includes/wc-core-functions.php:1215
21070
  msgid "MasterCard"
21071
  msgstr ""
21072
 
21073
+ #: includes/wc-core-functions.php:1216
21074
  msgid "Visa"
21075
  msgstr ""
21076
 
21077
+ #: includes/wc-core-functions.php:1217
21078
  msgid "Discover"
21079
  msgstr ""
21080
 
21081
+ #: includes/wc-core-functions.php:1218
21082
  msgid "American Express"
21083
  msgstr ""
21084
 
21085
+ #: includes/wc-core-functions.php:1219
21086
  msgid "Diners"
21087
  msgstr ""
21088
 
21089
+ #: includes/wc-core-functions.php:1220
21090
  msgid "JCB"
21091
  msgstr ""
21092
 
21093
+ #: includes/wc-core-functions.php:1441
21094
  msgid ""
21095
  "The class <code>%s</code> provided by woocommerce_logging_class filter must "
21096
  "implement <code>WC_Logger_Interface</code>."
21108
  msgid "Fixed product discount"
21109
  msgstr ""
21110
 
21111
+ #: includes/wc-formatting-functions.php:974
21112
  msgid "Only %s left in stock"
21113
  msgstr ""
21114
 
21115
+ #: includes/wc-formatting-functions.php:978
21116
  msgid "%s in stock"
21117
  msgstr ""
21118
 
21119
+ #: includes/wc-formatting-functions.php:983
21120
  msgid "(can be backordered)"
21121
  msgstr ""
21122
 
21161
  msgid "wc_get_product should not be called before the woocommerce_init action."
21162
  msgstr ""
21163
 
21164
+ #: includes/wc-product-functions.php:736
21165
  msgid "Visible"
21166
  msgstr ""
21167
 
21168
+ #: includes/wc-product-functions.php:820
21169
  msgid "Do not allow"
21170
  msgstr ""
21171
 
21172
+ #: includes/wc-product-functions.php:821
21173
  msgid "Allow, but notify customer"
21174
  msgstr ""
21175
 
21236
  msgid "Reviews (%d)"
21237
  msgstr ""
21238
 
21239
+ #: includes/wc-template-functions.php:1441
21240
  msgid "Checkout"
21241
  msgstr ""
21242
 
21243
+ #: includes/wc-template-functions.php:1566
21244
  msgid "Place order"
21245
  msgstr ""
21246
 
21247
+ #: includes/wc-template-functions.php:1951
21248
  msgid "Update country"
21249
  msgstr ""
21250
 
21251
+ #: includes/wc-template-functions.php:1972
21252
  #: templates/cart/shipping-calculator.php:63
21253
  msgid "Select a state&hellip;"
21254
  msgstr ""
21255
 
21256
+ #: includes/wc-template-functions.php:2017
21257
+ #: includes/wc-template-functions.php:2169
21258
+ #: includes/wc-template-functions.php:2179
21259
  msgid "Choose an option"
21260
  msgstr ""
21261
 
21262
+ #: includes/wc-template-functions.php:2538
21263
  #: includes/widgets/class-wc-widget-layered-nav-filters.php:166
21264
  #: includes/widgets/class-wc-widget-rating-filter.php:188
21265
  msgid "Rated %s out of 5"
21266
  msgstr ""
21267
 
21268
+ #: includes/wc-template-functions.php:2539
21269
  msgid "out of 5"
21270
  msgstr ""
21271
 
21272
+ #: includes/wc-term-functions.php:223
21273
  msgid "Select a category"
21274
  msgstr ""
21275
 
21276
+ #: includes/wc-term-functions.php:226
21277
  msgid "Uncategorized"
21278
  msgstr ""
21279
 
22184
  msgid "Dimensions"
22185
  msgstr ""
22186
 
22187
+ #: templates/single-product/product-image.php:53
22188
  msgid "Awaiting product image"
22189
  msgstr ""
22190
 
22440
  msgstr ""
22441
 
22442
  #: includes/admin/class-wc-admin-permalink-settings.php:76
22443
+ #: includes/wc-core-functions.php:1588 includes/wc-update-functions.php:51
22444
  msgctxt "slug"
22445
  msgid "product-category"
22446
  msgstr ""
22447
 
22448
  #: includes/admin/class-wc-admin-permalink-settings.php:85
22449
+ #: includes/wc-core-functions.php:1589 includes/wc-update-functions.php:52
22450
  msgctxt "slug"
22451
  msgid "product-tag"
22452
  msgstr ""
22453
 
22454
  #: includes/admin/class-wc-admin-permalink-settings.php:196
22455
+ #: includes/wc-core-functions.php:1587 includes/wc-update-functions.php:60
22456
  msgctxt "slug"
22457
  msgid "product"
22458
  msgstr ""
22541
 
22542
  #: includes/admin/meta-boxes/views/html-product-data-general.php:17
22543
  #: includes/class-wc-product-external.php:170
22544
+ #: includes/class-wc-product-external.php:180
22545
  msgctxt "placeholder"
22546
  msgid "Buy product"
22547
  msgstr ""
22591
  msgid "%1$s of %2$s"
22592
  msgstr ""
22593
 
22594
+ #: includes/api/class-wc-rest-system-status-controller.php:880
22595
  msgctxt "Page setting"
22596
  msgid "Shop base"
22597
  msgstr ""
22598
 
22599
+ #: includes/api/class-wc-rest-system-status-controller.php:884
22600
  msgctxt "Page setting"
22601
  msgid "Cart"
22602
  msgstr ""
22603
 
22604
+ #: includes/api/class-wc-rest-system-status-controller.php:888
22605
  msgctxt "Page setting"
22606
  msgid "Checkout"
22607
  msgstr ""
22608
 
22609
+ #: includes/api/class-wc-rest-system-status-controller.php:892
22610
  msgctxt "Page setting"
22611
  msgid "My account"
22612
  msgstr ""
22693
  msgid "%1$s&ndash;%2$s"
22694
  msgstr ""
22695
 
22696
+ #: includes/wc-formatting-functions.php:1020
22697
  msgctxt "Price range: from-to"
22698
  msgid "%1$s &ndash; %2$s"
22699
  msgstr ""
22715
  msgstr[0] ""
22716
  msgstr[1] ""
22717
 
22718
+ #: includes/wc-template-functions.php:1516
22719
  msgctxt "breadcrumb"
22720
  msgid "Home"
22721
  msgstr ""
22722
 
22723
+ #: includes/wc-template-functions.php:2554
22724
  msgctxt "min_price"
22725
  msgid "From:"
22726
  msgstr ""
includes/abstracts/abstract-wc-data.php CHANGED
@@ -131,6 +131,22 @@ abstract class WC_Data {
131
  }
132
  }
133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  /**
135
  * Get the data store.
136
  *
131
  }
132
  }
133
 
134
+ /**
135
+ * When the object is cloned, make sure meta is duplicated correctly.
136
+ *
137
+ * @since 3.0.2
138
+ */
139
+ public function __clone() {
140
+ $this->maybe_read_meta_data();
141
+ if ( ! empty( $this->meta_data ) ) {
142
+ foreach ( $this->meta_data as $array_key => $meta ) {
143
+ if ( ! empty( $meta->id ) ) {
144
+ unset( $this->meta_data[ $array_key ]->id );
145
+ }
146
+ }
147
+ }
148
+ }
149
+
150
  /**
151
  * Get the data store.
152
  *
includes/admin/class-wc-admin-duplicate-product.php CHANGED
@@ -117,12 +117,14 @@ class WC_Admin_Duplicate_Product {
117
 
118
  $duplicate = clone $product;
119
  $duplicate->set_id( 0 );
 
120
  $duplicate->set_total_sales( 0 );
121
  if ( '' !== $product->get_sku( 'edit' ) ) {
122
  $duplicate->set_sku( wc_product_generate_unique_sku( 0, $product->get_sku( 'edit' ) ) );
123
  }
124
  $duplicate->set_status( 'draft' );
125
  $duplicate->set_date_created( null );
 
126
 
127
  foreach ( $meta_to_exclude as $meta_key ) {
128
  $duplicate->delete_meta_data( $meta_key );
@@ -134,7 +136,8 @@ class WC_Admin_Duplicate_Product {
134
  // Save parent product.
135
  $duplicate->save();
136
 
137
- if ( ! apply_filters( 'woocommerce_duplicate_product_exclude_children', false ) && ( $product->is_type( 'variable' ) || $product->is_type( 'grouped' ) ) ) {
 
138
  foreach ( $product->get_children() as $child_id ) {
139
  $child = wc_get_product( $child_id );
140
  $child_duplicate = clone $child;
117
 
118
  $duplicate = clone $product;
119
  $duplicate->set_id( 0 );
120
+ $duplicate->set_name( sprintf( __( '%s (Copy)', 'woocommerce' ), $duplicate->get_name() ) );
121
  $duplicate->set_total_sales( 0 );
122
  if ( '' !== $product->get_sku( 'edit' ) ) {
123
  $duplicate->set_sku( wc_product_generate_unique_sku( 0, $product->get_sku( 'edit' ) ) );
124
  }
125
  $duplicate->set_status( 'draft' );
126
  $duplicate->set_date_created( null );
127
+ $duplicate->set_slug( '' );
128
 
129
  foreach ( $meta_to_exclude as $meta_key ) {
130
  $duplicate->delete_meta_data( $meta_key );
136
  // Save parent product.
137
  $duplicate->save();
138
 
139
+ // Duplicate children of a variable product.
140
+ if ( ! apply_filters( 'woocommerce_duplicate_product_exclude_children', false ) && $product->is_type( 'variable' ) ) {
141
  foreach ( $product->get_children() as $child_id ) {
142
  $child = wc_get_product( $child_id );
143
  $child_duplicate = clone $child;
includes/admin/class-wc-admin-post-types.php CHANGED
@@ -537,7 +537,7 @@ class WC_Admin_Post_Types {
537
  printf( '<mark class="%s tips" data-tip="%s">%s</mark>', esc_attr( sanitize_html_class( $the_order->get_status() ) ), esc_attr( wc_get_order_status_name( $the_order->get_status() ) ), esc_html( wc_get_order_status_name( $the_order->get_status() ) ) );
538
  break;
539
  case 'order_date' :
540
- printf( '<time datetime="%s">%s</time>', esc_attr( $the_order->get_date_created()->date( 'c' ) ), esc_html( $the_order->get_date_created()->date_i18n( __( 'Y-m-d', 'woocommerce' ) ) ) );
541
  break;
542
  case 'customer_message' :
543
  if ( $the_order->get_customer_note() ) {
537
  printf( '<mark class="%s tips" data-tip="%s">%s</mark>', esc_attr( sanitize_html_class( $the_order->get_status() ) ), esc_attr( wc_get_order_status_name( $the_order->get_status() ) ), esc_html( wc_get_order_status_name( $the_order->get_status() ) ) );
538
  break;
539
  case 'order_date' :
540
+ printf( '<time datetime="%s">%s</time>', esc_attr( $the_order->get_date_created()->date( 'c' ) ), esc_html( $the_order->get_date_created()->date_i18n( apply_filters( 'woocommerce_admin_order_date_format', __( 'Y-m-d', 'woocommerce' ) ) ) ) );
541
  break;
542
  case 'customer_message' :
543
  if ( $the_order->get_customer_note() ) {
includes/admin/reports/class-wc-report-stock.php CHANGED
@@ -80,6 +80,10 @@ class WC_Report_Stock extends WP_List_Table {
80
  $product = wc_get_product( $item->id );
81
  }
82
 
 
 
 
 
83
  switch ( $column_name ) {
84
 
85
  case 'product' :
80
  $product = wc_get_product( $item->id );
81
  }
82
 
83
+ if ( ! $product ) {
84
+ return;
85
+ }
86
+
87
  switch ( $column_name ) {
88
 
89
  case 'product' :
includes/admin/views/html-admin-page-status-report.php CHANGED
@@ -479,6 +479,17 @@ $pages = $system_status->get_pages();
479
  echo implode( ', ', array_map( 'esc_html', $display_terms ) );
480
  ?></td>
481
  </tr>
 
 
 
 
 
 
 
 
 
 
 
482
  </tbody>
483
  </table>
484
  <table class="wc_status_table widefat" cellspacing="0">
479
  echo implode( ', ', array_map( 'esc_html', $display_terms ) );
480
  ?></td>
481
  </tr>
482
+ <tr>
483
+ <td data-export-label="Taxonomies: Product Visibility"><?php _e( 'Taxonomies: Product visibility', 'woocommerce' ); ?></th>
484
+ <td class="help"><?php echo wc_help_tip( __( 'A list of taxonomy terms used for product visibility.', 'woocommerce' ) ); ?></td>
485
+ <td><?php
486
+ $display_terms = array();
487
+ foreach ( $settings['product_visibility_terms'] as $slug => $name ) {
488
+ $display_terms[] = strtolower( $name ) . ' (' . $slug . ')';
489
+ }
490
+ echo implode( ', ', array_map( 'esc_html', $display_terms ) );
491
+ ?></td>
492
+ </tr>
493
  </tbody>
494
  </table>
495
  <table class="wc_status_table widefat" cellspacing="0">
includes/api/class-wc-rest-system-status-controller.php CHANGED
@@ -487,6 +487,15 @@ class WC_REST_System_Status_Controller extends WC_REST_Controller {
487
  'type' => 'string',
488
  ),
489
  ),
 
 
 
 
 
 
 
 
 
490
  ),
491
  ),
492
  'security' => array(
@@ -823,18 +832,26 @@ class WC_REST_System_Status_Controller extends WC_REST_Controller {
823
  $term_response[ $term->slug ] = strtolower( $term->name );
824
  }
825
 
 
 
 
 
 
 
 
826
  // Return array of useful settings for debugging.
827
  return array(
828
- 'api_enabled' => 'yes' === get_option( 'woocommerce_api_enabled' ),
829
- 'force_ssl' => 'yes' === get_option( 'woocommerce_force_ssl_checkout' ),
830
- 'currency' => get_woocommerce_currency(),
831
- 'currency_symbol' => get_woocommerce_currency_symbol(),
832
- 'currency_position' => get_option( 'woocommerce_currency_pos' ),
833
- 'thousand_separator' => wc_get_price_thousand_separator(),
834
- 'decimal_separator' => wc_get_price_decimal_separator(),
835
- 'number_of_decimals' => wc_get_price_decimals(),
836
- 'geolocation_enabled' => in_array( get_option( 'woocommerce_default_customer_address' ), array( 'geolocation_ajax', 'geolocation' ) ),
837
- 'taxonomies' => $term_response,
 
838
  );
839
  }
840
 
487
  'type' => 'string',
488
  ),
489
  ),
490
+ 'product_visibility_terms' => array(
491
+ 'description' => __( 'Terms in the product visibility taxonomy.', 'woocommerce' ),
492
+ 'type' => 'array',
493
+ 'context' => array( 'view' ),
494
+ 'readonly' => true,
495
+ 'items' => array(
496
+ 'type' => 'string',
497
+ ),
498
+ ),
499
  ),
500
  ),
501
  'security' => array(
832
  $term_response[ $term->slug ] = strtolower( $term->name );
833
  }
834
 
835
+ // Get a list of terms used for product visibility.
836
+ $product_visibility_terms = array();
837
+ $terms = get_terms( 'product_visibility', array( 'hide_empty' => 0 ) );
838
+ foreach ( $terms as $term ) {
839
+ $product_visibility_terms[ $term->slug ] = strtolower( $term->name );
840
+ }
841
+
842
  // Return array of useful settings for debugging.
843
  return array(
844
+ 'api_enabled' => 'yes' === get_option( 'woocommerce_api_enabled' ),
845
+ 'force_ssl' => 'yes' === get_option( 'woocommerce_force_ssl_checkout' ),
846
+ 'currency' => get_woocommerce_currency(),
847
+ 'currency_symbol' => get_woocommerce_currency_symbol(),
848
+ 'currency_position' => get_option( 'woocommerce_currency_pos' ),
849
+ 'thousand_separator' => wc_get_price_thousand_separator(),
850
+ 'decimal_separator' => wc_get_price_decimal_separator(),
851
+ 'number_of_decimals' => wc_get_price_decimals(),
852
+ 'geolocation_enabled' => in_array( get_option( 'woocommerce_default_customer_address' ), array( 'geolocation_ajax', 'geolocation' ) ),
853
+ 'taxonomies' => $term_response,
854
+ 'product_visibility_terms' => $product_visibility_terms,
855
  );
856
  }
857
 
includes/api/legacy/v1/class-wc-api-products.php CHANGED
@@ -345,7 +345,7 @@ class WC_API_Products extends WC_API_Resource {
345
  foreach ( $product->get_children() as $child_id ) {
346
  $variation = wc_get_product( $child_id );
347
 
348
- if ( ! $variation->exists() ) {
349
  continue;
350
  }
351
 
345
  foreach ( $product->get_children() as $child_id ) {
346
  $variation = wc_get_product( $child_id );
347
 
348
+ if ( ! $variation || ! $variation->exists() ) {
349
  continue;
350
  }
351
 
includes/api/legacy/v2/class-wc-api-orders.php CHANGED
@@ -233,7 +233,7 @@ class WC_API_Orders extends WC_API_Resource {
233
  'name' => $item->get_name(),
234
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
235
  'sku' => is_object( $product ) ? $product->get_sku() : null,
236
- 'meta' => $item_meta,
237
  );
238
  }
239
 
@@ -1532,7 +1532,7 @@ class WC_API_Orders extends WC_API_Resource {
1532
  'name' => $item->get_name(),
1533
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
1534
  'sku' => is_object( $product ) ? $product->get_sku() : null,
1535
- 'meta' => $item_meta,
1536
  'refunded_item_id' => (int) $item->get_meta( 'refunded_item_id' ),
1537
  );
1538
  }
233
  'name' => $item->get_name(),
234
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
235
  'sku' => is_object( $product ) ? $product->get_sku() : null,
236
+ 'meta' => array_values( $item_meta ),
237
  );
238
  }
239
 
1532
  'name' => $item->get_name(),
1533
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
1534
  'sku' => is_object( $product ) ? $product->get_sku() : null,
1535
+ 'meta' => array_values( $item_meta ),
1536
  'refunded_item_id' => (int) $item->get_meta( 'refunded_item_id' ),
1537
  );
1538
  }
includes/api/legacy/v2/class-wc-api-products.php CHANGED
@@ -767,7 +767,7 @@ class WC_API_Products extends WC_API_Resource {
767
 
768
  $variation = wc_get_product( $child_id );
769
 
770
- if ( ! $variation->exists() ) {
771
  continue;
772
  }
773
 
767
 
768
  $variation = wc_get_product( $child_id );
769
 
770
+ if ( ! $variation || ! $variation->exists() ) {
771
  continue;
772
  }
773
 
includes/api/legacy/v3/class-wc-api-orders.php CHANGED
@@ -240,7 +240,7 @@ class WC_API_Orders extends WC_API_Resource {
240
  'name' => $item->get_name(),
241
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
242
  'sku' => is_object( $product ) ? $product->get_sku() : null,
243
- 'meta' => $item_meta,
244
  );
245
 
246
  if ( in_array( 'products', $expand ) ) {
@@ -1582,7 +1582,7 @@ class WC_API_Orders extends WC_API_Resource {
1582
  'name' => $item->get_name(),
1583
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
1584
  'sku' => is_object( $product ) ? $product->get_sku() : null,
1585
- 'meta' => $item_meta,
1586
  'refunded_item_id' => (int) $item->get_meta( 'refunded_item_id' ),
1587
  );
1588
  }
240
  'name' => $item->get_name(),
241
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
242
  'sku' => is_object( $product ) ? $product->get_sku() : null,
243
+ 'meta' => array_values( $item_meta ),
244
  );
245
 
246
  if ( in_array( 'products', $expand ) ) {
1582
  'name' => $item->get_name(),
1583
  'product_id' => $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(),
1584
  'sku' => is_object( $product ) ? $product->get_sku() : null,
1585
+ 'meta' => array_values( $item_meta ),
1586
  'refunded_item_id' => (int) $item->get_meta( 'refunded_item_id' ),
1587
  );
1588
  }
includes/api/legacy/v3/class-wc-api-products.php CHANGED
@@ -1225,7 +1225,7 @@ class WC_API_Products extends WC_API_Resource {
1225
  foreach ( $product->get_children() as $child_id ) {
1226
  $variation = wc_get_product( $child_id );
1227
 
1228
- if ( ! $variation->exists() ) {
1229
  continue;
1230
  }
1231
 
@@ -1751,6 +1751,7 @@ class WC_API_Products extends WC_API_Resource {
1751
  global $wpdb;
1752
 
1753
  $id = $product->get_id();
 
1754
  $attributes = $product->get_attributes();
1755
 
1756
  foreach ( $variations as $menu_order => $data ) {
1225
  foreach ( $product->get_children() as $child_id ) {
1226
  $variation = wc_get_product( $child_id );
1227
 
1228
+ if ( ! $variation || ! $variation->exists() ) {
1229
  continue;
1230
  }
1231
 
1751
  global $wpdb;
1752
 
1753
  $id = $product->get_id();
1754
+ $variations = $request['variations'];
1755
  $attributes = $product->get_attributes();
1756
 
1757
  foreach ( $variations as $menu_order => $data ) {
includes/api/v1/class-wc-rest-products-controller.php CHANGED
@@ -540,7 +540,7 @@ class WC_REST_Products_V1_Controller extends WC_REST_Posts_Controller {
540
 
541
  foreach ( $product->get_children() as $child_id ) {
542
  $variation = wc_get_product( $child_id );
543
- if ( ! $variation->exists() ) {
544
  continue;
545
  }
546
 
540
 
541
  foreach ( $product->get_children() as $child_id ) {
542
  $variation = wc_get_product( $child_id );
543
+ if ( ! $variation || ! $variation->exists() ) {
544
  continue;
545
  }
546
 
includes/class-wc-ajax.php CHANGED
@@ -1823,7 +1823,7 @@ class WC_AJAX {
1823
  }
1824
 
1825
  if ( 'false' !== $data['date_to'] ) {
1826
- $variation->set_date_on_sale_from( wc_clean( $data['date_to'] ) );
1827
  }
1828
 
1829
  $variation->save();
1823
  }
1824
 
1825
  if ( 'false' !== $data['date_to'] ) {
1826
+ $variation->set_date_on_sale_to( wc_clean( $data['date_to'] ) );
1827
  }
1828
 
1829
  $variation->save();
includes/class-wc-background-emailer.php CHANGED
@@ -63,7 +63,13 @@ class WC_Background_Emailer extends WP_Background_Process {
63
  */
64
  protected function task( $callback ) {
65
  if ( isset( $callback['filter'], $callback['args'] ) ) {
66
- WC_Emails::send_queued_transactional_email( $callback['filter'], $callback['args'] );
 
 
 
 
 
 
67
  }
68
  return false;
69
  }
@@ -76,4 +82,81 @@ class WC_Background_Emailer extends WP_Background_Process {
76
  $this->save()->dispatch();
77
  }
78
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
63
  */
64
  protected function task( $callback ) {
65
  if ( isset( $callback['filter'], $callback['args'] ) ) {
66
+ try {
67
+ WC_Emails::send_queued_transactional_email( $callback['filter'], $callback['args'] );
68
+ } catch ( Exception $e ) {
69
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
70
+ trigger_error( 'Transactional email triggered fatal error for callback ' . $callback['filter'], E_USER_WARNING );
71
+ }
72
+ }
73
  }
74
  return false;
75
  }
82
  $this->save()->dispatch();
83
  }
84
  }
85
+
86
+ /**
87
+ * Get post args
88
+ *
89
+ * @return array
90
+ */
91
+ protected function get_post_args() {
92
+ if ( property_exists( $this, 'post_args' ) ) {
93
+ return $this->post_args;
94
+ }
95
+
96
+ // Pass cookies through with the request so nonces function.
97
+ $cookies = array();
98
+
99
+ foreach ( $_COOKIE as $name => $value ) {
100
+ if ( 'PHPSESSID' === $name ) {
101
+ continue;
102
+ }
103
+ $cookies[] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
104
+ }
105
+
106
+ return array(
107
+ 'timeout' => 0.01,
108
+ 'blocking' => false,
109
+ 'body' => $this->data,
110
+ 'cookies' => $cookies,
111
+ 'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
112
+ );
113
+ }
114
+
115
+ /**
116
+ * Handle
117
+ *
118
+ * Pass each queue item to the task handler, while remaining
119
+ * within server memory and time limit constraints.
120
+ */
121
+ protected function handle() {
122
+ $this->lock_process();
123
+
124
+ do {
125
+ $batch = $this->get_batch();
126
+
127
+ if ( empty( $batch->data ) ) {
128
+ break;
129
+ }
130
+
131
+ foreach ( $batch->data as $key => $value ) {
132
+ $task = $this->task( $value );
133
+
134
+ if ( false !== $task ) {
135
+ $batch->data[ $key ] = $task;
136
+ } else {
137
+ unset( $batch->data[ $key ] );
138
+ }
139
+
140
+ // Update batch before sending more to prevent duplicate email possibility.
141
+ $this->update( $batch->key, $batch->data );
142
+
143
+ if ( $this->time_exceeded() || $this->memory_exceeded() ) {
144
+ // Batch limits reached.
145
+ break;
146
+ }
147
+ }
148
+ if ( empty( $batch->data ) ) {
149
+ $this->delete( $batch->key );
150
+ }
151
+ } while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() );
152
+
153
+ $this->unlock_process();
154
+
155
+ // Start next batch or complete process.
156
+ if ( ! $this->is_queue_empty() ) {
157
+ $this->dispatch();
158
+ } else {
159
+ $this->complete();
160
+ }
161
+ }
162
  }
includes/class-wc-cart.php CHANGED
@@ -559,7 +559,7 @@ class WC_Cart {
559
  }
560
 
561
  // Check the nicename against the title.
562
- if ( '' === $value || stristr( $cart_item['data']->get_name(), $value ) ) {
563
  continue;
564
  }
565
 
@@ -609,7 +609,7 @@ class WC_Cart {
609
  */
610
  public function get_cross_sells() {
611
  $cross_sells = array();
612
- $in_cart = array();
613
  if ( ! $this->is_empty() ) {
614
  foreach ( $this->get_cart() as $cart_item_key => $values ) {
615
  if ( $values['quantity'] > 0 ) {
@@ -619,7 +619,7 @@ class WC_Cart {
619
  }
620
  }
621
  $cross_sells = array_diff( $cross_sells, $in_cart );
622
- return $cross_sells;
623
  }
624
 
625
  /**
559
  }
560
 
561
  // Check the nicename against the title.
562
+ if ( '' === $value || wc_is_attribute_in_product_name( $value, $cart_item['data']->get_name() ) ) {
563
  continue;
564
  }
565
 
609
  */
610
  public function get_cross_sells() {
611
  $cross_sells = array();
612
+ $in_cart = array();
613
  if ( ! $this->is_empty() ) {
614
  foreach ( $this->get_cart() as $cart_item_key => $values ) {
615
  if ( $values['quantity'] > 0 ) {
619
  }
620
  }
621
  $cross_sells = array_diff( $cross_sells, $in_cart );
622
+ return wp_parse_id_list( $cross_sells );
623
  }
624
 
625
  /**
includes/class-wc-checkout.php CHANGED
@@ -91,7 +91,7 @@ class WC_Checkout {
91
  case 'enable_guest_checkout' :
92
  $bool_value = wc_string_to_bool( $value );
93
 
94
- if ( $bool_value !== $this->is_registration_required() ) {
95
  remove_filter( 'woocommerce_checkout_registration_required', '__return_true', 0 );
96
  remove_filter( 'woocommerce_checkout_registration_required', '__return_false', 0 );
97
  add_filter( 'woocommerce_checkout_registration_required', $bool_value ? '__return_false' : '__return_true', 0 );
91
  case 'enable_guest_checkout' :
92
  $bool_value = wc_string_to_bool( $value );
93
 
94
+ if ( $bool_value === $this->is_registration_required() ) {
95
  remove_filter( 'woocommerce_checkout_registration_required', '__return_true', 0 );
96
  remove_filter( 'woocommerce_checkout_registration_required', '__return_false', 0 );
97
  add_filter( 'woocommerce_checkout_registration_required', $bool_value ? '__return_false' : '__return_true', 0 );
includes/class-wc-countries.php CHANGED
@@ -797,6 +797,16 @@ class WC_Countries {
797
  'required' => false,
798
  ),
799
  ),
 
 
 
 
 
 
 
 
 
 
800
  'HK' => array(
801
  'postcode' => array(
802
  'required' => false,
@@ -866,6 +876,21 @@ class WC_Countries {
866
  'required' => false,
867
  ),
868
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
  'NL' => array(
870
  'postcode' => array(
871
  'priority' => 65,
@@ -913,6 +938,11 @@ class WC_Countries {
913
  'required' => false,
914
  ),
915
  ),
 
 
 
 
 
916
  'RO' => array(
917
  'state' => array(
918
  'required' => false,
@@ -1014,6 +1044,11 @@ class WC_Countries {
1014
  'hidden' => true,
1015
  ),
1016
  ),
 
 
 
 
 
1017
  'ZA' => array(
1018
  'state' => array(
1019
  'label' => __( 'Province', 'woocommerce' ),
797
  'required' => false,
798
  ),
799
  ),
800
+ 'GP' => array(
801
+ 'state' => array(
802
+ 'required' => false,
803
+ ),
804
+ ),
805
+ 'GF' => array(
806
+ 'state' => array(
807
+ 'required' => false,
808
+ ),
809
+ ),
810
  'HK' => array(
811
  'postcode' => array(
812
  'required' => false,
876
  'required' => false,
877
  ),
878
  ),
879
+ 'KW' => array(
880
+ 'state' => array(
881
+ 'required' => false,
882
+ ),
883
+ ),
884
+ 'LB' => array(
885
+ 'state' => array(
886
+ 'required' => false,
887
+ ),
888
+ ),
889
+ 'MQ' => array(
890
+ 'state' => array(
891
+ 'required' => false,
892
+ ),
893
+ ),
894
  'NL' => array(
895
  'postcode' => array(
896
  'priority' => 65,
938
  'required' => false,
939
  ),
940
  ),
941
+ 'RE' => array(
942
+ 'state' => array(
943
+ 'required' => false,
944
+ ),
945
+ ),
946
  'RO' => array(
947
  'state' => array(
948
  'required' => false,
1044
  'hidden' => true,
1045
  ),
1046
  ),
1047
+ 'YT' => array(
1048
+ 'state' => array(
1049
+ 'required' => false,
1050
+ ),
1051
+ ),
1052
  'ZA' => array(
1053
  'state' => array(
1054
  'label' => __( 'Province', 'woocommerce' ),
includes/class-wc-emails.php CHANGED
@@ -451,6 +451,10 @@ class WC_Emails {
451
  * @param WC_Product $product
452
  */
453
  public function low_stock( $product ) {
 
 
 
 
454
  $subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product low in stock', 'woocommerce' ) );
455
  /* translators: 1: product name 2: items in stock */
456
  $message = sprintf(
@@ -474,6 +478,10 @@ class WC_Emails {
474
  * @param WC_Product $product
475
  */
476
  public function no_stock( $product ) {
 
 
 
 
477
  $subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product out of stock', 'woocommerce' ) );
478
  /* translators: %s: product name */
479
  $message = sprintf( __( '%s is out of stock.', 'woocommerce' ), html_entity_decode( strip_tags( $product->get_formatted_name() ), ENT_QUOTES, get_bloginfo( 'charset' ) ) );
451
  * @param WC_Product $product
452
  */
453
  public function low_stock( $product ) {
454
+ if ( 'no' === get_option( 'woocommerce_notify_low_stock', 'yes' ) ) {
455
+ return;
456
+ }
457
+
458
  $subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product low in stock', 'woocommerce' ) );
459
  /* translators: 1: product name 2: items in stock */
460
  $message = sprintf(
478
  * @param WC_Product $product
479
  */
480
  public function no_stock( $product ) {
481
+ if ( 'no' === get_option( 'woocommerce_notify_no_stock', 'yes' ) ) {
482
+ return;
483
+ }
484
+
485
  $subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product out of stock', 'woocommerce' ) );
486
  /* translators: %s: product name */
487
  $message = sprintf( __( '%s is out of stock.', 'woocommerce' ), html_entity_decode( strip_tags( $product->get_formatted_name() ), ENT_QUOTES, get_bloginfo( 'charset' ) ) );
includes/class-wc-install.php CHANGED
@@ -861,13 +861,11 @@ CREATE TABLE {$wpdb->prefix}woocommerce_termmeta (
861
  // Check the latest stable version and ignore trunk.
862
  if ( $version === $new_version && version_compare( WC_VERSION, $version, '<' ) ) {
863
 
864
- $upgrade_notice .= '<div class="wc_plugin_upgrade_notice">';
865
 
866
  foreach ( $notices as $index => $line ) {
867
- $upgrade_notice .= wp_kses_post( preg_replace( '~\[([^\]]*)\]\(([^\)]*)\)~', '<a href="${2}">${1}</a>', $line ) );
868
  }
869
-
870
- $upgrade_notice .= '</div> ';
871
  }
872
  }
873
 
861
  // Check the latest stable version and ignore trunk.
862
  if ( $version === $new_version && version_compare( WC_VERSION, $version, '<' ) ) {
863
 
864
+ $upgrade_notice .= '</p><p class="wc_plugin_upgrade_notice">';
865
 
866
  foreach ( $notices as $index => $line ) {
867
+ $upgrade_notice .= preg_replace( '~\[([^\]]*)\]\(([^\)]*)\)~', '<a href="${2}">${1}</a>', $line );
868
  }
 
 
869
  }
870
  }
871
 
includes/class-wc-order-item-shipping.php CHANGED
@@ -51,6 +51,7 @@ class WC_Order_Item_Shipping extends WC_Order_Item {
51
  * @throws WC_Data_Exception
52
  */
53
  public function set_method_title( $value ) {
 
54
  $this->set_prop( 'method_title', wc_clean( $value ) );
55
  }
56
 
51
  * @throws WC_Data_Exception
52
  */
53
  public function set_method_title( $value ) {
54
+ $this->set_prop( 'name', wc_clean( $value ) );
55
  $this->set_prop( 'method_title', wc_clean( $value ) );
56
  }
57
 
includes/class-wc-order-item.php CHANGED
@@ -207,9 +207,7 @@ class WC_Order_Item extends WC_Data implements ArrayAccess {
207
  }
208
 
209
  // Skip items with values already in the product details area of the product name
210
- $value_in_product_name_regex = "/&ndash;.*" . preg_quote( $display_value, '/' ) . "/i";
211
-
212
- if ( $product && preg_match( $value_in_product_name_regex, $order_item_name ) ) {
213
  continue;
214
  }
215
 
207
  }
208
 
209
  // Skip items with values already in the product details area of the product name
210
+ if ( $product && wc_is_attribute_in_product_name( $display_value, $order_item_name ) ) {
 
 
211
  continue;
212
  }
213
 
includes/class-wc-product-download.php CHANGED
@@ -80,7 +80,7 @@ class WC_Product_Download implements ArrayAccess {
80
  * @return boolean
81
  */
82
  public function is_allowed_filetype() {
83
- if ( 'shortcode' === $this->get_type_of_file_path() ) {
84
  return true;
85
  }
86
  return ! $this->get_file_extension() || in_array( $this->get_file_type(), $this->get_allowed_mime_types() );
80
  * @return boolean
81
  */
82
  public function is_allowed_filetype() {
83
+ if ( 'relative' !== $this->get_type_of_file_path() ) {
84
  return true;
85
  }
86
  return ! $this->get_file_extension() || in_array( $this->get_file_type(), $this->get_allowed_mime_types() );
includes/class-wc-product-external.php CHANGED
@@ -177,6 +177,6 @@ class WC_Product_External extends WC_Product {
177
  * @return string
178
  */
179
  public function add_to_cart_text() {
180
- return apply_filters( 'woocommerce_product_add_to_cart_text', $this->get_button_text(), $this );
181
  }
182
  }
177
  * @return string
178
  */
179
  public function add_to_cart_text() {
180
+ return apply_filters( 'woocommerce_product_add_to_cart_text', $this->get_button_text() ? $this->get_button_text() : _x( 'Buy product', 'placeholder', 'woocommerce' ), $this );
181
  }
182
  }
includes/class-wc-product-variable.php CHANGED
@@ -244,7 +244,7 @@ class WC_Product_Variable extends WC_Product {
244
  $variation = wc_get_product( $child_id );
245
 
246
  // Hide out of stock variations if 'Hide out of stock items from the catalog' is checked
247
- if ( ! $variation->exists() || ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) && ! $variation->is_in_stock() ) ) {
248
  continue;
249
  }
250
 
244
  $variation = wc_get_product( $child_id );
245
 
246
  // Hide out of stock variations if 'Hide out of stock items from the catalog' is checked
247
+ if ( ! $variation || ! $variation->exists() || ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) && ! $variation->is_in_stock() ) ) {
248
  continue;
249
  }
250
 
includes/class-wc-shortcodes.php CHANGED
@@ -87,11 +87,12 @@ class WC_Shortcodes {
87
  $columns = absint( $atts['columns'] );
88
  $woocommerce_loop['columns'] = $columns;
89
  $woocommerce_loop['name'] = $loop_name;
 
90
  $transient_name = 'wc_loop' . substr( md5( json_encode( $query_args ) . $loop_name ), 28 ) . WC_Cache_Helper::get_transient_version( 'product_query' );
91
  $products = get_transient( $transient_name );
92
 
93
  if ( false === $products || ! is_a( $products, 'WP_Query' ) ) {
94
- $products = new WP_Query( apply_filters( 'woocommerce_shortcode_products_query', $query_args, $atts, $loop_name ) );
95
  set_transient( $transient_name, $products, DAY_IN_SECONDS * 30 );
96
  }
97
 
87
  $columns = absint( $atts['columns'] );
88
  $woocommerce_loop['columns'] = $columns;
89
  $woocommerce_loop['name'] = $loop_name;
90
+ $query_args = apply_filters( 'woocommerce_shortcode_products_query', $query_args, $atts, $loop_name );
91
  $transient_name = 'wc_loop' . substr( md5( json_encode( $query_args ) . $loop_name ), 28 ) . WC_Cache_Helper::get_transient_version( 'product_query' );
92
  $products = get_transient( $transient_name );
93
 
94
  if ( false === $products || ! is_a( $products, 'WP_Query' ) ) {
95
+ $products = new WP_Query( $query_args );
96
  set_transient( $transient_name, $products, DAY_IN_SECONDS * 30 );
97
  }
98
 
includes/data-stores/class-wc-customer-data-store.php CHANGED
@@ -101,11 +101,11 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
101
 
102
  $customer->set_id( $id );
103
  $this->update_user_meta( $customer );
104
- wp_update_user( array(
105
  'ID' => $customer->get_id(),
106
  'role' => $customer->get_role(),
107
  'display_name' => $customer->get_first_name() . ' ' . $customer->get_last_name(),
108
- ) );
109
  $wp_user = new WP_User( $customer->get_id() );
110
  $customer->set_date_created( $wp_user->user_registered );
111
  $customer->set_date_modified( get_user_meta( $customer->get_id(), 'last_update', true ) );
@@ -136,7 +136,7 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
136
 
137
  $customer_id = $customer->get_id();
138
  // Load meta but exclude deprecated props.
139
- $user_meta = array_diff_key( array_map( 'wc_flatten_meta_callback', get_user_meta( $customer_id ) ), array_flip( array( 'country', 'state', 'postcode', 'city', 'address', 'address_2', 'default' ) ) );
140
  $customer->set_props( $user_meta );
141
  $customer->set_props( array(
142
  'is_paying_customer' => get_user_meta( $customer_id, 'paying_customer', true ),
@@ -158,11 +158,11 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
158
  * @param WC_Customer
159
  */
160
  public function update( &$customer ) {
161
- wp_update_user( array(
162
  'ID' => $customer->get_id(),
163
  'user_email' => $customer->get_email(),
164
  'display_name' => $customer->get_first_name() . ' ' . $customer->get_last_name(),
165
- ) );
166
  // Only update password if a new one was set with set_password.
167
  if ( $customer->get_password() ) {
168
  wp_update_user( array( 'ID' => $customer->get_id(), 'user_pass' => $customer->get_password() ) );
101
 
102
  $customer->set_id( $id );
103
  $this->update_user_meta( $customer );
104
+ wp_update_user( apply_filters( 'woocommerce_update_customer_args', array(
105
  'ID' => $customer->get_id(),
106
  'role' => $customer->get_role(),
107
  'display_name' => $customer->get_first_name() . ' ' . $customer->get_last_name(),
108
+ ), $customer ) );
109
  $wp_user = new WP_User( $customer->get_id() );
110
  $customer->set_date_created( $wp_user->user_registered );
111
  $customer->set_date_modified( get_user_meta( $customer->get_id(), 'last_update', true ) );
136
 
137
  $customer_id = $customer->get_id();
138
  // Load meta but exclude deprecated props.
139
+ $user_meta = array_diff_key( array_map( 'wc_flatten_meta_callback', get_user_meta( $customer_id ) ), array_flip( array( 'country', 'state', 'postcode', 'city', 'address', 'address_2', 'default', 'location' ) ) );
140
  $customer->set_props( $user_meta );
141
  $customer->set_props( array(
142
  'is_paying_customer' => get_user_meta( $customer_id, 'paying_customer', true ),
158
  * @param WC_Customer
159
  */
160
  public function update( &$customer ) {
161
+ wp_update_user( apply_filters( 'woocommerce_update_customer_args', array(
162
  'ID' => $customer->get_id(),
163
  'user_email' => $customer->get_email(),
164
  'display_name' => $customer->get_first_name() . ' ' . $customer->get_last_name(),
165
+ ), $customer ) );
166
  // Only update password if a new one was set with set_password.
167
  if ( $customer->get_password() ) {
168
  wp_update_user( array( 'ID' => $customer->get_id(), 'user_pass' => $customer->get_password() ) );
includes/data-stores/class-wc-customer-download-data-store.php CHANGED
@@ -79,7 +79,18 @@ class WC_Customer_Download_Data_Store implements WC_Customer_Download_Data_Store
79
  throw new Exception( __( 'Invalid download.', 'woocommerce' ) );
80
  }
81
 
82
- $download->set_props( $raw_download );
 
 
 
 
 
 
 
 
 
 
 
83
  $download->set_object_read( true );
84
  }
85
 
79
  throw new Exception( __( 'Invalid download.', 'woocommerce' ) );
80
  }
81
 
82
+ $download->set_props( array(
83
+ 'download_id' => $raw_download->download_id,
84
+ 'product_id' => $raw_download->product_id,
85
+ 'user_id' => $raw_download->user_id,
86
+ 'user_email' => $raw_download->user_email,
87
+ 'order_id' => $raw_download->order_id,
88
+ 'order_key' => $raw_download->order_key,
89
+ 'downloads_remaining' => $raw_download->downloads_remaining,
90
+ 'access_granted' => strtotime( $raw_download->access_granted ),
91
+ 'download_count' => $raw_download->download_count,
92
+ 'access_expires' => is_null( $raw_download->access_expires ) ? null : strtotime( $raw_download->access_expires ),
93
+ ) );
94
  $download->set_object_read( true );
95
  }
96
 
includes/data-stores/class-wc-product-data-store-cpt.php CHANGED
@@ -353,9 +353,18 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
353
  protected function read_attributes( &$product ) {
354
  $meta_values = get_post_meta( $product->get_id(), '_product_attributes', true );
355
 
356
- if ( $meta_values ) {
357
  $attributes = array();
358
  foreach ( $meta_values as $meta_value ) {
 
 
 
 
 
 
 
 
 
359
  if ( ! empty( $meta_value['is_taxonomy'] ) ) {
360
  if ( ! taxonomy_exists( $meta_value['name'] ) ) {
361
  continue;
@@ -364,6 +373,7 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
364
  } else {
365
  $options = wc_get_text_attributes( $meta_value['value'] );
366
  }
 
367
  $attribute = new WC_Product_Attribute();
368
  $attribute->set_id( wc_attribute_taxonomy_id_by_name( $meta_value['name'] ) );
369
  $attribute->set_name( $meta_value['name'] );
@@ -389,6 +399,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
389
  if ( $meta_values ) {
390
  $downloads = array();
391
  foreach ( $meta_values as $key => $value ) {
 
 
 
392
  $download = new WC_Product_Download();
393
  $download->set_id( $key );
394
  $download->set_name( $value['name'] ? $value['name'] : wc_get_filename_from_url( $value['file'] ) );
353
  protected function read_attributes( &$product ) {
354
  $meta_values = get_post_meta( $product->get_id(), '_product_attributes', true );
355
 
356
+ if ( ! empty( $meta_values ) && is_array( $meta_values ) ) {
357
  $attributes = array();
358
  foreach ( $meta_values as $meta_value ) {
359
+ $meta_value = array_merge( array(
360
+ 'name' => '',
361
+ 'value' => '',
362
+ 'position' => 0,
363
+ 'is_visible' => 0,
364
+ 'is_variation' => 0,
365
+ 'is_taxonomy' => 0,
366
+ ), (array) $meta_value );
367
+
368
  if ( ! empty( $meta_value['is_taxonomy'] ) ) {
369
  if ( ! taxonomy_exists( $meta_value['name'] ) ) {
370
  continue;
373
  } else {
374
  $options = wc_get_text_attributes( $meta_value['value'] );
375
  }
376
+
377
  $attribute = new WC_Product_Attribute();
378
  $attribute->set_id( wc_attribute_taxonomy_id_by_name( $meta_value['name'] ) );
379
  $attribute->set_name( $meta_value['name'] );
399
  if ( $meta_values ) {
400
  $downloads = array();
401
  foreach ( $meta_values as $key => $value ) {
402
+ if ( ! isset( $value['name'], $value['file'] ) ) {
403
+ continue;
404
+ }
405
  $download = new WC_Product_Download();
406
  $download->set_id( $key );
407
  $download->set_name( $value['name'] ? $value['name'] : wc_get_filename_from_url( $value['file'] ) );
includes/data-stores/class-wc-product-variation-data-store-cpt.php CHANGED
@@ -179,40 +179,34 @@ class WC_Product_Variation_Data_Store_CPT extends WC_Product_Data_Store_CPT impl
179
 
180
  /**
181
  * Generates a title with attribute information for a variation.
182
- * Products with 2+ attributes with one-word values will get a title of the form "Name - Attribute: Value, Attribute: Value"
183
- * All other products will get a title of the form "Name - Value, Value"
184
  *
185
  * @since 3.0.0
186
  * @param WC_Product
187
  * @return string
188
  */
189
  protected function generate_product_title( $product ) {
190
- $include_attribute_names = false;
191
  $attributes = (array) $product->get_attributes();
192
 
193
- // Determine whether to include attribute names through counting the number of one-word attribute values.
194
- $one_word_attributes = 0;
195
- foreach ( $attributes as $name => $value ) {
196
- if ( false === strpos( $value, '-' ) ) {
197
- ++$one_word_attributes;
198
- }
199
- if ( $one_word_attributes > 1 ) {
200
- $include_attribute_names = true;
201
- break;
 
202
  }
203
  }
204
 
205
- $include_attribute_names = apply_filters( 'woocommerce_product_variation_title_include_attribute_names', $include_attribute_names, $product );
206
- $title_base_text = get_post_field( 'post_title', $product->get_parent_id() );
207
- $title_attributes_text = wc_get_formatted_variation( $product, true, $include_attribute_names );
208
- $separator = ! empty( $title_attributes_text ) ? ' &ndash; ' : '';
209
 
210
- return apply_filters( 'woocommerce_product_variation_title',
211
- $title_base_text . $separator . $title_attributes_text,
212
- $product,
213
- $title_base_text,
214
- $title_attributes_text
215
- );
216
  }
217
 
218
  /**
@@ -256,7 +250,7 @@ class WC_Product_Variation_Data_Store_CPT extends WC_Product_Data_Store_CPT impl
256
  'length' => get_post_meta( $id, '_length', true ),
257
  'width' => get_post_meta( $id, '_width', true ),
258
  'height' => get_post_meta( $id, '_height', true ),
259
- 'tax_class' => get_post_meta( $id, '_tax_class', true ),
260
  ) );
261
 
262
  if ( $product->is_on_sale( 'edit' ) ) {
179
 
180
  /**
181
  * Generates a title with attribute information for a variation.
182
+ * Products will get a title of the form "Name - Value, Value" or just "Name".
 
183
  *
184
  * @since 3.0.0
185
  * @param WC_Product
186
  * @return string
187
  */
188
  protected function generate_product_title( $product ) {
 
189
  $attributes = (array) $product->get_attributes();
190
 
191
+ // Don't include attributes if the product has 3+ attributes.
192
+ $should_include_attributes = count( $attributes ) < 3;
193
+
194
+ // Don't include attributes if an attribute name has 2+ words.
195
+ if ( $should_include_attributes ) {
196
+ foreach ( $attributes as $name => $value ) {
197
+ if ( false !== strpos( $name, '-' ) ) {
198
+ $should_include_attributes = false;
199
+ break;
200
+ }
201
  }
202
  }
203
 
204
+ $should_include_attributes = apply_filters( 'woocommerce_product_variation_title_include_attributes', $should_include_attributes, $product );
205
+ $separator = apply_filters( 'woocommerce_product_variation_title_attributes_separator', ' - ', $product );
206
+ $title_base = get_post_field( 'post_title', $product->get_parent_id() );
207
+ $title_suffix = $should_include_attributes ? wc_get_formatted_variation( $product, true, false ) : '';
208
 
209
+ return apply_filters( 'woocommerce_product_variation_title', rtrim( $title_base . $separator . $title_suffix, $separator ), $product, $title_base, $title_suffix );
 
 
 
 
 
210
  }
211
 
212
  /**
250
  'length' => get_post_meta( $id, '_length', true ),
251
  'width' => get_post_meta( $id, '_width', true ),
252
  'height' => get_post_meta( $id, '_height', true ),
253
+ 'tax_class' => ! metadata_exists( 'post', $id, '_tax_class' ) ? 'parent' : get_post_meta( $id, '_tax_class', true ),
254
  ) );
255
 
256
  if ( $product->is_on_sale( 'edit' ) ) {
includes/gateways/paypal/includes/class-wc-gateway-paypal-response.php CHANGED
@@ -66,7 +66,7 @@ abstract class WC_Gateway_Paypal_Response {
66
  */
67
  protected function payment_on_hold( $order, $reason = '' ) {
68
  $order->update_status( 'on-hold', $reason );
69
- wc_reduce_stock_levels( $order_id );
70
  WC()->cart->empty_cart();
71
  }
72
  }
66
  */
67
  protected function payment_on_hold( $order, $reason = '' ) {
68
  $order->update_status( 'on-hold', $reason );
69
+ wc_reduce_stock_levels( $order->get_id() );
70
  WC()->cart->empty_cart();
71
  }
72
  }
includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php CHANGED
@@ -213,7 +213,7 @@ class WC_Addons_Gateway_Simplify_Commerce extends WC_Gateway_Simplify_Commerce {
213
  }
214
 
215
  // Reduce stock levels
216
- wc_reduce_stock_levels( $order_id );
217
 
218
  // Remove cart
219
  WC()->cart->empty_cart();
213
  }
214
 
215
  // Reduce stock levels
216
+ wc_reduce_stock_levels( $order->get_id() );
217
 
218
  // Remove cart
219
  WC()->cart->empty_cart();
includes/shortcodes/class-wc-shortcode-checkout.php CHANGED
@@ -191,7 +191,7 @@ class WC_Shortcode_Checkout {
191
 
192
  if ( $order_id > 0 ) {
193
  $order = wc_get_order( $order_id );
194
- if ( $order->get_order_key() != $order_key ) {
195
  $order = false;
196
  }
197
  }
191
 
192
  if ( $order_id > 0 ) {
193
  $order = wc_get_order( $order_id );
194
+ if ( ! $order || $order->get_order_key() !== $order_key ) {
195
  $order = false;
196
  }
197
  }
includes/shortcodes/class-wc-shortcode-my-account.php CHANGED
@@ -252,7 +252,7 @@ class WC_Shortcode_My_Account {
252
  do_action( 'lostpassword_post', $errors );
253
 
254
  if ( $errors->get_error_code() ) {
255
- wc_add_notice( $allow->get_error_message(), 'error' );
256
  return false;
257
  }
258
 
252
  do_action( 'lostpassword_post', $errors );
253
 
254
  if ( $errors->get_error_code() ) {
255
+ wc_add_notice( $errors->get_error_message(), 'error' );
256
  return false;
257
  }
258
 
includes/wc-attribute-functions.php CHANGED
@@ -321,3 +321,15 @@ function wc_attributes_array_filter_visible( $attribute ) {
321
  function wc_attributes_array_filter_variation( $attribute ) {
322
  return $attribute && is_a( $attribute, 'WC_Product_Attribute' ) && $attribute->get_variation();
323
  }
 
 
 
 
 
 
 
 
 
 
 
 
321
  function wc_attributes_array_filter_variation( $attribute ) {
322
  return $attribute && is_a( $attribute, 'WC_Product_Attribute' ) && $attribute->get_variation();
323
  }
324
+
325
+ /**
326
+ * Check if an attribute is included in the attributes area of a variation name.
327
+ *
328
+ * @since 3.0.2
329
+ * @param string $attribute Attribute value to check for
330
+ * @param string $name Product name to check in
331
+ * @return bool
332
+ */
333
+ function wc_is_attribute_in_product_name( $attribute, $name ) {
334
+ return stristr( $name, ' ' . $attribute . ',' ) || 0 === stripos( strrev( $name ), strrev( ' ' . $attribute ) );
335
+ }
includes/wc-cart-functions.php CHANGED
@@ -166,7 +166,7 @@ function wc_clear_cart_after_payment() {
166
  if ( $order_id > 0 ) {
167
  $order = wc_get_order( $order_id );
168
 
169
- if ( $order->get_order_key() === $order_key ) {
170
  WC()->cart->empty_cart();
171
  }
172
  }
166
  if ( $order_id > 0 ) {
167
  $order = wc_get_order( $order_id );
168
 
169
+ if ( $order && $order->get_order_key() === $order_key ) {
170
  WC()->cart->empty_cart();
171
  }
172
  }
includes/wc-core-functions.php CHANGED
@@ -51,6 +51,7 @@ add_filter( 'woocommerce_short_description', 'wpautop' );
51
  add_filter( 'woocommerce_short_description', 'shortcode_unautop' );
52
  add_filter( 'woocommerce_short_description', 'prepend_attachment' );
53
  add_filter( 'woocommerce_short_description', 'do_shortcode', 11 ); // AFTER wpautop()
 
54
 
55
  /**
56
  * Define a constant if it is not already defined.
51
  add_filter( 'woocommerce_short_description', 'shortcode_unautop' );
52
  add_filter( 'woocommerce_short_description', 'prepend_attachment' );
53
  add_filter( 'woocommerce_short_description', 'do_shortcode', 11 ); // AFTER wpautop()
54
+ add_filter( 'woocommerce_short_description', 'wc_format_product_short_description', 9999999 );
55
 
56
  /**
57
  * Define a constant if it is not already defined.
includes/wc-formatting-functions.php CHANGED
@@ -847,7 +847,7 @@ function wc_trim_string( $string, $chars = 200, $suffix = '...' ) {
847
  * @return string
848
  */
849
  function wc_format_content( $raw_string ) {
850
- return apply_filters( 'woocommerce_format_content', wpautop( do_shortcode( wp_kses_post( $raw_string ) ) ), $raw_string );
851
  }
852
 
853
  /**
@@ -869,8 +869,6 @@ function wc_format_product_short_description( $content ) {
869
  return $content;
870
  }
871
 
872
- add_filter( 'woocommerce_short_description', 'wc_format_product_short_description', 9999999 );
873
-
874
  /**
875
  * Formats curency symbols when saved in settings.
876
  * @param string $value
847
  * @return string
848
  */
849
  function wc_format_content( $raw_string ) {
850
+ return apply_filters( 'woocommerce_format_content', apply_filters( 'woocommerce_short_description', $raw_string ), $raw_string );
851
  }
852
 
853
  /**
869
  return $content;
870
  }
871
 
 
 
872
  /**
873
  * Formats curency symbols when saved in settings.
874
  * @param string $value
includes/wc-product-functions.php CHANGED
@@ -703,6 +703,12 @@ function wc_get_product_attachment_props( $attachment_id = null, $product = fals
703
  $props['full_src_w'] = $src[1];
704
  $props['full_src_h'] = $src[2];
705
 
 
 
 
 
 
 
706
  // Image source.
707
  $src = wp_get_attachment_image_src( $attachment_id, 'shop_single' );
708
  $props['src'] = $src[0];
703
  $props['full_src_w'] = $src[1];
704
  $props['full_src_h'] = $src[2];
705
 
706
+ // Thumbnail version.
707
+ $src = wp_get_attachment_image_src( $attachment_id, 'shop_thumbnail' );
708
+ $props['thumb_src'] = $src[0];
709
+ $props['thumb_src_w'] = $src[1];
710
+ $props['thumb_src_h'] = $src[2];
711
+
712
  // Image source.
713
  $src = wp_get_attachment_image_src( $attachment_id, 'shop_single' );
714
  $props['src'] = $src[0];
includes/wc-template-functions.php CHANGED
@@ -577,7 +577,7 @@ if ( ! function_exists( 'woocommerce_product_loop_end' ) ) {
577
  if ( ! function_exists( 'woocommerce_template_loop_product_title' ) ) {
578
 
579
  /**
580
- * Show the product title in the product loop. By default this is an H3.
581
  */
582
  function woocommerce_template_loop_product_title() {
583
  echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2>';
@@ -1269,6 +1269,10 @@ if ( ! function_exists( 'woocommerce_related_products' ) ) {
1269
  function woocommerce_related_products( $args = array() ) {
1270
  global $product, $woocommerce_loop;
1271
 
 
 
 
 
1272
  $defaults = array(
1273
  'posts_per_page' => 2,
1274
  'columns' => 2,
@@ -1278,10 +1282,6 @@ if ( ! function_exists( 'woocommerce_related_products' ) ) {
1278
 
1279
  $args = wp_parse_args( $args, $defaults );
1280
 
1281
- if ( ! $product ) {
1282
- return;
1283
- }
1284
-
1285
  // Get visble related products then sort them at random.
1286
  $args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
1287
 
@@ -1309,6 +1309,10 @@ if ( ! function_exists( 'woocommerce_upsell_display' ) ) {
1309
  function woocommerce_upsell_display( $limit = '-1', $columns = 4, $orderby = 'rand', $order = 'desc' ) {
1310
  global $product, $woocommerce_loop;
1311
 
 
 
 
 
1312
  // Handle the legacy filter which controlled posts per page etc.
1313
  $args = apply_filters( 'woocommerce_upsell_display_args', array(
1314
  'posts_per_page' => $limit,
@@ -1383,7 +1387,7 @@ if ( ! function_exists( 'woocommerce_cross_sell_display' ) ) {
1383
  // Get visble cross sells then sort them at random.
1384
  $cross_sells = array_filter( array_map( 'wc_get_product', WC()->cart->get_cross_sells() ), 'wc_products_array_filter_visible' );
1385
  $woocommerce_loop['name'] = 'cross-sells';
1386
- $woocommerce_loop['columns'] = $columns;
1387
 
1388
  // Handle orderby and limit results.
1389
  $orderby = apply_filters( 'woocommerce_cross_sells_orderby', $orderby );
577
  if ( ! function_exists( 'woocommerce_template_loop_product_title' ) ) {
578
 
579
  /**
580
+ * Show the product title in the product loop. By default this is an H2.
581
  */
582
  function woocommerce_template_loop_product_title() {
583
  echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2>';
1269
  function woocommerce_related_products( $args = array() ) {
1270
  global $product, $woocommerce_loop;
1271
 
1272
+ if ( ! $product ) {
1273
+ return;
1274
+ }
1275
+
1276
  $defaults = array(
1277
  'posts_per_page' => 2,
1278
  'columns' => 2,
1282
 
1283
  $args = wp_parse_args( $args, $defaults );
1284
 
 
 
 
 
1285
  // Get visble related products then sort them at random.
1286
  $args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
1287
 
1309
  function woocommerce_upsell_display( $limit = '-1', $columns = 4, $orderby = 'rand', $order = 'desc' ) {
1310
  global $product, $woocommerce_loop;
1311
 
1312
+ if ( ! $product ) {
1313
+ return;
1314
+ }
1315
+
1316
  // Handle the legacy filter which controlled posts per page etc.
1317
  $args = apply_filters( 'woocommerce_upsell_display_args', array(
1318
  'posts_per_page' => $limit,
1387
  // Get visble cross sells then sort them at random.
1388
  $cross_sells = array_filter( array_map( 'wc_get_product', WC()->cart->get_cross_sells() ), 'wc_products_array_filter_visible' );
1389
  $woocommerce_loop['name'] = 'cross-sells';
1390
+ $woocommerce_loop['columns'] = apply_filters( 'woocommerce_cross_sells_columns', $columns );
1391
 
1392
  // Handle orderby and limit results.
1393
  $orderby = apply_filters( 'woocommerce_cross_sells_orderby', $orderby );
includes/wc-term-functions.php CHANGED
@@ -151,10 +151,13 @@ function wc_get_product_terms( $product_id, $taxonomy, $args = array() ) {
151
  * @return int
152
  */
153
  function _wc_get_product_terms_name_num_usort_callback( $a, $b ) {
154
- if ( $a->name + 0 === $b->name + 0 ) {
 
 
 
155
  return 0;
156
  }
157
- return ( $a->name + 0 < $b->name + 0 ) ? -1 : 1;
158
  }
159
 
160
  /**
151
  * @return int
152
  */
153
  function _wc_get_product_terms_name_num_usort_callback( $a, $b ) {
154
+ $a_name = (int) $a->name;
155
+ $b_name = (int) $b->name;
156
+
157
+ if ( $a_name === $b_name ) {
158
  return 0;
159
  }
160
+ return ( $a_name < $b_name ) ? -1 : 1;
161
  }
162
 
163
  /**
includes/wc-user-functions.php CHANGED
@@ -271,7 +271,8 @@ function wc_customer_has_capability( $allcaps, $caps, $args ) {
271
  }
272
 
273
  $order = wc_get_order( $order_id );
274
- if ( $user_id == $order->get_user_id() || ! $order->get_user_id() ) {
 
275
  $allcaps['pay_for_order'] = true;
276
  }
277
  break;
@@ -279,7 +280,7 @@ function wc_customer_has_capability( $allcaps, $caps, $args ) {
279
  $user_id = $args[1];
280
  $order = wc_get_order( $args[2] );
281
 
282
- if ( $user_id == $order->get_user_id() ) {
283
  $allcaps['order_again'] = true;
284
  }
285
  break;
@@ -287,7 +288,7 @@ function wc_customer_has_capability( $allcaps, $caps, $args ) {
287
  $user_id = $args[1];
288
  $order = wc_get_order( $args[2] );
289
 
290
- if ( $user_id == $order->get_user_id() ) {
291
  $allcaps['cancel_order'] = true;
292
  }
293
  break;
@@ -295,7 +296,7 @@ function wc_customer_has_capability( $allcaps, $caps, $args ) {
295
  $user_id = $args[1];
296
  $download = $args[2];
297
 
298
- if ( $user_id == $download->get_user_id() ) {
299
  $allcaps['download_file'] = true;
300
  }
301
  break;
271
  }
272
 
273
  $order = wc_get_order( $order_id );
274
+
275
+ if ( $order && ( $user_id == $order->get_user_id() || ! $order->get_user_id() ) ) {
276
  $allcaps['pay_for_order'] = true;
277
  }
278
  break;
280
  $user_id = $args[1];
281
  $order = wc_get_order( $args[2] );
282
 
283
+ if ( $order && $user_id == $order->get_user_id() ) {
284
  $allcaps['order_again'] = true;
285
  }
286
  break;
288
  $user_id = $args[1];
289
  $order = wc_get_order( $args[2] );
290
 
291
+ if ( $order && $user_id == $order->get_user_id() ) {
292
  $allcaps['cancel_order'] = true;
293
  }
294
  break;
296
  $user_id = $args[1];
297
  $download = $args[2];
298
 
299
+ if ( $download && $user_id == $download->get_user_id() ) {
300
  $allcaps['download_file'] = true;
301
  }
302
  break;
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: automattic, mikejolley, jameskoster, claudiosanches, jshreve, code
3
  Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront, woo commerce
4
  Requires at least: 4.4
5
  Tested up to: 4.7
6
- Stable tag: 3.0.1
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -161,6 +161,39 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woocommerce/wo
161
 
162
  == Changelog ==
163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  = 3.0.1 - 2017-04-06 =
165
  * Fix - Show catalog hidden products within grouped products.
166
  * Fix - Fade in the gallery in if no images are set or it's custom.
@@ -275,5 +308,5 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woocommerce/wo
275
 
276
  == Upgrade Notice ==
277
 
278
- = 3.0.1 =
279
- 3.0 is a major update. It is important that you make backups and ensure themes and extensions are 3.0 compatible before upgrading.
3
  Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront, woo commerce
4
  Requires at least: 4.4
5
  Tested up to: 4.7
6
+ Stable tag: 3.0.2
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
9
 
161
 
162
  == Changelog ==
163
 
164
+ = 3.0.2 - 2017-04-12 =
165
+ * Fix - Removed required states for GP, GF, KW, LB, MQ, RE and YT countries.
166
+ * Fix - Made cache in the [products] shortcode respect filters from plugins.
167
+ * Fix - Added missing `woocommerce_cross_sells_columns` filter.
168
+ * Fix - Fixed shortcode rendering on the shop page.
169
+ * Fix - Fixed incorrect sale dates when bulk editing variations.
170
+ * Fix - Fixed calls to wc_reduce_stock_levels in PayPal and Simplify gateways.
171
+ * Fix - Exclude "location" meta when reading customer meta data.
172
+ * Fix - Updated `emails/email-addresses.php`, `emails/email-order-details.php`, `content-single-product.php`, `checkout/form-shipping.php`, `myaccount/form-add-payment-method.php`, `myaccount/form-edit-address.php`, `myaccount/form-lost-password.php`, `myaccount/form-reset-password.php`, `myaccount/orders.php` and `myaccount/view-order.php` template version to 3.0.0 since they had changes since 2.6.
173
+ * Fix - Fixed default behavior of variation tax classes when originally set to "parent".
174
+ * Fix - When duplicating products, do not copy slug, append "(Copy)" to the product name, correctly copy all meta data, and prevent children of grouped products being duplicated too.
175
+ * Fix - Removed duplicated items when outputting cross sells on the cart page.
176
+ * Fix - Fixed output of default "add to cart" text of external products in loops.
177
+ * Fix - Fixed backwards compatibility of guest checkout rules when being altered by plugins directly.
178
+ * Fix - Use correct thumbnail sizes for variation images in the new gallery.
179
+ * Fix - Fixed captions on thumbnails and main image in the new gallery.
180
+ * Fix - Trigger wc_fragments_loaded after add to cart fragment refresh.
181
+ * Fix - Download permissions; Convert dates to timestamp on read so UTC is preserved.
182
+ * Fix - Fixed notices under PHP 7.1 when sorting products by name (numeric).
183
+ * Fix - Added additional checks to ensure objects are read before using class methods to avoid errors.
184
+ * Fix - Removed legacy suggest.js code which was causing JS error on bulk edit.
185
+ * Fix - Fixed warnings on the "Lost password" page and when loading a product with invalid attributes.
186
+ * Fix - Made background emailer update the queue after a successful send so duplicate mails are less likely.
187
+ * Fix - Typo in flexslider_enabled option in new gallery script.
188
+ * Fix - woocommerce_notify_low_stock and woocommerce_notify_no_stock options had no effect.
189
+ * Tweak - For downloadable files, only validate file type when dealing with relative paths.
190
+ * Tweak - Improved automatic variation name generation.
191
+ * Dev - Added product visibility terms to system status report to help debug.
192
+ * Dev - Introduced `woocommerce_admin_order_date_format` filter to replace missing `post_date_column_time`.
193
+ * Dev - Introduced `woocommerce_update_customer_args` filter to prevent updates to user objects if needed.
194
+ * REST API - Fixed saving of variations in legacy REST API v3.
195
+ * REST API - Fixed backwards compatibility of line_items meta in legacy REST API.
196
+
197
  = 3.0.1 - 2017-04-06 =
198
  * Fix - Show catalog hidden products within grouped products.
199
  * Fix - Fade in the gallery in if no images are set or it's custom.
308
 
309
  == Upgrade Notice ==
310
 
311
+ = 3.0.2 =
312
+ 3.0 is a major update. [Make a full site backup](https://docs.woocommerce.com/document/backup-wordpress-content), update your theme and extensions, and [review update best practices](https://docs.woocommerce.com/document/how-to-update-your-site) before upgrading.
templates/checkout/form-shipping.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 2.2.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/content-single-product.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 1.6.4
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/emails/email-addresses.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates/Emails
16
- * @version 2.4.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates/Emails
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/emails/email-order-details.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates/Emails
16
- * @version 2.5.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates/Emails
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/form-add-payment-method.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 2.6.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/form-edit-address.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 2.6.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/form-lost-password.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 2.6.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/form-reset-password.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 2.6.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/orders.php CHANGED
@@ -15,7 +15,7 @@
15
  * @see https://docs.woocommerce.com/document/template-structure/
16
  * @author WooThemes
17
  * @package WooCommerce/Templates
18
- * @version 2.6.0
19
  */
20
 
21
  if ( ! defined( 'ABSPATH' ) ) {
15
  * @see https://docs.woocommerce.com/document/template-structure/
16
  * @author WooThemes
17
  * @package WooCommerce/Templates
18
+ * @version 3.0.0
19
  */
20
 
21
  if ( ! defined( 'ABSPATH' ) ) {
templates/myaccount/view-order.php CHANGED
@@ -15,7 +15,7 @@
15
  * @see https://docs.woocommerce.com/document/template-structure/
16
  * @author WooThemes
17
  * @package WooCommerce/Templates
18
- * @version 2.6.0
19
  */
20
 
21
  if ( ! defined( 'ABSPATH' ) ) {
15
  * @see https://docs.woocommerce.com/document/template-structure/
16
  * @author WooThemes
17
  * @package WooCommerce/Templates
18
+ * @version 3.0.0
19
  */
20
 
21
  if ( ! defined( 'ABSPATH' ) ) {
templates/single-product/product-image.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
@@ -24,8 +24,7 @@ global $post, $product;
24
  $columns = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
25
  $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
26
  $full_size_image = wp_get_attachment_image_src( $post_thumbnail_id, 'full' );
27
- $thumbnail_post = get_post( $post_thumbnail_id );
28
- $image_title = $thumbnail_post->post_content;
29
  $placeholder = has_post_thumbnail() ? 'with-images' : 'without-images';
30
  $wrapper_classes = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
31
  'woocommerce-product-gallery',
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.2
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
24
  $columns = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
25
  $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
26
  $full_size_image = wp_get_attachment_image_src( $post_thumbnail_id, 'full' );
27
+ $image_title = get_post_field( 'post_excerpt', $post_thumbnail_id );
 
28
  $placeholder = has_post_thumbnail() ? 'with-images' : 'without-images';
29
  $wrapper_classes = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
30
  'woocommerce-product-gallery',
templates/single-product/product-thumbnails.php CHANGED
@@ -13,7 +13,7 @@
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
- * @version 3.0.0
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
@@ -26,10 +26,9 @@ $attachment_ids = $product->get_gallery_image_ids();
26
 
27
  if ( $attachment_ids && has_post_thumbnail() ) {
28
  foreach ( $attachment_ids as $attachment_id ) {
29
- $full_size_image = wp_get_attachment_image_src( $attachment_id, 'full' );
30
- $thumbnail = wp_get_attachment_image_src( $attachment_id, 'shop_thumbnail' );
31
- $thumbnail_post = get_post( $attachment_id );
32
- $image_title = $thumbnail_post->post_content;
33
 
34
  $attributes = array(
35
  'title' => $image_title,
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @author WooThemes
15
  * @package WooCommerce/Templates
16
+ * @version 3.0.2
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
26
 
27
  if ( $attachment_ids && has_post_thumbnail() ) {
28
  foreach ( $attachment_ids as $attachment_id ) {
29
+ $full_size_image = wp_get_attachment_image_src( $attachment_id, 'full' );
30
+ $thumbnail = wp_get_attachment_image_src( $attachment_id, 'shop_thumbnail' );
31
+ $image_title = get_post_field( 'post_excerpt', $attachment_id );
 
32
 
33
  $attributes = array(
34
  'title' => $image_title,
woocommerce.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce
4
  * Plugin URI: https://woocommerce.com/
5
  * Description: An e-commerce toolkit that helps you sell anything. Beautifully.
6
- * Version: 3.0.1
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Requires at least: 4.4
@@ -35,7 +35,7 @@ final class WooCommerce {
35
  *
36
  * @var string
37
  */
38
- public $version = '3.0.1';
39
 
40
  /**
41
  * The single instance of the class.
3
  * Plugin Name: WooCommerce
4
  * Plugin URI: https://woocommerce.com/
5
  * Description: An e-commerce toolkit that helps you sell anything. Beautifully.
6
+ * Version: 3.0.2
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Requires at least: 4.4
35
  *
36
  * @var string
37
  */
38
+ public $version = '3.0.2';
39
 
40
  /**
41
  * The single instance of the class.