WooCommerce - Version 3.5.4

Version Description

  • 2019-01-21 =
  • Tweak - Allow limited html in woocommerce_rating_filter_count filter. #21904
  • Tweak - Remove 'on-hold' orders from admin tax reports for more logical reporting. #22419
  • Tweak - Remove payment phrases from processing emails. #22418
  • Tweak - Removed display of cost for local pickup when free. #22446
  • Fix - Unescape CSV formulas in product attributes in CSV importer/exporter. #21938
  • Fix - Remove use of non-existing WC_REST_Dev_Setting_Options_Controller class. #22121
  • Fix - Fix edge case where get_plugins would not have the custom WooCommerce plugin headers if get_plugins was called early. #21669
  • Fix - Prevent PHP warning when deprecated user meta starts with uppercase. #21943
  • Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
  • Fix - Prevent PHP errors when trying to access non-existant report tabs. #22183
  • Fix - Filter by attributes dropdown placeholder text should not be wrapped in quotes. #22185
  • Fix - Apply sale price until end of closing sale date. #22189
  • Fix - Allow empty schema again when registering a custom field for the API. #22204
  • Fix - Don't display escaped html on checkout when javascript is disabled. #22214
  • Fix - Fixed formatted address in uppercase for languages that use accents. #22096
  • Fix - Reload the cart page when the cart is empty when there is a hash in the URL. #22114
  • Fix - Do not schedule duplicate webhooks within 10 minutes of each other to maintain previous behavior. #22088
  • Fix - Return correct next scheduled date for items in queue by fixing date instantiation in WC_Action_Queue::get_next(). #22104
  • Fix - Allow products to use default low stock threshold. #22084
  • Fix - Fix 0 value attribute permalink calculation, property population in REST api. #22026
  • Fix - Ensure cache delete on coupon trash or delete. #22053
  • Fix - Ensure product parent exists before getting its image. #22074
  • Fix - Correctly use wildcard character on email restrictions on coupons. #22167
  • Fix - Avoids Warnings in Action Scheduler Library for PHP 5.2. #22160
  • Fix - Don't include product in BreadcrumbList structured data so Google will recognize stand-alone Product structured data. #22344
  • Fix - Fix Product widget showing hidden products when hide out of stock was enabled. #22230
  • Fix - Run webhook status updates through new wc_is_webhook_valid_status functions when doing API requests. #22205
  • Fix - Correct quote handling in tax class names. #22270
  • Fix - Prevent style side-effects on notices on the Extensions pages. #22330
  • Fix - Check stock status of items when 'ordering again' from the account page. #22331
  • Fix - Improve rounding when rounding at subtotal level in cart. #21217
  • Fix - Restores an opportunity to print non-cart related notices that a few extensions are relying on. #22337
  • Fix - Correct order item meta alignment in order emails when using an RTL language. #22376
  • Fix - Fix bug where product status was erroneously going to draft status in some circumstances on new published variable products. #20667
  • Fix - Load customer data for logged in users regardless of being member of sub-site to avoid errors. #22448
  • Fix - Use slug sanitization on product export category slugs for better foreign character support. #22320
  • Fix - Correct item subtotal rounding when multiple taxes are applied so it matches the cart. #22416
  • Fix - Prevent fatal errors when retrieving network orders for sites that do not have WooCommerce activated. #22439
  • Fix - Numerous bug fixes around checkout field locales on first load. #22444
  • Fix - Correct position of admin notices on my-account pages. #22445
  • Fix - Fixed padding of addresses in email template. #22466
  • Fix - Prevevent payment method descriptions sliding up/down if selected after ajax updates. #22459
  • Fix - Fixed formatted address in uppercase for languages that use accents. #22096
  • Fix - Fix product updating on import for SKUs with special characters. #22071
  • Fix - Ensure cache_delete on coupon deletion. #22053
  • Fix - Make product edit form aware publish was pressed. #20667
  • Fix - Unescape imported CSV formulas in product attributes. #21938
  • Fix - Warning when deprecated user meta starts with uppercase. #21943
  • Fix - Filter out buttons from the onRowClick event on the Orders list view page. #21966
  • Fix - Update "Filter Products by Attribute" widget when product stock quantity changes via "Quick Edit" or WC API. #22029
  • Fix - Ensure product parent exists before getting its image. #22074
  • Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
  • Fix - Strip hash from URL when reload refunds in the dashboard. #22116
  • Fix - Prevent notice when using non existing value for tabs in WooCommerce > Reports > Stock. #22183
  • Fix - Filter by attributes dropdown placeholder text wrapped in quotes. #22185
  • Fix - Fix escaped html on checkout when javascript is disabled. #22214
  • Fix - Allow empty schema again when registering a custom field for the API. #22204
  • Fix - Fix import & export of newline characters in product description fields. #22298
  • Fix - Allow quotes in tax class names. #22270
  • Fix - Sale price applies to end of closing sale date. #22189
  • Fix - Product export by unicode product categories. #22320
  • Fix - Check stock status of items when 'ordering again' from the account page. #22331
  • Fix - Issue where images offloaded to external servers caused errors and broken images when changing aspect ratios. #22461
  • Fix - Remove block comments from shop page description. #22334
  • Dev - REST API - 0 value attribute permalink calculation, property population in REST api. #22026
  • Dev - REST API - Fixed support to order results by slugs. #22168
  • Dev - REST API - Removed extra inherited filters from product endpoint in variations endpoint. #22452
Download this release

Release Info

Developer claudiulodro
Plugin Icon 128x128 WooCommerce
Version 3.5.4
Comparing to
See all releases

Code changes from version 3.5.3 to 3.5.4

Files changed (95) hide show
  1. assets/css/helper-rtl.css +1 -1
  2. assets/css/helper.css +1 -1
  3. assets/css/helper.scss +1 -1
  4. assets/js/admin/meta-boxes-order.js +1 -1
  5. assets/js/admin/meta-boxes-order.min.js +1 -1
  6. assets/js/admin/meta-boxes-product-variation.js +15 -2
  7. assets/js/admin/meta-boxes-product-variation.min.js +1 -1
  8. assets/js/admin/wc-orders.js +1 -1
  9. assets/js/admin/wc-orders.min.js +1 -1
  10. assets/js/frontend/address-i18n.js +98 -81
  11. assets/js/frontend/address-i18n.min.js +1 -1
  12. assets/js/frontend/checkout.js +4 -2
  13. assets/js/frontend/checkout.min.js +1 -1
  14. assets/js/frontend/country-select.js +57 -5
  15. assets/js/frontend/country-select.min.js +1 -1
  16. i18n/languages/woocommerce.pot +822 -844
  17. includes/abstracts/abstract-wc-product.php +21 -14
  18. includes/abstracts/abstract-wc-rest-controller.php +19 -6
  19. includes/abstracts/abstract-wc-rest-posts-controller.php +2 -0
  20. includes/admin/class-wc-admin-dashboard.php +1 -1
  21. includes/admin/class-wc-admin-reports.php +1 -1
  22. includes/admin/class-wc-admin.php +8 -0
  23. includes/admin/helper/class-wc-helper-file-headers.php +44 -0
  24. includes/admin/helper/class-wc-helper.php +0 -12
  25. includes/admin/helper/views/html-oauth-start.php +1 -1
  26. includes/admin/meta-boxes/class-wc-meta-box-order-data.php +1 -1
  27. includes/admin/meta-boxes/views/html-product-data-inventory.php +14 -13
  28. includes/admin/reports/class-wc-report-taxes-by-code.php +3 -2
  29. includes/admin/reports/class-wc-report-taxes-by-date.php +3 -2
  30. includes/api/class-wc-rest-orders-controller.php +1 -1
  31. includes/api/class-wc-rest-product-variations-controller.php +17 -60
  32. includes/api/class-wc-rest-settings-controller.php +1 -1
  33. includes/api/legacy/class-wc-rest-legacy-orders-controller.php +1 -1
  34. includes/api/legacy/v2/class-wc-api-products.php +4 -61
  35. includes/api/legacy/v2/class-wc-api-webhooks.php +1 -1
  36. includes/api/legacy/v3/class-wc-api-products.php +4 -61
  37. includes/api/legacy/v3/class-wc-api-webhooks.php +1 -1
  38. includes/api/v1/class-wc-rest-orders-controller.php +1 -1
  39. includes/api/v1/class-wc-rest-webhooks-controller.php +7 -7
  40. includes/api/v2/class-wc-rest-network-orders-v2-controller.php +16 -4
  41. includes/api/v2/class-wc-rest-orders-v2-controller.php +15 -10
  42. includes/api/v2/class-wc-rest-products-v2-controller.php +43 -22
  43. includes/api/v2/class-wc-rest-webhooks-v2-controller.php +1 -4
  44. includes/class-wc-ajax.php +3 -3
  45. includes/class-wc-cart-session.php +19 -9
  46. includes/class-wc-cart-totals.php +19 -0
  47. includes/class-wc-cart.php +11 -6
  48. includes/class-wc-countries.php +15 -13
  49. includes/class-wc-form-handler.php +7 -7
  50. includes/class-wc-frontend-scripts.php +8 -5
  51. includes/class-wc-install.php +5 -2
  52. includes/class-wc-order.php +1 -1
  53. includes/class-wc-product-variation.php +1 -1
  54. includes/class-wc-regenerate-images-request.php +14 -4
  55. includes/class-wc-structured-data.php +6 -0
  56. includes/class-wc-webhook.php +5 -2
  57. includes/class-woocommerce.php +1 -1
  58. includes/data-stores/abstract-wc-order-data-store-cpt.php +1 -1
  59. includes/data-stores/class-wc-coupon-data-store-cpt.php +2 -2
  60. includes/data-stores/class-wc-customer-data-store.php +23 -15
  61. includes/data-stores/class-wc-order-data-store-cpt.php +1 -1
  62. includes/data-stores/class-wc-product-data-store-cpt.php +30 -13
  63. includes/emails/class-wc-email-customer-processing-order.php +6 -4
  64. includes/export/abstract-wc-csv-exporter.php +1 -1
  65. includes/export/class-wc-product-csv-exporter.php +19 -1
  66. includes/gateways/paypal/includes/class-wc-gateway-paypal-response.php +1 -1
  67. includes/import/abstract-wc-product-importer.php +11 -11
  68. includes/import/class-wc-product-csv-importer.php +50 -20
  69. includes/libraries/action-scheduler/classes/ActionScheduler_Logger.php +2 -2
  70. includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php +1 -1
  71. includes/queue/class-wc-action-queue.php +1 -1
  72. includes/shortcodes/class-wc-shortcode-checkout.php +6 -3
  73. includes/shortcodes/class-wc-shortcode-my-account.php +4 -2
  74. includes/wc-cart-functions.php +7 -4
  75. includes/wc-core-functions.php +3 -0
  76. includes/wc-order-functions.php +10 -0
  77. includes/wc-product-functions.php +56 -17
  78. includes/wc-rest-functions.php +28 -50
  79. includes/wc-template-functions.php +1 -1
  80. includes/wc-template-hooks.php +2 -1
  81. includes/wc-update-functions.php +25 -0
  82. includes/wc-user-functions.php +25 -0
  83. includes/wc-webhook-functions.php +28 -8
  84. includes/widgets/class-wc-widget-layered-nav.php +1 -1
  85. includes/widgets/class-wc-widget-products.php +6 -5
  86. includes/widgets/class-wc-widget-rating-filter.php +8 -1
  87. readme.txt +70 -1
  88. templates/cart/shipping-calculator.php +2 -2
  89. templates/checkout/payment.php +6 -3
  90. templates/emails/customer-processing-order.php +2 -2
  91. templates/emails/email-addresses.php +13 -12
  92. templates/emails/email-order-items.php +8 -4
  93. templates/emails/email-styles.php +10 -9
  94. templates/emails/plain/customer-processing-order.php +2 -2
  95. woocommerce.php +1 -1
assets/css/helper-rtl.css CHANGED
@@ -1 +1 @@
1
- .wc-helper .nav-tab-wrapper{margin-bottom:22px}@media only screen and (max-width:784px){.wc-helper .nav-tab{max-width:40%;overflow:hidden;text-overflow:ellipsis}}.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{background-color:#955a89;border-width:0;box-shadow:none;border-radius:3px;color:#fff;height:auto;padding:3px 14px;text-align:center;white-space:normal!important}@media only screen and (max-width:782px){.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{line-height:2}}.wc-helper .button.button-secondary,.wc-helper .button:active.button-secondary,.wc-helper .button:focus.button-secondary,.wc-helper .button:hover.button-secondary{background-color:#e6e6e6;color:#3c3c3c;text-shadow:none}.wc-helper .button:hover{opacity:.8}.wc-helper .subscription-filter{color:#2e4453;font-size:13px;line-height:13px;margin:22px 0}.wc-helper .subscription-filter label{display:none;position:relative}.wc-helper .subscription-filter label .chevron{color:#e1e1e1;border-bottom-width:0;line-height:1;padding:0;position:absolute;top:10px;left:14px}.wc-helper .subscription-filter li{color:#0073aa;display:inline-block;padding:0 8px 0 4px;position:relative}.wc-helper .subscription-filter li::before{background-color:#979797;content:" ";position:absolute;top:0;right:0;bottom:0;width:1px}.wc-helper .subscription-filter li:first-of-type::before{display:none}.wc-helper .subscription-filter a{color:#0073aa;text-decoration:none}.wc-helper .subscription-filter a.current{color:#000;font-weight:600}.wc-helper .subscription-filter .count{color:#555d66;font-weight:400}@media only screen and (max-width:600px){.wc-helper .subscription-filter{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:14px}.wc-helper .subscription-filter label,.wc-helper .subscription-filter li{line-height:21px;padding:8px 16px;margin:0}.wc-helper .subscription-filter label:last-child,.wc-helper .subscription-filter li:last-child{border-bottom:none}.wc-helper .subscription-filter li{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter label,.wc-helper .subscription-filter span.chevron{display:block}.wc-helper .subscription-filter label{text-decoration:none}.wc-helper .subscription-filter li{display:none}.wc-helper .subscription-filter li::before{display:none}.wc-helper .subscription-filter a{cursor:pointer}.wc-helper .subscription-filter span.chevron{color:#555;opacity:.5;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .subscription-filter:focus,.wc-helper .subscription-filter:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .subscription-filter:focus label,.wc-helper .subscription-filter:hover label{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter:focus li,.wc-helper .subscription-filter:hover li{display:block}.wc-helper .subscription-filter:focus span.chevron,.wc-helper .subscription-filter:hover span.chevron{-webkit-transform:rotateX(0);transform:rotateX(0)}}.wc-helper .subscriptions-header{margin:3em 0 0;position:relative;z-index:10}.wc-helper .subscriptions-header h2{display:inline-block;line-height:25px;margin:0 0 1.5em 0}.wc-helper .button-update,.wc-helper .button-update:hover{background-color:#e6e6e6;border-radius:4px;color:#333;font-weight:800;font-size:10px;line-height:20px;margin-right:6px;opacity:.75;padding:3px 7px;text-transform:uppercase}.wc-helper .button-update .dashicons,.wc-helper .button-update:hover .dashicons{font-size:12px;height:12px;width:12px;vertical-align:text-bottom}.wc-helper .button-update:hover{opacity:1}.wc-helper .user-info{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:12px;line-height:26px;position:absolute;top:-10px;left:0;-webkit-transition:all .1s ease-in;transition:all .1s ease-in}@media only screen and (max-width:600px){.wc-helper .user-info{position:relative;width:100%}}.wc-helper .user-info p{line-height:26px;margin:0}.wc-helper .user-info:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .user-info header{color:#555;font-weight:600;padding:6px 14px;position:relative}.wc-helper .user-info header p{padding-left:26px}.wc-helper .user-info header .dashicons{opacity:.5;position:absolute;top:9px;left:14px}.wc-helper .user-info header:hover{cursor:pointer}.wc-helper .user-info section{display:none}.wc-helper .user-info section p{border-top:1px solid #e1e1e1;padding:6px 14px;text-align:center}.wc-helper .user-info section .actions{border-top:1px solid #e1e1e1;display:-webkit-box;display:flex}.wc-helper .user-info section a{color:#a26897;cursor:pointer;font-weight:600;line-height:38px;padding:0 14px;text-align:center;text-decoration:none;white-space:nowrap;width:50%}.wc-helper .user-info section a .dashicons{margin-top:-3px;vertical-align:middle}.wc-helper .user-info section a:first-child{border-left:1px solid #e1e1e1}.wc-helper .user-info section a:hover{background-color:#a26897;color:#fff}.wc-helper .user-info section .avatar{border:1px solid #ece1ea;border-radius:50%;height:auto;margin-left:6px;width:24px;vertical-align:bottom}.wc-helper .user-info:active header .dashicons,.wc-helper .user-info:focus header .dashicons,.wc-helper .user-info:hover header .dashicons{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .user-info:active section,.wc-helper .user-info:focus section,.wc-helper .user-info:hover section{display:block}.wc-helper .alternate,.wc-helper .striped>tbody>:nth-child(odd),.wc-helper ul.striped>:nth-child(odd){background-color:#fff}.wc-helper .comment-ays,.wc-helper .feature-filter,.wc-helper .imgedit-group,.wc-helper .popular-tags,.wc-helper .stuffbox,.wc-helper .widgets-holder-wrap,.wc-helper .wp-editor-container,.wc-helper p.popular-tags,.wc-helper table.widefat{padding-top:5px}.wc-helper .widefat tfoot tr td,.wc-helper .widefat tfoot tr th,.wc-helper .widefat thead tr td,.wc-helper .widefat thead tr th{color:#32373c;padding-bottom:15px;padding-top:10px}.wc-helper .widefat td{padding-bottom:15px;padding-top:15px}.wc-helper .wp-list-table{border:0;box-shadow:none;padding-top:0!important;z-index:1}@media only screen and (max-width:782px){.wc-helper .button{font-size:11px}}.wc-helper .wp-list-table__row{background-color:rgba(0,0,0,0)}.wc-helper .wp-list-table__row td{-webkit-box-align:center;align-items:center;background-color:#fff;border:0;padding:16px 22px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row td{padding:16px}}.wc-helper .wp-list-table__row td.color-bar{border-right:0}.wc-helper .wp-list-table__row.is-ext-header td{border-top:1px solid #e1e1e1}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row.is-ext-header{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;width:100%}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-details{display:block;-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-actions{display:block;-webkit-box-flex:1;flex:1;min-width:0}}.wc-helper .wp-list-table__row:last-child td{border-bottom:24px solid #f1f1f1;box-shadow:inset 0 -1px 0 #e1e1e1}.wc-helper .wp-list-table__ext-details,.wc-helper .wp-list-table__ext-status,.wc-helper .wp-list-table__licence-container{padding-left:22px;position:relative;width:100%}.wc-helper .wp-list-table__ext-details::before,.wc-helper .wp-list-table__ext-status::before,.wc-helper .wp-list-table__licence-container::before{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0!important;width:1px!important}.wc-helper .wp-list-table__ext-details{display:-webkit-box;display:flex}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-details{display:table}}.wc-helper .wp-list-table__ext-title{color:#0073aa;font-size:18px;font-weight:600;width:60%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-title{margin-bottom:12px;width:100%}}@media only screen and (max-width:320px){.wc-helper .wp-list-table__ext-title{max-width:120px}}.wc-helper .wp-list-table__ext-description{color:#333;padding-right:12px;width:40%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-description{padding-right:0;width:100%}}.wc-helper .wp-list-table__ext-status{position:relative}.wc-helper .wp-list-table__ext-status.update-available::after{background-color:#ffc322;content:" ";position:absolute;top:0;right:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status.expired::after{background-color:#b81c23;content:" ";position:absolute;top:0;right:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status .dashicons-update{color:#ffc322}.wc-helper .wp-list-table__ext-status .dashicons-info{color:#b81c23}.wc-helper .wp-list-table__ext-status p{color:#333;margin:0}.wc-helper .wp-list-table__ext-status .dashicons{margin-left:5px}.wc-helper .wp-list-table__ext-actions{min-width:150px;position:relative;width:25%;text-align:left}.wc-helper .wp-list-table__ext-actions::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0;width:1px}.wc-helper .wp-list-table__ext-licence td,.wc-helper .wp-list-table__ext-updates td{position:relative}.wc-helper .wp-list-table__ext-licence td::before,.wc-helper .wp-list-table__ext-updates td::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;right:0;left:0}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-licence td.wp-list-table__licence-container::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__licence-container::before{right:22px!important;width:auto!important}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-actions::before{left:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-licence,.wc-helper .wp-list-table__ext-updates{display:-webkit-box;display:flex}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status{-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status::before{right:0!important;width:100%!important}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions{-webkit-box-flex:1;flex:1;min-width:0}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions::before{right:0!important;left:0!important;width:100%!important}}.wc-helper .wp-list-table__licence-container{padding:0!important}.wc-helper .wp-list-table__licence-container::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0;width:1px}.wc-helper .wp-list-table__licence-form{display:-webkit-box;display:flex;padding:16px 22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form{display:block}}.wc-helper .wp-list-table__licence-form::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;left:22px;right:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form::before{left:0;right:0}}.wc-helper .wp-list-table__licence-form div{padding-left:16px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form div{padding:0}}.wc-helper .wp-list-table__licence-form p{margin:0!important}.wc-helper .wp-list-table__licence-label label{color:#23282d;font-weight:600;line-height:30px}.wc-helper .wp-list-table__licence-field input{height:32px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-field input{width:100%}}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-field{padding:8px 0 16px!important}}.wc-helper .wp-list-table__licence-actions{-webkit-box-flex:2;flex-grow:2;padding-left:0!important}.wc-helper .wp-list-table__licence-actions .button{margin-left:8px}.wc-helper .wp-list-table__licence-actions .button-secondary{float:left;margin:0 8px 0 0}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-actions{text-align:left}}.wc-helper td.color-bar{border-right:solid 4px transparent}.wc-helper td.color-bar.expired{border-right-color:#b81c23}.wc-helper td.color-bar.expiring{border-right-color:orange}.wc-helper td.color-bar.update-available{border-right-color:#8fae1b}.wc-helper td.color-bar.expiring.update-available{border-right-color:#8fae1b}.wc-helper .connect-wrapper{background-color:#fff;border:1px solid #e5e5e5;margin-bottom:25px;overflow:auto}.wc-helper .connected{display:-webkit-box;display:flex}.wc-helper .connected .user-info{display:-webkit-box;display:flex;padding:20px;width:100%;vertical-align:middle}.wc-helper .connected img{border:1px solid #e5e5e5;height:34px;width:34px}.wc-helper .connected .buttons{padding:20px;white-space:nowrap}.wc-helper .connected p{-webkit-box-flex:2;flex:2;margin:10px 20px 0 0}.wc-helper .connected .chevron{display:none}.wc-helper .connected .chevron:hover{color:#955a89;cursor:pointer}@media only screen and (max-width:784px){.wc-helper .connected{display:block}.wc-helper .connected strong{display:block;overflow:hidden;text-overflow:ellipsis}.wc-helper .connected p{margin:0;overflow:hidden;text-overflow:ellipsis;width:80%}.wc-helper .connected .user-info{padding-left:0;width:auto}.wc-helper .connected .avatar{margin-left:12px}.wc-helper .connected .chevron{color:#e1e1e1;display:block;margin:10px;-webkit-transform:rotateX(0);transform:rotateX(0)}.wc-helper .connected .buttons{display:none;border-top:1px solid #e1e1e1;padding:10px 20px}.wc-helper .connected .buttons.active{display:block}}.wc-helper .start-container{background-color:#fff;border-right:4px solid #cc99c2;padding:45px 30px 20px 20px;position:relative;overflow:hidden}.wc-helper .start-container h2,.wc-helper .start-container p{max-width:800px}.wc-helper .start-container::before{color:#eee2ec;content:"\e01C";display:block;font-family:WooCommerce;font-size:192px;line-height:1;position:absolute;top:65%;left:-3%;text-align:center;width:1em}.wc-helper .start-container h2{font-size:24px;line-height:29px;position:relative}.wc-helper .start-container p{font-size:16px;margin-bottom:30px;position:relative}.wc-helper .button-primary{height:37px;line-height:37px;min-width:124px;padding:0 13px;text-shadow:none}.wc-helper .button-primary:active,.wc-helper .button-primary:focus,.wc-helper .button-primary:hover{padding:0 13px}.form-toggle__wrapper{position:relative}.form-toggle__wrapper label{cursor:default}.form-toggle{cursor:pointer;display:block;position:absolute;top:0;bottom:-1px;right:0;left:0;text-align:right;text-indent:-100000px;z-index:2}.form-toggle:focus{box-shadow:none}.form-toggle.disabled{cursor:default}.form-toggle__switch{align-self:flex-start;background:#c8d7e1;border-radius:12px;box-sizing:border-box;display:inline-block;padding:2px;outline:0;position:relative;width:40px;height:24px;-webkit-transition:all .4s ease,box-shadow 0s;transition:all .4s ease,box-shadow 0s;vertical-align:middle}.form-toggle__switch::after,.form-toggle__switch::before{content:"";display:block;position:relative;width:20px;height:20px}.form-toggle__switch::after{border-radius:50%;background:#fff;right:0;-webkit-transition:all .2s ease;transition:all .2s ease}.form-toggle__switch::before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #955a89}.form-toggle__label{vertical-align:bottom;z-index:1}.form-toggle__label .form-toggle__label-content{color:#87a6bc;-webkit-box-flex:0;flex:0 1 100%;font-size:13px;line-height:16px;margin-right:12px;margin-left:8px;vertical-align:top;text-transform:uppercase}@media only screen and (max-width:480px){.form-toggle__label .form-toggle__label-content{display:none}}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #955a89}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #bb77ae}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a8bece}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c8d7e1}.form-toggle.active+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.active+.form-toggle__label .form-toggle__switch::after{right:8px}.form-toggle.active+.form-toggle__label:hover .form-toggle__switch{background:#bb77ae}.form-toggle.disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c8d7e1}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch::after{right:8px}
1
+ .wc-helper .nav-tab-wrapper{margin-bottom:22px}@media only screen and (max-width:784px){.wc-helper .nav-tab{max-width:40%;overflow:hidden;text-overflow:ellipsis}}.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{background-color:#955a89;border-width:0;box-shadow:none;border-radius:3px;color:#fff;height:auto;padding:3px 14px;text-align:center;white-space:normal!important}@media only screen and (max-width:782px){.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{line-height:2}}.wc-helper .button.button-secondary,.wc-helper .button:active.button-secondary,.wc-helper .button:focus.button-secondary,.wc-helper .button:hover.button-secondary{background-color:#e6e6e6;color:#3c3c3c;text-shadow:none}.wc-helper .button:hover{opacity:.8}.wc-helper .subscription-filter{color:#2e4453;font-size:13px;line-height:13px;margin:22px 0}.wc-helper .subscription-filter label{display:none;position:relative}.wc-helper .subscription-filter label .chevron{color:#e1e1e1;border-bottom-width:0;line-height:1;padding:0;position:absolute;top:10px;left:14px}.wc-helper .subscription-filter li{color:#0073aa;display:inline-block;padding:0 8px 0 4px;position:relative}.wc-helper .subscription-filter li::before{background-color:#979797;content:" ";position:absolute;top:0;right:0;bottom:0;width:1px}.wc-helper .subscription-filter li:first-of-type::before{display:none}.wc-helper .subscription-filter a{color:#0073aa;text-decoration:none}.wc-helper .subscription-filter a.current{color:#000;font-weight:600}.wc-helper .subscription-filter .count{color:#555d66;font-weight:400}@media only screen and (max-width:600px){.wc-helper .subscription-filter{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:14px}.wc-helper .subscription-filter label,.wc-helper .subscription-filter li{line-height:21px;padding:8px 16px;margin:0}.wc-helper .subscription-filter label:last-child,.wc-helper .subscription-filter li:last-child{border-bottom:none}.wc-helper .subscription-filter li{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter label,.wc-helper .subscription-filter span.chevron{display:block}.wc-helper .subscription-filter label{text-decoration:none}.wc-helper .subscription-filter li{display:none}.wc-helper .subscription-filter li::before{display:none}.wc-helper .subscription-filter a{cursor:pointer}.wc-helper .subscription-filter span.chevron{color:#555;opacity:.5;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .subscription-filter:focus,.wc-helper .subscription-filter:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .subscription-filter:focus label,.wc-helper .subscription-filter:hover label{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter:focus li,.wc-helper .subscription-filter:hover li{display:block}.wc-helper .subscription-filter:focus span.chevron,.wc-helper .subscription-filter:hover span.chevron{-webkit-transform:rotateX(0);transform:rotateX(0)}}.wc-helper .subscriptions-header{margin:3em 0 0;position:relative;z-index:10}.wc-helper .subscriptions-header h2{display:inline-block;line-height:25px;margin:0 0 1.5em 0}.wc-helper .button-update,.wc-helper .button-update:hover{background-color:#e6e6e6;border-radius:4px;color:#333;font-weight:800;font-size:10px;line-height:20px;margin-right:6px;opacity:.75;padding:3px 7px;text-transform:uppercase}.wc-helper .button-update .dashicons,.wc-helper .button-update:hover .dashicons{font-size:12px;height:12px;width:12px;vertical-align:text-bottom}.wc-helper .button-update:hover{opacity:1}.wc-helper .user-info{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:12px;line-height:26px;position:absolute;top:-10px;left:0;-webkit-transition:all .1s ease-in;transition:all .1s ease-in}@media only screen and (max-width:600px){.wc-helper .user-info{position:relative;width:100%}}.wc-helper .user-info p{line-height:26px;margin:0}.wc-helper .user-info:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .user-info header{color:#555;font-weight:600;padding:6px 14px;position:relative}.wc-helper .user-info header p{padding-left:26px}.wc-helper .user-info header .dashicons{opacity:.5;position:absolute;top:9px;left:14px}.wc-helper .user-info header:hover{cursor:pointer}.wc-helper .user-info section{display:none}.wc-helper .user-info section p{border-top:1px solid #e1e1e1;padding:6px 14px;text-align:center}.wc-helper .user-info section .actions{border-top:1px solid #e1e1e1;display:-webkit-box;display:flex}.wc-helper .user-info section a{color:#a26897;cursor:pointer;font-weight:600;line-height:38px;padding:0 14px;text-align:center;text-decoration:none;white-space:nowrap;width:50%}.wc-helper .user-info section a .dashicons{margin-top:-3px;vertical-align:middle}.wc-helper .user-info section a:first-child{border-left:1px solid #e1e1e1}.wc-helper .user-info section a:hover{background-color:#a26897;color:#fff}.wc-helper .user-info section .avatar{border:1px solid #ece1ea;border-radius:50%;height:auto;margin-left:6px;width:24px;vertical-align:bottom}.wc-helper .user-info:active header .dashicons,.wc-helper .user-info:focus header .dashicons,.wc-helper .user-info:hover header .dashicons{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .user-info:active section,.wc-helper .user-info:focus section,.wc-helper .user-info:hover section{display:block}.wc-helper .alternate,.wc-helper .striped>tbody>:nth-child(odd),.wc-helper ul.striped>:nth-child(odd){background-color:#fff}.wc-helper .comment-ays,.wc-helper .feature-filter,.wc-helper .imgedit-group,.wc-helper .popular-tags,.wc-helper .stuffbox,.wc-helper .widgets-holder-wrap,.wc-helper .wp-editor-container,.wc-helper p.popular-tags,.wc-helper table.widefat{padding-top:5px}.wc-helper .widefat tfoot tr td,.wc-helper .widefat tfoot tr th,.wc-helper .widefat thead tr td,.wc-helper .widefat thead tr th{color:#32373c;padding-bottom:15px;padding-top:10px}.wc-helper .widefat td{padding-bottom:15px;padding-top:15px}.wc-helper .wp-list-table{border:0;box-shadow:none;padding-top:0!important;z-index:1}@media only screen and (max-width:782px){.wc-helper .button{font-size:11px}}.wc-helper .wp-list-table__row{background-color:rgba(0,0,0,0)}.wc-helper .wp-list-table__row td{-webkit-box-align:center;align-items:center;background-color:#fff;border:0;padding:16px 22px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row td{padding:16px}}.wc-helper .wp-list-table__row td.color-bar{border-right:0}.wc-helper .wp-list-table__row.is-ext-header td{border-top:1px solid #e1e1e1}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row.is-ext-header{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;width:100%}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-details{display:block;-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-actions{display:block;-webkit-box-flex:1;flex:1;min-width:0}}.wc-helper .wp-list-table__row:last-child td{border-bottom:24px solid #f1f1f1;box-shadow:inset 0 -1px 0 #e1e1e1}.wc-helper .wp-list-table__ext-details,.wc-helper .wp-list-table__ext-status,.wc-helper .wp-list-table__licence-container{padding-left:22px;position:relative;width:100%}.wc-helper .wp-list-table__ext-details::before,.wc-helper .wp-list-table__ext-status::before,.wc-helper .wp-list-table__licence-container::before{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0!important;width:1px!important}.wc-helper .wp-list-table__ext-details{display:-webkit-box;display:flex}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-details{display:table}}.wc-helper .wp-list-table__ext-title{color:#0073aa;font-size:18px;font-weight:600;width:60%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-title{margin-bottom:12px;width:100%}}@media only screen and (max-width:320px){.wc-helper .wp-list-table__ext-title{max-width:120px}}.wc-helper .wp-list-table__ext-description{color:#333;padding-right:12px;width:40%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-description{padding-right:0;width:100%}}.wc-helper .wp-list-table__ext-status{position:relative}.wc-helper .wp-list-table__ext-status.update-available::after{background-color:#ffc322;content:" ";position:absolute;top:0;right:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status.expired::after{background-color:#b81c23;content:" ";position:absolute;top:0;right:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status .dashicons-update{color:#ffc322}.wc-helper .wp-list-table__ext-status .dashicons-info{color:#b81c23}.wc-helper .wp-list-table__ext-status p{color:#333;margin:0}.wc-helper .wp-list-table__ext-status .dashicons{margin-left:5px}.wc-helper .wp-list-table__ext-actions{min-width:150px;position:relative;width:25%;text-align:left}.wc-helper .wp-list-table__ext-actions::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0;width:1px}.wc-helper .wp-list-table__ext-licence td,.wc-helper .wp-list-table__ext-updates td{position:relative}.wc-helper .wp-list-table__ext-licence td::before,.wc-helper .wp-list-table__ext-updates td::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;right:0;left:0}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-licence td.wp-list-table__licence-container::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__licence-container::before{right:22px!important;width:auto!important}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-actions::before{left:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-licence,.wc-helper .wp-list-table__ext-updates{display:-webkit-box;display:flex}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status{-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status::before{right:0!important;width:100%!important}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions{-webkit-box-flex:1;flex:1;min-width:0}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions::before{right:0!important;left:0!important;width:100%!important}}.wc-helper .wp-list-table__licence-container{padding:0!important}.wc-helper .wp-list-table__licence-container::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0;width:1px}.wc-helper .wp-list-table__licence-form{display:-webkit-box;display:flex;padding:16px 22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form{display:block}}.wc-helper .wp-list-table__licence-form::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;left:22px;right:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form::before{left:0;right:0}}.wc-helper .wp-list-table__licence-form div{padding-left:16px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form div{padding:0}}.wc-helper .wp-list-table__licence-form p{margin:0!important}.wc-helper .wp-list-table__licence-label label{color:#23282d;font-weight:600;line-height:30px}.wc-helper .wp-list-table__licence-field input{height:32px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-field input{width:100%}}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-field{padding:8px 0 16px!important}}.wc-helper .wp-list-table__licence-actions{-webkit-box-flex:2;flex-grow:2;padding-left:0!important}.wc-helper .wp-list-table__licence-actions .button{margin-left:8px}.wc-helper .wp-list-table__licence-actions .button-secondary{float:left;margin:0 8px 0 0}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-actions{text-align:left}}.wc-helper td.color-bar{border-right:solid 4px transparent}.wc-helper td.color-bar.expired{border-right-color:#b81c23}.wc-helper td.color-bar.expiring{border-right-color:orange}.wc-helper td.color-bar.update-available{border-right-color:#8fae1b}.wc-helper td.color-bar.expiring.update-available{border-right-color:#8fae1b}.wc-helper .connect-wrapper{background-color:#fff;border:1px solid #e5e5e5;margin-bottom:25px;overflow:auto}.wc-helper .connected{display:-webkit-box;display:flex}.wc-helper .connected .user-info{display:-webkit-box;display:flex;padding:20px;width:100%;vertical-align:middle}.wc-helper .connected img{border:1px solid #e5e5e5;height:34px;width:34px}.wc-helper .connected .buttons{padding:20px;white-space:nowrap}.wc-helper .connected p{-webkit-box-flex:2;flex:2;margin:10px 20px 0 0}.wc-helper .connected .chevron{display:none}.wc-helper .connected .chevron:hover{color:#955a89;cursor:pointer}@media only screen and (max-width:784px){.wc-helper .connected{display:block}.wc-helper .connected strong{display:block;overflow:hidden;text-overflow:ellipsis}.wc-helper .connected p{margin:0;overflow:hidden;text-overflow:ellipsis;width:80%}.wc-helper .connected .user-info{padding-left:0;width:auto}.wc-helper .connected .avatar{margin-left:12px}.wc-helper .connected .chevron{color:#e1e1e1;display:block;margin:10px;-webkit-transform:rotateX(0);transform:rotateX(0)}.wc-helper .connected .buttons{display:none;border-top:1px solid #e1e1e1;padding:10px 20px}.wc-helper .connected .buttons.active{display:block}}.wc-helper .start-container{background-color:#fff;border-right:4px solid #cc99c2;padding:45px 30px 20px 20px;position:relative;overflow:hidden}.wc-helper .start-container h2,.wc-helper .start-container p{max-width:800px}.wc-helper .start-container::before{color:#eee2ec;content:"\e01C";display:block;font-family:WooCommerce;font-size:192px;line-height:1;position:absolute;top:65%;left:-3%;text-align:center;width:1em}.wc-helper .start-container h2{font-size:24px;line-height:29px;position:relative}.wc-helper .start-container p{font-size:16px;margin-bottom:30px;position:relative}.wc-helper .button-helper-connect{height:37px;line-height:37px;min-width:124px;padding:0 13px;text-shadow:none}.wc-helper .button-helper-connect:active,.wc-helper .button-helper-connect:focus,.wc-helper .button-helper-connect:hover{padding:0 13px}.form-toggle__wrapper{position:relative}.form-toggle__wrapper label{cursor:default}.form-toggle{cursor:pointer;display:block;position:absolute;top:0;bottom:-1px;right:0;left:0;text-align:right;text-indent:-100000px;z-index:2}.form-toggle:focus{box-shadow:none}.form-toggle.disabled{cursor:default}.form-toggle__switch{align-self:flex-start;background:#c8d7e1;border-radius:12px;box-sizing:border-box;display:inline-block;padding:2px;outline:0;position:relative;width:40px;height:24px;-webkit-transition:all .4s ease,box-shadow 0s;transition:all .4s ease,box-shadow 0s;vertical-align:middle}.form-toggle__switch::after,.form-toggle__switch::before{content:"";display:block;position:relative;width:20px;height:20px}.form-toggle__switch::after{border-radius:50%;background:#fff;right:0;-webkit-transition:all .2s ease;transition:all .2s ease}.form-toggle__switch::before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #955a89}.form-toggle__label{vertical-align:bottom;z-index:1}.form-toggle__label .form-toggle__label-content{color:#87a6bc;-webkit-box-flex:0;flex:0 1 100%;font-size:13px;line-height:16px;margin-right:12px;margin-left:8px;vertical-align:top;text-transform:uppercase}@media only screen and (max-width:480px){.form-toggle__label .form-toggle__label-content{display:none}}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #955a89}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #bb77ae}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a8bece}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c8d7e1}.form-toggle.active+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.active+.form-toggle__label .form-toggle__switch::after{right:8px}.form-toggle.active+.form-toggle__label:hover .form-toggle__switch{background:#bb77ae}.form-toggle.disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c8d7e1}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch::after{right:8px}
assets/css/helper.css CHANGED
@@ -1 +1 @@
1
- .wc-helper .nav-tab-wrapper{margin-bottom:22px}@media only screen and (max-width:784px){.wc-helper .nav-tab{max-width:40%;overflow:hidden;text-overflow:ellipsis}}.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{background-color:#955a89;border-width:0;box-shadow:none;border-radius:3px;color:#fff;height:auto;padding:3px 14px;text-align:center;white-space:normal!important}@media only screen and (max-width:782px){.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{line-height:2}}.wc-helper .button.button-secondary,.wc-helper .button:active.button-secondary,.wc-helper .button:focus.button-secondary,.wc-helper .button:hover.button-secondary{background-color:#e6e6e6;color:#3c3c3c;text-shadow:none}.wc-helper .button:hover{opacity:.8}.wc-helper .subscription-filter{color:#2e4453;font-size:13px;line-height:13px;margin:22px 0}.wc-helper .subscription-filter label{display:none;position:relative}.wc-helper .subscription-filter label .chevron{color:#e1e1e1;border-bottom-width:0;line-height:1;padding:0;position:absolute;top:10px;right:14px}.wc-helper .subscription-filter li{color:#0073aa;display:inline-block;padding:0 4px 0 8px;position:relative}.wc-helper .subscription-filter li::before{background-color:#979797;content:" ";position:absolute;top:0;left:0;bottom:0;width:1px}.wc-helper .subscription-filter li:first-of-type::before{display:none}.wc-helper .subscription-filter a{color:#0073aa;text-decoration:none}.wc-helper .subscription-filter a.current{color:#000;font-weight:600}.wc-helper .subscription-filter .count{color:#555d66;font-weight:400}@media only screen and (max-width:600px){.wc-helper .subscription-filter{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:14px}.wc-helper .subscription-filter label,.wc-helper .subscription-filter li{line-height:21px;padding:8px 16px;margin:0}.wc-helper .subscription-filter label:last-child,.wc-helper .subscription-filter li:last-child{border-bottom:none}.wc-helper .subscription-filter li{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter label,.wc-helper .subscription-filter span.chevron{display:block}.wc-helper .subscription-filter label{text-decoration:none}.wc-helper .subscription-filter li{display:none}.wc-helper .subscription-filter li::before{display:none}.wc-helper .subscription-filter a{cursor:pointer}.wc-helper .subscription-filter span.chevron{color:#555;opacity:.5;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .subscription-filter:focus,.wc-helper .subscription-filter:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .subscription-filter:focus label,.wc-helper .subscription-filter:hover label{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter:focus li,.wc-helper .subscription-filter:hover li{display:block}.wc-helper .subscription-filter:focus span.chevron,.wc-helper .subscription-filter:hover span.chevron{-webkit-transform:rotateX(0);transform:rotateX(0)}}.wc-helper .subscriptions-header{margin:3em 0 0;position:relative;z-index:10}.wc-helper .subscriptions-header h2{display:inline-block;line-height:25px;margin:0 0 1.5em 0}.wc-helper .button-update,.wc-helper .button-update:hover{background-color:#e6e6e6;border-radius:4px;color:#333;font-weight:800;font-size:10px;line-height:20px;margin-left:6px;opacity:.75;padding:3px 7px;text-transform:uppercase}.wc-helper .button-update .dashicons,.wc-helper .button-update:hover .dashicons{font-size:12px;height:12px;width:12px;vertical-align:text-bottom}.wc-helper .button-update:hover{opacity:1}.wc-helper .user-info{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:12px;line-height:26px;position:absolute;top:-10px;right:0;-webkit-transition:all .1s ease-in;transition:all .1s ease-in}@media only screen and (max-width:600px){.wc-helper .user-info{position:relative;width:100%}}.wc-helper .user-info p{line-height:26px;margin:0}.wc-helper .user-info:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .user-info header{color:#555;font-weight:600;padding:6px 14px;position:relative}.wc-helper .user-info header p{padding-right:26px}.wc-helper .user-info header .dashicons{opacity:.5;position:absolute;top:9px;right:14px}.wc-helper .user-info header:hover{cursor:pointer}.wc-helper .user-info section{display:none}.wc-helper .user-info section p{border-top:1px solid #e1e1e1;padding:6px 14px;text-align:center}.wc-helper .user-info section .actions{border-top:1px solid #e1e1e1;display:-webkit-box;display:flex}.wc-helper .user-info section a{color:#a26897;cursor:pointer;font-weight:600;line-height:38px;padding:0 14px;text-align:center;text-decoration:none;white-space:nowrap;width:50%}.wc-helper .user-info section a .dashicons{margin-top:-3px;vertical-align:middle}.wc-helper .user-info section a:first-child{border-right:1px solid #e1e1e1}.wc-helper .user-info section a:hover{background-color:#a26897;color:#fff}.wc-helper .user-info section .avatar{border:1px solid #ece1ea;border-radius:50%;height:auto;margin-right:6px;width:24px;vertical-align:bottom}.wc-helper .user-info:active header .dashicons,.wc-helper .user-info:focus header .dashicons,.wc-helper .user-info:hover header .dashicons{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .user-info:active section,.wc-helper .user-info:focus section,.wc-helper .user-info:hover section{display:block}.wc-helper .alternate,.wc-helper .striped>tbody>:nth-child(odd),.wc-helper ul.striped>:nth-child(odd){background-color:#fff}.wc-helper .comment-ays,.wc-helper .feature-filter,.wc-helper .imgedit-group,.wc-helper .popular-tags,.wc-helper .stuffbox,.wc-helper .widgets-holder-wrap,.wc-helper .wp-editor-container,.wc-helper p.popular-tags,.wc-helper table.widefat{padding-top:5px}.wc-helper .widefat tfoot tr td,.wc-helper .widefat tfoot tr th,.wc-helper .widefat thead tr td,.wc-helper .widefat thead tr th{color:#32373c;padding-bottom:15px;padding-top:10px}.wc-helper .widefat td{padding-bottom:15px;padding-top:15px}.wc-helper .wp-list-table{border:0;box-shadow:none;padding-top:0!important;z-index:1}@media only screen and (max-width:782px){.wc-helper .button{font-size:11px}}.wc-helper .wp-list-table__row{background-color:rgba(0,0,0,0)}.wc-helper .wp-list-table__row td{-webkit-box-align:center;align-items:center;background-color:#fff;border:0;padding:16px 22px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row td{padding:16px}}.wc-helper .wp-list-table__row td.color-bar{border-left:0}.wc-helper .wp-list-table__row.is-ext-header td{border-top:1px solid #e1e1e1}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row.is-ext-header{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;width:100%}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-details{display:block;-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-actions{display:block;-webkit-box-flex:1;flex:1;min-width:0}}.wc-helper .wp-list-table__row:last-child td{border-bottom:24px solid #f1f1f1;box-shadow:inset 0 -1px 0 #e1e1e1}.wc-helper .wp-list-table__ext-details,.wc-helper .wp-list-table__ext-status,.wc-helper .wp-list-table__licence-container{padding-right:22px;position:relative;width:100%}.wc-helper .wp-list-table__ext-details::before,.wc-helper .wp-list-table__ext-status::before,.wc-helper .wp-list-table__licence-container::before{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0!important;width:1px!important}.wc-helper .wp-list-table__ext-details{display:-webkit-box;display:flex}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-details{display:table}}.wc-helper .wp-list-table__ext-title{color:#0073aa;font-size:18px;font-weight:600;width:60%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-title{margin-bottom:12px;width:100%}}@media only screen and (max-width:320px){.wc-helper .wp-list-table__ext-title{max-width:120px}}.wc-helper .wp-list-table__ext-description{color:#333;padding-left:12px;width:40%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-description{padding-left:0;width:100%}}.wc-helper .wp-list-table__ext-status{position:relative}.wc-helper .wp-list-table__ext-status.update-available::after{background-color:#ffc322;content:" ";position:absolute;top:0;left:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status.expired::after{background-color:#b81c23;content:" ";position:absolute;top:0;left:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status .dashicons-update{color:#ffc322}.wc-helper .wp-list-table__ext-status .dashicons-info{color:#b81c23}.wc-helper .wp-list-table__ext-status p{color:#333;margin:0}.wc-helper .wp-list-table__ext-status .dashicons{margin-right:5px}.wc-helper .wp-list-table__ext-actions{min-width:150px;position:relative;width:25%;text-align:right}.wc-helper .wp-list-table__ext-actions::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0;width:1px}.wc-helper .wp-list-table__ext-licence td,.wc-helper .wp-list-table__ext-updates td{position:relative}.wc-helper .wp-list-table__ext-licence td::before,.wc-helper .wp-list-table__ext-updates td::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;left:0;right:0}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-licence td.wp-list-table__licence-container::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__licence-container::before{left:22px!important;width:auto!important}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-actions::before{right:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-licence,.wc-helper .wp-list-table__ext-updates{display:-webkit-box;display:flex}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status{-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status::before{left:0!important;width:100%!important}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions{-webkit-box-flex:1;flex:1;min-width:0}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions::before{left:0!important;right:0!important;width:100%!important}}.wc-helper .wp-list-table__licence-container{padding:0!important}.wc-helper .wp-list-table__licence-container::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0;width:1px}.wc-helper .wp-list-table__licence-form{display:-webkit-box;display:flex;padding:16px 22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form{display:block}}.wc-helper .wp-list-table__licence-form::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;right:22px;left:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form::before{right:0;left:0}}.wc-helper .wp-list-table__licence-form div{padding-right:16px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form div{padding:0}}.wc-helper .wp-list-table__licence-form p{margin:0!important}.wc-helper .wp-list-table__licence-label label{color:#23282d;font-weight:600;line-height:30px}.wc-helper .wp-list-table__licence-field input{height:32px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-field input{width:100%}}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-field{padding:8px 0 16px!important}}.wc-helper .wp-list-table__licence-actions{-webkit-box-flex:2;flex-grow:2;padding-right:0!important}.wc-helper .wp-list-table__licence-actions .button{margin-right:8px}.wc-helper .wp-list-table__licence-actions .button-secondary{float:right;margin:0 0 0 8px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-actions{text-align:right}}.wc-helper td.color-bar{border-left:solid 4px transparent}.wc-helper td.color-bar.expired{border-left-color:#b81c23}.wc-helper td.color-bar.expiring{border-left-color:orange}.wc-helper td.color-bar.update-available{border-left-color:#8fae1b}.wc-helper td.color-bar.expiring.update-available{border-left-color:#8fae1b}.wc-helper .connect-wrapper{background-color:#fff;border:1px solid #e5e5e5;margin-bottom:25px;overflow:auto}.wc-helper .connected{display:-webkit-box;display:flex}.wc-helper .connected .user-info{display:-webkit-box;display:flex;padding:20px;width:100%;vertical-align:middle}.wc-helper .connected img{border:1px solid #e5e5e5;height:34px;width:34px}.wc-helper .connected .buttons{padding:20px;white-space:nowrap}.wc-helper .connected p{-webkit-box-flex:2;flex:2;margin:10px 0 0 20px}.wc-helper .connected .chevron{display:none}.wc-helper .connected .chevron:hover{color:#955a89;cursor:pointer}@media only screen and (max-width:784px){.wc-helper .connected{display:block}.wc-helper .connected strong{display:block;overflow:hidden;text-overflow:ellipsis}.wc-helper .connected p{margin:0;overflow:hidden;text-overflow:ellipsis;width:80%}.wc-helper .connected .user-info{padding-right:0;width:auto}.wc-helper .connected .avatar{margin-right:12px}.wc-helper .connected .chevron{color:#e1e1e1;display:block;margin:10px;-webkit-transform:rotateX(0);transform:rotateX(0)}.wc-helper .connected .buttons{display:none;border-top:1px solid #e1e1e1;padding:10px 20px}.wc-helper .connected .buttons.active{display:block}}.wc-helper .start-container{background-color:#fff;border-left:4px solid #cc99c2;padding:45px 20px 20px 30px;position:relative;overflow:hidden}.wc-helper .start-container h2,.wc-helper .start-container p{max-width:800px}.wc-helper .start-container::before{color:#eee2ec;content:"\e01C";display:block;font-family:WooCommerce;font-size:192px;line-height:1;position:absolute;top:65%;right:-3%;text-align:center;width:1em}.wc-helper .start-container h2{font-size:24px;line-height:29px;position:relative}.wc-helper .start-container p{font-size:16px;margin-bottom:30px;position:relative}.wc-helper .button-primary{height:37px;line-height:37px;min-width:124px;padding:0 13px;text-shadow:none}.wc-helper .button-primary:active,.wc-helper .button-primary:focus,.wc-helper .button-primary:hover{padding:0 13px}.form-toggle__wrapper{position:relative}.form-toggle__wrapper label{cursor:default}.form-toggle{cursor:pointer;display:block;position:absolute;top:0;bottom:-1px;left:0;right:0;text-align:left;text-indent:-100000px;z-index:2}.form-toggle:focus{box-shadow:none}.form-toggle.disabled{cursor:default}.form-toggle__switch{align-self:flex-start;background:#c8d7e1;border-radius:12px;box-sizing:border-box;display:inline-block;padding:2px;outline:0;position:relative;width:40px;height:24px;-webkit-transition:all .4s ease,box-shadow 0s;transition:all .4s ease,box-shadow 0s;vertical-align:middle}.form-toggle__switch::after,.form-toggle__switch::before{content:"";display:block;position:relative;width:20px;height:20px}.form-toggle__switch::after{border-radius:50%;background:#fff;left:0;-webkit-transition:all .2s ease;transition:all .2s ease}.form-toggle__switch::before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #955a89}.form-toggle__label{vertical-align:bottom;z-index:1}.form-toggle__label .form-toggle__label-content{color:#87a6bc;-webkit-box-flex:0;flex:0 1 100%;font-size:13px;line-height:16px;margin-left:12px;margin-right:8px;vertical-align:top;text-transform:uppercase}@media only screen and (max-width:480px){.form-toggle__label .form-toggle__label-content{display:none}}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #955a89}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #bb77ae}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a8bece}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c8d7e1}.form-toggle.active+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.active+.form-toggle__label .form-toggle__switch::after{left:8px}.form-toggle.active+.form-toggle__label:hover .form-toggle__switch{background:#bb77ae}.form-toggle.disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c8d7e1}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch::after{left:8px}
1
+ .wc-helper .nav-tab-wrapper{margin-bottom:22px}@media only screen and (max-width:784px){.wc-helper .nav-tab{max-width:40%;overflow:hidden;text-overflow:ellipsis}}.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{background-color:#955a89;border-width:0;box-shadow:none;border-radius:3px;color:#fff;height:auto;padding:3px 14px;text-align:center;white-space:normal!important}@media only screen and (max-width:782px){.wc-helper .button,.wc-helper .button:active,.wc-helper .button:focus,.wc-helper .button:hover{line-height:2}}.wc-helper .button.button-secondary,.wc-helper .button:active.button-secondary,.wc-helper .button:focus.button-secondary,.wc-helper .button:hover.button-secondary{background-color:#e6e6e6;color:#3c3c3c;text-shadow:none}.wc-helper .button:hover{opacity:.8}.wc-helper .subscription-filter{color:#2e4453;font-size:13px;line-height:13px;margin:22px 0}.wc-helper .subscription-filter label{display:none;position:relative}.wc-helper .subscription-filter label .chevron{color:#e1e1e1;border-bottom-width:0;line-height:1;padding:0;position:absolute;top:10px;right:14px}.wc-helper .subscription-filter li{color:#0073aa;display:inline-block;padding:0 4px 0 8px;position:relative}.wc-helper .subscription-filter li::before{background-color:#979797;content:" ";position:absolute;top:0;left:0;bottom:0;width:1px}.wc-helper .subscription-filter li:first-of-type::before{display:none}.wc-helper .subscription-filter a{color:#0073aa;text-decoration:none}.wc-helper .subscription-filter a.current{color:#000;font-weight:600}.wc-helper .subscription-filter .count{color:#555d66;font-weight:400}@media only screen and (max-width:600px){.wc-helper .subscription-filter{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:14px}.wc-helper .subscription-filter label,.wc-helper .subscription-filter li{line-height:21px;padding:8px 16px;margin:0}.wc-helper .subscription-filter label:last-child,.wc-helper .subscription-filter li:last-child{border-bottom:none}.wc-helper .subscription-filter li{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter label,.wc-helper .subscription-filter span.chevron{display:block}.wc-helper .subscription-filter label{text-decoration:none}.wc-helper .subscription-filter li{display:none}.wc-helper .subscription-filter li::before{display:none}.wc-helper .subscription-filter a{cursor:pointer}.wc-helper .subscription-filter span.chevron{color:#555;opacity:.5;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .subscription-filter:focus,.wc-helper .subscription-filter:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .subscription-filter:focus label,.wc-helper .subscription-filter:hover label{border-bottom:1px solid #e1e1e1}.wc-helper .subscription-filter:focus li,.wc-helper .subscription-filter:hover li{display:block}.wc-helper .subscription-filter:focus span.chevron,.wc-helper .subscription-filter:hover span.chevron{-webkit-transform:rotateX(0);transform:rotateX(0)}}.wc-helper .subscriptions-header{margin:3em 0 0;position:relative;z-index:10}.wc-helper .subscriptions-header h2{display:inline-block;line-height:25px;margin:0 0 1.5em 0}.wc-helper .button-update,.wc-helper .button-update:hover{background-color:#e6e6e6;border-radius:4px;color:#333;font-weight:800;font-size:10px;line-height:20px;margin-left:6px;opacity:.75;padding:3px 7px;text-transform:uppercase}.wc-helper .button-update .dashicons,.wc-helper .button-update:hover .dashicons{font-size:12px;height:12px;width:12px;vertical-align:text-bottom}.wc-helper .button-update:hover{opacity:1}.wc-helper .user-info{background-color:#fff;border:1px solid #e1e1e1;border-radius:4px;font-size:12px;line-height:26px;position:absolute;top:-10px;right:0;-webkit-transition:all .1s ease-in;transition:all .1s ease-in}@media only screen and (max-width:600px){.wc-helper .user-info{position:relative;width:100%}}.wc-helper .user-info p{line-height:26px;margin:0}.wc-helper .user-info:hover{box-shadow:0 3px 5px rgba(0,0,0,.2)}.wc-helper .user-info header{color:#555;font-weight:600;padding:6px 14px;position:relative}.wc-helper .user-info header p{padding-right:26px}.wc-helper .user-info header .dashicons{opacity:.5;position:absolute;top:9px;right:14px}.wc-helper .user-info header:hover{cursor:pointer}.wc-helper .user-info section{display:none}.wc-helper .user-info section p{border-top:1px solid #e1e1e1;padding:6px 14px;text-align:center}.wc-helper .user-info section .actions{border-top:1px solid #e1e1e1;display:-webkit-box;display:flex}.wc-helper .user-info section a{color:#a26897;cursor:pointer;font-weight:600;line-height:38px;padding:0 14px;text-align:center;text-decoration:none;white-space:nowrap;width:50%}.wc-helper .user-info section a .dashicons{margin-top:-3px;vertical-align:middle}.wc-helper .user-info section a:first-child{border-right:1px solid #e1e1e1}.wc-helper .user-info section a:hover{background-color:#a26897;color:#fff}.wc-helper .user-info section .avatar{border:1px solid #ece1ea;border-radius:50%;height:auto;margin-right:6px;width:24px;vertical-align:bottom}.wc-helper .user-info:active header .dashicons,.wc-helper .user-info:focus header .dashicons,.wc-helper .user-info:hover header .dashicons{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.wc-helper .user-info:active section,.wc-helper .user-info:focus section,.wc-helper .user-info:hover section{display:block}.wc-helper .alternate,.wc-helper .striped>tbody>:nth-child(odd),.wc-helper ul.striped>:nth-child(odd){background-color:#fff}.wc-helper .comment-ays,.wc-helper .feature-filter,.wc-helper .imgedit-group,.wc-helper .popular-tags,.wc-helper .stuffbox,.wc-helper .widgets-holder-wrap,.wc-helper .wp-editor-container,.wc-helper p.popular-tags,.wc-helper table.widefat{padding-top:5px}.wc-helper .widefat tfoot tr td,.wc-helper .widefat tfoot tr th,.wc-helper .widefat thead tr td,.wc-helper .widefat thead tr th{color:#32373c;padding-bottom:15px;padding-top:10px}.wc-helper .widefat td{padding-bottom:15px;padding-top:15px}.wc-helper .wp-list-table{border:0;box-shadow:none;padding-top:0!important;z-index:1}@media only screen and (max-width:782px){.wc-helper .button{font-size:11px}}.wc-helper .wp-list-table__row{background-color:rgba(0,0,0,0)}.wc-helper .wp-list-table__row td{-webkit-box-align:center;align-items:center;background-color:#fff;border:0;padding:16px 22px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row td{padding:16px}}.wc-helper .wp-list-table__row td.color-bar{border-left:0}.wc-helper .wp-list-table__row.is-ext-header td{border-top:1px solid #e1e1e1}@media only screen and (max-width:782px){.wc-helper .wp-list-table__row.is-ext-header{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;width:100%}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-details{display:block;-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__row.is-ext-header .wp-list-table__ext-actions{display:block;-webkit-box-flex:1;flex:1;min-width:0}}.wc-helper .wp-list-table__row:last-child td{border-bottom:24px solid #f1f1f1;box-shadow:inset 0 -1px 0 #e1e1e1}.wc-helper .wp-list-table__ext-details,.wc-helper .wp-list-table__ext-status,.wc-helper .wp-list-table__licence-container{padding-right:22px;position:relative;width:100%}.wc-helper .wp-list-table__ext-details::before,.wc-helper .wp-list-table__ext-status::before,.wc-helper .wp-list-table__licence-container::before{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;left:0!important;width:1px!important}.wc-helper .wp-list-table__ext-details{display:-webkit-box;display:flex}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-details{display:table}}.wc-helper .wp-list-table__ext-title{color:#0073aa;font-size:18px;font-weight:600;width:60%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-title{margin-bottom:12px;width:100%}}@media only screen and (max-width:320px){.wc-helper .wp-list-table__ext-title{max-width:120px}}.wc-helper .wp-list-table__ext-description{color:#333;padding-left:12px;width:40%}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-description{padding-left:0;width:100%}}.wc-helper .wp-list-table__ext-status{position:relative}.wc-helper .wp-list-table__ext-status.update-available::after{background-color:#ffc322;content:" ";position:absolute;top:0;left:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status.expired::after{background-color:#b81c23;content:" ";position:absolute;top:0;left:0;bottom:0;width:5px}.wc-helper .wp-list-table__ext-status .dashicons-update{color:#ffc322}.wc-helper .wp-list-table__ext-status .dashicons-info{color:#b81c23}.wc-helper .wp-list-table__ext-status p{color:#333;margin:0}.wc-helper .wp-list-table__ext-status .dashicons{margin-right:5px}.wc-helper .wp-list-table__ext-actions{min-width:150px;position:relative;width:25%;text-align:right}.wc-helper .wp-list-table__ext-actions::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0;width:1px}.wc-helper .wp-list-table__ext-licence td,.wc-helper .wp-list-table__ext-updates td{position:relative}.wc-helper .wp-list-table__ext-licence td::before,.wc-helper .wp-list-table__ext-updates td::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;left:0;right:0}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-licence td.wp-list-table__licence-container::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__licence-container::before{left:22px!important;width:auto!important}.wc-helper .wp-list-table__ext-licence td.wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates td.wp-list-table__ext-actions::before{right:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__ext-licence,.wc-helper .wp-list-table__ext-updates{display:-webkit-box;display:flex}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status{-webkit-box-flex:2;flex:2}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-status::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-status::before{left:0!important;width:100%!important}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions{-webkit-box-flex:1;flex:1;min-width:0}.wc-helper .wp-list-table__ext-licence .wp-list-table__ext-actions::before,.wc-helper .wp-list-table__ext-updates .wp-list-table__ext-actions::before{left:0!important;right:0!important;width:100%!important}}.wc-helper .wp-list-table__licence-container{padding:0!important}.wc-helper .wp-list-table__licence-container::after{background-color:#e1e1e1;content:" ";position:absolute;top:0;bottom:0;right:0;width:1px}.wc-helper .wp-list-table__licence-form{display:-webkit-box;display:flex;padding:16px 22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form{display:block}}.wc-helper .wp-list-table__licence-form::before{background-color:#e1e1e1;content:" ";height:1px;position:absolute;top:0;right:22px;left:22px}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form::before{right:0;left:0}}.wc-helper .wp-list-table__licence-form div{padding-right:16px;vertical-align:middle}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-form div{padding:0}}.wc-helper .wp-list-table__licence-form p{margin:0!important}.wc-helper .wp-list-table__licence-label label{color:#23282d;font-weight:600;line-height:30px}.wc-helper .wp-list-table__licence-field input{height:32px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-field input{width:100%}}@media only screen and (max-width:782px){.wc-helper .wp-list-table__licence-field{padding:8px 0 16px!important}}.wc-helper .wp-list-table__licence-actions{-webkit-box-flex:2;flex-grow:2;padding-right:0!important}.wc-helper .wp-list-table__licence-actions .button{margin-right:8px}.wc-helper .wp-list-table__licence-actions .button-secondary{float:right;margin:0 0 0 8px}@media only screen and (max-width:480px){.wc-helper .wp-list-table__licence-actions{text-align:right}}.wc-helper td.color-bar{border-left:solid 4px transparent}.wc-helper td.color-bar.expired{border-left-color:#b81c23}.wc-helper td.color-bar.expiring{border-left-color:orange}.wc-helper td.color-bar.update-available{border-left-color:#8fae1b}.wc-helper td.color-bar.expiring.update-available{border-left-color:#8fae1b}.wc-helper .connect-wrapper{background-color:#fff;border:1px solid #e5e5e5;margin-bottom:25px;overflow:auto}.wc-helper .connected{display:-webkit-box;display:flex}.wc-helper .connected .user-info{display:-webkit-box;display:flex;padding:20px;width:100%;vertical-align:middle}.wc-helper .connected img{border:1px solid #e5e5e5;height:34px;width:34px}.wc-helper .connected .buttons{padding:20px;white-space:nowrap}.wc-helper .connected p{-webkit-box-flex:2;flex:2;margin:10px 0 0 20px}.wc-helper .connected .chevron{display:none}.wc-helper .connected .chevron:hover{color:#955a89;cursor:pointer}@media only screen and (max-width:784px){.wc-helper .connected{display:block}.wc-helper .connected strong{display:block;overflow:hidden;text-overflow:ellipsis}.wc-helper .connected p{margin:0;overflow:hidden;text-overflow:ellipsis;width:80%}.wc-helper .connected .user-info{padding-right:0;width:auto}.wc-helper .connected .avatar{margin-right:12px}.wc-helper .connected .chevron{color:#e1e1e1;display:block;margin:10px;-webkit-transform:rotateX(0);transform:rotateX(0)}.wc-helper .connected .buttons{display:none;border-top:1px solid #e1e1e1;padding:10px 20px}.wc-helper .connected .buttons.active{display:block}}.wc-helper .start-container{background-color:#fff;border-left:4px solid #cc99c2;padding:45px 20px 20px 30px;position:relative;overflow:hidden}.wc-helper .start-container h2,.wc-helper .start-container p{max-width:800px}.wc-helper .start-container::before{color:#eee2ec;content:"\e01C";display:block;font-family:WooCommerce;font-size:192px;line-height:1;position:absolute;top:65%;right:-3%;text-align:center;width:1em}.wc-helper .start-container h2{font-size:24px;line-height:29px;position:relative}.wc-helper .start-container p{font-size:16px;margin-bottom:30px;position:relative}.wc-helper .button-helper-connect{height:37px;line-height:37px;min-width:124px;padding:0 13px;text-shadow:none}.wc-helper .button-helper-connect:active,.wc-helper .button-helper-connect:focus,.wc-helper .button-helper-connect:hover{padding:0 13px}.form-toggle__wrapper{position:relative}.form-toggle__wrapper label{cursor:default}.form-toggle{cursor:pointer;display:block;position:absolute;top:0;bottom:-1px;left:0;right:0;text-align:left;text-indent:-100000px;z-index:2}.form-toggle:focus{box-shadow:none}.form-toggle.disabled{cursor:default}.form-toggle__switch{align-self:flex-start;background:#c8d7e1;border-radius:12px;box-sizing:border-box;display:inline-block;padding:2px;outline:0;position:relative;width:40px;height:24px;-webkit-transition:all .4s ease,box-shadow 0s;transition:all .4s ease,box-shadow 0s;vertical-align:middle}.form-toggle__switch::after,.form-toggle__switch::before{content:"";display:block;position:relative;width:20px;height:20px}.form-toggle__switch::after{border-radius:50%;background:#fff;left:0;-webkit-transition:all .2s ease;transition:all .2s ease}.form-toggle__switch::before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #955a89}.form-toggle__label{vertical-align:bottom;z-index:1}.form-toggle__label .form-toggle__label-content{color:#87a6bc;-webkit-box-flex:0;flex:0 1 100%;font-size:13px;line-height:16px;margin-left:12px;margin-right:8px;vertical-align:top;text-transform:uppercase}@media only screen and (max-width:480px){.form-toggle__label .form-toggle__label-content{display:none}}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #955a89}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #bb77ae}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a8bece}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c8d7e1}.form-toggle.active+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.active+.form-toggle__label .form-toggle__switch::after{left:8px}.form-toggle.active+.form-toggle__label:hover .form-toggle__switch{background:#bb77ae}.form-toggle.disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#955a89}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c8d7e1}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch::before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch::after{left:8px}
assets/css/helper.scss CHANGED
@@ -866,7 +866,7 @@ $color_button_secondary: $woo_pink2;
866
  position: relative;
867
  }
868
 
869
- .button-primary {
870
  height: 37px;
871
  line-height: 37px;
872
  min-width: 124px;
866
  position: relative;
867
  }
868
 
869
+ .button-helper-connect {
870
  height: 37px;
871
  line-height: 37px;
872
  min-width: 124px;
assets/js/admin/meta-boxes-order.js CHANGED
@@ -750,7 +750,7 @@ jQuery( function ( $ ) {
750
  $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) {
751
  if ( true === response.success ) {
752
  // Redirect to same page for show the refunded status
753
- window.location.href = window.location.href;
754
  } else {
755
  window.alert( response.data.error );
756
  wc_meta_boxes_order_items.reload_items();
750
  $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) {
751
  if ( true === response.success ) {
752
  // Redirect to same page for show the refunded status
753
+ window.location.reload();
754
  } else {
755
  window.alert( response.data.error );
756
  wc_meta_boxes_order_items.reload_items();
assets/js/admin/meta-boxes-order.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(l){var u={states:null,init:function(){"undefined"!=typeof woocommerce_admin_meta_boxes_order&&"undefined"!=typeof woocommerce_admin_meta_boxes_order.countries&&(this.states=l.parseJSON(woocommerce_admin_meta_boxes_order.countries.replace(/&quot;/g,'"'))),l(".js_field-country").selectWoo().change(this.change_country),l(".js_field-country").trigger("change",[!0]),l(document.body).on("change","select.js_field-state",this.change_state),l("#woocommerce-order-actions input, #woocommerce-order-actions a").click(function(){window.onbeforeunload=""}),l("a.edit_address").click(this.edit_address),l("a.billing-same-as-shipping").on("click",this.copy_billing_to_shipping),l("a.load_customer_billing").on("click",this.load_billing),l("a.load_customer_shipping").on("click",this.load_shipping),l("#customer_user").on("change",this.change_customer_user)},change_country:function(e,o){if(void 0===o&&(o=!1),null!==u.states){var t=l(this),i=t.val(),a=t.parents("div.edit_address").find(":input.js_field-state"),n=a.parent(),r=a.attr("name"),c=a.attr("id"),d=t.data("woocommerce.stickState-"+i)?t.data("woocommerce.stickState-"+i):a.val(),m=a.attr("placeholder");if(o&&t.data("woocommerce.stickState-"+i,d),n.show().find(".select2-container").remove(),l.isEmptyObject(u.states[i]))a.replaceWith('<input type="text" class="js_field-state" name="'+r+'" id="'+c+'" value="'+d+'" placeholder="'+m+'" />');else{var _=l('<select name="'+r+'" id="'+c+'" class="js_field-state select short" placeholder="'+m+'"></select>'),s=u.states[i];_.append(l('<option value="">'+woocommerce_admin_meta_boxes_order.i18n_select_state_text+"</option>")),l.each(s,function(e){_.append(l('<option value="'+e+'">'+s[e]+"</option>"))}),_.val(d),a.replaceWith(_),_.show().selectWoo().hide().change()}l(document.body).trigger("contry-change.woocommerce",[i,l(this).closest("div")]),l(document.body).trigger("country-change.woocommerce",[i,l(this).closest("div")])}},change_state:function(){var e=l(this),o=e.val(),t=e.parents("div.edit_address").find(":input.js_field-country"),i=t.val();t.data("woocommerce.stickState-"+i,o)},init_tiptip:function(){l("#tiptip_holder").removeAttr("style"),l("#tiptip_arrow").removeAttr("style"),l(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})},edit_address:function(e){e.preventDefault();var o=l(this),t=o.closest(".order_data_column"),i=t.find("div.edit_address"),a=t.find("div.address"),n=i.find(".js_field-country"),r=i.find(".js_field-state");a.hide(),o.parent().find("a").toggle(),n.val()||(n.val(woocommerce_admin_meta_boxes_order.default_country).change(),r.val(woocommerce_admin_meta_boxes_order.default_state).change()),i.show()},change_customer_user:function(){l("#_billing_country").val()||(l("a.edit_address").click(),u.load_billing(!0),u.load_shipping(!0))},load_billing:function(e){if(!0===e||window.confirm(woocommerce_admin_meta_boxes.load_billing)){var o=l("#customer_user").val();if(!o)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var t={user_id:o,action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};l(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:t,type:"POST",success:function(e){e&&e.billing&&l.each(e.billing,function(e,o){l(":input#_billing_"+e).val(o).change()}),l("div.edit_address").unblock()}})}return!1},load_shipping:function(e){if(!0===e||window.confirm(woocommerce_admin_meta_boxes.load_shipping)){var o=l("#customer_user").val();if(!o)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var t={user_id:o,action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};l(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:t,type:"POST",success:function(e){e&&e.billing&&l.each(e.shipping,function(e,o){l(":input#_shipping_"+e).val(o).change()}),l("div.edit_address").unblock()}})}return!1},copy_billing_to_shipping:function(){return window.confirm(woocommerce_admin_meta_boxes.copy_billing)&&l('.order_data_column :input[name^="_billing_"]').each(function(){var e=l(this).attr("name");e=e.replace("_billing_","_shipping_"),l(":input#"+e).val(l(this).val()).change()}),!1}},c={init:function(){this.stupidtable.init(),l("#woocommerce-order-items").on("click","button.add-line-item",this.add_line_item).on("click","button.add-coupon",this.add_coupon).on("click","a.remove-coupon",this.remove_coupon).on("click","button.refund-items",this.refund_items).on("click",".cancel-action",this.cancel).on("click","button.add-order-item",this.add_item).on("click","button.add-order-fee",this.add_fee).on("click","button.add-order-shipping",this.add_shipping).on("click","button.add-order-tax",this.add_tax).on("click","button.save-action",this.save_line_items).on("click","a.delete-order-tax",this.delete_tax).on("click","button.calculate-action",this.recalculate).on("click","a.edit-order-item",this.edit_item).on("click","a.delete-order-item",this.delete_item).on("click",".delete_refund",this.refunds.delete_refund).on("click","button.do-api-refund, button.do-manual-refund",this.refunds.do_refund).on("change",".refund input.refund_line_total, .refund input.refund_line_tax",this.refunds.input_changed).on("change keyup",".wc-order-refund-items #refund_amount",this.refunds.amount_changed).on("change","input.refund_order_item_qty",this.refunds.refund_quantity_changed).on("change","input.quantity",this.quantity_changed).on("keyup change",".split-input :input",function(){var e=l(this).parent().prev().find(":input");e&&(""===e.val()||e.is(".match-total"))&&e.val(l(this).val()).addClass("match-total")}).on("keyup",".split-input :input",function(){l(this).removeClass("match-total")}).on("click","button.add_order_item_meta",this.item_meta.add).on("click","button.remove_order_item_meta",this.item_meta.remove).on("wc_order_items_reload",this.reload_items).on("wc_order_items_reloaded",this.reloaded_items),l(document.body).on("wc_backbone_modal_loaded",this.backbone.init).on("wc_backbone_modal_response",this.backbone.response)},block:function(){l("#woocommerce-order-items").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){l("#woocommerce-order-items").unblock()},reload_items:function(){var e={order_id:woocommerce_admin_meta_boxes.post_id,action:"woocommerce_load_order_items",security:woocommerce_admin_meta_boxes.order_item_nonce};c.block(),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock()}})},reloaded_items:function(){u.init_tiptip(),c.stupidtable.init()},quantity_changed:function(){var n=l(this).closest("tr.item"),r=l(this).val(),c=l(this).attr("data-qty"),e=l("input.line_total",n),o=l("input.line_subtotal",n),t=accounting.unformat(e.attr("data-total"),woocommerce_admin.mon_decimal_point)/c;e.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point));var i=accounting.unformat(o.attr("data-subtotal"),woocommerce_admin.mon_decimal_point)/c;o.val(parseFloat(accounting.formatNumber(i*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)),l("input.line_tax",n).each(function(){var e=l(this),o=e.data("tax_id"),t=accounting.unformat(e.attr("data-total_tax"),woocommerce_admin.mon_decimal_point)/c,i=l('input.line_subtotal_tax[data-tax_id="'+o+'"]',n),a=accounting.unformat(i.attr("data-subtotal_tax"),woocommerce_admin.mon_decimal_point)/c;0<t&&e.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)),0<a&&i.val(parseFloat(accounting.formatNumber(a*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point))}),l(this).trigger("quantity_changed")},add_line_item:function(){return l("div.wc-order-add-item").slideDown(),l("div.wc-order-data-row-toggle").not("div.wc-order-add-item").slideUp(),!1},add_coupon:function(){var e=window.prompt(woocommerce_admin_meta_boxes.i18n_apply_coupon);if(null!=e){c.block();var o={action:"woocommerce_add_coupon_discount",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,coupon:e};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})}return!1},remove_coupon:function(){var e=l(this);c.block();var o={action:"woocommerce_remove_order_coupon",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,coupon:e.data("code")};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})},refund_items:function(){return l("div.wc-order-refund-items").slideDown(),l("div.wc-order-data-row-toggle").not("div.wc-order-refund-items").slideUp(),l("div.wc-order-totals-items").slideUp(),l("#woocommerce-order-items").find("div.refund").show(),l(".wc-order-edit-line-item .wc-order-edit-line-item-actions").hide(),!1},cancel:function(){return l("div.wc-order-data-row-toggle").not("div.wc-order-bulk-actions").slideUp(),l("div.wc-order-bulk-actions").slideDown(),l("div.wc-order-totals-items").slideDown(),l("#woocommerce-order-items").find("div.refund").hide(),l(".wc-order-edit-line-item .wc-order-edit-line-item-actions").show(),"true"===l(this).attr("data-reload")&&c.reload_items(),!1},add_item:function(){return l(this).WCBackboneModal({template:"wc-modal-add-products"}),!1},add_fee:function(){var e=window.prompt(woocommerce_admin_meta_boxes.i18n_add_fee);if(null!=e){c.block();var o=l.extend({},c.get_taxable_address(),{action:"woocommerce_add_order_fee",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,amount:e});l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})}return!1},add_shipping:function(){c.block();var e={action:"woocommerce_add_order_shipping",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,dataType:"json"};return l.post(woocommerce_admin_meta_boxes.ajax_url,e,function(e){e.success?l("table.woocommerce_order_items tbody#order_shipping_line_items").append(e.data.html):window.alert(e.data.error),c.unblock()}),!1},add_tax:function(){return l(this).WCBackboneModal({template:"wc-modal-add-tax"}),!1},edit_item:function(){return l(this).closest("tr").find(".view").hide(),l(this).closest("tr").find(".edit").show(),l(this).hide(),l("button.add-line-item").click(),l("button.cancel-action").attr("data-reload",!0),!1},delete_item:function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_item_notice)){var e=l(this).closest("tr.item, tr.fee, tr.shipping").attr("data-order_item_id");c.block();var o=l.extend({},c.get_taxable_address(),{order_id:woocommerce_admin_meta_boxes.post_id,order_item_ids:e,action:"woocommerce_remove_order_item",security:woocommerce_admin_meta_boxes.order_item_nonce});"true"===l("button.cancel-action").attr("data-reload")&&(o.items=l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize()),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:o,type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()}})}return!1},delete_tax:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_tax)){c.block();var e={action:"woocommerce_remove_order_tax",rate_id:l(this).attr("data-rate_id"),order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()}})}return!1},get_taxable_address:function(){var e="",o="",t="",i="";return"shipping"===woocommerce_admin_meta_boxes.tax_based_on&&(e=l("#_shipping_country").val(),o=l("#_shipping_state").val(),t=l("#_shipping_postcode").val(),i=l("#_shipping_city").val()),"billing"!==woocommerce_admin_meta_boxes.tax_based_on&&e||(e=l("#_billing_country").val(),o=l("#_billing_state").val(),t=l("#_billing_postcode").val(),i=l("#_billing_city").val()),{country:e,state:o,postcode:t,city:i}},recalculate:function(){if(window.confirm(woocommerce_admin_meta_boxes.calc_totals)){c.block();var e=l.extend({},c.get_taxable_address(),{action:"woocommerce_calc_line_taxes",order_id:woocommerce_admin_meta_boxes.post_id,items:l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize(),security:woocommerce_admin_meta_boxes.calc_totals_nonce});l(document.body).trigger("order-totals-recalculate-before",e),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock(),l(document.body).trigger("order-totals-recalculate-success",e)},complete:function(e){l(document.body).trigger("order-totals-recalculate-complete",e)}})}return!1},save_line_items:function(){var e={order_id:woocommerce_admin_meta_boxes.post_id,items:l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize(),action:"woocommerce_save_order_items",security:woocommerce_admin_meta_boxes.order_item_nonce};return c.block(),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock()}}),l(this).trigger("items_saved"),!1},refunds:{do_refund:function(){if(c.block(),window.confirm(woocommerce_admin_meta_boxes.i18n_do_refund)){var e=l("input#refund_amount").val(),o=l("input#refund_reason").val(),t=l("input#refunded_amount").val(),i={},a={},n={};l(".refund input.refund_order_item_qty").each(function(e,o){l(o).closest("tr").data("order_item_id")&&o.value&&(i[l(o).closest("tr").data("order_item_id")]=o.value)}),l(".refund input.refund_line_total").each(function(e,o){l(o).closest("tr").data("order_item_id")&&(a[l(o).closest("tr").data("order_item_id")]=accounting.unformat(o.value,woocommerce_admin.mon_decimal_point))}),l(".refund input.refund_line_tax").each(function(e,o){if(l(o).closest("tr").data("order_item_id")){var t=l(o).data("tax_id");n[l(o).closest("tr").data("order_item_id")]||(n[l(o).closest("tr").data("order_item_id")]={}),n[l(o).closest("tr").data("order_item_id")][t]=accounting.unformat(o.value,woocommerce_admin.mon_decimal_point)}});var r={action:"woocommerce_refund_line_items",order_id:woocommerce_admin_meta_boxes.post_id,refund_amount:e,refunded_amount:t,refund_reason:o,line_item_qtys:JSON.stringify(i,null,""),line_item_totals:JSON.stringify(a,null,""),line_item_tax_totals:JSON.stringify(n,null,""),api_refund:l(this).is(".do-api-refund"),restock_refunded_items:l("#restock_refunded_items:checked").length?"true":"false",security:woocommerce_admin_meta_boxes.order_item_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,r,function(e){!0===e.success?window.location.href=window.location.href:(window.alert(e.data.error),c.reload_items(),c.unblock())})}else c.unblock()},delete_refund:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_refund)){var e=l(this).closest("tr.refund").attr("data-order_refund_id");c.block();var o={action:"woocommerce_delete_refund",refund_id:e,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:o,type:"POST",success:function(){c.reload_items()}})}return!1},input_changed:function(){var t=0;l(".woocommerce_order_items").find("tr.item, tr.fee, tr.shipping").each(function(){l(this).find(".refund input:not(.refund_order_item_qty)").each(function(e,o){t+=parseFloat(accounting.unformat(l(o).val()||0,woocommerce_admin.mon_decimal_point))})}),l("#refund_amount").val(accounting.formatNumber(t,woocommerce_admin_meta_boxes.currency_format_num_decimals,"",woocommerce_admin.mon_decimal_point)).change()},amount_changed:function(){var e=accounting.unformat(l(this).val(),woocommerce_admin.mon_decimal_point);l("button .wc-order-refund-amount .amount").text(accounting.formatMoney(e,{symbol:woocommerce_admin_meta_boxes.currency_format_symbol,decimal:woocommerce_admin_meta_boxes.currency_format_decimal_sep,thousand:woocommerce_admin_meta_boxes.currency_format_thousand_sep,precision:woocommerce_admin_meta_boxes.currency_format_num_decimals,format:woocommerce_admin_meta_boxes.currency_format}))},refund_quantity_changed:function(){var a=l(this).closest("tr.item"),n=a.find("input.quantity").val(),r=l(this).val(),e=l("input.line_total",a),o=l("input.refund_line_total",a),t=accounting.unformat(e.attr("data-total"),woocommerce_admin.mon_decimal_point)/n;o.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)).change(),l(".refund_line_tax",a).each(function(){var e=l(this),o=e.data("tax_id"),t=l('input.line_tax[data-tax_id="'+o+'"]',a),i=accounting.unformat(t.data("total_tax"),woocommerce_admin.mon_decimal_point)/n;0<i?e.val(parseFloat(accounting.formatNumber(i*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)).change():e.val(0).change()}),0<r?l("#restock_refunded_items").closest("tr").show():(l("#restock_refunded_items").closest("tr").hide(),l(".woocommerce_order_items input.refund_order_item_qty").each(function(){0<l(this).val()&&l("#restock_refunded_items").closest("tr").show()})),l(this).trigger("refund_quantity_changed")}},item_meta:{add:function(){var e=l(this).closest("tr.item, tr.shipping"),o=e.find("tbody.meta_items"),t=o.find("tr").length+1,i='<tr data-meta_id="0"><td><input type="text" maxlength="255" placeholder="'+woocommerce_admin_meta_boxes_order.placeholder_name+'" name="meta_key['+e.attr("data-order_item_id")+"][new-"+t+']" /><textarea placeholder="'+woocommerce_admin_meta_boxes_order.placeholder_value+'" name="meta_value['+e.attr("data-order_item_id")+"][new-"+t+']"></textarea></td><td width="1%"><button class="remove_order_item_meta button">&times;</button></td></tr>';return o.append(i),!1},remove:function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_item_meta)){var e=l(this).closest("tr");e.find(":input").val(""),e.hide()}return!1}},backbone:{init:function(e,o){"wc-modal-add-products"===o&&(l(document.body).trigger("wc-enhanced-select-init"),l(this).on("change",".wc-product-search",function(){if(l(this).closest("tr").is(":last-child")){var e=l(this).closest("table.widefat").find("tbody"),o=e.find("tr").length,t=e.data("row").replace(/\[0\]/g,"["+o+"]");e.append("<tr>"+t+"</tr>"),l(document.body).trigger("wc-enhanced-select-init")}}))},response:function(e,o,t){if("wc-modal-add-tax"===o){var i=t.add_order_tax,a="";t.manual_tax_rate_id&&(a=t.manual_tax_rate_id),c.backbone.add_tax(i,a)}if("wc-modal-add-products"===o){var n=l(this).find("table.widefat").find("tbody").find("tr"),r=[];return l(n).each(function(){var e=l(this).find(':input[name="item_id"]').val(),o=l(this).find(':input[name="item_qty"]').val();r.push({id:e,qty:o||1})}),c.backbone.add_items(r)}},add_items:function(e){c.block();var o={action:"woocommerce_add_order_item",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,data:e};"true"===l("button.cancel-action").attr("data-reload")&&(o.items=l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize()),l.ajax({type:"POST",url:woocommerce_admin_meta_boxes.ajax_url,data:o,success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):(c.unblock(),window.alert(e.data.error))},dataType:"json"})},add_tax:function(e,o){if(o&&(e=o),!e)return!1;var t=l(".order-tax-id").map(function(){return l(this).val()}).get();if(-1===l.inArray(e,t)){c.block();var i={action:"woocommerce_add_order_tax",rate_id:e,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:i,dataType:"json",type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items()):window.alert(e.data.error),c.unblock()}})}else window.alert(woocommerce_admin_meta_boxes.i18n_tax_rate_already_exists)}},stupidtable:{init:function(){l(".woocommerce_order_items").stupidtable(),l(".woocommerce_order_items").on("aftertablesort",this.add_arrows)},add_arrows:function(e,o){var t=l(this).find("th"),i="asc"===o.direction?"&uarr;":"&darr;",a=o.column;t.find(".wc-arrow").remove(),t.eq(a).append('<span class="wc-arrow">'+i+"</span>")}}},e={init:function(){l("#woocommerce-order-notes").on("click","button.add_note",this.add_order_note).on("click","a.delete_note",this.delete_order_note)},add_order_note:function(){if(l("textarea#add_order_note").val()){l("#woocommerce-order-notes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var e={action:"woocommerce_add_order_note",post_id:woocommerce_admin_meta_boxes.post_id,note:l("textarea#add_order_note").val(),note_type:l("select#order_note_type").val(),security:woocommerce_admin_meta_boxes.add_order_note_nonce};return l.post(woocommerce_admin_meta_boxes.ajax_url,e,function(e){l("ul.order_notes").prepend(e),l("#woocommerce-order-notes").unblock(),l("#add_order_note").val("")}),!1}},delete_order_note:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_note)){var e=l(this).closest("li.note");l(e).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var o={action:"woocommerce_delete_order_note",note_id:l(e).attr("rel"),security:woocommerce_admin_meta_boxes.delete_order_note_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(){l(e).remove()})}return!1}},o={init:function(){l(".order_download_permissions").on("click","button.grant_access",this.grant_access).on("click","button.revoke_access",this.revoke_access).on("click","#copy-download-link",this.copy_link).on("aftercopy","#copy-download-link",this.copy_success).on("aftercopyfailure","#copy-download-link",this.copy_fail)},grant_access:function(){var e=l("#grant_access_id").val();if(e){l(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var o={action:"woocommerce_grant_access_to_download",product_ids:e,loop:l(".order_download_permissions .wc-metabox").length,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.grant_access_nonce};return l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e?l(".order_download_permissions .wc-metaboxes").append(e):window.alert(woocommerce_admin_meta_boxes.i18n_download_permission_fail),l(document.body).trigger("wc-init-datepickers"),l("#grant_access_id").val("").change(),l(".order_download_permissions").unblock()}),!1}},revoke_access:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_permission_revoke)){var e=l(this).parent().parent(),o=l(this).attr("rel").split(",")[0],t=l(this).attr("rel").split(",")[1],i=l(this).data("permission_id");if(0<o){l(e).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var a={action:"woocommerce_revoke_access_to_download",product_id:o,download_id:t,permission_id:i,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.revoke_access_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,a,function(){l(e).fadeOut("300",function(){l(e).remove()})})}else l(e).fadeOut("300",function(){l(e).remove()})}return!1},copy_link:function(e){wcClearClipboard(),wcSetClipboard(l(this).attr("href"),l(this)),e.preventDefault()},copy_success:function(){l(this).tipTip({attribute:"data-tip",activation:"focus",fadeIn:50,fadeOut:50,delay:0}).focus()},copy_fail:function(){l(this).tipTip({attribute:"data-tip-failed",activation:"focus",fadeIn:50,fadeOut:50,delay:0}).focus()}};u.init(),c.init(),e.init(),o.init()});
1
+ jQuery(function(l){var u={states:null,init:function(){"undefined"!=typeof woocommerce_admin_meta_boxes_order&&"undefined"!=typeof woocommerce_admin_meta_boxes_order.countries&&(this.states=l.parseJSON(woocommerce_admin_meta_boxes_order.countries.replace(/&quot;/g,'"'))),l(".js_field-country").selectWoo().change(this.change_country),l(".js_field-country").trigger("change",[!0]),l(document.body).on("change","select.js_field-state",this.change_state),l("#woocommerce-order-actions input, #woocommerce-order-actions a").click(function(){window.onbeforeunload=""}),l("a.edit_address").click(this.edit_address),l("a.billing-same-as-shipping").on("click",this.copy_billing_to_shipping),l("a.load_customer_billing").on("click",this.load_billing),l("a.load_customer_shipping").on("click",this.load_shipping),l("#customer_user").on("change",this.change_customer_user)},change_country:function(e,o){if(void 0===o&&(o=!1),null!==u.states){var t=l(this),i=t.val(),a=t.parents("div.edit_address").find(":input.js_field-state"),n=a.parent(),r=a.attr("name"),c=a.attr("id"),d=t.data("woocommerce.stickState-"+i)?t.data("woocommerce.stickState-"+i):a.val(),m=a.attr("placeholder");if(o&&t.data("woocommerce.stickState-"+i,d),n.show().find(".select2-container").remove(),l.isEmptyObject(u.states[i]))a.replaceWith('<input type="text" class="js_field-state" name="'+r+'" id="'+c+'" value="'+d+'" placeholder="'+m+'" />');else{var _=l('<select name="'+r+'" id="'+c+'" class="js_field-state select short" placeholder="'+m+'"></select>'),s=u.states[i];_.append(l('<option value="">'+woocommerce_admin_meta_boxes_order.i18n_select_state_text+"</option>")),l.each(s,function(e){_.append(l('<option value="'+e+'">'+s[e]+"</option>"))}),_.val(d),a.replaceWith(_),_.show().selectWoo().hide().change()}l(document.body).trigger("contry-change.woocommerce",[i,l(this).closest("div")]),l(document.body).trigger("country-change.woocommerce",[i,l(this).closest("div")])}},change_state:function(){var e=l(this),o=e.val(),t=e.parents("div.edit_address").find(":input.js_field-country"),i=t.val();t.data("woocommerce.stickState-"+i,o)},init_tiptip:function(){l("#tiptip_holder").removeAttr("style"),l("#tiptip_arrow").removeAttr("style"),l(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})},edit_address:function(e){e.preventDefault();var o=l(this),t=o.closest(".order_data_column"),i=t.find("div.edit_address"),a=t.find("div.address"),n=i.find(".js_field-country"),r=i.find(".js_field-state");a.hide(),o.parent().find("a").toggle(),n.val()||(n.val(woocommerce_admin_meta_boxes_order.default_country).change(),r.val(woocommerce_admin_meta_boxes_order.default_state).change()),i.show()},change_customer_user:function(){l("#_billing_country").val()||(l("a.edit_address").click(),u.load_billing(!0),u.load_shipping(!0))},load_billing:function(e){if(!0===e||window.confirm(woocommerce_admin_meta_boxes.load_billing)){var o=l("#customer_user").val();if(!o)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var t={user_id:o,action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};l(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:t,type:"POST",success:function(e){e&&e.billing&&l.each(e.billing,function(e,o){l(":input#_billing_"+e).val(o).change()}),l("div.edit_address").unblock()}})}return!1},load_shipping:function(e){if(!0===e||window.confirm(woocommerce_admin_meta_boxes.load_shipping)){var o=l("#customer_user").val();if(!o)return window.alert(woocommerce_admin_meta_boxes.no_customer_selected),!1;var t={user_id:o,action:"woocommerce_get_customer_details",security:woocommerce_admin_meta_boxes.get_customer_details_nonce};l(this).closest("div.edit_address").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:t,type:"POST",success:function(e){e&&e.billing&&l.each(e.shipping,function(e,o){l(":input#_shipping_"+e).val(o).change()}),l("div.edit_address").unblock()}})}return!1},copy_billing_to_shipping:function(){return window.confirm(woocommerce_admin_meta_boxes.copy_billing)&&l('.order_data_column :input[name^="_billing_"]').each(function(){var e=l(this).attr("name");e=e.replace("_billing_","_shipping_"),l(":input#"+e).val(l(this).val()).change()}),!1}},c={init:function(){this.stupidtable.init(),l("#woocommerce-order-items").on("click","button.add-line-item",this.add_line_item).on("click","button.add-coupon",this.add_coupon).on("click","a.remove-coupon",this.remove_coupon).on("click","button.refund-items",this.refund_items).on("click",".cancel-action",this.cancel).on("click","button.add-order-item",this.add_item).on("click","button.add-order-fee",this.add_fee).on("click","button.add-order-shipping",this.add_shipping).on("click","button.add-order-tax",this.add_tax).on("click","button.save-action",this.save_line_items).on("click","a.delete-order-tax",this.delete_tax).on("click","button.calculate-action",this.recalculate).on("click","a.edit-order-item",this.edit_item).on("click","a.delete-order-item",this.delete_item).on("click",".delete_refund",this.refunds.delete_refund).on("click","button.do-api-refund, button.do-manual-refund",this.refunds.do_refund).on("change",".refund input.refund_line_total, .refund input.refund_line_tax",this.refunds.input_changed).on("change keyup",".wc-order-refund-items #refund_amount",this.refunds.amount_changed).on("change","input.refund_order_item_qty",this.refunds.refund_quantity_changed).on("change","input.quantity",this.quantity_changed).on("keyup change",".split-input :input",function(){var e=l(this).parent().prev().find(":input");e&&(""===e.val()||e.is(".match-total"))&&e.val(l(this).val()).addClass("match-total")}).on("keyup",".split-input :input",function(){l(this).removeClass("match-total")}).on("click","button.add_order_item_meta",this.item_meta.add).on("click","button.remove_order_item_meta",this.item_meta.remove).on("wc_order_items_reload",this.reload_items).on("wc_order_items_reloaded",this.reloaded_items),l(document.body).on("wc_backbone_modal_loaded",this.backbone.init).on("wc_backbone_modal_response",this.backbone.response)},block:function(){l("#woocommerce-order-items").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){l("#woocommerce-order-items").unblock()},reload_items:function(){var e={order_id:woocommerce_admin_meta_boxes.post_id,action:"woocommerce_load_order_items",security:woocommerce_admin_meta_boxes.order_item_nonce};c.block(),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock()}})},reloaded_items:function(){u.init_tiptip(),c.stupidtable.init()},quantity_changed:function(){var n=l(this).closest("tr.item"),r=l(this).val(),c=l(this).attr("data-qty"),e=l("input.line_total",n),o=l("input.line_subtotal",n),t=accounting.unformat(e.attr("data-total"),woocommerce_admin.mon_decimal_point)/c;e.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point));var i=accounting.unformat(o.attr("data-subtotal"),woocommerce_admin.mon_decimal_point)/c;o.val(parseFloat(accounting.formatNumber(i*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)),l("input.line_tax",n).each(function(){var e=l(this),o=e.data("tax_id"),t=accounting.unformat(e.attr("data-total_tax"),woocommerce_admin.mon_decimal_point)/c,i=l('input.line_subtotal_tax[data-tax_id="'+o+'"]',n),a=accounting.unformat(i.attr("data-subtotal_tax"),woocommerce_admin.mon_decimal_point)/c;0<t&&e.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)),0<a&&i.val(parseFloat(accounting.formatNumber(a*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point))}),l(this).trigger("quantity_changed")},add_line_item:function(){return l("div.wc-order-add-item").slideDown(),l("div.wc-order-data-row-toggle").not("div.wc-order-add-item").slideUp(),!1},add_coupon:function(){var e=window.prompt(woocommerce_admin_meta_boxes.i18n_apply_coupon);if(null!=e){c.block();var o={action:"woocommerce_add_coupon_discount",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,coupon:e};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})}return!1},remove_coupon:function(){var e=l(this);c.block();var o={action:"woocommerce_remove_order_coupon",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,coupon:e.data("code")};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})},refund_items:function(){return l("div.wc-order-refund-items").slideDown(),l("div.wc-order-data-row-toggle").not("div.wc-order-refund-items").slideUp(),l("div.wc-order-totals-items").slideUp(),l("#woocommerce-order-items").find("div.refund").show(),l(".wc-order-edit-line-item .wc-order-edit-line-item-actions").hide(),!1},cancel:function(){return l("div.wc-order-data-row-toggle").not("div.wc-order-bulk-actions").slideUp(),l("div.wc-order-bulk-actions").slideDown(),l("div.wc-order-totals-items").slideDown(),l("#woocommerce-order-items").find("div.refund").hide(),l(".wc-order-edit-line-item .wc-order-edit-line-item-actions").show(),"true"===l(this).attr("data-reload")&&c.reload_items(),!1},add_item:function(){return l(this).WCBackboneModal({template:"wc-modal-add-products"}),!1},add_fee:function(){var e=window.prompt(woocommerce_admin_meta_boxes.i18n_add_fee);if(null!=e){c.block();var o=l.extend({},c.get_taxable_address(),{action:"woocommerce_add_order_fee",dataType:"json",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,amount:e});l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()})}return!1},add_shipping:function(){c.block();var e={action:"woocommerce_add_order_shipping",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,dataType:"json"};return l.post(woocommerce_admin_meta_boxes.ajax_url,e,function(e){e.success?l("table.woocommerce_order_items tbody#order_shipping_line_items").append(e.data.html):window.alert(e.data.error),c.unblock()}),!1},add_tax:function(){return l(this).WCBackboneModal({template:"wc-modal-add-tax"}),!1},edit_item:function(){return l(this).closest("tr").find(".view").hide(),l(this).closest("tr").find(".edit").show(),l(this).hide(),l("button.add-line-item").click(),l("button.cancel-action").attr("data-reload",!0),!1},delete_item:function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_item_notice)){var e=l(this).closest("tr.item, tr.fee, tr.shipping").attr("data-order_item_id");c.block();var o=l.extend({},c.get_taxable_address(),{order_id:woocommerce_admin_meta_boxes.post_id,order_item_ids:e,action:"woocommerce_remove_order_item",security:woocommerce_admin_meta_boxes.order_item_nonce});"true"===l("button.cancel-action").attr("data-reload")&&(o.items=l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize()),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:o,type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()}})}return!1},delete_tax:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_tax)){c.block();var e={action:"woocommerce_remove_order_tax",rate_id:l(this).attr("data-rate_id"),order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):window.alert(e.data.error),c.unblock()}})}return!1},get_taxable_address:function(){var e="",o="",t="",i="";return"shipping"===woocommerce_admin_meta_boxes.tax_based_on&&(e=l("#_shipping_country").val(),o=l("#_shipping_state").val(),t=l("#_shipping_postcode").val(),i=l("#_shipping_city").val()),"billing"!==woocommerce_admin_meta_boxes.tax_based_on&&e||(e=l("#_billing_country").val(),o=l("#_billing_state").val(),t=l("#_billing_postcode").val(),i=l("#_billing_city").val()),{country:e,state:o,postcode:t,city:i}},recalculate:function(){if(window.confirm(woocommerce_admin_meta_boxes.calc_totals)){c.block();var e=l.extend({},c.get_taxable_address(),{action:"woocommerce_calc_line_taxes",order_id:woocommerce_admin_meta_boxes.post_id,items:l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize(),security:woocommerce_admin_meta_boxes.calc_totals_nonce});l(document.body).trigger("order-totals-recalculate-before",e),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock(),l(document.body).trigger("order-totals-recalculate-success",e)},complete:function(e){l(document.body).trigger("order-totals-recalculate-complete",e)}})}return!1},save_line_items:function(){var e={order_id:woocommerce_admin_meta_boxes.post_id,items:l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize(),action:"woocommerce_save_order_items",security:woocommerce_admin_meta_boxes.order_item_nonce};return c.block(),l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:e,type:"POST",success:function(e){l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e),c.reloaded_items(),c.unblock()}}),l(this).trigger("items_saved"),!1},refunds:{do_refund:function(){if(c.block(),window.confirm(woocommerce_admin_meta_boxes.i18n_do_refund)){var e=l("input#refund_amount").val(),o=l("input#refund_reason").val(),t=l("input#refunded_amount").val(),i={},a={},n={};l(".refund input.refund_order_item_qty").each(function(e,o){l(o).closest("tr").data("order_item_id")&&o.value&&(i[l(o).closest("tr").data("order_item_id")]=o.value)}),l(".refund input.refund_line_total").each(function(e,o){l(o).closest("tr").data("order_item_id")&&(a[l(o).closest("tr").data("order_item_id")]=accounting.unformat(o.value,woocommerce_admin.mon_decimal_point))}),l(".refund input.refund_line_tax").each(function(e,o){if(l(o).closest("tr").data("order_item_id")){var t=l(o).data("tax_id");n[l(o).closest("tr").data("order_item_id")]||(n[l(o).closest("tr").data("order_item_id")]={}),n[l(o).closest("tr").data("order_item_id")][t]=accounting.unformat(o.value,woocommerce_admin.mon_decimal_point)}});var r={action:"woocommerce_refund_line_items",order_id:woocommerce_admin_meta_boxes.post_id,refund_amount:e,refunded_amount:t,refund_reason:o,line_item_qtys:JSON.stringify(i,null,""),line_item_totals:JSON.stringify(a,null,""),line_item_tax_totals:JSON.stringify(n,null,""),api_refund:l(this).is(".do-api-refund"),restock_refunded_items:l("#restock_refunded_items:checked").length?"true":"false",security:woocommerce_admin_meta_boxes.order_item_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,r,function(e){!0===e.success?window.location.reload():(window.alert(e.data.error),c.reload_items(),c.unblock())})}else c.unblock()},delete_refund:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_refund)){var e=l(this).closest("tr.refund").attr("data-order_refund_id");c.block();var o={action:"woocommerce_delete_refund",refund_id:e,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:o,type:"POST",success:function(){c.reload_items()}})}return!1},input_changed:function(){var t=0;l(".woocommerce_order_items").find("tr.item, tr.fee, tr.shipping").each(function(){l(this).find(".refund input:not(.refund_order_item_qty)").each(function(e,o){t+=parseFloat(accounting.unformat(l(o).val()||0,woocommerce_admin.mon_decimal_point))})}),l("#refund_amount").val(accounting.formatNumber(t,woocommerce_admin_meta_boxes.currency_format_num_decimals,"",woocommerce_admin.mon_decimal_point)).change()},amount_changed:function(){var e=accounting.unformat(l(this).val(),woocommerce_admin.mon_decimal_point);l("button .wc-order-refund-amount .amount").text(accounting.formatMoney(e,{symbol:woocommerce_admin_meta_boxes.currency_format_symbol,decimal:woocommerce_admin_meta_boxes.currency_format_decimal_sep,thousand:woocommerce_admin_meta_boxes.currency_format_thousand_sep,precision:woocommerce_admin_meta_boxes.currency_format_num_decimals,format:woocommerce_admin_meta_boxes.currency_format}))},refund_quantity_changed:function(){var a=l(this).closest("tr.item"),n=a.find("input.quantity").val(),r=l(this).val(),e=l("input.line_total",a),o=l("input.refund_line_total",a),t=accounting.unformat(e.attr("data-total"),woocommerce_admin.mon_decimal_point)/n;o.val(parseFloat(accounting.formatNumber(t*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)).change(),l(".refund_line_tax",a).each(function(){var e=l(this),o=e.data("tax_id"),t=l('input.line_tax[data-tax_id="'+o+'"]',a),i=accounting.unformat(t.data("total_tax"),woocommerce_admin.mon_decimal_point)/n;0<i?e.val(parseFloat(accounting.formatNumber(i*r,woocommerce_admin_meta_boxes.rounding_precision,"")).toString().replace(".",woocommerce_admin.mon_decimal_point)).change():e.val(0).change()}),0<r?l("#restock_refunded_items").closest("tr").show():(l("#restock_refunded_items").closest("tr").hide(),l(".woocommerce_order_items input.refund_order_item_qty").each(function(){0<l(this).val()&&l("#restock_refunded_items").closest("tr").show()})),l(this).trigger("refund_quantity_changed")}},item_meta:{add:function(){var e=l(this).closest("tr.item, tr.shipping"),o=e.find("tbody.meta_items"),t=o.find("tr").length+1,i='<tr data-meta_id="0"><td><input type="text" maxlength="255" placeholder="'+woocommerce_admin_meta_boxes_order.placeholder_name+'" name="meta_key['+e.attr("data-order_item_id")+"][new-"+t+']" /><textarea placeholder="'+woocommerce_admin_meta_boxes_order.placeholder_value+'" name="meta_value['+e.attr("data-order_item_id")+"][new-"+t+']"></textarea></td><td width="1%"><button class="remove_order_item_meta button">&times;</button></td></tr>';return o.append(i),!1},remove:function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_item_meta)){var e=l(this).closest("tr");e.find(":input").val(""),e.hide()}return!1}},backbone:{init:function(e,o){"wc-modal-add-products"===o&&(l(document.body).trigger("wc-enhanced-select-init"),l(this).on("change",".wc-product-search",function(){if(l(this).closest("tr").is(":last-child")){var e=l(this).closest("table.widefat").find("tbody"),o=e.find("tr").length,t=e.data("row").replace(/\[0\]/g,"["+o+"]");e.append("<tr>"+t+"</tr>"),l(document.body).trigger("wc-enhanced-select-init")}}))},response:function(e,o,t){if("wc-modal-add-tax"===o){var i=t.add_order_tax,a="";t.manual_tax_rate_id&&(a=t.manual_tax_rate_id),c.backbone.add_tax(i,a)}if("wc-modal-add-products"===o){var n=l(this).find("table.widefat").find("tbody").find("tr"),r=[];return l(n).each(function(){var e=l(this).find(':input[name="item_id"]').val(),o=l(this).find(':input[name="item_qty"]').val();r.push({id:e,qty:o||1})}),c.backbone.add_items(r)}},add_items:function(e){c.block();var o={action:"woocommerce_add_order_item",order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce,data:e};"true"===l("button.cancel-action").attr("data-reload")&&(o.items=l("table.woocommerce_order_items :input[name], .wc-order-totals-items :input[name]").serialize()),l.ajax({type:"POST",url:woocommerce_admin_meta_boxes.ajax_url,data:o,success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items(),c.unblock()):(c.unblock(),window.alert(e.data.error))},dataType:"json"})},add_tax:function(e,o){if(o&&(e=o),!e)return!1;var t=l(".order-tax-id").map(function(){return l(this).val()}).get();if(-1===l.inArray(e,t)){c.block();var i={action:"woocommerce_add_order_tax",rate_id:e,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.order_item_nonce};l.ajax({url:woocommerce_admin_meta_boxes.ajax_url,data:i,dataType:"json",type:"POST",success:function(e){e.success?(l("#woocommerce-order-items").find(".inside").empty(),l("#woocommerce-order-items").find(".inside").append(e.data.html),c.reloaded_items()):window.alert(e.data.error),c.unblock()}})}else window.alert(woocommerce_admin_meta_boxes.i18n_tax_rate_already_exists)}},stupidtable:{init:function(){l(".woocommerce_order_items").stupidtable(),l(".woocommerce_order_items").on("aftertablesort",this.add_arrows)},add_arrows:function(e,o){var t=l(this).find("th"),i="asc"===o.direction?"&uarr;":"&darr;",a=o.column;t.find(".wc-arrow").remove(),t.eq(a).append('<span class="wc-arrow">'+i+"</span>")}}},e={init:function(){l("#woocommerce-order-notes").on("click","button.add_note",this.add_order_note).on("click","a.delete_note",this.delete_order_note)},add_order_note:function(){if(l("textarea#add_order_note").val()){l("#woocommerce-order-notes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var e={action:"woocommerce_add_order_note",post_id:woocommerce_admin_meta_boxes.post_id,note:l("textarea#add_order_note").val(),note_type:l("select#order_note_type").val(),security:woocommerce_admin_meta_boxes.add_order_note_nonce};return l.post(woocommerce_admin_meta_boxes.ajax_url,e,function(e){l("ul.order_notes").prepend(e),l("#woocommerce-order-notes").unblock(),l("#add_order_note").val("")}),!1}},delete_order_note:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_delete_note)){var e=l(this).closest("li.note");l(e).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var o={action:"woocommerce_delete_order_note",note_id:l(e).attr("rel"),security:woocommerce_admin_meta_boxes.delete_order_note_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(){l(e).remove()})}return!1}},o={init:function(){l(".order_download_permissions").on("click","button.grant_access",this.grant_access).on("click","button.revoke_access",this.revoke_access).on("click","#copy-download-link",this.copy_link).on("aftercopy","#copy-download-link",this.copy_success).on("aftercopyfailure","#copy-download-link",this.copy_fail)},grant_access:function(){var e=l("#grant_access_id").val();if(e){l(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var o={action:"woocommerce_grant_access_to_download",product_ids:e,loop:l(".order_download_permissions .wc-metabox").length,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.grant_access_nonce};return l.post(woocommerce_admin_meta_boxes.ajax_url,o,function(e){e?l(".order_download_permissions .wc-metaboxes").append(e):window.alert(woocommerce_admin_meta_boxes.i18n_download_permission_fail),l(document.body).trigger("wc-init-datepickers"),l("#grant_access_id").val("").change(),l(".order_download_permissions").unblock()}),!1}},revoke_access:function(){if(window.confirm(woocommerce_admin_meta_boxes.i18n_permission_revoke)){var e=l(this).parent().parent(),o=l(this).attr("rel").split(",")[0],t=l(this).attr("rel").split(",")[1],i=l(this).data("permission_id");if(0<o){l(e).block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var a={action:"woocommerce_revoke_access_to_download",product_id:o,download_id:t,permission_id:i,order_id:woocommerce_admin_meta_boxes.post_id,security:woocommerce_admin_meta_boxes.revoke_access_nonce};l.post(woocommerce_admin_meta_boxes.ajax_url,a,function(){l(e).fadeOut("300",function(){l(e).remove()})})}else l(e).fadeOut("300",function(){l(e).remove()})}return!1},copy_link:function(e){wcClearClipboard(),wcSetClipboard(l(this).attr("href"),l(this)),e.preventDefault()},copy_success:function(){l(this).tipTip({attribute:"data-tip",activation:"focus",fadeIn:50,fadeOut:50,delay:0}).focus()},copy_fail:function(){l(this).tipTip({attribute:"data-tip-failed",activation:"focus",fadeIn:50,fadeOut:50,delay:0}).focus()}};u.init(),c.init(),e.init(),o.init()});
assets/js/admin/meta-boxes-product-variation.js CHANGED
@@ -329,7 +329,13 @@ jQuery( function( $ ) {
329
  .on( 'change', '#variable_product_options .woocommerce_variations :input', this.input_changed )
330
  .on( 'change', '.variations-defaults select', this.defaults_changed );
331
 
332
- $( 'form#post' ).on( 'submit', this.save_on_submit );
 
 
 
 
 
 
333
 
334
  $( '.wc-metaboxes-wrapper' ).on( 'click', 'a.do_variation_action', this.do_variation_action );
335
  },
@@ -524,7 +530,14 @@ jQuery( function( $ ) {
524
  * After saved, continue with form submission
525
  */
526
  save_on_submit_done: function() {
527
- $( 'form#post' ).submit();
 
 
 
 
 
 
 
528
  },
529
 
530
  /**
329
  .on( 'change', '#variable_product_options .woocommerce_variations :input', this.input_changed )
330
  .on( 'change', '.variations-defaults select', this.defaults_changed );
331
 
332
+ var postForm = $( 'form#post' );
333
+
334
+ postForm.on( 'submit', this.save_on_submit );
335
+
336
+ $( 'input:submit', postForm ).bind( 'click keypress', function() {
337
+ postForm.data( 'callerid', this.id );
338
+ });
339
 
340
  $( '.wc-metaboxes-wrapper' ).on( 'click', 'a.do_variation_action', this.do_variation_action );
341
  },
530
  * After saved, continue with form submission
531
  */
532
  save_on_submit_done: function() {
533
+ var postForm = $( 'form#post' ),
534
+ callerid = postForm.data( 'callerid' );
535
+
536
+ if ( 'publish' === callerid ) {
537
+ postForm.append('<input type="hidden" name="publish" value="1" />').submit();
538
+ } else {
539
+ postForm.append('<input type="hidden" name="save-post" value="1" />').submit();
540
+ }
541
  },
542
 
543
  /**
assets/js/admin/meta-boxes-product-variation.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(d){"use strict";var o={init:function(){d("#variable_product_options").on("change","input.variable_is_downloadable",this.variable_is_downloadable).on("change","input.variable_is_virtual",this.variable_is_virtual).on("change","input.variable_manage_stock",this.variable_manage_stock).on("click","button.notice-dismiss",this.notice_dismiss).on("click","h3 .sort",this.set_menu_order).on("reload",this.reload),d("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock").change(),d("#woocommerce-product-data").on("woocommerce_variations_loaded",this.variations_loaded),d(document.body).on("woocommerce_variations_added",this.variation_added)},reload:function(){n.load_variations(1),m.set_paginav(0)},variable_is_downloadable:function(){d(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").hide(),d(this).is(":checked")&&d(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").show()},variable_is_virtual:function(){d(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").show(),d(this).is(":checked")&&d(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").hide()},variable_manage_stock:function(){d(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").hide(),d(this).closest(".woocommerce_variation").find(".hide_if_variation_manage_stock").show(),d(this).is(":checked")&&(d(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").show(),d(this).closest(".woocommerce_variation").find(".hide_if_variation_manage_stock").hide())},notice_dismiss:function(){d(this).closest("div.notice").remove()},variations_loaded:function(a,e){e=e||!1;var i=d("#woocommerce-product-data");e||(d("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock",i).change(),d(".woocommerce_variation",i).each(function(a,e){var i=d(e),o=d(".sale_price_dates_from",i).val(),t=d(".sale_price_dates_to",i).val();""===o&&""===t||d("a.sale_schedule",i).click()}),d(".woocommerce_variations .variation-needs-update",i).removeClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes",i).attr("disabled","disabled")),d("#tiptip_holder").removeAttr("style"),d("#tiptip_arrow").removeAttr("style"),d(".woocommerce_variations .tips, .woocommerce_variations .help_tip, .woocommerce_variations .woocommerce-help-tip",i).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),d(".sale_price_dates_fields",i).find("input").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,onSelect:function(){var a=d(this).is(".sale_price_dates_from")?"minDate":"maxDate",e=d(this).closest(".sale_price_dates_fields").find("input"),i=d(this).datepicker("getDate");e.not(this).datepicker("option",a,i),d(this).change()}}),d(".woocommerce_variations",i).sortable({items:".woocommerce_variation",cursor:"move",axis:"y",handle:".sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,stop:function(){o.variation_row_indexes()}}),d(document.body).trigger("wc-enhanced-select-init")},variation_added:function(a,e){1===e&&o.variations_loaded(null,!0)},set_menu_order:function(a){a.preventDefault();var e=d(this).closest(".woocommerce_variation").find(".variation_menu_order"),i=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_menu_order,e.val());null!=i&&(e.val(parseInt(i,10)).change(),n.save_variations())},variation_row_indexes:function(){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10),i=parseInt((e-1)*woocommerce_admin_meta_boxes_variations.variations_per_page,10);d(".woocommerce_variations .woocommerce_variation").each(function(a,e){d(".variation_menu_order",e).val(parseInt(d(e).index(".woocommerce_variations .woocommerce_variation"),10)+1+i).change()})}},t={variable_image_frame:null,setting_variation_image_id:null,setting_variation_image:null,wp_media_post_id:wp.media.model.settings.post.id,init:function(){d("#variable_product_options").on("click",".upload_image_button",this.add_image),d("a.add_media").on("click",this.restore_wp_media_post_id)},add_image:function(a){var e=d(this),i=e.attr("rel"),o=e.closest(".upload_image");if(t.setting_variation_image=o,t.setting_variation_image_id=i,a.preventDefault(),e.is(".remove"))d(".upload_image_id",t.setting_variation_image).val("").change(),t.setting_variation_image.find("img").eq(0).attr("src",woocommerce_admin_meta_boxes_variations.woocommerce_placeholder_img_src),t.setting_variation_image.find(".upload_image_button").removeClass("remove");else{if(t.variable_image_frame)return t.variable_image_frame.uploader.uploader.param("post_id",t.setting_variation_image_id),void t.variable_image_frame.open();wp.media.model.settings.post.id=t.setting_variation_image_id,t.variable_image_frame=wp.media.frames.variable_image=wp.media({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,button:{text:woocommerce_admin_meta_boxes_variations.i18n_set_image},states:[new wp.media.controller.Library({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,filterable:"all"})]}),t.variable_image_frame.on("select",function(){var a=t.variable_image_frame.state().get("selection").first().toJSON(),e=a.sizes&&a.sizes.thumbnail?a.sizes.thumbnail.url:a.url;d(".upload_image_id",t.setting_variation_image).val(a.id).change(),t.setting_variation_image.find(".upload_image_button").addClass("remove"),t.setting_variation_image.find("img").eq(0).attr("src",e),wp.media.model.settings.post.id=t.wp_media_post_id}),t.variable_image_frame.open()}},restore_wp_media_post_id:function(){wp.media.model.settings.post.id=t.wp_media_post_id}},n={init:function(){d("li.variations_tab a").on("click",this.initial_load),d("#variable_product_options").on("click","button.save-variation-changes",this.save_variations).on("click","button.cancel-variation-changes",this.cancel_variations).on("click",".remove_variation",this.remove_variation),d(document.body).on("change","#variable_product_options .woocommerce_variations :input",this.input_changed).on("change",".variations-defaults select",this.defaults_changed),d("form#post").on("submit",this.save_on_submit),d(".wc-metaboxes-wrapper").on("click","a.do_variation_action",this.do_variation_action)},check_for_changes:function(){var a=d("#variable_product_options").find(".woocommerce_variations .variation-needs-update");if(0<a.length){if(!window.confirm(woocommerce_admin_meta_boxes_variations.i18n_edited_variations))return a.removeClass("variation-needs-update"),!1;n.save_changes()}return!0},block:function(){d("#woocommerce-product-data").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){d("#woocommerce-product-data").unblock()},initial_load:function(){0===d("#variable_product_options").find(".woocommerce_variations .woocommerce_variation").length&&m.go_to_page()},load_variations:function(e,a){e=e||1,a=a||woocommerce_admin_meta_boxes_variations.variations_per_page;var i=d("#variable_product_options").find(".woocommerce_variations");n.block(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:{action:"woocommerce_load_variations",security:woocommerce_admin_meta_boxes_variations.load_variations_nonce,product_id:woocommerce_admin_meta_boxes_variations.post_id,attributes:i.data("attributes"),page:e,per_page:a},type:"POST",success:function(a){i.empty().append(a).attr("data-page",e),d("#woocommerce-product-data").trigger("woocommerce_variations_loaded"),n.unblock()}})},get_variations_fields:function(a){var o=d(":input",a).serializeJSON();return d(".variations-defaults select").each(function(a,e){var i=d(e);o[i.attr("name")]=i.val()}),o},save_changes:function(e){var a=d("#variable_product_options").find(".woocommerce_variations"),i=d(".variation-needs-update",a),o={};0<i.length&&(n.block(),(o=n.get_variations_fields(i)).action="woocommerce_save_variations",o.security=woocommerce_admin_meta_boxes_variations.save_variations_nonce,o.product_id=woocommerce_admin_meta_boxes_variations.post_id,o["product-type"]=d("#product-type").val(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:o,type:"POST",success:function(a){i.removeClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").attr("disabled","disabled"),d("#woocommerce-product-data").trigger("woocommerce_variations_saved"),"function"==typeof e&&e(a),n.unblock()}}))},save_variations:function(){return d("#variable_product_options").trigger("woocommerce_variations_save_variations_button"),n.save_changes(function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=e.attr("data-page");d("#variable_product_options").find("#woocommerce_errors").remove(),a&&e.before(a),d(".variations-defaults select").each(function(){d(this).attr("data-current",d(this).val())}),m.go_to_page(i)}),!1},save_on_submit:function(a){0<d("#variable_product_options").find(".woocommerce_variations .variation-needs-update").length&&(a.preventDefault(),d("#variable_product_options").trigger("woocommerce_variations_save_variations_on_submit"),n.save_changes(n.save_on_submit_done))},save_on_submit_done:function(){d("form#post").submit()},cancel_variations:function(){var a=parseInt(d("#variable_product_options").find(".woocommerce_variations").attr("data-page"),10);return d("#variable_product_options").find(".woocommerce_variations .variation-needs-update").removeClass("variation-needs-update"),d(".variations-defaults select").each(function(){d(this).val(d(this).attr("data-current"))}),m.go_to_page(a),!1},add_variation:function(){n.block();var a={action:"woocommerce_add_variation",post_id:woocommerce_admin_meta_boxes_variations.post_id,loop:d(".woocommerce_variation").length,security:woocommerce_admin_meta_boxes_variations.add_variation_nonce};return d.post(woocommerce_admin_meta_boxes_variations.ajax_url,a,function(a){var e=d(a);e.addClass("variation-needs-update"),d("#variable_product_options").find(".woocommerce_variations").prepend(e),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_added",1),n.unblock()}),!1},remove_variation:function(){if(n.check_for_changes(),window.confirm(woocommerce_admin_meta_boxes_variations.i18n_remove_variation)){var a=d(this).attr("rel"),e=[],i={action:"woocommerce_remove_variations"};n.block(),0<a?(e.push(a),i.variation_ids=e,i.security=woocommerce_admin_meta_boxes_variations.delete_variations_nonce,d.post(woocommerce_admin_meta_boxes_variations.ajax_url,i,function(){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10),i=Math.ceil((parseInt(a.attr("data-total"),10)-1)/woocommerce_admin_meta_boxes_variations.variations_per_page),o=1;d("#woocommerce-product-data").trigger("woocommerce_variations_removed"),e===i||e<=i?o=e:i<e&&0!==i&&(o=i),m.go_to_page(o,-1)})):n.unblock()}return!1},link_all_variations:function(){if(n.check_for_changes(),window.confirm(woocommerce_admin_meta_boxes_variations.i18n_link_all_variations)){n.block();var a={action:"woocommerce_link_all_variations",post_id:woocommerce_admin_meta_boxes_variations.post_id,security:woocommerce_admin_meta_boxes_variations.link_variation_nonce};d.post(woocommerce_admin_meta_boxes_variations.ajax_url,a,function(a){var e=parseInt(a,10);1===e?window.alert(e+" "+woocommerce_admin_meta_boxes_variations.i18n_variation_added):0===e||1<e?window.alert(e+" "+woocommerce_admin_meta_boxes_variations.i18n_variations_added):window.alert(woocommerce_admin_meta_boxes_variations.i18n_no_variations_added),0<e?(m.go_to_page(1,e),d("#variable_product_options").trigger("woocommerce_variations_added",e)):n.unblock()})}return!1},input_changed:function(){d(this).closest(".woocommerce_variation").addClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_input_changed")},defaults_changed:function(){d(this).closest("#variable_product_options").find(".woocommerce_variation:first").addClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_defaults_changed")},do_variation_action:function(){var a,e=d("select.variation_actions").val(),i={},o=0;switch(e){case"add_variation":return void n.add_variation();case"link_all_variations":return void n.link_all_variations();case"delete_all":window.confirm(woocommerce_admin_meta_boxes_variations.i18n_delete_all_variations)&&window.confirm(woocommerce_admin_meta_boxes_variations.i18n_last_warning)&&(i.allowed=!0,o=-1*parseInt(d("#variable_product_options").find(".woocommerce_variations").attr("data-total"),10));break;case"variable_regular_price_increase":case"variable_regular_price_decrease":case"variable_sale_price_increase":case"variable_sale_price_decrease":if(null==(a=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value_fixed_or_percent)))return;0<=a.indexOf("%")?i.value=accounting.unformat(a.replace(/\%/,""),woocommerce_admin.mon_decimal_point)+"%":i.value=accounting.unformat(a,woocommerce_admin.mon_decimal_point);break;case"variable_regular_price":case"variable_sale_price":case"variable_stock":case"variable_weight":case"variable_length":case"variable_width":case"variable_height":case"variable_download_limit":case"variable_download_expiry":if(null==(a=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value)))return;i.value=a;break;case"variable_sale_schedule":if(i.date_from=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_start),i.date_to=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_end),null===i.date_from&&(i.date_from=!1),null===i.date_to&&(i.date_to=!1),!1===i.date_to&&!1===i.date_from)return;break;default:d("select.variation_actions").trigger(e),i=d("select.variation_actions").triggerHandler(e+"_ajax_data",i)}"delete_all"===e&&i.allowed?d("#variable_product_options").find(".variation-needs-update").removeClass("variation-needs-update"):n.check_for_changes(),n.block(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:{action:"woocommerce_bulk_edit_variations",security:woocommerce_admin_meta_boxes_variations.bulk_edit_variations_nonce,product_id:woocommerce_admin_meta_boxes_variations.post_id,product_type:d("#product-type").val(),bulk_action:e,data:i},type:"POST",success:function(){m.go_to_page(1,o)}})}},m={init:function(){d(document.body).on("woocommerce_variations_added",this.update_single_quantity).on("change",".variations-pagenav .page-selector",this.page_selector).on("click",".variations-pagenav .first-page",this.first_page).on("click",".variations-pagenav .prev-page",this.prev_page).on("click",".variations-pagenav .next-page",this.next_page).on("click",".variations-pagenav .last-page",this.last_page)},update_variations_count:function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=parseInt(e.attr("data-total"),10)+a,o=d(".variations-pagenav .displaying-num");return e.attr("data-total",i),1===i?o.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_single.replace("%qty%",i)):o.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_plural.replace("%qty%",i)),i},update_single_quantity:function(a,e){if(1===e){var i=d(".variations-pagenav");m.update_variations_count(e),i.is(":hidden")&&(d("option, optgroup",".variation_actions").show(),d(".variation_actions").val("add_variation"),d("#variable_product_options").find(".toolbar").show(),i.show(),d(".pagination-links",i).hide())}},set_paginav:function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=m.update_variations_count(a),o=d("#variable_product_options").find(".toolbar"),t=d(".variation_actions"),n=d(".variations-pagenav"),r=d(".pagination-links",n),_=Math.ceil(i/woocommerce_admin_meta_boxes_variations.variations_per_page),s="";e.attr("data-total_pages",_),d(".total-pages",n).text(_);for(var c=1;c<=_;c++)s+='<option value="'+c+'">'+c+"</option>";d(".page-selector",n).empty().html(s),0===i?(o.not(".toolbar-top, .toolbar-buttons").hide(),n.hide(),d("option, optgroup",t).hide(),d(".variation_actions").val("add_variation"),d('option[data-global="true"]',t).show()):(o.show(),n.show(),d("option, optgroup",t).show(),d(".variation_actions").val("add_variation"),1===_?r.hide():r.show())},check_is_enabled:function(a){return!d(a).hasClass("disabled")},change_classes:function(a,e){var i=d(".variations-pagenav .first-page"),o=d(".variations-pagenav .prev-page"),t=d(".variations-pagenav .next-page"),n=d(".variations-pagenav .last-page");1===a?(i.addClass("disabled"),o.addClass("disabled")):(i.removeClass("disabled"),o.removeClass("disabled")),e===a?(t.addClass("disabled"),n.addClass("disabled")):(t.removeClass("disabled"),n.removeClass("disabled"))},set_page:function(a){d(".variations-pagenav .page-selector").val(a).first().change()},go_to_page:function(a,e){a=a||1,e=e||0,m.set_paginav(e),m.set_page(a)},page_selector:function(){var a=parseInt(d(this).val(),10),e=d("#variable_product_options").find(".woocommerce_variations");d(".variations-pagenav .page-selector").val(a),n.check_for_changes(),m.change_classes(a,parseInt(e.attr("data-total_pages"),10)),n.load_variations(a)},first_page:function(){return m.check_is_enabled(this)&&m.set_page(1),!1},prev_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10)-1,i=0<e?e:1;m.set_page(i)}return!1},next_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-total_pages"),10),i=parseInt(a.attr("data-page"),10)+1,o=i<=e?i:e;m.set_page(o)}return!1},last_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations").attr("data-total_pages");m.set_page(a)}return!1}};o.init(),t.init(),n.init(),m.init()});
1
+ jQuery(function(d){"use strict";var o={init:function(){d("#variable_product_options").on("change","input.variable_is_downloadable",this.variable_is_downloadable).on("change","input.variable_is_virtual",this.variable_is_virtual).on("change","input.variable_manage_stock",this.variable_manage_stock).on("click","button.notice-dismiss",this.notice_dismiss).on("click","h3 .sort",this.set_menu_order).on("reload",this.reload),d("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock").change(),d("#woocommerce-product-data").on("woocommerce_variations_loaded",this.variations_loaded),d(document.body).on("woocommerce_variations_added",this.variation_added)},reload:function(){n.load_variations(1),m.set_paginav(0)},variable_is_downloadable:function(){d(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").hide(),d(this).is(":checked")&&d(this).closest(".woocommerce_variation").find(".show_if_variation_downloadable").show()},variable_is_virtual:function(){d(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").show(),d(this).is(":checked")&&d(this).closest(".woocommerce_variation").find(".hide_if_variation_virtual").hide()},variable_manage_stock:function(){d(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").hide(),d(this).closest(".woocommerce_variation").find(".hide_if_variation_manage_stock").show(),d(this).is(":checked")&&(d(this).closest(".woocommerce_variation").find(".show_if_variation_manage_stock").show(),d(this).closest(".woocommerce_variation").find(".hide_if_variation_manage_stock").hide())},notice_dismiss:function(){d(this).closest("div.notice").remove()},variations_loaded:function(a,e){e=e||!1;var i=d("#woocommerce-product-data");e||(d("input.variable_is_downloadable, input.variable_is_virtual, input.variable_manage_stock",i).change(),d(".woocommerce_variation",i).each(function(a,e){var i=d(e),o=d(".sale_price_dates_from",i).val(),t=d(".sale_price_dates_to",i).val();""===o&&""===t||d("a.sale_schedule",i).click()}),d(".woocommerce_variations .variation-needs-update",i).removeClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes",i).attr("disabled","disabled")),d("#tiptip_holder").removeAttr("style"),d("#tiptip_arrow").removeAttr("style"),d(".woocommerce_variations .tips, .woocommerce_variations .help_tip, .woocommerce_variations .woocommerce-help-tip",i).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),d(".sale_price_dates_fields",i).find("input").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,onSelect:function(){var a=d(this).is(".sale_price_dates_from")?"minDate":"maxDate",e=d(this).closest(".sale_price_dates_fields").find("input"),i=d(this).datepicker("getDate");e.not(this).datepicker("option",a,i),d(this).change()}}),d(".woocommerce_variations",i).sortable({items:".woocommerce_variation",cursor:"move",axis:"y",handle:".sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,stop:function(){o.variation_row_indexes()}}),d(document.body).trigger("wc-enhanced-select-init")},variation_added:function(a,e){1===e&&o.variations_loaded(null,!0)},set_menu_order:function(a){a.preventDefault();var e=d(this).closest(".woocommerce_variation").find(".variation_menu_order"),i=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_menu_order,e.val());null!=i&&(e.val(parseInt(i,10)).change(),n.save_variations())},variation_row_indexes:function(){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10),i=parseInt((e-1)*woocommerce_admin_meta_boxes_variations.variations_per_page,10);d(".woocommerce_variations .woocommerce_variation").each(function(a,e){d(".variation_menu_order",e).val(parseInt(d(e).index(".woocommerce_variations .woocommerce_variation"),10)+1+i).change()})}},t={variable_image_frame:null,setting_variation_image_id:null,setting_variation_image:null,wp_media_post_id:wp.media.model.settings.post.id,init:function(){d("#variable_product_options").on("click",".upload_image_button",this.add_image),d("a.add_media").on("click",this.restore_wp_media_post_id)},add_image:function(a){var e=d(this),i=e.attr("rel"),o=e.closest(".upload_image");if(t.setting_variation_image=o,t.setting_variation_image_id=i,a.preventDefault(),e.is(".remove"))d(".upload_image_id",t.setting_variation_image).val("").change(),t.setting_variation_image.find("img").eq(0).attr("src",woocommerce_admin_meta_boxes_variations.woocommerce_placeholder_img_src),t.setting_variation_image.find(".upload_image_button").removeClass("remove");else{if(t.variable_image_frame)return t.variable_image_frame.uploader.uploader.param("post_id",t.setting_variation_image_id),void t.variable_image_frame.open();wp.media.model.settings.post.id=t.setting_variation_image_id,t.variable_image_frame=wp.media.frames.variable_image=wp.media({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,button:{text:woocommerce_admin_meta_boxes_variations.i18n_set_image},states:[new wp.media.controller.Library({title:woocommerce_admin_meta_boxes_variations.i18n_choose_image,filterable:"all"})]}),t.variable_image_frame.on("select",function(){var a=t.variable_image_frame.state().get("selection").first().toJSON(),e=a.sizes&&a.sizes.thumbnail?a.sizes.thumbnail.url:a.url;d(".upload_image_id",t.setting_variation_image).val(a.id).change(),t.setting_variation_image.find(".upload_image_button").addClass("remove"),t.setting_variation_image.find("img").eq(0).attr("src",e),wp.media.model.settings.post.id=t.wp_media_post_id}),t.variable_image_frame.open()}},restore_wp_media_post_id:function(){wp.media.model.settings.post.id=t.wp_media_post_id}},n={init:function(){d("li.variations_tab a").on("click",this.initial_load),d("#variable_product_options").on("click","button.save-variation-changes",this.save_variations).on("click","button.cancel-variation-changes",this.cancel_variations).on("click",".remove_variation",this.remove_variation),d(document.body).on("change","#variable_product_options .woocommerce_variations :input",this.input_changed).on("change",".variations-defaults select",this.defaults_changed);var a=d("form#post");a.on("submit",this.save_on_submit),d("input:submit",a).bind("click keypress",function(){a.data("callerid",this.id)}),d(".wc-metaboxes-wrapper").on("click","a.do_variation_action",this.do_variation_action)},check_for_changes:function(){var a=d("#variable_product_options").find(".woocommerce_variations .variation-needs-update");if(0<a.length){if(!window.confirm(woocommerce_admin_meta_boxes_variations.i18n_edited_variations))return a.removeClass("variation-needs-update"),!1;n.save_changes()}return!0},block:function(){d("#woocommerce-product-data").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){d("#woocommerce-product-data").unblock()},initial_load:function(){0===d("#variable_product_options").find(".woocommerce_variations .woocommerce_variation").length&&m.go_to_page()},load_variations:function(e,a){e=e||1,a=a||woocommerce_admin_meta_boxes_variations.variations_per_page;var i=d("#variable_product_options").find(".woocommerce_variations");n.block(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:{action:"woocommerce_load_variations",security:woocommerce_admin_meta_boxes_variations.load_variations_nonce,product_id:woocommerce_admin_meta_boxes_variations.post_id,attributes:i.data("attributes"),page:e,per_page:a},type:"POST",success:function(a){i.empty().append(a).attr("data-page",e),d("#woocommerce-product-data").trigger("woocommerce_variations_loaded"),n.unblock()}})},get_variations_fields:function(a){var o=d(":input",a).serializeJSON();return d(".variations-defaults select").each(function(a,e){var i=d(e);o[i.attr("name")]=i.val()}),o},save_changes:function(e){var a=d("#variable_product_options").find(".woocommerce_variations"),i=d(".variation-needs-update",a),o={};0<i.length&&(n.block(),(o=n.get_variations_fields(i)).action="woocommerce_save_variations",o.security=woocommerce_admin_meta_boxes_variations.save_variations_nonce,o.product_id=woocommerce_admin_meta_boxes_variations.post_id,o["product-type"]=d("#product-type").val(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:o,type:"POST",success:function(a){i.removeClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").attr("disabled","disabled"),d("#woocommerce-product-data").trigger("woocommerce_variations_saved"),"function"==typeof e&&e(a),n.unblock()}}))},save_variations:function(){return d("#variable_product_options").trigger("woocommerce_variations_save_variations_button"),n.save_changes(function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=e.attr("data-page");d("#variable_product_options").find("#woocommerce_errors").remove(),a&&e.before(a),d(".variations-defaults select").each(function(){d(this).attr("data-current",d(this).val())}),m.go_to_page(i)}),!1},save_on_submit:function(a){0<d("#variable_product_options").find(".woocommerce_variations .variation-needs-update").length&&(a.preventDefault(),d("#variable_product_options").trigger("woocommerce_variations_save_variations_on_submit"),n.save_changes(n.save_on_submit_done))},save_on_submit_done:function(){var a=d("form#post");"publish"===a.data("callerid")?a.append('<input type="hidden" name="publish" value="1" />').submit():a.append('<input type="hidden" name="save-post" value="1" />').submit()},cancel_variations:function(){var a=parseInt(d("#variable_product_options").find(".woocommerce_variations").attr("data-page"),10);return d("#variable_product_options").find(".woocommerce_variations .variation-needs-update").removeClass("variation-needs-update"),d(".variations-defaults select").each(function(){d(this).val(d(this).attr("data-current"))}),m.go_to_page(a),!1},add_variation:function(){n.block();var a={action:"woocommerce_add_variation",post_id:woocommerce_admin_meta_boxes_variations.post_id,loop:d(".woocommerce_variation").length,security:woocommerce_admin_meta_boxes_variations.add_variation_nonce};return d.post(woocommerce_admin_meta_boxes_variations.ajax_url,a,function(a){var e=d(a);e.addClass("variation-needs-update"),d("#variable_product_options").find(".woocommerce_variations").prepend(e),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_added",1),n.unblock()}),!1},remove_variation:function(){if(n.check_for_changes(),window.confirm(woocommerce_admin_meta_boxes_variations.i18n_remove_variation)){var a=d(this).attr("rel"),e=[],i={action:"woocommerce_remove_variations"};n.block(),0<a?(e.push(a),i.variation_ids=e,i.security=woocommerce_admin_meta_boxes_variations.delete_variations_nonce,d.post(woocommerce_admin_meta_boxes_variations.ajax_url,i,function(){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10),i=Math.ceil((parseInt(a.attr("data-total"),10)-1)/woocommerce_admin_meta_boxes_variations.variations_per_page),o=1;d("#woocommerce-product-data").trigger("woocommerce_variations_removed"),e===i||e<=i?o=e:i<e&&0!==i&&(o=i),m.go_to_page(o,-1)})):n.unblock()}return!1},link_all_variations:function(){if(n.check_for_changes(),window.confirm(woocommerce_admin_meta_boxes_variations.i18n_link_all_variations)){n.block();var a={action:"woocommerce_link_all_variations",post_id:woocommerce_admin_meta_boxes_variations.post_id,security:woocommerce_admin_meta_boxes_variations.link_variation_nonce};d.post(woocommerce_admin_meta_boxes_variations.ajax_url,a,function(a){var e=parseInt(a,10);1===e?window.alert(e+" "+woocommerce_admin_meta_boxes_variations.i18n_variation_added):0===e||1<e?window.alert(e+" "+woocommerce_admin_meta_boxes_variations.i18n_variations_added):window.alert(woocommerce_admin_meta_boxes_variations.i18n_no_variations_added),0<e?(m.go_to_page(1,e),d("#variable_product_options").trigger("woocommerce_variations_added",e)):n.unblock()})}return!1},input_changed:function(){d(this).closest(".woocommerce_variation").addClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_input_changed")},defaults_changed:function(){d(this).closest("#variable_product_options").find(".woocommerce_variation:first").addClass("variation-needs-update"),d("button.cancel-variation-changes, button.save-variation-changes").removeAttr("disabled"),d("#variable_product_options").trigger("woocommerce_variations_defaults_changed")},do_variation_action:function(){var a,e=d("select.variation_actions").val(),i={},o=0;switch(e){case"add_variation":return void n.add_variation();case"link_all_variations":return void n.link_all_variations();case"delete_all":window.confirm(woocommerce_admin_meta_boxes_variations.i18n_delete_all_variations)&&window.confirm(woocommerce_admin_meta_boxes_variations.i18n_last_warning)&&(i.allowed=!0,o=-1*parseInt(d("#variable_product_options").find(".woocommerce_variations").attr("data-total"),10));break;case"variable_regular_price_increase":case"variable_regular_price_decrease":case"variable_sale_price_increase":case"variable_sale_price_decrease":if(null==(a=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value_fixed_or_percent)))return;0<=a.indexOf("%")?i.value=accounting.unformat(a.replace(/\%/,""),woocommerce_admin.mon_decimal_point)+"%":i.value=accounting.unformat(a,woocommerce_admin.mon_decimal_point);break;case"variable_regular_price":case"variable_sale_price":case"variable_stock":case"variable_weight":case"variable_length":case"variable_width":case"variable_height":case"variable_download_limit":case"variable_download_expiry":if(null==(a=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_enter_a_value)))return;i.value=a;break;case"variable_sale_schedule":if(i.date_from=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_start),i.date_to=window.prompt(woocommerce_admin_meta_boxes_variations.i18n_scheduled_sale_end),null===i.date_from&&(i.date_from=!1),null===i.date_to&&(i.date_to=!1),!1===i.date_to&&!1===i.date_from)return;break;default:d("select.variation_actions").trigger(e),i=d("select.variation_actions").triggerHandler(e+"_ajax_data",i)}"delete_all"===e&&i.allowed?d("#variable_product_options").find(".variation-needs-update").removeClass("variation-needs-update"):n.check_for_changes(),n.block(),d.ajax({url:woocommerce_admin_meta_boxes_variations.ajax_url,data:{action:"woocommerce_bulk_edit_variations",security:woocommerce_admin_meta_boxes_variations.bulk_edit_variations_nonce,product_id:woocommerce_admin_meta_boxes_variations.post_id,product_type:d("#product-type").val(),bulk_action:e,data:i},type:"POST",success:function(){m.go_to_page(1,o)}})}},m={init:function(){d(document.body).on("woocommerce_variations_added",this.update_single_quantity).on("change",".variations-pagenav .page-selector",this.page_selector).on("click",".variations-pagenav .first-page",this.first_page).on("click",".variations-pagenav .prev-page",this.prev_page).on("click",".variations-pagenav .next-page",this.next_page).on("click",".variations-pagenav .last-page",this.last_page)},update_variations_count:function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=parseInt(e.attr("data-total"),10)+a,o=d(".variations-pagenav .displaying-num");return e.attr("data-total",i),1===i?o.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_single.replace("%qty%",i)):o.text(woocommerce_admin_meta_boxes_variations.i18n_variation_count_plural.replace("%qty%",i)),i},update_single_quantity:function(a,e){if(1===e){var i=d(".variations-pagenav");m.update_variations_count(e),i.is(":hidden")&&(d("option, optgroup",".variation_actions").show(),d(".variation_actions").val("add_variation"),d("#variable_product_options").find(".toolbar").show(),i.show(),d(".pagination-links",i).hide())}},set_paginav:function(a){var e=d("#variable_product_options").find(".woocommerce_variations"),i=m.update_variations_count(a),o=d("#variable_product_options").find(".toolbar"),t=d(".variation_actions"),n=d(".variations-pagenav"),r=d(".pagination-links",n),_=Math.ceil(i/woocommerce_admin_meta_boxes_variations.variations_per_page),s="";e.attr("data-total_pages",_),d(".total-pages",n).text(_);for(var c=1;c<=_;c++)s+='<option value="'+c+'">'+c+"</option>";d(".page-selector",n).empty().html(s),0===i?(o.not(".toolbar-top, .toolbar-buttons").hide(),n.hide(),d("option, optgroup",t).hide(),d(".variation_actions").val("add_variation"),d('option[data-global="true"]',t).show()):(o.show(),n.show(),d("option, optgroup",t).show(),d(".variation_actions").val("add_variation"),1===_?r.hide():r.show())},check_is_enabled:function(a){return!d(a).hasClass("disabled")},change_classes:function(a,e){var i=d(".variations-pagenav .first-page"),o=d(".variations-pagenav .prev-page"),t=d(".variations-pagenav .next-page"),n=d(".variations-pagenav .last-page");1===a?(i.addClass("disabled"),o.addClass("disabled")):(i.removeClass("disabled"),o.removeClass("disabled")),e===a?(t.addClass("disabled"),n.addClass("disabled")):(t.removeClass("disabled"),n.removeClass("disabled"))},set_page:function(a){d(".variations-pagenav .page-selector").val(a).first().change()},go_to_page:function(a,e){a=a||1,e=e||0,m.set_paginav(e),m.set_page(a)},page_selector:function(){var a=parseInt(d(this).val(),10),e=d("#variable_product_options").find(".woocommerce_variations");d(".variations-pagenav .page-selector").val(a),n.check_for_changes(),m.change_classes(a,parseInt(e.attr("data-total_pages"),10)),n.load_variations(a)},first_page:function(){return m.check_is_enabled(this)&&m.set_page(1),!1},prev_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-page"),10)-1,i=0<e?e:1;m.set_page(i)}return!1},next_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations"),e=parseInt(a.attr("data-total_pages"),10),i=parseInt(a.attr("data-page"),10)+1,o=i<=e?i:e;m.set_page(o)}return!1},last_page:function(){if(m.check_is_enabled(this)){var a=d("#variable_product_options").find(".woocommerce_variations").attr("data-total_pages");m.set_page(a)}return!1}};o.init(),t.init(),n.init(),m.init()});
assets/js/admin/wc-orders.js CHANGED
@@ -18,7 +18,7 @@ jQuery( function( $ ) {
18
  * Click a row.
19
  */
20
  WCOrdersTable.prototype.onRowClick = function( e ) {
21
- if ( $( e.target ).filter( 'a, a *, .no-link, .no-link *' ).length ) {
22
  return true;
23
  }
24
 
18
  * Click a row.
19
  */
20
  WCOrdersTable.prototype.onRowClick = function( e ) {
21
+ if ( $( e.target ).filter( 'a, a *, .no-link, .no-link *, button, button *' ).length ) {
22
  return true;
23
  }
24
 
assets/js/admin/wc-orders.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(r){if("undefined"==typeof wc_orders_params)return!1;var e=function(){r(document).on("click",".post-type-shop_order .wp-list-table tbody td",this.onRowClick).on("click",".order-preview:not(.disabled)",this.onPreview)};e.prototype.onRowClick=function(e){if(r(e.target).filter("a, a *, .no-link, .no-link *").length)return!0;if(window.getSelection&&window.getSelection().toString().length)return!0;var t=r(this).closest("tr").find("a.order-view").attr("href");t&&t.length&&(e.preventDefault(),e.metaKey||e.ctrlKey?window.open(t,"_blank"):window.location=t)},e.prototype.onPreview=function(){var t=r(this),e=t.data("order-id");return t.data("order-data")?r(this).WCBackboneModal({template:"wc-modal-view-order",variable:t.data("order-data")}):(t.addClass("disabled"),r.ajax({url:wc_orders_params.ajax_url,data:{order_id:e,action:"woocommerce_get_order_details",security:wc_orders_params.preview_nonce},type:"GET",success:function(e){r(".order-preview").removeClass("disabled"),e.success&&(t.data("order-data",e.data),r(this).WCBackboneModal({template:"wc-modal-view-order",variable:e.data}))}})),!1},new e});
1
+ jQuery(function(r){if("undefined"==typeof wc_orders_params)return!1;var e=function(){r(document).on("click",".post-type-shop_order .wp-list-table tbody td",this.onRowClick).on("click",".order-preview:not(.disabled)",this.onPreview)};e.prototype.onRowClick=function(e){if(r(e.target).filter("a, a *, .no-link, .no-link *, button, button *").length)return!0;if(window.getSelection&&window.getSelection().toString().length)return!0;var t=r(this).closest("tr").find("a.order-view").attr("href");t&&t.length&&(e.preventDefault(),e.metaKey||e.ctrlKey?window.open(t,"_blank"):window.location=t)},e.prototype.onPreview=function(){var t=r(this),e=t.data("order-id");return t.data("order-data")?r(this).WCBackboneModal({template:"wc-modal-view-order",variable:t.data("order-data")}):(t.addClass("disabled"),r.ajax({url:wc_orders_params.ajax_url,data:{order_id:e,action:"woocommerce_get_order_details",security:wc_orders_params.preview_nonce},type:"GET",success:function(e){r(".order-preview").removeClass("disabled"),e.success&&(t.data("order-data",e.data),r(this).WCBackboneModal({template:"wc-modal-view-order",variable:e.data}))}})),!1},new e});
assets/js/frontend/address-i18n.js CHANGED
@@ -14,7 +14,11 @@ jQuery( function( $ ) {
14
  field.addClass( 'validate-required' );
15
 
16
  if ( field.find( 'label .required' ).length === 0 ) {
17
- field.find( 'label' ).append( '&nbsp;<abbr class="required" title="' + wc_address_i18n_params.i18n_required_text + '">*</abbr>' );
 
 
 
 
18
  }
19
  } else {
20
  field.find( 'label .required' ).remove();
@@ -27,102 +31,115 @@ jQuery( function( $ ) {
27
  }
28
 
29
  // Handle locale
30
- $( document.body ).bind( 'country_to_state_changing', function( event, country, wrapper ) {
31
- var thisform = wrapper, thislocale;
 
32
 
33
- if ( typeof locale[ country ] !== 'undefined' ) {
34
- thislocale = locale[ country ];
35
- } else {
36
- thislocale = locale['default'];
37
- }
38
-
39
- var $postcodefield = thisform.find( '#billing_postcode_field, #shipping_postcode_field' ),
40
- $cityfield = thisform.find( '#billing_city_field, #shipping_city_field' ),
41
- $statefield = thisform.find( '#billing_state_field, #shipping_state_field' );
42
-
43
- if ( ! $postcodefield.attr( 'data-o_class' ) ) {
44
- $postcodefield.attr( 'data-o_class', $postcodefield.attr( 'class' ) );
45
- $cityfield.attr( 'data-o_class', $cityfield.attr( 'class' ) );
46
- $statefield.attr( 'data-o_class', $statefield.attr( 'class' ) );
47
- }
48
-
49
- var locale_fields = $.parseJSON( wc_address_i18n_params.locale_fields );
50
-
51
- $.each( locale_fields, function( key, value ) {
52
-
53
- var field = thisform.find( value ),
54
- fieldLocale = $.extend( true, {}, locale['default'][ key ], thislocale[ key ] );
55
-
56
- // Labels.
57
- if ( typeof fieldLocale.label !== 'undefined' ) {
58
- field.find( 'label' ).html( fieldLocale.label );
59
- }
60
-
61
- // Placeholders.
62
- if ( typeof fieldLocale.placeholder !== 'undefined' ) {
63
- field.find( 'input' ).attr( 'placeholder', fieldLocale.placeholder );
64
- field.find( '.select2-selection__placeholder' ).text( fieldLocale.placeholder );
65
  }
66
 
67
- // Use the i18n label as a placeholder if there is no label element and no i18n placeholder.
68
- if ( typeof fieldLocale.placeholder === 'undefined' && typeof fieldLocale.label !== 'undefined' && ! field.find( 'label' ).length ) {
69
- field.find( 'input' ).attr( 'placeholder', fieldLocale.label );
70
- field.find( '.select2-selection__placeholder' ).text( fieldLocale.label );
71
- }
72
 
73
- // Required.
74
- if ( typeof fieldLocale.required !== 'undefined' ) {
75
- field_is_required( field, fieldLocale.required );
76
- } else {
77
- field_is_required( field, false );
78
  }
79
 
80
- // Priority.
81
- if ( typeof fieldLocale.priority !== 'undefined' ) {
82
- field.data( 'priority', fieldLocale.priority );
83
- }
84
 
85
- // Hidden fields.
86
- if ( 'state' !== key ) {
87
- if ( typeof fieldLocale.hidden !== 'undefined' && true === fieldLocale.hidden ) {
88
- field.hide().find( 'input' ).val( '' );
89
- } else {
90
- field.show();
91
- }
92
- }
93
- });
94
 
95
- var fieldsets = $('.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields');
 
96
 
97
- fieldsets.each( function( index, fieldset ) {
98
- var rows = $( fieldset ).find( '.form-row' );
99
- var wrapper = rows.first().parent();
 
100
 
101
- // Before sorting, ensure all fields have a priority for bW compatibility.
102
- var last_priority = 0;
 
 
 
 
103
 
104
- rows.each( function() {
105
- if ( ! $( this ).data( 'priority' ) ) {
106
- $( this ).data( 'priority', last_priority + 1 );
 
 
 
 
 
 
107
  }
108
- last_priority = $( this ).data( 'priority' );
109
- } );
110
 
111
- // Sort the fields.
112
- rows.sort( function( a, b ) {
113
- var asort = $( a ).data( 'priority' ),
114
- bsort = $( b ).data( 'priority' );
 
 
115
 
116
- if ( asort > bsort ) {
117
- return 1;
 
118
  }
119
- if ( asort < bsort ) {
120
- return -1;
 
 
 
 
 
 
121
  }
122
- return 0;
123
  });
124
 
125
- rows.detach().appendTo( wrapper );
126
- } );
127
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  });
14
  field.addClass( 'validate-required' );
15
 
16
  if ( field.find( 'label .required' ).length === 0 ) {
17
+ field.find( 'label' ).append(
18
+ '&nbsp;<abbr class="required" title="' +
19
+ wc_address_i18n_params.i18n_required_text +
20
+ '">*</abbr>'
21
+ );
22
  }
23
  } else {
24
  field.find( 'label .required' ).remove();
31
  }
32
 
33
  // Handle locale
34
+ $( document.body )
35
+ .bind( 'country_to_state_changing', function( event, country, wrapper ) {
36
+ var thisform = wrapper, thislocale;
37
 
38
+ if ( typeof locale[ country ] !== 'undefined' ) {
39
+ thislocale = locale[ country ];
40
+ } else {
41
+ thislocale = locale['default'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
 
44
+ var $postcodefield = thisform.find( '#billing_postcode_field, #shipping_postcode_field' ),
45
+ $cityfield = thisform.find( '#billing_city_field, #shipping_city_field' ),
46
+ $statefield = thisform.find( '#billing_state_field, #shipping_state_field' );
 
 
47
 
48
+ if ( ! $postcodefield.attr( 'data-o_class' ) ) {
49
+ $postcodefield.attr( 'data-o_class', $postcodefield.attr( 'class' ) );
50
+ $cityfield.attr( 'data-o_class', $cityfield.attr( 'class' ) );
51
+ $statefield.attr( 'data-o_class', $statefield.attr( 'class' ) );
 
52
  }
53
 
54
+ var locale_fields = $.parseJSON( wc_address_i18n_params.locale_fields );
 
 
 
55
 
56
+ $.each( locale_fields, function( key, value ) {
 
 
 
 
 
 
 
 
57
 
58
+ var field = thisform.find( value ),
59
+ fieldLocale = $.extend( true, {}, locale['default'][ key ], thislocale[ key ] );
60
 
61
+ // Labels.
62
+ if ( typeof fieldLocale.label !== 'undefined' ) {
63
+ field.find( 'label' ).html( fieldLocale.label );
64
+ }
65
 
66
+ // Placeholders.
67
+ if ( typeof fieldLocale.placeholder !== 'undefined' ) {
68
+ field.find( ':input' ).attr( 'placeholder', fieldLocale.placeholder );
69
+ field.find( ':input' ).attr( 'data-placeholder', fieldLocale.placeholder );
70
+ field.find( '.select2-selection__placeholder' ).text( fieldLocale.placeholder );
71
+ }
72
 
73
+ // Use the i18n label as a placeholder if there is no label element and no i18n placeholder.
74
+ if (
75
+ typeof fieldLocale.placeholder === 'undefined' &&
76
+ typeof fieldLocale.label !== 'undefined' &&
77
+ ! field.find( 'label' ).length
78
+ ) {
79
+ field.find( ':input' ).attr( 'placeholder', fieldLocale.label );
80
+ field.find( ':input' ).attr( 'data-placeholder', fieldLocale.label );
81
+ field.find( '.select2-selection__placeholder' ).text( fieldLocale.label );
82
  }
 
 
83
 
84
+ // Required.
85
+ if ( typeof fieldLocale.required !== 'undefined' ) {
86
+ field_is_required( field, fieldLocale.required );
87
+ } else {
88
+ field_is_required( field, false );
89
+ }
90
 
91
+ // Priority.
92
+ if ( typeof fieldLocale.priority !== 'undefined' ) {
93
+ field.data( 'priority', fieldLocale.priority );
94
  }
95
+
96
+ // Hidden fields.
97
+ if ( 'state' !== key ) {
98
+ if ( typeof fieldLocale.hidden !== 'undefined' && true === fieldLocale.hidden ) {
99
+ field.hide().find( ':input' ).val( '' );
100
+ } else {
101
+ field.show();
102
+ }
103
  }
 
104
  });
105
 
106
+ var fieldsets = $(
107
+ '.woocommerce-billing-fields__field-wrapper,' +
108
+ '.woocommerce-shipping-fields__field-wrapper,' +
109
+ '.woocommerce-address-fields__field-wrapper,' +
110
+ '.woocommerce-additional-fields__field-wrapper .woocommerce-account-fields'
111
+ );
112
+
113
+ fieldsets.each( function( index, fieldset ) {
114
+ var rows = $( fieldset ).find( '.form-row' );
115
+ var wrapper = rows.first().parent();
116
+
117
+ // Before sorting, ensure all fields have a priority for bW compatibility.
118
+ var last_priority = 0;
119
+
120
+ rows.each( function() {
121
+ if ( ! $( this ).data( 'priority' ) ) {
122
+ $( this ).data( 'priority', last_priority + 1 );
123
+ }
124
+ last_priority = $( this ).data( 'priority' );
125
+ } );
126
+
127
+ // Sort the fields.
128
+ rows.sort( function( a, b ) {
129
+ var asort = parseInt( $( a ).data( 'priority' ), 10 ),
130
+ bsort = parseInt( $( b ).data( 'priority' ), 10 );
131
+
132
+ if ( asort > bsort ) {
133
+ return 1;
134
+ }
135
+ if ( asort < bsort ) {
136
+ return -1;
137
+ }
138
+ return 0;
139
+ });
140
+
141
+ rows.detach().appendTo( wrapper );
142
+ });
143
+ })
144
+ .trigger( 'wc_address_i18n_ready' );
145
  });
assets/js/frontend/address-i18n.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(s){if("undefined"==typeof wc_address_i18n_params)return!1;var e=wc_address_i18n_params.locale.replace(/&quot;/g,'"'),p=s.parseJSON(e);function f(e,a){a?(e.find("label .optional").remove(),e.addClass("validate-required"),0===e.find("label .required").length&&e.find("label").append('&nbsp;<abbr class="required" title="'+wc_address_i18n_params.i18n_required_text+'">*</abbr>')):(e.find("label .required").remove(),e.removeClass("validate-required"),0===e.find("label .optional").length&&e.find("label").append('&nbsp;<span class="optional">('+wc_address_i18n_params.i18n_optional_text+")</span>"))}s(document.body).bind("country_to_state_changing",function(e,a,i){var t,l=i;t="undefined"!=typeof p[a]?p[a]:p["default"];var d=l.find("#billing_postcode_field, #shipping_postcode_field"),r=l.find("#billing_city_field, #shipping_city_field"),n=l.find("#billing_state_field, #shipping_state_field");d.attr("data-o_class")||(d.attr("data-o_class",d.attr("class")),r.attr("data-o_class",r.attr("class")),n.attr("data-o_class",n.attr("class")));var o=s.parseJSON(wc_address_i18n_params.locale_fields);s.each(o,function(e,a){var i=l.find(a),d=s.extend(!0,{},p["default"][e],t[e]);"undefined"!=typeof d.label&&i.find("label").html(d.label),"undefined"!=typeof d.placeholder&&(i.find("input").attr("placeholder",d.placeholder),i.find(".select2-selection__placeholder").text(d.placeholder)),"undefined"!=typeof d.placeholder||"undefined"==typeof d.label||i.find("label").length||(i.find("input").attr("placeholder",d.label),i.find(".select2-selection__placeholder").text(d.label)),"undefined"!=typeof d.required?f(i,d.required):f(i,!1),"undefined"!=typeof d.priority&&i.data("priority",d.priority),"state"!==e&&("undefined"!=typeof d.hidden&&!0===d.hidden?i.hide().find("input").val(""):i.show())}),s(".woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields").each(function(e,a){var i=s(a).find(".form-row"),d=i.first().parent(),t=0;i.each(function(){s(this).data("priority")||s(this).data("priority",t+1),t=s(this).data("priority")}),i.sort(function(e,a){var i=s(e).data("priority"),d=s(a).data("priority");return d<i?1:i<d?-1:0}),i.detach().appendTo(d)})})});
1
+ jQuery(function(p){if("undefined"==typeof wc_address_i18n_params)return!1;var e=wc_address_i18n_params.locale.replace(/&quot;/g,'"'),s=p.parseJSON(e);function f(e,a){a?(e.find("label .optional").remove(),e.addClass("validate-required"),0===e.find("label .required").length&&e.find("label").append('&nbsp;<abbr class="required" title="'+wc_address_i18n_params.i18n_required_text+'">*</abbr>')):(e.find("label .required").remove(),e.removeClass("validate-required"),0===e.find("label .optional").length&&e.find("label").append('&nbsp;<span class="optional">('+wc_address_i18n_params.i18n_optional_text+")</span>"))}p(document.body).bind("country_to_state_changing",function(e,a,i){var t,r=i;t="undefined"!=typeof s[a]?s[a]:s["default"];var d=r.find("#billing_postcode_field, #shipping_postcode_field"),l=r.find("#billing_city_field, #shipping_city_field"),n=r.find("#billing_state_field, #shipping_state_field");d.attr("data-o_class")||(d.attr("data-o_class",d.attr("class")),l.attr("data-o_class",l.attr("class")),n.attr("data-o_class",n.attr("class")));var o=p.parseJSON(wc_address_i18n_params.locale_fields);p.each(o,function(e,a){var i=r.find(a),d=p.extend(!0,{},s["default"][e],t[e]);"undefined"!=typeof d.label&&i.find("label").html(d.label),"undefined"!=typeof d.placeholder&&(i.find(":input").attr("placeholder",d.placeholder),i.find(":input").attr("data-placeholder",d.placeholder),i.find(".select2-selection__placeholder").text(d.placeholder)),"undefined"!=typeof d.placeholder||"undefined"==typeof d.label||i.find("label").length||(i.find(":input").attr("placeholder",d.label),i.find(":input").attr("data-placeholder",d.label),i.find(".select2-selection__placeholder").text(d.label)),"undefined"!=typeof d.required?f(i,d.required):f(i,!1),"undefined"!=typeof d.priority&&i.data("priority",d.priority),"state"!==e&&("undefined"!=typeof d.hidden&&!0===d.hidden?i.hide().find(":input").val(""):i.show())}),p(".woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-address-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper .woocommerce-account-fields").each(function(e,a){var i=p(a).find(".form-row"),d=i.first().parent(),t=0;i.each(function(){p(this).data("priority")||p(this).data("priority",t+1),t=p(this).data("priority")}),i.sort(function(e,a){var i=parseInt(p(e).data("priority"),10),d=parseInt(p(a).data("priority"),10);return d<i?1:i<d?-1:0}),i.detach().appendTo(d)})}).trigger("wc_address_i18n_ready")});
assets/js/frontend/checkout.js CHANGED
@@ -77,10 +77,12 @@ jQuery( function( $ ) {
77
  $payment_methods.eq(0).prop( 'checked', true );
78
  }
79
 
80
- if ( $payment_methods.length > 1 ) {
 
81
 
 
82
  // Hide open descriptions.
83
- $( 'div.payment_box' ).filter( ':visible' ).slideUp( 0 );
84
  }
85
 
86
  // Trigger click event for selected method
77
  $payment_methods.eq(0).prop( 'checked', true );
78
  }
79
 
80
+ // Get name of new selected method.
81
+ var checkedPaymentMethod = $payment_methods.filter( ':checked' ).eq(0).prop( 'id' );
82
 
83
+ if ( $payment_methods.length > 1 ) {
84
  // Hide open descriptions.
85
+ $( 'div.payment_box:not(".' + checkedPaymentMethod + '")' ).filter( ':visible' ).slideUp( 0 );
86
  }
87
 
88
  // Trigger click event for selected method
assets/js/frontend/checkout.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(g){if("undefined"==typeof wc_checkout_params)return!1;var v={updateTimer:!(g.blockUI.defaults.overlayCSS.cursor="default"),dirtyInput:!1,selectedPaymentMethod:!1,xhr:!1,$order_review:g("#order_review"),$checkout_form:g("form.checkout"),init:function(){g(document.body).bind("update_checkout",this.update_checkout),g(document.body).bind("init_checkout",this.init_checkout),this.$checkout_form.on("click",'input[name="payment_method"]',this.payment_method_selected),g(document.body).hasClass("woocommerce-order-pay")&&this.$order_review.on("click",'input[name="payment_method"]',this.payment_method_selected),this.$checkout_form.attr("novalidate","novalidate"),this.$checkout_form.on("submit",this.submit),this.$checkout_form.on("input validate change",".input-text, select, input:checkbox",this.validate_field),this.$checkout_form.on("update",this.trigger_update_checkout),this.$checkout_form.on("change",'select.shipping_method, input[name^="shipping_method"], #ship-to-different-address input, .update_totals_on_change select, .update_totals_on_change input[type="radio"], .update_totals_on_change input[type="checkbox"]',this.trigger_update_checkout),this.$checkout_form.on("change",".address-field select",this.input_changed),this.$checkout_form.on("change",".address-field input.input-text, .update_totals_on_change input.input-text",this.maybe_input_changed),this.$checkout_form.on("keydown",".address-field input.input-text, .update_totals_on_change input.input-text",this.queue_update_checkout),this.$checkout_form.on("change","#ship-to-different-address input",this.ship_to_different_address),this.$checkout_form.find("#ship-to-different-address input").change(),this.init_payment_methods(),"1"===wc_checkout_params.is_checkout&&g(document.body).trigger("init_checkout"),"yes"===wc_checkout_params.option_guest_checkout&&g("input#createaccount").change(this.toggle_create_account).change()},init_payment_methods:function(){var e=g(".woocommerce-checkout").find('input[name="payment_method"]');1===e.length&&e.eq(0).hide(),v.selectedPaymentMethod&&g("#"+v.selectedPaymentMethod).prop("checked",!0),0===e.filter(":checked").length&&e.eq(0).prop("checked",!0),1<e.length&&g("div.payment_box").filter(":visible").slideUp(0),e.filter(":checked").eq(0).trigger("click")},get_payment_method:function(){return v.$checkout_form.find('input[name="payment_method"]:checked').val()},payment_method_selected:function(e){if(e.stopPropagation(),1<g(".payment_methods input.input-radio").length){var t=g("div.payment_box."+g(this).attr("ID")),o=g(this).is(":checked");o&&!t.is(":visible")&&(g("div.payment_box").filter(":visible").slideUp(230),o&&t.slideDown(230))}else g("div.payment_box").show();g(this).data("order_button_text")?g("#place_order").text(g(this).data("order_button_text")):g("#place_order").text(g("#place_order").data("value"));var c=g('.woocommerce-checkout input[name="payment_method"]:checked').attr("id");c!==v.selectedPaymentMethod&&g(document.body).trigger("payment_method_selected"),v.selectedPaymentMethod=c},toggle_create_account:function(){g("div.create-account").hide(),g(this).is(":checked")&&(g("#account_password").val("").change(),g("div.create-account").slideDown())},init_checkout:function(){g(document.body).trigger("update_checkout")},maybe_input_changed:function(e){v.dirtyInput&&v.input_changed(e)},input_changed:function(e){v.dirtyInput=e.target,v.maybe_update_checkout()},queue_update_checkout:function(e){if(9===(e.keyCode||e.which||0))return!0;v.dirtyInput=this,v.reset_update_checkout_timer(),v.updateTimer=setTimeout(v.maybe_update_checkout,"1000")},trigger_update_checkout:function(){v.reset_update_checkout_timer(),v.dirtyInput=!1,g(document.body).trigger("update_checkout")},maybe_update_checkout:function(){var e=!0;if(g(v.dirtyInput).length){var t=g(v.dirtyInput).closest("div").find(".address-field.validate-required");t.length&&t.each(function(){""===g(this).find("input.input-text").val()&&(e=!1)})}e&&v.trigger_update_checkout()},ship_to_different_address:function(){g("div.shipping_address").hide(),g(this).is(":checked")&&g("div.shipping_address").slideDown()},reset_update_checkout_timer:function(){clearTimeout(v.updateTimer)},is_valid_json:function(e){try{var t=g.parseJSON(e);return t&&"object"==typeof t}catch(o){return!1}},validate_field:function(e){var t=g(this),o=t.closest(".form-row"),c=!0,i=o.is(".validate-required"),r=o.is(".validate-email"),n=e.type;if("input"===n&&o.removeClass("woocommerce-invalid woocommerce-invalid-required-field woocommerce-invalid-email woocommerce-validated"),"validate"===n||"change"===n){if(i&&("checkbox"!==t.attr("type")||t.is(":checked")?""===t.val()&&(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),c=!1):(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),c=!1)),r)if(t.val())new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(t.val())||(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-email"),c=!1);c&&o.removeClass("woocommerce-invalid woocommerce-invalid-required-field woocommerce-invalid-email").addClass("woocommerce-validated")}},update_checkout:function(e,t){v.reset_update_checkout_timer(),v.updateTimer=setTimeout(v.update_checkout_action,"5",t)},update_checkout_action:function(e){if(v.xhr&&v.xhr.abort(),0!==g("form.checkout").length){e=void 0!==e?e:{update_shipping_method:!0};var t=g("#billing_country").val(),o=g("#billing_state").val(),c=g("input#billing_postcode").val(),i=g("#billing_city").val(),r=g("input#billing_address_1").val(),n=g("input#billing_address_2").val(),a=t,u=o,d=c,s=i,m=r,p=n,l=g(v.$checkout_form).find(".address-field.validate-required:visible"),h=!0;l.length&&l.each(function(){""===g(this).find(":input").val()&&(h=!1)}),g("#ship-to-different-address").find("input").is(":checked")&&(a=g("#shipping_country").val(),u=g("#shipping_state").val(),d=g("input#shipping_postcode").val(),s=g("#shipping_city").val(),m=g("input#shipping_address_1").val(),p=g("input#shipping_address_2").val());var _={security:wc_checkout_params.update_order_review_nonce,payment_method:v.get_payment_method(),country:t,state:o,postcode:c,city:i,address:r,address_2:n,s_country:a,s_state:u,s_postcode:d,s_city:s,s_address:m,s_address_2:p,has_full_address:h,post_data:g("form.checkout").serialize()};if(!1!==e.update_shipping_method){var f={};g('select.shipping_method, input[name^="shipping_method"][type="radio"]:checked, input[name^="shipping_method"][type="hidden"]').each(function(){f[g(this).data("index")]=g(this).val()}),_.shipping_method=f}g(".woocommerce-checkout-payment, .woocommerce-checkout-review-order-table").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),v.xhr=g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","update_order_review"),data:_,success:function(e){if(!0!==e.reload){g(".woocommerce-NoticeGroup-updateOrderReview").remove();var t=g("#terms").prop("checked"),o={};if(g(".payment_box :input").each(function(){var e=g(this).attr("id");e&&(-1!==g.inArray(g(this).attr("type"),["checkbox","radio"])?o[e]=g(this).prop("checked"):o[e]=g(this).val())}),e&&e.fragments&&g.each(e.fragments,function(e,t){g(e).replaceWith(t),g(e).unblock()}),t&&g("#terms").prop("checked",!0),g.isEmptyObject(o)||g(".payment_box :input").each(function(){var e=g(this).attr("id");e&&(-1!==g.inArray(g(this).attr("type"),["checkbox","radio"])?g(this).prop("checked",o[e]).change():null!==g(this).val()&&0===g(this).val().length&&g(this).val(o[e]).change())}),"failure"===e.result){var c=g("form.checkout");g(".woocommerce-error, .woocommerce-message").remove(),e.messages?c.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-updateOrderReview">'+e.messages+"</div>"):c.prepend(e),c.find(".input-text, select, input:checkbox").trigger("validate").blur(),v.scroll_to_notices()}v.init_payment_methods(),g(document.body).trigger("updated_checkout",[e])}else window.location.reload()}})}},submit:function(){v.reset_update_checkout_timer();var e=g(this);if(e.is(".processing"))return!1;!1!==e.triggerHandler("checkout_place_order")&&!1!==e.triggerHandler("checkout_place_order_"+v.get_payment_method())&&(e.addClass("processing"),1!==e.data()["blockUI.isBlocked"]&&e.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),g.ajaxSetup({dataFilter:function(e,t){if("json"!==t)return e;if(v.is_valid_json(e))return e;var o=e.match(/{"result.*}/);return null===o?console.log("Unable to fix malformed JSON"):v.is_valid_json(o[0])?(console.log("Fixed malformed JSON. Original:"),console.log(e),e=o[0]):console.log("Unable to fix malformed JSON"),e}}),g.ajax({type:"POST",url:wc_checkout_params.checkout_url,data:e.serialize(),dataType:"json",success:function(e){try{if("success"!==e.result)throw"failure"===e.result?"Result failure":"Invalid response";-1===e.redirect.indexOf("https://")||-1===e.redirect.indexOf("http://")?window.location=e.redirect:window.location=decodeURI(e.redirect)}catch(t){if(!0===e.reload)return void window.location.reload();!0===e.refresh&&g(document.body).trigger("update_checkout"),e.messages?v.submit_error(e.messages):v.submit_error('<div class="woocommerce-error">'+wc_checkout_params.i18n_checkout_error+"</div>")}},error:function(e,t,o){v.submit_error('<div class="woocommerce-error">'+o+"</div>")}}));return!1},submit_error:function(e){g(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),v.$checkout_form.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+e+"</div>"),v.$checkout_form.removeClass("processing").unblock(),v.$checkout_form.find(".input-text, select, input:checkbox").trigger("validate").blur(),v.scroll_to_notices(),g(document.body).trigger("checkout_error")},scroll_to_notices:function(){var e=g(".woocommerce-NoticeGroup-updateOrderReview, .woocommerce-NoticeGroup-checkout");e.length||(e=g(".form.checkout")),g.scroll_to_notices(e)}},e={init:function(){g(document.body).on("click","a.showcoupon",this.show_coupon_form),g(document.body).on("click",".woocommerce-remove-coupon",this.remove_coupon),g("form.checkout_coupon").hide().submit(this.submit)},show_coupon_form:function(){return g(".checkout_coupon").slideToggle(400,function(){g(".checkout_coupon").find(":input:eq(0)").focus()}),!1},submit:function(){var t=g(this);if(t.is(".processing"))return!1;t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var e={security:wc_checkout_params.apply_coupon_nonce,coupon_code:t.find('input[name="coupon_code"]').val()};return g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","apply_coupon"),data:e,success:function(e){g(".woocommerce-error, .woocommerce-message").remove(),t.removeClass("processing").unblock(),e&&(t.before(e),t.slideUp(),g(document.body).trigger("update_checkout",{update_shipping_method:!1}))},dataType:"html"}),!1},remove_coupon:function(e){e.preventDefault();var t=g(this).parents(".woocommerce-checkout-review-order"),o=g(this).data("coupon");t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var c={security:wc_checkout_params.remove_coupon_nonce,coupon:o};g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","remove_coupon"),data:c,success:function(e){g(".woocommerce-error, .woocommerce-message").remove(),t.removeClass("processing").unblock(),e&&(g("form.woocommerce-checkout").before(e),g(document.body).trigger("update_checkout",{update_shipping_method:!1}),g("form.checkout_coupon").find('input[name="coupon_code"]').val(""))},error:function(e){wc_checkout_params.debug_mode&&console.log(e.responseText)},dataType:"html"})}},t={init:function(){g(document.body).on("click","a.showlogin",this.show_login_form)},show_login_form:function(){return g("form.login, form.woocommerce-form--login").slideToggle(),!1}},o={init:function(){g(document.body).on("click","a.woocommerce-terms-and-conditions-link",this.toggle_terms)},toggle_terms:function(){if(g(".woocommerce-terms-and-conditions").length)return g(".woocommerce-terms-and-conditions").slideToggle(function(){var e=g(".woocommerce-terms-and-conditions-link");g(".woocommerce-terms-and-conditions").is(":visible")?(e.addClass("woocommerce-terms-and-conditions-link--open"),e.removeClass("woocommerce-terms-and-conditions-link--closed")):(e.removeClass("woocommerce-terms-and-conditions-link--open"),e.addClass("woocommerce-terms-and-conditions-link--closed"))}),!1}};v.init(),e.init(),t.init(),o.init()});
1
+ jQuery(function(g){if("undefined"==typeof wc_checkout_params)return!1;var v={updateTimer:!(g.blockUI.defaults.overlayCSS.cursor="default"),dirtyInput:!1,selectedPaymentMethod:!1,xhr:!1,$order_review:g("#order_review"),$checkout_form:g("form.checkout"),init:function(){g(document.body).bind("update_checkout",this.update_checkout),g(document.body).bind("init_checkout",this.init_checkout),this.$checkout_form.on("click",'input[name="payment_method"]',this.payment_method_selected),g(document.body).hasClass("woocommerce-order-pay")&&this.$order_review.on("click",'input[name="payment_method"]',this.payment_method_selected),this.$checkout_form.attr("novalidate","novalidate"),this.$checkout_form.on("submit",this.submit),this.$checkout_form.on("input validate change",".input-text, select, input:checkbox",this.validate_field),this.$checkout_form.on("update",this.trigger_update_checkout),this.$checkout_form.on("change",'select.shipping_method, input[name^="shipping_method"], #ship-to-different-address input, .update_totals_on_change select, .update_totals_on_change input[type="radio"], .update_totals_on_change input[type="checkbox"]',this.trigger_update_checkout),this.$checkout_form.on("change",".address-field select",this.input_changed),this.$checkout_form.on("change",".address-field input.input-text, .update_totals_on_change input.input-text",this.maybe_input_changed),this.$checkout_form.on("keydown",".address-field input.input-text, .update_totals_on_change input.input-text",this.queue_update_checkout),this.$checkout_form.on("change","#ship-to-different-address input",this.ship_to_different_address),this.$checkout_form.find("#ship-to-different-address input").change(),this.init_payment_methods(),"1"===wc_checkout_params.is_checkout&&g(document.body).trigger("init_checkout"),"yes"===wc_checkout_params.option_guest_checkout&&g("input#createaccount").change(this.toggle_create_account).change()},init_payment_methods:function(){var e=g(".woocommerce-checkout").find('input[name="payment_method"]');1===e.length&&e.eq(0).hide(),v.selectedPaymentMethod&&g("#"+v.selectedPaymentMethod).prop("checked",!0),0===e.filter(":checked").length&&e.eq(0).prop("checked",!0);var t=e.filter(":checked").eq(0).prop("id");1<e.length&&g('div.payment_box:not(".'+t+'")').filter(":visible").slideUp(0),e.filter(":checked").eq(0).trigger("click")},get_payment_method:function(){return v.$checkout_form.find('input[name="payment_method"]:checked').val()},payment_method_selected:function(e){if(e.stopPropagation(),1<g(".payment_methods input.input-radio").length){var t=g("div.payment_box."+g(this).attr("ID")),o=g(this).is(":checked");o&&!t.is(":visible")&&(g("div.payment_box").filter(":visible").slideUp(230),o&&t.slideDown(230))}else g("div.payment_box").show();g(this).data("order_button_text")?g("#place_order").text(g(this).data("order_button_text")):g("#place_order").text(g("#place_order").data("value"));var c=g('.woocommerce-checkout input[name="payment_method"]:checked').attr("id");c!==v.selectedPaymentMethod&&g(document.body).trigger("payment_method_selected"),v.selectedPaymentMethod=c},toggle_create_account:function(){g("div.create-account").hide(),g(this).is(":checked")&&(g("#account_password").val("").change(),g("div.create-account").slideDown())},init_checkout:function(){g(document.body).trigger("update_checkout")},maybe_input_changed:function(e){v.dirtyInput&&v.input_changed(e)},input_changed:function(e){v.dirtyInput=e.target,v.maybe_update_checkout()},queue_update_checkout:function(e){if(9===(e.keyCode||e.which||0))return!0;v.dirtyInput=this,v.reset_update_checkout_timer(),v.updateTimer=setTimeout(v.maybe_update_checkout,"1000")},trigger_update_checkout:function(){v.reset_update_checkout_timer(),v.dirtyInput=!1,g(document.body).trigger("update_checkout")},maybe_update_checkout:function(){var e=!0;if(g(v.dirtyInput).length){var t=g(v.dirtyInput).closest("div").find(".address-field.validate-required");t.length&&t.each(function(){""===g(this).find("input.input-text").val()&&(e=!1)})}e&&v.trigger_update_checkout()},ship_to_different_address:function(){g("div.shipping_address").hide(),g(this).is(":checked")&&g("div.shipping_address").slideDown()},reset_update_checkout_timer:function(){clearTimeout(v.updateTimer)},is_valid_json:function(e){try{var t=g.parseJSON(e);return t&&"object"==typeof t}catch(o){return!1}},validate_field:function(e){var t=g(this),o=t.closest(".form-row"),c=!0,i=o.is(".validate-required"),r=o.is(".validate-email"),n=e.type;if("input"===n&&o.removeClass("woocommerce-invalid woocommerce-invalid-required-field woocommerce-invalid-email woocommerce-validated"),"validate"===n||"change"===n){if(i&&("checkbox"!==t.attr("type")||t.is(":checked")?""===t.val()&&(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),c=!1):(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field"),c=!1)),r)if(t.val())new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(t.val())||(o.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-email"),c=!1);c&&o.removeClass("woocommerce-invalid woocommerce-invalid-required-field woocommerce-invalid-email").addClass("woocommerce-validated")}},update_checkout:function(e,t){v.reset_update_checkout_timer(),v.updateTimer=setTimeout(v.update_checkout_action,"5",t)},update_checkout_action:function(e){if(v.xhr&&v.xhr.abort(),0!==g("form.checkout").length){e=void 0!==e?e:{update_shipping_method:!0};var t=g("#billing_country").val(),o=g("#billing_state").val(),c=g("input#billing_postcode").val(),i=g("#billing_city").val(),r=g("input#billing_address_1").val(),n=g("input#billing_address_2").val(),a=t,u=o,d=c,s=i,m=r,p=n,l=g(v.$checkout_form).find(".address-field.validate-required:visible"),h=!0;l.length&&l.each(function(){""===g(this).find(":input").val()&&(h=!1)}),g("#ship-to-different-address").find("input").is(":checked")&&(a=g("#shipping_country").val(),u=g("#shipping_state").val(),d=g("input#shipping_postcode").val(),s=g("#shipping_city").val(),m=g("input#shipping_address_1").val(),p=g("input#shipping_address_2").val());var _={security:wc_checkout_params.update_order_review_nonce,payment_method:v.get_payment_method(),country:t,state:o,postcode:c,city:i,address:r,address_2:n,s_country:a,s_state:u,s_postcode:d,s_city:s,s_address:m,s_address_2:p,has_full_address:h,post_data:g("form.checkout").serialize()};if(!1!==e.update_shipping_method){var f={};g('select.shipping_method, input[name^="shipping_method"][type="radio"]:checked, input[name^="shipping_method"][type="hidden"]').each(function(){f[g(this).data("index")]=g(this).val()}),_.shipping_method=f}g(".woocommerce-checkout-payment, .woocommerce-checkout-review-order-table").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),v.xhr=g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","update_order_review"),data:_,success:function(e){if(!0!==e.reload){g(".woocommerce-NoticeGroup-updateOrderReview").remove();var t=g("#terms").prop("checked"),o={};if(g(".payment_box :input").each(function(){var e=g(this).attr("id");e&&(-1!==g.inArray(g(this).attr("type"),["checkbox","radio"])?o[e]=g(this).prop("checked"):o[e]=g(this).val())}),e&&e.fragments&&g.each(e.fragments,function(e,t){g(e).replaceWith(t),g(e).unblock()}),t&&g("#terms").prop("checked",!0),g.isEmptyObject(o)||g(".payment_box :input").each(function(){var e=g(this).attr("id");e&&(-1!==g.inArray(g(this).attr("type"),["checkbox","radio"])?g(this).prop("checked",o[e]).change():null!==g(this).val()&&0===g(this).val().length&&g(this).val(o[e]).change())}),"failure"===e.result){var c=g("form.checkout");g(".woocommerce-error, .woocommerce-message").remove(),e.messages?c.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-updateOrderReview">'+e.messages+"</div>"):c.prepend(e),c.find(".input-text, select, input:checkbox").trigger("validate").blur(),v.scroll_to_notices()}v.init_payment_methods(),g(document.body).trigger("updated_checkout",[e])}else window.location.reload()}})}},submit:function(){v.reset_update_checkout_timer();var e=g(this);if(e.is(".processing"))return!1;!1!==e.triggerHandler("checkout_place_order")&&!1!==e.triggerHandler("checkout_place_order_"+v.get_payment_method())&&(e.addClass("processing"),1!==e.data()["blockUI.isBlocked"]&&e.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),g.ajaxSetup({dataFilter:function(e,t){if("json"!==t)return e;if(v.is_valid_json(e))return e;var o=e.match(/{"result.*}/);return null===o?console.log("Unable to fix malformed JSON"):v.is_valid_json(o[0])?(console.log("Fixed malformed JSON. Original:"),console.log(e),e=o[0]):console.log("Unable to fix malformed JSON"),e}}),g.ajax({type:"POST",url:wc_checkout_params.checkout_url,data:e.serialize(),dataType:"json",success:function(e){try{if("success"!==e.result)throw"failure"===e.result?"Result failure":"Invalid response";-1===e.redirect.indexOf("https://")||-1===e.redirect.indexOf("http://")?window.location=e.redirect:window.location=decodeURI(e.redirect)}catch(t){if(!0===e.reload)return void window.location.reload();!0===e.refresh&&g(document.body).trigger("update_checkout"),e.messages?v.submit_error(e.messages):v.submit_error('<div class="woocommerce-error">'+wc_checkout_params.i18n_checkout_error+"</div>")}},error:function(e,t,o){v.submit_error('<div class="woocommerce-error">'+o+"</div>")}}));return!1},submit_error:function(e){g(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),v.$checkout_form.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+e+"</div>"),v.$checkout_form.removeClass("processing").unblock(),v.$checkout_form.find(".input-text, select, input:checkbox").trigger("validate").blur(),v.scroll_to_notices(),g(document.body).trigger("checkout_error")},scroll_to_notices:function(){var e=g(".woocommerce-NoticeGroup-updateOrderReview, .woocommerce-NoticeGroup-checkout");e.length||(e=g(".form.checkout")),g.scroll_to_notices(e)}},e={init:function(){g(document.body).on("click","a.showcoupon",this.show_coupon_form),g(document.body).on("click",".woocommerce-remove-coupon",this.remove_coupon),g("form.checkout_coupon").hide().submit(this.submit)},show_coupon_form:function(){return g(".checkout_coupon").slideToggle(400,function(){g(".checkout_coupon").find(":input:eq(0)").focus()}),!1},submit:function(){var t=g(this);if(t.is(".processing"))return!1;t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var e={security:wc_checkout_params.apply_coupon_nonce,coupon_code:t.find('input[name="coupon_code"]').val()};return g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","apply_coupon"),data:e,success:function(e){g(".woocommerce-error, .woocommerce-message").remove(),t.removeClass("processing").unblock(),e&&(t.before(e),t.slideUp(),g(document.body).trigger("update_checkout",{update_shipping_method:!1}))},dataType:"html"}),!1},remove_coupon:function(e){e.preventDefault();var t=g(this).parents(".woocommerce-checkout-review-order"),o=g(this).data("coupon");t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var c={security:wc_checkout_params.remove_coupon_nonce,coupon:o};g.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","remove_coupon"),data:c,success:function(e){g(".woocommerce-error, .woocommerce-message").remove(),t.removeClass("processing").unblock(),e&&(g("form.woocommerce-checkout").before(e),g(document.body).trigger("update_checkout",{update_shipping_method:!1}),g("form.checkout_coupon").find('input[name="coupon_code"]').val(""))},error:function(e){wc_checkout_params.debug_mode&&console.log(e.responseText)},dataType:"html"})}},t={init:function(){g(document.body).on("click","a.showlogin",this.show_login_form)},show_login_form:function(){return g("form.login, form.woocommerce-form--login").slideToggle(),!1}},o={init:function(){g(document.body).on("click","a.woocommerce-terms-and-conditions-link",this.toggle_terms)},toggle_terms:function(){if(g(".woocommerce-terms-and-conditions").length)return g(".woocommerce-terms-and-conditions").slideToggle(function(){var e=g(".woocommerce-terms-and-conditions-link");g(".woocommerce-terms-and-conditions").is(":visible")?(e.addClass("woocommerce-terms-and-conditions-link--open"),e.removeClass("woocommerce-terms-and-conditions-link--closed")):(e.removeClass("woocommerce-terms-and-conditions-link--open"),e.addClass("woocommerce-terms-and-conditions-link--closed"))}),!1}};v.init(),e.init(),t.init(),o.init()});
assets/js/frontend/country-select.js CHANGED
@@ -56,7 +56,7 @@ jQuery( function( $ ) {
56
  var wc_country_select_select2 = function() {
57
  $( 'select.country_select:visible, select.state_select:visible' ).each( function() {
58
  var select2_args = $.extend({
59
- placeholderOption: 'first',
60
  width: '100%'
61
  }, getEnhancedSelectFormatString() );
62
 
@@ -99,7 +99,15 @@ jQuery( function( $ ) {
99
  if ( $.isEmptyObject( states[ country ] ) ) {
100
 
101
  $statebox.closest( 'p.form-row' ).hide().find( '.select2-container' ).remove();
102
- $statebox.replaceWith( '<input type="hidden" class="hidden" name="' + input_name + '" id="' + input_id + '" value="" placeholder="' + placeholder + '" />' );
 
 
 
 
 
 
 
 
103
 
104
  $( document.body ).trigger( 'country_to_state_changed', [ country, $wrapper ] );
105
 
@@ -118,7 +126,15 @@ jQuery( function( $ ) {
118
 
119
  if ( $statebox.is( 'input' ) ) {
120
  // Change for select
121
- $statebox.replaceWith( '<select name="' + input_name + '" id="' + input_id + '" class="state_select" data-placeholder="' + placeholder + '"></select>' );
 
 
 
 
 
 
 
 
122
  $statebox = $wrapper.find( '#billing_state, #shipping_state, #calc_shipping_state' );
123
  }
124
 
@@ -132,14 +148,30 @@ jQuery( function( $ ) {
132
  if ( $statebox.is( 'select' ) ) {
133
 
134
  $parent.show().find( '.select2-container' ).remove();
135
- $statebox.replaceWith( '<input type="text" class="input-text" name="' + input_name + '" id="' + input_id + '" placeholder="' + placeholder + '" />' );
 
 
 
 
 
 
 
 
136
 
137
  $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );
138
 
139
  } else if ( $statebox.is( 'input[type="hidden"]' ) ) {
140
 
141
  $parent.show().find( '.select2-container' ).remove();
142
- $statebox.replaceWith( '<input type="text" class="input-text" name="' + input_name + '" id="' + input_id + '" placeholder="' + placeholder + '" />' );
 
 
 
 
 
 
 
 
143
 
144
  $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );
145
 
@@ -150,4 +182,24 @@ jQuery( function( $ ) {
150
 
151
  });
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  });
56
  var wc_country_select_select2 = function() {
57
  $( 'select.country_select:visible, select.state_select:visible' ).each( function() {
58
  var select2_args = $.extend({
59
+ placeholder: $( this ).attr( 'data-placeholder' ) || $( this ).attr( 'placeholder' ) || '',
60
  width: '100%'
61
  }, getEnhancedSelectFormatString() );
62
 
99
  if ( $.isEmptyObject( states[ country ] ) ) {
100
 
101
  $statebox.closest( 'p.form-row' ).hide().find( '.select2-container' ).remove();
102
+ $statebox.replaceWith(
103
+ '<input type="hidden" class="hidden" name="' +
104
+ input_name +
105
+ '" id="' +
106
+ input_id +
107
+ '" value="" placeholder="' +
108
+ placeholder +
109
+ '" />'
110
+ );
111
 
112
  $( document.body ).trigger( 'country_to_state_changed', [ country, $wrapper ] );
113
 
126
 
127
  if ( $statebox.is( 'input' ) ) {
128
  // Change for select
129
+ $statebox.replaceWith(
130
+ '<select name="' +
131
+ input_name +
132
+ '" id="' +
133
+ input_id +
134
+ '" class="state_select" data-placeholder="' +
135
+ placeholder +
136
+ '"></select>'
137
+ );
138
  $statebox = $wrapper.find( '#billing_state, #shipping_state, #calc_shipping_state' );
139
  }
140
 
148
  if ( $statebox.is( 'select' ) ) {
149
 
150
  $parent.show().find( '.select2-container' ).remove();
151
+ $statebox.replaceWith(
152
+ '<input type="text" class="input-text" name="' +
153
+ input_name +
154
+ '" id="' +
155
+ input_id +
156
+ '" placeholder="' +
157
+ placeholder +
158
+ '" />'
159
+ );
160
 
161
  $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );
162
 
163
  } else if ( $statebox.is( 'input[type="hidden"]' ) ) {
164
 
165
  $parent.show().find( '.select2-container' ).remove();
166
+ $statebox.replaceWith(
167
+ '<input type="text" class="input-text" name="' +
168
+ input_name +
169
+ '" id="' +
170
+ input_id +
171
+ '" placeholder="' +
172
+ placeholder +
173
+ '" />'
174
+ );
175
 
176
  $( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );
177
 
182
 
183
  });
184
 
185
+ $( document.body ).on( 'wc_address_i18n_ready', function() {
186
+ // Init country selects with their default value once the page loads.
187
+ $('.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator').each( function() {
188
+ var $wrapper = $( this ),
189
+ $country_input = $wrapper.find( '#billing_country, #shipping_country, #calc_shipping_country' );
190
+
191
+ if ( 0 === $country_input.length ) {
192
+ return;
193
+ }
194
+
195
+ var country = $country_input.val();
196
+
197
+ if ( 0 === country.length ) {
198
+ return;
199
+ }
200
+
201
+ $( document.body ).trigger( 'country_to_state_changing', [country, $wrapper ] );
202
+ });
203
+ });
204
+
205
  });
assets/js/frontend/country-select.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(u){if("undefined"==typeof wc_country_select_params)return!1;if(u().selectWoo){var t=function(){u("select.country_select:visible, select.state_select:visible").each(function(){var t=u.extend({placeholderOption:"first",width:"100%"},{language:{errorLoading:function(){return wc_country_select_params.i18n_searching},inputTooLong:function(t){var e=t.input.length-t.maximum;return 1===e?wc_country_select_params.i18n_input_too_long_1:wc_country_select_params.i18n_input_too_long_n.replace("%qty%",e)},inputTooShort:function(t){var e=t.minimum-t.input.length;return 1===e?wc_country_select_params.i18n_input_too_short_1:wc_country_select_params.i18n_input_too_short_n.replace("%qty%",e)},loadingMore:function(){return wc_country_select_params.i18n_load_more},maximumSelected:function(t){return 1===t.maximum?wc_country_select_params.i18n_selection_too_long_1:wc_country_select_params.i18n_selection_too_long_n.replace("%qty%",t.maximum)},noResults:function(){return wc_country_select_params.i18n_no_matches},searching:function(){return wc_country_select_params.i18n_searching}}});u(this).selectWoo(t),u(this).on("select2:select",function(){u(this).focus()})})};t(),u(document.body).bind("country_to_state_changed",function(){t()})}var e=wc_country_select_params.countries.replace(/&quot;/g,'"'),p=u.parseJSON(e);u(document.body).on("change","select.country_to_state, input.country_to_state",function(){var t=u(this).closest(".woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator");t.length||(t=u(this).closest(".form-row").parent());var e=u(this).val(),n=t.find("#billing_state, #shipping_state, #calc_shipping_state"),o=n.closest("p.form-row"),c=n.attr("name"),i=n.attr("id"),r=n.val(),a=n.attr("placeholder")||n.attr("data-placeholder")||"";if(p[e])if(u.isEmptyObject(p[e]))n.closest("p.form-row").hide().find(".select2-container").remove(),n.replaceWith('<input type="hidden" class="hidden" name="'+c+'" id="'+i+'" value="" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t]);else{var s="",_=p[e];for(var l in _)_.hasOwnProperty(l)&&(s=s+'<option value="'+l+'">'+_[l]+"</option>");n.closest("p.form-row").show(),n.is("input")&&(n.replaceWith('<select name="'+c+'" id="'+i+'" class="state_select" data-placeholder="'+a+'"></select>'),n=t.find("#billing_state, #shipping_state, #calc_shipping_state")),n.html('<option value="">'+wc_country_select_params.i18n_select_state_text+"</option>"+s),n.val(r).change(),u(document.body).trigger("country_to_state_changed",[e,t])}else n.is("select")?(o.show().find(".select2-container").remove(),n.replaceWith('<input type="text" class="input-text" name="'+c+'" id="'+i+'" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t])):n.is('input[type="hidden"]')&&(o.show().find(".select2-container").remove(),n.replaceWith('<input type="text" class="input-text" name="'+c+'" id="'+i+'" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t]));u(document.body).trigger("country_to_state_changing",[e,t])})});
1
+ jQuery(function(u){if("undefined"==typeof wc_country_select_params)return!1;if(u().selectWoo){var t=function(){u("select.country_select:visible, select.state_select:visible").each(function(){var t=u.extend({placeholder:u(this).attr("data-placeholder")||u(this).attr("placeholder")||"",width:"100%"},{language:{errorLoading:function(){return wc_country_select_params.i18n_searching},inputTooLong:function(t){var e=t.input.length-t.maximum;return 1===e?wc_country_select_params.i18n_input_too_long_1:wc_country_select_params.i18n_input_too_long_n.replace("%qty%",e)},inputTooShort:function(t){var e=t.minimum-t.input.length;return 1===e?wc_country_select_params.i18n_input_too_short_1:wc_country_select_params.i18n_input_too_short_n.replace("%qty%",e)},loadingMore:function(){return wc_country_select_params.i18n_load_more},maximumSelected:function(t){return 1===t.maximum?wc_country_select_params.i18n_selection_too_long_1:wc_country_select_params.i18n_selection_too_long_n.replace("%qty%",t.maximum)},noResults:function(){return wc_country_select_params.i18n_no_matches},searching:function(){return wc_country_select_params.i18n_searching}}});u(this).selectWoo(t),u(this).on("select2:select",function(){u(this).focus()})})};t(),u(document.body).bind("country_to_state_changed",function(){t()})}var e=wc_country_select_params.countries.replace(/&quot;/g,'"'),p=u.parseJSON(e);u(document.body).on("change","select.country_to_state, input.country_to_state",function(){var t=u(this).closest(".woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator");t.length||(t=u(this).closest(".form-row").parent());var e=u(this).val(),n=t.find("#billing_state, #shipping_state, #calc_shipping_state"),o=n.closest("p.form-row"),c=n.attr("name"),i=n.attr("id"),r=n.val(),a=n.attr("placeholder")||n.attr("data-placeholder")||"";if(p[e])if(u.isEmptyObject(p[e]))n.closest("p.form-row").hide().find(".select2-container").remove(),n.replaceWith('<input type="hidden" class="hidden" name="'+c+'" id="'+i+'" value="" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t]);else{var s="",_=p[e];for(var l in _)_.hasOwnProperty(l)&&(s=s+'<option value="'+l+'">'+_[l]+"</option>");n.closest("p.form-row").show(),n.is("input")&&(n.replaceWith('<select name="'+c+'" id="'+i+'" class="state_select" data-placeholder="'+a+'"></select>'),n=t.find("#billing_state, #shipping_state, #calc_shipping_state")),n.html('<option value="">'+wc_country_select_params.i18n_select_state_text+"</option>"+s),n.val(r).change(),u(document.body).trigger("country_to_state_changed",[e,t])}else n.is("select")?(o.show().find(".select2-container").remove(),n.replaceWith('<input type="text" class="input-text" name="'+c+'" id="'+i+'" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t])):n.is('input[type="hidden"]')&&(o.show().find(".select2-container").remove(),n.replaceWith('<input type="text" class="input-text" name="'+c+'" id="'+i+'" placeholder="'+a+'" />'),u(document.body).trigger("country_to_state_changed",[e,t]));u(document.body).trigger("country_to_state_changing",[e,t])}),u(document.body).on("wc_address_i18n_ready",function(){u(".woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-shipping-calculator").each(function(){var t=u(this),e=t.find("#billing_country, #shipping_country, #calc_shipping_country");if(0!==e.length){var n=e.val();0!==n.length&&u(document.body).trigger("country_to_state_changing",[n,t])}})})});
i18n/languages/woocommerce.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2018 Automattic
2
  # This file is distributed under the same license as the WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce 3.5.3\n"
6
  "Report-Msgid-Bugs-To: https://github.com/woocommerce/woocommerce/issues\n"
7
- "POT-Creation-Date: 2018-12-20 15:33:23+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
14
  "X-Generator: grunt-wp-i18n1.0.2\n"
@@ -5877,7 +5877,7 @@ msgid "via %s"
5877
  msgstr ""
5878
 
5879
  #: includes/abstracts/abstract-wc-order.php:1731
5880
- #: includes/class-wc-cart.php:1388 includes/class-wc-product-grouped.php:120
5881
  msgid "Free!"
5882
  msgstr ""
5883
 
@@ -5955,15 +5955,15 @@ msgstr ""
5955
  msgid "Read more about &ldquo;%s&rdquo;"
5956
  msgstr ""
5957
 
5958
- #: includes/abstracts/abstract-wc-product.php:1968
5959
  #: includes/admin/class-wc-admin-reports.php:108
5960
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:267
5961
  #: includes/admin/reports/class-wc-report-stock.php:118
5962
- #: includes/wc-product-functions.php:847
5963
  msgid "Out of stock"
5964
  msgstr ""
5965
 
5966
- #: includes/abstracts/abstract-wc-product.php:1970 templates/cart/cart.php:89
5967
  msgid "Available on backorder"
5968
  msgstr ""
5969
 
@@ -5971,34 +5971,34 @@ msgstr ""
5971
  #: includes/api/legacy/v2/class-wc-api-coupons.php:529
5972
  #: includes/api/legacy/v2/class-wc-api-customers.php:792
5973
  #: includes/api/legacy/v2/class-wc-api-orders.php:1783
5974
- #: includes/api/legacy/v2/class-wc-api-products.php:2311
5975
  #: includes/api/legacy/v3/class-wc-api-coupons.php:529
5976
  #: includes/api/legacy/v3/class-wc-api-customers.php:782
5977
  #: includes/api/legacy/v3/class-wc-api-orders.php:1828
5978
- #: includes/api/legacy/v3/class-wc-api-products.php:3124
5979
  #: includes/api/legacy/v3/class-wc-api-taxes.php:465
5980
  #. translators: %s: items limit
5981
  msgid "Unable to accept more than %s items for this request."
5982
  msgstr ""
5983
 
5984
- #: includes/abstracts/abstract-wc-rest-controller.php:255
5985
- #: includes/abstracts/abstract-wc-rest-controller.php:273
5986
- #: includes/abstracts/abstract-wc-rest-controller.php:296
5987
- #: includes/abstracts/abstract-wc-rest-controller.php:339
5988
  #: includes/api/v2/class-wc-rest-payment-gateways-v2-controller.php:187
5989
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:314
5990
  msgid "An invalid setting value was passed."
5991
  msgstr ""
5992
 
5993
- #: includes/abstracts/abstract-wc-rest-controller.php:398
5994
  msgid "List of created resources."
5995
  msgstr ""
5996
 
5997
- #: includes/abstracts/abstract-wc-rest-controller.php:406
5998
  msgid "List of updated resources."
5999
  msgstr ""
6000
 
6001
- #: includes/abstracts/abstract-wc-rest-controller.php:414
6002
  msgid "List of delete resources."
6003
  msgstr ""
6004
 
@@ -6057,9 +6057,9 @@ msgstr ""
6057
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:418
6058
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:153
6059
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:303
6060
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:460
6061
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:499
6062
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1314
6063
  msgid "Invalid ID."
6064
  msgstr ""
6065
 
@@ -6080,7 +6080,7 @@ msgstr ""
6080
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:438
6081
  #: includes/api/v1/class-wc-rest-products-controller.php:1656
6082
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:520
6083
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1343
6084
  #. translators: %s: post type
6085
  msgid "Sorry, you are not allowed to delete %s."
6086
  msgstr ""
@@ -6089,7 +6089,7 @@ msgstr ""
6089
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:451
6090
  #: includes/api/v1/class-wc-rest-products-controller.php:1688
6091
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:538
6092
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1379
6093
  #. translators: %s: post type
6094
  msgid "The %s does not support trashing."
6095
  msgstr ""
@@ -6098,7 +6098,7 @@ msgstr ""
6098
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:457
6099
  #: includes/api/v1/class-wc-rest-products-controller.php:1694
6100
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:549
6101
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1390
6102
  #. translators: %s: post type
6103
  msgid "The %s has already been deleted."
6104
  msgstr ""
@@ -6107,9 +6107,9 @@ msgstr ""
6107
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:467
6108
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:316
6109
  #: includes/api/v1/class-wc-rest-products-controller.php:1705
6110
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:469
6111
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:563
6112
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1404
6113
  #. translators: %s: post type
6114
  msgid "The %s cannot be deleted."
6115
  msgstr ""
@@ -6129,20 +6129,20 @@ msgid "Limit results to those matching a string."
6129
  msgstr ""
6130
 
6131
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:535
6132
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:622
6133
  #: includes/api/class-wc-rest-product-reviews-controller.php:929
6134
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:702
6135
  msgid "Limit response to resources published after a given ISO8601 compliant date."
6136
  msgstr ""
6137
 
6138
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:541
6139
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:628
6140
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:708
6141
  msgid "Limit response to resources published before a given ISO8601 compliant date."
6142
  msgstr ""
6143
 
6144
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:547
6145
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:634
6146
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:697
6147
  #: includes/api/class-wc-rest-product-reviews-controller.php:939
6148
  #: includes/api/v1/class-wc-rest-customers-controller.php:865
@@ -6151,14 +6151,14 @@ msgid "Ensure result set excludes specific IDs."
6151
  msgstr ""
6152
 
6153
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:556
6154
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:643
6155
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:706
6156
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:723
6157
  msgid "Limit result set to specific ids."
6158
  msgstr ""
6159
 
6160
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:565
6161
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:652
6162
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:716
6163
  #: includes/api/class-wc-rest-product-reviews-controller.php:955
6164
  #: includes/api/v1/class-wc-rest-customers-controller.php:883
@@ -6168,7 +6168,7 @@ msgid "Offset the result set by a specific number of items."
6168
  msgstr ""
6169
 
6170
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:571
6171
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:658
6172
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:723
6173
  #: includes/api/class-wc-rest-product-reviews-controller.php:959
6174
  #: includes/api/v1/class-wc-rest-customers-controller.php:890
@@ -6178,7 +6178,7 @@ msgid "Order sort attribute ascending or descending."
6178
  msgstr ""
6179
 
6180
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:578
6181
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:665
6182
  #: includes/api/class-wc-rest-product-reviews-controller.php:968
6183
  #: includes/api/v1/class-wc-rest-customers-controller.php:898
6184
  #: includes/api/v1/class-wc-rest-taxes-controller.php:690
@@ -6187,12 +6187,12 @@ msgid "Sort collection by object attribute."
6187
  msgstr ""
6188
 
6189
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:593
6190
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:682
6191
  msgid "Limit result set to those of particular parent IDs."
6192
  msgstr ""
6193
 
6194
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:602
6195
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:691
6196
  msgid "Limit result set to all items except those of a particular parent ID."
6197
  msgstr ""
6198
 
@@ -6249,8 +6249,8 @@ msgstr ""
6249
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:258
6250
  #: includes/api/class-wc-rest-products-controller.php:314
6251
  #: includes/api/v1/class-wc-rest-products-controller.php:1637
6252
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:700
6253
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1322
6254
  msgid ""
6255
  "To manipulate product variations you should use the "
6256
  "/products/&lt;product_id&gt;/variations/&lt;id&gt; endpoint."
@@ -6262,12 +6262,12 @@ msgstr ""
6262
  #: includes/api/v1/class-wc-rest-orders-controller.php:865
6263
  #: includes/api/v1/class-wc-rest-products-controller.php:784
6264
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:383
6265
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:549
6266
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:39
6267
  msgid "ID is invalid."
6268
  msgstr ""
6269
 
6270
- #: includes/abstracts/abstract-wc-rest-posts-controller.php:704
6271
  msgid ""
6272
  "Use WP Query arguments to modify the response; private query vars require "
6273
  "appropriate authorization."
@@ -6337,20 +6337,20 @@ msgstr ""
6337
  #: includes/api/v1/class-wc-rest-webhook-deliveries-controller.php:67
6338
  #: includes/api/v1/class-wc-rest-webhook-deliveries-controller.php:226
6339
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:78
6340
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:615
6341
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:76
6342
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:124
6343
  #: includes/api/v2/class-wc-rest-order-notes-v2-controller.php:129
6344
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:92
6345
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:355
6346
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:82
6347
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:839
6348
  #: includes/api/v2/class-wc-rest-payment-gateways-v2-controller.php:54
6349
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:103
6350
  #: includes/api/v2/class-wc-rest-product-reviews-v2-controller.php:153
6351
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:657
6352
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:82
6353
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1441
6354
  #: includes/api/v2/class-wc-rest-setting-options-v2-controller.php:84
6355
  #: includes/api/v2/class-wc-rest-shipping-methods-v2-controller.php:54
6356
  #: includes/api/v2/class-wc-rest-shipping-zones-v2-controller.php:281
@@ -6490,7 +6490,7 @@ msgid "Free"
6490
  msgstr ""
6491
 
6492
  #: includes/admin/class-wc-admin-addons.php:490
6493
- #: includes/admin/helper/class-wc-helper.php:342
6494
  msgid "Installed"
6495
  msgstr ""
6496
 
@@ -6772,7 +6772,9 @@ msgstr ""
6772
  #: includes/admin/class-wc-admin-assets.php:260
6773
  #: includes/admin/class-wc-admin-assets.php:415
6774
  #: includes/admin/settings/views/html-webhooks-edit.php:67
6775
- #: includes/class-wc-frontend-scripts.php:566
 
 
6776
  msgid "Select an option&hellip;"
6777
  msgstr ""
6778
 
@@ -7041,7 +7043,7 @@ msgid ""
7041
  msgstr ""
7042
 
7043
  #: includes/admin/class-wc-admin-attributes.php:264
7044
- #: includes/admin/helper/class-wc-helper.php:180
7045
  #: includes/admin/helper/views/html-section-account.php:3
7046
  #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:74
7047
  #: templates/cart/shipping-calculator.php:86
@@ -7238,7 +7240,7 @@ msgstr ""
7238
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:446
7239
  #: includes/admin/meta-boxes/views/html-order-items.php:33
7240
  #: includes/admin/meta-boxes/views/html-order-items.php:192
7241
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:183
7242
  #: includes/wc-account-functions.php:193 templates/cart/cart-totals.php:92
7243
  #: templates/cart/cart-totals.php:93 templates/cart/cart.php:33
7244
  #: templates/cart/cart.php:118 templates/checkout/review-order.php:27
@@ -7530,7 +7532,7 @@ msgstr ""
7530
 
7531
  #: includes/admin/class-wc-admin-menus.php:79
7532
  #: includes/admin/views/html-admin-page-status-report.php:604
7533
- #: includes/class-wc-install.php:1179
7534
  msgid "Settings"
7535
  msgstr ""
7536
 
@@ -7868,7 +7870,7 @@ msgstr ""
7868
  #: includes/admin/settings/views/html-webhooks-edit.php:168
7869
  #: includes/admin/settings/views/html-webhooks-edit.php:177
7870
  #: includes/admin/settings/views/html-webhooks-edit.php:185
7871
- #: includes/class-wc-webhook.php:402
7872
  msgid "M j, Y @ G:i"
7873
  msgstr ""
7874
 
@@ -8104,7 +8106,7 @@ msgstr ""
8104
  #: includes/admin/class-wc-admin-profile.php:105
8105
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:44
8106
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:95
8107
- #: includes/class-wc-countries.php:627 includes/class-wc-form-handler.php:235
8108
  #: templates/myaccount/form-edit-account.php:27
8109
  msgid "First name"
8110
  msgstr ""
@@ -8113,7 +8115,7 @@ msgstr ""
8113
  #: includes/admin/class-wc-admin-profile.php:109
8114
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:48
8115
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:99
8116
- #: includes/class-wc-countries.php:634 includes/class-wc-form-handler.php:236
8117
  #: templates/myaccount/form-edit-account.php:31
8118
  msgid "Last name"
8119
  msgstr ""
@@ -8134,8 +8136,8 @@ msgstr ""
8134
  #: includes/api/class-wc-rest-customers-controller.php:231
8135
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:215
8136
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:278
8137
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1003
8138
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1066
8139
  msgid "Address line 1"
8140
  msgstr ""
8141
 
@@ -8149,8 +8151,8 @@ msgstr ""
8149
  #: includes/api/class-wc-rest-customers-controller.php:236
8150
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:220
8151
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:283
8152
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1008
8153
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1071
8154
  #: includes/customizer/class-wc-shop-customizer.php:678
8155
  msgid "Address line 2"
8156
  msgstr ""
@@ -8175,7 +8177,7 @@ msgstr ""
8175
  #: includes/admin/settings/class-wc-settings-general.php:100
8176
  #: includes/admin/settings/class-wc-settings-tax.php:195
8177
  #: includes/admin/settings/views/html-settings-tax.php:28
8178
- #: includes/class-wc-countries.php:690
8179
  #: templates/cart/shipping-calculator.php:82
8180
  msgid "Postcode / ZIP"
8181
  msgstr ""
@@ -8187,7 +8189,7 @@ msgstr ""
8187
  #: includes/admin/class-wc-admin-setup-wizard.php:421
8188
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:72
8189
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:123
8190
- #: includes/class-wc-countries.php:649
8191
  msgid "Country"
8192
  msgstr ""
8193
 
@@ -8204,7 +8206,7 @@ msgstr ""
8204
  #: includes/admin/class-wc-admin-profile.php:140
8205
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:79
8206
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:130
8207
- #: includes/class-wc-countries.php:682
8208
  #: templates/cart/shipping-calculator.php:50
8209
  #: templates/cart/shipping-calculator.php:55
8210
  #: templates/cart/shipping-calculator.php:67
@@ -8219,7 +8221,7 @@ msgstr ""
8219
  #: includes/admin/class-wc-admin-profile.php:85
8220
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:365
8221
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:87
8222
- #: includes/class-wc-countries.php:1279
8223
  #: includes/customizer/class-wc-shop-customizer.php:679
8224
  msgid "Phone"
8225
  msgstr ""
@@ -8227,7 +8229,7 @@ msgstr ""
8227
  #: includes/admin/class-wc-admin-profile.php:89
8228
  #: includes/admin/class-wc-admin-setup-wizard.php:2258
8229
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:84
8230
- #: includes/class-wc-countries.php:1289 includes/class-wc-form-handler.php:238
8231
  #: templates/myaccount/form-edit-account.php:43
8232
  #: templates/myaccount/form-login.php:86
8233
  msgid "Email address"
@@ -8452,8 +8454,8 @@ msgstr ""
8452
 
8453
  #: includes/admin/class-wc-admin-setup-wizard.php:440
8454
  #: includes/admin/class-wc-admin-setup-wizard.php:442
8455
- #: includes/class-wc-countries.php:780 includes/class-wc-countries.php:1033
8456
- #: includes/class-wc-countries.php:1169
8457
  msgid "State"
8458
  msgstr ""
8459
 
@@ -9264,7 +9266,7 @@ msgstr ""
9264
  #: includes/admin/class-wc-admin-webhooks.php:69
9265
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:199
9266
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:199
9267
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:500
9268
  #. translators: %s: date
9269
  msgid "Webhook created on %s"
9270
  msgstr ""
@@ -9311,20 +9313,20 @@ msgstr ""
9311
  msgid "Create a new webhook"
9312
  msgstr ""
9313
 
9314
- #: includes/admin/class-wc-admin.php:199
9315
  msgid "HTML email template"
9316
  msgstr ""
9317
 
9318
- #: includes/admin/class-wc-admin.php:241
9319
  #. translators: 1: WooCommerce 2:: five stars
9320
  msgid "If you like %1$s please leave us a %2$s rating. A huge thanks in advance!"
9321
  msgstr ""
9322
 
9323
- #: includes/admin/class-wc-admin.php:243
9324
  msgid "Thanks :)"
9325
  msgstr ""
9326
 
9327
- #: includes/admin/class-wc-admin.php:252
9328
  msgid "Thank you for selling with WooCommerce."
9329
  msgstr ""
9330
 
@@ -9338,68 +9340,68 @@ msgstr ""
9338
  msgid "WooCommerce Helper"
9339
  msgstr ""
9340
 
9341
- #: includes/admin/helper/class-wc-helper.php:179
9342
- #: includes/admin/helper/class-wc-helper.php:199
9343
  #. translators: %s: version number
9344
  msgid "Version %s is <strong>available</strong>."
9345
  msgstr ""
9346
 
9347
- #: includes/admin/helper/class-wc-helper.php:188
9348
  msgid ""
9349
  "To enable this update you need to <strong>activate</strong> this "
9350
  "subscription."
9351
  msgstr ""
9352
 
9353
- #: includes/admin/helper/class-wc-helper.php:204
9354
  msgid ""
9355
  "To enable this update you need to <strong>purchase</strong> a new "
9356
  "subscription."
9357
  msgstr ""
9358
 
9359
- #: includes/admin/helper/class-wc-helper.php:205
9360
- #: includes/admin/helper/class-wc-helper.php:290
9361
- #: includes/admin/helper/class-wc-helper.php:301
9362
  msgid "Purchase"
9363
  msgstr ""
9364
 
9365
- #: includes/admin/helper/class-wc-helper.php:211
9366
  msgid ""
9367
  "This subscription has expired. Contact the owner to <strong>renew</strong> "
9368
  "the subscription to receive updates and support."
9369
  msgstr ""
9370
 
9371
- #: includes/admin/helper/class-wc-helper.php:219
9372
  msgid ""
9373
  "This subscription has expired. Please <strong>renew</strong> to receive "
9374
  "updates and support."
9375
  msgstr ""
9376
 
9377
- #: includes/admin/helper/class-wc-helper.php:220
9378
- #: includes/admin/helper/class-wc-helper.php:243
9379
  msgid "Renew"
9380
  msgstr ""
9381
 
9382
- #: includes/admin/helper/class-wc-helper.php:231
9383
  msgid "Subscription is <strong>expiring</strong> soon."
9384
  msgstr ""
9385
 
9386
- #: includes/admin/helper/class-wc-helper.php:232
9387
  msgid "Enable auto-renew"
9388
  msgstr ""
9389
 
9390
- #: includes/admin/helper/class-wc-helper.php:242
9391
  msgid ""
9392
  "This subscription is expiring soon. Please <strong>renew</strong> to "
9393
  "continue receiving updates and support."
9394
  msgstr ""
9395
 
9396
- #: includes/admin/helper/class-wc-helper.php:289
9397
  msgid ""
9398
  "Version %s is <strong>available</strong>. To enable this update you need to "
9399
  "<strong>purchase</strong> a new subscription."
9400
  msgstr ""
9401
 
9402
- #: includes/admin/helper/class-wc-helper.php:300
9403
  #. translators: 1: subscriptions docs 2: subscriptions docs
9404
  msgid ""
9405
  "To receive updates and support for this extension, you need to "
@@ -9409,19 +9411,19 @@ msgid ""
9409
  "Docs\">transferring</a></strong> this extension to this connected account."
9410
  msgstr ""
9411
 
9412
- #: includes/admin/helper/class-wc-helper.php:339
9413
  #: includes/admin/reports/class-wc-report-sales-by-category.php:232
9414
  msgid "All"
9415
  msgstr ""
9416
 
9417
- #: includes/admin/helper/class-wc-helper.php:340
9418
  #: includes/admin/helper/views/html-main.php:112
9419
  #: includes/admin/helper/views/html-main.php:115
9420
- #: includes/wc-webhook-functions.php:100
9421
  msgid "Active"
9422
  msgstr ""
9423
 
9424
- #: includes/admin/helper/class-wc-helper.php:341
9425
  #: includes/admin/helper/views/html-main.php:122
9426
  #: includes/admin/helper/views/html-main.php:125
9427
  #: includes/admin/helper/views/html-main.php:132
@@ -9431,19 +9433,19 @@ msgstr ""
9431
  msgid "Inactive"
9432
  msgstr ""
9433
 
9434
- #: includes/admin/helper/class-wc-helper.php:343
9435
  msgid "Update Available"
9436
  msgstr ""
9437
 
9438
- #: includes/admin/helper/class-wc-helper.php:344
9439
  msgid "Expiring Soon"
9440
  msgstr ""
9441
 
9442
- #: includes/admin/helper/class-wc-helper.php:345
9443
  msgid "Expired"
9444
  msgstr ""
9445
 
9446
- #: includes/admin/helper/class-wc-helper.php:346
9447
  #: includes/admin/helper/views/html-main.php:109
9448
  #: includes/class-wc-emails.php:410
9449
  #: includes/legacy/abstract-wc-legacy-order.php:507
@@ -9452,24 +9454,24 @@ msgstr ""
9452
  msgid "Download"
9453
  msgstr ""
9454
 
9455
- #: includes/admin/helper/class-wc-helper.php:473
9456
  #. translators: %s: product name
9457
  msgid "%s activated successfully. You will now receive updates for this product."
9458
  msgstr ""
9459
 
9460
- #: includes/admin/helper/class-wc-helper.php:485
9461
  #. translators: %s: product name
9462
  msgid "An error has occurred when activating %s. Please try again later."
9463
  msgstr ""
9464
 
9465
- #: includes/admin/helper/class-wc-helper.php:497
9466
  #. translators: %s: product name
9467
  msgid ""
9468
  "Subscription for %s deactivated successfully. You will no longer receive "
9469
  "updates for this product."
9470
  msgstr ""
9471
 
9472
- #: includes/admin/helper/class-wc-helper.php:515
9473
  #. translators: %1$s: product name, %2$s: deactivate url
9474
  msgid ""
9475
  "Subscription for %1$s deactivated successfully. You will no longer receive "
@@ -9477,45 +9479,45 @@ msgid ""
9477
  "deactivate the plugin as well."
9478
  msgstr ""
9479
 
9480
- #: includes/admin/helper/class-wc-helper.php:532
9481
  #. translators: %s: product name
9482
  msgid ""
9483
  "An error has occurred when deactivating the subscription for %s. Please try "
9484
  "again later."
9485
  msgstr ""
9486
 
9487
- #: includes/admin/helper/class-wc-helper.php:544
9488
  #. translators: %s: product name
9489
  msgid "The extension %s has been deactivated successfully."
9490
  msgstr ""
9491
 
9492
- #: includes/admin/helper/class-wc-helper.php:556
9493
  #. translators: %1$s: product name, %2$s: plugins screen url
9494
  msgid ""
9495
  "An error has occurred when deactivating the extension %1$s. Please proceed "
9496
  "to the <a href=\"%2$s\">Plugins screen</a> to deactivate it manually."
9497
  msgstr ""
9498
 
9499
- #: includes/admin/helper/class-wc-helper.php:564
9500
  msgid "You have successfully connected your store to WooCommerce.com"
9501
  msgstr ""
9502
 
9503
- #: includes/admin/helper/class-wc-helper.php:571
9504
  msgid "You have successfully disconnected your store from WooCommerce.com"
9505
  msgstr ""
9506
 
9507
- #: includes/admin/helper/class-wc-helper.php:578
9508
  msgid "Authentication and subscription caches refreshed successfully."
9509
  msgstr ""
9510
 
9511
- #: includes/admin/helper/class-wc-helper.php:1364
9512
  #. translators: %s: helper screen url
9513
  msgid ""
9514
  "<a href=\"%s\">Connect your store</a> to WooCommerce.com to receive "
9515
  "extensions updates and support."
9516
  msgstr ""
9517
 
9518
- #: includes/admin/helper/class-wc-helper.php:1397
9519
  #. translators: %1$s: helper url, %2$d: number of extensions
9520
  msgid ""
9521
  "Note: You currently have <a href=\"%1$s\">%2$d paid extension</a> which "
@@ -9970,56 +9972,56 @@ msgid "Position"
9970
  msgstr ""
9971
 
9972
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:548
9973
- #: includes/export/class-wc-product-csv-exporter.php:579
9974
  #. translators: %d: Attribute number
9975
  #. translators: %s: attribute number
9976
  msgid "Attribute %d name"
9977
  msgstr ""
9978
 
9979
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:550
9980
- #: includes/export/class-wc-product-csv-exporter.php:581
9981
  #. translators: %d: Attribute number
9982
  #. translators: %s: attribute number
9983
  msgid "Attribute %d value(s)"
9984
  msgstr ""
9985
 
9986
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:552
9987
- #: includes/export/class-wc-product-csv-exporter.php:583
9988
  #. translators: %d: Attribute number
9989
  #. translators: %s: attribute number
9990
  msgid "Attribute %d visible"
9991
  msgstr ""
9992
 
9993
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:554
9994
- #: includes/export/class-wc-product-csv-exporter.php:585
9995
  #. translators: %d: Attribute number
9996
  #. translators: %s: attribute number
9997
  msgid "Attribute %d global"
9998
  msgstr ""
9999
 
10000
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:556
10001
- #: includes/export/class-wc-product-csv-exporter.php:623
10002
  #. translators: %d: Attribute number
10003
  #. translators: %s: attribute number
10004
  msgid "Attribute %d default"
10005
  msgstr ""
10006
 
10007
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:558
10008
- #: includes/export/class-wc-product-csv-exporter.php:552
10009
  #. translators: %d: Download number
10010
  #. translators: %s: download number
10011
  msgid "Download %d name"
10012
  msgstr ""
10013
 
10014
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:560
10015
- #: includes/export/class-wc-product-csv-exporter.php:554
10016
  #. translators: %d: Download number
10017
  #. translators: %s: download number
10018
  msgid "Download %d URL"
10019
  msgstr ""
10020
 
10021
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:562
10022
- #: includes/export/class-wc-product-csv-exporter.php:668
10023
  #. translators: %d: Meta number
10024
  #. translators: %s: meta data name
10025
  msgid "Meta: %s"
@@ -10247,7 +10249,7 @@ msgstr ""
10247
  #: includes/admin/reports/class-wc-report-stock.php:173
10248
  #: includes/class-wc-emails.php:408 includes/class-wc-post-types.php:304
10249
  #: includes/class-wc-privacy-exporters.php:338
10250
- #: includes/data-stores/class-wc-product-data-store-cpt.php:106
10251
  #: includes/wc-account-functions.php:211 templates/cart/cart.php:30
10252
  #: templates/cart/cart.php:74 templates/checkout/form-pay.php:27
10253
  #: templates/checkout/review-order.php:26
@@ -10539,7 +10541,7 @@ msgstr ""
10539
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:445
10540
  #: includes/admin/meta-boxes/views/html-order-items.php:38
10541
  #: includes/admin/meta-boxes/views/html-order-items.php:39
10542
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:155
10543
  #: includes/admin/settings/class-wc-settings-tax.php:29
10544
  #: includes/class-wc-countries.php:405 includes/class-wc-order-item-tax.php:159
10545
  #: includes/class-wc-tax.php:762
@@ -10591,7 +10593,7 @@ msgstr ""
10591
  #: includes/wc-account-functions.php:346
10592
  #: includes/wc-formatting-functions.php:1221
10593
  #: includes/wc-formatting-functions.php:1240
10594
- #: templates/emails/email-addresses.php:31
10595
  #: templates/order/order-details-customer.php:35
10596
  #: templates/order/order-details-customer.php:53
10597
  #: templates/single-product/meta.php:31
@@ -10661,14 +10663,14 @@ msgstr ""
10661
 
10662
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:263
10663
  #: includes/admin/reports/class-wc-report-stock.php:114
10664
- #: includes/wc-product-functions.php:848
10665
  msgid "On backorder"
10666
  msgstr ""
10667
 
10668
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:265
10669
  #: includes/admin/reports/class-wc-report-stock.php:116
10670
  #: includes/wc-formatting-functions.php:1147
10671
- #: includes/wc-product-functions.php:846
10672
  msgid "In stock"
10673
  msgstr ""
10674
 
@@ -11619,35 +11621,35 @@ msgid ""
11619
  "enabled, stock quantity can go below 0."
11620
  msgstr ""
11621
 
11622
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:78
11623
  #: includes/admin/settings/class-wc-settings-products.php:191
11624
  msgid "Low stock threshold"
11625
  msgstr ""
11626
 
11627
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:80
11628
  msgid "When product stock reaches this amount you will be notified by email"
11629
  msgstr ""
11630
 
11631
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:98
11632
  #: includes/admin/meta-boxes/views/html-variation-admin.php:219
11633
  #: includes/admin/reports/class-wc-report-stock.php:176
11634
  msgid "Stock status"
11635
  msgstr ""
11636
 
11637
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:101
11638
  #: includes/admin/meta-boxes/views/html-variation-admin.php:222
11639
  #: includes/api/v1/class-wc-rest-products-controller.php:1956
11640
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1673
11641
  msgid ""
11642
  "Controls whether or not the product is listed as \"in stock\" or \"out of "
11643
  "stock\" on the frontend."
11644
  msgstr ""
11645
 
11646
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:116
11647
  msgid "Sold individually"
11648
  msgstr ""
11649
 
11650
- #: includes/admin/meta-boxes/views/html-product-data-inventory.php:117
11651
  msgid "Enable this to only allow one of this item to be bought in a single order"
11652
  msgstr ""
11653
 
@@ -12412,8 +12414,8 @@ msgid "Number of items sold"
12412
  msgstr ""
12413
 
12414
  #: includes/admin/reports/class-wc-report-sales-by-date.php:698
12415
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:157
12416
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:211
12417
  msgid "Number of orders"
12418
  msgstr ""
12419
 
@@ -12506,70 +12508,70 @@ msgstr ""
12506
  msgid "Units in stock"
12507
  msgstr ""
12508
 
12509
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:156
12510
  msgid "Rate"
12511
  msgstr ""
12512
 
12513
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:158
12514
  msgid "Tax amount"
12515
  msgstr ""
12516
 
12517
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:158
12518
  msgid "This is the sum of the \"Tax rows\" tax amount within your orders."
12519
  msgstr ""
12520
 
12521
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:159
12522
  msgid "Shipping tax amount"
12523
  msgstr ""
12524
 
12525
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:159
12526
  msgid "This is the sum of the \"Tax rows\" shipping tax amount within your orders."
12527
  msgstr ""
12528
 
12529
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:160
12530
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:214
12531
  msgid "Total tax"
12532
  msgstr ""
12533
 
12534
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:160
12535
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:214
12536
  msgid "This is the total tax for the rate (shipping tax + product tax)."
12537
  msgstr ""
12538
 
12539
- #: includes/admin/reports/class-wc-report-taxes-by-code.php:192
12540
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:256
12541
  msgid "No taxes found in this period"
12542
  msgstr ""
12543
 
12544
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:210
12545
  msgid "Period"
12546
  msgstr ""
12547
 
12548
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:212
12549
  msgid "Total sales"
12550
  msgstr ""
12551
 
12552
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:212
12553
  msgid "This is the sum of the 'Order total' field within your orders."
12554
  msgstr ""
12555
 
12556
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:213
12557
  msgid "Total shipping"
12558
  msgstr ""
12559
 
12560
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:213
12561
  msgid "This is the sum of the 'Shipping total' field within your orders."
12562
  msgstr ""
12563
 
12564
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:215
12565
  msgid "Net profit"
12566
  msgstr ""
12567
 
12568
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:215
12569
  msgid "Total sales minus shipping and tax."
12570
  msgstr ""
12571
 
12572
- #: includes/admin/reports/class-wc-report-taxes-by-date.php:245
12573
  #: templates/checkout/form-pay.php:29
12574
  msgid "Totals"
12575
  msgstr ""
@@ -13118,7 +13120,7 @@ msgid "Manual"
13118
  msgstr ""
13119
 
13120
  #: includes/admin/settings/class-wc-settings-emails.php:304
13121
- #: includes/wc-webhook-functions.php:102
13122
  msgid "Disabled"
13123
  msgstr ""
13124
 
@@ -14069,7 +14071,7 @@ msgstr ""
14069
  #: includes/admin/views/html-bulk-edit-product.php:95
14070
  #: includes/admin/views/html-quick-edit-product.php:72
14071
  #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:217
14072
- #: includes/wc-product-functions.php:828
14073
  msgid "Standard"
14074
  msgstr ""
14075
 
@@ -15336,7 +15338,7 @@ msgstr ""
15336
  #: includes/admin/views/html-bulk-edit-product.php:190
15337
  #: includes/admin/views/html-quick-edit-product.php:147
15338
  #: includes/customizer/class-wc-shop-customizer.php:700
15339
- #: includes/wc-product-functions.php:773
15340
  msgid "Hidden"
15341
  msgstr ""
15342
 
@@ -15698,8 +15700,8 @@ msgstr ""
15698
  #: includes/api/v1/class-wc-rest-orders-controller.php:1096
15699
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:200
15700
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:263
15701
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:988
15702
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1051
15703
  msgid "First name."
15704
  msgstr ""
15705
 
@@ -15711,8 +15713,8 @@ msgstr ""
15711
  #: includes/api/v1/class-wc-rest-orders-controller.php:1101
15712
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:205
15713
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:268
15714
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:993
15715
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1056
15716
  msgid "Last name."
15717
  msgstr ""
15718
 
@@ -15724,8 +15726,8 @@ msgstr ""
15724
  #: includes/api/v1/class-wc-rest-orders-controller.php:1106
15725
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:210
15726
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:273
15727
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:998
15728
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1061
15729
  msgid "Company name."
15730
  msgstr ""
15731
 
@@ -15738,8 +15740,8 @@ msgstr ""
15738
  #: includes/api/v1/class-wc-rest-taxes-controller.php:597
15739
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:225
15740
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:288
15741
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1013
15742
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1076
15743
  msgid "City name."
15744
  msgstr ""
15745
 
@@ -15751,8 +15753,8 @@ msgstr ""
15751
  #: includes/api/v1/class-wc-rest-orders-controller.php:1126
15752
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:230
15753
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:293
15754
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1018
15755
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1081
15756
  msgid "ISO code or name of the state, province or district."
15757
  msgstr ""
15758
 
@@ -15764,8 +15766,8 @@ msgstr ""
15764
  #: includes/api/v1/class-wc-rest-orders-controller.php:1131
15765
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:235
15766
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:298
15767
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1023
15768
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1086
15769
  msgid "Postal code."
15770
  msgstr ""
15771
 
@@ -15782,7 +15784,7 @@ msgstr ""
15782
  #: includes/api/v1/class-wc-rest-customers-controller.php:773
15783
  #: includes/api/v1/class-wc-rest-orders-controller.php:1078
15784
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:245
15785
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1033
15786
  msgid "Email address."
15787
  msgstr ""
15788
 
@@ -15790,7 +15792,7 @@ msgstr ""
15790
  #: includes/api/v1/class-wc-rest-customers-controller.php:779
15791
  #: includes/api/v1/class-wc-rest-orders-controller.php:1084
15792
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:251
15793
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1039
15794
  msgid "Phone number."
15795
  msgstr ""
15796
 
@@ -15818,14 +15820,14 @@ msgstr ""
15818
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:334
15819
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:394
15820
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:517
15821
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1146
15822
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1258
15823
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1349
15824
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1440
15825
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1538
15826
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1596
15827
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:972
15828
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2017
15829
  msgid "Meta data."
15830
  msgstr ""
15831
 
@@ -15836,14 +15838,14 @@ msgstr ""
15836
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:341
15837
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:401
15838
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:525
15839
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1153
15840
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1265
15841
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1356
15842
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1447
15843
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1545
15844
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1603
15845
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:979
15846
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2024
15847
  msgid "Meta ID."
15848
  msgstr ""
15849
 
@@ -15856,14 +15858,14 @@ msgstr ""
15856
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:347
15857
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:407
15858
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:531
15859
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1159
15860
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1271
15861
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1362
15862
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1453
15863
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1551
15864
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1609
15865
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:985
15866
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2030
15867
  msgid "Meta key."
15868
  msgstr ""
15869
 
@@ -15876,14 +15878,14 @@ msgstr ""
15876
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:352
15877
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:412
15878
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:537
15879
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1164
15880
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1276
15881
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1367
15882
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1458
15883
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1556
15884
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1614
15885
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:990
15886
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2035
15887
  msgid "Meta value."
15888
  msgstr ""
15889
 
@@ -16008,8 +16010,8 @@ msgstr ""
16008
  #: includes/api/v2/class-wc-rest-order-notes-v2-controller.php:39
16009
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:191
16010
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:273
16011
- #: includes/wc-core-functions.php:143 includes/wc-order-functions.php:488
16012
- #: includes/wc-order-functions.php:1021
16013
  msgid "Invalid order ID."
16014
  msgstr ""
16015
 
@@ -16072,7 +16074,7 @@ msgstr ""
16072
  #: includes/api/legacy/v2/class-wc-api-orders.php:1159
16073
  #: includes/api/legacy/v3/class-wc-api-orders.php:1204
16074
  #: includes/api/v1/class-wc-rest-orders-controller.php:739
16075
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:739
16076
  msgid "Coupon code is required."
16077
  msgstr ""
16078
 
@@ -16083,20 +16085,13 @@ msgstr ""
16083
  #: includes/api/legacy/v3/class-wc-api-orders.php:423
16084
  #: includes/api/legacy/v3/class-wc-api-orders.php:573
16085
  #: includes/api/v1/class-wc-rest-orders-controller.php:534
16086
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:527
16087
- msgid "Customer ID is invalid."
16088
- msgstr ""
16089
-
16090
- #: includes/api/class-wc-rest-orders-controller.php:165
16091
- #: includes/api/legacy/class-wc-rest-legacy-orders-controller.php:254
16092
- #: includes/api/v1/class-wc-rest-orders-controller.php:539
16093
  #: includes/api/v2/class-wc-rest-orders-v2-controller.php:532
16094
- msgid "Customer ID does not belong to this site."
16095
  msgstr ""
16096
 
16097
  #: includes/api/class-wc-rest-orders-controller.php:257
16098
  #: includes/api/v1/class-wc-rest-orders-controller.php:1601
16099
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1675
16100
  msgid "Limit result set to orders assigned a specific status."
16101
  msgstr ""
16102
 
@@ -16217,7 +16212,7 @@ msgstr ""
16217
  #: includes/api/v1/class-wc-rest-product-categories-controller.php:180
16218
  #: includes/api/v1/class-wc-rest-products-controller.php:2106
16219
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:109
16220
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1823
16221
  msgid "Category name."
16222
  msgstr ""
16223
 
@@ -16266,7 +16261,7 @@ msgstr ""
16266
  #: includes/api/v1/class-wc-rest-products-controller.php:2487
16267
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:150
16268
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:890
16269
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1872
16270
  msgid "Image ID."
16271
  msgstr ""
16272
 
@@ -16278,7 +16273,7 @@ msgstr ""
16278
  #: includes/api/v1/class-wc-rest-products-controller.php:2492
16279
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:155
16280
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:895
16281
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1877
16282
  msgid "The date the image was created, in the site's timezone."
16283
  msgstr ""
16284
 
@@ -16287,7 +16282,7 @@ msgstr ""
16287
  #: includes/api/class-wc-rest-products-controller.php:1140
16288
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:161
16289
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:901
16290
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1883
16291
  msgid "The date the image was created, as GMT."
16292
  msgstr ""
16293
 
@@ -16299,7 +16294,7 @@ msgstr ""
16299
  #: includes/api/v1/class-wc-rest-products-controller.php:2498
16300
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:167
16301
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:907
16302
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1889
16303
  msgid "The date the image was last modified, in the site's timezone."
16304
  msgstr ""
16305
 
@@ -16308,7 +16303,7 @@ msgstr ""
16308
  #: includes/api/class-wc-rest-products-controller.php:1152
16309
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:173
16310
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:913
16311
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1895
16312
  msgid "The date the image was last modified, as GMT."
16313
  msgstr ""
16314
 
@@ -16320,7 +16315,7 @@ msgstr ""
16320
  #: includes/api/v1/class-wc-rest-products-controller.php:2504
16321
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:179
16322
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:919
16323
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1901
16324
  msgid "Image URL."
16325
  msgstr ""
16326
 
@@ -16332,7 +16327,7 @@ msgstr ""
16332
  #: includes/api/v1/class-wc-rest-products-controller.php:2510
16333
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:185
16334
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:925
16335
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1907
16336
  msgid "Image name."
16337
  msgstr ""
16338
 
@@ -16344,7 +16339,7 @@ msgstr ""
16344
  #: includes/api/v1/class-wc-rest-products-controller.php:2515
16345
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:190
16346
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:930
16347
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1912
16348
  msgid "Image alternative text."
16349
  msgstr ""
16350
 
@@ -16389,9 +16384,9 @@ msgstr ""
16389
  #: includes/api/v1/class-wc-rest-product-reviews-controller.php:118
16390
  #: includes/api/v1/class-wc-rest-products-controller.php:102
16391
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:102
16392
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:108
16393
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:115
16394
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:111
16395
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:87
16396
  #: includes/api/v2/class-wc-rest-shipping-zones-v2-controller.php:77
16397
  msgid "Whether to bypass trash and force deletion."
@@ -16562,7 +16557,7 @@ msgstr ""
16562
  #: includes/api/class-wc-rest-product-variations-controller.php:371
16563
  #: includes/api/class-wc-rest-products-controller.php:251
16564
  #: includes/api/v1/class-wc-rest-products-controller.php:867
16565
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1088
16566
  #. translators: %s: attachment ID
16567
  #. translators: %s: image ID
16568
  #. translators: %s: attachment id
@@ -16597,7 +16592,7 @@ msgstr ""
16597
  #: includes/api/v1/class-wc-rest-products-controller.php:1811
16598
  #: includes/api/v1/class-wc-rest-products-controller.php:2295
16599
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:687
16600
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1525
16601
  msgid "Unique identifier."
16602
  msgstr ""
16603
 
@@ -16622,14 +16617,14 @@ msgstr ""
16622
  #: includes/api/class-wc-rest-product-variations-controller.php:459
16623
  #: includes/api/class-wc-rest-products-controller.php:802
16624
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:708
16625
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1546
16626
  msgid "Start date of sale price, in the site's timezone."
16627
  msgstr ""
16628
 
16629
  #: includes/api/class-wc-rest-product-variations-controller.php:464
16630
  #: includes/api/class-wc-rest-products-controller.php:807
16631
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:713
16632
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1551
16633
  msgid "Start date of sale price, as GMT."
16634
  msgstr ""
16635
 
@@ -16638,7 +16633,7 @@ msgstr ""
16638
  #: includes/api/class-wc-rest-products-controller.php:812
16639
  #: includes/api/class-wc-rest-products-controller.php:817
16640
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:718
16641
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1556
16642
  msgid "End date of sale price, in the site's timezone."
16643
  msgstr ""
16644
 
@@ -16675,7 +16670,7 @@ msgstr ""
16675
  #: includes/api/v1/class-wc-rest-products-controller.php:1878
16676
  #: includes/api/v1/class-wc-rest-products-controller.php:2355
16677
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:758
16678
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1602
16679
  msgid "List of downloadable files."
16680
  msgstr ""
16681
 
@@ -16684,7 +16679,7 @@ msgstr ""
16684
  #: includes/api/v1/class-wc-rest-products-controller.php:1885
16685
  #: includes/api/v1/class-wc-rest-products-controller.php:2362
16686
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:765
16687
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1609
16688
  msgid "File ID."
16689
  msgstr ""
16690
 
@@ -16695,7 +16690,7 @@ msgstr ""
16695
  #: includes/api/v1/class-wc-rest-products-controller.php:2367
16696
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:147
16697
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:770
16698
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1614
16699
  msgid "File name."
16700
  msgstr ""
16701
 
@@ -16706,7 +16701,7 @@ msgstr ""
16706
  #: includes/api/v1/class-wc-rest-products-controller.php:2372
16707
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:153
16708
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:775
16709
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1619
16710
  msgid "File URL."
16711
  msgstr ""
16712
 
@@ -16715,7 +16710,7 @@ msgstr ""
16715
  #: includes/api/v1/class-wc-rest-products-controller.php:1903
16716
  #: includes/api/v1/class-wc-rest-products-controller.php:2380
16717
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:783
16718
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1627
16719
  msgid "Number of times downloadable files can be downloaded after purchase."
16720
  msgstr ""
16721
 
@@ -16724,7 +16719,7 @@ msgstr ""
16724
  #: includes/api/v1/class-wc-rest-products-controller.php:1909
16725
  #: includes/api/v1/class-wc-rest-products-controller.php:2386
16726
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:789
16727
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1633
16728
  msgid "Number of days until access to downloadable files expires."
16729
  msgstr ""
16730
 
@@ -16733,7 +16728,7 @@ msgstr ""
16733
  #: includes/api/v1/class-wc-rest-products-controller.php:1933
16734
  #: includes/api/v1/class-wc-rest-products-controller.php:2392
16735
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:795
16736
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1650
16737
  msgid "Tax status."
16738
  msgstr ""
16739
 
@@ -16743,7 +16738,7 @@ msgstr ""
16743
  #: includes/api/v1/class-wc-rest-products-controller.php:2399
16744
  #: includes/api/v1/class-wc-rest-taxes-controller.php:635
16745
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:802
16746
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1657
16747
  msgid "Tax class."
16748
  msgstr ""
16749
 
@@ -16758,7 +16753,7 @@ msgstr ""
16758
  #: includes/api/v1/class-wc-rest-products-controller.php:1951
16759
  #: includes/api/v1/class-wc-rest-products-controller.php:2410
16760
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:813
16761
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1668
16762
  msgid "Stock quantity."
16763
  msgstr ""
16764
 
@@ -16772,7 +16767,7 @@ msgstr ""
16772
  #: includes/api/v1/class-wc-rest-products-controller.php:1962
16773
  #: includes/api/v1/class-wc-rest-products-controller.php:2421
16774
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:824
16775
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1679
16776
  msgid "If managing stock, this controls if backorders are allowed."
16777
  msgstr ""
16778
 
@@ -16781,7 +16776,7 @@ msgstr ""
16781
  #: includes/api/v1/class-wc-rest-products-controller.php:1969
16782
  #: includes/api/v1/class-wc-rest-products-controller.php:2428
16783
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:831
16784
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1686
16785
  msgid "Shows if backorders are allowed."
16786
  msgstr ""
16787
 
@@ -16830,7 +16825,7 @@ msgstr ""
16830
  #: includes/api/v1/class-wc-rest-products-controller.php:2030
16831
  #: includes/api/v1/class-wc-rest-products-controller.php:2471
16832
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:874
16833
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1747
16834
  msgid "Shipping class slug."
16835
  msgstr ""
16836
 
@@ -16839,7 +16834,7 @@ msgstr ""
16839
  #: includes/api/v1/class-wc-rest-products-controller.php:2035
16840
  #: includes/api/v1/class-wc-rest-products-controller.php:2476
16841
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:879
16842
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1752
16843
  msgid "Shipping class ID."
16844
  msgstr ""
16845
 
@@ -16854,7 +16849,7 @@ msgstr ""
16854
  #: includes/api/v1/class-wc-rest-products-controller.php:2196
16855
  #: includes/api/v1/class-wc-rest-products-controller.php:2527
16856
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:942
16857
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1925
16858
  msgid "List of attributes."
16859
  msgstr ""
16860
 
@@ -16865,8 +16860,8 @@ msgstr ""
16865
  #: includes/api/v1/class-wc-rest-products-controller.php:2245
16866
  #: includes/api/v1/class-wc-rest-products-controller.php:2534
16867
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:949
16868
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1932
16869
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1977
16870
  #: includes/cli/class-wc-cli-runner.php:114
16871
  msgid "Attribute ID."
16872
  msgstr ""
@@ -16879,8 +16874,8 @@ msgstr ""
16879
  #: includes/api/v1/class-wc-rest-products-controller.php:2250
16880
  #: includes/api/v1/class-wc-rest-products-controller.php:2539
16881
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:954
16882
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1937
16883
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1982
16884
  msgid "Attribute name."
16885
  msgstr ""
16886
 
@@ -16889,7 +16884,7 @@ msgstr ""
16889
  #: includes/api/v1/class-wc-rest-products-controller.php:2255
16890
  #: includes/api/v1/class-wc-rest-products-controller.php:2544
16891
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:959
16892
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1987
16893
  msgid "Selected attribute term name."
16894
  msgstr ""
16895
 
@@ -16897,11 +16892,11 @@ msgstr ""
16897
  #: includes/api/class-wc-rest-products-controller.php:1265
16898
  #: includes/api/v1/class-wc-rest-products-controller.php:2564
16899
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:967
16900
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2012
16901
  msgid "Menu order, used to custom sort products."
16902
  msgstr ""
16903
 
16904
- #: includes/api/class-wc-rest-product-variations-controller.php:894
16905
  #: includes/api/class-wc-rest-products-controller.php:1311
16906
  msgid "Limit result set to products with specified stock status."
16907
  msgstr ""
@@ -16913,316 +16908,316 @@ msgstr ""
16913
  #: includes/api/v1/class-wc-rest-report-top-sellers-controller.php:152
16914
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:99
16915
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:434
16916
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1185
16917
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1447
16918
  msgid "Product name."
16919
  msgstr ""
16920
 
16921
  #: includes/api/class-wc-rest-products-controller.php:710
16922
  #: includes/api/v1/class-wc-rest-products-controller.php:1750
16923
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1452
16924
  msgid "Product slug."
16925
  msgstr ""
16926
 
16927
  #: includes/api/class-wc-rest-products-controller.php:715
16928
  #: includes/api/v1/class-wc-rest-products-controller.php:1755
16929
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1457
16930
  msgid "Product URL."
16931
  msgstr ""
16932
 
16933
  #: includes/api/class-wc-rest-products-controller.php:722
16934
  #: includes/api/v1/class-wc-rest-products-controller.php:1762
16935
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1464
16936
  msgid "The date the product was created, in the site's timezone."
16937
  msgstr ""
16938
 
16939
  #: includes/api/class-wc-rest-products-controller.php:727
16940
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1470
16941
  msgid "The date the product was created, as GMT."
16942
  msgstr ""
16943
 
16944
  #: includes/api/class-wc-rest-products-controller.php:732
16945
  #: includes/api/v1/class-wc-rest-products-controller.php:1768
16946
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1476
16947
  msgid "The date the product was last modified, in the site's timezone."
16948
  msgstr ""
16949
 
16950
  #: includes/api/class-wc-rest-products-controller.php:738
16951
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1482
16952
  msgid "The date the product was last modified, as GMT."
16953
  msgstr ""
16954
 
16955
  #: includes/api/class-wc-rest-products-controller.php:744
16956
  #: includes/api/v1/class-wc-rest-products-controller.php:1774
16957
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1488
16958
  msgid "Product type."
16959
  msgstr ""
16960
 
16961
  #: includes/api/class-wc-rest-products-controller.php:751
16962
  #: includes/api/v1/class-wc-rest-products-controller.php:1781
16963
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1495
16964
  msgid "Product status (post status)."
16965
  msgstr ""
16966
 
16967
  #: includes/api/class-wc-rest-products-controller.php:758
16968
  #: includes/api/v1/class-wc-rest-products-controller.php:1788
16969
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1502
16970
  msgid "Featured product."
16971
  msgstr ""
16972
 
16973
  #: includes/api/class-wc-rest-products-controller.php:764
16974
  #: includes/api/v1/class-wc-rest-products-controller.php:1794
16975
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1508
16976
  msgid "Catalog visibility."
16977
  msgstr ""
16978
 
16979
  #: includes/api/class-wc-rest-products-controller.php:771
16980
  #: includes/api/v1/class-wc-rest-products-controller.php:1801
16981
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1515
16982
  msgid "Product description."
16983
  msgstr ""
16984
 
16985
  #: includes/api/class-wc-rest-products-controller.php:776
16986
  #: includes/api/v1/class-wc-rest-products-controller.php:1806
16987
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1520
16988
  msgid "Product short description."
16989
  msgstr ""
16990
 
16991
  #: includes/api/class-wc-rest-products-controller.php:786
16992
  #: includes/api/v1/class-wc-rest-products-controller.php:1816
16993
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1530
16994
  msgid "Current product price."
16995
  msgstr ""
16996
 
16997
  #: includes/api/class-wc-rest-products-controller.php:792
16998
  #: includes/api/v1/class-wc-rest-products-controller.php:1822
16999
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1536
17000
  msgid "Product regular price."
17001
  msgstr ""
17002
 
17003
  #: includes/api/class-wc-rest-products-controller.php:797
17004
  #: includes/api/v1/class-wc-rest-products-controller.php:1827
17005
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1541
17006
  msgid "Product sale price."
17007
  msgstr ""
17008
 
17009
  #: includes/api/class-wc-rest-products-controller.php:822
17010
  #: includes/api/v1/class-wc-rest-products-controller.php:1842
17011
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1566
17012
  msgid "Price formatted in HTML."
17013
  msgstr ""
17014
 
17015
  #: includes/api/class-wc-rest-products-controller.php:828
17016
  #: includes/api/v1/class-wc-rest-products-controller.php:1848
17017
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1572
17018
  msgid "Shows if the product is on sale."
17019
  msgstr ""
17020
 
17021
  #: includes/api/class-wc-rest-products-controller.php:834
17022
  #: includes/api/v1/class-wc-rest-products-controller.php:1854
17023
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1578
17024
  msgid "Shows if the product can be bought."
17025
  msgstr ""
17026
 
17027
  #: includes/api/class-wc-rest-products-controller.php:840
17028
  #: includes/api/v1/class-wc-rest-products-controller.php:1860
17029
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1584
17030
  msgid "Amount of sales."
17031
  msgstr ""
17032
 
17033
  #: includes/api/class-wc-rest-products-controller.php:846
17034
  #: includes/api/v1/class-wc-rest-products-controller.php:1866
17035
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1590
17036
  msgid "If the product is virtual."
17037
  msgstr ""
17038
 
17039
  #: includes/api/class-wc-rest-products-controller.php:852
17040
  #: includes/api/v1/class-wc-rest-products-controller.php:1872
17041
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1596
17042
  msgid "If the product is downloadable."
17043
  msgstr ""
17044
 
17045
  #: includes/api/class-wc-rest-products-controller.php:895
17046
  #: includes/api/v1/class-wc-rest-products-controller.php:1922
17047
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1639
17048
  msgid "Product external URL. Only for external products."
17049
  msgstr ""
17050
 
17051
  #: includes/api/class-wc-rest-products-controller.php:901
17052
  #: includes/api/v1/class-wc-rest-products-controller.php:1928
17053
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1645
17054
  msgid "Product external button text. Only for external products."
17055
  msgstr ""
17056
 
17057
  #: includes/api/class-wc-rest-products-controller.php:918
17058
  #: includes/api/v1/class-wc-rest-products-controller.php:1945
17059
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1662
17060
  msgid "Stock management at product level."
17061
  msgstr ""
17062
 
17063
  #: includes/api/class-wc-rest-products-controller.php:949
17064
  #: includes/api/v1/class-wc-rest-products-controller.php:1975
17065
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1692
17066
  msgid "Shows if the product is on backordered."
17067
  msgstr ""
17068
 
17069
  #: includes/api/class-wc-rest-products-controller.php:955
17070
  #: includes/api/v1/class-wc-rest-products-controller.php:1981
17071
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1698
17072
  msgid "Allow one item to be bought in a single order."
17073
  msgstr ""
17074
 
17075
  #: includes/api/class-wc-rest-products-controller.php:962
17076
  #: includes/api/v1/class-wc-rest-products-controller.php:1988
17077
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1705
17078
  #. translators: %s: weight unit
17079
  msgid "Product weight (%s)."
17080
  msgstr ""
17081
 
17082
  #: includes/api/class-wc-rest-products-controller.php:967
17083
  #: includes/api/v1/class-wc-rest-products-controller.php:1993
17084
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1710
17085
  msgid "Product dimensions."
17086
  msgstr ""
17087
 
17088
  #: includes/api/class-wc-rest-products-controller.php:973
17089
  #: includes/api/v1/class-wc-rest-products-controller.php:1999
17090
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1716
17091
  #. translators: %s: dimension unit
17092
  msgid "Product length (%s)."
17093
  msgstr ""
17094
 
17095
  #: includes/api/class-wc-rest-products-controller.php:979
17096
  #: includes/api/v1/class-wc-rest-products-controller.php:2005
17097
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1722
17098
  #. translators: %s: dimension unit
17099
  msgid "Product width (%s)."
17100
  msgstr ""
17101
 
17102
  #: includes/api/class-wc-rest-products-controller.php:985
17103
  #: includes/api/v1/class-wc-rest-products-controller.php:2011
17104
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1728
17105
  #. translators: %s: dimension unit
17106
  msgid "Product height (%s)."
17107
  msgstr ""
17108
 
17109
  #: includes/api/class-wc-rest-products-controller.php:992
17110
  #: includes/api/v1/class-wc-rest-products-controller.php:2018
17111
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1735
17112
  msgid "Shows if the product need to be shipped."
17113
  msgstr ""
17114
 
17115
  #: includes/api/class-wc-rest-products-controller.php:998
17116
  #: includes/api/v1/class-wc-rest-products-controller.php:2024
17117
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1741
17118
  msgid "Shows whether or not the product shipping is taxable."
17119
  msgstr ""
17120
 
17121
  #: includes/api/class-wc-rest-products-controller.php:1015
17122
  #: includes/api/v1/class-wc-rest-products-controller.php:2041
17123
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1758
17124
  msgid "Allow reviews."
17125
  msgstr ""
17126
 
17127
  #: includes/api/class-wc-rest-products-controller.php:1021
17128
  #: includes/api/v1/class-wc-rest-products-controller.php:2047
17129
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1764
17130
  msgid "Reviews average rating."
17131
  msgstr ""
17132
 
17133
  #: includes/api/class-wc-rest-products-controller.php:1027
17134
  #: includes/api/v1/class-wc-rest-products-controller.php:2053
17135
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1770
17136
  msgid "Amount of reviews that the product have."
17137
  msgstr ""
17138
 
17139
  #: includes/api/class-wc-rest-products-controller.php:1033
17140
  #: includes/api/v1/class-wc-rest-products-controller.php:2059
17141
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1776
17142
  msgid "List of related products IDs."
17143
  msgstr ""
17144
 
17145
  #: includes/api/class-wc-rest-products-controller.php:1042
17146
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1785
17147
  msgid "List of up-sell products IDs."
17148
  msgstr ""
17149
 
17150
  #: includes/api/class-wc-rest-products-controller.php:1050
17151
  #: includes/api/v1/class-wc-rest-products-controller.php:2076
17152
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1793
17153
  msgid "List of cross-sell products IDs."
17154
  msgstr ""
17155
 
17156
  #: includes/api/class-wc-rest-products-controller.php:1058
17157
  #: includes/api/v1/class-wc-rest-products-controller.php:2084
17158
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1801
17159
  msgid "Product parent ID."
17160
  msgstr ""
17161
 
17162
  #: includes/api/class-wc-rest-products-controller.php:1063
17163
  #: includes/api/v1/class-wc-rest-products-controller.php:2089
17164
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1806
17165
  msgid "Optional note to send the customer after purchase."
17166
  msgstr ""
17167
 
17168
  #: includes/api/class-wc-rest-products-controller.php:1068
17169
  #: includes/api/v1/class-wc-rest-products-controller.php:2094
17170
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1811
17171
  msgid "List of categories."
17172
  msgstr ""
17173
 
17174
  #: includes/api/class-wc-rest-products-controller.php:1075
17175
  #: includes/api/v1/class-wc-rest-products-controller.php:2101
17176
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1818
17177
  msgid "Category ID."
17178
  msgstr ""
17179
 
17180
  #: includes/api/class-wc-rest-products-controller.php:1086
17181
  #: includes/api/v1/class-wc-rest-products-controller.php:2112
17182
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1829
17183
  msgid "Category slug."
17184
  msgstr ""
17185
 
17186
  #: includes/api/class-wc-rest-products-controller.php:1095
17187
  #: includes/api/v1/class-wc-rest-products-controller.php:2121
17188
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1838
17189
  msgid "List of tags."
17190
  msgstr ""
17191
 
17192
  #: includes/api/class-wc-rest-products-controller.php:1102
17193
  #: includes/api/v1/class-wc-rest-products-controller.php:2128
17194
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1845
17195
  msgid "Tag ID."
17196
  msgstr ""
17197
 
17198
  #: includes/api/class-wc-rest-products-controller.php:1107
17199
  #: includes/api/v1/class-wc-rest-product-tags-controller.php:100
17200
  #: includes/api/v1/class-wc-rest-products-controller.php:2133
17201
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1850
17202
  msgid "Tag name."
17203
  msgstr ""
17204
 
17205
  #: includes/api/class-wc-rest-products-controller.php:1113
17206
  #: includes/api/v1/class-wc-rest-products-controller.php:2139
17207
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1856
17208
  msgid "Tag slug."
17209
  msgstr ""
17210
 
17211
  #: includes/api/class-wc-rest-products-controller.php:1122
17212
  #: includes/api/v1/class-wc-rest-products-controller.php:2148
17213
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1865
17214
  msgid "List of images."
17215
  msgstr ""
17216
 
17217
  #: includes/api/class-wc-rest-products-controller.php:1194
17218
  #: includes/api/v1/class-wc-rest-products-controller.php:2213
17219
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1942
17220
  msgid "Attribute position."
17221
  msgstr ""
17222
 
17223
  #: includes/api/class-wc-rest-products-controller.php:1199
17224
  #: includes/api/v1/class-wc-rest-products-controller.php:2218
17225
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1947
17226
  msgid ""
17227
  "Define if the attribute is visible on the \"Additional information\" tab in "
17228
  "the product's page."
@@ -17230,30 +17225,30 @@ msgstr ""
17230
 
17231
  #: includes/api/class-wc-rest-products-controller.php:1205
17232
  #: includes/api/v1/class-wc-rest-products-controller.php:2224
17233
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1953
17234
  msgid "Define if the attribute can be used as variation."
17235
  msgstr ""
17236
 
17237
  #: includes/api/class-wc-rest-products-controller.php:1211
17238
  #: includes/api/v1/class-wc-rest-products-controller.php:2230
17239
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1959
17240
  msgid "List of available term names of the attribute."
17241
  msgstr ""
17242
 
17243
  #: includes/api/class-wc-rest-products-controller.php:1222
17244
  #: includes/api/v1/class-wc-rest-products-controller.php:2238
17245
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1970
17246
  msgid "Defaults variation attributes."
17247
  msgstr ""
17248
 
17249
  #: includes/api/class-wc-rest-products-controller.php:1247
17250
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1995
17251
  msgid "List of variations IDs."
17252
  msgstr ""
17253
 
17254
  #: includes/api/class-wc-rest-products-controller.php:1256
17255
  #: includes/api/v1/class-wc-rest-products-controller.php:2555
17256
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2004
17257
  msgid "List of grouped products ID."
17258
  msgstr ""
17259
 
@@ -17520,9 +17515,9 @@ msgstr ""
17520
  #: includes/api/legacy/v3/class-wc-api-products.php:2125
17521
  #: includes/api/v1/class-wc-rest-products-controller.php:313
17522
  #: includes/api/v1/class-wc-rest-products-controller.php:314
17523
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:411
17524
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:412
17525
- #: includes/wc-product-functions.php:309
17526
  msgid "Placeholder"
17527
  msgstr ""
17528
 
@@ -17586,7 +17581,7 @@ msgstr ""
17586
  #: includes/api/legacy/v2/class-wc-api-products.php:455
17587
  #: includes/api/legacy/v2/class-wc-api-resource.php:382
17588
  #: includes/api/legacy/v3/class-wc-api-products.php:514
17589
- #: includes/api/legacy/v3/class-wc-api-products.php:3062
17590
  #: includes/api/legacy/v3/class-wc-api-resource.php:384
17591
  msgid "This %s cannot be deleted"
17592
  msgstr ""
@@ -17601,14 +17596,14 @@ msgstr ""
17601
 
17602
  #: includes/api/legacy/v1/class-wc-api-resource.php:333
17603
  #: includes/api/legacy/v2/class-wc-api-products.php:468
17604
- #: includes/api/legacy/v2/class-wc-api-products.php:2230
17605
  #: includes/api/legacy/v2/class-wc-api-resource.php:390
17606
  #: includes/api/legacy/v3/class-wc-api-products.php:527
17607
  #: includes/api/legacy/v3/class-wc-api-products.php:871
17608
  #: includes/api/legacy/v3/class-wc-api-products.php:1063
17609
- #: includes/api/legacy/v3/class-wc-api-products.php:2791
17610
- #: includes/api/legacy/v3/class-wc-api-products.php:3069
17611
- #: includes/api/legacy/v3/class-wc-api-products.php:3380
17612
  #: includes/api/legacy/v3/class-wc-api-resource.php:394
17613
  #: includes/api/legacy/v3/class-wc-api-taxes.php:354
17614
  #: includes/api/legacy/v3/class-wc-api-taxes.php:665
@@ -17643,13 +17638,13 @@ msgstr ""
17643
  #: includes/api/legacy/v2/class-wc-api-coupons.php:226
17644
  #: includes/api/legacy/v2/class-wc-api-customers.php:363
17645
  #: includes/api/legacy/v2/class-wc-api-products.php:228
17646
- #: includes/api/legacy/v2/class-wc-api-products.php:1986
17647
  #: includes/api/legacy/v2/class-wc-api-server.php:430
17648
  #: includes/api/legacy/v3/class-wc-api-coupons.php:224
17649
  #: includes/api/legacy/v3/class-wc-api-customers.php:364
17650
  #: includes/api/legacy/v3/class-wc-api-products.php:277
17651
- #: includes/api/legacy/v3/class-wc-api-products.php:2544
17652
- #: includes/api/legacy/v3/class-wc-api-products.php:2943
17653
  #: includes/api/legacy/v3/class-wc-api-server.php:431
17654
  #: includes/api/legacy/v3/class-wc-api-taxes.php:575
17655
  #: includes/class-wc-auth.php:171
@@ -17663,7 +17658,7 @@ msgstr ""
17663
  #: includes/api/legacy/v2/class-wc-api-orders.php:1285
17664
  #: includes/api/legacy/v2/class-wc-api-orders.php:1579
17665
  #: includes/api/legacy/v2/class-wc-api-products.php:214
17666
- #: includes/api/legacy/v2/class-wc-api-products.php:2024
17667
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:171
17668
  #: includes/api/legacy/v3/class-wc-api-coupons.php:210
17669
  #: includes/api/legacy/v3/class-wc-api-customers.php:350
@@ -17673,9 +17668,9 @@ msgstr ""
17673
  #: includes/api/legacy/v3/class-wc-api-products.php:263
17674
  #: includes/api/legacy/v3/class-wc-api-products.php:707
17675
  #: includes/api/legacy/v3/class-wc-api-products.php:964
17676
- #: includes/api/legacy/v3/class-wc-api-products.php:2582
17677
- #: includes/api/legacy/v3/class-wc-api-products.php:2923
17678
- #: includes/api/legacy/v3/class-wc-api-products.php:3266
17679
  #: includes/api/legacy/v3/class-wc-api-taxes.php:184
17680
  #: includes/api/legacy/v3/class-wc-api-taxes.php:564
17681
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:171
@@ -17700,7 +17695,7 @@ msgstr ""
17700
  #: includes/api/legacy/v2/class-wc-api-orders.php:1344
17701
  #: includes/api/legacy/v2/class-wc-api-orders.php:1658
17702
  #: includes/api/legacy/v2/class-wc-api-products.php:323
17703
- #: includes/api/legacy/v2/class-wc-api-products.php:2107
17704
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:242
17705
  #: includes/api/legacy/v3/class-wc-api-coupons.php:322
17706
  #: includes/api/legacy/v3/class-wc-api-customers.php:405
@@ -17710,9 +17705,9 @@ msgstr ""
17710
  #: includes/api/legacy/v3/class-wc-api-products.php:377
17711
  #: includes/api/legacy/v3/class-wc-api-products.php:784
17712
  #: includes/api/legacy/v3/class-wc-api-products.php:1009
17713
- #: includes/api/legacy/v3/class-wc-api-products.php:2666
17714
- #: includes/api/legacy/v3/class-wc-api-products.php:2988
17715
- #: includes/api/legacy/v3/class-wc-api-products.php:3324
17716
  #: includes/api/legacy/v3/class-wc-api-taxes.php:254
17717
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:242
17718
  msgid "No %1$s data specified to edit %1$s"
@@ -17728,11 +17723,11 @@ msgstr ""
17728
  #: includes/api/legacy/v2/class-wc-api-coupons.php:521
17729
  #: includes/api/legacy/v2/class-wc-api-customers.php:784
17730
  #: includes/api/legacy/v2/class-wc-api-orders.php:1775
17731
- #: includes/api/legacy/v2/class-wc-api-products.php:2303
17732
  #: includes/api/legacy/v3/class-wc-api-coupons.php:521
17733
  #: includes/api/legacy/v3/class-wc-api-customers.php:774
17734
  #: includes/api/legacy/v3/class-wc-api-orders.php:1820
17735
- #: includes/api/legacy/v3/class-wc-api-products.php:3116
17736
  #: includes/api/legacy/v3/class-wc-api-taxes.php:457
17737
  msgid "No %1$s data specified to create/edit %1$s"
17738
  msgstr ""
@@ -17782,7 +17777,7 @@ msgstr ""
17782
  #: includes/api/legacy/v2/class-wc-api-orders.php:844
17783
  #: includes/api/legacy/v3/class-wc-api-orders.php:888
17784
  #: includes/api/v1/class-wc-rest-orders-controller.php:777
17785
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:776
17786
  msgid "Order item ID provided is not associated with order."
17787
  msgstr ""
17788
 
@@ -17829,7 +17824,7 @@ msgstr ""
17829
  #: includes/api/legacy/v2/class-wc-api-orders.php:1036
17830
  #: includes/api/legacy/v3/class-wc-api-orders.php:1081
17831
  #: includes/api/v1/class-wc-rest-orders-controller.php:693
17832
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:691
17833
  msgid "Shipping method ID is required."
17834
  msgstr ""
17835
 
@@ -17945,7 +17940,7 @@ msgstr ""
17945
 
17946
  #: includes/api/legacy/v2/class-wc-api-orders.php:1628
17947
  #: includes/api/legacy/v3/class-wc-api-orders.php:1673
17948
- #: includes/wc-order-functions.php:644
17949
  msgid ""
17950
  "An error occurred while attempting to create the refund using the payment "
17951
  "gateway API."
@@ -17992,132 +17987,97 @@ msgstr ""
17992
  msgid "The SKU already exists on another product."
17993
  msgstr ""
17994
 
17995
- #: includes/api/legacy/v2/class-wc-api-products.php:1704
17996
- #: includes/api/legacy/v3/class-wc-api-products.php:2237
17997
- #: includes/wc-rest-functions.php:74
17998
- #. translators: %s: image URL
17999
- msgid "Invalid URL %s."
18000
- msgstr ""
18001
-
18002
- #: includes/api/legacy/v2/class-wc-api-products.php:1716
18003
- #: includes/api/legacy/v2/class-wc-api-products.php:1718
18004
- #: includes/api/legacy/v3/class-wc-api-products.php:2249
18005
- #: includes/api/legacy/v3/class-wc-api-products.php:2251
18006
- #: includes/wc-rest-functions.php:90 includes/wc-rest-functions.php:96
18007
- #. translators: %s: image URL
18008
- msgid "Error getting remote image %s."
18009
- msgstr ""
18010
-
18011
- #: includes/api/legacy/v2/class-wc-api-products.php:1716
18012
- #: includes/api/legacy/v3/class-wc-api-products.php:2249
18013
- #: includes/class-wc-auth.php:402 includes/wc-rest-functions.php:92
18014
- #. translators: %s: error message
18015
- msgid "Error: %s."
18016
- msgstr ""
18017
-
18018
- #: includes/api/legacy/v2/class-wc-api-products.php:1739
18019
- #: includes/api/legacy/v3/class-wc-api-products.php:2272
18020
- #: includes/wc-rest-functions.php:118
18021
- msgid "Invalid image type."
18022
- msgstr ""
18023
-
18024
- #: includes/api/legacy/v2/class-wc-api-products.php:1756
18025
- #: includes/api/legacy/v3/class-wc-api-products.php:2289
18026
- #: includes/wc-rest-functions.php:136
18027
- msgid "Zero size file downloaded."
18028
- msgstr ""
18029
-
18030
- #: includes/api/legacy/v2/class-wc-api-products.php:1898
18031
- #: includes/api/legacy/v2/class-wc-api-products.php:1944
18032
- #: includes/api/legacy/v3/class-wc-api-products.php:2456
18033
- #: includes/api/legacy/v3/class-wc-api-products.php:2502
18034
  msgid "You do not have permission to read product attributes"
18035
  msgstr ""
18036
 
18037
- #: includes/api/legacy/v2/class-wc-api-products.php:1939
18038
- #: includes/api/legacy/v3/class-wc-api-products.php:2497
18039
- #: includes/api/legacy/v3/class-wc-api-products.php:2875
18040
  msgid "Invalid product attribute ID"
18041
  msgstr ""
18042
 
18043
- #: includes/api/legacy/v2/class-wc-api-products.php:1954
18044
- #: includes/api/legacy/v2/class-wc-api-products.php:2202
18045
- #: includes/api/legacy/v3/class-wc-api-products.php:2512
18046
- #: includes/api/legacy/v3/class-wc-api-products.php:2762
18047
- #: includes/api/legacy/v3/class-wc-api-products.php:2817
18048
- #: includes/api/legacy/v3/class-wc-api-products.php:2886
18049
- #: includes/api/legacy/v3/class-wc-api-products.php:2936
18050
- #: includes/api/legacy/v3/class-wc-api-products.php:3002
18051
- #: includes/api/legacy/v3/class-wc-api-products.php:3055
18052
  msgid "A product attribute with the provided ID could not be found"
18053
  msgstr ""
18054
 
18055
- #: includes/api/legacy/v2/class-wc-api-products.php:1990
18056
- #: includes/api/legacy/v3/class-wc-api-products.php:2548
18057
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:567
18058
  #: includes/wc-attribute-functions.php:449
18059
  #. translators: %s: attribute slug
18060
  msgid "Slug \"%s\" is too long (28 characters max). Shorten it, please."
18061
  msgstr ""
18062
 
18063
- #: includes/api/legacy/v2/class-wc-api-products.php:1992
18064
- #: includes/api/legacy/v3/class-wc-api-products.php:2550
18065
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:569
18066
  #: includes/wc-attribute-functions.php:452
18067
  #. translators: %s: attribute slug
18068
  msgid "Slug \"%s\" is not allowed because it is a reserved term. Change it, please."
18069
  msgstr ""
18070
 
18071
- #: includes/api/legacy/v2/class-wc-api-products.php:1994
18072
- #: includes/api/legacy/v3/class-wc-api-products.php:2552
18073
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:571
18074
  #: includes/wc-attribute-functions.php:455
18075
  #. translators: %s: attribute slug
18076
  msgid "Slug \"%s\" is already in use. Change it, please."
18077
  msgstr ""
18078
 
18079
- #: includes/api/legacy/v2/class-wc-api-products.php:1999
18080
- #: includes/api/legacy/v3/class-wc-api-products.php:2557
18081
  msgid ""
18082
  "Invalid product attribute type - the product attribute type must be any of "
18083
  "these: %s"
18084
  msgstr ""
18085
 
18086
- #: includes/api/legacy/v2/class-wc-api-products.php:2004
18087
- #: includes/api/legacy/v3/class-wc-api-products.php:2562
18088
  msgid ""
18089
  "Invalid product attribute order_by type - the product attribute order_by "
18090
  "type must be any of these: %s"
18091
  msgstr ""
18092
 
18093
- #: includes/api/legacy/v2/class-wc-api-products.php:2031
18094
- #: includes/api/legacy/v3/class-wc-api-products.php:2589
18095
- #: includes/api/legacy/v3/class-wc-api-products.php:2930
18096
  msgid "You do not have permission to create product attributes"
18097
  msgstr ""
18098
 
18099
- #: includes/api/legacy/v2/class-wc-api-products.php:2115
18100
- #: includes/api/legacy/v3/class-wc-api-products.php:2674
18101
- #: includes/api/legacy/v3/class-wc-api-products.php:2996
18102
  msgid "You do not have permission to edit product attributes"
18103
  msgstr ""
18104
 
18105
- #: includes/api/legacy/v2/class-wc-api-products.php:2161
18106
- #: includes/api/legacy/v3/class-wc-api-products.php:2720
18107
  msgid "Could not edit the attribute"
18108
  msgstr ""
18109
 
18110
- #: includes/api/legacy/v2/class-wc-api-products.php:2190
18111
- #: includes/api/legacy/v3/class-wc-api-products.php:2750
18112
  msgid "You do not have permission to delete product attributes"
18113
  msgstr ""
18114
 
18115
- #: includes/api/legacy/v2/class-wc-api-products.php:2212
18116
- #: includes/api/legacy/v3/class-wc-api-products.php:2772
18117
  msgid "Could not delete the attribute"
18118
  msgstr ""
18119
 
18120
- #: includes/api/legacy/v2/class-wc-api-products.php:2253
18121
  msgid "Invalid product SKU"
18122
  msgstr ""
18123
 
@@ -18228,53 +18188,53 @@ msgstr ""
18228
  msgid "Could not delete the tag"
18229
  msgstr ""
18230
 
18231
- #: includes/api/legacy/v3/class-wc-api-products.php:2811
18232
- #: includes/api/legacy/v3/class-wc-api-products.php:2880
18233
  msgid "You do not have permission to read product attribute terms"
18234
  msgstr ""
18235
 
18236
- #: includes/api/legacy/v3/class-wc-api-products.php:2892
18237
  msgid "A product attribute term with the provided ID could not be found"
18238
  msgstr ""
18239
 
18240
- #: includes/api/legacy/v3/class-wc-api-products.php:3049
18241
  msgid "You do not have permission to delete product attribute terms"
18242
  msgstr ""
18243
 
18244
- #: includes/api/legacy/v3/class-wc-api-products.php:3192
18245
- #: includes/api/legacy/v3/class-wc-api-products.php:3227
18246
  msgid "You do not have permission to read product shipping classes"
18247
  msgstr ""
18248
 
18249
- #: includes/api/legacy/v3/class-wc-api-products.php:3222
18250
  msgid "Invalid product shipping class ID"
18251
  msgstr ""
18252
 
18253
- #: includes/api/legacy/v3/class-wc-api-products.php:3233
18254
  msgid "A product shipping class with the provided ID could not be found"
18255
  msgstr ""
18256
 
18257
- #: includes/api/legacy/v3/class-wc-api-products.php:3271
18258
  msgid "You do not have permission to create product shipping classes"
18259
  msgstr ""
18260
 
18261
- #: includes/api/legacy/v3/class-wc-api-products.php:3289
18262
  msgid "Product shipping class parent is invalid"
18263
  msgstr ""
18264
 
18265
- #: includes/api/legacy/v3/class-wc-api-products.php:3332
18266
  msgid "You do not have permission to edit product shipping classes"
18267
  msgstr ""
18268
 
18269
- #: includes/api/legacy/v3/class-wc-api-products.php:3344
18270
  msgid "Could not edit the shipping class"
18271
  msgstr ""
18272
 
18273
- #: includes/api/legacy/v3/class-wc-api-products.php:3369
18274
  msgid "You do not have permission to delete product shipping classes"
18275
  msgstr ""
18276
 
18277
- #: includes/api/legacy/v3/class-wc-api-products.php:3375
18278
  msgid "Could not delete the shipping class"
18279
  msgstr ""
18280
 
@@ -18340,7 +18300,7 @@ msgstr ""
18340
  #: includes/api/v1/class-wc-rest-orders-controller.php:1538
18341
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:61
18342
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:341
18343
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1580
18344
  msgid "Coupon code."
18345
  msgstr ""
18346
 
@@ -18492,7 +18452,7 @@ msgstr ""
18492
  #: includes/api/v1/class-wc-rest-customer-downloads-controller.php:199
18493
  #: includes/api/v1/class-wc-rest-orders-controller.php:937
18494
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:117
18495
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:856
18496
  msgid "Order key."
18497
  msgstr ""
18498
 
@@ -18621,7 +18581,7 @@ msgid "The order ID."
18621
  msgstr ""
18622
 
18623
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:295
18624
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:454
18625
  msgid "Webhooks do not support trashing."
18626
  msgstr ""
18627
 
@@ -18657,7 +18617,7 @@ msgstr ""
18657
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:366
18658
  #: includes/api/v1/class-wc-rest-orders-controller.php:1208
18659
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:420
18660
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1172
18661
  msgid "Line items data."
18662
  msgstr ""
18663
 
@@ -18668,18 +18628,18 @@ msgstr ""
18668
  #: includes/api/v1/class-wc-rest-orders-controller.php:1461
18669
  #: includes/api/v1/class-wc-rest-orders-controller.php:1532
18670
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:428
18671
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1179
18672
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1307
18673
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1385
18674
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1476
18675
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1574
18676
  msgid "Item ID."
18677
  msgstr ""
18678
 
18679
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:386
18680
  #: includes/api/v1/class-wc-rest-orders-controller.php:1227
18681
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:546
18682
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1284
18683
  msgid "Product SKU."
18684
  msgstr ""
18685
 
@@ -18687,7 +18647,7 @@ msgstr ""
18687
  #: includes/api/v1/class-wc-rest-orders-controller.php:1233
18688
  #: includes/api/v1/class-wc-rest-report-top-sellers-controller.php:158
18689
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:440
18690
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1190
18691
  #: includes/cli/class-wc-cli-runner.php:110
18692
  msgid "Product ID."
18693
  msgstr ""
@@ -18695,42 +18655,42 @@ msgstr ""
18695
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:398
18696
  #: includes/api/v1/class-wc-rest-orders-controller.php:1238
18697
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:446
18698
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1195
18699
  msgid "Variation ID, if applicable."
18700
  msgstr ""
18701
 
18702
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:404
18703
  #: includes/api/v1/class-wc-rest-orders-controller.php:1243
18704
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:452
18705
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1200
18706
  msgid "Quantity ordered."
18707
  msgstr ""
18708
 
18709
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:410
18710
  #: includes/api/v1/class-wc-rest-orders-controller.php:1248
18711
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:458
18712
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1205
18713
  msgid "Tax class of product."
18714
  msgstr ""
18715
 
18716
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:416
18717
  #: includes/api/v1/class-wc-rest-orders-controller.php:1254
18718
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:552
18719
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1290
18720
  msgid "Product price."
18721
  msgstr ""
18722
 
18723
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:422
18724
  #: includes/api/v1/class-wc-rest-orders-controller.php:1260
18725
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:464
18726
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1210
18727
  msgid "Line subtotal (before discounts)."
18728
  msgstr ""
18729
 
18730
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:428
18731
  #: includes/api/v1/class-wc-rest-orders-controller.php:1265
18732
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:470
18733
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1215
18734
  msgid "Line subtotal tax (before discounts)."
18735
  msgstr ""
18736
 
@@ -18739,9 +18699,9 @@ msgstr ""
18739
  #: includes/api/v1/class-wc-rest-orders-controller.php:1417
18740
  #: includes/api/v1/class-wc-rest-orders-controller.php:1483
18741
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:476
18742
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1221
18743
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1406
18744
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1498
18745
  msgid "Line total (after discounts)."
18746
  msgstr ""
18747
 
@@ -18750,9 +18710,9 @@ msgstr ""
18750
  #: includes/api/v1/class-wc-rest-orders-controller.php:1422
18751
  #: includes/api/v1/class-wc-rest-orders-controller.php:1488
18752
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:482
18753
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1226
18754
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1411
18755
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1503
18756
  msgid "Line total tax (after discounts)."
18757
  msgstr ""
18758
 
@@ -18761,9 +18721,9 @@ msgstr ""
18761
  #: includes/api/v1/class-wc-rest-orders-controller.php:1428
18762
  #: includes/api/v1/class-wc-rest-orders-controller.php:1493
18763
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:488
18764
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1232
18765
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1417
18766
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1509
18767
  msgid "Line taxes."
18768
  msgstr ""
18769
 
@@ -18773,10 +18733,10 @@ msgstr ""
18773
  #: includes/api/v1/class-wc-rest-orders-controller.php:1436
18774
  #: includes/api/v1/class-wc-rest-orders-controller.php:1501
18775
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:496
18776
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1240
18777
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1319
18778
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1425
18779
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1517
18780
  msgid "Tax rate ID."
18781
  msgstr ""
18782
 
@@ -18785,9 +18745,9 @@ msgstr ""
18785
  #: includes/api/v1/class-wc-rest-orders-controller.php:1442
18786
  #: includes/api/v1/class-wc-rest-orders-controller.php:1507
18787
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:502
18788
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1245
18789
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1431
18790
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1523
18791
  msgid "Tax total."
18792
  msgstr ""
18793
 
@@ -18795,8 +18755,8 @@ msgstr ""
18795
  #: includes/api/v1/class-wc-rest-orders-controller.php:1300
18796
  #: includes/api/v1/class-wc-rest-orders-controller.php:1513
18797
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:508
18798
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1250
18799
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1529
18800
  msgid "Tax subtotal."
18801
  msgstr ""
18802
 
@@ -18812,285 +18772,285 @@ msgstr ""
18812
 
18813
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:522
18814
  #: includes/api/v1/class-wc-rest-orders-controller.php:1621
18815
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1695
18816
  msgid "Number of decimal points to use in each resource."
18817
  msgstr ""
18818
 
18819
  #: includes/api/v1/class-wc-rest-orders-controller.php:621
18820
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:599
18821
  msgid "Product ID or SKU is required."
18822
  msgstr ""
18823
 
18824
  #: includes/api/v1/class-wc-rest-orders-controller.php:716
18825
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:715
18826
  msgid "Fee name is required."
18827
  msgstr ""
18828
 
18829
  #: includes/api/v1/class-wc-rest-orders-controller.php:925
18830
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:845
18831
  msgid "Parent order ID."
18832
  msgstr ""
18833
 
18834
  #: includes/api/v1/class-wc-rest-orders-controller.php:930
18835
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:874
18836
  msgid "Order status."
18837
  msgstr ""
18838
 
18839
  #: includes/api/v1/class-wc-rest-orders-controller.php:943
18840
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:850
18841
  msgid "Order number."
18842
  msgstr ""
18843
 
18844
  #: includes/api/v1/class-wc-rest-orders-controller.php:949
18845
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:881
18846
  msgid "Currency the order was created with, in ISO format."
18847
  msgstr ""
18848
 
18849
  #: includes/api/v1/class-wc-rest-orders-controller.php:956
18850
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:868
18851
  msgid "Version of WooCommerce which last updated the order."
18852
  msgstr ""
18853
 
18854
  #: includes/api/v1/class-wc-rest-orders-controller.php:962
18855
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:954
18856
  msgid "True the prices included tax during checkout."
18857
  msgstr ""
18858
 
18859
  #: includes/api/v1/class-wc-rest-orders-controller.php:968
18860
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:136
18861
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:894
18862
  msgid "The date the order was created, as GMT."
18863
  msgstr ""
18864
 
18865
  #: includes/api/v1/class-wc-rest-orders-controller.php:974
18866
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:906
18867
  msgid "The date the order was last modified, as GMT."
18868
  msgstr ""
18869
 
18870
  #: includes/api/v1/class-wc-rest-orders-controller.php:980
18871
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:960
18872
  msgid "User ID who owns the order. 0 for guests."
18873
  msgstr ""
18874
 
18875
  #: includes/api/v1/class-wc-rest-orders-controller.php:986
18876
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:912
18877
  msgid "Total discount amount for the order."
18878
  msgstr ""
18879
 
18880
  #: includes/api/v1/class-wc-rest-orders-controller.php:992
18881
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:918
18882
  msgid "Total discount tax amount for the order."
18883
  msgstr ""
18884
 
18885
  #: includes/api/v1/class-wc-rest-orders-controller.php:998
18886
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:924
18887
  msgid "Total shipping amount for the order."
18888
  msgstr ""
18889
 
18890
  #: includes/api/v1/class-wc-rest-orders-controller.php:1004
18891
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:930
18892
  msgid "Total shipping tax amount for the order."
18893
  msgstr ""
18894
 
18895
  #: includes/api/v1/class-wc-rest-orders-controller.php:1010
18896
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:936
18897
  msgid "Sum of line item taxes only."
18898
  msgstr ""
18899
 
18900
  #: includes/api/v1/class-wc-rest-orders-controller.php:1016
18901
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:942
18902
  msgid "Grand total."
18903
  msgstr ""
18904
 
18905
  #: includes/api/v1/class-wc-rest-orders-controller.php:1022
18906
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:948
18907
  msgid "Sum of all taxes."
18908
  msgstr ""
18909
 
18910
  #: includes/api/v1/class-wc-rest-orders-controller.php:1028
18911
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:983
18912
  msgid "Billing address."
18913
  msgstr ""
18914
 
18915
  #: includes/api/v1/class-wc-rest-orders-controller.php:1073
18916
  #: includes/api/v1/class-wc-rest-orders-controller.php:1136
18917
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1028
18918
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1091
18919
  msgid "Country code in ISO 3166-1 alpha-2 format."
18920
  msgstr ""
18921
 
18922
  #: includes/api/v1/class-wc-rest-orders-controller.php:1091
18923
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1046
18924
  msgid "Shipping address."
18925
  msgstr ""
18926
 
18927
  #: includes/api/v1/class-wc-rest-orders-controller.php:1143
18928
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1098
18929
  msgid "Payment method ID."
18930
  msgstr ""
18931
 
18932
  #: includes/api/v1/class-wc-rest-orders-controller.php:1148
18933
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1103
18934
  msgid "Payment method title."
18935
  msgstr ""
18936
 
18937
  #: includes/api/v1/class-wc-rest-orders-controller.php:1156
18938
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1654
18939
  msgid ""
18940
  "Define if the order is paid. It will set the status to processing and "
18941
  "reduce stock items."
18942
  msgstr ""
18943
 
18944
  #: includes/api/v1/class-wc-rest-orders-controller.php:1162
18945
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1111
18946
  msgid "Unique transaction ID."
18947
  msgstr ""
18948
 
18949
  #: includes/api/v1/class-wc-rest-orders-controller.php:1167
18950
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:966
18951
  msgid "Customer's IP address."
18952
  msgstr ""
18953
 
18954
  #: includes/api/v1/class-wc-rest-orders-controller.php:1173
18955
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:972
18956
  msgid "User agent of the customer."
18957
  msgstr ""
18958
 
18959
  #: includes/api/v1/class-wc-rest-orders-controller.php:1179
18960
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:862
18961
  msgid "Shows where the order was created."
18962
  msgstr ""
18963
 
18964
  #: includes/api/v1/class-wc-rest-orders-controller.php:1185
18965
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:978
18966
  msgid "Note left by customer during checkout."
18967
  msgstr ""
18968
 
18969
  #: includes/api/v1/class-wc-rest-orders-controller.php:1190
18970
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1128
18971
  msgid "The date the order was completed, in the site's timezone."
18972
  msgstr ""
18973
 
18974
  #: includes/api/v1/class-wc-rest-orders-controller.php:1196
18975
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1116
18976
  msgid "The date the order was paid, in the site's timezone."
18977
  msgstr ""
18978
 
18979
  #: includes/api/v1/class-wc-rest-orders-controller.php:1202
18980
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1140
18981
  msgid "MD5 hash of cart items to ensure orders are not modified."
18982
  msgstr ""
18983
 
18984
  #: includes/api/v1/class-wc-rest-orders-controller.php:1341
18985
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1299
18986
  msgid "Tax lines data."
18987
  msgstr ""
18988
 
18989
  #: includes/api/v1/class-wc-rest-orders-controller.php:1355
18990
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1313
18991
  msgid "Tax rate code."
18992
  msgstr ""
18993
 
18994
  #: includes/api/v1/class-wc-rest-orders-controller.php:1367
18995
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1325
18996
  msgid "Tax rate label."
18997
  msgstr ""
18998
 
18999
  #: includes/api/v1/class-wc-rest-orders-controller.php:1373
19000
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1331
19001
  msgid "Show if is a compound tax rate."
19002
  msgstr ""
19003
 
19004
  #: includes/api/v1/class-wc-rest-orders-controller.php:1379
19005
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1337
19006
  msgid "Tax total (not including shipping taxes)."
19007
  msgstr ""
19008
 
19009
  #: includes/api/v1/class-wc-rest-orders-controller.php:1385
19010
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1343
19011
  msgid "Shipping tax total."
19012
  msgstr ""
19013
 
19014
  #: includes/api/v1/class-wc-rest-orders-controller.php:1394
19015
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1378
19016
  msgid "Shipping lines data."
19017
  msgstr ""
19018
 
19019
  #: includes/api/v1/class-wc-rest-orders-controller.php:1407
19020
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1391
19021
  msgid "Shipping method name."
19022
  msgstr ""
19023
 
19024
  #: includes/api/v1/class-wc-rest-orders-controller.php:1412
19025
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1396
19026
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:47
19027
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:464
19028
  msgid "Shipping method ID."
19029
  msgstr ""
19030
 
19031
  #: includes/api/v1/class-wc-rest-orders-controller.php:1454
19032
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1469
19033
  msgid "Fee lines data."
19034
  msgstr ""
19035
 
19036
  #: includes/api/v1/class-wc-rest-orders-controller.php:1467
19037
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1482
19038
  msgid "Fee name."
19039
  msgstr ""
19040
 
19041
  #: includes/api/v1/class-wc-rest-orders-controller.php:1472
19042
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1487
19043
  msgid "Tax class of fee."
19044
  msgstr ""
19045
 
19046
  #: includes/api/v1/class-wc-rest-orders-controller.php:1477
19047
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1492
19048
  msgid "Tax status of fee."
19049
  msgstr ""
19050
 
19051
  #: includes/api/v1/class-wc-rest-orders-controller.php:1525
19052
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1567
19053
  msgid "Coupons line data."
19054
  msgstr ""
19055
 
19056
  #: includes/api/v1/class-wc-rest-orders-controller.php:1543
19057
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1585
19058
  msgid "Discount total."
19059
  msgstr ""
19060
 
19061
  #: includes/api/v1/class-wc-rest-orders-controller.php:1548
19062
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1590
19063
  msgid "Discount total tax."
19064
  msgstr ""
19065
 
19066
  #: includes/api/v1/class-wc-rest-orders-controller.php:1557
19067
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1625
19068
  msgid "List of refunds."
19069
  msgstr ""
19070
 
19071
  #: includes/api/v1/class-wc-rest-orders-controller.php:1565
19072
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1633
19073
  #: includes/cli/class-wc-cli-runner.php:113
19074
  msgid "Refund ID."
19075
  msgstr ""
19076
 
19077
  #: includes/api/v1/class-wc-rest-orders-controller.php:1571
19078
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1639
19079
  msgid "Refund reason."
19080
  msgstr ""
19081
 
19082
  #: includes/api/v1/class-wc-rest-orders-controller.php:1577
19083
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1645
19084
  msgid "Refund total."
19085
  msgstr ""
19086
 
19087
  #: includes/api/v1/class-wc-rest-orders-controller.php:1608
19088
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1682
19089
  msgid "Limit result set to orders assigned a specific customer."
19090
  msgstr ""
19091
 
19092
  #: includes/api/v1/class-wc-rest-orders-controller.php:1614
19093
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1688
19094
  msgid "Limit result set to orders assigned a specific product."
19095
  msgstr ""
19096
 
@@ -19188,7 +19148,7 @@ msgstr ""
19188
  #: includes/api/v1/class-wc-rest-products-controller.php:2188
19189
  #: includes/api/v1/class-wc-rest-products-controller.php:2520
19190
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:935
19191
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1917
19192
  msgid "Image position. 0 means that the image is featured."
19193
  msgstr ""
19194
 
@@ -19212,32 +19172,32 @@ msgid ""
19212
  msgstr ""
19213
 
19214
  #: includes/api/v1/class-wc-rest-products-controller.php:2583
19215
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2057
19216
  msgid "Limit result set to products with a specific slug."
19217
  msgstr ""
19218
 
19219
  #: includes/api/v1/class-wc-rest-products-controller.php:2589
19220
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2063
19221
  msgid "Limit result set to products assigned a specific status."
19222
  msgstr ""
19223
 
19224
  #: includes/api/v1/class-wc-rest-products-controller.php:2596
19225
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2070
19226
  msgid "Limit result set to products assigned a specific type."
19227
  msgstr ""
19228
 
19229
  #: includes/api/v1/class-wc-rest-products-controller.php:2603
19230
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2089
19231
  msgid "Limit result set to products assigned a specific category ID."
19232
  msgstr ""
19233
 
19234
  #: includes/api/v1/class-wc-rest-products-controller.php:2609
19235
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2095
19236
  msgid "Limit result set to products assigned a specific tag ID."
19237
  msgstr ""
19238
 
19239
  #: includes/api/v1/class-wc-rest-products-controller.php:2615
19240
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2101
19241
  msgid "Limit result set to products assigned a specific shipping class ID."
19242
  msgstr ""
19243
 
@@ -19246,7 +19206,7 @@ msgid "Limit result set to products with a specific attribute."
19246
  msgstr ""
19247
 
19248
  #: includes/api/v1/class-wc-rest-products-controller.php:2627
19249
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2113
19250
  msgid ""
19251
  "Limit result set to products with a specific attribute term ID (required an "
19252
  "assigned attribute)."
@@ -19445,7 +19405,7 @@ msgstr ""
19445
 
19446
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:63
19447
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:636
19448
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:119
19449
  msgid "Webhook topic."
19450
  msgstr ""
19451
 
@@ -19458,38 +19418,42 @@ msgstr ""
19458
  msgid "Webhook delivery URL must be a valid URL starting with http:// or https://."
19459
  msgstr ""
19460
 
19461
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:621
 
 
 
 
19462
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:104
19463
  msgid "A friendly name for the webhook."
19464
  msgstr ""
19465
 
19466
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:626
19467
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:109
19468
  msgid "Webhook status."
19469
  msgstr ""
19470
 
19471
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:641
19472
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:124
19473
  msgid "Webhook resource."
19474
  msgstr ""
19475
 
19476
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:647
19477
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:130
19478
  msgid "Webhook event."
19479
  msgstr ""
19480
 
19481
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:653
19482
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:136
19483
  msgid "WooCommerce action names associated with the webhook."
19484
  msgstr ""
19485
 
19486
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:662
19487
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:145
19488
  msgid "The URL where the webhook payload is delivered."
19489
  msgstr ""
19490
 
19491
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:669
19492
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:152
19493
  msgid ""
19494
  "Secret key used to generate a hash of the delivered webhook and provided in "
19495
  "the request headers. This will default to a MD5 hash from the current "
@@ -19497,12 +19461,12 @@ msgid ""
19497
  msgstr ""
19498
 
19499
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:674
19500
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:157
19501
  msgid "The date the webhook was created, in the site's timezone."
19502
  msgstr ""
19503
 
19504
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:680
19505
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:169
19506
  msgid "The date the webhook was last modified, in the site's timezone."
19507
  msgstr ""
19508
 
@@ -19574,23 +19538,23 @@ msgstr ""
19574
  msgid "When true, the payment gateway API is used to generate the refund."
19575
  msgstr ""
19576
 
19577
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:888
19578
  msgid "The date the order was created, in the site's timezone."
19579
  msgstr ""
19580
 
19581
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:900
19582
  msgid "The date the order was last modified, in the site's timezone."
19583
  msgstr ""
19584
 
19585
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1122
19586
  msgid "The date the order was paid, as GMT."
19587
  msgstr ""
19588
 
19589
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1134
19590
  msgid "The date the order was completed, as GMT."
19591
  msgstr ""
19592
 
19593
- #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1401
19594
  msgid "Shipping instance ID."
19595
  msgstr ""
19596
 
@@ -19599,7 +19563,7 @@ msgid "Parent product does not match current variation."
19599
  msgstr ""
19600
 
19601
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:723
19602
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:1561
19603
  msgid "End date of sale price, as GMT."
19604
  msgstr ""
19605
 
@@ -19607,37 +19571,37 @@ msgstr ""
19607
  msgid "Define if the variation is visible on the product's page."
19608
  msgstr ""
19609
 
19610
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2077
19611
  msgid "Limit result set to products with specific SKU(s). Use commas to separate."
19612
  msgstr ""
19613
 
19614
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2083
19615
  msgid "Limit result set to featured products."
19616
  msgstr ""
19617
 
19618
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2107
19619
  msgid ""
19620
  "Limit result set to products with a specific attribute. Use the taxonomy "
19621
  "name/attribute slug."
19622
  msgstr ""
19623
 
19624
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2121
19625
  msgid "Limit result set to products with a specific tax class."
19626
  msgstr ""
19627
 
19628
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2130
19629
  msgid "Limit result set to products in stock or out of stock."
19630
  msgstr ""
19631
 
19632
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2136
19633
  msgid "Limit result set to products on sale."
19634
  msgstr ""
19635
 
19636
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2142
19637
  msgid "Limit result set to products based on a minimum price."
19638
  msgstr ""
19639
 
19640
- #: includes/api/v2/class-wc-rest-products-v2-controller.php:2148
19641
  msgid "Limit result set to products based on a maximum price."
19642
  msgstr ""
19643
 
@@ -20276,11 +20240,11 @@ msgstr ""
20276
  msgid "The date the webhook delivery was logged, as GMT."
20277
  msgstr ""
20278
 
20279
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:163
20280
  msgid "The date the webhook was created, as GMT."
20281
  msgstr ""
20282
 
20283
- #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:175
20284
  msgid "The date the webhook was last modified, as GMT."
20285
  msgstr ""
20286
 
@@ -20432,6 +20396,11 @@ msgstr ""
20432
  msgid "You do not have permission to access this page"
20433
  msgstr ""
20434
 
 
 
 
 
 
20435
  #: includes/class-wc-auth.php:402
20436
  msgid "Access denied"
20437
  msgstr ""
@@ -20479,21 +20448,21 @@ msgstr ""
20479
  msgid "Fee has already been added."
20480
  msgstr ""
20481
 
20482
- #: includes/class-wc-cart-session.php:112
20483
  #. translators: %s: product name
20484
  msgid ""
20485
  "%s has been removed from your cart because it can no longer be purchased. "
20486
  "Please contact us if you need assistance."
20487
  msgstr ""
20488
 
20489
- #: includes/class-wc-cart-session.php:118
20490
  #. translators: %1$s: product name. %2$s product permalink
20491
  msgid ""
20492
  "%1$s has been removed from your cart because it has since been modified. "
20493
  "You can add it back to your cart <a href=\"%2$s\">here</a>."
20494
  msgstr ""
20495
 
20496
- #: includes/class-wc-cart-session.php:354
20497
  #. translators: %d item count
20498
  msgid ""
20499
  "%d item from your previous order is currently unavailable and could not be "
@@ -20504,7 +20473,7 @@ msgid_plural ""
20504
  msgstr[0] ""
20505
  msgstr[1] ""
20506
 
20507
- #: includes/class-wc-cart-session.php:367
20508
  msgid "The cart has been filled with the items from your previous order."
20509
  msgstr ""
20510
 
@@ -20532,7 +20501,7 @@ msgid ""
20532
  msgstr ""
20533
 
20534
  #: includes/class-wc-cart.php:1037 includes/class-wc-cart.php:1065
20535
- #: includes/class-wc-frontend-scripts.php:546
20536
  #: includes/wc-cart-functions.php:123 includes/wc-template-functions.php:1969
20537
  #. translators: %s: product name
20538
  msgid "View cart"
@@ -20722,92 +20691,92 @@ msgstr ""
20722
  msgid "(ex. tax)"
20723
  msgstr ""
20724
 
20725
- #: includes/class-wc-countries.php:620
20726
  msgid "Apartment, suite, unit etc. (optional)"
20727
  msgstr ""
20728
 
20729
- #: includes/class-wc-countries.php:622 includes/class-wc-countries.php:665
20730
  msgid "Apartment, suite, unit etc."
20731
  msgstr ""
20732
 
20733
- #: includes/class-wc-countries.php:641
20734
  #: includes/customizer/class-wc-shop-customizer.php:677
20735
  msgid "Company name"
20736
  msgstr ""
20737
 
20738
- #: includes/class-wc-countries.php:656
20739
  msgid "Street address"
20740
  msgstr ""
20741
 
20742
- #: includes/class-wc-countries.php:658
20743
  #. translators: use local order of street name and house number.
20744
  msgid "House number and street name"
20745
  msgstr ""
20746
 
20747
- #: includes/class-wc-countries.php:674
20748
  msgid "Town / City"
20749
  msgstr ""
20750
 
20751
- #: includes/class-wc-countries.php:761 includes/class-wc-countries.php:805
20752
- #: includes/class-wc-countries.php:835 includes/class-wc-countries.php:860
20753
- #: includes/class-wc-countries.php:941 includes/class-wc-countries.php:980
20754
- #: includes/class-wc-countries.php:1023 includes/class-wc-countries.php:1121
20755
- #: includes/class-wc-countries.php:1161 includes/class-wc-countries.php:1217
20756
  msgid "Province"
20757
  msgstr ""
20758
 
20759
- #: includes/class-wc-countries.php:774
20760
  msgid "Suburb"
20761
  msgstr ""
20762
 
20763
- #: includes/class-wc-countries.php:777 includes/class-wc-countries.php:1028
20764
- #: includes/class-wc-countries.php:1038 includes/class-wc-countries.php:1174
20765
  msgid "Postcode"
20766
  msgstr ""
20767
 
20768
- #: includes/class-wc-countries.php:796 includes/class-wc-countries.php:1187
20769
  msgid "District"
20770
  msgstr ""
20771
 
20772
- #: includes/class-wc-countries.php:843
20773
  msgid "Canton"
20774
  msgstr ""
20775
 
20776
- #: includes/class-wc-countries.php:855 includes/class-wc-countries.php:931
20777
- #: includes/class-wc-countries.php:1042
20778
  msgid "Region"
20779
  msgstr ""
20780
 
20781
- #: includes/class-wc-countries.php:928
20782
  msgid "Town / District"
20783
  msgstr ""
20784
 
20785
- #: includes/class-wc-countries.php:936 includes/class-wc-countries.php:950
20786
- #: includes/class-wc-countries.php:1081 includes/class-wc-countries.php:1177
20787
  msgid "County"
20788
  msgstr ""
20789
 
20790
- #: includes/class-wc-countries.php:947
20791
  msgid "Eircode"
20792
  msgstr ""
20793
 
20794
- #: includes/class-wc-countries.php:985
20795
  msgid "Prefecture"
20796
  msgstr ""
20797
 
20798
- #: includes/class-wc-countries.php:1055
20799
  msgid "State / Zone"
20800
  msgstr ""
20801
 
20802
- #: includes/class-wc-countries.php:1129
20803
  msgid "Municipality"
20804
  msgstr ""
20805
 
20806
- #: includes/class-wc-countries.php:1145
20807
  msgid "Municipality / District"
20808
  msgstr ""
20809
 
20810
- #: includes/class-wc-countries.php:1166
20811
  msgid "ZIP"
20812
  msgstr ""
20813
 
@@ -20945,7 +20914,7 @@ msgstr ""
20945
  #: includes/data-stores/abstract-wc-order-data-store-cpt.php:100
20946
  #: includes/shortcodes/class-wc-shortcode-checkout.php:210
20947
  #: includes/shortcodes/class-wc-shortcode-my-account.php:134
20948
- #: includes/wc-order-functions.php:625
20949
  msgid "Invalid order."
20950
  msgstr ""
20951
 
@@ -21161,76 +21130,76 @@ msgstr ""
21161
  msgid "Passwords do not match."
21162
  msgstr ""
21163
 
21164
- #: includes/class-wc-frontend-scripts.php:473
21165
  msgid "Please select a rating"
21166
  msgstr ""
21167
 
21168
- #: includes/class-wc-frontend-scripts.php:514
21169
  msgid "Error processing checkout. Please try again."
21170
  msgstr ""
21171
 
21172
- #: includes/class-wc-frontend-scripts.php:521
21173
  #: includes/wc-template-functions.php:2475
21174
  msgid "required"
21175
  msgstr ""
21176
 
21177
- #: includes/class-wc-frontend-scripts.php:522
21178
  #: includes/wc-template-functions.php:2477
21179
  msgid "optional"
21180
  msgstr ""
21181
 
21182
- #: includes/class-wc-frontend-scripts.php:558
21183
  msgid ""
21184
  "Sorry, no products matched your selection. Please choose a different "
21185
  "combination."
21186
  msgstr ""
21187
 
21188
- #: includes/class-wc-frontend-scripts.php:559
21189
  msgid "Please select some product options before adding this product to your cart."
21190
  msgstr ""
21191
 
21192
- #: includes/class-wc-frontend-scripts.php:560
21193
  #: templates/single-product/add-to-cart/variation.php:23
21194
  msgid "Sorry, this product is unavailable. Please choose a different combination."
21195
  msgstr ""
21196
 
21197
- #: includes/class-wc-frontend-scripts.php:582
21198
  msgid "Please enter a stronger password."
21199
  msgstr ""
21200
 
21201
- #: includes/class-wc-install.php:367
21202
  msgid "Monthly"
21203
  msgstr ""
21204
 
21205
- #: includes/class-wc-install.php:1179
21206
  msgid "View WooCommerce settings"
21207
  msgstr ""
21208
 
21209
- #: includes/class-wc-install.php:1196
21210
  msgid "View WooCommerce documentation"
21211
  msgstr ""
21212
 
21213
- #: includes/class-wc-install.php:1196
21214
  msgid "Docs"
21215
  msgstr ""
21216
 
21217
- #: includes/class-wc-install.php:1197
21218
  msgid "View WooCommerce API docs"
21219
  msgstr ""
21220
 
21221
- #: includes/class-wc-install.php:1197
21222
  msgid "API docs"
21223
  msgstr ""
21224
 
21225
- #: includes/class-wc-install.php:1198
21226
  msgid "Visit premium customer support"
21227
  msgstr ""
21228
 
21229
- #: includes/class-wc-install.php:1198
21230
  msgid "Premium support"
21231
  msgstr ""
21232
 
21233
- #: includes/class-wc-install.php:1326 includes/class-wc-install.php:1429
21234
  #. translators: 1: plugin name, 2: error message, 3: URL to install plugin
21235
  #. manually.
21236
  #. translators: 1: theme slug, 2: error message, 3: URL to install theme
@@ -21240,7 +21209,7 @@ msgid ""
21240
  "manually by clicking here.</a>"
21241
  msgstr ""
21242
 
21243
- #: includes/class-wc-install.php:1354
21244
  #. translators: 1: plugin name, 2: URL to WP plugin page.
21245
  msgid ""
21246
  "%1$s was installed but could not be activated. <a href=\"%2$s\">Please "
@@ -21285,7 +21254,7 @@ msgstr ""
21285
  msgid "Payment complete event failed."
21286
  msgstr ""
21287
 
21288
- #: includes/class-wc-order.php:173 includes/wc-cart-functions.php:319
21289
  #. translators: %s: taxes
21290
  #. translators: %s: tax information
21291
  msgid "(includes %s)"
@@ -22187,12 +22156,12 @@ msgstr ""
22187
  msgid "Account details"
22188
  msgstr ""
22189
 
22190
- #: includes/class-wc-regenerate-images-request.php:105
22191
  #. translators: %s: ID of the attachment.
22192
  msgid "Regenerating images for attachment ID: %s"
22193
  msgstr ""
22194
 
22195
- #: includes/class-wc-regenerate-images-request.php:246
22196
  msgid "Completed product image regeneration job."
22197
  msgstr ""
22198
 
@@ -22210,12 +22179,12 @@ msgstr[1] ""
22210
  msgid "Everywhere"
22211
  msgstr ""
22212
 
22213
- #: includes/class-wc-webhook.php:525
22214
  #. translators: error message
22215
  msgid "Error: Delivery URL cannot be reached: %s"
22216
  msgstr ""
22217
 
22218
- #: includes/class-wc-webhook.php:530
22219
  #. translators: error message
22220
  msgid "Error: Delivery URL returned response code: %s"
22221
  msgstr ""
@@ -22552,8 +22521,7 @@ msgstr ""
22552
  msgid "Invalid coupon."
22553
  msgstr ""
22554
 
22555
- #: includes/data-stores/class-wc-customer-data-store.php:147
22556
- #: includes/data-stores/class-wc-customer-data-store.php:152
22557
  msgid "Invalid customer."
22558
  msgstr ""
22559
 
@@ -22587,7 +22555,7 @@ msgstr ""
22587
  msgid "Invalid payment token."
22588
  msgstr ""
22589
 
22590
- #: includes/data-stores/class-wc-product-data-store-cpt.php:150
22591
  msgid "Invalid product."
22592
  msgstr ""
22593
 
@@ -22784,10 +22752,12 @@ msgid ""
22784
  msgstr ""
22785
 
22786
  #: includes/emails/class-wc-email-customer-on-hold-order.php:58
 
22787
  msgid "Your {site_title} order has been received!"
22788
  msgstr ""
22789
 
22790
  #: includes/emails/class-wc-email-customer-on-hold-order.php:68
 
22791
  msgid "Thank you for your order"
22792
  msgstr ""
22793
 
@@ -22801,14 +22771,6 @@ msgid ""
22801
  "after payment."
22802
  msgstr ""
22803
 
22804
- #: includes/emails/class-wc-email-customer-processing-order.php:60
22805
- msgid "Payment received for your order"
22806
- msgstr ""
22807
-
22808
- #: includes/emails/class-wc-email-customer-processing-order.php:70
22809
- msgid "Thank you for your payment"
22810
- msgstr ""
22811
-
22812
  #: includes/emails/class-wc-email-customer-refunded-order.php:46
22813
  msgid "Refunded order"
22814
  msgstr ""
@@ -23871,25 +23833,25 @@ msgstr ""
23871
  msgid "Unable to use image \"%s\"."
23872
  msgstr ""
23873
 
23874
- #: includes/import/class-wc-product-csv-importer.php:864
23875
  #. translators: %d: product ID
23876
  msgid "ID %d"
23877
  msgstr ""
23878
 
23879
- #: includes/import/class-wc-product-csv-importer.php:868
23880
  #. translators: %s: product SKU
23881
  msgid "SKU %s"
23882
  msgstr ""
23883
 
23884
- #: includes/import/class-wc-product-csv-importer.php:914
23885
  msgid "A product with this ID already exists."
23886
  msgstr ""
23887
 
23888
- #: includes/import/class-wc-product-csv-importer.php:922
23889
  msgid "A product with this SKU already exists."
23890
  msgstr ""
23891
 
23892
- #: includes/import/class-wc-product-csv-importer.php:930
23893
  msgid "No matching product exists to update."
23894
  msgstr ""
23895
 
@@ -24653,7 +24615,7 @@ msgid ""
24653
  "apologize for any inconvenience caused."
24654
  msgstr ""
24655
 
24656
- #: includes/shortcodes/class-wc-shortcode-checkout.php:277
24657
  msgid ""
24658
  "The order totals have been updated. Please confirm your order by pressing "
24659
  "the \"Place order\" button at the bottom of the page."
@@ -24673,20 +24635,20 @@ msgstr ""
24673
  msgid "My account"
24674
  msgstr ""
24675
 
24676
- #: includes/shortcodes/class-wc-shortcode-my-account.php:258
24677
  msgid "Enter a username or email address."
24678
  msgstr ""
24679
 
24680
- #: includes/shortcodes/class-wc-shortcode-my-account.php:283
24681
- #: includes/shortcodes/class-wc-shortcode-my-account.php:289
24682
  msgid "Invalid username or email."
24683
  msgstr ""
24684
 
24685
- #: includes/shortcodes/class-wc-shortcode-my-account.php:303
24686
  msgid "Password reset is not allowed for this user"
24687
  msgstr ""
24688
 
24689
- #: includes/shortcodes/class-wc-shortcode-my-account.php:338
24690
  msgid ""
24691
  "This key is invalid or has already been used. Please reset your password "
24692
  "again if needed."
@@ -24746,702 +24708,702 @@ msgstr ""
24746
  msgid "and"
24747
  msgstr ""
24748
 
24749
- #: includes/wc-cart-functions.php:261
24750
  #. translators: %s: coupon code
24751
  msgid "Coupon: %s"
24752
  msgstr ""
24753
 
24754
- #: includes/wc-cart-functions.php:286
24755
  msgid "Free shipping coupon"
24756
  msgstr ""
24757
 
24758
- #: includes/wc-cart-functions.php:290
24759
  msgid "[Remove]"
24760
  msgstr ""
24761
 
24762
- #: includes/wc-cart-functions.php:317
24763
  #. translators: %s: country name
24764
  msgid "estimated for %s"
24765
  msgstr ""
24766
 
24767
- #: includes/wc-core-functions.php:199
24768
  #. translators: %s template
24769
  msgid "%s does not exist."
24770
  msgstr ""
24771
 
24772
- #: includes/wc-core-functions.php:293
24773
  msgid "United Arab Emirates dirham"
24774
  msgstr ""
24775
 
24776
- #: includes/wc-core-functions.php:294
24777
  msgid "Afghan afghani"
24778
  msgstr ""
24779
 
24780
- #: includes/wc-core-functions.php:295
24781
  msgid "Albanian lek"
24782
  msgstr ""
24783
 
24784
- #: includes/wc-core-functions.php:296
24785
  msgid "Armenian dram"
24786
  msgstr ""
24787
 
24788
- #: includes/wc-core-functions.php:297
24789
  msgid "Netherlands Antillean guilder"
24790
  msgstr ""
24791
 
24792
- #: includes/wc-core-functions.php:298
24793
  msgid "Angolan kwanza"
24794
  msgstr ""
24795
 
24796
- #: includes/wc-core-functions.php:299
24797
  msgid "Argentine peso"
24798
  msgstr ""
24799
 
24800
- #: includes/wc-core-functions.php:300
24801
  msgid "Australian dollar"
24802
  msgstr ""
24803
 
24804
- #: includes/wc-core-functions.php:301
24805
  msgid "Aruban florin"
24806
  msgstr ""
24807
 
24808
- #: includes/wc-core-functions.php:302
24809
  msgid "Azerbaijani manat"
24810
  msgstr ""
24811
 
24812
- #: includes/wc-core-functions.php:303
24813
  msgid "Bosnia and Herzegovina convertible mark"
24814
  msgstr ""
24815
 
24816
- #: includes/wc-core-functions.php:304
24817
  msgid "Barbadian dollar"
24818
  msgstr ""
24819
 
24820
- #: includes/wc-core-functions.php:305
24821
  msgid "Bangladeshi taka"
24822
  msgstr ""
24823
 
24824
- #: includes/wc-core-functions.php:306
24825
  msgid "Bulgarian lev"
24826
  msgstr ""
24827
 
24828
- #: includes/wc-core-functions.php:307
24829
  msgid "Bahraini dinar"
24830
  msgstr ""
24831
 
24832
- #: includes/wc-core-functions.php:308
24833
  msgid "Burundian franc"
24834
  msgstr ""
24835
 
24836
- #: includes/wc-core-functions.php:309
24837
  msgid "Bermudian dollar"
24838
  msgstr ""
24839
 
24840
- #: includes/wc-core-functions.php:310
24841
  msgid "Brunei dollar"
24842
  msgstr ""
24843
 
24844
- #: includes/wc-core-functions.php:311
24845
  msgid "Bolivian boliviano"
24846
  msgstr ""
24847
 
24848
- #: includes/wc-core-functions.php:312
24849
  msgid "Brazilian real"
24850
  msgstr ""
24851
 
24852
- #: includes/wc-core-functions.php:313
24853
  msgid "Bahamian dollar"
24854
  msgstr ""
24855
 
24856
- #: includes/wc-core-functions.php:314
24857
  msgid "Bitcoin"
24858
  msgstr ""
24859
 
24860
- #: includes/wc-core-functions.php:315
24861
  msgid "Bhutanese ngultrum"
24862
  msgstr ""
24863
 
24864
- #: includes/wc-core-functions.php:316
24865
  msgid "Botswana pula"
24866
  msgstr ""
24867
 
24868
- #: includes/wc-core-functions.php:317
24869
  msgid "Belarusian ruble (old)"
24870
  msgstr ""
24871
 
24872
- #: includes/wc-core-functions.php:318
24873
  msgid "Belarusian ruble"
24874
  msgstr ""
24875
 
24876
- #: includes/wc-core-functions.php:319
24877
  msgid "Belize dollar"
24878
  msgstr ""
24879
 
24880
- #: includes/wc-core-functions.php:320
24881
  msgid "Canadian dollar"
24882
  msgstr ""
24883
 
24884
- #: includes/wc-core-functions.php:321
24885
  msgid "Congolese franc"
24886
  msgstr ""
24887
 
24888
- #: includes/wc-core-functions.php:322
24889
  msgid "Swiss franc"
24890
  msgstr ""
24891
 
24892
- #: includes/wc-core-functions.php:323
24893
  msgid "Chilean peso"
24894
  msgstr ""
24895
 
24896
- #: includes/wc-core-functions.php:324
24897
  msgid "Chinese yuan"
24898
  msgstr ""
24899
 
24900
- #: includes/wc-core-functions.php:325
24901
  msgid "Colombian peso"
24902
  msgstr ""
24903
 
24904
- #: includes/wc-core-functions.php:326
24905
  msgid "Costa Rican col&oacute;n"
24906
  msgstr ""
24907
 
24908
- #: includes/wc-core-functions.php:327
24909
  msgid "Cuban convertible peso"
24910
  msgstr ""
24911
 
24912
- #: includes/wc-core-functions.php:328
24913
  msgid "Cuban peso"
24914
  msgstr ""
24915
 
24916
- #: includes/wc-core-functions.php:329
24917
  msgid "Cape Verdean escudo"
24918
  msgstr ""
24919
 
24920
- #: includes/wc-core-functions.php:330
24921
  msgid "Czech koruna"
24922
  msgstr ""
24923
 
24924
- #: includes/wc-core-functions.php:331
24925
  msgid "Djiboutian franc"
24926
  msgstr ""
24927
 
24928
- #: includes/wc-core-functions.php:332
24929
  msgid "Danish krone"
24930
  msgstr ""
24931
 
24932
- #: includes/wc-core-functions.php:333
24933
  msgid "Dominican peso"
24934
  msgstr ""
24935
 
24936
- #: includes/wc-core-functions.php:334
24937
  msgid "Algerian dinar"
24938
  msgstr ""
24939
 
24940
- #: includes/wc-core-functions.php:335
24941
  msgid "Egyptian pound"
24942
  msgstr ""
24943
 
24944
- #: includes/wc-core-functions.php:336
24945
  msgid "Eritrean nakfa"
24946
  msgstr ""
24947
 
24948
- #: includes/wc-core-functions.php:337
24949
  msgid "Ethiopian birr"
24950
  msgstr ""
24951
 
24952
- #: includes/wc-core-functions.php:338
24953
  msgid "Euro"
24954
  msgstr ""
24955
 
24956
- #: includes/wc-core-functions.php:339
24957
  msgid "Fijian dollar"
24958
  msgstr ""
24959
 
24960
- #: includes/wc-core-functions.php:340
24961
  msgid "Falkland Islands pound"
24962
  msgstr ""
24963
 
24964
- #: includes/wc-core-functions.php:341
24965
  msgid "Pound sterling"
24966
  msgstr ""
24967
 
24968
- #: includes/wc-core-functions.php:342
24969
  msgid "Georgian lari"
24970
  msgstr ""
24971
 
24972
- #: includes/wc-core-functions.php:343
24973
  msgid "Guernsey pound"
24974
  msgstr ""
24975
 
24976
- #: includes/wc-core-functions.php:344
24977
  msgid "Ghana cedi"
24978
  msgstr ""
24979
 
24980
- #: includes/wc-core-functions.php:345
24981
  msgid "Gibraltar pound"
24982
  msgstr ""
24983
 
24984
- #: includes/wc-core-functions.php:346
24985
  msgid "Gambian dalasi"
24986
  msgstr ""
24987
 
24988
- #: includes/wc-core-functions.php:347
24989
  msgid "Guinean franc"
24990
  msgstr ""
24991
 
24992
- #: includes/wc-core-functions.php:348
24993
  msgid "Guatemalan quetzal"
24994
  msgstr ""
24995
 
24996
- #: includes/wc-core-functions.php:349
24997
  msgid "Guyanese dollar"
24998
  msgstr ""
24999
 
25000
- #: includes/wc-core-functions.php:350
25001
  msgid "Hong Kong dollar"
25002
  msgstr ""
25003
 
25004
- #: includes/wc-core-functions.php:351
25005
  msgid "Honduran lempira"
25006
  msgstr ""
25007
 
25008
- #: includes/wc-core-functions.php:352
25009
  msgid "Croatian kuna"
25010
  msgstr ""
25011
 
25012
- #: includes/wc-core-functions.php:353
25013
  msgid "Haitian gourde"
25014
  msgstr ""
25015
 
25016
- #: includes/wc-core-functions.php:354
25017
  msgid "Hungarian forint"
25018
  msgstr ""
25019
 
25020
- #: includes/wc-core-functions.php:355
25021
  msgid "Indonesian rupiah"
25022
  msgstr ""
25023
 
25024
- #: includes/wc-core-functions.php:356
25025
  msgid "Israeli new shekel"
25026
  msgstr ""
25027
 
25028
- #: includes/wc-core-functions.php:357
25029
  msgid "Manx pound"
25030
  msgstr ""
25031
 
25032
- #: includes/wc-core-functions.php:358
25033
  msgid "Indian rupee"
25034
  msgstr ""
25035
 
25036
- #: includes/wc-core-functions.php:359
25037
  msgid "Iraqi dinar"
25038
  msgstr ""
25039
 
25040
- #: includes/wc-core-functions.php:360
25041
  msgid "Iranian rial"
25042
  msgstr ""
25043
 
25044
- #: includes/wc-core-functions.php:361
25045
  msgid "Iranian toman"
25046
  msgstr ""
25047
 
25048
- #: includes/wc-core-functions.php:362
25049
  msgid "Icelandic kr&oacute;na"
25050
  msgstr ""
25051
 
25052
- #: includes/wc-core-functions.php:363
25053
  msgid "Jersey pound"
25054
  msgstr ""
25055
 
25056
- #: includes/wc-core-functions.php:364
25057
  msgid "Jamaican dollar"
25058
  msgstr ""
25059
 
25060
- #: includes/wc-core-functions.php:365
25061
  msgid "Jordanian dinar"
25062
  msgstr ""
25063
 
25064
- #: includes/wc-core-functions.php:366
25065
  msgid "Japanese yen"
25066
  msgstr ""
25067
 
25068
- #: includes/wc-core-functions.php:367
25069
  msgid "Kenyan shilling"
25070
  msgstr ""
25071
 
25072
- #: includes/wc-core-functions.php:368
25073
  msgid "Kyrgyzstani som"
25074
  msgstr ""
25075
 
25076
- #: includes/wc-core-functions.php:369
25077
  msgid "Cambodian riel"
25078
  msgstr ""
25079
 
25080
- #: includes/wc-core-functions.php:370
25081
  msgid "Comorian franc"
25082
  msgstr ""
25083
 
25084
- #: includes/wc-core-functions.php:371
25085
  msgid "North Korean won"
25086
  msgstr ""
25087
 
25088
- #: includes/wc-core-functions.php:372
25089
  msgid "South Korean won"
25090
  msgstr ""
25091
 
25092
- #: includes/wc-core-functions.php:373
25093
  msgid "Kuwaiti dinar"
25094
  msgstr ""
25095
 
25096
- #: includes/wc-core-functions.php:374
25097
  msgid "Cayman Islands dollar"
25098
  msgstr ""
25099
 
25100
- #: includes/wc-core-functions.php:375
25101
  msgid "Kazakhstani tenge"
25102
  msgstr ""
25103
 
25104
- #: includes/wc-core-functions.php:376
25105
  msgid "Lao kip"
25106
  msgstr ""
25107
 
25108
- #: includes/wc-core-functions.php:377
25109
  msgid "Lebanese pound"
25110
  msgstr ""
25111
 
25112
- #: includes/wc-core-functions.php:378
25113
  msgid "Sri Lankan rupee"
25114
  msgstr ""
25115
 
25116
- #: includes/wc-core-functions.php:379
25117
  msgid "Liberian dollar"
25118
  msgstr ""
25119
 
25120
- #: includes/wc-core-functions.php:380
25121
  msgid "Lesotho loti"
25122
  msgstr ""
25123
 
25124
- #: includes/wc-core-functions.php:381
25125
  msgid "Libyan dinar"
25126
  msgstr ""
25127
 
25128
- #: includes/wc-core-functions.php:382
25129
  msgid "Moroccan dirham"
25130
  msgstr ""
25131
 
25132
- #: includes/wc-core-functions.php:383
25133
  msgid "Moldovan leu"
25134
  msgstr ""
25135
 
25136
- #: includes/wc-core-functions.php:384
25137
  msgid "Malagasy ariary"
25138
  msgstr ""
25139
 
25140
- #: includes/wc-core-functions.php:385
25141
  msgid "Macedonian denar"
25142
  msgstr ""
25143
 
25144
- #: includes/wc-core-functions.php:386
25145
  msgid "Burmese kyat"
25146
  msgstr ""
25147
 
25148
- #: includes/wc-core-functions.php:387
25149
  msgid "Mongolian t&ouml;gr&ouml;g"
25150
  msgstr ""
25151
 
25152
- #: includes/wc-core-functions.php:388
25153
  msgid "Macanese pataca"
25154
  msgstr ""
25155
 
25156
- #: includes/wc-core-functions.php:389
25157
  msgid "Mauritanian ouguiya"
25158
  msgstr ""
25159
 
25160
- #: includes/wc-core-functions.php:390
25161
  msgid "Mauritian rupee"
25162
  msgstr ""
25163
 
25164
- #: includes/wc-core-functions.php:391
25165
  msgid "Maldivian rufiyaa"
25166
  msgstr ""
25167
 
25168
- #: includes/wc-core-functions.php:392
25169
  msgid "Malawian kwacha"
25170
  msgstr ""
25171
 
25172
- #: includes/wc-core-functions.php:393
25173
  msgid "Mexican peso"
25174
  msgstr ""
25175
 
25176
- #: includes/wc-core-functions.php:394
25177
  msgid "Malaysian ringgit"
25178
  msgstr ""
25179
 
25180
- #: includes/wc-core-functions.php:395
25181
  msgid "Mozambican metical"
25182
  msgstr ""
25183
 
25184
- #: includes/wc-core-functions.php:396
25185
  msgid "Namibian dollar"
25186
  msgstr ""
25187
 
25188
- #: includes/wc-core-functions.php:397
25189
  msgid "Nigerian naira"
25190
  msgstr ""
25191
 
25192
- #: includes/wc-core-functions.php:398
25193
  msgid "Nicaraguan c&oacute;rdoba"
25194
  msgstr ""
25195
 
25196
- #: includes/wc-core-functions.php:399
25197
  msgid "Norwegian krone"
25198
  msgstr ""
25199
 
25200
- #: includes/wc-core-functions.php:400
25201
  msgid "Nepalese rupee"
25202
  msgstr ""
25203
 
25204
- #: includes/wc-core-functions.php:401
25205
  msgid "New Zealand dollar"
25206
  msgstr ""
25207
 
25208
- #: includes/wc-core-functions.php:402
25209
  msgid "Omani rial"
25210
  msgstr ""
25211
 
25212
- #: includes/wc-core-functions.php:403
25213
  msgid "Panamanian balboa"
25214
  msgstr ""
25215
 
25216
- #: includes/wc-core-functions.php:404
25217
  msgid "Peruvian nuevo sol"
25218
  msgstr ""
25219
 
25220
- #: includes/wc-core-functions.php:405
25221
  msgid "Papua New Guinean kina"
25222
  msgstr ""
25223
 
25224
- #: includes/wc-core-functions.php:406
25225
  msgid "Philippine peso"
25226
  msgstr ""
25227
 
25228
- #: includes/wc-core-functions.php:407
25229
  msgid "Pakistani rupee"
25230
  msgstr ""
25231
 
25232
- #: includes/wc-core-functions.php:408
25233
  msgid "Polish z&#x142;oty"
25234
  msgstr ""
25235
 
25236
- #: includes/wc-core-functions.php:409
25237
  msgid "Transnistrian ruble"
25238
  msgstr ""
25239
 
25240
- #: includes/wc-core-functions.php:410
25241
  msgid "Paraguayan guaran&iacute;"
25242
  msgstr ""
25243
 
25244
- #: includes/wc-core-functions.php:411
25245
  msgid "Qatari riyal"
25246
  msgstr ""
25247
 
25248
- #: includes/wc-core-functions.php:412
25249
  msgid "Romanian leu"
25250
  msgstr ""
25251
 
25252
- #: includes/wc-core-functions.php:413
25253
  msgid "Serbian dinar"
25254
  msgstr ""
25255
 
25256
- #: includes/wc-core-functions.php:414
25257
  msgid "Russian ruble"
25258
  msgstr ""
25259
 
25260
- #: includes/wc-core-functions.php:415
25261
  msgid "Rwandan franc"
25262
  msgstr ""
25263
 
25264
- #: includes/wc-core-functions.php:416
25265
  msgid "Saudi riyal"
25266
  msgstr ""
25267
 
25268
- #: includes/wc-core-functions.php:417
25269
  msgid "Solomon Islands dollar"
25270
  msgstr ""
25271
 
25272
- #: includes/wc-core-functions.php:418
25273
  msgid "Seychellois rupee"
25274
  msgstr ""
25275
 
25276
- #: includes/wc-core-functions.php:419
25277
  msgid "Sudanese pound"
25278
  msgstr ""
25279
 
25280
- #: includes/wc-core-functions.php:420
25281
  msgid "Swedish krona"
25282
  msgstr ""
25283
 
25284
- #: includes/wc-core-functions.php:421
25285
  msgid "Singapore dollar"
25286
  msgstr ""
25287
 
25288
- #: includes/wc-core-functions.php:422
25289
  msgid "Saint Helena pound"
25290
  msgstr ""
25291
 
25292
- #: includes/wc-core-functions.php:423
25293
  msgid "Sierra Leonean leone"
25294
  msgstr ""
25295
 
25296
- #: includes/wc-core-functions.php:424
25297
  msgid "Somali shilling"
25298
  msgstr ""
25299
 
25300
- #: includes/wc-core-functions.php:425
25301
  msgid "Surinamese dollar"
25302
  msgstr ""
25303
 
25304
- #: includes/wc-core-functions.php:426
25305
  msgid "South Sudanese pound"
25306
  msgstr ""
25307
 
25308
- #: includes/wc-core-functions.php:427
25309
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
25310
  msgstr ""
25311
 
25312
- #: includes/wc-core-functions.php:428
25313
  msgid "Syrian pound"
25314
  msgstr ""
25315
 
25316
- #: includes/wc-core-functions.php:429
25317
  msgid "Swazi lilangeni"
25318
  msgstr ""
25319
 
25320
- #: includes/wc-core-functions.php:430
25321
  msgid "Thai baht"
25322
  msgstr ""
25323
 
25324
- #: includes/wc-core-functions.php:431
25325
  msgid "Tajikistani somoni"
25326
  msgstr ""
25327
 
25328
- #: includes/wc-core-functions.php:432
25329
  msgid "Turkmenistan manat"
25330
  msgstr ""
25331
 
25332
- #: includes/wc-core-functions.php:433
25333
  msgid "Tunisian dinar"
25334
  msgstr ""
25335
 
25336
- #: includes/wc-core-functions.php:434
25337
  msgid "Tongan pa&#x2bb;anga"
25338
  msgstr ""
25339
 
25340
- #: includes/wc-core-functions.php:435
25341
  msgid "Turkish lira"
25342
  msgstr ""
25343
 
25344
- #: includes/wc-core-functions.php:436
25345
  msgid "Trinidad and Tobago dollar"
25346
  msgstr ""
25347
 
25348
- #: includes/wc-core-functions.php:437
25349
  msgid "New Taiwan dollar"
25350
  msgstr ""
25351
 
25352
- #: includes/wc-core-functions.php:438
25353
  msgid "Tanzanian shilling"
25354
  msgstr ""
25355
 
25356
- #: includes/wc-core-functions.php:439
25357
  msgid "Ukrainian hryvnia"
25358
  msgstr ""
25359
 
25360
- #: includes/wc-core-functions.php:440
25361
  msgid "Ugandan shilling"
25362
  msgstr ""
25363
 
25364
- #: includes/wc-core-functions.php:441
25365
  msgid "United States (US) dollar"
25366
  msgstr ""
25367
 
25368
- #: includes/wc-core-functions.php:442
25369
  msgid "Uruguayan peso"
25370
  msgstr ""
25371
 
25372
- #: includes/wc-core-functions.php:443
25373
  msgid "Uzbekistani som"
25374
  msgstr ""
25375
 
25376
- #: includes/wc-core-functions.php:444
25377
  msgid "Venezuelan bol&iacute;var"
25378
  msgstr ""
25379
 
25380
- #: includes/wc-core-functions.php:445
25381
  msgid "Vietnamese &#x111;&#x1ed3;ng"
25382
  msgstr ""
25383
 
25384
- #: includes/wc-core-functions.php:446
25385
  msgid "Vanuatu vatu"
25386
  msgstr ""
25387
 
25388
- #: includes/wc-core-functions.php:447
25389
  msgid "Samoan t&#x101;l&#x101;"
25390
  msgstr ""
25391
 
25392
- #: includes/wc-core-functions.php:448
25393
  msgid "Central African CFA franc"
25394
  msgstr ""
25395
 
25396
- #: includes/wc-core-functions.php:449
25397
  msgid "East Caribbean dollar"
25398
  msgstr ""
25399
 
25400
- #: includes/wc-core-functions.php:450
25401
  msgid "West African CFA franc"
25402
  msgstr ""
25403
 
25404
- #: includes/wc-core-functions.php:451
25405
  msgid "CFP franc"
25406
  msgstr ""
25407
 
25408
- #: includes/wc-core-functions.php:452
25409
  msgid "Yemeni rial"
25410
  msgstr ""
25411
 
25412
- #: includes/wc-core-functions.php:453
25413
  msgid "South African rand"
25414
  msgstr ""
25415
 
25416
- #: includes/wc-core-functions.php:454
25417
  msgid "Zambian kwacha"
25418
  msgstr ""
25419
 
25420
- #: includes/wc-core-functions.php:1319
25421
  msgid "MasterCard"
25422
  msgstr ""
25423
 
25424
- #: includes/wc-core-functions.php:1320
25425
  msgid "Visa"
25426
  msgstr ""
25427
 
25428
- #: includes/wc-core-functions.php:1321
25429
  msgid "Discover"
25430
  msgstr ""
25431
 
25432
- #: includes/wc-core-functions.php:1322
25433
  msgid "American Express"
25434
  msgstr ""
25435
 
25436
- #: includes/wc-core-functions.php:1323
25437
  msgid "Diners"
25438
  msgstr ""
25439
 
25440
- #: includes/wc-core-functions.php:1324
25441
  msgid "JCB"
25442
  msgstr ""
25443
 
25444
- #: includes/wc-core-functions.php:1680
25445
  #. translators: 1: class name 2: woocommerce_logging_class 3:
25446
  #. WC_Logger_Interface
25447
  msgid "The class %1$s provided by %2$s filter must implement %3$s."
@@ -25480,28 +25442,28 @@ msgstr ""
25480
  msgid "This function should not be called before woocommerce_init."
25481
  msgstr ""
25482
 
25483
- #: includes/wc-order-functions.php:497
25484
  msgid "Invalid refund amount."
25485
  msgstr ""
25486
 
25487
- #: includes/wc-order-functions.php:634
25488
  msgid "The payment gateway for this order does not exist."
25489
  msgstr ""
25490
 
25491
- #: includes/wc-order-functions.php:638
25492
  msgid "The payment gateway for this order does not support automatic refunds."
25493
  msgstr ""
25494
 
25495
- #: includes/wc-order-functions.php:679
25496
  #. translators: 1: product ID 2: old stock level 3: new stock level
25497
  msgid "Item #%1$s stock increased from %2$s to %3$s."
25498
  msgstr ""
25499
 
25500
- #: includes/wc-order-functions.php:740 includes/wc-update-functions.php:915
25501
  msgid "Order fully refunded"
25502
  msgstr ""
25503
 
25504
- #: includes/wc-order-functions.php:870
25505
  msgid "Unpaid order cancelled - time limit reached."
25506
  msgstr ""
25507
 
@@ -25510,52 +25472,72 @@ msgstr ""
25510
  msgid "%1$s should not be called before the %2$s action."
25511
  msgstr ""
25512
 
25513
- #: includes/wc-product-functions.php:534
25514
  msgid "Simple product"
25515
  msgstr ""
25516
 
25517
- #: includes/wc-product-functions.php:535
25518
  msgid "Grouped product"
25519
  msgstr ""
25520
 
25521
- #: includes/wc-product-functions.php:536
25522
  msgid "External/Affiliate product"
25523
  msgstr ""
25524
 
25525
- #: includes/wc-product-functions.php:537
25526
  msgid "Variable product"
25527
  msgstr ""
25528
 
25529
- #: includes/wc-product-functions.php:770
25530
  msgid "Shop and search results"
25531
  msgstr ""
25532
 
25533
- #: includes/wc-product-functions.php:771
25534
  msgid "Shop only"
25535
  msgstr ""
25536
 
25537
- #: includes/wc-product-functions.php:772
25538
  msgid "Search results only"
25539
  msgstr ""
25540
 
25541
- #: includes/wc-product-functions.php:860
25542
  msgid "Do not allow"
25543
  msgstr ""
25544
 
25545
- #: includes/wc-product-functions.php:861
25546
  msgid "Allow, but notify customer"
25547
  msgstr ""
25548
 
25549
- #: includes/wc-product-functions.php:862
25550
  msgid "Allow"
25551
  msgstr ""
25552
 
25553
- #: includes/wc-rest-functions.php:206
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25554
  #. translators: 1: param 2: type
25555
  msgid "%1$s is not of type %2$s"
25556
  msgstr ""
25557
 
25558
- #: includes/wc-rest-functions.php:213
25559
  msgid "The date you provided is invalid."
25560
  msgstr ""
25561
 
@@ -25646,11 +25628,6 @@ msgstr ""
25646
  msgid "Update country"
25647
  msgstr ""
25648
 
25649
- #: includes/wc-template-functions.php:2564
25650
- #: templates/cart/shipping-calculator.php:56
25651
- msgid "Select a state&hellip;"
25652
- msgstr ""
25653
-
25654
  #: includes/wc-template-functions.php:2612
25655
  #: includes/wc-template-functions.php:2774
25656
  #: includes/wc-template-functions.php:2790
@@ -25695,7 +25672,7 @@ msgid ""
25695
  "have problems."
25696
  msgstr ""
25697
 
25698
- #: includes/wc-webhook-functions.php:101
25699
  msgid "Paused"
25700
  msgstr ""
25701
 
@@ -26144,15 +26121,16 @@ msgstr ""
26144
  msgid "Please fill in your details above to see available payment methods."
26145
  msgstr ""
26146
 
26147
- #: templates/checkout/payment.php:40
 
26148
  msgid ""
26149
  "Since your browser does not support JavaScript, or it is disabled, please "
26150
- "ensure you click the <em>Update Totals</em> button before placing your "
26151
  "order. You may be charged more than the amount stated above if you fail to "
26152
  "do so."
26153
  msgstr ""
26154
 
26155
- #: templates/checkout/payment.php:41
26156
  msgid "Update totals"
26157
  msgstr ""
26158
 
@@ -26315,8 +26293,8 @@ msgstr ""
26315
  #: templates/emails/plain/customer-processing-order.php:27
26316
  #. translators: %s: Order number
26317
  msgid ""
26318
- "Just to let you know &mdash; your payment has been confirmed, and order #%s "
26319
- "is now being processed:"
26320
  msgstr ""
26321
 
26322
  #: templates/emails/customer-processing-order.php:55
@@ -26369,7 +26347,7 @@ msgstr ""
26369
  msgid "Click here to reset your password"
26370
  msgstr ""
26371
 
26372
- #: templates/emails/email-addresses.php:28
26373
  #: templates/emails/plain/email-addresses.php:22
26374
  #: templates/myaccount/form-edit-address.php:20
26375
  #: templates/myaccount/my-address.php:27 templates/myaccount/my-address.php:32
@@ -26377,7 +26355,7 @@ msgstr ""
26377
  msgid "Billing address"
26378
  msgstr ""
26379
 
26380
- #: templates/emails/email-addresses.php:42
26381
  #: templates/emails/plain/email-addresses.php:37
26382
  #: templates/myaccount/form-edit-address.php:20
26383
  #: templates/myaccount/my-address.php:28
@@ -26814,7 +26792,7 @@ msgstr ""
26814
 
26815
  #: includes/admin/class-wc-admin-assets.php:115
26816
  #: includes/admin/class-wc-admin-setup-wizard.php:164
26817
- #: includes/class-wc-frontend-scripts.php:567
26818
  #: includes/widgets/class-wc-widget-layered-nav.php:302
26819
  #: includes/widgets/class-wc-widget-product-categories.php:266
26820
  msgctxt "enhanced select"
@@ -26823,63 +26801,63 @@ msgstr ""
26823
 
26824
  #: includes/admin/class-wc-admin-assets.php:116
26825
  #: includes/admin/class-wc-admin-setup-wizard.php:165
26826
- #: includes/class-wc-frontend-scripts.php:568
26827
  msgctxt "enhanced select"
26828
  msgid "Loading failed"
26829
  msgstr ""
26830
 
26831
  #: includes/admin/class-wc-admin-assets.php:117
26832
  #: includes/admin/class-wc-admin-setup-wizard.php:166
26833
- #: includes/class-wc-frontend-scripts.php:569
26834
  msgctxt "enhanced select"
26835
  msgid "Please enter 1 or more characters"
26836
  msgstr ""
26837
 
26838
  #: includes/admin/class-wc-admin-assets.php:118
26839
  #: includes/admin/class-wc-admin-setup-wizard.php:167
26840
- #: includes/class-wc-frontend-scripts.php:570
26841
  msgctxt "enhanced select"
26842
  msgid "Please enter %qty% or more characters"
26843
  msgstr ""
26844
 
26845
  #: includes/admin/class-wc-admin-assets.php:119
26846
  #: includes/admin/class-wc-admin-setup-wizard.php:168
26847
- #: includes/class-wc-frontend-scripts.php:571
26848
  msgctxt "enhanced select"
26849
  msgid "Please delete 1 character"
26850
  msgstr ""
26851
 
26852
  #: includes/admin/class-wc-admin-assets.php:120
26853
  #: includes/admin/class-wc-admin-setup-wizard.php:169
26854
- #: includes/class-wc-frontend-scripts.php:572
26855
  msgctxt "enhanced select"
26856
  msgid "Please delete %qty% characters"
26857
  msgstr ""
26858
 
26859
  #: includes/admin/class-wc-admin-assets.php:121
26860
  #: includes/admin/class-wc-admin-setup-wizard.php:170
26861
- #: includes/class-wc-frontend-scripts.php:573
26862
  msgctxt "enhanced select"
26863
  msgid "You can only select 1 item"
26864
  msgstr ""
26865
 
26866
  #: includes/admin/class-wc-admin-assets.php:122
26867
  #: includes/admin/class-wc-admin-setup-wizard.php:171
26868
- #: includes/class-wc-frontend-scripts.php:574
26869
  msgctxt "enhanced select"
26870
  msgid "You can only select %qty% items"
26871
  msgstr ""
26872
 
26873
  #: includes/admin/class-wc-admin-assets.php:123
26874
  #: includes/admin/class-wc-admin-setup-wizard.php:172
26875
- #: includes/class-wc-frontend-scripts.php:575
26876
  msgctxt "enhanced select"
26877
  msgid "Loading more results&hellip;"
26878
  msgstr ""
26879
 
26880
  #: includes/admin/class-wc-admin-assets.php:124
26881
  #: includes/admin/class-wc-admin-setup-wizard.php:173
26882
- #: includes/class-wc-frontend-scripts.php:576
26883
  msgctxt "enhanced select"
26884
  msgid "Searching&hellip;"
26885
  msgstr ""
@@ -26921,25 +26899,25 @@ msgid "Scheduled Actions"
26921
  msgstr ""
26922
 
26923
  #: includes/admin/class-wc-admin-permalink-settings.php:76
26924
- #: includes/wc-core-functions.php:1841 includes/wc-update-functions.php:57
26925
  msgctxt "slug"
26926
  msgid "product-category"
26927
  msgstr ""
26928
 
26929
  #: includes/admin/class-wc-admin-permalink-settings.php:85
26930
- #: includes/wc-core-functions.php:1842 includes/wc-update-functions.php:58
26931
  msgctxt "slug"
26932
  msgid "product-tag"
26933
  msgstr ""
26934
 
26935
  #: includes/admin/class-wc-admin-permalink-settings.php:195
26936
  #: includes/admin/class-wc-admin-permalink-settings.php:198
26937
- #: includes/wc-core-functions.php:1840 includes/wc-update-functions.php:67
26938
  msgctxt "slug"
26939
  msgid "product"
26940
  msgstr ""
26941
 
26942
- #: includes/wc-product-functions.php:241
26943
  msgctxt "slug"
26944
  msgid "uncategorized"
26945
  msgstr ""
@@ -26968,7 +26946,7 @@ msgid "Awaiting check payment"
26968
  msgstr ""
26969
 
26970
  #: includes/admin/class-wc-admin-taxonomies.php:322
26971
- #: includes/class-wc-install.php:510 includes/class-wc-install.php:516
26972
  msgctxt "Default category slug"
26973
  msgid "Uncategorized"
26974
  msgstr ""
@@ -26985,7 +26963,7 @@ msgstr[1] ""
26985
  #: includes/admin/settings/views/html-webhooks-edit.php:25
26986
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:199
26987
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:199
26988
- #: includes/api/v1/class-wc-rest-webhooks-controller.php:500
26989
  msgctxt "Webhook created on date parsed by strftime"
26990
  msgid "%b %d, %Y @ %I:%M %p"
26991
  msgstr ""
@@ -26996,7 +26974,7 @@ msgid "Stock"
26996
  msgstr ""
26997
 
26998
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:168
26999
- #: includes/api/v2/class-wc-rest-network-orders-v2-controller.php:134
27000
  #: includes/class-wc-order.php:842 includes/class-wc-order.php:852
27001
  #. translators: 1: first name 2: last name
27002
  msgctxt "full name"
@@ -27100,53 +27078,53 @@ msgctxt "Item name in quotes"
27100
  msgid "&ldquo;%s&rdquo;"
27101
  msgstr ""
27102
 
27103
- #: includes/class-wc-install.php:413
27104
  msgctxt "Page slug"
27105
  msgid "shop"
27106
  msgstr ""
27107
 
27108
- #: includes/class-wc-install.php:418
27109
  msgctxt "Page slug"
27110
  msgid "cart"
27111
  msgstr ""
27112
 
27113
- #: includes/class-wc-install.php:423
27114
  msgctxt "Page slug"
27115
  msgid "checkout"
27116
  msgstr ""
27117
 
27118
- #: includes/class-wc-install.php:428
27119
  msgctxt "Page slug"
27120
  msgid "my-account"
27121
  msgstr ""
27122
 
27123
- #: includes/class-wc-install.php:414
27124
  msgctxt "Page title"
27125
  msgid "Shop"
27126
  msgstr ""
27127
 
27128
- #: includes/class-wc-install.php:419
27129
  msgctxt "Page title"
27130
  msgid "Cart"
27131
  msgstr ""
27132
 
27133
- #: includes/class-wc-install.php:424
27134
  msgctxt "Page title"
27135
  msgid "Checkout"
27136
  msgstr ""
27137
 
27138
- #: includes/class-wc-install.php:429
27139
  msgctxt "Page title"
27140
  msgid "My account"
27141
  msgstr ""
27142
 
27143
- #: includes/class-wc-install.php:926
27144
  #. translators: user role
27145
  msgctxt "User role"
27146
  msgid "Customer"
27147
  msgstr ""
27148
 
27149
- #: includes/class-wc-install.php:928
27150
  #. translators: user role
27151
  msgctxt "User role"
27152
  msgid "Shop manager"
@@ -27237,13 +27215,13 @@ msgctxt "edit-address-slug"
27237
  msgid "shipping"
27238
  msgstr ""
27239
 
27240
- #: includes/wc-cart-functions.php:228
27241
  #. translators: %d: shipping package number
27242
  msgctxt "shipping packages"
27243
  msgid "Shipping %d"
27244
  msgstr ""
27245
 
27246
- #: includes/wc-cart-functions.php:228
27247
  msgctxt "shipping packages"
27248
  msgid "Shipping"
27249
  msgstr ""
1
+ # Copyright (C) 2019 Automattic
2
  # This file is distributed under the same license as the WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WooCommerce 3.5.4\n"
6
  "Report-Msgid-Bugs-To: https://github.com/woocommerce/woocommerce/issues\n"
7
+ "POT-Creation-Date: 2019-01-21 16:37:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
14
  "X-Generator: grunt-wp-i18n1.0.2\n"
5877
  msgstr ""
5878
 
5879
  #: includes/abstracts/abstract-wc-order.php:1731
5880
+ #: includes/class-wc-cart.php:1391 includes/class-wc-product-grouped.php:120
5881
  msgid "Free!"
5882
  msgstr ""
5883
 
5955
  msgid "Read more about &ldquo;%s&rdquo;"
5956
  msgstr ""
5957
 
5958
+ #: includes/abstracts/abstract-wc-product.php:1975
5959
  #: includes/admin/class-wc-admin-reports.php:108
5960
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:267
5961
  #: includes/admin/reports/class-wc-report-stock.php:118
5962
+ #: includes/wc-product-functions.php:857
5963
  msgid "Out of stock"
5964
  msgstr ""
5965
 
5966
+ #: includes/abstracts/abstract-wc-product.php:1977 templates/cart/cart.php:89
5967
  msgid "Available on backorder"
5968
  msgstr ""
5969
 
5971
  #: includes/api/legacy/v2/class-wc-api-coupons.php:529
5972
  #: includes/api/legacy/v2/class-wc-api-customers.php:792
5973
  #: includes/api/legacy/v2/class-wc-api-orders.php:1783
5974
+ #: includes/api/legacy/v2/class-wc-api-products.php:2254
5975
  #: includes/api/legacy/v3/class-wc-api-coupons.php:529
5976
  #: includes/api/legacy/v3/class-wc-api-customers.php:782
5977
  #: includes/api/legacy/v3/class-wc-api-orders.php:1828
5978
+ #: includes/api/legacy/v3/class-wc-api-products.php:3067
5979
  #: includes/api/legacy/v3/class-wc-api-taxes.php:465
5980
  #. translators: %s: items limit
5981
  msgid "Unable to accept more than %s items for this request."
5982
  msgstr ""
5983
 
5984
+ #: includes/abstracts/abstract-wc-rest-controller.php:257
5985
+ #: includes/abstracts/abstract-wc-rest-controller.php:275
5986
+ #: includes/abstracts/abstract-wc-rest-controller.php:298
5987
+ #: includes/abstracts/abstract-wc-rest-controller.php:341
5988
  #: includes/api/v2/class-wc-rest-payment-gateways-v2-controller.php:187
5989
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:314
5990
  msgid "An invalid setting value was passed."
5991
  msgstr ""
5992
 
5993
+ #: includes/abstracts/abstract-wc-rest-controller.php:401
5994
  msgid "List of created resources."
5995
  msgstr ""
5996
 
5997
+ #: includes/abstracts/abstract-wc-rest-controller.php:409
5998
  msgid "List of updated resources."
5999
  msgstr ""
6000
 
6001
+ #: includes/abstracts/abstract-wc-rest-controller.php:417
6002
  msgid "List of delete resources."
6003
  msgstr ""
6004
 
6057
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:418
6058
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:153
6059
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:303
6060
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:464
6061
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:499
6062
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1335
6063
  msgid "Invalid ID."
6064
  msgstr ""
6065
 
6080
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:438
6081
  #: includes/api/v1/class-wc-rest-products-controller.php:1656
6082
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:520
6083
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1364
6084
  #. translators: %s: post type
6085
  msgid "Sorry, you are not allowed to delete %s."
6086
  msgstr ""
6089
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:451
6090
  #: includes/api/v1/class-wc-rest-products-controller.php:1688
6091
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:538
6092
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1400
6093
  #. translators: %s: post type
6094
  msgid "The %s does not support trashing."
6095
  msgstr ""
6098
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:457
6099
  #: includes/api/v1/class-wc-rest-products-controller.php:1694
6100
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:549
6101
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1411
6102
  #. translators: %s: post type
6103
  msgid "The %s has already been deleted."
6104
  msgstr ""
6107
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:467
6108
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:316
6109
  #: includes/api/v1/class-wc-rest-products-controller.php:1705
6110
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:473
6111
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:563
6112
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1425
6113
  #. translators: %s: post type
6114
  msgid "The %s cannot be deleted."
6115
  msgstr ""
6129
  msgstr ""
6130
 
6131
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:535
6132
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:624
6133
  #: includes/api/class-wc-rest-product-reviews-controller.php:929
6134
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:702
6135
  msgid "Limit response to resources published after a given ISO8601 compliant date."
6136
  msgstr ""
6137
 
6138
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:541
6139
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:630
6140
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:708
6141
  msgid "Limit response to resources published before a given ISO8601 compliant date."
6142
  msgstr ""
6143
 
6144
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:547
6145
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:636
6146
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:697
6147
  #: includes/api/class-wc-rest-product-reviews-controller.php:939
6148
  #: includes/api/v1/class-wc-rest-customers-controller.php:865
6151
  msgstr ""
6152
 
6153
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:556
6154
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:645
6155
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:706
6156
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:723
6157
  msgid "Limit result set to specific ids."
6158
  msgstr ""
6159
 
6160
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:565
6161
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:654
6162
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:716
6163
  #: includes/api/class-wc-rest-product-reviews-controller.php:955
6164
  #: includes/api/v1/class-wc-rest-customers-controller.php:883
6168
  msgstr ""
6169
 
6170
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:571
6171
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:660
6172
  #: includes/abstracts/abstract-wc-rest-terms-controller.php:723
6173
  #: includes/api/class-wc-rest-product-reviews-controller.php:959
6174
  #: includes/api/v1/class-wc-rest-customers-controller.php:890
6178
  msgstr ""
6179
 
6180
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:578
6181
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:667
6182
  #: includes/api/class-wc-rest-product-reviews-controller.php:968
6183
  #: includes/api/v1/class-wc-rest-customers-controller.php:898
6184
  #: includes/api/v1/class-wc-rest-taxes-controller.php:690
6187
  msgstr ""
6188
 
6189
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:593
6190
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:684
6191
  msgid "Limit result set to those of particular parent IDs."
6192
  msgstr ""
6193
 
6194
  #: includes/abstracts/abstract-wc-rest-crud-controller.php:602
6195
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:693
6196
  msgid "Limit result set to all items except those of a particular parent ID."
6197
  msgstr ""
6198
 
6249
  #: includes/abstracts/abstract-wc-rest-posts-controller.php:258
6250
  #: includes/api/class-wc-rest-products-controller.php:314
6251
  #: includes/api/v1/class-wc-rest-products-controller.php:1637
6252
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:716
6253
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1343
6254
  msgid ""
6255
  "To manipulate product variations you should use the "
6256
  "/products/&lt;product_id&gt;/variations/&lt;id&gt; endpoint."
6262
  #: includes/api/v1/class-wc-rest-orders-controller.php:865
6263
  #: includes/api/v1/class-wc-rest-products-controller.php:784
6264
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:383
6265
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:552
6266
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:39
6267
  msgid "ID is invalid."
6268
  msgstr ""
6269
 
6270
+ #: includes/abstracts/abstract-wc-rest-posts-controller.php:706
6271
  msgid ""
6272
  "Use WP Query arguments to modify the response; private query vars require "
6273
  "appropriate authorization."
6337
  #: includes/api/v1/class-wc-rest-webhook-deliveries-controller.php:67
6338
  #: includes/api/v1/class-wc-rest-webhook-deliveries-controller.php:226
6339
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:78
6340
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:618
6341
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:76
6342
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:124
6343
  #: includes/api/v2/class-wc-rest-order-notes-v2-controller.php:129
6344
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:92
6345
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:355
6346
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:86
6347
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:844
6348
  #: includes/api/v2/class-wc-rest-payment-gateways-v2-controller.php:54
6349
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:103
6350
  #: includes/api/v2/class-wc-rest-product-reviews-v2-controller.php:153
6351
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:657
6352
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:84
6353
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1462
6354
  #: includes/api/v2/class-wc-rest-setting-options-v2-controller.php:84
6355
  #: includes/api/v2/class-wc-rest-shipping-methods-v2-controller.php:54
6356
  #: includes/api/v2/class-wc-rest-shipping-zones-v2-controller.php:281
6490
  msgstr ""
6491
 
6492
  #: includes/admin/class-wc-admin-addons.php:490
6493
+ #: includes/admin/helper/class-wc-helper.php:340
6494
  msgid "Installed"
6495
  msgstr ""
6496
 
6772
  #: includes/admin/class-wc-admin-assets.php:260
6773
  #: includes/admin/class-wc-admin-assets.php:415
6774
  #: includes/admin/settings/views/html-webhooks-edit.php:67
6775
+ #: includes/class-wc-frontend-scripts.php:569
6776
+ #: includes/wc-template-functions.php:2564
6777
+ #: templates/cart/shipping-calculator.php:56
6778
  msgid "Select an option&hellip;"
6779
  msgstr ""
6780
 
7043
  msgstr ""
7044
 
7045
  #: includes/admin/class-wc-admin-attributes.php:264
7046
+ #: includes/admin/helper/class-wc-helper.php:178
7047
  #: includes/admin/helper/views/html-section-account.php:3
7048
  #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:74
7049
  #: templates/cart/shipping-calculator.php:86
7240
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:446
7241
  #: includes/admin/meta-boxes/views/html-order-items.php:33
7242
  #: includes/admin/meta-boxes/views/html-order-items.php:192
7243
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:184
7244
  #: includes/wc-account-functions.php:193 templates/cart/cart-totals.php:92
7245
  #: templates/cart/cart-totals.php:93 templates/cart/cart.php:33
7246
  #: templates/cart/cart.php:118 templates/checkout/review-order.php:27
7532
 
7533
  #: includes/admin/class-wc-admin-menus.php:79
7534
  #: includes/admin/views/html-admin-page-status-report.php:604
7535
+ #: includes/class-wc-install.php:1182
7536
  msgid "Settings"
7537
  msgstr ""
7538
 
7870
  #: includes/admin/settings/views/html-webhooks-edit.php:168
7871
  #: includes/admin/settings/views/html-webhooks-edit.php:177
7872
  #: includes/admin/settings/views/html-webhooks-edit.php:185
7873
+ #: includes/class-wc-webhook.php:405
7874
  msgid "M j, Y @ G:i"
7875
  msgstr ""
7876
 
8106
  #: includes/admin/class-wc-admin-profile.php:105
8107
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:44
8108
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:95
8109
+ #: includes/class-wc-countries.php:629 includes/class-wc-form-handler.php:235
8110
  #: templates/myaccount/form-edit-account.php:27
8111
  msgid "First name"
8112
  msgstr ""
8115
  #: includes/admin/class-wc-admin-profile.php:109
8116
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:48
8117
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:99
8118
+ #: includes/class-wc-countries.php:636 includes/class-wc-form-handler.php:236
8119
  #: templates/myaccount/form-edit-account.php:31
8120
  msgid "Last name"
8121
  msgstr ""
8136
  #: includes/api/class-wc-rest-customers-controller.php:231
8137
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:215
8138
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:278
8139
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1008
8140
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1071
8141
  msgid "Address line 1"
8142
  msgstr ""
8143
 
8151
  #: includes/api/class-wc-rest-customers-controller.php:236
8152
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:220
8153
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:283
8154
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1013
8155
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1076
8156
  #: includes/customizer/class-wc-shop-customizer.php:678
8157
  msgid "Address line 2"
8158
  msgstr ""
8177
  #: includes/admin/settings/class-wc-settings-general.php:100
8178
  #: includes/admin/settings/class-wc-settings-tax.php:195
8179
  #: includes/admin/settings/views/html-settings-tax.php:28
8180
+ #: includes/class-wc-countries.php:692
8181
  #: templates/cart/shipping-calculator.php:82
8182
  msgid "Postcode / ZIP"
8183
  msgstr ""
8189
  #: includes/admin/class-wc-admin-setup-wizard.php:421
8190
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:72
8191
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:123
8192
+ #: includes/class-wc-countries.php:651
8193
  msgid "Country"
8194
  msgstr ""
8195
 
8206
  #: includes/admin/class-wc-admin-profile.php:140
8207
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:79
8208
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:130
8209
+ #: includes/class-wc-countries.php:684
8210
  #: templates/cart/shipping-calculator.php:50
8211
  #: templates/cart/shipping-calculator.php:55
8212
  #: templates/cart/shipping-calculator.php:67
8221
  #: includes/admin/class-wc-admin-profile.php:85
8222
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:365
8223
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:87
8224
+ #: includes/class-wc-countries.php:1281
8225
  #: includes/customizer/class-wc-shop-customizer.php:679
8226
  msgid "Phone"
8227
  msgstr ""
8229
  #: includes/admin/class-wc-admin-profile.php:89
8230
  #: includes/admin/class-wc-admin-setup-wizard.php:2258
8231
  #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:84
8232
+ #: includes/class-wc-countries.php:1291 includes/class-wc-form-handler.php:238
8233
  #: templates/myaccount/form-edit-account.php:43
8234
  #: templates/myaccount/form-login.php:86
8235
  msgid "Email address"
8454
 
8455
  #: includes/admin/class-wc-admin-setup-wizard.php:440
8456
  #: includes/admin/class-wc-admin-setup-wizard.php:442
8457
+ #: includes/class-wc-countries.php:782 includes/class-wc-countries.php:1035
8458
+ #: includes/class-wc-countries.php:1171
8459
  msgid "State"
8460
  msgstr ""
8461
 
9266
  #: includes/admin/class-wc-admin-webhooks.php:69
9267
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:199
9268
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:199
9269
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:504
9270
  #. translators: %s: date
9271
  msgid "Webhook created on %s"
9272
  msgstr ""
9313
  msgid "Create a new webhook"
9314
  msgstr ""
9315
 
9316
+ #: includes/admin/class-wc-admin.php:207
9317
  msgid "HTML email template"
9318
  msgstr ""
9319
 
9320
+ #: includes/admin/class-wc-admin.php:249
9321
  #. translators: 1: WooCommerce 2:: five stars
9322
  msgid "If you like %1$s please leave us a %2$s rating. A huge thanks in advance!"
9323
  msgstr ""
9324
 
9325
+ #: includes/admin/class-wc-admin.php:251
9326
  msgid "Thanks :)"
9327
  msgstr ""
9328
 
9329
+ #: includes/admin/class-wc-admin.php:260
9330
  msgid "Thank you for selling with WooCommerce."
9331
  msgstr ""
9332
 
9340
  msgid "WooCommerce Helper"
9341
  msgstr ""
9342
 
9343
+ #: includes/admin/helper/class-wc-helper.php:177
9344
+ #: includes/admin/helper/class-wc-helper.php:197
9345
  #. translators: %s: version number
9346
  msgid "Version %s is <strong>available</strong>."
9347
  msgstr ""
9348
 
9349
+ #: includes/admin/helper/class-wc-helper.php:186
9350
  msgid ""
9351
  "To enable this update you need to <strong>activate</strong> this "
9352
  "subscription."
9353
  msgstr ""
9354
 
9355
+ #: includes/admin/helper/class-wc-helper.php:202
9356
  msgid ""
9357
  "To enable this update you need to <strong>purchase</strong> a new "
9358
  "subscription."
9359
  msgstr ""
9360
 
9361
+ #: includes/admin/helper/class-wc-helper.php:203
9362
+ #: includes/admin/helper/class-wc-helper.php:288
9363
+ #: includes/admin/helper/class-wc-helper.php:299
9364
  msgid "Purchase"
9365
  msgstr ""
9366
 
9367
+ #: includes/admin/helper/class-wc-helper.php:209
9368
  msgid ""
9369
  "This subscription has expired. Contact the owner to <strong>renew</strong> "
9370
  "the subscription to receive updates and support."
9371
  msgstr ""
9372
 
9373
+ #: includes/admin/helper/class-wc-helper.php:217
9374
  msgid ""
9375
  "This subscription has expired. Please <strong>renew</strong> to receive "
9376
  "updates and support."
9377
  msgstr ""
9378
 
9379
+ #: includes/admin/helper/class-wc-helper.php:218
9380
+ #: includes/admin/helper/class-wc-helper.php:241
9381
  msgid "Renew"
9382
  msgstr ""
9383
 
9384
+ #: includes/admin/helper/class-wc-helper.php:229
9385
  msgid "Subscription is <strong>expiring</strong> soon."
9386
  msgstr ""
9387
 
9388
+ #: includes/admin/helper/class-wc-helper.php:230
9389
  msgid "Enable auto-renew"
9390
  msgstr ""
9391
 
9392
+ #: includes/admin/helper/class-wc-helper.php:240
9393
  msgid ""
9394
  "This subscription is expiring soon. Please <strong>renew</strong> to "
9395
  "continue receiving updates and support."
9396
  msgstr ""
9397
 
9398
+ #: includes/admin/helper/class-wc-helper.php:287
9399
  msgid ""
9400
  "Version %s is <strong>available</strong>. To enable this update you need to "
9401
  "<strong>purchase</strong> a new subscription."
9402
  msgstr ""
9403
 
9404
+ #: includes/admin/helper/class-wc-helper.php:298
9405
  #. translators: 1: subscriptions docs 2: subscriptions docs
9406
  msgid ""
9407
  "To receive updates and support for this extension, you need to "
9411
  "Docs\">transferring</a></strong> this extension to this connected account."
9412
  msgstr ""
9413
 
9414
+ #: includes/admin/helper/class-wc-helper.php:337
9415
  #: includes/admin/reports/class-wc-report-sales-by-category.php:232
9416
  msgid "All"
9417
  msgstr ""
9418
 
9419
+ #: includes/admin/helper/class-wc-helper.php:338
9420
  #: includes/admin/helper/views/html-main.php:112
9421
  #: includes/admin/helper/views/html-main.php:115
9422
+ #: includes/wc-webhook-functions.php:119
9423
  msgid "Active"
9424
  msgstr ""
9425
 
9426
+ #: includes/admin/helper/class-wc-helper.php:339
9427
  #: includes/admin/helper/views/html-main.php:122
9428
  #: includes/admin/helper/views/html-main.php:125
9429
  #: includes/admin/helper/views/html-main.php:132
9433
  msgid "Inactive"
9434
  msgstr ""
9435
 
9436
+ #: includes/admin/helper/class-wc-helper.php:341
9437
  msgid "Update Available"
9438
  msgstr ""
9439
 
9440
+ #: includes/admin/helper/class-wc-helper.php:342
9441
  msgid "Expiring Soon"
9442
  msgstr ""
9443
 
9444
+ #: includes/admin/helper/class-wc-helper.php:343
9445
  msgid "Expired"
9446
  msgstr ""
9447
 
9448
+ #: includes/admin/helper/class-wc-helper.php:344
9449
  #: includes/admin/helper/views/html-main.php:109
9450
  #: includes/class-wc-emails.php:410
9451
  #: includes/legacy/abstract-wc-legacy-order.php:507
9454
  msgid "Download"
9455
  msgstr ""
9456
 
9457
+ #: includes/admin/helper/class-wc-helper.php:471
9458
  #. translators: %s: product name
9459
  msgid "%s activated successfully. You will now receive updates for this product."
9460
  msgstr ""
9461
 
9462
+ #: includes/admin/helper/class-wc-helper.php:483
9463
  #. translators: %s: product name
9464
  msgid "An error has occurred when activating %s. Please try again later."
9465
  msgstr ""
9466
 
9467
+ #: includes/admin/helper/class-wc-helper.php:495
9468
  #. translators: %s: product name
9469
  msgid ""
9470
  "Subscription for %s deactivated successfully. You will no longer receive "
9471
  "updates for this product."
9472
  msgstr ""
9473
 
9474
+ #: includes/admin/helper/class-wc-helper.php:513
9475
  #. translators: %1$s: product name, %2$s: deactivate url
9476
  msgid ""
9477
  "Subscription for %1$s deactivated successfully. You will no longer receive "
9479
  "deactivate the plugin as well."
9480
  msgstr ""
9481
 
9482
+ #: includes/admin/helper/class-wc-helper.php:530
9483
  #. translators: %s: product name
9484
  msgid ""
9485
  "An error has occurred when deactivating the subscription for %s. Please try "
9486
  "again later."
9487
  msgstr ""
9488
 
9489
+ #: includes/admin/helper/class-wc-helper.php:542
9490
  #. translators: %s: product name
9491
  msgid "The extension %s has been deactivated successfully."
9492
  msgstr ""
9493
 
9494
+ #: includes/admin/helper/class-wc-helper.php:554
9495
  #. translators: %1$s: product name, %2$s: plugins screen url
9496
  msgid ""
9497
  "An error has occurred when deactivating the extension %1$s. Please proceed "
9498
  "to the <a href=\"%2$s\">Plugins screen</a> to deactivate it manually."
9499
  msgstr ""
9500
 
9501
+ #: includes/admin/helper/class-wc-helper.php:562
9502
  msgid "You have successfully connected your store to WooCommerce.com"
9503
  msgstr ""
9504
 
9505
+ #: includes/admin/helper/class-wc-helper.php:569
9506
  msgid "You have successfully disconnected your store from WooCommerce.com"
9507
  msgstr ""
9508
 
9509
+ #: includes/admin/helper/class-wc-helper.php:576
9510
  msgid "Authentication and subscription caches refreshed successfully."
9511
  msgstr ""
9512
 
9513
+ #: includes/admin/helper/class-wc-helper.php:1352
9514
  #. translators: %s: helper screen url
9515
  msgid ""
9516
  "<a href=\"%s\">Connect your store</a> to WooCommerce.com to receive "
9517
  "extensions updates and support."
9518
  msgstr ""
9519
 
9520
+ #: includes/admin/helper/class-wc-helper.php:1385
9521
  #. translators: %1$s: helper url, %2$d: number of extensions
9522
  msgid ""
9523
  "Note: You currently have <a href=\"%1$s\">%2$d paid extension</a> which "
9972
  msgstr ""
9973
 
9974
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:548
9975
+ #: includes/export/class-wc-product-csv-exporter.php:597
9976
  #. translators: %d: Attribute number
9977
  #. translators: %s: attribute number
9978
  msgid "Attribute %d name"
9979
  msgstr ""
9980
 
9981
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:550
9982
+ #: includes/export/class-wc-product-csv-exporter.php:599
9983
  #. translators: %d: Attribute number
9984
  #. translators: %s: attribute number
9985
  msgid "Attribute %d value(s)"
9986
  msgstr ""
9987
 
9988
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:552
9989
+ #: includes/export/class-wc-product-csv-exporter.php:601
9990
  #. translators: %d: Attribute number
9991
  #. translators: %s: attribute number
9992
  msgid "Attribute %d visible"
9993
  msgstr ""
9994
 
9995
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:554
9996
+ #: includes/export/class-wc-product-csv-exporter.php:603
9997
  #. translators: %d: Attribute number
9998
  #. translators: %s: attribute number
9999
  msgid "Attribute %d global"
10000
  msgstr ""
10001
 
10002
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:556
10003
+ #: includes/export/class-wc-product-csv-exporter.php:641
10004
  #. translators: %d: Attribute number
10005
  #. translators: %s: attribute number
10006
  msgid "Attribute %d default"
10007
  msgstr ""
10008
 
10009
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:558
10010
+ #: includes/export/class-wc-product-csv-exporter.php:570
10011
  #. translators: %d: Download number
10012
  #. translators: %s: download number
10013
  msgid "Download %d name"
10014
  msgstr ""
10015
 
10016
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:560
10017
+ #: includes/export/class-wc-product-csv-exporter.php:572
10018
  #. translators: %d: Download number
10019
  #. translators: %s: download number
10020
  msgid "Download %d URL"
10021
  msgstr ""
10022
 
10023
  #: includes/admin/importers/class-wc-product-csv-importer-controller.php:562
10024
+ #: includes/export/class-wc-product-csv-exporter.php:686
10025
  #. translators: %d: Meta number
10026
  #. translators: %s: meta data name
10027
  msgid "Meta: %s"
10249
  #: includes/admin/reports/class-wc-report-stock.php:173
10250
  #: includes/class-wc-emails.php:408 includes/class-wc-post-types.php:304
10251
  #: includes/class-wc-privacy-exporters.php:338
10252
+ #: includes/data-stores/class-wc-product-data-store-cpt.php:107
10253
  #: includes/wc-account-functions.php:211 templates/cart/cart.php:30
10254
  #: templates/cart/cart.php:74 templates/checkout/form-pay.php:27
10255
  #: templates/checkout/review-order.php:26
10541
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:445
10542
  #: includes/admin/meta-boxes/views/html-order-items.php:38
10543
  #: includes/admin/meta-boxes/views/html-order-items.php:39
10544
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:156
10545
  #: includes/admin/settings/class-wc-settings-tax.php:29
10546
  #: includes/class-wc-countries.php:405 includes/class-wc-order-item-tax.php:159
10547
  #: includes/class-wc-tax.php:762
10593
  #: includes/wc-account-functions.php:346
10594
  #: includes/wc-formatting-functions.php:1221
10595
  #: includes/wc-formatting-functions.php:1240
10596
+ #: templates/emails/email-addresses.php:32
10597
  #: templates/order/order-details-customer.php:35
10598
  #: templates/order/order-details-customer.php:53
10599
  #: templates/single-product/meta.php:31
10663
 
10664
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:263
10665
  #: includes/admin/reports/class-wc-report-stock.php:114
10666
+ #: includes/wc-product-functions.php:858
10667
  msgid "On backorder"
10668
  msgstr ""
10669
 
10670
  #: includes/admin/list-tables/class-wc-admin-list-table-products.php:265
10671
  #: includes/admin/reports/class-wc-report-stock.php:116
10672
  #: includes/wc-formatting-functions.php:1147
10673
+ #: includes/wc-product-functions.php:856
10674
  msgid "In stock"
10675
  msgstr ""
10676
 
11621
  "enabled, stock quantity can go below 0."
11622
  msgstr ""
11623
 
11624
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:79
11625
  #: includes/admin/settings/class-wc-settings-products.php:191
11626
  msgid "Low stock threshold"
11627
  msgstr ""
11628
 
11629
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:81
11630
  msgid "When product stock reaches this amount you will be notified by email"
11631
  msgstr ""
11632
 
11633
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:99
11634
  #: includes/admin/meta-boxes/views/html-variation-admin.php:219
11635
  #: includes/admin/reports/class-wc-report-stock.php:176
11636
  msgid "Stock status"
11637
  msgstr ""
11638
 
11639
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:102
11640
  #: includes/admin/meta-boxes/views/html-variation-admin.php:222
11641
  #: includes/api/v1/class-wc-rest-products-controller.php:1956
11642
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1694
11643
  msgid ""
11644
  "Controls whether or not the product is listed as \"in stock\" or \"out of "
11645
  "stock\" on the frontend."
11646
  msgstr ""
11647
 
11648
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:117
11649
  msgid "Sold individually"
11650
  msgstr ""
11651
 
11652
+ #: includes/admin/meta-boxes/views/html-product-data-inventory.php:118
11653
  msgid "Enable this to only allow one of this item to be bought in a single order"
11654
  msgstr ""
11655
 
12414
  msgstr ""
12415
 
12416
  #: includes/admin/reports/class-wc-report-sales-by-date.php:698
12417
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:158
12418
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:212
12419
  msgid "Number of orders"
12420
  msgstr ""
12421
 
12508
  msgid "Units in stock"
12509
  msgstr ""
12510
 
12511
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:157
12512
  msgid "Rate"
12513
  msgstr ""
12514
 
12515
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:159
12516
  msgid "Tax amount"
12517
  msgstr ""
12518
 
12519
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:159
12520
  msgid "This is the sum of the \"Tax rows\" tax amount within your orders."
12521
  msgstr ""
12522
 
12523
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:160
12524
  msgid "Shipping tax amount"
12525
  msgstr ""
12526
 
12527
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:160
12528
  msgid "This is the sum of the \"Tax rows\" shipping tax amount within your orders."
12529
  msgstr ""
12530
 
12531
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:161
12532
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:215
12533
  msgid "Total tax"
12534
  msgstr ""
12535
 
12536
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:161
12537
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:215
12538
  msgid "This is the total tax for the rate (shipping tax + product tax)."
12539
  msgstr ""
12540
 
12541
+ #: includes/admin/reports/class-wc-report-taxes-by-code.php:193
12542
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:257
12543
  msgid "No taxes found in this period"
12544
  msgstr ""
12545
 
12546
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:211
12547
  msgid "Period"
12548
  msgstr ""
12549
 
12550
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:213
12551
  msgid "Total sales"
12552
  msgstr ""
12553
 
12554
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:213
12555
  msgid "This is the sum of the 'Order total' field within your orders."
12556
  msgstr ""
12557
 
12558
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:214
12559
  msgid "Total shipping"
12560
  msgstr ""
12561
 
12562
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:214
12563
  msgid "This is the sum of the 'Shipping total' field within your orders."
12564
  msgstr ""
12565
 
12566
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:216
12567
  msgid "Net profit"
12568
  msgstr ""
12569
 
12570
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:216
12571
  msgid "Total sales minus shipping and tax."
12572
  msgstr ""
12573
 
12574
+ #: includes/admin/reports/class-wc-report-taxes-by-date.php:246
12575
  #: templates/checkout/form-pay.php:29
12576
  msgid "Totals"
12577
  msgstr ""
13120
  msgstr ""
13121
 
13122
  #: includes/admin/settings/class-wc-settings-emails.php:304
13123
+ #: includes/wc-webhook-functions.php:121
13124
  msgid "Disabled"
13125
  msgstr ""
13126
 
14071
  #: includes/admin/views/html-bulk-edit-product.php:95
14072
  #: includes/admin/views/html-quick-edit-product.php:72
14073
  #: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:217
14074
+ #: includes/wc-product-functions.php:838
14075
  msgid "Standard"
14076
  msgstr ""
14077
 
15338
  #: includes/admin/views/html-bulk-edit-product.php:190
15339
  #: includes/admin/views/html-quick-edit-product.php:147
15340
  #: includes/customizer/class-wc-shop-customizer.php:700
15341
+ #: includes/wc-product-functions.php:783
15342
  msgid "Hidden"
15343
  msgstr ""
15344
 
15700
  #: includes/api/v1/class-wc-rest-orders-controller.php:1096
15701
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:200
15702
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:263
15703
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:993
15704
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1056
15705
  msgid "First name."
15706
  msgstr ""
15707
 
15713
  #: includes/api/v1/class-wc-rest-orders-controller.php:1101
15714
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:205
15715
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:268
15716
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:998
15717
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1061
15718
  msgid "Last name."
15719
  msgstr ""
15720
 
15726
  #: includes/api/v1/class-wc-rest-orders-controller.php:1106
15727
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:210
15728
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:273
15729
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1003
15730
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1066
15731
  msgid "Company name."
15732
  msgstr ""
15733
 
15740
  #: includes/api/v1/class-wc-rest-taxes-controller.php:597
15741
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:225
15742
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:288
15743
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1018
15744
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1081
15745
  msgid "City name."
15746
  msgstr ""
15747
 
15753
  #: includes/api/v1/class-wc-rest-orders-controller.php:1126
15754
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:230
15755
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:293
15756
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1023
15757
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1086
15758
  msgid "ISO code or name of the state, province or district."
15759
  msgstr ""
15760
 
15766
  #: includes/api/v1/class-wc-rest-orders-controller.php:1131
15767
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:235
15768
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:298
15769
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1028
15770
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1091
15771
  msgid "Postal code."
15772
  msgstr ""
15773
 
15784
  #: includes/api/v1/class-wc-rest-customers-controller.php:773
15785
  #: includes/api/v1/class-wc-rest-orders-controller.php:1078
15786
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:245
15787
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1038
15788
  msgid "Email address."
15789
  msgstr ""
15790
 
15792
  #: includes/api/v1/class-wc-rest-customers-controller.php:779
15793
  #: includes/api/v1/class-wc-rest-orders-controller.php:1084
15794
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:251
15795
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1044
15796
  msgid "Phone number."
15797
  msgstr ""
15798
 
15820
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:334
15821
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:394
15822
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:517
15823
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1151
15824
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1263
15825
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1354
15826
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1445
15827
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1543
15828
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1601
15829
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:972
15830
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2038
15831
  msgid "Meta data."
15832
  msgstr ""
15833
 
15838
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:341
15839
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:401
15840
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:525
15841
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1158
15842
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1270
15843
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1361
15844
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1452
15845
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1550
15846
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1608
15847
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:979
15848
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2045
15849
  msgid "Meta ID."
15850
  msgstr ""
15851
 
15858
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:347
15859
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:407
15860
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:531
15861
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1164
15862
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1276
15863
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1367
15864
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1458
15865
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1556
15866
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1614
15867
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:985
15868
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2051
15869
  msgid "Meta key."
15870
  msgstr ""
15871
 
15878
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:352
15879
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:412
15880
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:537
15881
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1169
15882
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1281
15883
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1372
15884
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1463
15885
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1561
15886
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1619
15887
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:990
15888
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2056
15889
  msgid "Meta value."
15890
  msgstr ""
15891
 
16010
  #: includes/api/v2/class-wc-rest-order-notes-v2-controller.php:39
16011
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:191
16012
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:273
16013
+ #: includes/wc-core-functions.php:146 includes/wc-order-functions.php:498
16014
+ #: includes/wc-order-functions.php:1031
16015
  msgid "Invalid order ID."
16016
  msgstr ""
16017
 
16074
  #: includes/api/legacy/v2/class-wc-api-orders.php:1159
16075
  #: includes/api/legacy/v3/class-wc-api-orders.php:1204
16076
  #: includes/api/v1/class-wc-rest-orders-controller.php:739
16077
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:744
16078
  msgid "Coupon code is required."
16079
  msgstr ""
16080
 
16085
  #: includes/api/legacy/v3/class-wc-api-orders.php:423
16086
  #: includes/api/legacy/v3/class-wc-api-orders.php:573
16087
  #: includes/api/v1/class-wc-rest-orders-controller.php:534
 
 
 
 
 
 
 
16088
  #: includes/api/v2/class-wc-rest-orders-v2-controller.php:532
16089
+ msgid "Customer ID is invalid."
16090
  msgstr ""
16091
 
16092
  #: includes/api/class-wc-rest-orders-controller.php:257
16093
  #: includes/api/v1/class-wc-rest-orders-controller.php:1601
16094
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1680
16095
  msgid "Limit result set to orders assigned a specific status."
16096
  msgstr ""
16097
 
16212
  #: includes/api/v1/class-wc-rest-product-categories-controller.php:180
16213
  #: includes/api/v1/class-wc-rest-products-controller.php:2106
16214
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:109
16215
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1844
16216
  msgid "Category name."
16217
  msgstr ""
16218
 
16261
  #: includes/api/v1/class-wc-rest-products-controller.php:2487
16262
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:150
16263
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:890
16264
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1893
16265
  msgid "Image ID."
16266
  msgstr ""
16267
 
16273
  #: includes/api/v1/class-wc-rest-products-controller.php:2492
16274
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:155
16275
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:895
16276
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1898
16277
  msgid "The date the image was created, in the site's timezone."
16278
  msgstr ""
16279
 
16282
  #: includes/api/class-wc-rest-products-controller.php:1140
16283
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:161
16284
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:901
16285
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1904
16286
  msgid "The date the image was created, as GMT."
16287
  msgstr ""
16288
 
16294
  #: includes/api/v1/class-wc-rest-products-controller.php:2498
16295
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:167
16296
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:907
16297
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1910
16298
  msgid "The date the image was last modified, in the site's timezone."
16299
  msgstr ""
16300
 
16303
  #: includes/api/class-wc-rest-products-controller.php:1152
16304
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:173
16305
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:913
16306
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1916
16307
  msgid "The date the image was last modified, as GMT."
16308
  msgstr ""
16309
 
16315
  #: includes/api/v1/class-wc-rest-products-controller.php:2504
16316
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:179
16317
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:919
16318
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1922
16319
  msgid "Image URL."
16320
  msgstr ""
16321
 
16327
  #: includes/api/v1/class-wc-rest-products-controller.php:2510
16328
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:185
16329
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:925
16330
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1928
16331
  msgid "Image name."
16332
  msgstr ""
16333
 
16339
  #: includes/api/v1/class-wc-rest-products-controller.php:2515
16340
  #: includes/api/v2/class-wc-rest-product-categories-v2-controller.php:190
16341
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:930
16342
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1933
16343
  msgid "Image alternative text."
16344
  msgstr ""
16345
 
16384
  #: includes/api/v1/class-wc-rest-product-reviews-controller.php:118
16385
  #: includes/api/v1/class-wc-rest-products-controller.php:102
16386
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:102
16387
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:112
16388
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:115
16389
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:113
16390
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:87
16391
  #: includes/api/v2/class-wc-rest-shipping-zones-v2-controller.php:77
16392
  msgid "Whether to bypass trash and force deletion."
16557
  #: includes/api/class-wc-rest-product-variations-controller.php:371
16558
  #: includes/api/class-wc-rest-products-controller.php:251
16559
  #: includes/api/v1/class-wc-rest-products-controller.php:867
16560
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1105
16561
  #. translators: %s: attachment ID
16562
  #. translators: %s: image ID
16563
  #. translators: %s: attachment id
16592
  #: includes/api/v1/class-wc-rest-products-controller.php:1811
16593
  #: includes/api/v1/class-wc-rest-products-controller.php:2295
16594
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:687
16595
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1546
16596
  msgid "Unique identifier."
16597
  msgstr ""
16598
 
16617
  #: includes/api/class-wc-rest-product-variations-controller.php:459
16618
  #: includes/api/class-wc-rest-products-controller.php:802
16619
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:708
16620
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1567
16621
  msgid "Start date of sale price, in the site's timezone."
16622
  msgstr ""
16623
 
16624
  #: includes/api/class-wc-rest-product-variations-controller.php:464
16625
  #: includes/api/class-wc-rest-products-controller.php:807
16626
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:713
16627
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1572
16628
  msgid "Start date of sale price, as GMT."
16629
  msgstr ""
16630
 
16633
  #: includes/api/class-wc-rest-products-controller.php:812
16634
  #: includes/api/class-wc-rest-products-controller.php:817
16635
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:718
16636
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1577
16637
  msgid "End date of sale price, in the site's timezone."
16638
  msgstr ""
16639
 
16670
  #: includes/api/v1/class-wc-rest-products-controller.php:1878
16671
  #: includes/api/v1/class-wc-rest-products-controller.php:2355
16672
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:758
16673
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1623
16674
  msgid "List of downloadable files."
16675
  msgstr ""
16676
 
16679
  #: includes/api/v1/class-wc-rest-products-controller.php:1885
16680
  #: includes/api/v1/class-wc-rest-products-controller.php:2362
16681
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:765
16682
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1630
16683
  msgid "File ID."
16684
  msgstr ""
16685
 
16690
  #: includes/api/v1/class-wc-rest-products-controller.php:2367
16691
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:147
16692
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:770
16693
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1635
16694
  msgid "File name."
16695
  msgstr ""
16696
 
16701
  #: includes/api/v1/class-wc-rest-products-controller.php:2372
16702
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:153
16703
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:775
16704
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1640
16705
  msgid "File URL."
16706
  msgstr ""
16707
 
16710
  #: includes/api/v1/class-wc-rest-products-controller.php:1903
16711
  #: includes/api/v1/class-wc-rest-products-controller.php:2380
16712
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:783
16713
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1648
16714
  msgid "Number of times downloadable files can be downloaded after purchase."
16715
  msgstr ""
16716
 
16719
  #: includes/api/v1/class-wc-rest-products-controller.php:1909
16720
  #: includes/api/v1/class-wc-rest-products-controller.php:2386
16721
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:789
16722
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1654
16723
  msgid "Number of days until access to downloadable files expires."
16724
  msgstr ""
16725
 
16728
  #: includes/api/v1/class-wc-rest-products-controller.php:1933
16729
  #: includes/api/v1/class-wc-rest-products-controller.php:2392
16730
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:795
16731
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1671
16732
  msgid "Tax status."
16733
  msgstr ""
16734
 
16738
  #: includes/api/v1/class-wc-rest-products-controller.php:2399
16739
  #: includes/api/v1/class-wc-rest-taxes-controller.php:635
16740
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:802
16741
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1678
16742
  msgid "Tax class."
16743
  msgstr ""
16744
 
16753
  #: includes/api/v1/class-wc-rest-products-controller.php:1951
16754
  #: includes/api/v1/class-wc-rest-products-controller.php:2410
16755
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:813
16756
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1689
16757
  msgid "Stock quantity."
16758
  msgstr ""
16759
 
16767
  #: includes/api/v1/class-wc-rest-products-controller.php:1962
16768
  #: includes/api/v1/class-wc-rest-products-controller.php:2421
16769
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:824
16770
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1700
16771
  msgid "If managing stock, this controls if backorders are allowed."
16772
  msgstr ""
16773
 
16776
  #: includes/api/v1/class-wc-rest-products-controller.php:1969
16777
  #: includes/api/v1/class-wc-rest-products-controller.php:2428
16778
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:831
16779
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1707
16780
  msgid "Shows if backorders are allowed."
16781
  msgstr ""
16782
 
16825
  #: includes/api/v1/class-wc-rest-products-controller.php:2030
16826
  #: includes/api/v1/class-wc-rest-products-controller.php:2471
16827
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:874
16828
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1768
16829
  msgid "Shipping class slug."
16830
  msgstr ""
16831
 
16834
  #: includes/api/v1/class-wc-rest-products-controller.php:2035
16835
  #: includes/api/v1/class-wc-rest-products-controller.php:2476
16836
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:879
16837
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1773
16838
  msgid "Shipping class ID."
16839
  msgstr ""
16840
 
16849
  #: includes/api/v1/class-wc-rest-products-controller.php:2196
16850
  #: includes/api/v1/class-wc-rest-products-controller.php:2527
16851
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:942
16852
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1946
16853
  msgid "List of attributes."
16854
  msgstr ""
16855
 
16860
  #: includes/api/v1/class-wc-rest-products-controller.php:2245
16861
  #: includes/api/v1/class-wc-rest-products-controller.php:2534
16862
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:949
16863
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1953
16864
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1998
16865
  #: includes/cli/class-wc-cli-runner.php:114
16866
  msgid "Attribute ID."
16867
  msgstr ""
16874
  #: includes/api/v1/class-wc-rest-products-controller.php:2250
16875
  #: includes/api/v1/class-wc-rest-products-controller.php:2539
16876
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:954
16877
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1958
16878
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2003
16879
  msgid "Attribute name."
16880
  msgstr ""
16881
 
16884
  #: includes/api/v1/class-wc-rest-products-controller.php:2255
16885
  #: includes/api/v1/class-wc-rest-products-controller.php:2544
16886
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:959
16887
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2008
16888
  msgid "Selected attribute term name."
16889
  msgstr ""
16890
 
16892
  #: includes/api/class-wc-rest-products-controller.php:1265
16893
  #: includes/api/v1/class-wc-rest-products-controller.php:2564
16894
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:967
16895
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2033
16896
  msgid "Menu order, used to custom sort products."
16897
  msgstr ""
16898
 
16899
+ #: includes/api/class-wc-rest-product-variations-controller.php:851
16900
  #: includes/api/class-wc-rest-products-controller.php:1311
16901
  msgid "Limit result set to products with specified stock status."
16902
  msgstr ""
16908
  #: includes/api/v1/class-wc-rest-report-top-sellers-controller.php:152
16909
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:99
16910
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:434
16911
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1190
16912
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1468
16913
  msgid "Product name."
16914
  msgstr ""
16915
 
16916
  #: includes/api/class-wc-rest-products-controller.php:710
16917
  #: includes/api/v1/class-wc-rest-products-controller.php:1750
16918
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1473
16919
  msgid "Product slug."
16920
  msgstr ""
16921
 
16922
  #: includes/api/class-wc-rest-products-controller.php:715
16923
  #: includes/api/v1/class-wc-rest-products-controller.php:1755
16924
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1478
16925
  msgid "Product URL."
16926
  msgstr ""
16927
 
16928
  #: includes/api/class-wc-rest-products-controller.php:722
16929
  #: includes/api/v1/class-wc-rest-products-controller.php:1762
16930
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1485
16931
  msgid "The date the product was created, in the site's timezone."
16932
  msgstr ""
16933
 
16934
  #: includes/api/class-wc-rest-products-controller.php:727
16935
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1491
16936
  msgid "The date the product was created, as GMT."
16937
  msgstr ""
16938
 
16939
  #: includes/api/class-wc-rest-products-controller.php:732
16940
  #: includes/api/v1/class-wc-rest-products-controller.php:1768
16941
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1497
16942
  msgid "The date the product was last modified, in the site's timezone."
16943
  msgstr ""
16944
 
16945
  #: includes/api/class-wc-rest-products-controller.php:738
16946
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1503
16947
  msgid "The date the product was last modified, as GMT."
16948
  msgstr ""
16949
 
16950
  #: includes/api/class-wc-rest-products-controller.php:744
16951
  #: includes/api/v1/class-wc-rest-products-controller.php:1774
16952
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1509
16953
  msgid "Product type."
16954
  msgstr ""
16955
 
16956
  #: includes/api/class-wc-rest-products-controller.php:751
16957
  #: includes/api/v1/class-wc-rest-products-controller.php:1781
16958
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1516
16959
  msgid "Product status (post status)."
16960
  msgstr ""
16961
 
16962
  #: includes/api/class-wc-rest-products-controller.php:758
16963
  #: includes/api/v1/class-wc-rest-products-controller.php:1788
16964
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1523
16965
  msgid "Featured product."
16966
  msgstr ""
16967
 
16968
  #: includes/api/class-wc-rest-products-controller.php:764
16969
  #: includes/api/v1/class-wc-rest-products-controller.php:1794
16970
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1529
16971
  msgid "Catalog visibility."
16972
  msgstr ""
16973
 
16974
  #: includes/api/class-wc-rest-products-controller.php:771
16975
  #: includes/api/v1/class-wc-rest-products-controller.php:1801
16976
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1536
16977
  msgid "Product description."
16978
  msgstr ""
16979
 
16980
  #: includes/api/class-wc-rest-products-controller.php:776
16981
  #: includes/api/v1/class-wc-rest-products-controller.php:1806
16982
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1541
16983
  msgid "Product short description."
16984
  msgstr ""
16985
 
16986
  #: includes/api/class-wc-rest-products-controller.php:786
16987
  #: includes/api/v1/class-wc-rest-products-controller.php:1816
16988
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1551
16989
  msgid "Current product price."
16990
  msgstr ""
16991
 
16992
  #: includes/api/class-wc-rest-products-controller.php:792
16993
  #: includes/api/v1/class-wc-rest-products-controller.php:1822
16994
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1557
16995
  msgid "Product regular price."
16996
  msgstr ""
16997
 
16998
  #: includes/api/class-wc-rest-products-controller.php:797
16999
  #: includes/api/v1/class-wc-rest-products-controller.php:1827
17000
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1562
17001
  msgid "Product sale price."
17002
  msgstr ""
17003
 
17004
  #: includes/api/class-wc-rest-products-controller.php:822
17005
  #: includes/api/v1/class-wc-rest-products-controller.php:1842
17006
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1587
17007
  msgid "Price formatted in HTML."
17008
  msgstr ""
17009
 
17010
  #: includes/api/class-wc-rest-products-controller.php:828
17011
  #: includes/api/v1/class-wc-rest-products-controller.php:1848
17012
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1593
17013
  msgid "Shows if the product is on sale."
17014
  msgstr ""
17015
 
17016
  #: includes/api/class-wc-rest-products-controller.php:834
17017
  #: includes/api/v1/class-wc-rest-products-controller.php:1854
17018
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1599
17019
  msgid "Shows if the product can be bought."
17020
  msgstr ""
17021
 
17022
  #: includes/api/class-wc-rest-products-controller.php:840
17023
  #: includes/api/v1/class-wc-rest-products-controller.php:1860
17024
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1605
17025
  msgid "Amount of sales."
17026
  msgstr ""
17027
 
17028
  #: includes/api/class-wc-rest-products-controller.php:846
17029
  #: includes/api/v1/class-wc-rest-products-controller.php:1866
17030
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1611
17031
  msgid "If the product is virtual."
17032
  msgstr ""
17033
 
17034
  #: includes/api/class-wc-rest-products-controller.php:852
17035
  #: includes/api/v1/class-wc-rest-products-controller.php:1872
17036
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1617
17037
  msgid "If the product is downloadable."
17038
  msgstr ""
17039
 
17040
  #: includes/api/class-wc-rest-products-controller.php:895
17041
  #: includes/api/v1/class-wc-rest-products-controller.php:1922
17042
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1660
17043
  msgid "Product external URL. Only for external products."
17044
  msgstr ""
17045
 
17046
  #: includes/api/class-wc-rest-products-controller.php:901
17047
  #: includes/api/v1/class-wc-rest-products-controller.php:1928
17048
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1666
17049
  msgid "Product external button text. Only for external products."
17050
  msgstr ""
17051
 
17052
  #: includes/api/class-wc-rest-products-controller.php:918
17053
  #: includes/api/v1/class-wc-rest-products-controller.php:1945
17054
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1683
17055
  msgid "Stock management at product level."
17056
  msgstr ""
17057
 
17058
  #: includes/api/class-wc-rest-products-controller.php:949
17059
  #: includes/api/v1/class-wc-rest-products-controller.php:1975
17060
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1713
17061
  msgid "Shows if the product is on backordered."
17062
  msgstr ""
17063
 
17064
  #: includes/api/class-wc-rest-products-controller.php:955
17065
  #: includes/api/v1/class-wc-rest-products-controller.php:1981
17066
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1719
17067
  msgid "Allow one item to be bought in a single order."
17068
  msgstr ""
17069
 
17070
  #: includes/api/class-wc-rest-products-controller.php:962
17071
  #: includes/api/v1/class-wc-rest-products-controller.php:1988
17072
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1726
17073
  #. translators: %s: weight unit
17074
  msgid "Product weight (%s)."
17075
  msgstr ""
17076
 
17077
  #: includes/api/class-wc-rest-products-controller.php:967
17078
  #: includes/api/v1/class-wc-rest-products-controller.php:1993
17079
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1731
17080
  msgid "Product dimensions."
17081
  msgstr ""
17082
 
17083
  #: includes/api/class-wc-rest-products-controller.php:973
17084
  #: includes/api/v1/class-wc-rest-products-controller.php:1999
17085
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1737
17086
  #. translators: %s: dimension unit
17087
  msgid "Product length (%s)."
17088
  msgstr ""
17089
 
17090
  #: includes/api/class-wc-rest-products-controller.php:979
17091
  #: includes/api/v1/class-wc-rest-products-controller.php:2005
17092
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1743
17093
  #. translators: %s: dimension unit
17094
  msgid "Product width (%s)."
17095
  msgstr ""
17096
 
17097
  #: includes/api/class-wc-rest-products-controller.php:985
17098
  #: includes/api/v1/class-wc-rest-products-controller.php:2011
17099
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1749
17100
  #. translators: %s: dimension unit
17101
  msgid "Product height (%s)."
17102
  msgstr ""
17103
 
17104
  #: includes/api/class-wc-rest-products-controller.php:992
17105
  #: includes/api/v1/class-wc-rest-products-controller.php:2018
17106
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1756
17107
  msgid "Shows if the product need to be shipped."
17108
  msgstr ""
17109
 
17110
  #: includes/api/class-wc-rest-products-controller.php:998
17111
  #: includes/api/v1/class-wc-rest-products-controller.php:2024
17112
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1762
17113
  msgid "Shows whether or not the product shipping is taxable."
17114
  msgstr ""
17115
 
17116
  #: includes/api/class-wc-rest-products-controller.php:1015
17117
  #: includes/api/v1/class-wc-rest-products-controller.php:2041
17118
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1779
17119
  msgid "Allow reviews."
17120
  msgstr ""
17121
 
17122
  #: includes/api/class-wc-rest-products-controller.php:1021
17123
  #: includes/api/v1/class-wc-rest-products-controller.php:2047
17124
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1785
17125
  msgid "Reviews average rating."
17126
  msgstr ""
17127
 
17128
  #: includes/api/class-wc-rest-products-controller.php:1027
17129
  #: includes/api/v1/class-wc-rest-products-controller.php:2053
17130
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1791
17131
  msgid "Amount of reviews that the product have."
17132
  msgstr ""
17133
 
17134
  #: includes/api/class-wc-rest-products-controller.php:1033
17135
  #: includes/api/v1/class-wc-rest-products-controller.php:2059
17136
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1797
17137
  msgid "List of related products IDs."
17138
  msgstr ""
17139
 
17140
  #: includes/api/class-wc-rest-products-controller.php:1042
17141
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1806
17142
  msgid "List of up-sell products IDs."
17143
  msgstr ""
17144
 
17145
  #: includes/api/class-wc-rest-products-controller.php:1050
17146
  #: includes/api/v1/class-wc-rest-products-controller.php:2076
17147
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1814
17148
  msgid "List of cross-sell products IDs."
17149
  msgstr ""
17150
 
17151
  #: includes/api/class-wc-rest-products-controller.php:1058
17152
  #: includes/api/v1/class-wc-rest-products-controller.php:2084
17153
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1822
17154
  msgid "Product parent ID."
17155
  msgstr ""
17156
 
17157
  #: includes/api/class-wc-rest-products-controller.php:1063
17158
  #: includes/api/v1/class-wc-rest-products-controller.php:2089
17159
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1827
17160
  msgid "Optional note to send the customer after purchase."
17161
  msgstr ""
17162
 
17163
  #: includes/api/class-wc-rest-products-controller.php:1068
17164
  #: includes/api/v1/class-wc-rest-products-controller.php:2094
17165
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1832
17166
  msgid "List of categories."
17167
  msgstr ""
17168
 
17169
  #: includes/api/class-wc-rest-products-controller.php:1075
17170
  #: includes/api/v1/class-wc-rest-products-controller.php:2101
17171
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1839
17172
  msgid "Category ID."
17173
  msgstr ""
17174
 
17175
  #: includes/api/class-wc-rest-products-controller.php:1086
17176
  #: includes/api/v1/class-wc-rest-products-controller.php:2112
17177
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1850
17178
  msgid "Category slug."
17179
  msgstr ""
17180
 
17181
  #: includes/api/class-wc-rest-products-controller.php:1095
17182
  #: includes/api/v1/class-wc-rest-products-controller.php:2121
17183
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1859
17184
  msgid "List of tags."
17185
  msgstr ""
17186
 
17187
  #: includes/api/class-wc-rest-products-controller.php:1102
17188
  #: includes/api/v1/class-wc-rest-products-controller.php:2128
17189
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1866
17190
  msgid "Tag ID."
17191
  msgstr ""
17192
 
17193
  #: includes/api/class-wc-rest-products-controller.php:1107
17194
  #: includes/api/v1/class-wc-rest-product-tags-controller.php:100
17195
  #: includes/api/v1/class-wc-rest-products-controller.php:2133
17196
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1871
17197
  msgid "Tag name."
17198
  msgstr ""
17199
 
17200
  #: includes/api/class-wc-rest-products-controller.php:1113
17201
  #: includes/api/v1/class-wc-rest-products-controller.php:2139
17202
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1877
17203
  msgid "Tag slug."
17204
  msgstr ""
17205
 
17206
  #: includes/api/class-wc-rest-products-controller.php:1122
17207
  #: includes/api/v1/class-wc-rest-products-controller.php:2148
17208
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1886
17209
  msgid "List of images."
17210
  msgstr ""
17211
 
17212
  #: includes/api/class-wc-rest-products-controller.php:1194
17213
  #: includes/api/v1/class-wc-rest-products-controller.php:2213
17214
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1963
17215
  msgid "Attribute position."
17216
  msgstr ""
17217
 
17218
  #: includes/api/class-wc-rest-products-controller.php:1199
17219
  #: includes/api/v1/class-wc-rest-products-controller.php:2218
17220
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1968
17221
  msgid ""
17222
  "Define if the attribute is visible on the \"Additional information\" tab in "
17223
  "the product's page."
17225
 
17226
  #: includes/api/class-wc-rest-products-controller.php:1205
17227
  #: includes/api/v1/class-wc-rest-products-controller.php:2224
17228
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1974
17229
  msgid "Define if the attribute can be used as variation."
17230
  msgstr ""
17231
 
17232
  #: includes/api/class-wc-rest-products-controller.php:1211
17233
  #: includes/api/v1/class-wc-rest-products-controller.php:2230
17234
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1980
17235
  msgid "List of available term names of the attribute."
17236
  msgstr ""
17237
 
17238
  #: includes/api/class-wc-rest-products-controller.php:1222
17239
  #: includes/api/v1/class-wc-rest-products-controller.php:2238
17240
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1991
17241
  msgid "Defaults variation attributes."
17242
  msgstr ""
17243
 
17244
  #: includes/api/class-wc-rest-products-controller.php:1247
17245
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2016
17246
  msgid "List of variations IDs."
17247
  msgstr ""
17248
 
17249
  #: includes/api/class-wc-rest-products-controller.php:1256
17250
  #: includes/api/v1/class-wc-rest-products-controller.php:2555
17251
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2025
17252
  msgid "List of grouped products ID."
17253
  msgstr ""
17254
 
17515
  #: includes/api/legacy/v3/class-wc-api-products.php:2125
17516
  #: includes/api/v1/class-wc-rest-products-controller.php:313
17517
  #: includes/api/v1/class-wc-rest-products-controller.php:314
17518
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:420
17519
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:421
17520
+ #: includes/wc-product-functions.php:317
17521
  msgid "Placeholder"
17522
  msgstr ""
17523
 
17581
  #: includes/api/legacy/v2/class-wc-api-products.php:455
17582
  #: includes/api/legacy/v2/class-wc-api-resource.php:382
17583
  #: includes/api/legacy/v3/class-wc-api-products.php:514
17584
+ #: includes/api/legacy/v3/class-wc-api-products.php:3005
17585
  #: includes/api/legacy/v3/class-wc-api-resource.php:384
17586
  msgid "This %s cannot be deleted"
17587
  msgstr ""
17596
 
17597
  #: includes/api/legacy/v1/class-wc-api-resource.php:333
17598
  #: includes/api/legacy/v2/class-wc-api-products.php:468
17599
+ #: includes/api/legacy/v2/class-wc-api-products.php:2173
17600
  #: includes/api/legacy/v2/class-wc-api-resource.php:390
17601
  #: includes/api/legacy/v3/class-wc-api-products.php:527
17602
  #: includes/api/legacy/v3/class-wc-api-products.php:871
17603
  #: includes/api/legacy/v3/class-wc-api-products.php:1063
17604
+ #: includes/api/legacy/v3/class-wc-api-products.php:2734
17605
+ #: includes/api/legacy/v3/class-wc-api-products.php:3012
17606
+ #: includes/api/legacy/v3/class-wc-api-products.php:3323
17607
  #: includes/api/legacy/v3/class-wc-api-resource.php:394
17608
  #: includes/api/legacy/v3/class-wc-api-taxes.php:354
17609
  #: includes/api/legacy/v3/class-wc-api-taxes.php:665
17638
  #: includes/api/legacy/v2/class-wc-api-coupons.php:226
17639
  #: includes/api/legacy/v2/class-wc-api-customers.php:363
17640
  #: includes/api/legacy/v2/class-wc-api-products.php:228
17641
+ #: includes/api/legacy/v2/class-wc-api-products.php:1929
17642
  #: includes/api/legacy/v2/class-wc-api-server.php:430
17643
  #: includes/api/legacy/v3/class-wc-api-coupons.php:224
17644
  #: includes/api/legacy/v3/class-wc-api-customers.php:364
17645
  #: includes/api/legacy/v3/class-wc-api-products.php:277
17646
+ #: includes/api/legacy/v3/class-wc-api-products.php:2487
17647
+ #: includes/api/legacy/v3/class-wc-api-products.php:2886
17648
  #: includes/api/legacy/v3/class-wc-api-server.php:431
17649
  #: includes/api/legacy/v3/class-wc-api-taxes.php:575
17650
  #: includes/class-wc-auth.php:171
17658
  #: includes/api/legacy/v2/class-wc-api-orders.php:1285
17659
  #: includes/api/legacy/v2/class-wc-api-orders.php:1579
17660
  #: includes/api/legacy/v2/class-wc-api-products.php:214
17661
+ #: includes/api/legacy/v2/class-wc-api-products.php:1967
17662
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:171
17663
  #: includes/api/legacy/v3/class-wc-api-coupons.php:210
17664
  #: includes/api/legacy/v3/class-wc-api-customers.php:350
17668
  #: includes/api/legacy/v3/class-wc-api-products.php:263
17669
  #: includes/api/legacy/v3/class-wc-api-products.php:707
17670
  #: includes/api/legacy/v3/class-wc-api-products.php:964
17671
+ #: includes/api/legacy/v3/class-wc-api-products.php:2525
17672
+ #: includes/api/legacy/v3/class-wc-api-products.php:2866
17673
+ #: includes/api/legacy/v3/class-wc-api-products.php:3209
17674
  #: includes/api/legacy/v3/class-wc-api-taxes.php:184
17675
  #: includes/api/legacy/v3/class-wc-api-taxes.php:564
17676
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:171
17695
  #: includes/api/legacy/v2/class-wc-api-orders.php:1344
17696
  #: includes/api/legacy/v2/class-wc-api-orders.php:1658
17697
  #: includes/api/legacy/v2/class-wc-api-products.php:323
17698
+ #: includes/api/legacy/v2/class-wc-api-products.php:2050
17699
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:242
17700
  #: includes/api/legacy/v3/class-wc-api-coupons.php:322
17701
  #: includes/api/legacy/v3/class-wc-api-customers.php:405
17705
  #: includes/api/legacy/v3/class-wc-api-products.php:377
17706
  #: includes/api/legacy/v3/class-wc-api-products.php:784
17707
  #: includes/api/legacy/v3/class-wc-api-products.php:1009
17708
+ #: includes/api/legacy/v3/class-wc-api-products.php:2609
17709
+ #: includes/api/legacy/v3/class-wc-api-products.php:2931
17710
+ #: includes/api/legacy/v3/class-wc-api-products.php:3267
17711
  #: includes/api/legacy/v3/class-wc-api-taxes.php:254
17712
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:242
17713
  msgid "No %1$s data specified to edit %1$s"
17723
  #: includes/api/legacy/v2/class-wc-api-coupons.php:521
17724
  #: includes/api/legacy/v2/class-wc-api-customers.php:784
17725
  #: includes/api/legacy/v2/class-wc-api-orders.php:1775
17726
+ #: includes/api/legacy/v2/class-wc-api-products.php:2246
17727
  #: includes/api/legacy/v3/class-wc-api-coupons.php:521
17728
  #: includes/api/legacy/v3/class-wc-api-customers.php:774
17729
  #: includes/api/legacy/v3/class-wc-api-orders.php:1820
17730
+ #: includes/api/legacy/v3/class-wc-api-products.php:3059
17731
  #: includes/api/legacy/v3/class-wc-api-taxes.php:457
17732
  msgid "No %1$s data specified to create/edit %1$s"
17733
  msgstr ""
17777
  #: includes/api/legacy/v2/class-wc-api-orders.php:844
17778
  #: includes/api/legacy/v3/class-wc-api-orders.php:888
17779
  #: includes/api/v1/class-wc-rest-orders-controller.php:777
17780
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:781
17781
  msgid "Order item ID provided is not associated with order."
17782
  msgstr ""
17783
 
17824
  #: includes/api/legacy/v2/class-wc-api-orders.php:1036
17825
  #: includes/api/legacy/v3/class-wc-api-orders.php:1081
17826
  #: includes/api/v1/class-wc-rest-orders-controller.php:693
17827
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:696
17828
  msgid "Shipping method ID is required."
17829
  msgstr ""
17830
 
17940
 
17941
  #: includes/api/legacy/v2/class-wc-api-orders.php:1628
17942
  #: includes/api/legacy/v3/class-wc-api-orders.php:1673
17943
+ #: includes/wc-order-functions.php:654
17944
  msgid ""
17945
  "An error occurred while attempting to create the refund using the payment "
17946
  "gateway API."
17987
  msgid "The SKU already exists on another product."
17988
  msgstr ""
17989
 
17990
+ #: includes/api/legacy/v2/class-wc-api-products.php:1841
17991
+ #: includes/api/legacy/v2/class-wc-api-products.php:1887
17992
+ #: includes/api/legacy/v3/class-wc-api-products.php:2399
17993
+ #: includes/api/legacy/v3/class-wc-api-products.php:2445
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17994
  msgid "You do not have permission to read product attributes"
17995
  msgstr ""
17996
 
17997
+ #: includes/api/legacy/v2/class-wc-api-products.php:1882
17998
+ #: includes/api/legacy/v3/class-wc-api-products.php:2440
17999
+ #: includes/api/legacy/v3/class-wc-api-products.php:2818
18000
  msgid "Invalid product attribute ID"
18001
  msgstr ""
18002
 
18003
+ #: includes/api/legacy/v2/class-wc-api-products.php:1897
18004
+ #: includes/api/legacy/v2/class-wc-api-products.php:2145
18005
+ #: includes/api/legacy/v3/class-wc-api-products.php:2455
18006
+ #: includes/api/legacy/v3/class-wc-api-products.php:2705
18007
+ #: includes/api/legacy/v3/class-wc-api-products.php:2760
18008
+ #: includes/api/legacy/v3/class-wc-api-products.php:2829
18009
+ #: includes/api/legacy/v3/class-wc-api-products.php:2879
18010
+ #: includes/api/legacy/v3/class-wc-api-products.php:2945
18011
+ #: includes/api/legacy/v3/class-wc-api-products.php:2998
18012
  msgid "A product attribute with the provided ID could not be found"
18013
  msgstr ""
18014
 
18015
+ #: includes/api/legacy/v2/class-wc-api-products.php:1933
18016
+ #: includes/api/legacy/v3/class-wc-api-products.php:2491
18017
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:567
18018
  #: includes/wc-attribute-functions.php:449
18019
  #. translators: %s: attribute slug
18020
  msgid "Slug \"%s\" is too long (28 characters max). Shorten it, please."
18021
  msgstr ""
18022
 
18023
+ #: includes/api/legacy/v2/class-wc-api-products.php:1935
18024
+ #: includes/api/legacy/v3/class-wc-api-products.php:2493
18025
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:569
18026
  #: includes/wc-attribute-functions.php:452
18027
  #. translators: %s: attribute slug
18028
  msgid "Slug \"%s\" is not allowed because it is a reserved term. Change it, please."
18029
  msgstr ""
18030
 
18031
+ #: includes/api/legacy/v2/class-wc-api-products.php:1937
18032
+ #: includes/api/legacy/v3/class-wc-api-products.php:2495
18033
  #: includes/api/v1/class-wc-rest-product-attributes-controller.php:571
18034
  #: includes/wc-attribute-functions.php:455
18035
  #. translators: %s: attribute slug
18036
  msgid "Slug \"%s\" is already in use. Change it, please."
18037
  msgstr ""
18038
 
18039
+ #: includes/api/legacy/v2/class-wc-api-products.php:1942
18040
+ #: includes/api/legacy/v3/class-wc-api-products.php:2500
18041
  msgid ""
18042
  "Invalid product attribute type - the product attribute type must be any of "
18043
  "these: %s"
18044
  msgstr ""
18045
 
18046
+ #: includes/api/legacy/v2/class-wc-api-products.php:1947
18047
+ #: includes/api/legacy/v3/class-wc-api-products.php:2505
18048
  msgid ""
18049
  "Invalid product attribute order_by type - the product attribute order_by "
18050
  "type must be any of these: %s"
18051
  msgstr ""
18052
 
18053
+ #: includes/api/legacy/v2/class-wc-api-products.php:1974
18054
+ #: includes/api/legacy/v3/class-wc-api-products.php:2532
18055
+ #: includes/api/legacy/v3/class-wc-api-products.php:2873
18056
  msgid "You do not have permission to create product attributes"
18057
  msgstr ""
18058
 
18059
+ #: includes/api/legacy/v2/class-wc-api-products.php:2058
18060
+ #: includes/api/legacy/v3/class-wc-api-products.php:2617
18061
+ #: includes/api/legacy/v3/class-wc-api-products.php:2939
18062
  msgid "You do not have permission to edit product attributes"
18063
  msgstr ""
18064
 
18065
+ #: includes/api/legacy/v2/class-wc-api-products.php:2104
18066
+ #: includes/api/legacy/v3/class-wc-api-products.php:2663
18067
  msgid "Could not edit the attribute"
18068
  msgstr ""
18069
 
18070
+ #: includes/api/legacy/v2/class-wc-api-products.php:2133
18071
+ #: includes/api/legacy/v3/class-wc-api-products.php:2693
18072
  msgid "You do not have permission to delete product attributes"
18073
  msgstr ""
18074
 
18075
+ #: includes/api/legacy/v2/class-wc-api-products.php:2155
18076
+ #: includes/api/legacy/v3/class-wc-api-products.php:2715
18077
  msgid "Could not delete the attribute"
18078
  msgstr ""
18079
 
18080
+ #: includes/api/legacy/v2/class-wc-api-products.php:2196
18081
  msgid "Invalid product SKU"
18082
  msgstr ""
18083
 
18188
  msgid "Could not delete the tag"
18189
  msgstr ""
18190
 
18191
+ #: includes/api/legacy/v3/class-wc-api-products.php:2754
18192
+ #: includes/api/legacy/v3/class-wc-api-products.php:2823
18193
  msgid "You do not have permission to read product attribute terms"
18194
  msgstr ""
18195
 
18196
+ #: includes/api/legacy/v3/class-wc-api-products.php:2835
18197
  msgid "A product attribute term with the provided ID could not be found"
18198
  msgstr ""
18199
 
18200
+ #: includes/api/legacy/v3/class-wc-api-products.php:2992
18201
  msgid "You do not have permission to delete product attribute terms"
18202
  msgstr ""
18203
 
18204
+ #: includes/api/legacy/v3/class-wc-api-products.php:3135
18205
+ #: includes/api/legacy/v3/class-wc-api-products.php:3170
18206
  msgid "You do not have permission to read product shipping classes"
18207
  msgstr ""
18208
 
18209
+ #: includes/api/legacy/v3/class-wc-api-products.php:3165
18210
  msgid "Invalid product shipping class ID"
18211
  msgstr ""
18212
 
18213
+ #: includes/api/legacy/v3/class-wc-api-products.php:3176
18214
  msgid "A product shipping class with the provided ID could not be found"
18215
  msgstr ""
18216
 
18217
+ #: includes/api/legacy/v3/class-wc-api-products.php:3214
18218
  msgid "You do not have permission to create product shipping classes"
18219
  msgstr ""
18220
 
18221
+ #: includes/api/legacy/v3/class-wc-api-products.php:3232
18222
  msgid "Product shipping class parent is invalid"
18223
  msgstr ""
18224
 
18225
+ #: includes/api/legacy/v3/class-wc-api-products.php:3275
18226
  msgid "You do not have permission to edit product shipping classes"
18227
  msgstr ""
18228
 
18229
+ #: includes/api/legacy/v3/class-wc-api-products.php:3287
18230
  msgid "Could not edit the shipping class"
18231
  msgstr ""
18232
 
18233
+ #: includes/api/legacy/v3/class-wc-api-products.php:3312
18234
  msgid "You do not have permission to delete product shipping classes"
18235
  msgstr ""
18236
 
18237
+ #: includes/api/legacy/v3/class-wc-api-products.php:3318
18238
  msgid "Could not delete the shipping class"
18239
  msgstr ""
18240
 
18300
  #: includes/api/v1/class-wc-rest-orders-controller.php:1538
18301
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:61
18302
  #: includes/api/v2/class-wc-rest-coupons-v2-controller.php:341
18303
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1585
18304
  msgid "Coupon code."
18305
  msgstr ""
18306
 
18452
  #: includes/api/v1/class-wc-rest-customer-downloads-controller.php:199
18453
  #: includes/api/v1/class-wc-rest-orders-controller.php:937
18454
  #: includes/api/v2/class-wc-rest-customer-downloads-v2-controller.php:117
18455
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:861
18456
  msgid "Order key."
18457
  msgstr ""
18458
 
18581
  msgstr ""
18582
 
18583
  #: includes/api/v1/class-wc-rest-order-notes-controller.php:295
18584
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:458
18585
  msgid "Webhooks do not support trashing."
18586
  msgstr ""
18587
 
18617
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:366
18618
  #: includes/api/v1/class-wc-rest-orders-controller.php:1208
18619
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:420
18620
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1177
18621
  msgid "Line items data."
18622
  msgstr ""
18623
 
18628
  #: includes/api/v1/class-wc-rest-orders-controller.php:1461
18629
  #: includes/api/v1/class-wc-rest-orders-controller.php:1532
18630
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:428
18631
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1184
18632
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1312
18633
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1390
18634
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1481
18635
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1579
18636
  msgid "Item ID."
18637
  msgstr ""
18638
 
18639
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:386
18640
  #: includes/api/v1/class-wc-rest-orders-controller.php:1227
18641
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:546
18642
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1289
18643
  msgid "Product SKU."
18644
  msgstr ""
18645
 
18647
  #: includes/api/v1/class-wc-rest-orders-controller.php:1233
18648
  #: includes/api/v1/class-wc-rest-report-top-sellers-controller.php:158
18649
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:440
18650
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1195
18651
  #: includes/cli/class-wc-cli-runner.php:110
18652
  msgid "Product ID."
18653
  msgstr ""
18655
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:398
18656
  #: includes/api/v1/class-wc-rest-orders-controller.php:1238
18657
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:446
18658
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1200
18659
  msgid "Variation ID, if applicable."
18660
  msgstr ""
18661
 
18662
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:404
18663
  #: includes/api/v1/class-wc-rest-orders-controller.php:1243
18664
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:452
18665
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1205
18666
  msgid "Quantity ordered."
18667
  msgstr ""
18668
 
18669
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:410
18670
  #: includes/api/v1/class-wc-rest-orders-controller.php:1248
18671
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:458
18672
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1210
18673
  msgid "Tax class of product."
18674
  msgstr ""
18675
 
18676
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:416
18677
  #: includes/api/v1/class-wc-rest-orders-controller.php:1254
18678
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:552
18679
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1295
18680
  msgid "Product price."
18681
  msgstr ""
18682
 
18683
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:422
18684
  #: includes/api/v1/class-wc-rest-orders-controller.php:1260
18685
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:464
18686
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1215
18687
  msgid "Line subtotal (before discounts)."
18688
  msgstr ""
18689
 
18690
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:428
18691
  #: includes/api/v1/class-wc-rest-orders-controller.php:1265
18692
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:470
18693
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1220
18694
  msgid "Line subtotal tax (before discounts)."
18695
  msgstr ""
18696
 
18699
  #: includes/api/v1/class-wc-rest-orders-controller.php:1417
18700
  #: includes/api/v1/class-wc-rest-orders-controller.php:1483
18701
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:476
18702
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1226
18703
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1411
18704
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1503
18705
  msgid "Line total (after discounts)."
18706
  msgstr ""
18707
 
18710
  #: includes/api/v1/class-wc-rest-orders-controller.php:1422
18711
  #: includes/api/v1/class-wc-rest-orders-controller.php:1488
18712
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:482
18713
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1231
18714
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1416
18715
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1508
18716
  msgid "Line total tax (after discounts)."
18717
  msgstr ""
18718
 
18721
  #: includes/api/v1/class-wc-rest-orders-controller.php:1428
18722
  #: includes/api/v1/class-wc-rest-orders-controller.php:1493
18723
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:488
18724
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1237
18725
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1422
18726
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1514
18727
  msgid "Line taxes."
18728
  msgstr ""
18729
 
18733
  #: includes/api/v1/class-wc-rest-orders-controller.php:1436
18734
  #: includes/api/v1/class-wc-rest-orders-controller.php:1501
18735
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:496
18736
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1245
18737
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1324
18738
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1430
18739
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1522
18740
  msgid "Tax rate ID."
18741
  msgstr ""
18742
 
18745
  #: includes/api/v1/class-wc-rest-orders-controller.php:1442
18746
  #: includes/api/v1/class-wc-rest-orders-controller.php:1507
18747
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:502
18748
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1250
18749
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1436
18750
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1528
18751
  msgid "Tax total."
18752
  msgstr ""
18753
 
18755
  #: includes/api/v1/class-wc-rest-orders-controller.php:1300
18756
  #: includes/api/v1/class-wc-rest-orders-controller.php:1513
18757
  #: includes/api/v2/class-wc-rest-order-refunds-v2-controller.php:508
18758
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1255
18759
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1534
18760
  msgid "Tax subtotal."
18761
  msgstr ""
18762
 
18772
 
18773
  #: includes/api/v1/class-wc-rest-order-refunds-controller.php:522
18774
  #: includes/api/v1/class-wc-rest-orders-controller.php:1621
18775
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1700
18776
  msgid "Number of decimal points to use in each resource."
18777
  msgstr ""
18778
 
18779
  #: includes/api/v1/class-wc-rest-orders-controller.php:621
18780
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:604
18781
  msgid "Product ID or SKU is required."
18782
  msgstr ""
18783
 
18784
  #: includes/api/v1/class-wc-rest-orders-controller.php:716
18785
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:720
18786
  msgid "Fee name is required."
18787
  msgstr ""
18788
 
18789
  #: includes/api/v1/class-wc-rest-orders-controller.php:925
18790
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:850
18791
  msgid "Parent order ID."
18792
  msgstr ""
18793
 
18794
  #: includes/api/v1/class-wc-rest-orders-controller.php:930
18795
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:879
18796
  msgid "Order status."
18797
  msgstr ""
18798
 
18799
  #: includes/api/v1/class-wc-rest-orders-controller.php:943
18800
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:855
18801
  msgid "Order number."
18802
  msgstr ""
18803
 
18804
  #: includes/api/v1/class-wc-rest-orders-controller.php:949
18805
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:886
18806
  msgid "Currency the order was created with, in ISO format."
18807
  msgstr ""
18808
 
18809
  #: includes/api/v1/class-wc-rest-orders-controller.php:956
18810
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:873
18811
  msgid "Version of WooCommerce which last updated the order."
18812
  msgstr ""
18813
 
18814
  #: includes/api/v1/class-wc-rest-orders-controller.php:962
18815
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:959
18816
  msgid "True the prices included tax during checkout."
18817
  msgstr ""
18818
 
18819
  #: includes/api/v1/class-wc-rest-orders-controller.php:968
18820
  #: includes/api/v2/class-wc-rest-customers-v2-controller.php:136
18821
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:899
18822
  msgid "The date the order was created, as GMT."
18823
  msgstr ""
18824
 
18825
  #: includes/api/v1/class-wc-rest-orders-controller.php:974
18826
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:911
18827
  msgid "The date the order was last modified, as GMT."
18828
  msgstr ""
18829
 
18830
  #: includes/api/v1/class-wc-rest-orders-controller.php:980
18831
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:965
18832
  msgid "User ID who owns the order. 0 for guests."
18833
  msgstr ""
18834
 
18835
  #: includes/api/v1/class-wc-rest-orders-controller.php:986
18836
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:917
18837
  msgid "Total discount amount for the order."
18838
  msgstr ""
18839
 
18840
  #: includes/api/v1/class-wc-rest-orders-controller.php:992
18841
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:923
18842
  msgid "Total discount tax amount for the order."
18843
  msgstr ""
18844
 
18845
  #: includes/api/v1/class-wc-rest-orders-controller.php:998
18846
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:929
18847
  msgid "Total shipping amount for the order."
18848
  msgstr ""
18849
 
18850
  #: includes/api/v1/class-wc-rest-orders-controller.php:1004
18851
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:935
18852
  msgid "Total shipping tax amount for the order."
18853
  msgstr ""
18854
 
18855
  #: includes/api/v1/class-wc-rest-orders-controller.php:1010
18856
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:941
18857
  msgid "Sum of line item taxes only."
18858
  msgstr ""
18859
 
18860
  #: includes/api/v1/class-wc-rest-orders-controller.php:1016
18861
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:947
18862
  msgid "Grand total."
18863
  msgstr ""
18864
 
18865
  #: includes/api/v1/class-wc-rest-orders-controller.php:1022
18866
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:953
18867
  msgid "Sum of all taxes."
18868
  msgstr ""
18869
 
18870
  #: includes/api/v1/class-wc-rest-orders-controller.php:1028
18871
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:988
18872
  msgid "Billing address."
18873
  msgstr ""
18874
 
18875
  #: includes/api/v1/class-wc-rest-orders-controller.php:1073
18876
  #: includes/api/v1/class-wc-rest-orders-controller.php:1136
18877
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1033
18878
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1096
18879
  msgid "Country code in ISO 3166-1 alpha-2 format."
18880
  msgstr ""
18881
 
18882
  #: includes/api/v1/class-wc-rest-orders-controller.php:1091
18883
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1051
18884
  msgid "Shipping address."
18885
  msgstr ""
18886
 
18887
  #: includes/api/v1/class-wc-rest-orders-controller.php:1143
18888
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1103
18889
  msgid "Payment method ID."
18890
  msgstr ""
18891
 
18892
  #: includes/api/v1/class-wc-rest-orders-controller.php:1148
18893
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1108
18894
  msgid "Payment method title."
18895
  msgstr ""
18896
 
18897
  #: includes/api/v1/class-wc-rest-orders-controller.php:1156
18898
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1659
18899
  msgid ""
18900
  "Define if the order is paid. It will set the status to processing and "
18901
  "reduce stock items."
18902
  msgstr ""
18903
 
18904
  #: includes/api/v1/class-wc-rest-orders-controller.php:1162
18905
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1116
18906
  msgid "Unique transaction ID."
18907
  msgstr ""
18908
 
18909
  #: includes/api/v1/class-wc-rest-orders-controller.php:1167
18910
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:971
18911
  msgid "Customer's IP address."
18912
  msgstr ""
18913
 
18914
  #: includes/api/v1/class-wc-rest-orders-controller.php:1173
18915
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:977
18916
  msgid "User agent of the customer."
18917
  msgstr ""
18918
 
18919
  #: includes/api/v1/class-wc-rest-orders-controller.php:1179
18920
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:867
18921
  msgid "Shows where the order was created."
18922
  msgstr ""
18923
 
18924
  #: includes/api/v1/class-wc-rest-orders-controller.php:1185
18925
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:983
18926
  msgid "Note left by customer during checkout."
18927
  msgstr ""
18928
 
18929
  #: includes/api/v1/class-wc-rest-orders-controller.php:1190
18930
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1133
18931
  msgid "The date the order was completed, in the site's timezone."
18932
  msgstr ""
18933
 
18934
  #: includes/api/v1/class-wc-rest-orders-controller.php:1196
18935
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1121
18936
  msgid "The date the order was paid, in the site's timezone."
18937
  msgstr ""
18938
 
18939
  #: includes/api/v1/class-wc-rest-orders-controller.php:1202
18940
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1145
18941
  msgid "MD5 hash of cart items to ensure orders are not modified."
18942
  msgstr ""
18943
 
18944
  #: includes/api/v1/class-wc-rest-orders-controller.php:1341
18945
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1304
18946
  msgid "Tax lines data."
18947
  msgstr ""
18948
 
18949
  #: includes/api/v1/class-wc-rest-orders-controller.php:1355
18950
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1318
18951
  msgid "Tax rate code."
18952
  msgstr ""
18953
 
18954
  #: includes/api/v1/class-wc-rest-orders-controller.php:1367
18955
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1330
18956
  msgid "Tax rate label."
18957
  msgstr ""
18958
 
18959
  #: includes/api/v1/class-wc-rest-orders-controller.php:1373
18960
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1336
18961
  msgid "Show if is a compound tax rate."
18962
  msgstr ""
18963
 
18964
  #: includes/api/v1/class-wc-rest-orders-controller.php:1379
18965
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1342
18966
  msgid "Tax total (not including shipping taxes)."
18967
  msgstr ""
18968
 
18969
  #: includes/api/v1/class-wc-rest-orders-controller.php:1385
18970
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1348
18971
  msgid "Shipping tax total."
18972
  msgstr ""
18973
 
18974
  #: includes/api/v1/class-wc-rest-orders-controller.php:1394
18975
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1383
18976
  msgid "Shipping lines data."
18977
  msgstr ""
18978
 
18979
  #: includes/api/v1/class-wc-rest-orders-controller.php:1407
18980
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1396
18981
  msgid "Shipping method name."
18982
  msgstr ""
18983
 
18984
  #: includes/api/v1/class-wc-rest-orders-controller.php:1412
18985
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1401
18986
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:47
18987
  #: includes/api/v2/class-wc-rest-shipping-zone-methods-v2-controller.php:464
18988
  msgid "Shipping method ID."
18989
  msgstr ""
18990
 
18991
  #: includes/api/v1/class-wc-rest-orders-controller.php:1454
18992
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1474
18993
  msgid "Fee lines data."
18994
  msgstr ""
18995
 
18996
  #: includes/api/v1/class-wc-rest-orders-controller.php:1467
18997
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1487
18998
  msgid "Fee name."
18999
  msgstr ""
19000
 
19001
  #: includes/api/v1/class-wc-rest-orders-controller.php:1472
19002
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1492
19003
  msgid "Tax class of fee."
19004
  msgstr ""
19005
 
19006
  #: includes/api/v1/class-wc-rest-orders-controller.php:1477
19007
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1497
19008
  msgid "Tax status of fee."
19009
  msgstr ""
19010
 
19011
  #: includes/api/v1/class-wc-rest-orders-controller.php:1525
19012
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1572
19013
  msgid "Coupons line data."
19014
  msgstr ""
19015
 
19016
  #: includes/api/v1/class-wc-rest-orders-controller.php:1543
19017
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1590
19018
  msgid "Discount total."
19019
  msgstr ""
19020
 
19021
  #: includes/api/v1/class-wc-rest-orders-controller.php:1548
19022
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1595
19023
  msgid "Discount total tax."
19024
  msgstr ""
19025
 
19026
  #: includes/api/v1/class-wc-rest-orders-controller.php:1557
19027
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1630
19028
  msgid "List of refunds."
19029
  msgstr ""
19030
 
19031
  #: includes/api/v1/class-wc-rest-orders-controller.php:1565
19032
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1638
19033
  #: includes/cli/class-wc-cli-runner.php:113
19034
  msgid "Refund ID."
19035
  msgstr ""
19036
 
19037
  #: includes/api/v1/class-wc-rest-orders-controller.php:1571
19038
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1644
19039
  msgid "Refund reason."
19040
  msgstr ""
19041
 
19042
  #: includes/api/v1/class-wc-rest-orders-controller.php:1577
19043
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1650
19044
  msgid "Refund total."
19045
  msgstr ""
19046
 
19047
  #: includes/api/v1/class-wc-rest-orders-controller.php:1608
19048
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1687
19049
  msgid "Limit result set to orders assigned a specific customer."
19050
  msgstr ""
19051
 
19052
  #: includes/api/v1/class-wc-rest-orders-controller.php:1614
19053
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1693
19054
  msgid "Limit result set to orders assigned a specific product."
19055
  msgstr ""
19056
 
19148
  #: includes/api/v1/class-wc-rest-products-controller.php:2188
19149
  #: includes/api/v1/class-wc-rest-products-controller.php:2520
19150
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:935
19151
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1938
19152
  msgid "Image position. 0 means that the image is featured."
19153
  msgstr ""
19154
 
19172
  msgstr ""
19173
 
19174
  #: includes/api/v1/class-wc-rest-products-controller.php:2583
19175
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2078
19176
  msgid "Limit result set to products with a specific slug."
19177
  msgstr ""
19178
 
19179
  #: includes/api/v1/class-wc-rest-products-controller.php:2589
19180
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2084
19181
  msgid "Limit result set to products assigned a specific status."
19182
  msgstr ""
19183
 
19184
  #: includes/api/v1/class-wc-rest-products-controller.php:2596
19185
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2091
19186
  msgid "Limit result set to products assigned a specific type."
19187
  msgstr ""
19188
 
19189
  #: includes/api/v1/class-wc-rest-products-controller.php:2603
19190
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2110
19191
  msgid "Limit result set to products assigned a specific category ID."
19192
  msgstr ""
19193
 
19194
  #: includes/api/v1/class-wc-rest-products-controller.php:2609
19195
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2116
19196
  msgid "Limit result set to products assigned a specific tag ID."
19197
  msgstr ""
19198
 
19199
  #: includes/api/v1/class-wc-rest-products-controller.php:2615
19200
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2122
19201
  msgid "Limit result set to products assigned a specific shipping class ID."
19202
  msgstr ""
19203
 
19206
  msgstr ""
19207
 
19208
  #: includes/api/v1/class-wc-rest-products-controller.php:2627
19209
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2134
19210
  msgid ""
19211
  "Limit result set to products with a specific attribute term ID (required an "
19212
  "assigned attribute)."
19405
 
19406
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:63
19407
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:636
19408
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:116
19409
  msgid "Webhook topic."
19410
  msgstr ""
19411
 
19418
  msgid "Webhook delivery URL must be a valid URL starting with http:// or https://."
19419
  msgstr ""
19420
 
19421
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:414
19422
+ msgid "Webhook status must be valid."
19423
+ msgstr ""
19424
+
19425
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:624
19426
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:104
19427
  msgid "A friendly name for the webhook."
19428
  msgstr ""
19429
 
19430
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:629
19431
  #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:109
19432
  msgid "Webhook status."
19433
  msgstr ""
19434
 
19435
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:641
19436
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:121
19437
  msgid "Webhook resource."
19438
  msgstr ""
19439
 
19440
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:647
19441
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:127
19442
  msgid "Webhook event."
19443
  msgstr ""
19444
 
19445
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:653
19446
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:133
19447
  msgid "WooCommerce action names associated with the webhook."
19448
  msgstr ""
19449
 
19450
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:662
19451
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:142
19452
  msgid "The URL where the webhook payload is delivered."
19453
  msgstr ""
19454
 
19455
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:669
19456
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:149
19457
  msgid ""
19458
  "Secret key used to generate a hash of the delivered webhook and provided in "
19459
  "the request headers. This will default to a MD5 hash from the current "
19461
  msgstr ""
19462
 
19463
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:674
19464
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:154
19465
  msgid "The date the webhook was created, in the site's timezone."
19466
  msgstr ""
19467
 
19468
  #: includes/api/v1/class-wc-rest-webhooks-controller.php:680
19469
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:166
19470
  msgid "The date the webhook was last modified, in the site's timezone."
19471
  msgstr ""
19472
 
19538
  msgid "When true, the payment gateway API is used to generate the refund."
19539
  msgstr ""
19540
 
19541
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:893
19542
  msgid "The date the order was created, in the site's timezone."
19543
  msgstr ""
19544
 
19545
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:905
19546
  msgid "The date the order was last modified, in the site's timezone."
19547
  msgstr ""
19548
 
19549
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1127
19550
  msgid "The date the order was paid, as GMT."
19551
  msgstr ""
19552
 
19553
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1139
19554
  msgid "The date the order was completed, as GMT."
19555
  msgstr ""
19556
 
19557
+ #: includes/api/v2/class-wc-rest-orders-v2-controller.php:1406
19558
  msgid "Shipping instance ID."
19559
  msgstr ""
19560
 
19563
  msgstr ""
19564
 
19565
  #: includes/api/v2/class-wc-rest-product-variations-v2-controller.php:723
19566
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:1582
19567
  msgid "End date of sale price, as GMT."
19568
  msgstr ""
19569
 
19571
  msgid "Define if the variation is visible on the product's page."
19572
  msgstr ""
19573
 
19574
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2098
19575
  msgid "Limit result set to products with specific SKU(s). Use commas to separate."
19576
  msgstr ""
19577
 
19578
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2104
19579
  msgid "Limit result set to featured products."
19580
  msgstr ""
19581
 
19582
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2128
19583
  msgid ""
19584
  "Limit result set to products with a specific attribute. Use the taxonomy "
19585
  "name/attribute slug."
19586
  msgstr ""
19587
 
19588
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2142
19589
  msgid "Limit result set to products with a specific tax class."
19590
  msgstr ""
19591
 
19592
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2151
19593
  msgid "Limit result set to products in stock or out of stock."
19594
  msgstr ""
19595
 
19596
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2157
19597
  msgid "Limit result set to products on sale."
19598
  msgstr ""
19599
 
19600
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2163
19601
  msgid "Limit result set to products based on a minimum price."
19602
  msgstr ""
19603
 
19604
+ #: includes/api/v2/class-wc-rest-products-v2-controller.php:2169
19605
  msgid "Limit result set to products based on a maximum price."
19606
  msgstr ""
19607
 
20240
  msgid "The date the webhook delivery was logged, as GMT."
20241
  msgstr ""
20242
 
20243
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:160
20244
  msgid "The date the webhook was created, as GMT."
20245
  msgstr ""
20246
 
20247
+ #: includes/api/v2/class-wc-rest-webhooks-v2-controller.php:172
20248
  msgid "The date the webhook was last modified, as GMT."
20249
  msgstr ""
20250
 
20396
  msgid "You do not have permission to access this page"
20397
  msgstr ""
20398
 
20399
+ #: includes/class-wc-auth.php:402
20400
+ #. translators: %s: error message
20401
+ msgid "Error: %s."
20402
+ msgstr ""
20403
+
20404
  #: includes/class-wc-auth.php:402
20405
  msgid "Access denied"
20406
  msgstr ""
20448
  msgid "Fee has already been added."
20449
  msgstr ""
20450
 
20451
+ #: includes/class-wc-cart-session.php:111
20452
  #. translators: %s: product name
20453
  msgid ""
20454
  "%s has been removed from your cart because it can no longer be purchased. "
20455
  "Please contact us if you need assistance."
20456
  msgstr ""
20457
 
20458
+ #: includes/class-wc-cart-session.php:117
20459
  #. translators: %1$s: product name. %2$s product permalink
20460
  msgid ""
20461
  "%1$s has been removed from your cart because it has since been modified. "
20462
  "You can add it back to your cart <a href=\"%2$s\">here</a>."
20463
  msgstr ""
20464
 
20465
+ #: includes/class-wc-cart-session.php:364
20466
  #. translators: %d item count
20467
  msgid ""
20468
  "%d item from your previous order is currently unavailable and could not be "
20473
  msgstr[0] ""
20474
  msgstr[1] ""
20475
 
20476
+ #: includes/class-wc-cart-session.php:377
20477
  msgid "The cart has been filled with the items from your previous order."
20478
  msgstr ""
20479
 
20501
  msgstr ""
20502
 
20503
  #: includes/class-wc-cart.php:1037 includes/class-wc-cart.php:1065
20504
+ #: includes/class-wc-frontend-scripts.php:549
20505
  #: includes/wc-cart-functions.php:123 includes/wc-template-functions.php:1969
20506
  #. translators: %s: product name
20507
  msgid "View cart"
20691
  msgid "(ex. tax)"
20692
  msgstr ""
20693
 
20694
+ #: includes/class-wc-countries.php:622
20695
  msgid "Apartment, suite, unit etc. (optional)"
20696
  msgstr ""
20697
 
20698
+ #: includes/class-wc-countries.php:624 includes/class-wc-countries.php:667
20699
  msgid "Apartment, suite, unit etc."
20700
  msgstr ""
20701
 
20702
+ #: includes/class-wc-countries.php:643
20703
  #: includes/customizer/class-wc-shop-customizer.php:677
20704
  msgid "Company name"
20705
  msgstr ""
20706
 
20707
+ #: includes/class-wc-countries.php:658
20708
  msgid "Street address"
20709
  msgstr ""
20710
 
20711
+ #: includes/class-wc-countries.php:660
20712
  #. translators: use local order of street name and house number.
20713
  msgid "House number and street name"
20714
  msgstr ""
20715
 
20716
+ #: includes/class-wc-countries.php:676
20717
  msgid "Town / City"
20718
  msgstr ""
20719
 
20720
+ #: includes/class-wc-countries.php:763 includes/class-wc-countries.php:807
20721
+ #: includes/class-wc-countries.php:837 includes/class-wc-countries.php:862
20722
+ #: includes/class-wc-countries.php:943 includes/class-wc-countries.php:982
20723
+ #: includes/class-wc-countries.php:1025 includes/class-wc-countries.php:1123
20724
+ #: includes/class-wc-countries.php:1163 includes/class-wc-countries.php:1219
20725
  msgid "Province"
20726
  msgstr ""
20727
 
20728
+ #: includes/class-wc-countries.php:776
20729
  msgid "Suburb"
20730
  msgstr ""
20731
 
20732
+ #: includes/class-wc-countries.php:779 includes/class-wc-countries.php:1030
20733
+ #: includes/class-wc-countries.php:1040 includes/class-wc-countries.php:1176
20734
  msgid "Postcode"
20735
  msgstr ""
20736
 
20737
+ #: includes/class-wc-countries.php:798 includes/class-wc-countries.php:1189
20738
  msgid "District"
20739
  msgstr ""
20740
 
20741
+ #: includes/class-wc-countries.php:845
20742
  msgid "Canton"
20743
  msgstr ""
20744
 
20745
+ #: includes/class-wc-countries.php:857 includes/class-wc-countries.php:933
20746
+ #: includes/class-wc-countries.php:1044
20747
  msgid "Region"
20748
  msgstr ""
20749
 
20750
+ #: includes/class-wc-countries.php:930
20751
  msgid "Town / District"
20752
  msgstr ""
20753
 
20754
+ #: includes/class-wc-countries.php:938 includes/class-wc-countries.php:952
20755
+ #: includes/class-wc-countries.php:1083 includes/class-wc-countries.php:1179
20756
  msgid "County"
20757
  msgstr ""
20758
 
20759
+ #: includes/class-wc-countries.php:949
20760
  msgid "Eircode"
20761
  msgstr ""
20762
 
20763
+ #: includes/class-wc-countries.php:987
20764
  msgid "Prefecture"
20765
  msgstr ""
20766
 
20767
+ #: includes/class-wc-countries.php:1057
20768
  msgid "State / Zone"
20769
  msgstr ""
20770
 
20771
+ #: includes/class-wc-countries.php:1131
20772
  msgid "Municipality"
20773
  msgstr ""
20774
 
20775
+ #: includes/class-wc-countries.php:1147
20776
  msgid "Municipality / District"
20777
  msgstr ""
20778
 
20779
+ #: includes/class-wc-countries.php:1168
20780
  msgid "ZIP"
20781
  msgstr ""
20782
 
20914
  #: includes/data-stores/abstract-wc-order-data-store-cpt.php:100
20915
  #: includes/shortcodes/class-wc-shortcode-checkout.php:210
20916
  #: includes/shortcodes/class-wc-shortcode-my-account.php:134
20917
+ #: includes/wc-order-functions.php:635
20918
  msgid "Invalid order."
20919
  msgstr ""
20920
 
21130
  msgid "Passwords do not match."
21131
  msgstr ""
21132
 
21133
+ #: includes/class-wc-frontend-scripts.php:474
21134
  msgid "Please select a rating"
21135
  msgstr ""
21136
 
21137
+ #: includes/class-wc-frontend-scripts.php:517
21138
  msgid "Error processing checkout. Please try again."
21139
  msgstr ""
21140
 
21141
+ #: includes/class-wc-frontend-scripts.php:524
21142
  #: includes/wc-template-functions.php:2475
21143
  msgid "required"
21144
  msgstr ""
21145
 
21146
+ #: includes/class-wc-frontend-scripts.php:525
21147
  #: includes/wc-template-functions.php:2477
21148
  msgid "optional"
21149
  msgstr ""
21150
 
21151
+ #: includes/class-wc-frontend-scripts.php:561
21152
  msgid ""
21153
  "Sorry, no products matched your selection. Please choose a different "
21154
  "combination."
21155
  msgstr ""
21156
 
21157
+ #: includes/class-wc-frontend-scripts.php:562
21158
  msgid "Please select some product options before adding this product to your cart."
21159
  msgstr ""
21160
 
21161
+ #: includes/class-wc-frontend-scripts.php:563
21162
  #: templates/single-product/add-to-cart/variation.php:23
21163
  msgid "Sorry, this product is unavailable. Please choose a different combination."
21164
  msgstr ""
21165
 
21166
+ #: includes/class-wc-frontend-scripts.php:585
21167
  msgid "Please enter a stronger password."
21168
  msgstr ""
21169
 
21170
+ #: includes/class-wc-install.php:371
21171
  msgid "Monthly"
21172
  msgstr ""
21173
 
21174
+ #: includes/class-wc-install.php:1182
21175
  msgid "View WooCommerce settings"
21176
  msgstr ""
21177
 
21178
+ #: includes/class-wc-install.php:1199
21179
  msgid "View WooCommerce documentation"
21180
  msgstr ""
21181
 
21182
+ #: includes/class-wc-install.php:1199
21183
  msgid "Docs"
21184
  msgstr ""
21185
 
21186
+ #: includes/class-wc-install.php:1200
21187
  msgid "View WooCommerce API docs"
21188
  msgstr ""
21189
 
21190
+ #: includes/class-wc-install.php:1200
21191
  msgid "API docs"
21192
  msgstr ""
21193
 
21194
+ #: includes/class-wc-install.php:1201
21195
  msgid "Visit premium customer support"
21196
  msgstr ""
21197
 
21198
+ #: includes/class-wc-install.php:1201
21199
  msgid "Premium support"
21200
  msgstr ""
21201
 
21202
+ #: includes/class-wc-install.php:1329 includes/class-wc-install.php:1432
21203
  #. translators: 1: plugin name, 2: error message, 3: URL to install plugin
21204
  #. manually.
21205
  #. translators: 1: theme slug, 2: error message, 3: URL to install theme
21209
  "manually by clicking here.</a>"
21210
  msgstr ""
21211
 
21212
+ #: includes/class-wc-install.php:1357
21213
  #. translators: 1: plugin name, 2: URL to WP plugin page.
21214
  msgid ""
21215
  "%1$s was installed but could not be activated. <a href=\"%2$s\">Please "
21254
  msgid "Payment complete event failed."
21255
  msgstr ""
21256
 
21257
+ #: includes/class-wc-order.php:173 includes/wc-cart-functions.php:320
21258
  #. translators: %s: taxes
21259
  #. translators: %s: tax information
21260
  msgid "(includes %s)"
22156
  msgid "Account details"
22157
  msgstr ""
22158
 
22159
+ #: includes/class-wc-regenerate-images-request.php:107
22160
  #. translators: %s: ID of the attachment.
22161
  msgid "Regenerating images for attachment ID: %s"
22162
  msgstr ""
22163
 
22164
+ #: includes/class-wc-regenerate-images-request.php:256
22165
  msgid "Completed product image regeneration job."
22166
  msgstr ""
22167
 
22179
  msgid "Everywhere"
22180
  msgstr ""
22181
 
22182
+ #: includes/class-wc-webhook.php:528
22183
  #. translators: error message
22184
  msgid "Error: Delivery URL cannot be reached: %s"
22185
  msgstr ""
22186
 
22187
+ #: includes/class-wc-webhook.php:533
22188
  #. translators: error message
22189
  msgid "Error: Delivery URL returned response code: %s"
22190
  msgstr ""
22521
  msgid "Invalid coupon."
22522
  msgstr ""
22523
 
22524
+ #: includes/data-stores/class-wc-customer-data-store.php:149
 
22525
  msgid "Invalid customer."
22526
  msgstr ""
22527
 
22555
  msgid "Invalid payment token."
22556
  msgstr ""
22557
 
22558
+ #: includes/data-stores/class-wc-product-data-store-cpt.php:152
22559
  msgid "Invalid product."
22560
  msgstr ""
22561
 
22752
  msgstr ""
22753
 
22754
  #: includes/emails/class-wc-email-customer-on-hold-order.php:58
22755
+ #: includes/emails/class-wc-email-customer-processing-order.php:60
22756
  msgid "Your {site_title} order has been received!"
22757
  msgstr ""
22758
 
22759
  #: includes/emails/class-wc-email-customer-on-hold-order.php:68
22760
+ #: includes/emails/class-wc-email-customer-processing-order.php:70
22761
  msgid "Thank you for your order"
22762
  msgstr ""
22763
 
22771
  "after payment."
22772
  msgstr ""
22773
 
 
 
 
 
 
 
 
 
22774
  #: includes/emails/class-wc-email-customer-refunded-order.php:46
22775
  msgid "Refunded order"
22776
  msgstr ""
23833
  msgid "Unable to use image \"%s\"."
23834
  msgstr ""
23835
 
23836
+ #: includes/import/class-wc-product-csv-importer.php:882
23837
  #. translators: %d: product ID
23838
  msgid "ID %d"
23839
  msgstr ""
23840
 
23841
+ #: includes/import/class-wc-product-csv-importer.php:886
23842
  #. translators: %s: product SKU
23843
  msgid "SKU %s"
23844
  msgstr ""
23845
 
23846
+ #: includes/import/class-wc-product-csv-importer.php:934
23847
  msgid "A product with this ID already exists."
23848
  msgstr ""
23849
 
23850
+ #: includes/import/class-wc-product-csv-importer.php:946
23851
  msgid "A product with this SKU already exists."
23852
  msgstr ""
23853
 
23854
+ #: includes/import/class-wc-product-csv-importer.php:958
23855
  msgid "No matching product exists to update."
23856
  msgstr ""
23857
 
24615
  "apologize for any inconvenience caused."
24616
  msgstr ""
24617
 
24618
+ #: includes/shortcodes/class-wc-shortcode-checkout.php:280
24619
  msgid ""
24620
  "The order totals have been updated. Please confirm your order by pressing "
24621
  "the \"Place order\" button at the bottom of the page."
24635
  msgid "My account"
24636
  msgstr ""
24637
 
24638
+ #: includes/shortcodes/class-wc-shortcode-my-account.php:260
24639
  msgid "Enter a username or email address."
24640
  msgstr ""
24641
 
24642
+ #: includes/shortcodes/class-wc-shortcode-my-account.php:285
24643
+ #: includes/shortcodes/class-wc-shortcode-my-account.php:291
24644
  msgid "Invalid username or email."
24645
  msgstr ""
24646
 
24647
+ #: includes/shortcodes/class-wc-shortcode-my-account.php:305
24648
  msgid "Password reset is not allowed for this user"
24649
  msgstr ""
24650
 
24651
+ #: includes/shortcodes/class-wc-shortcode-my-account.php:340
24652
  msgid ""
24653
  "This key is invalid or has already been used. Please reset your password "
24654
  "again if needed."
24708
  msgid "and"
24709
  msgstr ""
24710
 
24711
+ #: includes/wc-cart-functions.php:262
24712
  #. translators: %s: coupon code
24713
  msgid "Coupon: %s"
24714
  msgstr ""
24715
 
24716
+ #: includes/wc-cart-functions.php:287
24717
  msgid "Free shipping coupon"
24718
  msgstr ""
24719
 
24720
+ #: includes/wc-cart-functions.php:291
24721
  msgid "[Remove]"
24722
  msgstr ""
24723
 
24724
+ #: includes/wc-cart-functions.php:318
24725
  #. translators: %s: country name
24726
  msgid "estimated for %s"
24727
  msgstr ""
24728
 
24729
+ #: includes/wc-core-functions.php:202
24730
  #. translators: %s template
24731
  msgid "%s does not exist."
24732
  msgstr ""
24733
 
24734
+ #: includes/wc-core-functions.php:296
24735
  msgid "United Arab Emirates dirham"
24736
  msgstr ""
24737
 
24738
+ #: includes/wc-core-functions.php:297
24739
  msgid "Afghan afghani"
24740
  msgstr ""
24741
 
24742
+ #: includes/wc-core-functions.php:298
24743
  msgid "Albanian lek"
24744
  msgstr ""
24745
 
24746
+ #: includes/wc-core-functions.php:299
24747
  msgid "Armenian dram"
24748
  msgstr ""
24749
 
24750
+ #: includes/wc-core-functions.php:300
24751
  msgid "Netherlands Antillean guilder"
24752
  msgstr ""
24753
 
24754
+ #: includes/wc-core-functions.php:301
24755
  msgid "Angolan kwanza"
24756
  msgstr ""
24757
 
24758
+ #: includes/wc-core-functions.php:302
24759
  msgid "Argentine peso"
24760
  msgstr ""
24761
 
24762
+ #: includes/wc-core-functions.php:303
24763
  msgid "Australian dollar"
24764
  msgstr ""
24765
 
24766
+ #: includes/wc-core-functions.php:304
24767
  msgid "Aruban florin"
24768
  msgstr ""
24769
 
24770
+ #: includes/wc-core-functions.php:305
24771
  msgid "Azerbaijani manat"
24772
  msgstr ""
24773
 
24774
+ #: includes/wc-core-functions.php:306
24775
  msgid "Bosnia and Herzegovina convertible mark"
24776
  msgstr ""
24777
 
24778
+ #: includes/wc-core-functions.php:307
24779
  msgid "Barbadian dollar"
24780
  msgstr ""
24781
 
24782
+ #: includes/wc-core-functions.php:308
24783
  msgid "Bangladeshi taka"
24784
  msgstr ""
24785
 
24786
+ #: includes/wc-core-functions.php:309
24787
  msgid "Bulgarian lev"
24788
  msgstr ""
24789
 
24790
+ #: includes/wc-core-functions.php:310
24791
  msgid "Bahraini dinar"
24792
  msgstr ""
24793
 
24794
+ #: includes/wc-core-functions.php:311
24795
  msgid "Burundian franc"
24796
  msgstr ""
24797
 
24798
+ #: includes/wc-core-functions.php:312
24799
  msgid "Bermudian dollar"
24800
  msgstr ""
24801
 
24802
+ #: includes/wc-core-functions.php:313
24803
  msgid "Brunei dollar"
24804
  msgstr ""
24805
 
24806
+ #: includes/wc-core-functions.php:314
24807
  msgid "Bolivian boliviano"
24808
  msgstr ""
24809
 
24810
+ #: includes/wc-core-functions.php:315
24811
  msgid "Brazilian real"
24812
  msgstr ""
24813
 
24814
+ #: includes/wc-core-functions.php:316
24815
  msgid "Bahamian dollar"
24816
  msgstr ""
24817
 
24818
+ #: includes/wc-core-functions.php:317
24819
  msgid "Bitcoin"
24820
  msgstr ""
24821
 
24822
+ #: includes/wc-core-functions.php:318
24823
  msgid "Bhutanese ngultrum"
24824
  msgstr ""
24825
 
24826
+ #: includes/wc-core-functions.php:319
24827
  msgid "Botswana pula"
24828
  msgstr ""
24829
 
24830
+ #: includes/wc-core-functions.php:320
24831
  msgid "Belarusian ruble (old)"
24832
  msgstr ""
24833
 
24834
+ #: includes/wc-core-functions.php:321
24835
  msgid "Belarusian ruble"
24836
  msgstr ""
24837
 
24838
+ #: includes/wc-core-functions.php:322
24839
  msgid "Belize dollar"
24840
  msgstr ""
24841
 
24842
+ #: includes/wc-core-functions.php:323
24843
  msgid "Canadian dollar"
24844
  msgstr ""
24845
 
24846
+ #: includes/wc-core-functions.php:324
24847
  msgid "Congolese franc"
24848
  msgstr ""
24849
 
24850
+ #: includes/wc-core-functions.php:325
24851
  msgid "Swiss franc"
24852
  msgstr ""
24853
 
24854
+ #: includes/wc-core-functions.php:326
24855
  msgid "Chilean peso"
24856
  msgstr ""
24857
 
24858
+ #: includes/wc-core-functions.php:327
24859
  msgid "Chinese yuan"
24860
  msgstr ""
24861
 
24862
+ #: includes/wc-core-functions.php:328
24863
  msgid "Colombian peso"
24864
  msgstr ""
24865
 
24866
+ #: includes/wc-core-functions.php:329
24867
  msgid "Costa Rican col&oacute;n"
24868
  msgstr ""
24869
 
24870
+ #: includes/wc-core-functions.php:330
24871
  msgid "Cuban convertible peso"
24872
  msgstr ""
24873
 
24874
+ #: includes/wc-core-functions.php:331
24875
  msgid "Cuban peso"
24876
  msgstr ""
24877
 
24878
+ #: includes/wc-core-functions.php:332
24879
  msgid "Cape Verdean escudo"
24880
  msgstr ""
24881
 
24882
+ #: includes/wc-core-functions.php:333
24883
  msgid "Czech koruna"
24884
  msgstr ""
24885
 
24886
+ #: includes/wc-core-functions.php:334
24887
  msgid "Djiboutian franc"
24888
  msgstr ""
24889
 
24890
+ #: includes/wc-core-functions.php:335
24891
  msgid "Danish krone"
24892
  msgstr ""
24893
 
24894
+ #: includes/wc-core-functions.php:336
24895
  msgid "Dominican peso"
24896
  msgstr ""
24897
 
24898
+ #: includes/wc-core-functions.php:337
24899
  msgid "Algerian dinar"
24900
  msgstr ""
24901
 
24902
+ #: includes/wc-core-functions.php:338
24903
  msgid "Egyptian pound"
24904
  msgstr ""
24905
 
24906
+ #: includes/wc-core-functions.php:339
24907
  msgid "Eritrean nakfa"
24908
  msgstr ""
24909
 
24910
+ #: includes/wc-core-functions.php:340
24911
  msgid "Ethiopian birr"
24912
  msgstr ""
24913
 
24914
+ #: includes/wc-core-functions.php:341
24915
  msgid "Euro"
24916
  msgstr ""
24917
 
24918
+ #: includes/wc-core-functions.php:342
24919
  msgid "Fijian dollar"
24920
  msgstr ""
24921
 
24922
+ #: includes/wc-core-functions.php:343
24923
  msgid "Falkland Islands pound"
24924
  msgstr ""
24925
 
24926
+ #: includes/wc-core-functions.php:344
24927
  msgid "Pound sterling"
24928
  msgstr ""
24929
 
24930
+ #: includes/wc-core-functions.php:345
24931
  msgid "Georgian lari"
24932
  msgstr ""
24933
 
24934
+ #: includes/wc-core-functions.php:346
24935
  msgid "Guernsey pound"
24936
  msgstr ""
24937
 
24938
+ #: includes/wc-core-functions.php:347
24939
  msgid "Ghana cedi"
24940
  msgstr ""
24941
 
24942
+ #: includes/wc-core-functions.php:348
24943
  msgid "Gibraltar pound"
24944
  msgstr ""
24945
 
24946
+ #: includes/wc-core-functions.php:349
24947
  msgid "Gambian dalasi"
24948
  msgstr ""
24949
 
24950
+ #: includes/wc-core-functions.php:350
24951
  msgid "Guinean franc"
24952
  msgstr ""
24953
 
24954
+ #: includes/wc-core-functions.php:351
24955
  msgid "Guatemalan quetzal"
24956
  msgstr ""
24957
 
24958
+ #: includes/wc-core-functions.php:352
24959
  msgid "Guyanese dollar"
24960
  msgstr ""
24961
 
24962
+ #: includes/wc-core-functions.php:353
24963
  msgid "Hong Kong dollar"
24964
  msgstr ""
24965
 
24966
+ #: includes/wc-core-functions.php:354
24967
  msgid "Honduran lempira"
24968
  msgstr ""
24969
 
24970
+ #: includes/wc-core-functions.php:355
24971
  msgid "Croatian kuna"
24972
  msgstr ""
24973
 
24974
+ #: includes/wc-core-functions.php:356
24975
  msgid "Haitian gourde"
24976
  msgstr ""
24977
 
24978
+ #: includes/wc-core-functions.php:357
24979
  msgid "Hungarian forint"
24980
  msgstr ""
24981
 
24982
+ #: includes/wc-core-functions.php:358
24983
  msgid "Indonesian rupiah"
24984
  msgstr ""
24985
 
24986
+ #: includes/wc-core-functions.php:359
24987
  msgid "Israeli new shekel"
24988
  msgstr ""
24989
 
24990
+ #: includes/wc-core-functions.php:360
24991
  msgid "Manx pound"
24992
  msgstr ""
24993
 
24994
+ #: includes/wc-core-functions.php:361
24995
  msgid "Indian rupee"
24996
  msgstr ""
24997
 
24998
+ #: includes/wc-core-functions.php:362
24999
  msgid "Iraqi dinar"
25000
  msgstr ""
25001
 
25002
+ #: includes/wc-core-functions.php:363
25003
  msgid "Iranian rial"
25004
  msgstr ""
25005
 
25006
+ #: includes/wc-core-functions.php:364
25007
  msgid "Iranian toman"
25008
  msgstr ""
25009
 
25010
+ #: includes/wc-core-functions.php:365
25011
  msgid "Icelandic kr&oacute;na"
25012
  msgstr ""
25013
 
25014
+ #: includes/wc-core-functions.php:366
25015
  msgid "Jersey pound"
25016
  msgstr ""
25017
 
25018
+ #: includes/wc-core-functions.php:367
25019
  msgid "Jamaican dollar"
25020
  msgstr ""
25021
 
25022
+ #: includes/wc-core-functions.php:368
25023
  msgid "Jordanian dinar"
25024
  msgstr ""
25025
 
25026
+ #: includes/wc-core-functions.php:369
25027
  msgid "Japanese yen"
25028
  msgstr ""
25029
 
25030
+ #: includes/wc-core-functions.php:370
25031
  msgid "Kenyan shilling"
25032
  msgstr ""
25033
 
25034
+ #: includes/wc-core-functions.php:371
25035
  msgid "Kyrgyzstani som"
25036
  msgstr ""
25037
 
25038
+ #: includes/wc-core-functions.php:372
25039
  msgid "Cambodian riel"
25040
  msgstr ""
25041
 
25042
+ #: includes/wc-core-functions.php:373
25043
  msgid "Comorian franc"
25044
  msgstr ""
25045
 
25046
+ #: includes/wc-core-functions.php:374
25047
  msgid "North Korean won"
25048
  msgstr ""
25049
 
25050
+ #: includes/wc-core-functions.php:375
25051
  msgid "South Korean won"
25052
  msgstr ""
25053
 
25054
+ #: includes/wc-core-functions.php:376
25055
  msgid "Kuwaiti dinar"
25056
  msgstr ""
25057
 
25058
+ #: includes/wc-core-functions.php:377
25059
  msgid "Cayman Islands dollar"
25060
  msgstr ""
25061
 
25062
+ #: includes/wc-core-functions.php:378
25063
  msgid "Kazakhstani tenge"
25064
  msgstr ""
25065
 
25066
+ #: includes/wc-core-functions.php:379
25067
  msgid "Lao kip"
25068
  msgstr ""
25069
 
25070
+ #: includes/wc-core-functions.php:380
25071
  msgid "Lebanese pound"
25072
  msgstr ""
25073
 
25074
+ #: includes/wc-core-functions.php:381
25075
  msgid "Sri Lankan rupee"
25076
  msgstr ""
25077
 
25078
+ #: includes/wc-core-functions.php:382
25079
  msgid "Liberian dollar"
25080
  msgstr ""
25081
 
25082
+ #: includes/wc-core-functions.php:383
25083
  msgid "Lesotho loti"
25084
  msgstr ""
25085
 
25086
+ #: includes/wc-core-functions.php:384
25087
  msgid "Libyan dinar"
25088
  msgstr ""
25089
 
25090
+ #: includes/wc-core-functions.php:385
25091
  msgid "Moroccan dirham"
25092
  msgstr ""
25093
 
25094
+ #: includes/wc-core-functions.php:386
25095
  msgid "Moldovan leu"
25096
  msgstr ""
25097
 
25098
+ #: includes/wc-core-functions.php:387
25099
  msgid "Malagasy ariary"
25100
  msgstr ""
25101
 
25102
+ #: includes/wc-core-functions.php:388
25103
  msgid "Macedonian denar"
25104
  msgstr ""
25105
 
25106
+ #: includes/wc-core-functions.php:389
25107
  msgid "Burmese kyat"
25108
  msgstr ""
25109
 
25110
+ #: includes/wc-core-functions.php:390
25111
  msgid "Mongolian t&ouml;gr&ouml;g"
25112
  msgstr ""
25113
 
25114
+ #: includes/wc-core-functions.php:391
25115
  msgid "Macanese pataca"
25116
  msgstr ""
25117
 
25118
+ #: includes/wc-core-functions.php:392
25119
  msgid "Mauritanian ouguiya"
25120
  msgstr ""
25121
 
25122
+ #: includes/wc-core-functions.php:393
25123
  msgid "Mauritian rupee"
25124
  msgstr ""
25125
 
25126
+ #: includes/wc-core-functions.php:394
25127
  msgid "Maldivian rufiyaa"
25128
  msgstr ""
25129
 
25130
+ #: includes/wc-core-functions.php:395
25131
  msgid "Malawian kwacha"
25132
  msgstr ""
25133
 
25134
+ #: includes/wc-core-functions.php:396
25135
  msgid "Mexican peso"
25136
  msgstr ""
25137
 
25138
+ #: includes/wc-core-functions.php:397
25139
  msgid "Malaysian ringgit"
25140
  msgstr ""
25141
 
25142
+ #: includes/wc-core-functions.php:398
25143
  msgid "Mozambican metical"
25144
  msgstr ""
25145
 
25146
+ #: includes/wc-core-functions.php:399
25147
  msgid "Namibian dollar"
25148
  msgstr ""
25149
 
25150
+ #: includes/wc-core-functions.php:400
25151
  msgid "Nigerian naira"
25152
  msgstr ""
25153
 
25154
+ #: includes/wc-core-functions.php:401
25155
  msgid "Nicaraguan c&oacute;rdoba"
25156
  msgstr ""
25157
 
25158
+ #: includes/wc-core-functions.php:402
25159
  msgid "Norwegian krone"
25160
  msgstr ""
25161
 
25162
+ #: includes/wc-core-functions.php:403
25163
  msgid "Nepalese rupee"
25164
  msgstr ""
25165
 
25166
+ #: includes/wc-core-functions.php:404
25167
  msgid "New Zealand dollar"
25168
  msgstr ""
25169
 
25170
+ #: includes/wc-core-functions.php:405
25171
  msgid "Omani rial"
25172
  msgstr ""
25173
 
25174
+ #: includes/wc-core-functions.php:406
25175
  msgid "Panamanian balboa"
25176
  msgstr ""
25177
 
25178
+ #: includes/wc-core-functions.php:407
25179
  msgid "Peruvian nuevo sol"
25180
  msgstr ""
25181
 
25182
+ #: includes/wc-core-functions.php:408
25183
  msgid "Papua New Guinean kina"
25184
  msgstr ""
25185
 
25186
+ #: includes/wc-core-functions.php:409
25187
  msgid "Philippine peso"
25188
  msgstr ""
25189
 
25190
+ #: includes/wc-core-functions.php:410
25191
  msgid "Pakistani rupee"
25192
  msgstr ""
25193
 
25194
+ #: includes/wc-core-functions.php:411
25195
  msgid "Polish z&#x142;oty"
25196
  msgstr ""
25197
 
25198
+ #: includes/wc-core-functions.php:412
25199
  msgid "Transnistrian ruble"
25200
  msgstr ""
25201
 
25202
+ #: includes/wc-core-functions.php:413
25203
  msgid "Paraguayan guaran&iacute;"
25204
  msgstr ""
25205
 
25206
+ #: includes/wc-core-functions.php:414
25207
  msgid "Qatari riyal"
25208
  msgstr ""
25209
 
25210
+ #: includes/wc-core-functions.php:415
25211
  msgid "Romanian leu"
25212
  msgstr ""
25213
 
25214
+ #: includes/wc-core-functions.php:416
25215
  msgid "Serbian dinar"
25216
  msgstr ""
25217
 
25218
+ #: includes/wc-core-functions.php:417
25219
  msgid "Russian ruble"
25220
  msgstr ""
25221
 
25222
+ #: includes/wc-core-functions.php:418
25223
  msgid "Rwandan franc"
25224
  msgstr ""
25225
 
25226
+ #: includes/wc-core-functions.php:419
25227
  msgid "Saudi riyal"
25228
  msgstr ""
25229
 
25230
+ #: includes/wc-core-functions.php:420
25231
  msgid "Solomon Islands dollar"
25232
  msgstr ""
25233
 
25234
+ #: includes/wc-core-functions.php:421
25235
  msgid "Seychellois rupee"
25236
  msgstr ""
25237
 
25238
+ #: includes/wc-core-functions.php:422
25239
  msgid "Sudanese pound"
25240
  msgstr ""
25241
 
25242
+ #: includes/wc-core-functions.php:423
25243
  msgid "Swedish krona"
25244
  msgstr ""
25245
 
25246
+ #: includes/wc-core-functions.php:424
25247
  msgid "Singapore dollar"
25248
  msgstr ""
25249
 
25250
+ #: includes/wc-core-functions.php:425
25251
  msgid "Saint Helena pound"
25252
  msgstr ""
25253
 
25254
+ #: includes/wc-core-functions.php:426
25255
  msgid "Sierra Leonean leone"
25256
  msgstr ""
25257
 
25258
+ #: includes/wc-core-functions.php:427
25259
  msgid "Somali shilling"
25260
  msgstr ""
25261
 
25262
+ #: includes/wc-core-functions.php:428
25263
  msgid "Surinamese dollar"
25264
  msgstr ""
25265
 
25266
+ #: includes/wc-core-functions.php:429
25267
  msgid "South Sudanese pound"
25268
  msgstr ""
25269
 
25270
+ #: includes/wc-core-functions.php:430
25271
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
25272
  msgstr ""
25273
 
25274
+ #: includes/wc-core-functions.php:431
25275
  msgid "Syrian pound"
25276
  msgstr ""
25277
 
25278
+ #: includes/wc-core-functions.php:432
25279
  msgid "Swazi lilangeni"
25280
  msgstr ""
25281
 
25282
+ #: includes/wc-core-functions.php:433
25283
  msgid "Thai baht"
25284
  msgstr ""
25285
 
25286
+ #: includes/wc-core-functions.php:434
25287
  msgid "Tajikistani somoni"
25288
  msgstr ""
25289
 
25290
+ #: includes/wc-core-functions.php:435
25291
  msgid "Turkmenistan manat"
25292
  msgstr ""
25293
 
25294
+ #: includes/wc-core-functions.php:436
25295
  msgid "Tunisian dinar"
25296
  msgstr ""
25297
 
25298
+ #: includes/wc-core-functions.php:437
25299
  msgid "Tongan pa&#x2bb;anga"
25300
  msgstr ""
25301
 
25302
+ #: includes/wc-core-functions.php:438
25303
  msgid "Turkish lira"
25304
  msgstr ""
25305
 
25306
+ #: includes/wc-core-functions.php:439
25307
  msgid "Trinidad and Tobago dollar"
25308
  msgstr ""
25309
 
25310
+ #: includes/wc-core-functions.php:440
25311
  msgid "New Taiwan dollar"
25312
  msgstr ""
25313
 
25314
+ #: includes/wc-core-functions.php:441
25315
  msgid "Tanzanian shilling"
25316
  msgstr ""
25317
 
25318
+ #: includes/wc-core-functions.php:442
25319
  msgid "Ukrainian hryvnia"
25320
  msgstr ""
25321
 
25322
+ #: includes/wc-core-functions.php:443
25323
  msgid "Ugandan shilling"
25324
  msgstr ""
25325
 
25326
+ #: includes/wc-core-functions.php:444
25327
  msgid "United States (US) dollar"
25328
  msgstr ""
25329
 
25330
+ #: includes/wc-core-functions.php:445
25331
  msgid "Uruguayan peso"
25332
  msgstr ""
25333
 
25334
+ #: includes/wc-core-functions.php:446
25335
  msgid "Uzbekistani som"
25336
  msgstr ""
25337
 
25338
+ #: includes/wc-core-functions.php:447
25339
  msgid "Venezuelan bol&iacute;var"
25340
  msgstr ""
25341
 
25342
+ #: includes/wc-core-functions.php:448
25343
  msgid "Vietnamese &#x111;&#x1ed3;ng"
25344
  msgstr ""
25345
 
25346
+ #: includes/wc-core-functions.php:449
25347
  msgid "Vanuatu vatu"
25348
  msgstr ""
25349
 
25350
+ #: includes/wc-core-functions.php:450
25351
  msgid "Samoan t&#x101;l&#x101;"
25352
  msgstr ""
25353
 
25354
+ #: includes/wc-core-functions.php:451
25355
  msgid "Central African CFA franc"
25356
  msgstr ""
25357
 
25358
+ #: includes/wc-core-functions.php:452
25359
  msgid "East Caribbean dollar"
25360
  msgstr ""
25361
 
25362
+ #: includes/wc-core-functions.php:453
25363
  msgid "West African CFA franc"
25364
  msgstr ""
25365
 
25366
+ #: includes/wc-core-functions.php:454
25367
  msgid "CFP franc"
25368
  msgstr ""
25369
 
25370
+ #: includes/wc-core-functions.php:455
25371
  msgid "Yemeni rial"
25372
  msgstr ""
25373
 
25374
+ #: includes/wc-core-functions.php:456
25375
  msgid "South African rand"
25376
  msgstr ""
25377
 
25378
+ #: includes/wc-core-functions.php:457
25379
  msgid "Zambian kwacha"
25380
  msgstr ""
25381
 
25382
+ #: includes/wc-core-functions.php:1322
25383
  msgid "MasterCard"
25384
  msgstr ""
25385
 
25386
+ #: includes/wc-core-functions.php:1323
25387
  msgid "Visa"
25388
  msgstr ""
25389
 
25390
+ #: includes/wc-core-functions.php:1324
25391
  msgid "Discover"
25392
  msgstr ""
25393
 
25394
+ #: includes/wc-core-functions.php:1325
25395
  msgid "American Express"
25396
  msgstr ""
25397
 
25398
+ #: includes/wc-core-functions.php:1326
25399
  msgid "Diners"
25400
  msgstr ""
25401
 
25402
+ #: includes/wc-core-functions.php:1327
25403
  msgid "JCB"
25404
  msgstr ""
25405
 
25406
+ #: includes/wc-core-functions.php:1683
25407
  #. translators: 1: class name 2: woocommerce_logging_class 3:
25408
  #. WC_Logger_Interface
25409
  msgid "The class %1$s provided by %2$s filter must implement %3$s."
25442
  msgid "This function should not be called before woocommerce_init."
25443
  msgstr ""
25444
 
25445
+ #: includes/wc-order-functions.php:507
25446
  msgid "Invalid refund amount."
25447
  msgstr ""
25448
 
25449
+ #: includes/wc-order-functions.php:644
25450
  msgid "The payment gateway for this order does not exist."
25451
  msgstr ""
25452
 
25453
+ #: includes/wc-order-functions.php:648
25454
  msgid "The payment gateway for this order does not support automatic refunds."
25455
  msgstr ""
25456
 
25457
+ #: includes/wc-order-functions.php:689
25458
  #. translators: 1: product ID 2: old stock level 3: new stock level
25459
  msgid "Item #%1$s stock increased from %2$s to %3$s."
25460
  msgstr ""
25461
 
25462
+ #: includes/wc-order-functions.php:750 includes/wc-update-functions.php:915
25463
  msgid "Order fully refunded"
25464
  msgstr ""
25465
 
25466
+ #: includes/wc-order-functions.php:880
25467
  msgid "Unpaid order cancelled - time limit reached."
25468
  msgstr ""
25469
 
25472
  msgid "%1$s should not be called before the %2$s action."
25473
  msgstr ""
25474
 
25475
+ #: includes/wc-product-functions.php:543
25476
  msgid "Simple product"
25477
  msgstr ""
25478
 
25479
+ #: includes/wc-product-functions.php:544
25480
  msgid "Grouped product"
25481
  msgstr ""
25482
 
25483
+ #: includes/wc-product-functions.php:545
25484
  msgid "External/Affiliate product"
25485
  msgstr ""
25486
 
25487
+ #: includes/wc-product-functions.php:546
25488
  msgid "Variable product"
25489
  msgstr ""
25490
 
25491
+ #: includes/wc-product-functions.php:780
25492
  msgid "Shop and search results"
25493
  msgstr ""
25494
 
25495
+ #: includes/wc-product-functions.php:781
25496
  msgid "Shop only"
25497
  msgstr ""
25498
 
25499
+ #: includes/wc-product-functions.php:782
25500
  msgid "Search results only"
25501
  msgstr ""
25502
 
25503
+ #: includes/wc-product-functions.php:870
25504
  msgid "Do not allow"
25505
  msgstr ""
25506
 
25507
+ #: includes/wc-product-functions.php:871
25508
  msgid "Allow, but notify customer"
25509
  msgstr ""
25510
 
25511
+ #: includes/wc-product-functions.php:872
25512
  msgid "Allow"
25513
  msgstr ""
25514
 
25515
+ #: includes/wc-rest-functions.php:73
25516
+ #. translators: %s: image URL
25517
+ msgid "Invalid URL %s."
25518
+ msgstr ""
25519
+
25520
+ #: includes/wc-rest-functions.php:94
25521
+ #. translators: %s: image URL
25522
+ msgid "Error getting remote image %s."
25523
+ msgstr ""
25524
+
25525
+ #: includes/wc-rest-functions.php:96
25526
+ #. translators: %s: error message
25527
+ msgid "Error: %s"
25528
+ msgstr ""
25529
+
25530
+ #: includes/wc-rest-functions.php:114
25531
+ #. translators: %s: error message
25532
+ msgid "Invalid image: %s"
25533
+ msgstr ""
25534
+
25535
+ #: includes/wc-rest-functions.php:184
25536
  #. translators: 1: param 2: type
25537
  msgid "%1$s is not of type %2$s"
25538
  msgstr ""
25539
 
25540
+ #: includes/wc-rest-functions.php:191
25541
  msgid "The date you provided is invalid."
25542
  msgstr ""
25543
 
25628
  msgid "Update country"
25629
  msgstr ""
25630
 
 
 
 
 
 
25631
  #: includes/wc-template-functions.php:2612
25632
  #: includes/wc-template-functions.php:2774
25633
  #: includes/wc-template-functions.php:2790
25672
  "have problems."
25673
  msgstr ""
25674
 
25675
+ #: includes/wc-webhook-functions.php:120
25676
  msgid "Paused"
25677
  msgstr ""
25678
 
26121
  msgid "Please fill in your details above to see available payment methods."
26122
  msgstr ""
26123
 
26124
+ #: templates/checkout/payment.php:42
26125
+ #. translators: $1 and $2 opening and closing emphasis tags respectively
26126
  msgid ""
26127
  "Since your browser does not support JavaScript, or it is disabled, please "
26128
+ "ensure you click the %1$sUpdate Totals%2$s button before placing your "
26129
  "order. You may be charged more than the amount stated above if you fail to "
26130
  "do so."
26131
  msgstr ""
26132
 
26133
+ #: templates/checkout/payment.php:44
26134
  msgid "Update totals"
26135
  msgstr ""
26136
 
26293
  #: templates/emails/plain/customer-processing-order.php:27
26294
  #. translators: %s: Order number
26295
  msgid ""
26296
+ "Just to let you know &mdash; we've received your order #%s, and it is now "
26297
+ "being processed:"
26298
  msgstr ""
26299
 
26300
  #: templates/emails/customer-processing-order.php:55
26347
  msgid "Click here to reset your password"
26348
  msgstr ""
26349
 
26350
+ #: templates/emails/email-addresses.php:29
26351
  #: templates/emails/plain/email-addresses.php:22
26352
  #: templates/myaccount/form-edit-address.php:20
26353
  #: templates/myaccount/my-address.php:27 templates/myaccount/my-address.php:32
26355
  msgid "Billing address"
26356
  msgstr ""
26357
 
26358
+ #: templates/emails/email-addresses.php:43
26359
  #: templates/emails/plain/email-addresses.php:37
26360
  #: templates/myaccount/form-edit-address.php:20
26361
  #: templates/myaccount/my-address.php:28
26792
 
26793
  #: includes/admin/class-wc-admin-assets.php:115
26794
  #: includes/admin/class-wc-admin-setup-wizard.php:164
26795
+ #: includes/class-wc-frontend-scripts.php:570
26796
  #: includes/widgets/class-wc-widget-layered-nav.php:302
26797
  #: includes/widgets/class-wc-widget-product-categories.php:266
26798
  msgctxt "enhanced select"
26801
 
26802
  #: includes/admin/class-wc-admin-assets.php:116
26803
  #: includes/admin/class-wc-admin-setup-wizard.php:165
26804
+ #: includes/class-wc-frontend-scripts.php:571
26805
  msgctxt "enhanced select"
26806
  msgid "Loading failed"
26807
  msgstr ""
26808
 
26809
  #: includes/admin/class-wc-admin-assets.php:117
26810
  #: includes/admin/class-wc-admin-setup-wizard.php:166
26811
+ #: includes/class-wc-frontend-scripts.php:572
26812
  msgctxt "enhanced select"
26813
  msgid "Please enter 1 or more characters"
26814
  msgstr ""
26815
 
26816
  #: includes/admin/class-wc-admin-assets.php:118
26817
  #: includes/admin/class-wc-admin-setup-wizard.php:167
26818
+ #: includes/class-wc-frontend-scripts.php:573
26819
  msgctxt "enhanced select"
26820
  msgid "Please enter %qty% or more characters"
26821
  msgstr ""
26822
 
26823
  #: includes/admin/class-wc-admin-assets.php:119
26824
  #: includes/admin/class-wc-admin-setup-wizard.php:168
26825
+ #: includes/class-wc-frontend-scripts.php:574
26826
  msgctxt "enhanced select"
26827
  msgid "Please delete 1 character"
26828
  msgstr ""
26829
 
26830
  #: includes/admin/class-wc-admin-assets.php:120
26831
  #: includes/admin/class-wc-admin-setup-wizard.php:169
26832
+ #: includes/class-wc-frontend-scripts.php:575
26833
  msgctxt "enhanced select"
26834
  msgid "Please delete %qty% characters"
26835
  msgstr ""
26836
 
26837
  #: includes/admin/class-wc-admin-assets.php:121
26838
  #: includes/admin/class-wc-admin-setup-wizard.php:170
26839
+ #: includes/class-wc-frontend-scripts.php:576
26840
  msgctxt "enhanced select"
26841
  msgid "You can only select 1 item"
26842
  msgstr ""
26843
 
26844
  #: includes/admin/class-wc-admin-assets.php:122
26845
  #: includes/admin/class-wc-admin-setup-wizard.php:171
26846
+ #: includes/class-wc-frontend-scripts.php:577
26847
  msgctxt "enhanced select"
26848
  msgid "You can only select %qty% items"
26849
  msgstr ""
26850
 
26851
  #: includes/admin/class-wc-admin-assets.php:123
26852
  #: includes/admin/class-wc-admin-setup-wizard.php:172
26853
+ #: includes/class-wc-frontend-scripts.php:578
26854
  msgctxt "enhanced select"
26855
  msgid "Loading more results&hellip;"
26856
  msgstr ""
26857
 
26858
  #: includes/admin/class-wc-admin-assets.php:124
26859
  #: includes/admin/class-wc-admin-setup-wizard.php:173
26860
+ #: includes/class-wc-frontend-scripts.php:579
26861
  msgctxt "enhanced select"
26862
  msgid "Searching&hellip;"
26863
  msgstr ""
26899
  msgstr ""
26900
 
26901
  #: includes/admin/class-wc-admin-permalink-settings.php:76
26902
+ #: includes/wc-core-functions.php:1844 includes/wc-update-functions.php:57
26903
  msgctxt "slug"
26904
  msgid "product-category"
26905
  msgstr ""
26906
 
26907
  #: includes/admin/class-wc-admin-permalink-settings.php:85
26908
+ #: includes/wc-core-functions.php:1845 includes/wc-update-functions.php:58
26909
  msgctxt "slug"
26910
  msgid "product-tag"
26911
  msgstr ""
26912
 
26913
  #: includes/admin/class-wc-admin-permalink-settings.php:195
26914
  #: includes/admin/class-wc-admin-permalink-settings.php:198
26915
+ #: includes/wc-core-functions.php:1843 includes/wc-update-functions.php:67
26916
  msgctxt "slug"
26917
  msgid "product"
26918
  msgstr ""
26919
 
26920
+ #: includes/wc-product-functions.php:249
26921
  msgctxt "slug"
26922
  msgid "uncategorized"
26923
  msgstr ""
26946
  msgstr ""
26947
 
26948
  #: includes/admin/class-wc-admin-taxonomies.php:322
26949
+ #: includes/class-wc-install.php:514 includes/class-wc-install.php:520
26950
  msgctxt "Default category slug"
26951
  msgid "Uncategorized"
26952
  msgstr ""
26963
  #: includes/admin/settings/views/html-webhooks-edit.php:25
26964
  #: includes/api/legacy/v2/class-wc-api-webhooks.php:199
26965
  #: includes/api/legacy/v3/class-wc-api-webhooks.php:199
26966
+ #: includes/api/v1/class-wc-rest-webhooks-controller.php:504
26967
  msgctxt "Webhook created on date parsed by strftime"
26968
  msgid "%b %d, %Y @ %I:%M %p"
26969
  msgstr ""
26974
  msgstr ""
26975
 
26976
  #: includes/admin/list-tables/class-wc-admin-list-table-orders.php:168
26977
+ #: includes/api/v2/class-wc-rest-network-orders-v2-controller.php:146
26978
  #: includes/class-wc-order.php:842 includes/class-wc-order.php:852
26979
  #. translators: 1: first name 2: last name
26980
  msgctxt "full name"
27078
  msgid "&ldquo;%s&rdquo;"
27079
  msgstr ""
27080
 
27081
+ #: includes/class-wc-install.php:417
27082
  msgctxt "Page slug"
27083
  msgid "shop"
27084
  msgstr ""
27085
 
27086
+ #: includes/class-wc-install.php:422
27087
  msgctxt "Page slug"
27088
  msgid "cart"
27089
  msgstr ""
27090
 
27091
+ #: includes/class-wc-install.php:427
27092
  msgctxt "Page slug"
27093
  msgid "checkout"
27094
  msgstr ""
27095
 
27096
+ #: includes/class-wc-install.php:432
27097
  msgctxt "Page slug"
27098
  msgid "my-account"
27099
  msgstr ""
27100
 
27101
+ #: includes/class-wc-install.php:418
27102
  msgctxt "Page title"
27103
  msgid "Shop"
27104
  msgstr ""
27105
 
27106
+ #: includes/class-wc-install.php:423
27107
  msgctxt "Page title"
27108
  msgid "Cart"
27109
  msgstr ""
27110
 
27111
+ #: includes/class-wc-install.php:428
27112
  msgctxt "Page title"
27113
  msgid "Checkout"
27114
  msgstr ""
27115
 
27116
+ #: includes/class-wc-install.php:433
27117
  msgctxt "Page title"
27118
  msgid "My account"
27119
  msgstr ""
27120
 
27121
+ #: includes/class-wc-install.php:930
27122
  #. translators: user role
27123
  msgctxt "User role"
27124
  msgid "Customer"
27125
  msgstr ""
27126
 
27127
+ #: includes/class-wc-install.php:932
27128
  #. translators: user role
27129
  msgctxt "User role"
27130
  msgid "Shop manager"
27215
  msgid "shipping"
27216
  msgstr ""
27217
 
27218
+ #: includes/wc-cart-functions.php:229
27219
  #. translators: %d: shipping package number
27220
  msgctxt "shipping packages"
27221
  msgid "Shipping %d"
27222
  msgstr ""
27223
 
27224
+ #: includes/wc-cart-functions.php:229
27225
  msgctxt "shipping packages"
27226
  msgid "Shipping"
27227
  msgstr ""
includes/abstracts/abstract-wc-product.php CHANGED
@@ -1382,7 +1382,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1382
  * @since 2.5.0
1383
  */
1384
  public function supports( $feature ) {
1385
- return apply_filters( 'woocommerce_product_supports', in_array( $feature, $this->supports ), $feature, $this );
1386
  }
1387
 
1388
  /**
@@ -1403,7 +1403,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1403
  * @return bool
1404
  */
1405
  public function is_type( $type ) {
1406
- return ( $this->get_type() === $type || ( is_array( $type ) && in_array( $this->get_type(), $type ) ) );
1407
  }
1408
 
1409
  /**
@@ -1494,7 +1494,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1494
  $on_sale = false;
1495
  }
1496
 
1497
- if ( $this->get_date_on_sale_to( $context ) && $this->get_date_on_sale_to( $context )->getTimestamp() < current_time( 'timestamp', true ) ) {
1498
  $on_sale = false;
1499
  }
1500
  } else {
@@ -1821,15 +1821,18 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1821
  * @return string
1822
  */
1823
  public function get_image( $size = 'woocommerce_thumbnail', $attr = array(), $placeholder = true ) {
 
1824
  if ( $this->get_image_id() ) {
1825
  $image = wp_get_attachment_image( $this->get_image_id(), $size, false, $attr );
1826
  } elseif ( $this->get_parent_id() ) {
1827
  $parent_product = wc_get_product( $this->get_parent_id() );
1828
- $image = $parent_product->get_image( $size, $attr, $placeholder );
1829
- } elseif ( $placeholder ) {
 
 
 
 
1830
  $image = wc_placeholder_img( $size );
1831
- } else {
1832
- $image = '';
1833
  }
1834
 
1835
  return apply_filters( 'woocommerce_product_get_image', $image, $this, $size, $attr, $placeholder, $image );
@@ -1841,7 +1844,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1841
  * @return string
1842
  */
1843
  public function get_shipping_class() {
1844
- if ( $class_id = $this->get_shipping_class_id() ) { // @phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.Found
1845
  $term = get_term_by( 'id', $class_id, 'product_shipping_class' );
1846
 
1847
  if ( $term && ! is_wp_error( $term ) ) {
@@ -1933,7 +1936,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1933
  public function get_price_suffix( $price = '', $qty = 1 ) {
1934
  $html = '';
1935
 
1936
- if ( ( $suffix = get_option( 'woocommerce_price_display_suffix' ) ) && wc_tax_enabled() && 'taxable' === $this->get_tax_status() ) { // @phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.Found
1937
  if ( '' === $price ) {
1938
  $price = $this->get_price();
1939
  }
@@ -1941,7 +1944,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1941
  '{price_including_tax}' => wc_price( wc_get_price_including_tax( $this, array( 'qty' => $qty, 'price' => $price ) ) ), // @phpcs:ignore WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine, WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound
1942
  '{price_excluding_tax}' => wc_price( wc_get_price_excluding_tax( $this, array( 'qty' => $qty, 'price' => $price ) ) ), // @phpcs:ignore WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound
1943
  );
1944
- $html = str_replace( array_keys( $replacements ), array_values( $replacements ), ' <small class="woocommerce-price-suffix">' . wp_kses_post( $suffix ) . '</small>' );
1945
  }
1946
  return apply_filters( 'woocommerce_get_price_suffix', $html, $this, $price, $qty );
1947
  }
@@ -1952,10 +1955,14 @@ class WC_Product extends WC_Abstract_Legacy_Product {
1952
  * @return string[]
1953
  */
1954
  public function get_availability() {
1955
- return apply_filters( 'woocommerce_get_availability', array(
1956
- 'availability' => $this->get_availability_text(),
1957
- 'class' => $this->get_availability_class(),
1958
- ), $this );
 
 
 
 
1959
  }
1960
 
1961
  /**
1382
  * @since 2.5.0
1383
  */
1384
  public function supports( $feature ) {
1385
+ return apply_filters( 'woocommerce_product_supports', in_array( $feature, $this->supports, true ), $feature, $this );
1386
  }
1387
 
1388
  /**
1403
  * @return bool
1404
  */
1405
  public function is_type( $type ) {
1406
+ return ( $this->get_type() === $type || ( is_array( $type ) && in_array( $this->get_type(), $type, true ) ) );
1407
  }
1408
 
1409
  /**
1494
  $on_sale = false;
1495
  }
1496
 
1497
+ if ( $this->get_date_on_sale_to( $context ) && $this->get_date_on_sale_to( $context )->getTimestamp() + DAY_IN_SECONDS < current_time( 'timestamp', true ) ) {
1498
  $on_sale = false;
1499
  }
1500
  } else {
1821
  * @return string
1822
  */
1823
  public function get_image( $size = 'woocommerce_thumbnail', $attr = array(), $placeholder = true ) {
1824
+ $image = '';
1825
  if ( $this->get_image_id() ) {
1826
  $image = wp_get_attachment_image( $this->get_image_id(), $size, false, $attr );
1827
  } elseif ( $this->get_parent_id() ) {
1828
  $parent_product = wc_get_product( $this->get_parent_id() );
1829
+ if ( $parent_product ) {
1830
+ $image = $parent_product->get_image( $size, $attr, $placeholder );
1831
+ }
1832
+ }
1833
+
1834
+ if ( ! $image && $placeholder ) {
1835
  $image = wc_placeholder_img( $size );
 
 
1836
  }
1837
 
1838
  return apply_filters( 'woocommerce_product_get_image', $image, $this, $size, $attr, $placeholder, $image );
1844
  * @return string
1845
  */
1846
  public function get_shipping_class() {
1847
+ if ( $class_id = $this->get_shipping_class_id() ) { // @phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.Found, WordPress.CodeAnalysis.AssignmentInCondition.Found
1848
  $term = get_term_by( 'id', $class_id, 'product_shipping_class' );
1849
 
1850
  if ( $term && ! is_wp_error( $term ) ) {
1936
  public function get_price_suffix( $price = '', $qty = 1 ) {
1937
  $html = '';
1938
 
1939
+ if ( ( $suffix = get_option( 'woocommerce_price_display_suffix' ) ) && wc_tax_enabled() && 'taxable' === $this->get_tax_status() ) { // @phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.Found, WordPress.CodeAnalysis.AssignmentInCondition.Found
1940
  if ( '' === $price ) {
1941
  $price = $this->get_price();
1942
  }
1944
  '{price_including_tax}' => wc_price( wc_get_price_including_tax( $this, array( 'qty' => $qty, 'price' => $price ) ) ), // @phpcs:ignore WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine, WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound
1945
  '{price_excluding_tax}' => wc_price( wc_get_price_excluding_tax( $this, array( 'qty' => $qty, 'price' => $price ) ) ), // @phpcs:ignore WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound
1946
  );
1947
+ $html = str_replace( array_keys( $replacements ), array_values( $replacements ), ' <small class="woocommerce-price-suffix">' . wp_kses_post( $suffix ) . '</small>' );
1948
  }
1949
  return apply_filters( 'woocommerce_get_price_suffix', $html, $this, $price, $qty );
1950
  }
1955
  * @return string[]
1956
  */
1957
  public function get_availability() {
1958
+ return apply_filters(
1959
+ 'woocommerce_get_availability',
1960
+ array(
1961
+ 'availability' => $this->get_availability_text(),
1962
+ 'class' => $this->get_availability_class(),
1963
+ ),
1964
+ $this
1965
+ );
1966
  }
1967
 
1968
  /**
includes/abstracts/abstract-wc-rest-controller.php CHANGED
@@ -203,10 +203,12 @@ abstract class WC_REST_Controller extends WP_REST_Controller {
203
  }
204
 
205
  $_item = new WP_REST_Request( 'DELETE' );
206
- $_item->set_query_params( array(
207
- 'id' => $id,
208
- 'force' => true,
209
- ) );
 
 
210
  $_response = $this->delete_item( $_item );
211
 
212
  if ( is_wp_error( $_response ) ) {
@@ -350,7 +352,8 @@ abstract class WC_REST_Controller extends WP_REST_Controller {
350
  */
351
  public function validate_setting_textarea_field( $value, $setting ) {
352
  $value = is_null( $value ) ? '' : $value;
353
- return wp_kses( trim( stripslashes( $value ) ),
 
354
  array_merge(
355
  array(
356
  'iframe' => array(
@@ -374,7 +377,7 @@ abstract class WC_REST_Controller extends WP_REST_Controller {
374
  * @return array
375
  */
376
  protected function add_meta_query( $args, $meta_query ) {
377
- if ( ! empty( $args['meta_query'] ) ) {
378
  $args['meta_query'] = array();
379
  }
380
 
@@ -436,6 +439,16 @@ abstract class WC_REST_Controller extends WP_REST_Controller {
436
  public function get_fields_for_response( $request ) {
437
  $schema = $this->get_item_schema();
438
  $fields = isset( $schema['properties'] ) ? array_keys( $schema['properties'] ) : array();
 
 
 
 
 
 
 
 
 
 
439
  if ( ! isset( $request['_fields'] ) ) {
440
  return $fields;
441
  }
203
  }
204
 
205
  $_item = new WP_REST_Request( 'DELETE' );
206
+ $_item->set_query_params(
207
+ array(
208
+ 'id' => $id,
209
+ 'force' => true,
210
+ )
211
+ );
212
  $_response = $this->delete_item( $_item );
213
 
214
  if ( is_wp_error( $_response ) ) {
352
  */
353
  public function validate_setting_textarea_field( $value, $setting ) {
354
  $value = is_null( $value ) ? '' : $value;
355
+ return wp_kses(
356
+ trim( stripslashes( $value ) ),
357
  array_merge(
358
  array(
359
  'iframe' => array(
377
  * @return array
378
  */
379
  protected function add_meta_query( $args, $meta_query ) {
380
+ if ( empty( $args['meta_query'] ) ) {
381
  $args['meta_query'] = array();
382
  }
383
 
439
  public function get_fields_for_response( $request ) {
440
  $schema = $this->get_item_schema();
441
  $fields = isset( $schema['properties'] ) ? array_keys( $schema['properties'] ) : array();
442
+
443
+ $additional_fields = $this->get_additional_fields();
444
+ foreach ( $additional_fields as $field_name => $field_options ) {
445
+ // For back-compat, include any field with an empty schema
446
+ // because it won't be present in $this->get_item_schema().
447
+ if ( is_null( $field_options['schema'] ) ) {
448
+ $fields[] = $field_name;
449
+ }
450
+ }
451
+
452
  if ( ! isset( $request['_fields'] ) ) {
453
  return $fields;
454
  }
includes/abstracts/abstract-wc-rest-posts-controller.php CHANGED
@@ -530,6 +530,8 @@ abstract class WC_REST_Posts_Controller extends WC_REST_Controller {
530
  $query_args['orderby'] = 'post__in';
531
  } elseif ( 'id' === $query_args['orderby'] ) {
532
  $query_args['orderby'] = 'ID'; // ID must be capitalized.
 
 
533
  }
534
 
535
  return $query_args;
530
  $query_args['orderby'] = 'post__in';
531
  } elseif ( 'id' === $query_args['orderby'] ) {
532
  $query_args['orderby'] = 'ID'; // ID must be capitalized.
533
+ } elseif ( 'slug' === $query_args['orderby'] ) {
534
+ $query_args['orderby'] = 'name';
535
  }
536
 
537
  return $query_args;
includes/admin/class-wc-admin-dashboard.php CHANGED
@@ -329,7 +329,7 @@ if ( ! class_exists( 'WC_Admin_Dashboard', false ) ) :
329
  'wc-network-orders', 'woocommerce_network_orders', array(
330
  'nonce' => wp_create_nonce( 'wp_rest' ),
331
  'sites' => array_values( $blog_ids ),
332
- 'order_endpoint' => get_rest_url( null, 'wc/v2/orders/network' ),
333
  )
334
  );
335
  ?>
329
  'wc-network-orders', 'woocommerce_network_orders', array(
330
  'nonce' => wp_create_nonce( 'wp_rest' ),
331
  'sites' => array_values( $blog_ids ),
332
+ 'order_endpoint' => get_rest_url( null, 'wc/v3/orders/network' ),
333
  )
334
  );
335
  ?>
includes/admin/class-wc-admin-reports.php CHANGED
@@ -29,7 +29,7 @@ class WC_Admin_Reports {
29
  public static function output() {
30
  $reports = self::get_reports();
31
  $first_tab = array_keys( $reports );
32
- $current_tab = ! empty( $_GET['tab'] ) ? sanitize_title( $_GET['tab'] ) : $first_tab[0];
33
  $current_report = isset( $_GET['report'] ) ? sanitize_title( $_GET['report'] ) : current( array_keys( $reports[ $current_tab ]['reports'] ) );
34
 
35
  include_once dirname( __FILE__ ) . '/reports/class-wc-admin-report.php';
29
  public static function output() {
30
  $reports = self::get_reports();
31
  $first_tab = array_keys( $reports );
32
+ $current_tab = ! empty( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $reports ) ? sanitize_title( $_GET['tab'] ) : $first_tab[0];
33
  $current_report = isset( $_GET['report'] ) ? sanitize_title( $_GET['report'] ) : current( array_keys( $reports[ $current_tab ]['reports'] ) );
34
 
35
  include_once dirname( __FILE__ ) . '/reports/class-wc-admin-report.php';
includes/admin/class-wc-admin.php CHANGED
@@ -22,6 +22,7 @@ class WC_Admin {
22
  * Constructor.
23
  */
24
  public function __construct() {
 
25
  add_action( 'init', array( $this, 'includes' ) );
26
  add_action( 'current_screen', array( $this, 'conditional_includes' ) );
27
  add_action( 'admin_init', array( $this, 'buffer' ), 1 );
@@ -86,6 +87,13 @@ class WC_Admin {
86
  include_once dirname( __FILE__ ) . '/helper/class-wc-helper.php';
87
  }
88
 
 
 
 
 
 
 
 
89
  /**
90
  * Include admin files conditionally.
91
  */
22
  * Constructor.
23
  */
24
  public function __construct() {
25
+ add_action( 'plugins_loaded', array( $this, 'preload_helper' ), 9 );
26
  add_action( 'init', array( $this, 'includes' ) );
27
  add_action( 'current_screen', array( $this, 'conditional_includes' ) );
28
  add_action( 'admin_init', array( $this, 'buffer' ), 1 );
87
  include_once dirname( __FILE__ ) . '/helper/class-wc-helper.php';
88
  }
89
 
90
+ /**
91
+ * Preloads some functionality of the Helper to be loaded on the `plugins_loaded` hook
92
+ */
93
+ public function preload_helper() {
94
+ include_once dirname( __FILE__ ) . '/helper/class-wc-helper-file-headers.php';
95
+ }
96
+
97
  /**
98
  * Include admin files conditionally.
99
  */
includes/admin/helper/class-wc-helper-file-headers.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Admin
4
+ *
5
+ * @class WC_Admin
6
+ * @author WooThemes
7
+ * @category Admin
8
+ * @package WooCommerce/Admin
9
+ * @version 3.5.2
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * WC_Helper_File_Headers Class
18
+ *
19
+ * Adds some filters to be able to parse the `Woo` header from locally
20
+ * installed Woo plugins and themes
21
+ */
22
+ class WC_Helper_File_Headers {
23
+
24
+ /**
25
+ * Load functions adds the `extra_headers` filter on the `extra_plugin_headers`
26
+ * and `extra_theme_headers` hooks.
27
+ */
28
+ public static function load() {
29
+ add_filter( 'extra_plugin_headers', array( __CLASS__, 'extra_headers' ) );
30
+ add_filter( 'extra_theme_headers', array( __CLASS__, 'extra_headers' ) );
31
+ }
32
+
33
+ /**
34
+ * Additional theme style.css and plugin file headers.
35
+ *
36
+ * Format: Woo: product_id:file_id
37
+ */
38
+ public static function extra_headers( $headers ) {
39
+ $headers[] = 'Woo';
40
+ return $headers;
41
+ }
42
+ }
43
+
44
+ WC_Helper_File_Headers::load();
includes/admin/helper/class-wc-helper.php CHANGED
@@ -32,8 +32,6 @@ class WC_Helper {
32
  add_action( 'current_screen', array( __CLASS__, 'current_screen' ) );
33
  add_action( 'woocommerce_helper_output', array( __CLASS__, 'render_helper_output' ) );
34
  add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_enqueue_scripts' ) );
35
- add_filter( 'extra_plugin_headers', array( __CLASS__, 'extra_headers' ) );
36
- add_filter( 'extra_theme_headers', array( __CLASS__, 'extra_headers' ) );
37
 
38
  // Attempt to toggle subscription state upon plugin activation/deactivation
39
  add_action( 'activated_plugin', array( __CLASS__, 'activated_plugin' ) );
@@ -1008,16 +1006,6 @@ class WC_Helper {
1008
  return false;
1009
  }
1010
 
1011
- /**
1012
- * Additional theme style.css and plugin file headers.
1013
- *
1014
- * Format: Woo: product_id:file_id
1015
- */
1016
- public static function extra_headers( $headers ) {
1017
- $headers[] = 'Woo';
1018
- return $headers;
1019
- }
1020
-
1021
  /**
1022
  * Obtain a list of locally installed Woo extensions.
1023
  */
32
  add_action( 'current_screen', array( __CLASS__, 'current_screen' ) );
33
  add_action( 'woocommerce_helper_output', array( __CLASS__, 'render_helper_output' ) );
34
  add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_enqueue_scripts' ) );
 
 
35
 
36
  // Attempt to toggle subscription state upon plugin activation/deactivation
37
  add_action( 'activated_plugin', array( __CLASS__, 'activated_plugin' ) );
1006
  return false;
1007
  }
1008
 
 
 
 
 
 
 
 
 
 
 
1009
  /**
1010
  * Obtain a list of locally installed Woo extensions.
1011
  */
includes/admin/helper/views/html-oauth-start.php CHANGED
@@ -24,7 +24,7 @@ defined( 'ABSPATH' ) || exit();
24
 
25
  <h2><?php esc_html_e( 'Manage your subscriptions, get important product notifications, and updates, all from the convenience of your WooCommerce dashboard', 'woocommerce' ); ?></h2>
26
  <p><?php esc_html_e( 'Once connected, your WooCommerce.com purchases will be listed here.', 'woocommerce' ); ?></p>
27
- <p><a class="button button-primary" href="<?php echo esc_url( $connect_url ); ?>"><?php esc_html_e( 'Connect', 'woocommerce' ); ?></a></p>
28
  </div>
29
  </div>
30
  </div>
24
 
25
  <h2><?php esc_html_e( 'Manage your subscriptions, get important product notifications, and updates, all from the convenience of your WooCommerce dashboard', 'woocommerce' ); ?></h2>
26
  <p><?php esc_html_e( 'Once connected, your WooCommerce.com purchases will be listed here.', 'woocommerce' ); ?></p>
27
+ <p><a class="button button-primary button-helper-connect" href="<?php echo esc_url( $connect_url ); ?>"><?php esc_html_e( 'Connect', 'woocommerce' ); ?></a></p>
28
  </div>
29
  </div>
30
  </div>
includes/admin/meta-boxes/class-wc-meta-box-order-data.php CHANGED
@@ -535,7 +535,7 @@ class WC_Meta_Box_Order_Data {
535
 
536
  // Create order key.
537
  if ( ! $order->get_order_key() ) {
538
- $props['order_key'] = 'wc_' . apply_filters( 'woocommerce_generate_order_key', uniqid( 'order_' ) );
539
  }
540
 
541
  // Update customer.
535
 
536
  // Create order key.
537
  if ( ! $order->get_order_key() ) {
538
+ $props['order_key'] = wc_generate_order_key();
539
  }
540
 
541
  // Update customer.
includes/admin/meta-boxes/views/html-product-data-inventory.php CHANGED
@@ -71,19 +71,20 @@ if ( ! defined( 'ABSPATH' ) ) {
71
  )
72
  );
73
 
74
- woocommerce_wp_text_input( array(
75
- 'id' => '_low_stock_amount',
76
- 'value' => $product_object->get_low_stock_amount( 'edit' ),
77
- 'placeholder' => get_option( 'woocommerce_notify_low_stock_amount' ),
78
- 'label' => __( 'Low stock threshold', 'woocommerce' ),
79
- 'desc_tip' => true,
80
- 'description' => __( 'When product stock reaches this amount you will be notified by email', 'woocommerce' ),
81
- 'type' => 'number',
82
- 'custom_attributes' => array(
83
- 'step' => 'any',
84
- ),
85
- 'data_type' => 'stock',
86
- ) );
 
87
 
88
  do_action( 'woocommerce_product_options_stock_fields' );
89
 
71
  )
72
  );
73
 
74
+ woocommerce_wp_text_input(
75
+ array(
76
+ 'id' => '_low_stock_amount',
77
+ 'value' => $product_object->get_low_stock_amount( 'edit' ),
78
+ 'placeholder' => get_option( 'woocommerce_notify_low_stock_amount' ),
79
+ 'label' => __( 'Low stock threshold', 'woocommerce' ),
80
+ 'desc_tip' => true,
81
+ 'description' => __( 'When product stock reaches this amount you will be notified by email', 'woocommerce' ),
82
+ 'type' => 'number',
83
+ 'custom_attributes' => array(
84
+ 'step' => 'any',
85
+ ),
86
+ )
87
+ );
88
 
89
  do_action( 'woocommerce_product_options_stock_fields' );
90
 
includes/admin/reports/class-wc-report-taxes-by-code.php CHANGED
@@ -116,6 +116,7 @@ class WC_Report_Taxes_By_Code extends WC_Admin_Report {
116
  ),
117
  );
118
 
 
119
  $tax_rows_orders = $this->get_order_report_data(
120
  array(
121
  'data' => $query_data,
@@ -124,8 +125,8 @@ class WC_Report_Taxes_By_Code extends WC_Admin_Report {
124
  'query_type' => 'get_results',
125
  'filter_range' => true,
126
  'order_types' => array_merge( wc_get_order_types( 'sales-reports' ), array( 'shop_order_refund' ) ),
127
- 'order_status' => array( 'completed', 'processing', 'on-hold' ),
128
- 'parent_order_status' => array( 'completed', 'processing', 'on-hold' ), // Partial refunds inside refunded orders should be ignored
129
  )
130
  );
131
 
116
  ),
117
  );
118
 
119
+ // We exclude on-hold orders as they are still pending payment.
120
  $tax_rows_orders = $this->get_order_report_data(
121
  array(
122
  'data' => $query_data,
125
  'query_type' => 'get_results',
126
  'filter_range' => true,
127
  'order_types' => array_merge( wc_get_order_types( 'sales-reports' ), array( 'shop_order_refund' ) ),
128
+ 'order_status' => array( 'completed', 'processing' ),
129
+ 'parent_order_status' => array( 'completed', 'processing' ), // Partial refunds inside refunded orders should be ignored
130
  )
131
  );
132
 
includes/admin/reports/class-wc-report-taxes-by-date.php CHANGED
@@ -104,6 +104,7 @@ class WC_Report_Taxes_By_Date extends WC_Admin_Report {
104
  ),
105
  );
106
 
 
107
  $tax_rows_orders = $this->get_order_report_data(
108
  array(
109
  'data' => $query_data,
@@ -112,7 +113,7 @@ class WC_Report_Taxes_By_Date extends WC_Admin_Report {
112
  'query_type' => 'get_results',
113
  'filter_range' => true,
114
  'order_types' => wc_get_order_types( 'sales-reports' ),
115
- 'order_status' => array( 'completed', 'processing', 'on-hold', 'refunded' ),
116
  )
117
  );
118
 
@@ -151,7 +152,7 @@ class WC_Report_Taxes_By_Date extends WC_Admin_Report {
151
  'query_type' => 'get_results',
152
  'filter_range' => true,
153
  'order_types' => array( 'shop_order_refund' ),
154
- 'parent_order_status' => array( 'completed', 'processing', 'on-hold' ), // Partial refunds inside refunded orders should be ignored.
155
  )
156
  );
157
 
104
  ),
105
  );
106
 
107
+ // We exlude on-hold orders are they are still pending payment.
108
  $tax_rows_orders = $this->get_order_report_data(
109
  array(
110
  'data' => $query_data,
113
  'query_type' => 'get_results',
114
  'filter_range' => true,
115
  'order_types' => wc_get_order_types( 'sales-reports' ),
116
+ 'order_status' => array( 'completed', 'processing', 'refunded' ),
117
  )
118
  );
119
 
152
  'query_type' => 'get_results',
153
  'filter_range' => true,
154
  'order_types' => array( 'shop_order_refund' ),
155
+ 'parent_order_status' => array( 'completed', 'processing' ), // Partial refunds inside refunded orders should be ignored.
156
  )
157
  );
158
 
includes/api/class-wc-rest-orders-controller.php CHANGED
@@ -162,7 +162,7 @@ class WC_REST_Orders_Controller extends WC_REST_Orders_V2_Controller {
162
 
163
  // Make sure customer is part of blog.
164
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
165
- throw new WC_REST_Exception( 'woocommerce_rest_invalid_customer_id_network', __( 'Customer ID does not belong to this site.', 'woocommerce' ), 400 );
166
  }
167
  }
168
 
162
 
163
  // Make sure customer is part of blog.
164
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
165
+ add_user_to_blog( get_current_blog_id(), $request['customer_id'], 'customer' );
166
  }
167
  }
168
 
includes/api/class-wc-rest-product-variations-controller.php CHANGED
@@ -760,62 +760,6 @@ class WC_REST_Product_Variations_Controller extends WC_REST_Product_Variations_V
760
  // Set post_status.
761
  $args['post_status'] = $request['status'];
762
 
763
- // Taxonomy query to filter products by type, category,
764
- // tag, shipping class, and attribute.
765
- $tax_query = array();
766
-
767
- // Map between taxonomy name and arg's key.
768
- $taxonomies = array(
769
- 'product_cat' => 'category',
770
- 'product_tag' => 'tag',
771
- 'product_shipping_class' => 'shipping_class',
772
- );
773
-
774
- // Set tax_query for each passed arg.
775
- foreach ( $taxonomies as $taxonomy => $key ) {
776
- if ( ! empty( $request[ $key ] ) ) {
777
- $tax_query[] = array(
778
- 'taxonomy' => $taxonomy,
779
- 'field' => 'term_id',
780
- 'terms' => $request[ $key ],
781
- );
782
- }
783
- }
784
-
785
- // Filter product type by slug.
786
- if ( ! empty( $request['type'] ) ) {
787
- $tax_query[] = array(
788
- 'taxonomy' => 'product_type',
789
- 'field' => 'slug',
790
- 'terms' => $request['type'],
791
- );
792
- }
793
-
794
- // Filter by attribute and term.
795
- if ( ! empty( $request['attribute'] ) && ! empty( $request['attribute_term'] ) ) {
796
- if ( in_array( $request['attribute'], wc_get_attribute_taxonomy_names(), true ) ) {
797
- $tax_query[] = array(
798
- 'taxonomy' => $request['attribute'],
799
- 'field' => 'term_id',
800
- 'terms' => $request['attribute_term'],
801
- );
802
- }
803
- }
804
-
805
- if ( ! empty( $tax_query ) ) {
806
- $args['tax_query'] = $tax_query; // WPCS: slow query ok.
807
- }
808
-
809
- // Filter featured.
810
- if ( is_bool( $request['featured'] ) ) {
811
- $args['tax_query'][] = array(
812
- 'taxonomy' => 'product_visibility',
813
- 'field' => 'name',
814
- 'terms' => 'featured',
815
- 'operator' => true === $request['featured'] ? 'IN' : 'NOT IN',
816
- );
817
- }
818
-
819
  // Filter by sku.
820
  if ( ! empty( $request['sku'] ) ) {
821
  $skus = explode( ',', $request['sku'] );
@@ -825,7 +769,8 @@ class WC_REST_Product_Variations_Controller extends WC_REST_Product_Variations_V
825
  }
826
 
827
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
828
- $args, array(
 
829
  'key' => '_sku',
830
  'value' => $skus,
831
  'compare' => 'IN',
@@ -836,7 +781,8 @@ class WC_REST_Product_Variations_Controller extends WC_REST_Product_Variations_V
836
  // Filter by tax class.
837
  if ( ! empty( $request['tax_class'] ) ) {
838
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
839
- $args, array(
 
840
  'key' => '_tax_class',
841
  'value' => 'standard' !== $request['tax_class'] ? $request['tax_class'] : '',
842
  )
@@ -851,7 +797,8 @@ class WC_REST_Product_Variations_Controller extends WC_REST_Product_Variations_V
851
  // Filter product based on stock_status.
852
  if ( ! empty( $request['stock_status'] ) ) {
853
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
854
- $args, array(
 
855
  'key' => '_stock_status',
856
  'value' => $request['stock_status'],
857
  )
@@ -889,7 +836,17 @@ class WC_REST_Product_Variations_Controller extends WC_REST_Product_Variations_V
889
  public function get_collection_params() {
890
  $params = parent::get_collection_params();
891
 
892
- unset( $params['in_stock'] );
 
 
 
 
 
 
 
 
 
 
893
  $params['stock_status'] = array(
894
  'description' => __( 'Limit result set to products with specified stock status.', 'woocommerce' ),
895
  'type' => 'string',
760
  // Set post_status.
761
  $args['post_status'] = $request['status'];
762
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763
  // Filter by sku.
764
  if ( ! empty( $request['sku'] ) ) {
765
  $skus = explode( ',', $request['sku'] );
769
  }
770
 
771
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
772
+ $args,
773
+ array(
774
  'key' => '_sku',
775
  'value' => $skus,
776
  'compare' => 'IN',
781
  // Filter by tax class.
782
  if ( ! empty( $request['tax_class'] ) ) {
783
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
784
+ $args,
785
+ array(
786
  'key' => '_tax_class',
787
  'value' => 'standard' !== $request['tax_class'] ? $request['tax_class'] : '',
788
  )
797
  // Filter product based on stock_status.
798
  if ( ! empty( $request['stock_status'] ) ) {
799
  $args['meta_query'] = $this->add_meta_query( // WPCS: slow query ok.
800
+ $args,
801
+ array(
802
  'key' => '_stock_status',
803
  'value' => $request['stock_status'],
804
  )
836
  public function get_collection_params() {
837
  $params = parent::get_collection_params();
838
 
839
+ unset(
840
+ $params['in_stock'],
841
+ $params['type'],
842
+ $params['featured'],
843
+ $params['category'],
844
+ $params['tag'],
845
+ $params['shipping_class'],
846
+ $params['attribute'],
847
+ $params['attribute_term']
848
+ );
849
+
850
  $params['stock_status'] = array(
851
  'description' => __( 'Limit result set to products with specified stock status.', 'woocommerce' ),
852
  'type' => 'string',
includes/api/class-wc-rest-settings-controller.php CHANGED
@@ -61,7 +61,7 @@ class WC_REST_Settings_Controller extends WC_REST_Settings_V2_Controller {
61
  * @return WP_Error|WP_REST_Response
62
  */
63
  public function update_item( $request ) {
64
- $options_controller = new WC_REST_Dev_Setting_Options_Controller();
65
  $response = $options_controller->update_item( $request );
66
 
67
  return $response;
61
  * @return WP_Error|WP_REST_Response
62
  */
63
  public function update_item( $request ) {
64
+ $options_controller = new WC_REST_Setting_Options_Controller();
65
  $response = $options_controller->update_item( $request );
66
 
67
  return $response;
includes/api/legacy/class-wc-rest-legacy-orders-controller.php CHANGED
@@ -251,7 +251,7 @@ class WC_REST_Legacy_Orders_Controller extends WC_REST_CRUD_Controller {
251
 
252
  // Make sure customer is part of blog.
253
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
254
- throw new WC_REST_Exception( 'woocommerce_rest_invalid_customer_id_network',__( 'Customer ID does not belong to this site.', 'woocommerce' ), 400 );
255
  }
256
 
257
  $order = $this->prepare_item_for_database( $request );
251
 
252
  // Make sure customer is part of blog.
253
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
254
+ add_user_to_blog( get_current_blog_id(), $request['customer_id'], 'customer' );
255
  }
256
 
257
  $order = $this->prepare_item_for_database( $request );
includes/api/legacy/v2/class-wc-api-products.php CHANGED
@@ -1691,73 +1691,16 @@ class WC_API_Products extends WC_API_Resource {
1691
  *
1692
  * @param string $image_url
1693
  *
1694
- * @return array|WP_Error
1695
  *
1696
  * @throws WC_API_Exception
1697
  */
1698
  public function upload_product_image( $image_url ) {
1699
- $file_name = basename( current( explode( '?', $image_url ) ) );
1700
- $parsed_url = @parse_url( $image_url );
1701
-
1702
- // Check parsed URL
1703
- if ( ! $parsed_url || ! is_array( $parsed_url ) ) {
1704
- throw new WC_API_Exception( 'woocommerce_api_invalid_product_image', sprintf( __( 'Invalid URL %s.', 'woocommerce' ), $image_url ), 400 );
1705
- }
1706
-
1707
- // Ensure url is valid
1708
- $image_url = str_replace( ' ', '%20', $image_url );
1709
-
1710
- // Get the file
1711
- $response = wp_safe_remote_get( $image_url, array(
1712
- 'timeout' => 10,
1713
- ) );
1714
-
1715
- if ( is_wp_error( $response ) ) {
1716
- throw new WC_API_Exception( 'woocommerce_api_invalid_remote_product_image', sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ) . ' ' . sprintf( __( 'Error: %s.', 'woocommerce' ), $response->get_error_message() ), 400 );
1717
- } elseif ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
1718
- throw new WC_API_Exception( 'woocommerce_api_invalid_remote_product_image', sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ), 400 );
1719
- }
1720
-
1721
- // Ensure we have a file name and type
1722
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
1723
-
1724
- if ( ! $wp_filetype['type'] ) {
1725
- $headers = wp_remote_retrieve_headers( $response );
1726
- if ( isset( $headers['content-disposition'] ) && strstr( $headers['content-disposition'], 'filename=' ) ) {
1727
- $disposition = end( explode( 'filename=', $headers['content-disposition'] ) );
1728
- $disposition = sanitize_file_name( $disposition );
1729
- $file_name = $disposition;
1730
- } elseif ( isset( $headers['content-type'] ) && strstr( $headers['content-type'], 'image/' ) ) {
1731
- $file_name = 'image.' . str_replace( 'image/', '', $headers['content-type'] );
1732
- }
1733
- unset( $headers );
1734
-
1735
- // Recheck filetype
1736
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
1737
-
1738
- if ( ! $wp_filetype['type'] ) {
1739
- throw new WC_API_Exception( 'woocommerce_api_invalid_product_image', __( 'Invalid image type.', 'woocommerce' ), 400 );
1740
- }
1741
  }
1742
 
1743
- // Upload the file
1744
- $upload = wp_upload_bits( $file_name, '', wp_remote_retrieve_body( $response ) );
1745
-
1746
- if ( $upload['error'] ) {
1747
- throw new WC_API_Exception( 'woocommerce_api_product_image_upload_error', $upload['error'], 400 );
1748
- }
1749
-
1750
- // Get filesize
1751
- $filesize = filesize( $upload['file'] );
1752
-
1753
- if ( 0 == $filesize ) {
1754
- @unlink( $upload['file'] );
1755
- unset( $upload );
1756
- throw new WC_API_Exception( 'woocommerce_api_product_image_upload_file_error', __( 'Zero size file downloaded.', 'woocommerce' ), 400 );
1757
- }
1758
-
1759
- unset( $response );
1760
-
1761
  return $upload;
1762
  }
1763
 
1691
  *
1692
  * @param string $image_url
1693
  *
1694
+ * @return array
1695
  *
1696
  * @throws WC_API_Exception
1697
  */
1698
  public function upload_product_image( $image_url ) {
1699
+ $upload = wc_rest_upload_image_from_url( $image_url );
1700
+ if ( is_wp_error( $upload ) ) {
1701
+ throw new WC_API_Exception( 'woocommerce_api_product_image_upload_error', $upload->get_error_message(), 400 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1702
  }
1703
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1704
  return $upload;
1705
  }
1706
 
includes/api/legacy/v2/class-wc-api-webhooks.php CHANGED
@@ -195,7 +195,7 @@ class WC_API_Webhooks extends WC_API_Resource {
195
  'post_status' => 'publish',
196
  'ping_status' => 'closed',
197
  'post_author' => get_current_user_id(),
198
- 'post_password' => strlen( ( $password = uniqid( 'webhook_' ) ) ) > 20 ? substr( $password, 0, 20 ) : $password,
199
  'post_title' => ! empty( $data['name'] ) ? $data['name'] : sprintf( __( 'Webhook created on %s', 'woocommerce' ), strftime( _x( '%b %d, %Y @ %I:%M %p', 'Webhook created on date parsed by strftime', 'woocommerce' ) ) ),
200
  ), $data, $this );
201
 
195
  'post_status' => 'publish',
196
  'ping_status' => 'closed',
197
  'post_author' => get_current_user_id(),
198
+ 'post_password' => 'webhook_' . wp_generate_password(),
199
  'post_title' => ! empty( $data['name'] ) ? $data['name'] : sprintf( __( 'Webhook created on %s', 'woocommerce' ), strftime( _x( '%b %d, %Y @ %I:%M %p', 'Webhook created on date parsed by strftime', 'woocommerce' ) ) ),
200
  ), $data, $this );
201
 
includes/api/legacy/v3/class-wc-api-products.php CHANGED
@@ -2226,71 +2226,14 @@ class WC_API_Products extends WC_API_Resource {
2226
  * @since 2.5.0
2227
  * @param string $image_url
2228
  * @param string $upload_for
2229
- * @return array|WP_Error
2230
  */
2231
  protected function upload_image_from_url( $image_url, $upload_for = 'product_image' ) {
2232
- $file_name = basename( current( explode( '?', $image_url ) ) );
2233
- $parsed_url = @parse_url( $image_url );
2234
-
2235
- // Check parsed URL.
2236
- if ( ! $parsed_url || ! is_array( $parsed_url ) ) {
2237
- throw new WC_API_Exception( 'woocommerce_api_invalid_' . $upload_for, sprintf( __( 'Invalid URL %s.', 'woocommerce' ), $image_url ), 400 );
2238
- }
2239
-
2240
- // Ensure url is valid.
2241
- $image_url = str_replace( ' ', '%20', $image_url );
2242
-
2243
- // Get the file.
2244
- $response = wp_safe_remote_get( $image_url, array(
2245
- 'timeout' => 10,
2246
- ) );
2247
-
2248
- if ( is_wp_error( $response ) ) {
2249
- throw new WC_API_Exception( 'woocommerce_api_invalid_remote_' . $upload_for, sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ) . ' ' . sprintf( __( 'Error: %s.', 'woocommerce' ), $response->get_error_message() ), 400 );
2250
- } elseif ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
2251
- throw new WC_API_Exception( 'woocommerce_api_invalid_remote_' . $upload_for, sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ), 400 );
2252
- }
2253
-
2254
- // Ensure we have a file name and type.
2255
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
2256
-
2257
- if ( ! $wp_filetype['type'] ) {
2258
- $headers = wp_remote_retrieve_headers( $response );
2259
- if ( isset( $headers['content-disposition'] ) && strstr( $headers['content-disposition'], 'filename=' ) ) {
2260
- $disposition = end( explode( 'filename=', $headers['content-disposition'] ) );
2261
- $disposition = sanitize_file_name( $disposition );
2262
- $file_name = $disposition;
2263
- } elseif ( isset( $headers['content-type'] ) && strstr( $headers['content-type'], 'image/' ) ) {
2264
- $file_name = 'image.' . str_replace( 'image/', '', $headers['content-type'] );
2265
- }
2266
- unset( $headers );
2267
-
2268
- // Recheck filetype
2269
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
2270
-
2271
- if ( ! $wp_filetype['type'] ) {
2272
- throw new WC_API_Exception( 'woocommerce_api_invalid_' . $upload_for, __( 'Invalid image type.', 'woocommerce' ), 400 );
2273
- }
2274
  }
2275
 
2276
- // Upload the file.
2277
- $upload = wp_upload_bits( $file_name, '', wp_remote_retrieve_body( $response ) );
2278
-
2279
- if ( $upload['error'] ) {
2280
- throw new WC_API_Exception( 'woocommerce_api_' . $upload_for . '_upload_error', $upload['error'], 400 );
2281
- }
2282
-
2283
- // Get filesize.
2284
- $filesize = filesize( $upload['file'] );
2285
-
2286
- if ( 0 == $filesize ) {
2287
- @unlink( $upload['file'] );
2288
- unset( $upload );
2289
- throw new WC_API_Exception( 'woocommerce_api_' . $upload_for . '_upload_file_error', __( 'Zero size file downloaded.', 'woocommerce' ), 400 );
2290
- }
2291
-
2292
- unset( $response );
2293
-
2294
  do_action( 'woocommerce_api_uploaded_image_from_url', $upload, $image_url, $upload_for );
2295
 
2296
  return $upload;
2226
  * @since 2.5.0
2227
  * @param string $image_url
2228
  * @param string $upload_for
2229
+ * @return array
2230
  */
2231
  protected function upload_image_from_url( $image_url, $upload_for = 'product_image' ) {
2232
+ $upload = wc_rest_upload_image_from_url( $image_url );
2233
+ if ( is_wp_error( $upload ) ) {
2234
+ throw new WC_API_Exception( 'woocommerce_api_' . $upload_for . '_upload_error', $upload->get_error_message(), 400 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2235
  }
2236
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2237
  do_action( 'woocommerce_api_uploaded_image_from_url', $upload, $image_url, $upload_for );
2238
 
2239
  return $upload;
includes/api/legacy/v3/class-wc-api-webhooks.php CHANGED
@@ -195,7 +195,7 @@ class WC_API_Webhooks extends WC_API_Resource {
195
  'post_status' => 'publish',
196
  'ping_status' => 'closed',
197
  'post_author' => get_current_user_id(),
198
- 'post_password' => strlen( ( $password = uniqid( 'webhook_' ) ) ) > 20 ? substr( $password, 0, 20 ) : $password,
199
  'post_title' => ! empty( $data['name'] ) ? $data['name'] : sprintf( __( 'Webhook created on %s', 'woocommerce' ), strftime( _x( '%b %d, %Y @ %I:%M %p', 'Webhook created on date parsed by strftime', 'woocommerce' ) ) ),
200
  ), $data, $this );
201
 
195
  'post_status' => 'publish',
196
  'ping_status' => 'closed',
197
  'post_author' => get_current_user_id(),
198
+ 'post_password' => 'webhook_' . wp_generate_password(),
199
  'post_title' => ! empty( $data['name'] ) ? $data['name'] : sprintf( __( 'Webhook created on %s', 'woocommerce' ), strftime( _x( '%b %d, %Y @ %I:%M %p', 'Webhook created on date parsed by strftime', 'woocommerce' ) ) ),
200
  ), $data, $this );
201
 
includes/api/v1/class-wc-rest-orders-controller.php CHANGED
@@ -536,7 +536,7 @@ class WC_REST_Orders_V1_Controller extends WC_REST_Posts_Controller {
536
 
537
  // Make sure customer is part of blog.
538
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
539
- throw new WC_REST_Exception( 'woocommerce_rest_invalid_customer_id_network',__( 'Customer ID does not belong to this site.', 'woocommerce' ), 400 );
540
  }
541
 
542
  $order = $this->prepare_item_for_database( $request );
536
 
537
  // Make sure customer is part of blog.
538
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
539
+ add_user_to_blog( get_current_blog_id(), $request['customer_id'], 'customer' );
540
  }
541
 
542
  $order = $this->prepare_item_for_database( $request );
includes/api/v1/class-wc-rest-webhooks-controller.php CHANGED
@@ -408,7 +408,11 @@ class WC_REST_Webhooks_V1_Controller extends WC_REST_Controller {
408
 
409
  // Update status.
410
  if ( ! empty( $request['status'] ) ) {
411
- $webhook->set_status( $request['status'] );
 
 
 
 
412
  }
413
 
414
  $post = $this->prepare_item_for_database( $request );
@@ -503,8 +507,7 @@ class WC_REST_Webhooks_V1_Controller extends WC_REST_Controller {
503
  $data->post_author = get_current_user_id();
504
 
505
  // Post password.
506
- $password = strlen( uniqid( 'webhook_' ) );
507
- $data->post_password = $password > 20 ? substr( $password, 0, 20 ) : $password;
508
 
509
  // Post status.
510
  $data->post_status = 'publish';
@@ -626,11 +629,8 @@ class WC_REST_Webhooks_V1_Controller extends WC_REST_Controller {
626
  'description' => __( 'Webhook status.', 'woocommerce' ),
627
  'type' => 'string',
628
  'default' => 'active',
629
- 'enum' => array( 'active', 'paused', 'disabled' ),
630
  'context' => array( 'view', 'edit' ),
631
- 'arg_options' => array(
632
- 'sanitize_callback' => 'wc_is_webhook_valid_topic',
633
- ),
634
  ),
635
  'topic' => array(
636
  'description' => __( 'Webhook topic.', 'woocommerce' ),
408
 
409
  // Update status.
410
  if ( ! empty( $request['status'] ) ) {
411
+ if ( wc_is_webhook_valid_status( strtolower( $request['status'] ) ) ) {
412
+ $webhook->set_status( $request['status'] );
413
+ } else {
414
+ return new WP_Error( "woocommerce_rest_{$this->post_type}_invalid_status", __( 'Webhook status must be valid.', 'woocommerce' ), array( 'status' => 400 ) );
415
+ }
416
  }
417
 
418
  $post = $this->prepare_item_for_database( $request );
507
  $data->post_author = get_current_user_id();
508
 
509
  // Post password.
510
+ $data->post_password = 'webhook_' . wp_generate_password();
 
511
 
512
  // Post status.
513
  $data->post_status = 'publish';
629
  'description' => __( 'Webhook status.', 'woocommerce' ),
630
  'type' => 'string',
631
  'default' => 'active',
632
+ 'enum' => array_keys( wc_get_webhook_statuses() ),
633
  'context' => array( 'view', 'edit' ),
 
 
 
634
  ),
635
  'topic' => array(
636
  'description' => __( 'Webhook topic.', 'woocommerce' ),
includes/api/v2/class-wc-rest-network-orders-v2-controller.php CHANGED
@@ -31,7 +31,9 @@ class WC_REST_Network_Orders_V2_Controller extends WC_REST_Orders_V2_Controller
31
  public function register_routes() {
32
  if ( is_multisite() ) {
33
  register_rest_route(
34
- $this->namespace, '/' . $this->rest_base . '/network', array(
 
 
35
  array(
36
  'methods' => WP_REST_Server::READABLE,
37
  'callback' => array( $this, 'network_orders' ),
@@ -47,8 +49,6 @@ class WC_REST_Network_Orders_V2_Controller extends WC_REST_Orders_V2_Controller
47
  /**
48
  * Retrieves the item's schema for display / public consumption purposes.
49
  *
50
- * @access public
51
- *
52
  * @return array Public item schema data.
53
  */
54
  public function get_public_item_schema() {
@@ -118,9 +118,21 @@ class WC_REST_Network_Orders_V2_Controller extends WC_REST_Orders_V2_Controller
118
  public function network_orders( $request ) {
119
  $blog_id = $request->get_param( 'blog_id' );
120
  $blog_id = ! empty( $blog_id ) ? $blog_id : get_current_blog_id();
 
 
 
 
 
 
 
121
 
122
- switch_to_blog( $blog_id );
 
 
 
 
123
 
 
124
  add_filter( 'woocommerce_rest_orders_prepare_object_query', array( $this, 'network_orders_filter_args' ) );
125
  $items = $this->get_items( $request );
126
  remove_filter( 'woocommerce_rest_orders_prepare_object_query', array( $this, 'network_orders_filter_args' ) );
31
  public function register_routes() {
32
  if ( is_multisite() ) {
33
  register_rest_route(
34
+ $this->namespace,
35
+ '/' . $this->rest_base . '/network',
36
+ array(
37
  array(
38
  'methods' => WP_REST_Server::READABLE,
39
  'callback' => array( $this, 'network_orders' ),
49
  /**
50
  * Retrieves the item's schema for display / public consumption purposes.
51
  *
 
 
52
  * @return array Public item schema data.
53
  */
54
  public function get_public_item_schema() {
118
  public function network_orders( $request ) {
119
  $blog_id = $request->get_param( 'blog_id' );
120
  $blog_id = ! empty( $blog_id ) ? $blog_id : get_current_blog_id();
121
+ $active_plugins = get_blog_option( $blog_id, 'active_plugins', array() );
122
+ $wc_active = false;
123
+ foreach ( $active_plugins as $plugin ) {
124
+ if ( substr_compare( $plugin, '/woocommerce.php', strlen( $plugin ) - strlen( '/woocommerce.php' ), strlen( '/woocommerce.php' ) ) === 0 ) {
125
+ $wc_active = true;
126
+ }
127
+ }
128
 
129
+ // If WooCommerce not active for site, return an empty response.
130
+ if ( ! $wc_active ) {
131
+ $response = rest_ensure_response( array() );
132
+ return $response;
133
+ }
134
 
135
+ switch_to_blog( $blog_id );
136
  add_filter( 'woocommerce_rest_orders_prepare_object_query', array( $this, 'network_orders_filter_args' ) );
137
  $items = $this->get_items( $request );
138
  remove_filter( 'woocommerce_rest_orders_prepare_object_query', array( $this, 'network_orders_filter_args' ) );
includes/api/v2/class-wc-rest-orders-v2-controller.php CHANGED
@@ -58,7 +58,9 @@ class WC_REST_Orders_V2_Controller extends WC_REST_Legacy_Orders_Controller {
58
  */
59
  public function register_routes() {
60
  register_rest_route(
61
- $this->namespace, '/' . $this->rest_base, array(
 
 
62
  array(
63
  'methods' => WP_REST_Server::READABLE,
64
  'callback' => array( $this, 'get_items' ),
@@ -76,7 +78,9 @@ class WC_REST_Orders_V2_Controller extends WC_REST_Legacy_Orders_Controller {
76
  );
77
 
78
  register_rest_route(
79
- $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
 
 
80
  'args' => array(
81
  'id' => array(
82
  'description' => __( 'Unique identifier for the resource.', 'woocommerce' ),
@@ -114,7 +118,9 @@ class WC_REST_Orders_V2_Controller extends WC_REST_Legacy_Orders_Controller {
114
  );
115
 
116
  register_rest_route(
117
- $this->namespace, '/' . $this->rest_base . '/batch', array(
 
 
118
  array(
119
  'methods' => WP_REST_Server::EDITABLE,
120
  'callback' => array( $this, 'batch_items' ),
@@ -382,12 +388,11 @@ class WC_REST_Orders_V2_Controller extends WC_REST_Legacy_Orders_Controller {
382
  if ( ! empty( $request['product'] ) ) {
383
  $order_ids = $wpdb->get_col(
384
  $wpdb->prepare(
385
- "
386
- SELECT order_id
387
- FROM {$wpdb->prefix}woocommerce_order_items
388
- WHERE order_item_id IN ( SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_itemmeta WHERE meta_key = '_product_id' AND meta_value = %d )
389
- AND order_item_type = 'line_item'
390
- ", $request['product']
391
  )
392
  );
393
 
@@ -529,7 +534,7 @@ class WC_REST_Orders_V2_Controller extends WC_REST_Legacy_Orders_Controller {
529
 
530
  // Make sure customer is part of blog.
531
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
532
- throw new WC_REST_Exception( 'woocommerce_rest_invalid_customer_id_network', __( 'Customer ID does not belong to this site.', 'woocommerce' ), 400 );
533
  }
534
  }
535
 
58
  */
59
  public function register_routes() {
60
  register_rest_route(
61
+ $this->namespace,
62
+ '/' . $this->rest_base,
63
+ array(
64
  array(
65
  'methods' => WP_REST_Server::READABLE,
66
  'callback' => array( $this, 'get_items' ),
78
  );
79
 
80
  register_rest_route(
81
+ $this->namespace,
82
+ '/' . $this->rest_base . '/(?P<id>[\d]+)',
83
+ array(
84
  'args' => array(
85
  'id' => array(
86
  'description' => __( 'Unique identifier for the resource.', 'woocommerce' ),
118
  );
119
 
120
  register_rest_route(
121
+ $this->namespace,
122
+ '/' . $this->rest_base . '/batch',
123
+ array(
124
  array(
125
  'methods' => WP_REST_Server::EDITABLE,
126
  'callback' => array( $this, 'batch_items' ),
388
  if ( ! empty( $request['product'] ) ) {
389
  $order_ids = $wpdb->get_col(
390
  $wpdb->prepare(
391
+ "SELECT order_id
392
+ FROM {$wpdb->prefix}woocommerce_order_items
393
+ WHERE order_item_id IN ( SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_itemmeta WHERE meta_key = '_product_id' AND meta_value = %d )
394
+ AND order_item_type = 'line_item'",
395
+ $request['product']
 
396
  )
397
  );
398
 
534
 
535
  // Make sure customer is part of blog.
536
  if ( is_multisite() && ! is_user_member_of_blog( $request['customer_id'] ) ) {
537
+ add_user_to_blog( get_current_blog_id(), $request['customer_id'], 'customer' );
538
  }
539
  }
540
 
includes/api/v2/class-wc-rest-products-v2-controller.php CHANGED
@@ -58,7 +58,8 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
58
  */
59
  public function register_routes() {
60
  register_rest_route(
61
- $this->namespace, '/' . $this->rest_base, array(
 
62
  array(
63
  'methods' => WP_REST_Server::READABLE,
64
  'callback' => array( $this, 'get_items' ),
@@ -76,7 +77,8 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
76
  );
77
 
78
  register_rest_route(
79
- $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
 
80
  'args' => array(
81
  'id' => array(
82
  'description' => __( 'Unique identifier for the resource.', 'woocommerce' ),
@@ -118,7 +120,8 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
118
  );
119
 
120
  register_rest_route(
121
- $this->namespace, '/' . $this->rest_base . '/batch', array(
 
122
  array(
123
  'methods' => WP_REST_Server::EDITABLE,
124
  'callback' => array( $this, 'batch_items' ),
@@ -133,8 +136,9 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
133
  /**
134
  * Get object.
135
  *
 
 
136
  * @since 3.0.0
137
- * @param int $id Object ID.
138
  * @return WC_Data
139
  */
140
  protected function get_object( $id ) {
@@ -144,9 +148,10 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
144
  /**
145
  * Prepare a single product output for response.
146
  *
 
 
 
147
  * @since 3.0.0
148
- * @param WC_Data $object Object data.
149
- * @param WP_REST_Request $request Request object.
150
  * @return WP_REST_Response
151
  */
152
  public function prepare_object_for_response( $object, $request ) {
@@ -184,8 +189,9 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
184
  /**
185
  * Prepare objects query.
186
  *
 
 
187
  * @since 3.0.0
188
- * @param WP_REST_Request $request Full details about the request.
189
  * @return array
190
  */
191
  protected function prepare_objects_query( $request ) {
@@ -317,6 +323,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
317
  * Get the downloads for a product or product variation.
318
  *
319
  * @param WC_Product|WC_Product_Variation $product Product instance.
 
320
  * @return array
321
  */
322
  protected function get_downloads( $product ) {
@@ -340,6 +347,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
340
  *
341
  * @param WC_Product $product Product instance.
342
  * @param string $taxonomy Taxonomy slug.
 
343
  * @return array
344
  */
345
  protected function get_taxonomy_terms( $product, $taxonomy = 'cat' ) {
@@ -360,6 +368,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
360
  * Get the images for a product or product variation.
361
  *
362
  * @param WC_Product|WC_Product_Variation $product Product instance.
 
363
  * @return array
364
  */
365
  protected function get_images( $product ) {
@@ -420,10 +429,10 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
420
  /**
421
  * Get attribute taxonomy label.
422
  *
423
- * @deprecated 3.0.0
424
  *
425
- * @param string $name Taxonomy name.
426
- * @return string
427
  */
428
  protected function get_attribute_taxonomy_label( $name ) {
429
  $tax = get_taxonomy( $name );
@@ -435,9 +444,10 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
435
  /**
436
  * Get product attribute taxonomy name.
437
  *
 
 
 
438
  * @since 3.0.0
439
- * @param string $slug Taxonomy name.
440
- * @param WC_Product $product Product data.
441
  * @return string
442
  */
443
  protected function get_attribute_taxonomy_name( $slug, $product ) {
@@ -463,6 +473,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
463
  * Get default attributes.
464
  *
465
  * @param WC_Product $product Product instance.
 
466
  * @return array
467
  */
468
  protected function get_default_attributes( $product ) {
@@ -494,6 +505,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
494
  *
495
  * @param int $product_id Product ID.
496
  * @param array $attribute Attribute data.
 
497
  * @return array
498
  */
499
  protected function get_attribute_options( $product_id, $attribute ) {
@@ -514,6 +526,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
514
  * Get the attributes for a product or product variation.
515
  *
516
  * @param WC_Product|WC_Product_Variation $product Product instance.
 
517
  * @return array
518
  */
519
  protected function get_attributes( $product ) {
@@ -524,7 +537,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
524
  foreach ( $product->get_variation_attributes() as $attribute_name => $attribute ) {
525
  $name = str_replace( 'attribute_', '', $attribute_name );
526
 
527
- if ( ! $attribute ) {
528
  continue;
529
  }
530
 
@@ -566,6 +579,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
566
  * @param WC_Product $product Product instance.
567
  * @param string $context Request context.
568
  * Options: 'view' and 'edit'.
 
569
  * @return array
570
  */
571
  protected function get_product_data( $product, $context = 'view' ) {
@@ -649,21 +663,22 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
649
  *
650
  * @param WC_Data $object Object data.
651
  * @param WP_REST_Request $request Request object.
 
652
  * @return array Links for the given post.
653
  */
654
  protected function prepare_links( $object, $request ) {
655
  $links = array(
656
  'self' => array(
657
- 'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ),
658
  ),
659
  'collection' => array(
660
- 'href' => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
661
  ),
662
  );
663
 
664
  if ( $object->get_parent_id() ) {
665
  $links['up'] = array(
666
- 'href' => rest_url( sprintf( '/%s/products/%d', $this->namespace, $object->get_parent_id() ) ),
667
  );
668
  }
669
 
@@ -673,8 +688,9 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
673
  /**
674
  * Prepare a single product for create or update.
675
  *
676
- * @param WP_REST_Request $request Request object.
677
- * @param bool $creating If is creating a new object.
 
678
  * @return WP_Error|WC_Data
679
  */
680
  protected function prepare_object_for_database( $request, $creating = false ) {
@@ -1055,9 +1071,10 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1055
  /**
1056
  * Set product images.
1057
  *
1058
- * @throws WC_REST_Exception REST API exceptions.
1059
  * @param WC_Product $product Product instance.
1060
  * @param array $images Images data.
 
 
1061
  * @return WC_Product
1062
  */
1063
  protected function set_product_images( $product, $images ) {
@@ -1136,6 +1153,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1136
  *
1137
  * @param WC_Product $product Product instance.
1138
  * @param array $data Shipping data.
 
1139
  * @return WC_Product
1140
  */
1141
  protected function save_product_shipping_data( $product, $data ) {
@@ -1181,7 +1199,8 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1181
  *
1182
  * @param WC_Product $product Product instance.
1183
  * @param array $downloads Downloads data.
1184
- * @param int $deprecated Deprecated since 3.0.
 
1185
  * @return WC_Product
1186
  */
1187
  protected function save_downloadable_files( $product, $downloads, $deprecated = 0 ) {
@@ -1212,6 +1231,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1212
  * @param WC_Product $product Product instance.
1213
  * @param array $terms Terms data.
1214
  * @param string $taxonomy Taxonomy name.
 
1215
  * @return WC_Product
1216
  */
1217
  protected function save_taxonomy_terms( $product, $terms, $taxonomy = 'cat' ) {
@@ -1229,10 +1249,10 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1229
  /**
1230
  * Save default attributes.
1231
  *
1232
- * @since 3.0.0
1233
- *
1234
  * @param WC_Product $product Product instance.
1235
  * @param WP_REST_Request $request Request data.
 
 
1236
  * @return WC_Product
1237
  */
1238
  protected function save_default_attributes( $product, $request ) {
@@ -1301,6 +1321,7 @@ class WC_REST_Products_V2_Controller extends WC_REST_Legacy_Products_Controller
1301
  * Delete a single item.
1302
  *
1303
  * @param WP_REST_Request $request Full details about the request.
 
1304
  * @return WP_REST_Response|WP_Error
1305
  */
1306
  public function delete_item( $request ) {
58
  */
59
  public function register_routes() {
60
  register_rest_route(
61
+ $this->namespace, '/' . $this->rest_base, // @codingStandardsIgnoreLine.
62
+ array(
63
  array(
64
  'methods' => WP_REST_Server::READABLE,
65
  'callback' => array( $this, 'get_items' ),
77
  );
78
 
79
  register_rest_route(
80
+ $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', // @codingStandardsIgnoreLine.
81
+ array(
82
  'args' => array(
83
  'id' => array(
84
  'description' => __( 'Unique identifier for the resource.', 'woocommerce' ),
120
  );
121
 
122
  register_rest_route(
123
+ $this->namespace, '/' . $this->rest_base . '/batch', // @codingStandardsIgnoreLine.
124
+ array(
125
  array(
126
  'methods' => WP_REST_Server::EDITABLE,
127
  'callback' => array( $this, 'batch_items' ),
136
  /**
137
  * Get object.
138
  *
139
+ * @param int $id Object ID.
140
+ *
141
  * @since 3.0.0
 
142
  * @return WC_Data
143
  */
144
  protected function get_object( $id ) {
148
  /**
149
  * Prepare a single product output for response.
150
  *
151
+ * @param WC_Data $object Object data.
152
+ * @param WP_REST_Request $request Request object.
153
+ *
154
  * @since 3.0.0
 
 
155
  * @return WP_REST_Response
156
  */
157
  public function prepare_object_for_response( $object, $request ) {
189
  /**
190
  * Prepare objects query.
191
  *
192
+ * @param WP_REST_Request $request Full details about the request.
193
+ *
194
  * @since 3.0.0
 
195
  * @return array
196
  */
197
  protected function prepare_objects_query( $request ) {
323
  * Get the downloads for a product or product variation.
324
  *
325
  * @param WC_Product|WC_Product_Variation $product Product instance.
326
+ *
327
  * @return array
328
  */
329
  protected function get_downloads( $product ) {
347
  *
348
  * @param WC_Product $product Product instance.
349
  * @param string $taxonomy Taxonomy slug.
350
+ *
351
  * @return array
352
  */
353
  protected function get_taxonomy_terms( $product, $taxonomy = 'cat' ) {
368
  * Get the images for a product or product variation.
369
  *
370
  * @param WC_Product|WC_Product_Variation $product Product instance.
371
+ *
372
  * @return array
373
  */
374
  protected function get_images( $product ) {
429
  /**
430
  * Get attribute taxonomy label.
431
  *
432
+ * @param string $name Taxonomy name.
433
  *
434
+ * @deprecated 3.0.0
435
+ * @return string
436
  */
437
  protected function get_attribute_taxonomy_label( $name ) {
438
  $tax = get_taxonomy( $name );
444
  /**
445
  * Get product attribute taxonomy name.
446
  *
447
+ * @param string $slug Taxonomy name.
448
+ * @param WC_Product $product Product data.
449
+ *
450
  * @since 3.0.0
 
 
451
  * @return string
452
  */
453
  protected function get_attribute_taxonomy_name( $slug, $product ) {
473
  * Get default attributes.
474
  *
475
  * @param WC_Product $product Product instance.
476
+ *
477
  * @return array
478
  */
479
  protected function get_default_attributes( $product ) {
505
  *
506
  * @param int $product_id Product ID.
507
  * @param array $attribute Attribute data.
508
+ *
509
  * @return array
510
  */
511
  protected function get_attribute_options( $product_id, $attribute ) {
526
  * Get the attributes for a product or product variation.
527
  *
528
  * @param WC_Product|WC_Product_Variation $product Product instance.
529
+ *
530
  * @return array
531
  */
532
  protected function get_attributes( $product ) {
537
  foreach ( $product->get_variation_attributes() as $attribute_name => $attribute ) {
538
  $name = str_replace( 'attribute_', '', $attribute_name );
539
 
540
+ if ( empty( $attribute ) && '0' !== $attribute ) {
541
  continue;
542
  }
543
 
579
  * @param WC_Product $product Product instance.
580
  * @param string $context Request context.
581
  * Options: 'view' and 'edit'.
582
+ *
583
  * @return array
584
  */
585
  protected function get_product_data( $product, $context = 'view' ) {
663
  *
664
  * @param WC_Data $object Object data.
665
  * @param WP_REST_Request $request Request object.
666
+ *
667
  * @return array Links for the given post.
668
  */
669
  protected function prepare_links( $object, $request ) {
670
  $links = array(
671
  'self' => array(
672
+ 'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ), // @codingStandardsIgnoreLine.
673
  ),
674
  'collection' => array(
675
+ 'href' => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ), // @codingStandardsIgnoreLine.
676
  ),
677
  );
678
 
679
  if ( $object->get_parent_id() ) {
680
  $links['up'] = array(
681
+ 'href' => rest_url( sprintf( '/%s/products/%d', $this->namespace, $object->get_parent_id() ) ), // @codingStandardsIgnoreLine.
682
  );
683
  }
684
 
688
  /**
689
  * Prepare a single product for create or update.
690
  *
691
+ * @param WP_REST_Request $request Request object.
692
+ * @param bool $creating If is creating a new object.
693
+ *
694
  * @return WP_Error|WC_Data
695
  */
696
  protected function prepare_object_for_database( $request, $creating = false ) {
1071
  /**
1072
  * Set product images.
1073
  *
 
1074
  * @param WC_Product $product Product instance.
1075
  * @param array $images Images data.
1076
+ *
1077
+ * @throws WC_REST_Exception REST API exceptions.
1078
  * @return WC_Product
1079
  */
1080
  protected function set_product_images( $product, $images ) {
1153
  *
1154
  * @param WC_Product $product Product instance.
1155
  * @param array $data Shipping data.
1156
+ *
1157
  * @return WC_Product
1158
  */
1159
  protected function save_product_shipping_data( $product, $data ) {
1199
  *
1200
  * @param WC_Product $product Product instance.
1201
  * @param array $downloads Downloads data.
1202
+ * @param int $deprecated Deprecated since 3.0
1203
+ *
1204
  * @return WC_Product
1205
  */
1206
  protected function save_downloadable_files( $product, $downloads, $deprecated = 0 ) {
1231
  * @param WC_Product $product Product instance.
1232
  * @param array $terms Terms data.
1233
  * @param string $taxonomy Taxonomy name.
1234
+ *
1235
  * @return WC_Product
1236
  */
1237
  protected function save_taxonomy_terms( $product, $terms, $taxonomy = 'cat' ) {
1249
  /**
1250
  * Save default attributes.
1251
  *
 
 
1252
  * @param WC_Product $product Product instance.
1253
  * @param WP_REST_Request $request Request data.
1254
+ *
1255
+ * @since 3.0.0
1256
  * @return WC_Product
1257
  */
1258
  protected function save_default_attributes( $product, $request ) {
1321
  * Delete a single item.
1322
  *
1323
  * @param WP_REST_Request $request Full details about the request.
1324
+ *
1325
  * @return WP_REST_Response|WP_Error
1326
  */
1327
  public function delete_item( $request ) {
includes/api/v2/class-wc-rest-webhooks-v2-controller.php CHANGED
@@ -109,11 +109,8 @@ class WC_REST_Webhooks_V2_Controller extends WC_REST_Webhooks_V1_Controller {
109
  'description' => __( 'Webhook status.', 'woocommerce' ),
110
  'type' => 'string',
111
  'default' => 'active',
112
- 'enum' => array( 'active', 'paused', 'disabled' ),
113
  'context' => array( 'view', 'edit' ),
114
- 'arg_options' => array(
115
- 'sanitize_callback' => 'wc_is_webhook_valid_topic',
116
- ),
117
  ),
118
  'topic' => array(
119
  'description' => __( 'Webhook topic.', 'woocommerce' ),
109
  'description' => __( 'Webhook status.', 'woocommerce' ),
110
  'type' => 'string',
111
  'default' => 'active',
112
+ 'enum' => array_keys( wc_get_webhook_statuses() ),
113
  'context' => array( 'view', 'edit' ),
 
 
 
114
  ),
115
  'topic' => array(
116
  'description' => __( 'Webhook topic.', 'woocommerce' ),
includes/class-wc-ajax.php CHANGED
@@ -676,7 +676,7 @@ class WC_AJAX {
676
  $variation_object->set_attributes( array_fill_keys( array_map( 'sanitize_title', array_keys( $product_object->get_variation_attributes() ) ), '' ) );
677
  $variation_id = $variation_object->save();
678
  $variation = get_post( $variation_id );
679
- $variation_data = array_merge( array_map( 'maybe_unserialize', get_post_custom( $variation_id ) ), wc_get_product_variation_attributes( $variation_id ) ); // kept for BW compatibility.
680
  include 'admin/meta-boxes/views/html-variation-admin.php';
681
  wp_die();
682
  }
@@ -1867,7 +1867,7 @@ class WC_AJAX {
1867
  foreach ( $variations as $variation_object ) {
1868
  $variation_id = $variation_object->get_id();
1869
  $variation = get_post( $variation_id );
1870
- $variation_data = array_merge( array_map( 'maybe_unserialize', get_post_custom( $variation_id ) ), wc_get_product_variation_attributes( $variation_id ) ); // kept for BW compatibility.
1871
  include 'admin/meta-boxes/views/html-variation-admin.php';
1872
  $loop++;
1873
  }
@@ -2360,7 +2360,7 @@ class WC_AJAX {
2360
  wp_die();
2361
  }
2362
 
2363
- $changes = $_POST['changes'];
2364
  foreach ( $changes as $tax_rate_id => $data ) {
2365
  if ( isset( $data['deleted'] ) ) {
2366
  if ( isset( $data['newRow'] ) ) {
676
  $variation_object->set_attributes( array_fill_keys( array_map( 'sanitize_title', array_keys( $product_object->get_variation_attributes() ) ), '' ) );
677
  $variation_id = $variation_object->save();
678
  $variation = get_post( $variation_id );
679
+ $variation_data = array_merge( get_post_custom( $variation_id ), wc_get_product_variation_attributes( $variation_id ) ); // kept for BW compatibility.
680
  include 'admin/meta-boxes/views/html-variation-admin.php';
681
  wp_die();
682
  }
1867
  foreach ( $variations as $variation_object ) {
1868
  $variation_id = $variation_object->get_id();
1869
  $variation = get_post( $variation_id );
1870
+ $variation_data = array_merge( get_post_custom( $variation_id ), wc_get_product_variation_attributes( $variation_id ) ); // kept for BW compatibility.
1871
  include 'admin/meta-boxes/views/html-variation-admin.php';
1872
  $loop++;
1873
  }
2360
  wp_die();
2361
  }
2362
 
2363
+ $changes = stripslashes_deep( $_POST['changes'] );
2364
  foreach ( $changes as $tax_rate_id => $data ) {
2365
  if ( isset( $data['deleted'] ) ) {
2366
  if ( isset( $data['newRow'] ) ) {
includes/class-wc-cart-session.php CHANGED
@@ -70,7 +70,6 @@ final class WC_Cart_Session {
70
 
71
  $update_cart_session = false; // Flag to indicate the stored cart should be updated.
72
  $order_again = false; // Flag to indicate whether this is a re-order.
73
-
74
  $cart = WC()->session->get( 'cart', null );
75
  $merge_saved_cart = (bool) get_user_meta( get_current_user_id(), '_woocommerce_load_saved_cart_after_login', true );
76
 
@@ -121,7 +120,8 @@ final class WC_Cart_Session {
121
  } else {
122
  // Put session data into array. Run through filter so other plugins can load their own session data.
123
  $session_data = array_merge(
124
- $values, array(
 
125
  'data' => $product,
126
  )
127
  );
@@ -148,7 +148,7 @@ final class WC_Cart_Session {
148
 
149
  // If this is a re-order, redirect to the cart page to get rid of the `order_again` query string.
150
  if ( $order_again ) {
151
- wp_redirect( wc_get_page_permalink( 'cart' ) );
152
  exit;
153
  }
154
  }
@@ -219,7 +219,9 @@ final class WC_Cart_Session {
219
  public function persistent_cart_update() {
220
  if ( get_current_user_id() && apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
221
  update_user_meta(
222
- get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), array(
 
 
223
  'cart' => $this->get_cart_for_session(),
224
  )
225
  );
@@ -310,6 +312,11 @@ final class WC_Cart_Session {
310
  continue;
311
  }
312
 
 
 
 
 
 
313
  foreach ( $item->get_meta_data() as $meta ) {
314
  if ( taxonomy_is_product_attribute( $meta->key ) ) {
315
  $term = get_term_by( 'slug', $meta->value, $meta->key );
@@ -327,8 +334,10 @@ final class WC_Cart_Session {
327
  $cart_id = WC()->cart->generate_cart_id( $product_id, $variation_id, $variations, $cart_item_data );
328
  $product_data = wc_get_product( $variation_id ? $variation_id : $product_id );
329
  $cart[ $cart_id ] = apply_filters(
330
- 'woocommerce_add_order_again_cart_item', array_merge(
331
- $cart_item_data, array(
 
 
332
  'key' => $cart_id,
333
  'product_id' => $product_id,
334
  'variation_id' => $variation_id,
@@ -337,7 +346,8 @@ final class WC_Cart_Session {
337
  'data' => $product_data,
338
  'data_hash' => wc_get_cart_item_data_hash( $product_data ),
339
  )
340
- ), $cart_id
 
341
  );
342
  }
343
 
@@ -354,10 +364,10 @@ final class WC_Cart_Session {
354
  _n(
355
  '%d item from your previous order is currently unavailable and could not be added to your cart.',
356
  '%d items from your previous order are currently unavailable and could not be added to your cart.',
357
- $num_items_added,
358
  'woocommerce'
359
  ),
360
- $num_items_added
361
  ),
362
  'error'
363
  );
70
 
71
  $update_cart_session = false; // Flag to indicate the stored cart should be updated.
72
  $order_again = false; // Flag to indicate whether this is a re-order.
 
73
  $cart = WC()->session->get( 'cart', null );
74
  $merge_saved_cart = (bool) get_user_meta( get_current_user_id(), '_woocommerce_load_saved_cart_after_login', true );
75
 
120
  } else {
121
  // Put session data into array. Run through filter so other plugins can load their own session data.
122
  $session_data = array_merge(
123
+ $values,
124
+ array(
125
  'data' => $product,
126
  )
127
  );
148
 
149
  // If this is a re-order, redirect to the cart page to get rid of the `order_again` query string.
150
  if ( $order_again ) {
151
+ wp_safe_redirect( wc_get_page_permalink( 'cart' ) );
152
  exit;
153
  }
154
  }
219
  public function persistent_cart_update() {
220
  if ( get_current_user_id() && apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
221
  update_user_meta(
222
+ get_current_user_id(),
223
+ '_woocommerce_persistent_cart_' . get_current_blog_id(),
224
+ array(
225
  'cart' => $this->get_cart_for_session(),
226
  )
227
  );
312
  continue;
313
  }
314
 
315
+ // Prevent reordering items specifically out of stock.
316
+ if ( ! $product->is_in_stock() ) {
317
+ continue;
318
+ }
319
+
320
  foreach ( $item->get_meta_data() as $meta ) {
321
  if ( taxonomy_is_product_attribute( $meta->key ) ) {
322
  $term = get_term_by( 'slug', $meta->value, $meta->key );
334
  $cart_id = WC()->cart->generate_cart_id( $product_id, $variation_id, $variations, $cart_item_data );
335
  $product_data = wc_get_product( $variation_id ? $variation_id : $product_id );
336
  $cart[ $cart_id ] = apply_filters(
337
+ 'woocommerce_add_order_again_cart_item',
338
+ array_merge(
339
+ $cart_item_data,
340
+ array(
341
  'key' => $cart_id,
342
  'product_id' => $product_id,
343
  'variation_id' => $variation_id,
346
  'data' => $product_data,
347
  'data_hash' => wc_get_cart_item_data_hash( $product_data ),
348
  )
349
+ ),
350
+ $cart_id
351
  );
352
  }
353
 
364
  _n(
365
  '%d item from your previous order is currently unavailable and could not be added to your cart.',
366
  '%d items from your previous order are currently unavailable and could not be added to your cart.',
367
+ $num_items_in_original_order - $num_items_added,
368
  'woocommerce'
369
  ),
370
+ $num_items_in_original_order - $num_items_added
371
  ),
372
  'error'
373
  );
includes/class-wc-cart-totals.php CHANGED
@@ -580,9 +580,28 @@ final class WC_Cart_Totals {
580
  }
581
  }
582
 
 
 
583
  return $in_cents ? $taxes : wc_remove_number_precision_deep( $taxes );
584
  }
585
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
  /**
587
  * Combine item taxes into a single array, preserving keys.
588
  *
580
  }
581
  }
582
 
583
+ $taxes = $this->round_merged_taxes( $taxes );
584
+
585
  return $in_cents ? $taxes : wc_remove_number_precision_deep( $taxes );
586
  }
587
 
588
+ /**
589
+ * Round merged taxes.
590
+ *
591
+ * @since 3.5.4
592
+ * @param array $taxes Taxes to round.
593
+ * @return array
594
+ */
595
+ protected function round_merged_taxes( $taxes ) {
596
+ if ( $this->round_at_subtotal() ) {
597
+ foreach ( $taxes as $rate_id => $tax ) {
598
+ $taxes[ $rate_id ] = wc_round_tax_total( $tax, 0 );
599
+ }
600
+ }
601
+
602
+ return $taxes;
603
+ }
604
+
605
  /**
606
  * Combine item taxes into a single array, preserving keys.
607
  *
includes/class-wc-cart.php CHANGED
@@ -1079,8 +1079,10 @@ class WC_Cart extends WC_Legacy_Cart {
1079
 
1080
  // Add item after merging with $cart_item_data - hook to allow plugins to modify cart item.
1081
  $this->cart_contents[ $cart_item_key ] = apply_filters(
1082
- 'woocommerce_add_cart_item', array_merge(
1083
- $cart_item_data, array(
 
 
1084
  'key' => $cart_item_key,
1085
  'product_id' => $product_id,
1086
  'variation_id' => $variation_id,
@@ -1089,7 +1091,8 @@ class WC_Cart extends WC_Legacy_Cart {
1089
  'data' => $product_data,
1090
  'data_hash' => wc_get_cart_item_data_hash( $product_data ),
1091
  )
1092
- ), $cart_item_key
 
1093
  );
1094
  }
1095
 
@@ -1427,8 +1430,10 @@ class WC_Cart extends WC_Legacy_Cart {
1427
  $check_emails = array_unique(
1428
  array_filter(
1429
  array_map(
1430
- 'strtolower', array_map(
1431
- 'sanitize_email', array(
 
 
1432
  $billing_email,
1433
  $current_user->user_email,
1434
  )
@@ -1507,7 +1512,7 @@ class WC_Cart extends WC_Legacy_Cart {
1507
  // Go through the allowed emails and return true if the email matches a wildcard.
1508
  foreach ( $restrictions as $restriction ) {
1509
  // Convert to PHP-regex syntax.
1510
- $regex = '/' . str_replace( '*', '(.+)?', $restriction ) . '/';
1511
  preg_match( $regex, $check_email, $match );
1512
  if ( ! empty( $match ) ) {
1513
  return true;
1079
 
1080
  // Add item after merging with $cart_item_data - hook to allow plugins to modify cart item.
1081
  $this->cart_contents[ $cart_item_key ] = apply_filters(
1082
+ 'woocommerce_add_cart_item',
1083
+ array_merge(
1084
+ $cart_item_data,
1085
+ array(
1086
  'key' => $cart_item_key,
1087
  'product_id' => $product_id,
1088
  'variation_id' => $variation_id,
1091
  'data' => $product_data,
1092
  'data_hash' => wc_get_cart_item_data_hash( $product_data ),
1093
  )
1094
+ ),
1095
+ $cart_item_key
1096
  );
1097
  }
1098
 
1430
  $check_emails = array_unique(
1431
  array_filter(
1432
  array_map(
1433
+ 'strtolower',
1434
+ array_map(
1435
+ 'sanitize_email',
1436
+ array(
1437
  $billing_email,
1438
  $current_user->user_email,
1439
  )
1512
  // Go through the allowed emails and return true if the email matches a wildcard.
1513
  foreach ( $restrictions as $restriction ) {
1514
  // Convert to PHP-regex syntax.
1515
+ $regex = '/^' . str_replace( '*', '(.+)?', $restriction ) . '$/';
1516
  preg_match( $regex, $check_email, $match );
1517
  if ( ! empty( $match ) ) {
1518
  return true;
includes/class-wc-countries.php CHANGED
@@ -558,7 +558,8 @@ class WC_Countries {
558
  // Substitute address parts into the string.
559
  $replace = array_map(
560
  'esc_html', apply_filters(
561
- 'woocommerce_formatted_address_replacements', array(
 
562
  '{first_name}' => $args['first_name'],
563
  '{last_name}' => $args['last_name'],
564
  '{name}' => $args['first_name'] . ' ' . $args['last_name'],
@@ -569,18 +570,19 @@ class WC_Countries {
569
  '{state}' => $full_state,
570
  '{postcode}' => $args['postcode'],
571
  '{country}' => $full_country,
572
- '{first_name_upper}' => strtoupper( $args['first_name'] ),
573
- '{last_name_upper}' => strtoupper( $args['last_name'] ),
574
- '{name_upper}' => strtoupper( $args['first_name'] . ' ' . $args['last_name'] ),
575
- '{company_upper}' => strtoupper( $args['company'] ),
576
- '{address_1_upper}' => strtoupper( $args['address_1'] ),
577
- '{address_2_upper}' => strtoupper( $args['address_2'] ),
578
- '{city_upper}' => strtoupper( $args['city'] ),
579
- '{state_upper}' => strtoupper( $full_state ),
580
- '{state_code}' => strtoupper( $state ),
581
- '{postcode_upper}' => strtoupper( $args['postcode'] ),
582
- '{country_upper}' => strtoupper( $full_country ),
583
- ), $args
 
584
  )
585
  );
586
 
558
  // Substitute address parts into the string.
559
  $replace = array_map(
560
  'esc_html', apply_filters(
561
+ 'woocommerce_formatted_address_replacements',
562
+ array(
563
  '{first_name}' => $args['first_name'],
564
  '{last_name}' => $args['last_name'],
565
  '{name}' => $args['first_name'] . ' ' . $args['last_name'],
570
  '{state}' => $full_state,
571
  '{postcode}' => $args['postcode'],
572
  '{country}' => $full_country,
573
+ '{first_name_upper}' => wc_strtoupper( $args['first_name'] ),
574
+ '{last_name_upper}' => wc_strtoupper( $args['last_name'] ),
575
+ '{name_upper}' => wc_strtoupper( $args['first_name'] . ' ' . $args['last_name'] ),
576
+ '{company_upper}' => wc_strtoupper( $args['company'] ),
577
+ '{address_1_upper}' => wc_strtoupper( $args['address_1'] ),
578
+ '{address_2_upper}' => wc_strtoupper( $args['address_2'] ),
579
+ '{city_upper}' => wc_strtoupper( $args['city'] ),
580
+ '{state_upper}' => wc_strtoupper( $full_state ),
581
+ '{state_code}' => wc_strtoupper( $state ),
582
+ '{postcode_upper}' => wc_strtoupper( $args['postcode'] ),
583
+ '{country_upper}' => wc_strtoupper( $full_country ),
584
+ ),
585
+ $args
586
  )
587
  );
588
 
includes/class-wc-form-handler.php CHANGED
@@ -42,15 +42,15 @@ class WC_Form_Handler {
42
  public static function redirect_reset_password_link() {
43
  if ( is_account_page() && isset( $_GET['key'] ) && ( isset( $_GET['id'] ) || isset( $_GET['login'] ) ) ) {
44
 
45
- // If available, get $user_login from query string parameter for fallback purposes.
46
  if ( isset( $_GET['login'] ) ) {
47
- $user_login = $_GET['login'];
 
48
  } else {
49
- $user = get_user_by( 'id', absint( $_GET['id'] ) );
50
- $user_login = $user ? $user->user_login : '';
51
  }
52
 
53
- $value = sprintf( '%s:%s', wp_unslash( $user_login ), wp_unslash( $_GET['key'] ) );
54
  WC_Shortcode_My_Account::set_reset_password_cookie( $value );
55
  wp_safe_redirect( add_query_arg( 'show-reset-form', 'true', wc_lostpassword_url() ) );
56
  exit;
@@ -357,7 +357,7 @@ class WC_Form_Handler {
357
  $order_id = absint( $wp->query_vars['order-pay'] );
358
  $order = wc_get_order( $order_id );
359
 
360
- if ( $order_id === $order->get_id() && $order_key === $order->get_order_key() && $order->needs_payment() ) {
361
 
362
  do_action( 'woocommerce_before_pay_action', $order );
363
 
@@ -671,7 +671,7 @@ class WC_Form_Handler {
671
 
672
  if ( $order->has_status( 'cancelled' ) ) {
673
  // Already cancelled - take no action
674
- } elseif ( $user_can_cancel && $order_can_cancel && $order->get_id() === $order_id && $order->get_order_key() === $order_key ) {
675
 
676
  // Cancel the order + restore stock
677
  WC()->session->set( 'order_awaiting_payment', false );
42
  public static function redirect_reset_password_link() {
43
  if ( is_account_page() && isset( $_GET['key'] ) && ( isset( $_GET['id'] ) || isset( $_GET['login'] ) ) ) {
44
 
45
+ // If available, get $user_id from query string parameter for fallback purposes.
46
  if ( isset( $_GET['login'] ) ) {
47
+ $user = get_user_by( 'login', sanitize_user( wp_unslash( $_GET['login'] ) ) );
48
+ $user_id = $user ? $user->ID : 0;
49
  } else {
50
+ $user_id = absint( $_GET['id'] );
 
51
  }
52
 
53
+ $value = sprintf( '%d:%s', $user_id, wp_unslash( $_GET['key'] ) );
54
  WC_Shortcode_My_Account::set_reset_password_cookie( $value );
55
  wp_safe_redirect( add_query_arg( 'show-reset-form', 'true', wc_lostpassword_url() ) );
56
  exit;
357
  $order_id = absint( $wp->query_vars['order-pay'] );
358
  $order = wc_get_order( $order_id );
359
 
360
+ if ( $order_id === $order->get_id() && hash_equals( $order->get_order_key(), $order_key ) && $order->needs_payment() ) {
361
 
362
  do_action( 'woocommerce_before_pay_action', $order );
363
 
671
 
672
  if ( $order->has_status( 'cancelled' ) ) {
673
  // Already cancelled - take no action
674
+ } elseif ( $user_can_cancel && $order_can_cancel && $order->get_id() === $order_id && hash_equals( $order->get_order_key(), $order_key ) ) {
675
 
676
  // Cancel the order + restore stock
677
  WC()->session->set( 'order_awaiting_payment', false );
includes/class-wc-frontend-scripts.php CHANGED
@@ -52,7 +52,8 @@ class WC_Frontend_Scripts {
52
  */
53
  public static function get_styles() {
54
  return apply_filters(
55
- 'woocommerce_enqueue_styles', array(
 
56
  'woocommerce-layout' => array(
57
  'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
58
  'deps' => '',
@@ -221,7 +222,7 @@ class WC_Frontend_Scripts {
221
  ),
222
  'wc-address-i18n' => array(
223
  'src' => self::get_asset_url( 'assets/js/frontend/address-i18n' . $suffix . '.js' ),
224
- 'deps' => array( 'jquery' ),
225
  'version' => WC_VERSION,
226
  ),
227
  'wc-add-payment-method' => array(
@@ -414,7 +415,7 @@ class WC_Frontend_Scripts {
414
  }
415
 
416
  // Placeholder style.
417
- wp_register_style( 'woocommerce-inline', false );
418
  wp_enqueue_style( 'woocommerce-inline' );
419
 
420
  if ( true === wc_string_to_bool( get_option( 'woocommerce_checkout_highlight_required_fields', 'yes' ) ) ) {
@@ -473,7 +474,8 @@ class WC_Frontend_Scripts {
473
  'i18n_required_rating_text' => esc_attr__( 'Please select a rating', 'woocommerce' ),
474
  'review_rating_required' => get_option( 'woocommerce_review_rating_required' ),
475
  'flexslider' => apply_filters(
476
- 'woocommerce_single_product_carousel_options', array(
 
477
  'rtl' => is_rtl(),
478
  'animation' => 'slide',
479
  'smoothHeight' => true,
@@ -489,7 +491,8 @@ class WC_Frontend_Scripts {
489
  'zoom_options' => apply_filters( 'woocommerce_single_product_zoom_options', array() ),
490
  'photoswipe_enabled' => apply_filters( 'woocommerce_single_product_photoswipe_enabled', get_theme_support( 'wc-product-gallery-lightbox' ) ),
491
  'photoswipe_options' => apply_filters(
492
- 'woocommerce_single_product_photoswipe_options', array(
 
493
  'shareEl' => false,
494
  'closeOnScroll' => false,
495
  'history' => false,
52
  */
53
  public static function get_styles() {
54
  return apply_filters(
55
+ 'woocommerce_enqueue_styles',
56
+ array(
57
  'woocommerce-layout' => array(
58
  'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
59
  'deps' => '',
222
  ),
223
  'wc-address-i18n' => array(
224
  'src' => self::get_asset_url( 'assets/js/frontend/address-i18n' . $suffix . '.js' ),
225
+ 'deps' => array( 'jquery', 'wc-country-select' ),
226
  'version' => WC_VERSION,
227
  ),
228
  'wc-add-payment-method' => array(
415
  }
416
 
417
  // Placeholder style.
418
+ wp_register_style( 'woocommerce-inline', false ); // phpcs:ignore
419
  wp_enqueue_style( 'woocommerce-inline' );
420
 
421
  if ( true === wc_string_to_bool( get_option( 'woocommerce_checkout_highlight_required_fields', 'yes' ) ) ) {
474
  'i18n_required_rating_text' => esc_attr__( 'Please select a rating', 'woocommerce' ),
475
  'review_rating_required' => get_option( 'woocommerce_review_rating_required' ),
476
  'flexslider' => apply_filters(
477
+ 'woocommerce_single_product_carousel_options',
478
+ array(
479
  'rtl' => is_rtl(),
480
  'animation' => 'slide',
481
  'smoothHeight' => true,
491
  'zoom_options' => apply_filters( 'woocommerce_single_product_zoom_options', array() ),
492
  'photoswipe_enabled' => apply_filters( 'woocommerce_single_product_photoswipe_enabled', get_theme_support( 'wc-product-gallery-lightbox' ) ),
493
  'photoswipe_options' => apply_filters(
494
+ 'woocommerce_single_product_photoswipe_options',
495
+ array(
496
  'shareEl' => false,
497
  'closeOnScroll' => false,
498
  'history' => false,
includes/class-wc-install.php CHANGED
@@ -119,7 +119,11 @@ class WC_Install {
119
  ),
120
  '3.5.2' => array(
121
  'wc_update_352_drop_download_log_fk',
122
- )
 
 
 
 
123
  );
124
 
125
  /**
@@ -954,7 +958,6 @@ CREATE TABLE {$wpdb->prefix}woocommerce_termmeta (
954
  'read' => true,
955
  'read_private_pages' => true,
956
  'read_private_posts' => true,
957
- 'edit_users' => true,
958
  'edit_posts' => true,
959
  'edit_pages' => true,
960
  'edit_published_posts' => true,
119
  ),
120
  '3.5.2' => array(
121
  'wc_update_352_drop_download_log_fk',
122
+ ),
123
+ '3.5.4' => array(
124
+ 'wc_update_354_modify_shop_manager_caps',
125
+ 'wc_update_354_db_version',
126
+ ),
127
  );
128
 
129
  /**
958
  'read' => true,
959
  'read_private_pages' => true,
960
  'read_private_posts' => true,
 
961
  'edit_posts' => true,
962
  'edit_pages' => true,
963
  'edit_published_posts' => true,
includes/class-wc-order.php CHANGED
@@ -1295,7 +1295,7 @@ class WC_Order extends WC_Abstract_Order {
1295
  * @return bool
1296
  */
1297
  public function key_is_valid( $key ) {
1298
- return $key === $this->get_order_key();
1299
  }
1300
 
1301
  /**
1295
  * @return bool
1296
  */
1297
  public function key_is_valid( $key ) {
1298
+ return hash_equals( $this->get_order_key(), $key );
1299
  }
1300
 
1301
  /**
includes/class-wc-product-variation.php CHANGED
@@ -167,7 +167,7 @@ class WC_Product_Variation extends WC_Product_Simple {
167
  $data = $this->get_variation_attributes();
168
  }
169
 
170
- $data = array_filter( $data );
171
 
172
  if ( empty( $data ) ) {
173
  return $url;
167
  $data = $this->get_variation_attributes();
168
  }
169
 
170
+ $data = array_filter( $data, 'wc_array_filter_default_attributes' );
171
 
172
  if ( empty( $data ) ) {
173
  return $url;
includes/class-wc-regenerate-images-request.php CHANGED
@@ -101,8 +101,12 @@ class WC_Regenerate_Images_Request extends WC_Background_Process {
101
 
102
  $log = wc_get_logger();
103
 
104
- // translators: %s: ID of the attachment.
105
- $log->info( sprintf( __( 'Regenerating images for attachment ID: %s', 'woocommerce' ), $this->attachment_id ),
 
 
 
 
106
  array(
107
  'source' => 'wc-image-regeneration',
108
  )
@@ -202,7 +206,11 @@ class WC_Regenerate_Images_Request extends WC_Background_Process {
202
  $size_data['crop'] = false;
203
  }
204
 
205
- list( $orig_w, $orig_h ) = getimagesize( $fullsizepath );
 
 
 
 
206
 
207
  $dimensions = image_resize_dimensions( $orig_w, $orig_h, $size_data['width'], $size_data['height'], $size_data['crop'] );
208
 
@@ -222,6 +230,7 @@ class WC_Regenerate_Images_Request extends WC_Background_Process {
222
  unset( $sizes[ $size ] );
223
  }
224
  }
 
225
  return $sizes;
226
  }
227
 
@@ -243,7 +252,8 @@ class WC_Regenerate_Images_Request extends WC_Background_Process {
243
  protected function complete() {
244
  parent::complete();
245
  $log = wc_get_logger();
246
- $log->info( __( 'Completed product image regeneration job.', 'woocommerce' ),
 
247
  array(
248
  'source' => 'wc-image-regeneration',
249
  )
101
 
102
  $log = wc_get_logger();
103
 
104
+ $log->info(
105
+ sprintf(
106
+ // translators: %s: ID of the attachment.
107
+ __( 'Regenerating images for attachment ID: %s', 'woocommerce' ),
108
+ $this->attachment_id
109
+ ),
110
  array(
111
  'source' => 'wc-image-regeneration',
112
  )
206
  $size_data['crop'] = false;
207
  }
208
 
209
+ $image_sizes = getimagesize( $fullsizepath );
210
+ if ( false === $image_sizes ) {
211
+ continue;
212
+ }
213
+ list( $orig_w, $orig_h ) = $image_sizes;
214
 
215
  $dimensions = image_resize_dimensions( $orig_w, $orig_h, $size_data['width'], $size_data['height'], $size_data['crop'] );
216
 
230
  unset( $sizes[ $size ] );
231
  }
232
  }
233
+
234
  return $sizes;
235
  }
236
 
252
  protected function complete() {
253
  parent::complete();
254
  $log = wc_get_logger();
255
+ $log->info(
256
+ __( 'Completed product image regeneration job.', 'woocommerce' ),
257
  array(
258
  'source' => 'wc-image-regeneration',
259
  )
includes/class-wc-structured-data.php CHANGED
@@ -329,6 +329,12 @@ class WC_Structured_Data {
329
  $markup['itemListElement'] = array();
330
 
331
  foreach ( $crumbs as $key => $crumb ) {
 
 
 
 
 
 
332
  $markup['itemListElement'][ $key ] = array(
333
  '@type' => 'ListItem',
334
  'position' => $key + 1,
329
  $markup['itemListElement'] = array();
330
 
331
  foreach ( $crumbs as $key => $crumb ) {
332
+ // Don't add the current page to the breadcrumb list on product pages,
333
+ // otherwise Google will not recognize both the BreadcrumbList and Product structured data.
334
+ if ( is_product() && count( $crumbs ) - 1 === $key ) {
335
+ continue;
336
+ }
337
+
338
  $markup['itemListElement'][ $key ] = array(
339
  '@type' => 'ListItem',
340
  'position' => $key + 1,
includes/class-wc-webhook.php CHANGED
@@ -92,8 +92,9 @@ class WC_Webhook extends WC_Legacy_Webhook {
92
  * Process the webhook for delivery by verifying that it should be delivered.
93
  * and scheduling the delivery (in the background by default, or immediately).
94
  *
95
- * @since 2.2.0
96
- * @param mixed $arg The first argument provided from the associated hooks.
 
97
  */
98
  public function process( $arg ) {
99
 
@@ -109,6 +110,8 @@ class WC_Webhook extends WC_Legacy_Webhook {
109
  * @hooked wc_webhook_process_delivery - 10
110
  */
111
  do_action( 'woocommerce_webhook_process_delivery', $this, $arg );
 
 
112
  }
113
 
114
  /**
92
  * Process the webhook for delivery by verifying that it should be delivered.
93
  * and scheduling the delivery (in the background by default, or immediately).
94
  *
95
+ * @since 2.2.0
96
+ * @param mixed $arg The first argument provided from the associated hooks.
97
+ * @return mixed $arg Returns the argument in case the webhook was hooked into a filter.
98
  */
99
  public function process( $arg ) {
100
 
110
  * @hooked wc_webhook_process_delivery - 10
111
  */
112
  do_action( 'woocommerce_webhook_process_delivery', $this, $arg );
113
+
114
+ return $arg;
115
  }
116
 
117
  /**
includes/class-woocommerce.php CHANGED
@@ -20,7 +20,7 @@ final class WooCommerce {
20
  *
21
  * @var string
22
  */
23
- public $version = '3.5.3';
24
 
25
  /**
26
  * The single instance of the class.
20
  *
21
  * @var string
22
  */
23
+ public $version = '3.5.4';
24
 
25
  /**
26
  * The single instance of the class.
includes/data-stores/abstract-wc-order-data-store-cpt.php CHANGED
@@ -69,7 +69,7 @@ abstract class Abstract_WC_Order_Data_Store_CPT extends WC_Data_Store_WP impleme
69
  'ping_status' => 'closed',
70
  'post_author' => 1,
71
  'post_title' => $this->get_post_title(),
72
- 'post_password' => uniqid( 'order_' ),
73
  'post_parent' => $order->get_parent_id( 'edit' ),
74
  'post_excerpt' => $this->get_post_excerpt( $order ),
75
  )
69
  'ping_status' => 'closed',
70
  'post_author' => 1,
71
  'post_title' => $this->get_post_title(),
72
+ 'post_password' => wc_generate_order_key(),
73
  'post_parent' => $order->get_parent_id( 'edit' ),
74
  'post_excerpt' => $this->get_post_excerpt( $order ),
75
  )
includes/data-stores/class-wc-coupon-data-store-cpt.php CHANGED
@@ -202,11 +202,11 @@ class WC_Coupon_Data_Store_CPT extends WC_Data_Store_WP implements WC_Coupon_Dat
202
  return;
203
  }
204
 
 
 
205
  if ( $args['force_delete'] ) {
206
  wp_delete_post( $id );
207
 
208
- wp_cache_delete( WC_Cache_Helper::get_cache_prefix( 'coupons' ) . 'coupon_id_from_code_' . $coupon->get_code(), 'coupons' );
209
-
210
  $coupon->set_id( 0 );
211
  do_action( 'woocommerce_delete_coupon', $id );
212
  } else {
202
  return;
203
  }
204
 
205
+ wp_cache_delete( WC_Cache_Helper::get_cache_prefix( 'coupons' ) . 'coupon_id_from_code_' . $coupon->get_code(), 'coupons' );
206
+
207
  if ( $args['force_delete'] ) {
208
  wp_delete_post( $id );
209
 
 
 
210
  $coupon->set_id( 0 );
211
  do_action( 'woocommerce_delete_coupon', $id );
212
  } else {
includes/data-stores/class-wc-customer-data-store.php CHANGED
@@ -117,11 +117,13 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
117
 
118
  wp_update_user(
119
  apply_filters(
120
- 'woocommerce_update_customer_args', array(
 
121
  'ID' => $customer->get_id(),
122
  'role' => $customer->get_role(),
123
  'display_name' => $customer->get_display_name(),
124
- ), $customer
 
125
  )
126
  );
127
  $wp_user = new WP_User( $customer->get_id() );
@@ -147,16 +149,11 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
147
  throw new Exception( __( 'Invalid customer.', 'woocommerce' ) );
148
  }
149
 
150
- // Only users on this site should be read.
151
- if ( is_multisite() && ! is_user_member_of_blog( $customer->get_id() ) ) {
152
- throw new Exception( __( 'Invalid customer.', 'woocommerce' ) );
153
- }
154
-
155
  $customer_id = $customer->get_id();
156
 
157
  // Load meta but exclude deprecated props.
158
  $user_meta = array_diff_key(
159
- array_map( 'wc_flatten_meta_callback', get_user_meta( $customer_id ) ),
160
  array_flip( array( 'country', 'state', 'postcode', 'city', 'address', 'address_2', 'default', 'location' ) )
161
  );
162
 
@@ -186,11 +183,13 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
186
  public function update( &$customer ) {
187
  wp_update_user(
188
  apply_filters(
189
- 'woocommerce_update_customer_args', array(
 
190
  'ID' => $customer->get_id(),
191
  'user_email' => $customer->get_email(),
192
  'display_name' => $customer->get_display_name(),
193
- ), $customer
 
194
  )
195
  );
196
 
@@ -225,7 +224,8 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
225
  }
226
 
227
  $args = wp_parse_args(
228
- $args, array(
 
229
  'reassign' => 0,
230
  )
231
  );
@@ -437,18 +437,23 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
437
 
438
  $query = new WP_User_Query(
439
  apply_filters(
440
- 'woocommerce_customer_search_customers', array(
 
441
  'search' => '*' . esc_attr( $term ) . '*',
442
  'search_columns' => array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name' ),
443
  'fields' => 'ID',
444
  'number' => $limit,
445
- ), $term, $limit, 'main_query'
 
 
 
446
  )
447
  );
448
 
449
  $query2 = new WP_User_Query(
450
  apply_filters(
451
- 'woocommerce_customer_search_customers', array(
 
452
  'fields' => 'ID',
453
  'number' => $limit,
454
  'meta_query' => array(
@@ -464,7 +469,10 @@ class WC_Customer_Data_Store extends WC_Data_Store_WP implements WC_Customer_Dat
464
  'compare' => 'LIKE',
465
  ),
466
  ),
467
- ), $term, $limit, 'meta_query'
 
 
 
468
  )
469
  );
470
 
117
 
118
  wp_update_user(
119
  apply_filters(
120
+ 'woocommerce_update_customer_args',
121
+ array(
122
  'ID' => $customer->get_id(),
123
  'role' => $customer->get_role(),
124
  'display_name' => $customer->get_display_name(),
125
+ ),
126
+ $customer
127
  )
128
  );
129
  $wp_user = new WP_User( $customer->get_id() );
149
  throw new Exception( __( 'Invalid customer.', 'woocommerce' ) );
150
  }
151
 
 
 
 
 
 
152
  $customer_id = $customer->get_id();
153
 
154
  // Load meta but exclude deprecated props.
155
  $user_meta = array_diff_key(
156
+ array_change_key_case( array_map( 'wc_flatten_meta_callback', get_user_meta( $customer_id ) ) ),
157
  array_flip( array( 'country', 'state', 'postcode', 'city', 'address', 'address_2', 'default', 'location' ) )
158
  );
159
 
183
  public function update( &$customer ) {
184
  wp_update_user(
185
  apply_filters(
186
+ 'woocommerce_update_customer_args',
187
+ array(
188
  'ID' => $customer->get_id(),
189
  'user_email' => $customer->get_email(),
190
  'display_name' => $customer->get_display_name(),
191
+ ),
192
+ $customer
193
  )
194
  );
195
 
224
  }
225
 
226
  $args = wp_parse_args(
227
+ $args,
228
+ array(
229
  'reassign' => 0,
230
  )
231
  );
437
 
438
  $query = new WP_User_Query(
439
  apply_filters(
440
+ 'woocommerce_customer_search_customers',
441
+ array(
442
  'search' => '*' . esc_attr( $term ) . '*',
443
  'search_columns' => array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name' ),
444
  'fields' => 'ID',
445
  'number' => $limit,
446
+ ),
447
+ $term,
448
+ $limit,
449
+ 'main_query'
450
  )
451
  );
452
 
453
  $query2 = new WP_User_Query(
454
  apply_filters(
455
+ 'woocommerce_customer_search_customers',
456
+ array(
457
  'fields' => 'ID',
458
  'number' => $limit,
459
  'meta_query' => array(
469
  'compare' => 'LIKE',
470
  ),
471
  ),
472
+ ),
473
+ $term,
474
+ $limit,
475
+ 'meta_query'
476
  )
477
  );
478
 
includes/data-stores/class-wc-order-data-store-cpt.php CHANGED
@@ -81,7 +81,7 @@ class WC_Order_Data_Store_CPT extends Abstract_WC_Order_Data_Store_CPT implement
81
  * @param WC_Order $order Order object.
82
  */
83
  public function create( &$order ) {
84
- $order->set_order_key( 'wc_' . apply_filters( 'woocommerce_generate_order_key', uniqid( 'order_' ) ) );
85
  parent::create( $order );
86
  do_action( 'woocommerce_new_order', $order->get_id() );
87
  }
81
  * @param WC_Order $order Order object.
82
  */
83
  public function create( &$order ) {
84
+ $order->set_order_key( wc_generate_order_key() );
85
  parent::create( $order );
86
  do_action( 'woocommerce_new_order', $order->get_id() );
87
  }
includes/data-stores/class-wc-product-data-store-cpt.php CHANGED
@@ -99,7 +99,8 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
99
 
100
  $id = wp_insert_post(
101
  apply_filters(
102
- 'woocommerce_new_product_data', array(
 
103
  'post_type' => 'product',
104
  'post_status' => $product->get_status() ? $product->get_status() : 'publish',
105
  'post_author' => get_current_user_id(),
@@ -114,7 +115,8 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
114
  'post_date_gmt' => gmdate( 'Y-m-d H:i:s', $product->get_date_created( 'edit' )->getTimestamp() ),
115
  'post_name' => $product->get_slug( 'edit' ),
116
  )
117
- ), true
 
118
  );
119
 
120
  if ( $id && ! is_wp_error( $id ) ) {
@@ -262,7 +264,8 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
262
  $post_type = $product->is_type( 'variation' ) ? 'product_variation' : 'product';
263
 
264
  $args = wp_parse_args(
265
- $args, array(
 
266
  'force_delete' => false,
267
  )
268
  );
@@ -429,7 +432,8 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
429
  'is_visible' => 0,
430
  'is_variation' => 0,
431
  'is_taxonomy' => 0,
432
- ), (array) $meta_attribute_value
 
433
  );
434
 
435
  // Check if is a taxonomy attribute.
@@ -872,7 +876,7 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
872
  }
873
 
874
  return $wpdb->get_results(
875
- // phpcs:disable WordPress.WP.PreparedSQL.NotPrepared
876
  $wpdb->prepare(
877
  "SELECT post.ID as id, post.post_parent as parent_id FROM `$wpdb->posts` AS post
878
  LEFT JOIN `$wpdb->postmeta` AS meta ON post.ID = meta.post_id
@@ -953,7 +957,8 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
953
  AND $wpdb->postmeta.meta_key = '_sku' AND $wpdb->postmeta.meta_value = %s
954
  AND $wpdb->postmeta.post_id <> %d
955
  LIMIT 1",
956
- wp_slash( $sku ), $product_id
 
957
  )
958
  );
959
  }
@@ -1150,7 +1155,7 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1150
 
1151
  $related_product_query = (array) apply_filters( 'woocommerce_product_related_posts_query', $this->get_related_products_query( $cats_array, $tags_array, $exclude_ids, $limit + 10 ), $product_id, $args );
1152
 
1153
- // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery, WordPress.WP.PreparedSQL.NotPrepared
1154
  return $wpdb->get_col( implode( ' ', $related_product_query ) );
1155
  }
1156
 
@@ -1233,7 +1238,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1233
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1234
  $wpdb->query(
1235
  $wpdb->prepare(
1236
- "UPDATE {$wpdb->postmeta} SET meta_value = meta_value + %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock
 
 
1237
  )
1238
  );
1239
  break;
@@ -1241,7 +1248,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1241
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1242
  $wpdb->query(
1243
  $wpdb->prepare(
1244
- "UPDATE {$wpdb->postmeta} SET meta_value = meta_value - %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock
 
 
1245
  )
1246
  );
1247
  break;
@@ -1249,7 +1258,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1249
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1250
  $wpdb->query(
1251
  $wpdb->prepare(
1252
- "UPDATE {$wpdb->postmeta} SET meta_value = %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock
 
 
1253
  )
1254
  );
1255
  break;
@@ -1278,7 +1289,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1278
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1279
  $wpdb->query(
1280
  $wpdb->prepare(
1281
- "UPDATE {$wpdb->postmeta} SET meta_value = meta_value + %f WHERE post_id = %d AND meta_key='total_sales'", $quantity, $product_id
 
 
1282
  )
1283
  );
1284
  break;
@@ -1286,7 +1299,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1286
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1287
  $wpdb->query(
1288
  $wpdb->prepare(
1289
- "UPDATE {$wpdb->postmeta} SET meta_value = meta_value - %f WHERE post_id = %d AND meta_key='total_sales'", $quantity, $product_id
 
 
1290
  )
1291
  );
1292
  break;
@@ -1294,7 +1309,9 @@ class WC_Product_Data_Store_CPT extends WC_Data_Store_WP implements WC_Object_Da
1294
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1295
  $wpdb->query(
1296
  $wpdb->prepare(
1297
- "UPDATE {$wpdb->postmeta} SET meta_value = %f WHERE post_id = %d AND meta_key='total_sales'", $quantity, $product_id
 
 
1298
  )
1299
  );
1300
  break;
99
 
100
  $id = wp_insert_post(
101
  apply_filters(
102
+ 'woocommerce_new_product_data',
103
+ array(
104
  'post_type' => 'product',
105
  'post_status' => $product->get_status() ? $product->get_status() : 'publish',
106
  'post_author' => get_current_user_id(),
115
  'post_date_gmt' => gmdate( 'Y-m-d H:i:s', $product->get_date_created( 'edit' )->getTimestamp() ),
116
  'post_name' => $product->get_slug( 'edit' ),
117
  )
118
+ ),
119
+ true
120
  );
121
 
122
  if ( $id && ! is_wp_error( $id ) ) {
264
  $post_type = $product->is_type( 'variation' ) ? 'product_variation' : 'product';
265
 
266
  $args = wp_parse_args(
267
+ $args,
268
+ array(
269
  'force_delete' => false,
270
  )
271
  );
432
  'is_visible' => 0,
433
  'is_variation' => 0,
434
  'is_taxonomy' => 0,
435
+ ),
436
+ (array) $meta_attribute_value
437
  );
438
 
439
  // Check if is a taxonomy attribute.
876
  }
877
 
878
  return $wpdb->get_results(
879
+ // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
880
  $wpdb->prepare(
881
  "SELECT post.ID as id, post.post_parent as parent_id FROM `$wpdb->posts` AS post
882
  LEFT JOIN `$wpdb->postmeta` AS meta ON post.ID = meta.post_id
957
  AND $wpdb->postmeta.meta_key = '_sku' AND $wpdb->postmeta.meta_value = %s
958
  AND $wpdb->postmeta.post_id <> %d
959
  LIMIT 1",
960
+ wp_slash( $sku ),
961
+ $product_id
962
  )
963
  );
964
  }
1155
 
1156
  $related_product_query = (array) apply_filters( 'woocommerce_product_related_posts_query', $this->get_related_products_query( $cats_array, $tags_array, $exclude_ids, $limit + 10 ), $product_id, $args );
1157
 
1158
+ // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared
1159
  return $wpdb->get_col( implode( ' ', $related_product_query ) );
1160
  }
1161
 
1238
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1239
  $wpdb->query(
1240
  $wpdb->prepare(
1241
+ "UPDATE {$wpdb->postmeta} SET meta_value = meta_value + %f WHERE post_id = %d AND meta_key='_stock'",
1242
+ $stock_quantity,
1243
+ $product_id_with_stock
1244
  )
1245
  );
1246
  break;
1248
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1249
  $wpdb->query(
1250
  $wpdb->prepare(
1251
+ "UPDATE {$wpdb->postmeta} SET meta_value = meta_value - %f WHERE post_id = %d AND meta_key='_stock'",
1252
+ $stock_quantity,
1253
+ $product_id_with_stock
1254
  )
1255
  );
1256
  break;
1258
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1259
  $wpdb->query(
1260
  $wpdb->prepare(
1261
+ "UPDATE {$wpdb->postmeta} SET meta_value = %f WHERE post_id = %d AND meta_key='_stock'",
1262
+ $stock_quantity,
1263
+ $product_id_with_stock
1264
  )
1265
  );
1266
  break;
1289
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1290
  $wpdb->query(
1291
  $wpdb->prepare(
1292
+ "UPDATE {$wpdb->postmeta} SET meta_value = meta_value + %f WHERE post_id = %d AND meta_key='total_sales'",
1293
+ $quantity,
1294
+ $product_id
1295
  )
1296
  );
1297
  break;
1299
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1300
  $wpdb->query(
1301
  $wpdb->prepare(
1302
+ "UPDATE {$wpdb->postmeta} SET meta_value = meta_value - %f WHERE post_id = %d AND meta_key='total_sales'",
1303
+ $quantity,
1304
+ $product_id
1305
  )
1306
  );
1307
  break;
1309
  // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery
1310
  $wpdb->query(
1311
  $wpdb->prepare(
1312
+ "UPDATE {$wpdb->postmeta} SET meta_value = %f WHERE post_id = %d AND meta_key='total_sales'",
1313
+ $quantity,
1314
+ $product_id
1315
  )
1316
  );
1317
  break;
includes/emails/class-wc-email-customer-processing-order.php CHANGED
@@ -57,7 +57,7 @@ if ( ! class_exists( 'WC_Email_Customer_Processing_Order', false ) ) :
57
  * @return string
58
  */
59
  public function get_default_subject() {
60
- return __( 'Payment received for your order', 'woocommerce' );
61
  }
62
 
63
  /**
@@ -67,7 +67,7 @@ if ( ! class_exists( 'WC_Email_Customer_Processing_Order', false ) ) :
67
  * @return string
68
  */
69
  public function get_default_heading() {
70
- return __( 'Thank you for your payment', 'woocommerce' );
71
  }
72
 
73
  /**
@@ -104,7 +104,8 @@ if ( ! class_exists( 'WC_Email_Customer_Processing_Order', false ) ) :
104
  */
105
  public function get_content_html() {
106
  return wc_get_template_html(
107
- $this->template_html, array(
 
108
  'order' => $this->object,
109
  'email_heading' => $this->get_heading(),
110
  'sent_to_admin' => false,
@@ -121,7 +122,8 @@ if ( ! class_exists( 'WC_Email_Customer_Processing_Order', false ) ) :
121
  */
122
  public function get_content_plain() {
123
  return wc_get_template_html(
124
- $this->template_plain, array(
 
125
  'order' => $this->object,
126
  'email_heading' => $this->get_heading(),
127
  'sent_to_admin' => false,
57
  * @return string
58
  */
59
  public function get_default_subject() {
60
+ return __( 'Your {site_title} order has been received!', 'woocommerce' );
61
  }
62
 
63
  /**
67
  * @return string
68
  */
69
  public function get_default_heading() {
70
+ return __( 'Thank you for your order', 'woocommerce' );
71
  }
72
 
73
  /**
104
  */
105
  public function get_content_html() {
106
  return wc_get_template_html(
107
+ $this->template_html,
108
+ array(
109
  'order' => $this->object,
110
  'email_heading' => $this->get_heading(),
111
  'sent_to_admin' => false,
122
  */
123
  public function get_content_plain() {
124
  return wc_get_template_html(
125
+ $this->template_plain,
126
+ array(
127
  'order' => $this->object,
128
  'email_heading' => $this->get_heading(),
129
  'sent_to_admin' => false,
includes/export/abstract-wc-csv-exporter.php CHANGED
@@ -354,7 +354,7 @@ abstract class WC_CSV_Exporter {
354
  $active_content_triggers = array( '=', '+', '-', '@' );
355
 
356
  if ( in_array( mb_substr( $data, 0, 1 ), $active_content_triggers, true ) ) {
357
- $data = "'" . $data . "'";
358
  }
359
 
360
  return $data;
354
  $active_content_triggers = array( '=', '+', '-', '@' );
355
 
356
  if ( in_array( mb_substr( $data, 0, 1 ), $active_content_triggers, true ) ) {
357
+ $data = "'" . $data;
358
  }
359
 
360
  return $data;
includes/export/class-wc-product-csv-exporter.php CHANGED
@@ -86,7 +86,7 @@ class WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter {
86
  * @return void
87
  */
88
  public function set_product_category_to_export( $product_category_to_export ) {
89
- $this->product_category_to_export = array_map( 'wc_clean', $product_category_to_export );
90
  }
91
 
92
  /**
@@ -231,6 +231,10 @@ class WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter {
231
  $value = $product->{"get_{$column_id}"}( 'edit' );
232
  }
233
 
 
 
 
 
234
  $row[ $column_id ] = $value;
235
  }
236
 
@@ -534,6 +538,20 @@ class WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter {
534
  return $this->implode_values( $types );
535
  }
536
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  /**
538
  * Export downloads.
539
  *
86
  * @return void
87
  */
88
  public function set_product_category_to_export( $product_category_to_export ) {
89
+ $this->product_category_to_export = array_map( 'sanitize_title_with_dashes', $product_category_to_export );
90
  }
91
 
92
  /**
231
  $value = $product->{"get_{$column_id}"}( 'edit' );
232
  }
233
 
234
+ if ( 'description' == $column_id || 'short_description' == $column_id ) {
235
+ $value = $this->filter_description_field( $value );
236
+ }
237
+
238
  $row[ $column_id ] = $value;
239
  }
240
 
538
  return $this->implode_values( $types );
539
  }
540
 
541
+ /**
542
+ * Filter description field for export.
543
+ * Convert newlines to '\n'.
544
+ *
545
+ * @param string $description Product description text to filter.
546
+ *
547
+ * @since 3.5.4
548
+ * @return string
549
+ */
550
+ protected function filter_description_field( $description ) {
551
+ $description = str_replace( '\n', "\\\\n", $description );
552
+ $description = str_replace( "\n", '\n', $description );
553
+ return $description;
554
+ }
555
  /**
556
  * Export downloads.
557
  *
includes/gateways/paypal/includes/class-wc-gateway-paypal-response.php CHANGED
@@ -47,7 +47,7 @@ abstract class WC_Gateway_Paypal_Response {
47
  $order = wc_get_order( $order_id );
48
  }
49
 
50
- if ( ! $order || $order->get_order_key() !== $order_key ) {
51
  WC_Gateway_Paypal::log( 'Order Keys do not match.', 'error' );
52
  return false;
53
  }
47
  $order = wc_get_order( $order_id );
48
  }
49
 
50
+ if ( ! $order || ! hash_equals( $order->get_order_key(), $order_key ) ) {
51
  WC_Gateway_Paypal::log( 'Order Keys do not match.', 'error' );
52
  return false;
53
  }
includes/import/abstract-wc-product-importer.php CHANGED
@@ -765,21 +765,21 @@ abstract class WC_Product_Importer implements WC_Importer_Interface {
765
  }
766
 
767
  /**
768
- * The exporter prepends a ' to fields that start with a - which causes
769
- * issues with negative numbers. This removes the ' if the input is still a valid
770
- * number after removal.
771
  *
772
- * @since 3.3.0
773
- * @param string $value A numeric string that may or may not have ' prepended.
774
  * @return string
775
  */
776
- protected function unescape_negative_number( $value ) {
777
- if ( 0 === strpos( $value, "'-" ) ) {
778
- $unescaped = trim( $value, "'" );
779
- if ( is_numeric( $unescaped ) ) {
780
- return $unescaped;
781
- }
782
  }
 
783
  return $value;
784
  }
 
785
  }
765
  }
766
 
767
  /**
768
+ * The exporter prepends a ' to escape fields that start with =, +, - or @.
769
+ * Remove the prepended ' character preceding those characters.
 
770
  *
771
+ * @since 3.5.2
772
+ * @param string $value A string that may or may not have been escaped with '.
773
  * @return string
774
  */
775
+ protected function unescape_data( $value ) {
776
+ $active_content_triggers = array( "'=", "'+", "'-", "'@" );
777
+
778
+ if ( in_array( mb_substr( $value, 0, 2 ), $active_content_triggers, true ) ) {
779
+ $value = mb_substr( $value, 1 );
 
780
  }
781
+
782
  return $value;
783
  }
784
+
785
  }
includes/import/class-wc-product-csv-importer.php CHANGED
@@ -64,7 +64,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
64
  */
65
  protected function read_file() {
66
  if ( ! WC_Product_CSV_Importer_Controller::is_file_valid_csv( $this->file ) ) {
67
- wp_die( __( 'Invalid file type. The importer supports CSV and TXT file formats.', 'woocommerce' ) );
68
  }
69
 
70
  $handle = fopen( $this->file, 'r' ); // @codingStandardsIgnoreLine.
@@ -284,6 +284,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
284
  return array();
285
  }
286
 
 
287
  return array_map( 'wc_clean', $this->explode_values( $value ) );
288
  }
289
 
@@ -318,7 +319,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
318
  }
319
 
320
  // Remove the ' prepended to fields that start with - if needed.
321
- $value = $this->unescape_negative_number( $value );
322
 
323
  return floatval( $value );
324
  }
@@ -335,7 +336,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
335
  }
336
 
337
  // Remove the ' prepended to fields that start with - if needed.
338
- $value = $this->unescape_negative_number( $value );
339
 
340
  return wc_stock_amount( $value );
341
  }
@@ -403,6 +404,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
403
  return array();
404
  }
405
 
 
406
  $names = $this->explode_values( $value );
407
  $tags = array();
408
 
@@ -549,11 +551,27 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
549
  */
550
  public function parse_int_field( $value ) {
551
  // Remove the ' prepended to fields that start with - if needed.
552
- $value = $this->unescape_negative_number( $value );
553
 
554
  return intval( $value );
555
  }
556
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  /**
558
  * Get formatting callback.
559
  *
@@ -573,8 +591,8 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
573
  'date_on_sale_from' => array( $this, 'parse_date_field' ),
574
  'date_on_sale_to' => array( $this, 'parse_date_field' ),
575
  'name' => array( $this, 'parse_skip_field' ),
576
- 'short_description' => array( $this, 'parse_skip_field' ),
577
- 'description' => array( $this, 'parse_skip_field' ),
578
  'manage_stock' => array( $this, 'parse_bool_field' ),
579
  'low_stock_amount' => array( $this, 'parse_stock_quantity_field' ),
580
  'backorders' => array( $this, 'parse_backorders_field' ),
@@ -895,7 +913,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
895
  do_action( 'woocommerce_product_import_before_import', $parsed_data );
896
 
897
  $id = isset( $parsed_data['id'] ) ? absint( $parsed_data['id'] ) : 0;
898
- $sku = isset( $parsed_data['sku'] ) ? esc_attr( $parsed_data['sku'] ) : '';
899
  $id_exists = false;
900
  $sku_exists = false;
901
 
@@ -911,27 +929,39 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
911
  }
912
 
913
  if ( $id_exists && ! $update_existing ) {
914
- $data['skipped'][] = new WP_Error( 'woocommerce_product_importer_error', __( 'A product with this ID already exists.', 'woocommerce' ), array(
915
- 'id' => $id,
916
- 'row' => $this->get_row_id( $parsed_data ),
917
- ) );
 
 
 
 
918
  continue;
919
  }
920
 
921
  if ( $sku_exists && ! $update_existing ) {
922
- $data['skipped'][] = new WP_Error( 'woocommerce_product_importer_error', __( 'A product with this SKU already exists.', 'woocommerce' ), array(
923
- 'sku' => $sku,
924
- 'row' => $this->get_row_id( $parsed_data ),
925
- ) );
 
 
 
 
926
  continue;
927
  }
928
 
929
  if ( $update_existing && ( $id || $sku ) && ! $id_exists && ! $sku_exists ) {
930
- $data['skipped'][] = new WP_Error( 'woocommerce_product_importer_error', __( 'No matching product exists to update.', 'woocommerce' ), array(
931
- 'id' => $id,
932
- 'sku' => $sku,
933
- 'row' => $this->get_row_id( $parsed_data ),
934
- ) );
 
 
 
 
935
  continue;
936
  }
937
 
64
  */
65
  protected function read_file() {
66
  if ( ! WC_Product_CSV_Importer_Controller::is_file_valid_csv( $this->file ) ) {
67
+ wp_die( esc_html__( 'Invalid file type. The importer supports CSV and TXT file formats.', 'woocommerce' ) );
68
  }
69
 
70
  $handle = fopen( $this->file, 'r' ); // @codingStandardsIgnoreLine.
284
  return array();
285
  }
286
 
287
+ $value = $this->unescape_data( $value );
288
  return array_map( 'wc_clean', $this->explode_values( $value ) );
289
  }
290
 
319
  }
320
 
321
  // Remove the ' prepended to fields that start with - if needed.
322
+ $value = $this->unescape_data( $value );
323
 
324
  return floatval( $value );
325
  }
336
  }
337
 
338
  // Remove the ' prepended to fields that start with - if needed.
339
+ $value = $this->unescape_data( $value );
340
 
341
  return wc_stock_amount( $value );
342
  }
404
  return array();
405
  }
406
 
407
+ $value = $this->unescape_data( $value );
408
  $names = $this->explode_values( $value );
409
  $tags = array();
410
 
551
  */
552
  public function parse_int_field( $value ) {
553
  // Remove the ' prepended to fields that start with - if needed.
554
+ $value = $this->unescape_data( $value );
555
 
556
  return intval( $value );
557
  }
558
 
559
+ /**
560
+ * Parse a description value field
561
+ *
562
+ * @param string $description field value.
563
+ *
564
+ * @return string
565
+ */
566
+ public function parse_description_field( $description ) {
567
+ $parts = explode( "\\\\n", $description );
568
+ foreach ( $parts as $key => $part ) {
569
+ $parts[ $key ] = str_replace( '\n', "\n", $part );
570
+ }
571
+
572
+ return implode( '\\\n', $parts );
573
+ }
574
+
575
  /**
576
  * Get formatting callback.
577
  *
591
  'date_on_sale_from' => array( $this, 'parse_date_field' ),
592
  'date_on_sale_to' => array( $this, 'parse_date_field' ),
593
  'name' => array( $this, 'parse_skip_field' ),
594
+ 'short_description' => array( $this, 'parse_description_field' ),
595
+ 'description' => array( $this, 'parse_description_field' ),
596
  'manage_stock' => array( $this, 'parse_bool_field' ),
597
  'low_stock_amount' => array( $this, 'parse_stock_quantity_field' ),
598
  'backorders' => array( $this, 'parse_backorders_field' ),
913
  do_action( 'woocommerce_product_import_before_import', $parsed_data );
914
 
915
  $id = isset( $parsed_data['id'] ) ? absint( $parsed_data['id'] ) : 0;
916
+ $sku = isset( $parsed_data['sku'] ) ? $parsed_data['sku'] : '';
917
  $id_exists = false;
918
  $sku_exists = false;
919
 
929
  }
930
 
931
  if ( $id_exists && ! $update_existing ) {
932
+ $data['skipped'][] = new WP_Error(
933
+ 'woocommerce_product_importer_error',
934
+ __( 'A product with this ID already exists.', 'woocommerce' ),
935
+ array(
936
+ 'id' => $id,
937
+ 'row' => $this->get_row_id( $parsed_data ),
938
+ )
939
+ );
940
  continue;
941
  }
942
 
943
  if ( $sku_exists && ! $update_existing ) {
944
+ $data['skipped'][] = new WP_Error(
945
+ 'woocommerce_product_importer_error',
946
+ __( 'A product with this SKU already exists.', 'woocommerce' ),
947
+ array(
948
+ 'sku' => esc_attr( $sku ),
949
+ 'row' => $this->get_row_id( $parsed_data ),
950
+ )
951
+ );
952
  continue;
953
  }
954
 
955
  if ( $update_existing && ( $id || $sku ) && ! $id_exists && ! $sku_exists ) {
956
+ $data['skipped'][] = new WP_Error(
957
+ 'woocommerce_product_importer_error',
958
+ __( 'No matching product exists to update.', 'woocommerce' ),
959
+ array(
960
+ 'id' => $id,
961
+ 'sku' => esc_attr( $sku ),
962
+ 'row' => $this->get_row_id( $parsed_data ),
963
+ )
964
+ );
965
  continue;
966
  }
967
 
includes/libraries/action-scheduler/classes/ActionScheduler_Logger.php CHANGED
@@ -73,7 +73,7 @@ abstract class ActionScheduler_Logger {
73
  $this->log( $action_id, __( 'action complete', 'action-scheduler' ) );
74
  }
75
 
76
- public function log_failed_action( $action_id, \Exception $exception ) {
77
  $this->log( $action_id, sprintf( __( 'action failed: %s', 'action-scheduler' ), $exception->getMessage() ) );
78
  }
79
 
@@ -95,4 +95,4 @@ abstract class ActionScheduler_Logger {
95
  $this->log( $action_id, __( 'action ignored', 'action-scheduler' ) );
96
  }
97
  }
98
-
73
  $this->log( $action_id, __( 'action complete', 'action-scheduler' ) );
74
  }
75
 
76
+ public function log_failed_action( $action_id, Exception $exception ) {
77
  $this->log( $action_id, sprintf( __( 'action failed: %s', 'action-scheduler' ), $exception->getMessage() ) );
78
  }
79
 
95
  $this->log( $action_id, __( 'action ignored', 'action-scheduler' ) );
96
  }
97
  }
98
+
includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php CHANGED
@@ -685,7 +685,7 @@ class ActionScheduler_wpPostStore extends ActionScheduler_Store {
685
  $status = $this->get_post_column( $action_id, 'post_status' );
686
 
687
  if ( $status === null ) {
688
- throw new \InvalidArgumentException( __( 'Invalid action ID. No status found.', 'action-scheduler' ) );
689
  }
690
 
691
  return $this->get_action_status_by_post_status( $status );
685
  $status = $this->get_post_column( $action_id, 'post_status' );
686
 
687
  if ( $status === null ) {
688
+ throw new InvalidArgumentException( __( 'Invalid action ID. No status found.', 'action-scheduler' ) );
689
  }
690
 
691
  return $this->get_action_status_by_post_status( $status );
includes/queue/class-wc-action-queue.php CHANGED
@@ -127,7 +127,7 @@ class WC_Action_Queue implements WC_Queue_Interface {
127
  $next_timestamp = as_next_scheduled_action( $hook, $args, $group );
128
 
129
  if ( $next_timestamp ) {
130
- return wc_string_to_datetime( $next_timestamp );
131
  }
132
 
133
  return null;
127
  $next_timestamp = as_next_scheduled_action( $hook, $args, $group );
128
 
129
  if ( $next_timestamp ) {
130
+ return new WC_DateTime( "@{$next_timestamp}", new DateTimeZone( 'UTC' ) );
131
  }
132
 
133
  return null;
includes/shortcodes/class-wc-shortcode-checkout.php CHANGED
@@ -89,7 +89,7 @@ class WC_Shortcode_Checkout {
89
  $hold_stock_minutes = (int) get_option( 'woocommerce_hold_stock_minutes', 0 );
90
 
91
  // Order or payment link is invalid.
92
- if ( ! $order || $order->get_id() !== $order_id || $order->get_order_key() !== $order_key ) {
93
  throw new Exception( __( 'Sorry, this order is invalid and cannot be paid for.', 'woocommerce' ) );
94
  }
95
 
@@ -193,7 +193,7 @@ class WC_Shortcode_Checkout {
193
  $order_key = isset( $_GET['key'] ) ? wc_clean( wp_unslash( $_GET['key'] ) ) : ''; // WPCS: input var ok, CSRF ok.
194
  $order = wc_get_order( $order_id );
195
 
196
- if ( $order && $order->get_id() === $order_id && $order->get_order_key() === $order_key ) {
197
 
198
  if ( $order->needs_payment() ) {
199
 
@@ -227,7 +227,7 @@ class WC_Shortcode_Checkout {
227
 
228
  if ( $order_id > 0 ) {
229
  $order = wc_get_order( $order_id );
230
- if ( ! $order || $order->get_order_key() !== $order_key ) {
231
  $order = false;
232
  }
233
  }
@@ -251,6 +251,9 @@ class WC_Shortcode_Checkout {
251
  * Show the checkout.
252
  */
253
  private static function checkout() {
 
 
 
254
  // Check cart has contents.
255
  if ( WC()->cart->is_empty() && ! is_customize_preview() && apply_filters( 'woocommerce_checkout_redirect_empty_cart', true ) ) {
256
  return;
89
  $hold_stock_minutes = (int) get_option( 'woocommerce_hold_stock_minutes', 0 );
90
 
91
  // Order or payment link is invalid.
92
+ if ( ! $order || $order->get_id() !== $order_id || ! hash_equals( $order->get_order_key(), $order_key ) ) {
93
  throw new Exception( __( 'Sorry, this order is invalid and cannot be paid for.', 'woocommerce' ) );
94
  }
95
 
193
  $order_key = isset( $_GET['key'] ) ? wc_clean( wp_unslash( $_GET['key'] ) ) : ''; // WPCS: input var ok, CSRF ok.
194
  $order = wc_get_order( $order_id );
195
 
196
+ if ( $order && $order->get_id() === $order_id && hash_equals( $order->get_order_key(), $order_key ) ) {
197
 
198
  if ( $order->needs_payment() ) {
199
 
227
 
228
  if ( $order_id > 0 ) {
229
  $order = wc_get_order( $order_id );
230
+ if ( ! $order || ! hash_equals( $order->get_order_key(), $order_key ) ) {
231
  $order = false;
232
  }
233
  }
251
  * Show the checkout.
252
  */
253
  private static function checkout() {
254
+ // Show non-cart errors.
255
+ do_action( 'woocommerce_before_checkout_form_cart_notices' );
256
+
257
  // Check cart has contents.
258
  if ( WC()->cart->is_empty() && ! is_customize_preview() && apply_filters( 'woocommerce_checkout_redirect_empty_cart', true ) ) {
259
  return;
includes/shortcodes/class-wc-shortcode-my-account.php CHANGED
@@ -219,8 +219,10 @@ class WC_Shortcode_My_Account {
219
  */
220
  } elseif ( ! empty( $_GET['show-reset-form'] ) ) { // WPCS: input var ok, CSRF ok.
221
  if ( isset( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ] ) && 0 < strpos( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ], ':' ) ) { // @codingStandardsIgnoreLine
222
- list( $rp_login, $rp_key ) = array_map( 'wc_clean', explode( ':', wp_unslash( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ] ), 2 ) ); // @codingStandardsIgnoreLine
223
- $user = self::check_password_reset_key( $rp_key, $rp_login );
 
 
224
 
225
  // Reset key / login is correct, display reset password form with hidden key / login values.
226
  if ( is_object( $user ) ) {
219
  */
220
  } elseif ( ! empty( $_GET['show-reset-form'] ) ) { // WPCS: input var ok, CSRF ok.
221
  if ( isset( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ] ) && 0 < strpos( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ], ':' ) ) { // @codingStandardsIgnoreLine
222
+ list( $rp_id, $rp_key ) = array_map( 'wc_clean', explode( ':', wp_unslash( $_COOKIE[ 'wp-resetpass-' . COOKIEHASH ] ), 2 ) ); // @codingStandardsIgnoreLine
223
+ $userdata = get_userdata( absint( $rp_id ) );
224
+ $rp_login = $userdata ? $userdata->user_login : '';
225
+ $user = self::check_password_reset_key( $rp_key, $rp_login );
226
 
227
  // Reset key / login is correct, display reset password form with hidden key / login values.
228
  if ( is_object( $user ) ) {
includes/wc-cart-functions.php CHANGED
@@ -173,7 +173,7 @@ function wc_clear_cart_after_payment() {
173
  if ( $order_id > 0 ) {
174
  $order = wc_get_order( $order_id );
175
 
176
- if ( $order && $order->get_order_key() === $order_key ) {
177
  WC()->cart->empty_cart();
178
  }
179
  }
@@ -218,7 +218,8 @@ function wc_cart_totals_shipping_html() {
218
  }
219
 
220
  wc_get_template(
221
- 'cart/cart-shipping.php', array(
 
222
  'package' => $package,
223
  'available_methods' => $package['rates'],
224
  'show_package_details' => count( $packages ) > 1,
@@ -341,9 +342,11 @@ function wc_cart_totals_fee_html( $fee ) {
341
  * @return string
342
  */
343
  function wc_cart_totals_shipping_method_label( $method ) {
344
- $label = $method->get_label();
 
 
345
 
346
- if ( $method->cost >= 0 && $method->get_method_id() !== 'free_shipping' ) {
347
  if ( WC()->cart->display_prices_including_tax() ) {
348
  $label .= ': ' . wc_price( $method->cost + $method->get_shipping_tax() );
349
  if ( $method->get_shipping_tax() > 0 && ! wc_prices_include_tax() ) {
173
  if ( $order_id > 0 ) {
174
  $order = wc_get_order( $order_id );
175
 
176
+ if ( $order && hash_equals( $order->get_order_key(), $order_key ) ) {
177
  WC()->cart->empty_cart();
178
  }
179
  }
218
  }
219
 
220
  wc_get_template(
221
+ 'cart/cart-shipping.php',
222
+ array(
223
  'package' => $package,
224
  'available_methods' => $package['rates'],
225
  'show_package_details' => count( $packages ) > 1,
342
  * @return string
343
  */
344
  function wc_cart_totals_shipping_method_label( $method ) {
345
+ $label = $method->get_label();
346
+ $has_cost = 0 < $method->cost;
347
+ $hide_cost = ! $has_cost && in_array( $method->get_method_id(), array( 'free_shipping', 'local_pickup' ), true );
348
 
349
+ if ( $has_cost && ! $hide_cost ) {
350
  if ( WC()->cart->display_prices_including_tax() ) {
351
  $label .= ': ' . wc_price( $method->cost + $method->get_shipping_tax() );
352
  if ( $method->get_shipping_tax() > 0 && ! wc_prices_include_tax() ) {
includes/wc-core-functions.php CHANGED
@@ -43,6 +43,9 @@ add_filter( 'woocommerce_attribute_label', 'wp_kses_post', 100 );
43
  /**
44
  * Short Description (excerpt).
45
  */
 
 
 
46
  add_filter( 'woocommerce_short_description', 'wptexturize' );
47
  add_filter( 'woocommerce_short_description', 'convert_smilies' );
48
  add_filter( 'woocommerce_short_description', 'convert_chars' );
43
  /**
44
  * Short Description (excerpt).
45
  */
46
+ if ( function_exists( 'do_blocks' ) ) {
47
+ add_filter( 'woocommerce_short_description', 'do_blocks', 9 );
48
+ }
49
  add_filter( 'woocommerce_short_description', 'wptexturize' );
50
  add_filter( 'woocommerce_short_description', 'convert_smilies' );
51
  add_filter( 'woocommerce_short_description', 'convert_chars' );
includes/wc-order-functions.php CHANGED
@@ -138,6 +138,16 @@ function wc_get_order_status_name( $status ) {
138
  return $status;
139
  }
140
 
 
 
 
 
 
 
 
 
 
 
141
  /**
142
  * Finds an Order ID based on an order key.
143
  *
138
  return $status;
139
  }
140
 
141
+ /**
142
+ * Generate an order key.
143
+ *
144
+ * @since 3.5.4
145
+ * @return string The order key.
146
+ */
147
+ function wc_generate_order_key() {
148
+ return 'wc_' . apply_filters( 'woocommerce_generate_order_key', 'order_' . wp_generate_password( 13, false ) );
149
+ }
150
+
151
  /**
152
  * Finds an Order ID based on an order key.
153
  *
includes/wc-product-functions.php CHANGED
@@ -134,6 +134,14 @@ function wc_delete_product_transients( $post_id = 0 ) {
134
  'products'
135
  );
136
  }
 
 
 
 
 
 
 
 
137
  }
138
  }
139
 
@@ -284,7 +292,7 @@ function wc_placeholder_img_src( $size = 'woocommerce_thumbnail' ) {
284
 
285
  if ( ! empty( $placeholder_image ) ) {
286
  if ( is_numeric( $placeholder_image ) ) {
287
- $image = wp_get_attachment_image_src( $placeholder_image, $size );
288
 
289
  if ( ! empty( $image[0] ) ) {
290
  $src = $image[0];
@@ -530,7 +538,8 @@ add_action( 'template_redirect', 'wc_track_product_view', 20 );
530
  */
531
  function wc_get_product_types() {
532
  return (array) apply_filters(
533
- 'product_type_selector', array(
 
534
  'simple' => __( 'Simple product', 'woocommerce' ),
535
  'grouped' => __( 'Grouped product', 'woocommerce' ),
536
  'external' => __( 'External/Affiliate product', 'woocommerce' ),
@@ -766,7 +775,8 @@ function wc_get_product_attachment_props( $attachment_id = null, $product = fals
766
  */
767
  function wc_get_product_visibility_options() {
768
  return apply_filters(
769
- 'woocommerce_product_visibility_options', array(
 
770
  'visible' => __( 'Shop and search results', 'woocommerce' ),
771
  'catalog' => __( 'Shop only', 'woocommerce' ),
772
  'search' => __( 'Search results only', 'woocommerce' ),
@@ -912,7 +922,10 @@ function wc_get_related_products( $product_id, $limit = 5, $exclude_ids = array(
912
  }
913
 
914
  $related_posts = apply_filters(
915
- 'woocommerce_related_products', $related_posts, $product_id, array(
 
 
 
916
  'limit' => $limit,
917
  'excluded_ids' => $exclude_ids,
918
  )
@@ -946,7 +959,8 @@ function wc_get_product_term_ids( $product_id, $taxonomy ) {
946
  */
947
  function wc_get_price_including_tax( $product, $args = array() ) {
948
  $args = wp_parse_args(
949
- $args, array(
 
950
  'qty' => '',
951
  'price' => '',
952
  )
@@ -966,10 +980,16 @@ function wc_get_price_including_tax( $product, $args = array() ) {
966
 
967
  if ( $product->is_taxable() ) {
968
  if ( ! wc_prices_include_tax() ) {
969
- $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
970
- $taxes = WC_Tax::calc_tax( $line_price, $tax_rates, false );
971
- $tax_amount = WC_Tax::get_tax_total( $taxes );
972
- $return_price = round( $line_price + $tax_amount, wc_get_price_decimals() );
 
 
 
 
 
 
973
  } else {
974
  $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
975
  $base_tax_rates = WC_Tax::get_base_tax_rates( $product->get_tax_class( 'unfiltered' ) );
@@ -980,8 +1000,14 @@ function wc_get_price_including_tax( $product, $args = array() ) {
980
  */
981
  if ( ! empty( WC()->customer ) && WC()->customer->get_is_vat_exempt() ) { // @codingStandardsIgnoreLine.
982
  $remove_taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $line_price, $base_tax_rates, true ) : WC_Tax::calc_tax( $line_price, $tax_rates, true );
983
- $remove_tax = array_sum( $remove_taxes );
984
- $return_price = round( $line_price - $remove_tax, wc_get_price_decimals() );
 
 
 
 
 
 
985
 
986
  /**
987
  * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations.
@@ -991,7 +1017,16 @@ function wc_get_price_including_tax( $product, $args = array() ) {
991
  } elseif ( $tax_rates !== $base_tax_rates && apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) {
992
  $base_taxes = WC_Tax::calc_tax( $line_price, $base_tax_rates, true );
993
  $modded_taxes = WC_Tax::calc_tax( $line_price - array_sum( $base_taxes ), $tax_rates, false );
994
- $return_price = round( $line_price - array_sum( $base_taxes ) + wc_round_tax_total( array_sum( $modded_taxes ), wc_get_price_decimals() ), wc_get_price_decimals() );
 
 
 
 
 
 
 
 
 
995
  }
996
  }
997
  }
@@ -1008,7 +1043,8 @@ function wc_get_price_including_tax( $product, $args = array() ) {
1008
  */
1009
  function wc_get_price_excluding_tax( $product, $args = array() ) {
1010
  $args = wp_parse_args(
1011
- $args, array(
 
1012
  'qty' => '',
1013
  'price' => '',
1014
  )
@@ -1029,7 +1065,7 @@ function wc_get_price_excluding_tax( $product, $args = array() ) {
1029
  $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
1030
  $base_tax_rates = WC_Tax::get_base_tax_rates( $product->get_tax_class( 'unfiltered' ) );
1031
  $remove_taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $line_price, $base_tax_rates, true ) : WC_Tax::calc_tax( $line_price, $tax_rates, true );
1032
- $return_price = $line_price - array_sum( $remove_taxes );
1033
  } else {
1034
  $return_price = $line_price;
1035
  }
@@ -1047,7 +1083,8 @@ function wc_get_price_excluding_tax( $product, $args = array() ) {
1047
  */
1048
  function wc_get_price_to_display( $product, $args = array() ) {
1049
  $args = wp_parse_args(
1050
- $args, array(
 
1051
  'qty' => 1,
1052
  'price' => $product->get_price(),
1053
  )
@@ -1058,13 +1095,15 @@ function wc_get_price_to_display( $product, $args = array() ) {
1058
 
1059
  return 'incl' === get_option( 'woocommerce_tax_display_shop' ) ?
1060
  wc_get_price_including_tax(
1061
- $product, array(
 
1062
  'qty' => $qty,
1063
  'price' => $price,
1064
  )
1065
  ) :
1066
  wc_get_price_excluding_tax(
1067
- $product, array(
 
1068
  'qty' => $qty,
1069
  'price' => $price,
1070
  )
134
  'products'
135
  );
136
  }
137
+
138
+ $attributes = $product->get_attributes();
139
+
140
+ if ( $attributes ) {
141
+ foreach ( $attributes as $attribute_key => $attribute ) {
142
+ $transients_to_clear[] = 'wc_layered_nav_counts_' . $attribute_key;
143
+ }
144
+ }
145
  }
146
  }
147
 
292
 
293
  if ( ! empty( $placeholder_image ) ) {
294
  if ( is_numeric( $placeholder_image ) ) {
295
+ $image = wp_get_attachment_image_src( $placeholder_image, $size );
296
 
297
  if ( ! empty( $image[0] ) ) {
298
  $src = $image[0];
538
  */
539
  function wc_get_product_types() {
540
  return (array) apply_filters(
541
+ 'product_type_selector',
542
+ array(
543
  'simple' => __( 'Simple product', 'woocommerce' ),
544
  'grouped' => __( 'Grouped product', 'woocommerce' ),
545
  'external' => __( 'External/Affiliate product', 'woocommerce' ),
775
  */
776
  function wc_get_product_visibility_options() {
777
  return apply_filters(
778
+ 'woocommerce_product_visibility_options',
779
+ array(
780
  'visible' => __( 'Shop and search results', 'woocommerce' ),
781
  'catalog' => __( 'Shop only', 'woocommerce' ),
782
  'search' => __( 'Search results only', 'woocommerce' ),
922
  }
923
 
924
  $related_posts = apply_filters(
925
+ 'woocommerce_related_products',
926
+ $related_posts,
927
+ $product_id,
928
+ array(
929
  'limit' => $limit,
930
  'excluded_ids' => $exclude_ids,
931
  )
959
  */
960
  function wc_get_price_including_tax( $product, $args = array() ) {
961
  $args = wp_parse_args(
962
+ $args,
963
+ array(
964
  'qty' => '',
965
  'price' => '',
966
  )
980
 
981
  if ( $product->is_taxable() ) {
982
  if ( ! wc_prices_include_tax() ) {
983
+ $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
984
+ $taxes = WC_Tax::calc_tax( $line_price, $tax_rates, false );
985
+
986
+ if ( 'yes' === get_option( 'woocommerce_tax_round_at_subtotal' ) ) {
987
+ $taxes_total = array_sum( $taxes );
988
+ } else {
989
+ $taxes_total = array_sum( array_map( 'wc_round_tax_total', $taxes ) );
990
+ }
991
+
992
+ $return_price = round( $line_price + $taxes_total, wc_get_price_decimals() );
993
  } else {
994
  $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
995
  $base_tax_rates = WC_Tax::get_base_tax_rates( $product->get_tax_class( 'unfiltered' ) );
1000
  */
1001
  if ( ! empty( WC()->customer ) && WC()->customer->get_is_vat_exempt() ) { // @codingStandardsIgnoreLine.
1002
  $remove_taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $line_price, $base_tax_rates, true ) : WC_Tax::calc_tax( $line_price, $tax_rates, true );
1003
+
1004
+ if ( 'yes' === get_option( 'woocommerce_tax_round_at_subtotal' ) ) {
1005
+ $remove_taxes_total = array_sum( $remove_taxes );
1006
+ } else {
1007
+ $remove_taxes_total = array_sum( array_map( 'wc_round_tax_total', $remove_taxes ) );
1008
+ }
1009
+
1010
+ $return_price = round( $line_price - $remove_taxes_total, wc_get_price_decimals() );
1011
 
1012
  /**
1013
  * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations.
1017
  } elseif ( $tax_rates !== $base_tax_rates && apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) {
1018
  $base_taxes = WC_Tax::calc_tax( $line_price, $base_tax_rates, true );
1019
  $modded_taxes = WC_Tax::calc_tax( $line_price - array_sum( $base_taxes ), $tax_rates, false );
1020
+
1021
+ if ( 'yes' === get_option( 'woocommerce_tax_round_at_subtotal' ) ) {
1022
+ $base_taxes_total = array_sum( $base_taxes );
1023
+ $modded_taxes_total = array_sum( $modded_taxes );
1024
+ } else {
1025
+ $base_taxes_total = array_sum( array_map( 'wc_round_tax_total', $base_taxes ) );
1026
+ $modded_taxes_total = array_sum( array_map( 'wc_round_tax_total', $modded_taxes ) );
1027
+ }
1028
+
1029
+ $return_price = round( $line_price - $base_taxes_total + $modded_taxes_total, wc_get_price_decimals() );
1030
  }
1031
  }
1032
  }
1043
  */
1044
  function wc_get_price_excluding_tax( $product, $args = array() ) {
1045
  $args = wp_parse_args(
1046
+ $args,
1047
+ array(
1048
  'qty' => '',
1049
  'price' => '',
1050
  )
1065
  $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
1066
  $base_tax_rates = WC_Tax::get_base_tax_rates( $product->get_tax_class( 'unfiltered' ) );
1067
  $remove_taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $line_price, $base_tax_rates, true ) : WC_Tax::calc_tax( $line_price, $tax_rates, true );
1068
+ $return_price = $line_price - array_sum( $remove_taxes ); // Unrounded since we're dealing with tax inclusive prices. Matches logic in cart-totals class. @see adjust_non_base_location_price.
1069
  } else {
1070
  $return_price = $line_price;
1071
  }
1083
  */
1084
  function wc_get_price_to_display( $product, $args = array() ) {
1085
  $args = wp_parse_args(
1086
+ $args,
1087
+ array(
1088
  'qty' => 1,
1089
  'price' => $product->get_price(),
1090
  )
1095
 
1096
  return 'incl' === get_option( 'woocommerce_tax_display_shop' ) ?
1097
  wc_get_price_including_tax(
1098
+ $product,
1099
+ array(
1100
  'qty' => $qty,
1101
  'price' => $price,
1102
  )
1103
  ) :
1104
  wc_get_price_excluding_tax(
1105
+ $product,
1106
+ array(
1107
  'qty' => $qty,
1108
  'price' => $price,
1109
  )
includes/wc-rest-functions.php CHANGED
@@ -65,7 +65,6 @@ function wc_rest_allowed_image_mime_types() {
65
  * @return array|WP_Error Attachment data or error message.
66
  */
67
  function wc_rest_upload_image_from_url( $image_url ) {
68
- $file_name = basename( current( explode( '?', $image_url ) ) );
69
  $parsed_url = wp_parse_url( $image_url );
70
 
71
  // Check parsed URL.
@@ -77,68 +76,47 @@ function wc_rest_upload_image_from_url( $image_url ) {
77
  // Ensure url is valid.
78
  $image_url = esc_url_raw( $image_url );
79
 
80
- // Get the file.
81
- $response = wp_safe_remote_get(
82
- $image_url, array(
83
- 'timeout' => 10,
84
- )
85
- );
 
86
 
87
- if ( is_wp_error( $response ) ) {
 
 
 
 
88
  return new WP_Error( 'woocommerce_rest_invalid_remote_image_url',
89
  /* translators: %s: image URL */
90
  sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ) . ' '
91
  /* translators: %s: error message */
92
- . sprintf( __( 'Error: %s.', 'woocommerce' ), $response->get_error_message() ), array( 'status' => 400 )
93
  );
94
- } elseif ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
95
- /* translators: %s: image URL */
96
- return new WP_Error( 'woocommerce_rest_invalid_remote_image_url', sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ), array( 'status' => 400 ) );
97
- }
98
-
99
- // Ensure we have a file name and type.
100
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
101
-
102
- if ( ! $wp_filetype['type'] ) {
103
- $headers = wp_remote_retrieve_headers( $response );
104
- if ( isset( $headers['content-disposition'] ) && strstr( $headers['content-disposition'], 'filename=' ) ) {
105
- $content = explode( 'filename=', $headers['content-disposition'] );
106
- $disposition = end( $content );
107
- $disposition = sanitize_file_name( $disposition );
108
- $file_name = $disposition;
109
- } elseif ( isset( $headers['content-type'] ) && strstr( $headers['content-type'], 'image/' ) ) {
110
- $file_name = 'image.' . str_replace( 'image/', '', $headers['content-type'] );
111
- }
112
- unset( $headers );
113
-
114
- // Recheck filetype.
115
- $wp_filetype = wp_check_filetype( $file_name, wc_rest_allowed_image_mime_types() );
116
-
117
- if ( ! $wp_filetype['type'] ) {
118
- return new WP_Error( 'woocommerce_rest_invalid_image_type', __( 'Invalid image type.', 'woocommerce' ), array( 'status' => 400 ) );
119
- }
120
  }
121
 
122
- // Upload the file.
123
- $upload = wp_upload_bits( $file_name, '', wp_remote_retrieve_body( $response ) );
124
-
125
- if ( $upload['error'] ) {
126
- return new WP_Error( 'woocommerce_rest_image_upload_error', $upload['error'], array( 'status' => 400 ) );
127
- }
128
-
129
- // Get filesize.
130
- $filesize = filesize( $upload['file'] );
131
 
132
- if ( ! $filesize ) {
133
- @unlink( $upload['file'] ); // @codingStandardsIgnoreLine
134
- unset( $upload );
135
 
136
- return new WP_Error( 'woocommerce_rest_image_upload_file_error', __( 'Zero size file downloaded.', 'woocommerce' ), array( 'status' => 400 ) );
 
137
  }
138
 
139
- do_action( 'woocommerce_rest_api_uploaded_image_from_url', $upload, $image_url );
140
 
141
- return $upload;
142
  }
143
 
144
  /**
65
  * @return array|WP_Error Attachment data or error message.
66
  */
67
  function wc_rest_upload_image_from_url( $image_url ) {
 
68
  $parsed_url = wp_parse_url( $image_url );
69
 
70
  // Check parsed URL.
76
  // Ensure url is valid.
77
  $image_url = esc_url_raw( $image_url );
78
 
79
+ // download_url function is part of wp-admin.
80
+ if ( ! function_exists( 'download_url' ) ) {
81
+ include_once ABSPATH . 'wp-admin/includes/file.php';
82
+ }
83
+
84
+ $file_array = array();
85
+ $file_array['name'] = basename( current( explode( '?', $image_url ) ) );
86
 
87
+ // Download file to temp location.
88
+ $file_array['tmp_name'] = download_url( $image_url );
89
+
90
+ // If error storing temporarily, return the error.
91
+ if ( is_wp_error( $file_array['tmp_name'] ) ) {
92
  return new WP_Error( 'woocommerce_rest_invalid_remote_image_url',
93
  /* translators: %s: image URL */
94
  sprintf( __( 'Error getting remote image %s.', 'woocommerce' ), $image_url ) . ' '
95
  /* translators: %s: error message */
96
+ . sprintf( __( 'Error: %s', 'woocommerce' ), $file_array['tmp_name']->get_error_message() ), array( 'status' => 400 )
97
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  }
99
 
100
+ // Do the validation and storage stuff.
101
+ $file = wp_handle_sideload(
102
+ $file_array,
103
+ array(
104
+ 'test_form' => false,
105
+ 'mimes' => wc_rest_allowed_image_mime_types(),
106
+ ),
107
+ current_time( 'Y/m' )
108
+ );
109
 
110
+ if ( isset( $file['error'] ) ) {
111
+ @unlink( $file_array['tmp_name'] ); // @codingStandardsIgnoreLine.
 
112
 
113
+ /* translators: %s: error message */
114
+ return new WP_Error( 'woocommerce_rest_invalid_image', sprintf( __( 'Invalid image: %s', 'woocommerce' ), $file['error'] ), array( 'status' => 400 ) );
115
  }
116
 
117
+ do_action( 'woocommerce_rest_api_uploaded_image_from_url', $file, $image_url );
118
 
119
+ return $file;
120
  }
121
 
122
  /**
includes/wc-template-functions.php CHANGED
@@ -2561,7 +2561,7 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) {
2561
  } elseif ( ! is_null( $for_country ) && is_array( $states ) ) {
2562
 
2563
  $field .= '<select name="' . esc_attr( $key ) . '" id="' . esc_attr( $args['id'] ) . '" class="state_select ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" ' . implode( ' ', $custom_attributes ) . ' data-placeholder="' . esc_attr( $args['placeholder'] ) . '">
2564
- <option value="">' . esc_html__( 'Select a state&hellip;', 'woocommerce' ) . '</option>';
2565
 
2566
  foreach ( $states as $ckey => $cvalue ) {
2567
  $field .= '<option value="' . esc_attr( $ckey ) . '" ' . selected( $value, $ckey, false ) . '>' . $cvalue . '</option>';
2561
  } elseif ( ! is_null( $for_country ) && is_array( $states ) ) {
2562
 
2563
  $field .= '<select name="' . esc_attr( $key ) . '" id="' . esc_attr( $args['id'] ) . '" class="state_select ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" ' . implode( ' ', $custom_attributes ) . ' data-placeholder="' . esc_attr( $args['placeholder'] ) . '">
2564
+ <option value="">' . esc_html__( 'Select an option&hellip;', 'woocommerce' ) . '</option>';
2565
 
2566
  foreach ( $states as $ckey => $cvalue ) {
2567
  $field .= '<option value="' . esc_attr( $ckey ) . '" ' . selected( $value, $ckey, false ) . '>' . $cvalue . '</option>';
includes/wc-template-hooks.php CHANGED
@@ -297,8 +297,9 @@ add_action( 'woocommerce_shortcode_before_product_cat_loop', 'woocommerce_output
297
  add_action( 'woocommerce_before_shop_loop', 'woocommerce_output_all_notices', 10 );
298
  add_action( 'woocommerce_before_single_product', 'woocommerce_output_all_notices', 10 );
299
  add_action( 'woocommerce_before_cart', 'woocommerce_output_all_notices', 10 );
 
300
  add_action( 'woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 10 );
301
- add_action( 'woocommerce_account_content', 'woocommerce_output_all_notices', 10 );
302
  add_action( 'woocommerce_before_customer_login_form', 'woocommerce_output_all_notices', 10 );
303
  add_action( 'woocommerce_before_lost_password_form', 'woocommerce_output_all_notices', 10 );
304
  add_action( 'before_woocommerce_pay', 'woocommerce_output_all_notices', 10 );
297
  add_action( 'woocommerce_before_shop_loop', 'woocommerce_output_all_notices', 10 );
298
  add_action( 'woocommerce_before_single_product', 'woocommerce_output_all_notices', 10 );
299
  add_action( 'woocommerce_before_cart', 'woocommerce_output_all_notices', 10 );
300
+ add_action( 'woocommerce_before_checkout_form_cart_notices', 'woocommerce_output_all_notices', 10 );
301
  add_action( 'woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 10 );
302
+ add_action( 'woocommerce_account_content', 'woocommerce_output_all_notices', 5 );
303
  add_action( 'woocommerce_before_customer_login_form', 'woocommerce_output_all_notices', 10 );
304
  add_action( 'woocommerce_before_lost_password_form', 'woocommerce_output_all_notices', 10 );
305
  add_action( 'before_woocommerce_pay', 'woocommerce_output_all_notices', 10 );
includes/wc-update-functions.php CHANGED
@@ -1894,3 +1894,28 @@ function wc_update_352_drop_download_log_fk() {
1894
  $wpdb->query( "ALTER TABLE {$wpdb->prefix}wc_download_log DROP FOREIGN KEY fk_wc_download_log_permission_id" ); // phpcs:ignore WordPress.WP.PreparedSQL.NotPrepared
1895
  }
1896
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1894
  $wpdb->query( "ALTER TABLE {$wpdb->prefix}wc_download_log DROP FOREIGN KEY fk_wc_download_log_permission_id" ); // phpcs:ignore WordPress.WP.PreparedSQL.NotPrepared
1895
  }
1896
  }
1897
+
1898
+ /**
1899
+ * Remove edit_user capabilities from shop managers and use "translated" capabilities instead.
1900
+ * See wc_shop_manager_has_capability function.
1901
+ */
1902
+ function wc_update_354_modify_shop_manager_caps() {
1903
+ global $wp_roles;
1904
+
1905
+ if ( ! class_exists( 'WP_Roles' ) ) {
1906
+ return;
1907
+ }
1908
+
1909
+ if ( ! isset( $wp_roles ) ) {
1910
+ $wp_roles = new WP_Roles(); // @codingStandardsIgnoreLine
1911
+ }
1912
+
1913
+ $wp_roles->remove_cap( 'shop_manager', 'edit_users' );
1914
+ }
1915
+
1916
+ /**
1917
+ * Update DB Version.
1918
+ */
1919
+ function wc_update_354_db_version() {
1920
+ WC_Install::update_db_version( '3.5.4' );
1921
+ }
includes/wc-user-functions.php CHANGED
@@ -355,6 +355,31 @@ function wc_customer_has_capability( $allcaps, $caps, $args ) {
355
  }
356
  add_filter( 'user_has_cap', 'wc_customer_has_capability', 10, 3 );
357
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
358
  /**
359
  * Modify the list of editable roles to prevent non-admin adding admin users.
360
  *
355
  }
356
  add_filter( 'user_has_cap', 'wc_customer_has_capability', 10, 3 );
357
 
358
+ /**
359
+ * Safe way of allowing shop managers restricted capabilities that will remove
360
+ * access to the capabilities if WooCommerce is deactivated.
361
+ *
362
+ * @since 3.5.4
363
+ * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name and boolean values
364
+ * represent whether the user has that capability.
365
+ * @param string[] $caps Required primitive capabilities for the requested capability.
366
+ * @param array $args Arguments that accompany the requested capability check.
367
+ * @param WP_User $user The user object.
368
+ * @return bool[]
369
+ */
370
+ function wc_shop_manager_has_capability( $allcaps, $caps, $args, $user ) {
371
+
372
+ if ( wc_user_has_role( $user, 'shop_manager' ) ) {
373
+ /**
374
+ * @see wc_modify_map_meta_cap, which limits editing to customers.
375
+ */
376
+ $allcaps['edit_users'] = true;
377
+ }
378
+
379
+ return $allcaps;
380
+ }
381
+ add_filter( 'user_has_cap', 'wc_shop_manager_has_capability', 10, 4 );
382
+
383
  /**
384
  * Modify the list of editable roles to prevent non-admin adding admin users.
385
  *
includes/wc-webhook-functions.php CHANGED
@@ -20,11 +20,17 @@ function wc_webhook_process_delivery( $webhook, $arg ) {
20
  // so as to avoid delays or failures in delivery from affecting the
21
  // user who triggered it.
22
  if ( apply_filters( 'woocommerce_webhook_deliver_async', true, $webhook, $arg ) ) {
23
- // Deliver in background.
24
- WC()->queue()->add( 'woocommerce_deliver_webhook_async', array(
25
  'webhook_id' => $webhook->get_id(),
26
  'arg' => $arg,
27
- ), 'woocommerce-webhooks' );
 
 
 
 
 
 
 
28
  } else {
29
  // Deliver immediately.
30
  $webhook->deliver( $arg );
@@ -89,6 +95,17 @@ function wc_is_webhook_valid_topic( $topic ) {
89
  return false;
90
  }
91
 
 
 
 
 
 
 
 
 
 
 
 
92
  /**
93
  * Get Webhook statuses.
94
  *
@@ -96,11 +113,14 @@ function wc_is_webhook_valid_topic( $topic ) {
96
  * @return array
97
  */
98
  function wc_get_webhook_statuses() {
99
- return apply_filters( 'woocommerce_webhook_statuses', array(
100
- 'active' => __( 'Active', 'woocommerce' ),
101
- 'paused' => __( 'Paused', 'woocommerce' ),
102
- 'disabled' => __( 'Disabled', 'woocommerce' ),
103
- ) );
 
 
 
104
  }
105
 
106
  /**
20
  // so as to avoid delays or failures in delivery from affecting the
21
  // user who triggered it.
22
  if ( apply_filters( 'woocommerce_webhook_deliver_async', true, $webhook, $arg ) ) {
23
+ $queue_args = array(
 
24
  'webhook_id' => $webhook->get_id(),
25
  'arg' => $arg,
26
+ );
27
+
28
+ $next_scheduled_date = WC()->queue()->get_next( 'woocommerce_deliver_webhook_async', $queue_args, 'woocommerce-webhooks' );
29
+
30
+ // Make webhooks unique - only schedule one webhook every 10 minutes to maintain backward compatibility with WP Cron behaviour seen in WC < 3.5.0.
31
+ if ( is_null( $next_scheduled_date ) || $next_scheduled_date->getTimestamp() >= ( 600 + gmdate( 'U' ) ) ) {
32
+ WC()->queue()->add( 'woocommerce_deliver_webhook_async', $queue_args, 'woocommerce-webhooks' );
33
+ }
34
  } else {
35
  // Deliver immediately.
36
  $webhook->deliver( $arg );
95
  return false;
96
  }
97
 
98
+ /**
99
+ * Check if given status is a valid webhook status.
100
+ *
101
+ * @since 3.5.3
102
+ * @param string $status Status to check.
103
+ * @return bool
104
+ */
105
+ function wc_is_webhook_valid_status( $status ) {
106
+ return in_array( $status, array_keys( wc_get_webhook_statuses() ), true );
107
+ }
108
+
109
  /**
110
  * Get Webhook statuses.
111
  *
113
  * @return array
114
  */
115
  function wc_get_webhook_statuses() {
116
+ return apply_filters(
117
+ 'woocommerce_webhook_statuses',
118
+ array(
119
+ 'active' => __( 'Active', 'woocommerce' ),
120
+ 'paused' => __( 'Paused', 'woocommerce' ),
121
+ 'disabled' => __( 'Disabled', 'woocommerce' ),
122
+ )
123
+ );
124
  }
125
 
126
  /**
includes/widgets/class-wc-widget-layered-nav.php CHANGED
@@ -293,7 +293,7 @@ class WC_Widget_Layered_Nav extends WC_Widget {
293
  if ( jQuery().selectWoo ) {
294
  var wc_layered_nav_select = function() {
295
  jQuery( '.dropdown_layered_nav_" . esc_js( $taxonomy_filter_name ) . "' ).selectWoo( {
296
- placeholder: '" . wp_json_encode( (string) wp_specialchars_decode( $any_label, ENT_QUOTES ) ) . "',
297
  minimumResultsForSearch: 5,
298
  width: '100%',
299
  allowClear: " . ( $multiple ? 'false' : 'true' ) . ",
293
  if ( jQuery().selectWoo ) {
294
  var wc_layered_nav_select = function() {
295
  jQuery( '.dropdown_layered_nav_" . esc_js( $taxonomy_filter_name ) . "' ).selectWoo( {
296
+ placeholder: " . wp_json_encode( (string) wp_specialchars_decode( $any_label ) ) . ",
297
  minimumResultsForSearch: 5,
298
  width: '100%',
299
  allowClear: " . ( $multiple ? 'false' : 'true' ) . ",
includes/widgets/class-wc-widget-products.php CHANGED
@@ -83,8 +83,9 @@ class WC_Widget_Products extends WC_Widget {
83
  /**
84
  * Query the products and return them.
85
  *
86
- * @param array $args Arguments.
87
- * @param array $instance Widget instance.
 
88
  * @return WP_Query
89
  */
90
  public function get_products( $args, $instance ) {
@@ -126,7 +127,7 @@ class WC_Widget_Products extends WC_Widget {
126
  }
127
 
128
  if ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) ) {
129
- $query_args['tax_query'] = array(
130
  array(
131
  'taxonomy' => 'product_visibility',
132
  'field' => 'term_taxonomy_id',
@@ -173,10 +174,10 @@ class WC_Widget_Products extends WC_Widget {
173
  /**
174
  * Output widget.
175
  *
176
- * @see WP_Widget
177
- *
178
  * @param array $args Arguments.
179
  * @param array $instance Widget instance.
 
 
180
  */
181
  public function widget( $args, $instance ) {
182
  if ( $this->get_cached_widget( $args ) ) {
83
  /**
84
  * Query the products and return them.
85
  *
86
+ * @param array $args Arguments.
87
+ * @param array $instance Widget instance.
88
+ *
89
  * @return WP_Query
90
  */
91
  public function get_products( $args, $instance ) {
127
  }
128
 
129
  if ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) ) {
130
+ $query_args['tax_query'][] = array(
131
  array(
132
  'taxonomy' => 'product_visibility',
133
  'field' => 'term_taxonomy_id',
174
  /**
175
  * Output widget.
176
  *
 
 
177
  * @param array $args Arguments.
178
  * @param array $instance Widget instance.
179
+ *
180
+ * @see WP_Widget
181
  */
182
  public function widget( $args, $instance ) {
183
  if ( $this->get_cached_widget( $args ) ) {
includes/widgets/class-wc-widget-rating-filter.php CHANGED
@@ -121,7 +121,14 @@ class WC_Widget_Rating_Filter extends WC_Widget {
121
  $class = in_array( $rating, $rating_filter, true ) ? 'wc-layered-nav-rating chosen' : 'wc-layered-nav-rating';
122
  $link = apply_filters( 'woocommerce_rating_filter_link', $link_ratings ? add_query_arg( 'rating_filter', $link_ratings ) : remove_query_arg( 'rating_filter' ) );
123
  $rating_html = wc_get_star_rating_html( $rating );
124
- $count_html = esc_html( apply_filters( 'woocommerce_rating_filter_count', "({$count})", $count, $rating ) );
 
 
 
 
 
 
 
125
 
126
  printf( '<li class="%s"><a href="%s"><span class="star-rating">%s</span> %s</a></li>', esc_attr( $class ), esc_url( $link ), $rating_html, $count_html ); // WPCS: XSS ok.
127
  }
121
  $class = in_array( $rating, $rating_filter, true ) ? 'wc-layered-nav-rating chosen' : 'wc-layered-nav-rating';
122
  $link = apply_filters( 'woocommerce_rating_filter_link', $link_ratings ? add_query_arg( 'rating_filter', $link_ratings ) : remove_query_arg( 'rating_filter' ) );
123
  $rating_html = wc_get_star_rating_html( $rating );
124
+ $count_html = wp_kses(
125
+ apply_filters( 'woocommerce_rating_filter_count', "({$count})", $count, $rating ),
126
+ array(
127
+ 'em' => array(),
128
+ 'span' => array(),
129
+ 'strong' => array(),
130
+ )
131
+ );
132
 
133
  printf( '<li class="%s"><a href="%s"><span class="star-rating">%s</span> %s</a></li>', esc_attr( $class ), esc_url( $link ), $rating_html, $count_html ); // WPCS: XSS ok.
134
  }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: automattic, mikejolley, jameskoster, claudiosanches, claudiulodro,
3
  Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront, woo commerce
4
  Requires at least: 4.7
5
  Tested up to: 5.0
6
- Stable tag: 3.5.3
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -158,6 +158,75 @@ Yes you can! Join in on our [GitHub repository](https://github.com/woocommerce/w
158
 
159
  == Changelog ==
160
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  = 3.5.3 - 2018-12-20 =
162
  * Fix - Fix orders list in the admin after a change introduced in WordPress 5.0.2. #22273
163
 
3
  Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront, woo commerce
4
  Requires at least: 4.7
5
  Tested up to: 5.0
6
+ Stable tag: 3.5.4
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
9
 
158
 
159
  == Changelog ==
160
 
161
+ = 3.5.4 - 2019-01-21 =
162
+ * Tweak - Allow limited html in woocommerce_rating_filter_count filter. #21904
163
+ * Tweak - Remove 'on-hold' orders from admin tax reports for more logical reporting. #22419
164
+ * Tweak - Remove payment phrases from processing emails. #22418
165
+ * Tweak - Removed display of cost for local pickup when free. #22446
166
+ * Fix - Unescape CSV formulas in product attributes in CSV importer/exporter. #21938
167
+ * Fix - Remove use of non-existing `WC_REST_Dev_Setting_Options_Controller` class. #22121
168
+ * Fix - Fix edge case where `get_plugins` would not have the custom WooCommerce plugin headers if `get_plugins` was called early. #21669
169
+ * Fix - Prevent PHP warning when deprecated user meta starts with uppercase. #21943
170
+ * Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
171
+ * Fix - Prevent PHP errors when trying to access non-existant report tabs. #22183
172
+ * Fix - Filter by attributes dropdown placeholder text should not be wrapped in quotes. #22185
173
+ * Fix - Apply sale price until end of closing sale date. #22189
174
+ * Fix - Allow empty schema again when registering a custom field for the API. #22204
175
+ * Fix - Don't display escaped html on checkout when javascript is disabled. #22214
176
+ * Fix - Fixed formatted address in uppercase for languages that use accents. #22096
177
+ * Fix - Reload the cart page when the cart is empty when there is a hash in the URL. #22114
178
+ * Fix - Do not schedule duplicate webhooks within 10 minutes of each other to maintain previous behavior. #22088
179
+ * Fix - Return correct next scheduled date for items in queue by fixing date instantiation in WC_Action_Queue::get_next(). #22104
180
+ * Fix - Allow products to use default low stock threshold. #22084
181
+ * Fix - Fix 0 value attribute permalink calculation, property population in REST api. #22026
182
+ * Fix - Ensure cache delete on coupon trash or delete. #22053
183
+ * Fix - Ensure product parent exists before getting its image. #22074
184
+ * Fix - Correctly use wildcard character on email restrictions on coupons. #22167
185
+ * Fix - Avoids Warnings in Action Scheduler Library for PHP 5.2. #22160
186
+ * Fix - Don't include product in BreadcrumbList structured data so Google will recognize stand-alone Product structured data. #22344
187
+ * Fix - Fix Product widget showing hidden products when hide out of stock was enabled. #22230
188
+ * Fix - Run webhook status updates through new wc_is_webhook_valid_status functions when doing API requests. #22205
189
+ * Fix - Correct quote handling in tax class names. #22270
190
+ * Fix - Prevent style side-effects on notices on the Extensions pages. #22330
191
+ * Fix - Check stock status of items when 'ordering again' from the account page. #22331
192
+ * Fix - Improve rounding when rounding at subtotal level in cart. #21217
193
+ * Fix - Restores an opportunity to print non-cart related notices that a few extensions are relying on. #22337
194
+ * Fix - Correct order item meta alignment in order emails when using an RTL language. #22376
195
+ * Fix - Fix bug where product status was erroneously going to draft status in some circumstances on new published variable products. #20667
196
+ * Fix - Load customer data for logged in users regardless of being member of sub-site to avoid errors. #22448
197
+ * Fix - Use slug sanitization on product export category slugs for better foreign character support. #22320
198
+ * Fix - Correct item subtotal rounding when multiple taxes are applied so it matches the cart. #22416
199
+ * Fix - Prevent fatal errors when retrieving network orders for sites that do not have WooCommerce activated. #22439
200
+ * Fix - Numerous bug fixes around checkout field locales on first load. #22444
201
+ * Fix - Correct position of admin notices on my-account pages. #22445
202
+ * Fix - Fixed padding of addresses in email template. #22466
203
+ * Fix - Prevevent payment method descriptions sliding up/down if selected after ajax updates. #22459
204
+ * Fix - Fixed formatted address in uppercase for languages that use accents. #22096
205
+ * Fix - Fix product updating on import for SKUs with special characters. #22071
206
+ * Fix - Ensure cache_delete on coupon deletion. #22053
207
+ * Fix - Make product edit form aware publish was pressed. #20667
208
+ * Fix - Unescape imported CSV formulas in product attributes. #21938
209
+ * Fix - Warning when deprecated user meta starts with uppercase. #21943
210
+ * Fix - Filter out buttons from the onRowClick event on the Orders list view page. #21966
211
+ * Fix - Update "Filter Products by Attribute" widget when product stock quantity changes via "Quick Edit" or WC API. #22029
212
+ * Fix - Ensure product parent exists before getting its image. #22074
213
+ * Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
214
+ * Fix - Strip hash from URL when reload refunds in the dashboard. #22116
215
+ * Fix - Prevent notice when using non existing value for tabs in WooCommerce > Reports > Stock. #22183
216
+ * Fix - Filter by attributes dropdown placeholder text wrapped in quotes. #22185
217
+ * Fix - Fix escaped html on checkout when javascript is disabled. #22214
218
+ * Fix - Allow empty schema again when registering a custom field for the API. #22204
219
+ * Fix - Fix import & export of newline characters in product description fields. #22298
220
+ * Fix - Allow quotes in tax class names. #22270
221
+ * Fix - Sale price applies to end of closing sale date. #22189
222
+ * Fix - Product export by unicode product categories. #22320
223
+ * Fix - Check stock status of items when 'ordering again' from the account page. #22331
224
+ * Fix - Issue where images offloaded to external servers caused errors and broken images when changing aspect ratios. #22461
225
+ * Fix - Remove block comments from shop page description. #22334
226
+ * Dev - REST API - 0 value attribute permalink calculation, property population in REST api. #22026
227
+ * Dev - REST API - Fixed support to order results by slugs. #22168
228
+ * Dev - REST API - Removed extra inherited filters from product endpoint in variations endpoint. #22452
229
+
230
  = 3.5.3 - 2018-12-20 =
231
  * Fix - Fix orders list in the admin after a change introduced in WordPress 5.0.2. #22273
232
 
templates/cart/shipping-calculator.php CHANGED
@@ -52,8 +52,8 @@ do_action( 'woocommerce_before_shipping_calculator' ); ?>
52
  } elseif ( is_array( $states ) ) {
53
  ?>
54
  <span>
55
- <select name="calc_shipping_state" class="state_select" id="calc_shipping_state" placeholder="<?php esc_attr_e( 'State / County', 'woocommerce' ); ?>">
56
- <option value=""><?php esc_html_e( 'Select a state&hellip;', 'woocommerce' ); ?></option>
57
  <?php
58
  foreach ( $states as $ckey => $cvalue ) {
59
  echo '<option value="' . esc_attr( $ckey ) . '" ' . selected( $current_r, $ckey, false ) . '>' . esc_html( $cvalue ) . '</option>';
52
  } elseif ( is_array( $states ) ) {
53
  ?>
54
  <span>
55
+ <select name="calc_shipping_state" class="state_select" id="calc_shipping_state" data-placeholder="<?php esc_attr_e( 'State / County', 'woocommerce' ); ?>">
56
+ <option value=""><?php esc_html_e( 'Select an option&hellip;', 'woocommerce' ); ?></option>
57
  <?php
58
  foreach ( $states as $ckey => $cvalue ) {
59
  echo '<option value="' . esc_attr( $ckey ) . '" ' . selected( $current_r, $ckey, false ) . '>' . esc_html( $cvalue ) . '</option>';
templates/checkout/payment.php CHANGED
@@ -10,9 +10,9 @@
10
  * happen. When this occurs the version of the template file will be bumped and
11
  * the readme will list any important changes.
12
  *
13
- * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates
15
- * @version 3.4.0
16
  */
17
 
18
  defined( 'ABSPATH' ) || exit;
@@ -37,7 +37,10 @@ if ( ! is_ajax() ) {
37
  <?php endif; ?>
38
  <div class="form-row place-order">
39
  <noscript>
40
- <?php esc_html_e( 'Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'woocommerce' ); ?>
 
 
 
41
  <br/><button type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php esc_attr_e( 'Update totals', 'woocommerce' ); ?>"><?php esc_html_e( 'Update totals', 'woocommerce' ); ?></button>
42
  </noscript>
43
 
10
  * happen. When this occurs the version of the template file will be bumped and
11
  * the readme will list any important changes.
12
  *
13
+ * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates
15
+ * @version 3.5.3
16
  */
17
 
18
  defined( 'ABSPATH' ) || exit;
37
  <?php endif; ?>
38
  <div class="form-row place-order">
39
  <noscript>
40
+ <?php
41
+ /* translators: $1 and $2 opening and closing emphasis tags respectively */
42
+ printf( esc_html__( 'Since your browser does not support JavaScript, or it is disabled, please ensure you click the %1$sUpdate Totals%2$s button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'woocommerce' ), '<em>', '</em>' );
43
+ ?>
44
  <br/><button type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php esc_attr_e( 'Update totals', 'woocommerce' ); ?>"><?php esc_html_e( 'Update totals', 'woocommerce' ); ?></button>
45
  </noscript>
46
 
templates/emails/customer-processing-order.php CHANGED
@@ -12,7 +12,7 @@
12
  *
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates/Emails
15
- * @version 3.5.0
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
@@ -27,7 +27,7 @@ do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
27
  <?php /* translators: %s: Customer first name */ ?>
28
  <p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
29
  <?php /* translators: %s: Order number */ ?>
30
- <p><?php printf( esc_html__( 'Just to let you know &mdash; your payment has been confirmed, and order #%s is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p>
31
 
32
  <?php
33
 
12
  *
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates/Emails
15
+ * @version 3.5.4
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
27
  <?php /* translators: %s: Customer first name */ ?>
28
  <p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
29
  <?php /* translators: %s: Order number */ ?>
30
+ <p><?php printf( esc_html__( 'Just to let you know &mdash; we\'ve received your order #%s, and it is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p>
31
 
32
  <?php
33
 
templates/emails/email-addresses.php CHANGED
@@ -10,10 +10,9 @@
10
  * happen. When this occurs the version of the template file will be bumped and
11
  * the readme will list any important changes.
12
  *
13
- * @see https://docs.woocommerce.com/document/template-structure/
14
- * @author WooThemes
15
- * @package WooCommerce/Templates/Emails
16
- * @version 3.2.1
17
  */
18
 
19
  if ( ! defined( 'ABSPATH' ) ) {
@@ -21,27 +20,29 @@ if ( ! defined( 'ABSPATH' ) ) {
21
  }
22
 
23
  $text_align = is_rtl() ? 'right' : 'left';
 
 
24
 
25
  ?><table id="addresses" cellspacing="0" cellpadding="0" style="width: 100%; vertical-align: top; margin-bottom: 40px; padding:0;" border="0">
26
  <tr>
27
- <td style="text-align:<?php echo $text_align; ?>; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; border:0; padding:0;" valign="top" width="50%">
28
- <h2><?php _e( 'Billing address', 'woocommerce' ); ?></h2>
29
 
30
  <address class="address">
31
- <?php echo ( $address = $order->get_formatted_billing_address() ) ? $address : __( 'N/A', 'woocommerce' ); ?>
32
  <?php if ( $order->get_billing_phone() ) : ?>
33
  <br/><?php echo esc_html( $order->get_billing_phone() ); ?>
34
  <?php endif; ?>
35
  <?php if ( $order->get_billing_email() ) : ?>
36
- <p><?php echo esc_html( $order->get_billing_email() ); ?></p>
37
  <?php endif; ?>
38
  </address>
39
  </td>
40
- <?php if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && ( $shipping = $order->get_formatted_shipping_address() ) ) : ?>
41
- <td style="text-align:<?php echo $text_align; ?>; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; padding:0;" valign="top" width="50%">
42
- <h2><?php _e( 'Shipping address', 'woocommerce' ); ?></h2>
43
 
44
- <address class="address"><?php echo $shipping; ?></address>
45
  </td>
46
  <?php endif; ?>
47
  </tr>
10
  * happen. When this occurs the version of the template file will be bumped and
11
  * the readme will list any important changes.
12
  *
13
+ * @see https://docs.woocommerce.com/document/template-structure/
14
+ * @package WooCommerce/Templates/Emails
15
+ * @version 3.5.4
 
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
20
  }
21
 
22
  $text_align = is_rtl() ? 'right' : 'left';
23
+ $address = $order->get_formatted_billing_address();
24
+ $shipping = $order->get_formatted_shipping_address();
25
 
26
  ?><table id="addresses" cellspacing="0" cellpadding="0" style="width: 100%; vertical-align: top; margin-bottom: 40px; padding:0;" border="0">
27
  <tr>
28
+ <td style="text-align:<?php echo esc_attr( $text_align ); ?>; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; border:0; padding:0;" valign="top" width="50%">
29
+ <h2><?php esc_html_e( 'Billing address', 'woocommerce' ); ?></h2>
30
 
31
  <address class="address">
32
+ <?php echo wp_kses_post( $address ? $address : esc_html__( 'N/A', 'woocommerce' ) ); ?>
33
  <?php if ( $order->get_billing_phone() ) : ?>
34
  <br/><?php echo esc_html( $order->get_billing_phone() ); ?>
35
  <?php endif; ?>
36
  <?php if ( $order->get_billing_email() ) : ?>
37
+ <br/><?php echo esc_html( $order->get_billing_email() ); ?>
38
  <?php endif; ?>
39
  </address>
40
  </td>
41
+ <?php if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && $shipping ) : ?>
42
+ <td style="text-align:<?php echo esc_attr( $text_align ); ?>; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; padding:0;" valign="top" width="50%">
43
+ <h2><?php esc_html_e( 'Shipping address', 'woocommerce' ); ?></h2>
44
 
45
+ <address class="address"><?php echo wp_kses_post( $shipping ); ?></address>
46
  </td>
47
  <?php endif; ?>
48
  </tr>
templates/emails/email-order-items.php CHANGED
@@ -17,7 +17,8 @@
17
 
18
  defined( 'ABSPATH' ) || exit;
19
 
20
- $text_align = is_rtl() ? 'right' : 'left';
 
21
 
22
  foreach ( $items as $item_id => $item ) :
23
  $product = $item->get_product();
@@ -56,9 +57,12 @@ foreach ( $items as $item_id => $item ) :
56
  // allow other plugins to add additional product information here.
57
  do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order, $plain_text );
58
 
59
- wc_display_item_meta( $item, array(
60
- 'label_before' => '<strong class="wc-item-meta-label" style="float: left; margin-right: .25em; clear: both">',
61
- ) );
 
 
 
62
 
63
  // allow other plugins to add additional product information here.
64
  do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );
17
 
18
  defined( 'ABSPATH' ) || exit;
19
 
20
+ $text_align = is_rtl() ? 'right' : 'left';
21
+ $margin_side = is_rtl() ? 'left' : 'right';
22
 
23
  foreach ( $items as $item_id => $item ) :
24
  $product = $item->get_product();
57
  // allow other plugins to add additional product information here.
58
  do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order, $plain_text );
59
 
60
+ wc_display_item_meta(
61
+ $item,
62
+ array(
63
+ 'label_before' => '<strong class="wc-item-meta-label" style="float: ' . esc_attr( $text_align ) . '; margin-' . esc_attr( $margin_side ) . ': .25em; clear: both">',
64
+ )
65
+ );
66
 
67
  // allow other plugins to add additional product information here.
68
  do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );
templates/emails/email-styles.php CHANGED
@@ -20,16 +20,17 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  }
21
 
22
  // Load colors.
23
- $bg = get_option( 'woocommerce_email_background_color' );
24
- $body = get_option( 'woocommerce_email_body_background_color' );
25
- $base = get_option( 'woocommerce_email_base_color' );
26
- $base_text = wc_light_or_dark( $base, '#202020', '#ffffff' );
27
- $text = get_option( 'woocommerce_email_text_color' );
28
 
29
  // Pick a contrasting color for links.
30
- $link = wc_hex_is_light( $base ) ? $base : $base_text;
 
31
  if ( wc_hex_is_light( $body ) ) {
32
- $link = wc_hex_is_light( $base ) ? $base_text : $base;
33
  }
34
 
35
  $bg_darker_10 = wc_hex_darker( $bg, 10 );
@@ -137,7 +138,7 @@ $text_lighter_20 = wc_hex_lighter( $text, 20 );
137
  }
138
 
139
  .address {
140
- padding:12px 12px 0;
141
  color: <?php echo esc_attr( $text_lighter_20 ); ?>;
142
  border: 1px solid <?php echo esc_attr( $body_darker_10 ); ?>;
143
  }
@@ -190,7 +191,7 @@ h3 {
190
  }
191
 
192
  a {
193
- color: <?php echo esc_attr( $link ); ?>;
194
  font-weight: normal;
195
  text-decoration: underline;
196
  }
20
  }
21
 
22
  // Load colors.
23
+ $bg = get_option( 'woocommerce_email_background_color' );
24
+ $body = get_option( 'woocommerce_email_body_background_color' );
25
+ $base = get_option( 'woocommerce_email_base_color' );
26
+ $base_text = wc_light_or_dark( $base, '#202020', '#ffffff' );
27
+ $text = get_option( 'woocommerce_email_text_color' );
28
 
29
  // Pick a contrasting color for links.
30
+ $link_color = wc_hex_is_light( $base ) ? $base : $base_text;
31
+
32
  if ( wc_hex_is_light( $body ) ) {
33
+ $link_color = wc_hex_is_light( $base ) ? $base_text : $base;
34
  }
35
 
36
  $bg_darker_10 = wc_hex_darker( $bg, 10 );
138
  }
139
 
140
  .address {
141
+ padding: 12px;
142
  color: <?php echo esc_attr( $text_lighter_20 ); ?>;
143
  border: 1px solid <?php echo esc_attr( $body_darker_10 ); ?>;
144
  }
191
  }
192
 
193
  a {
194
+ color: <?php echo esc_attr( $link_color ); ?>;
195
  font-weight: normal;
196
  text-decoration: underline;
197
  }
templates/emails/plain/customer-processing-order.php CHANGED
@@ -12,7 +12,7 @@
12
  *
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates/Emails/Plain
15
- * @version 3.5.0
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
@@ -24,7 +24,7 @@ echo '= ' . esc_html( $email_heading ) . " =\n\n";
24
  /* translators: %s: Customer first name */
25
  echo sprintf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ) . "\n\n";
26
  /* translators: %s: Order number */
27
- echo sprintf( esc_html__( 'Just to let you know &mdash; your payment has been confirmed, and order #%s is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ) . "\n\n";
28
 
29
  echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n";
30
 
12
  *
13
  * @see https://docs.woocommerce.com/document/template-structure/
14
  * @package WooCommerce/Templates/Emails/Plain
15
+ * @version 3.5.4
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
24
  /* translators: %s: Customer first name */
25
  echo sprintf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ) . "\n\n";
26
  /* translators: %s: Order number */
27
+ echo sprintf( esc_html__( 'Just to let you know &mdash; we\'ve received your order #%s, and it is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ) . "\n\n";
28
 
29
  echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n";
30
 
woocommerce.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce
4
  * Plugin URI: https://woocommerce.com/
5
  * Description: An eCommerce toolkit that helps you sell anything. Beautifully.
6
- * Version: 3.5.3
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Text Domain: woocommerce
3
  * Plugin Name: WooCommerce
4
  * Plugin URI: https://woocommerce.com/
5
  * Description: An eCommerce toolkit that helps you sell anything. Beautifully.
6
+ * Version: 3.5.4
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Text Domain: woocommerce