readme.txt 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. === WooCommerce ===
  2. Contributors: automattic, mikejolley, jameskoster, claudiosanches, claudiulodro, kloon, rodrigosprimo, jshreve, coderkevin
  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: 4.9
  6. Stable tag: 3.4.5
  7. License: GPLv3
  8. License URI: https://www.gnu.org/licenses/gpl-3.0.html
  9. WooCommerce is a powerful, extendable eCommerce plugin that helps you sell anything. Beautifully.
  10. == Description ==
  11. WooCommerce is a free eCommerce plugin that allows you to sell anything, beautifully. Built to integrate seamlessly with WordPress, WooCommerce is the world’s favorite eCommerce solution that gives both store owners and developers complete control.
  12. With endless flexibility and access to hundreds of free and premium WordPress extensions, WooCommerce now powers 30% of all online stores -- more than any other platform.
  13. [youtube https://www.youtube.com/watch?v=1KahlicghaE]
  14. = Sell anything, anywhere =
  15. With WooCommerce, you can sell both physical and digital goods in all shapes and sizes, offer product variations, multiple configurations, and instant downloads to shoppers, and even sell affiliate goods from online marketplaces.
  16. With premium extensions, you can offer bookings, memberships, and recurring subscriptions. Perhaps you’d like to sell monthly subscriptions for physical goods, or offer your members a discount on digital downloads? It’s all possible.
  17. = Ship wherever you like =
  18. Offer free shipping, flat rate shipping, or make real-time calculations. Limit your shipments to specific countries, or open your store up to the world. Shipping is highly configurable, and WooCommerce even supports drop shipping.
  19. = Extensive payment options =
  20. WooCommerce comes bundled with the ability to accept major credit cards, PayPal, BACS (bank transfers), and cash on delivery. Need additional options? More than 140 region-specific gateways integrate with WooCommerce, including popular choices like Stripe, Authorize.Net, and Amazon Payments.
  21. = You control it all -- forever =
  22. WooCommerce gives you complete control of your store, from taxes to stock levels to customer accounts. Add and remove extensions, change your design, and switch settings as you please. It’s all under your control.
  23. One of the biggest risks of using a hosted eCommerce platform is what happens to your store if the provider closes up shop. With WooCommerce, you have complete control, so there’s never any reason to worry. Your data belongs to you -- and it’s kept secure, thanks to regular audits by industry leaders.
  24. = Define your style with Storefront =
  25. [Storefront](https://woocommerce.com/storefront/) is a free WordPress theme available to any WooCommerce store. Along with deep WooCommerce integration, Storefront prioritizes speed and uptime while eliminating theme and plugin conflicts during major updates.
  26. Define your style even further by customizing Storefront to your liking or choosing from one of our several [Storefront child themes](https://woocommerce.com/product-category/themes/storefront-child-theme-themes/). It’s all up to you, and all open source.
  27. = Built with developers in mind =
  28. Extendable, adaptable, and open source -- WooCommerce was created with developers in mind. With its strong, robust framework, you can scale your client’s store all the way from basic to high-end (infinity and beyond).
  29. Built with a REST API, WooCommerce can integrate with virtually any service. Your store’s data can be accessed anywhere, anytime, 100% securely. WooCommerce allows developers to easily create, modify, and grow a store that meets their specifications.
  30. No matter the size of the store you want to build, WooCommerce will scale to meet your requirements. With a growing collection of more than 300 extensions, you can enhance each store’s features to meet your client’s unique needs -- or even create your own solution.
  31. If security is a concern, rest easy. WooCommerce is audited by a dedicated team of developers working around the clock to identify and patch any and all discovered bugs.
  32. We also support WooCommerce and all its extensions with comprehensive, easily-accessible documentation. With our docs, you’ll learn how to create the exact site your client needs.
  33. = Extensions galore =
  34. WordPress.org is home to some amazing extensions for WooCommerce, including:
  35. - [Google Analytics](https://wordpress.org/plugins/woocommerce-google-analytics-integration/)
  36. - [Delivery Notes](https://wordpress.org/plugins/woocommerce-delivery-notes/)
  37. - [PDF Invoices and Packing Slips](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/)
  38. - [Affiliates Integration Light](https://wordpress.org/plugins/affiliates-woocommerce-light/)
  39. - [New Product Badges](https://wordpress.org/plugins/woocommerce-new-product-badge/)
  40. Keen to see them all? Search WordPress.org for ‘WooCommerce’ to dive in.
  41. If you’re looking for something endorsed and maintained by the developers who built WooCommerce, there are a plethora of premium eCommerce extensions, the most popular of which include:
  42. - [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/)
  43. - [WooCommerce Memberships](https://woocommerce.com/products/woocommerce-memberships/)
  44. - [WooCommerce Bookings](https://woocommerce.com/products/woocommerce-bookings/)
  45. - [Dynamic Pricing](https://woocommerce.com/products/dynamic-pricing/)
  46. - [Table Rate Shipping](https://woocommerce.com/products/table-rate-shipping/)
  47. - [Product CSV Import Suite](https://woocommerce.com/products/product-csv-import-suite/)
  48. And there’s plenty more where they came from. Visit our [extensions page](https://woocommerce.com/product-category/woocommerce-extensions/) to find out everything you’re capable of and all that's possible with premium WooCommerce extensions.
  49. = Join our growing community =
  50. When you download WooCommerce, you join a community of more than a million store owners, developers, and WordPress enthusiasts. We're one of the fastest-growing open source communities online, and no matter your skill level we'd love to have you!
  51. If you’re interested in contributing to WooCommerce we’ve got more than 350 contributors, and there’s always room for more. Head over to the [WooCommerce GitHub Repository](https://github.com/woocommerce/woocommerce) to find out how you can pitch in.
  52. Want to add a new language to WooCommerce? Swell! You can contribute via [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/woocommerce).
  53. And, finally, consider joining or spearheading a WooCommerce Meetup locally, more about those [here](https://woocommerce.com/woocommerce/meetups/).
  54. == Installation ==
  55. = Minimum Requirements =
  56. * PHP version 5.2.4 or greater (PHP 7.2 or greater is recommended)
  57. * MySQL version 5.0 or greater (MySQL 5.6 or greater is recommended)
  58. Visit the [WooCommerce server requirements documentation](https://docs.woocommerce.com/document/server-requirements/) for a detailed list of server requirements.
  59. = Automatic installation =
  60. Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.
  61. In the search field type “WooCommerce” and click Search Plugins. Once you’ve found our eCommerce plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”.
  62. = Manual installation =
  63. The manual installation method involves downloading our eCommerce plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains [instructions on how to do this here](https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation).
  64. = Updating =
  65. Automatic updates should work like a charm; as always though, ensure you backup your site just in case.
  66. If on the off-chance you do encounter issues with the shop/category pages after an update you simply need to flush the permalinks by going to WordPress > Settings > Permalinks and hitting 'save'. That should return things to normal.
  67. = Sample data =
  68. WooCommerce comes with some sample data you can use to see how products look; import sample_products.xml via the [WordPress importer](https://wordpress.org/plugins/wordpress-importer/). You can also use the core [CSV importer](https://docs.woocommerce.com/document/product-csv-importer-exporter/) or our [CSV Import Suite plugin](https://woocommerce.com/products/product-csv-import-suite/) to import sample_products.csv.
  69. == Frequently Asked Questions ==
  70. = Where can I find WooCommerce documentation and user guides? =
  71. For help setting up and configuring WooCommerce please refer to our [user guide](https://docs.woocommerce.com/documentation/plugins/woocommerce/getting-started/)
  72. For extending or theming WooCommerce, see our [codex](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/).
  73. = Where can I get support or talk to other users? =
  74. If you get stuck, you can ask for help in the [WooCommerce Plugin Forum](https://wordpress.org/support/plugin/woocommerce).
  75. For help with premium extensions from WooCommerce.com, use [our helpdesk](https://woocommerce.com/my-account/tickets/).
  76. = Will WooCommerce work with my theme? =
  77. Yes; WooCommerce will work with any theme, but may require some styling to make it match nicely. Please see our [codex](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/) for help. If you're looking for a theme with built in WooCommerce integration we recommend [Storefront](https://woocommerce.com/storefront/).
  78. = Where can I request new features, eCommerce themes and extensions? =
  79. You can vote on and request new features and extensions in our [WooIdeas board](http://ideas.woocommerce.com/forums/133476-woocommerce)
  80. = Where can I report bugs or contribute to the project? =
  81. Bugs can be reported either in our support forum or preferably on the [WooCommerce GitHub repository](https://github.com/woocommerce/woocommerce/issues).
  82. = Where can I find the REST API documentation? =
  83. You can find the documentation of our REST API on the [WooCommerce REST API Docs](https://woocommerce.github.io/woocommerce-rest-api-docs/).
  84. = WooCommerce is awesome! Can I contribute? =
  85. Yes you can! Join in on our [GitHub repository](https://github.com/woocommerce/woocommerce/) :)
  86. == Screenshots ==
  87. 1. The WooCommerce settings panel.
  88. 2. WooCommerce products admin.
  89. 3. Product data panel.
  90. 4. WooCommerce sales reports.
  91. 5. A single product page.
  92. 6. A product archive (grid).
  93. == Changelog ==
  94. = 3.4.5 - 2018-08-29 =
  95. * Fix - Tweak sanitization when resetting password cookie. #20901
  96. * Fix - Use `+` instead of `array_merge` when appending parent to tax class to fix issues with numeric tax class names. #20916
  97. * Fix - Correct translation for North Khorasan. #20972
  98. * Fix - Unify scroll-to notices for all browsers. #20992
  99. * Fix - Prevent multiple slashing of variation's SKU. #21019
  100. * Fix - Variation image in fullscreen now shows correct caption for the respective image. #21022
  101. * Fix - Vertically center admin order action buttons. #21053
  102. * Fix - Correct context for shipping packages translation. #21065
  103. * Fix - Add permission checks for installing Jetpack on the setup wizard. #21072
  104. * Fix - Use refund currency instead of store default currency when displaying refund amount in the edit order screen. #21106
  105. * Fix - Fix a typo in REST API customer schema. #21171
  106. * Fix - Use entire sentence for checkout address_2 placeholder string. #21186
  107. * Fix - Only suppress comments number on unsupported theme shop page. #21191
  108. * Fix - Don't allow users without manage_product_terms permissions to create categories using the product importer. #21192
  109. * Fix - Correct sale coupon restriction logic. #21219
  110. = 3.4.4 - 2018-07-25 =
  111. * Fix - Only wordwrap plain email content. #20723
  112. * Fix - Better escaping on product quick edit. #20740
  113. * Fix - Log file deletion. #20730
  114. * Fix - Search feature in Webhooks and REST API keys settings. #20706
  115. * Fix - Notices in REST API keys settings screen. #20706
  116. * Fix - add a check to prevent WC_Geolite_Integration::get_country_iso() from generating a PHP undefined index notice when unable to determine the country code for a given IP address. #20608
  117. * Fix - Variable product stock display if parent is stock managed and not the variation. #20661
  118. * Fix - Correctly hide cost for zero cost shipping methods after placing orders. #20663
  119. * Fix - Disabled autocomplete to prevent datepicker overlapping. #20687
  120. * Fix - Prevent a PHP notice in the setup wizard when store state is not selectable. #20695
  121. * Fix - Fix logic error in WC_Product_CSV_Exporter::get_column_value_stock. #20753
  122. * Fix - Fixed missing notice about no product variation matching. #20762
  123. * Fix - Correct PHPDocs in exporter class. #20861
  124. * Fix - Prevent Mailchimp redirection during the Setup Wizard. #20879
  125. * Fix - Don't hide coupon form after coupon has been applied. #20889
  126. * Tweak - Remove (optional) text from Address line 2 field. #20622 #20639
  127. * Tweak - Removed 100% width for images on single product page using 2017 theme. #20818
  128. * Tweak - Add margin to best selling product title in the dashboard widget to avoid overlapping the sparkline. #20849
  129. * Tweak - Re-add woocommerce_order_details_after_customer_details_filter removed during WC 3.2. #20886
  130. * Dev - Added woocommerce_calculate_item_totals_taxes filter. #20586
  131. * Dev - Links to next and previous page sent out in HTTP header via REST API fixed for some endpoints. #20686
  132. * Dev - Better wc_format_phone_number cleaning. #20637
  133. = 3.4.3 - 2018-06-20 =
  134. * Fix - Fix label for the price filter widget on RTL sites. #20417
  135. * Fix - Checkout: stopPropagation when payment method selected so description tips show on radio buttons. #20432
  136. * Fix - Shipping zone settings: fixed title for shipping methods without settings. #20441
  137. * Fix - Ensure custom Webhook topic selections are correctly saved in admin. #20406
  138. * Fix - Webhook bottom bulk actions. #20445
  139. * Fix - Fixes multisite orders dashboard widget to use order number rather than ID. #20457
  140. * Fix - Add check to ensure download log FK does not exist before adding it. Update routine will cleanup any duplicates. #20478
  141. * Fix - IPv6 support with HTTP_X_FORWARDED_FOR header. #20479
  142. * Fix - Avoid setting wrong prices when syncing grouped products with children. #20482
  143. * Fix - Separation of explode and end functions in two lines. End function should get a reference as parameter. #20500
  144. * Fix - Initialize payment gateways before running bulk actions so gateways can listen for events. #20502
  145. * Fix - Cast shipping total to a float so incl. tax shows only when needed. #20531
  146. * Fix - Fix automatic stock status updates based on stock level. #20573
  147. * Fix - Improved sanitize_special_column_name_regex trim to fix column matching when importing CSVs. #20486
  148. * Fix - Force importer log table to wrap long columns. #20534
  149. * Fix - Rest API: Prevent errors if variation parent is invalid and cannot be read. #20572
  150. * Fix - Rest API: Remove legacy API enabled check from auth endpoint. #20499
  151. * Fix - Display products on sub-subcategories when sorting parent category by price. #20579
  152. * Fix - Set order status to refunded when a PayPal transaction is refunded. #20574
  153. * Fix - fix undefined index in abstract-wc-widget. #20544
  154. * Fix - Round items for order total when recalculating order values to match cart. #20533
  155. * Fix - Removed mysql transactions when updating order status, tweaked caching, and improved version transient cleanup to prevent possible deadlocks on checkout. #20537
  156. * Tweak - Added a message to promote Wootenberg when running Gutenberg feature plugin. #20524
  157. * Tweak - Added a warning notice before removing personal data from orders in bulk. #20481
  158. * Dev - generate_select_html and generate_multiselect_html functions again support the usage of integer-keyed arrays as available values. #20569
  159. * Dev - Allow order billing fields to use a provided 'value'. #20424
  160. = 3.4.2 - 2018-06-05 =
  161. * Fix - Flexslider gallery fixes for RTL sites, and for variation image switching. #20328 #20321
  162. * Fix - Allow forms to be submitted when the password strength library fails to load. #20362
  163. * Fix - Personal data exporter: Do not export a customer data group containing no data. #20347
  164. * Fix - Fix navigation notification in settings when clicking save. #20335
  165. * Fix - Show discount amount for free shipping coupons. #20334
  166. * Fix - Fixed cache clearing for category children for sites running object caching. #20308
  167. * Fix - Use correct escaping on select2 placeholders. #20364
  168. * Fix - Order by price clauses when searching within terms. #20391
  169. * Fix - Clear needs_processing transient when adding a product to an order. #20390
  170. * Enhancement - Permission_id constraint checks on install. #20366
  171. * Dev - Added order to "woocommerce_order_is_vat_exempt" filter arguments. #20365
  172. * Localization - Disable states for Bahrain. #20363
  173. * Localization - Disable states for Luxemberg. #20389
  174. = 3.4.1 - 2018-05-29 =
  175. * Fix - Fix webhook admin filtering URLs. #20236
  176. * Fix - Add missing wp_unslash calls to product data meta box to prevent quote characters being escaped on save. #20235
  177. * Fix - Display price filter widget in LTR mode on RTL sites. #20221
  178. * Fix - Refactor WC_Coupon constructor to allow for passing in coupon objects. #20193
  179. * Fix - Path field in advanced CSV importer was broken due to an esc_url call. #20191
  180. * Fix - Prevent shipping method instances trying to save settings on non-instance screens. #20217
  181. * Fix - Wrapper function to get full mysql version string with mariadb handling. #20231
  182. * Fix - woocommerce_pagination had some extra white space. #20214
  183. * Fix - If a file size cannot be read, ignore range headers to prevent offsite downloads being 0kb. #20205
  184. * Fix - Allow HTML when using `wc_attribute_label()`. #20202
  185. * Fix - Update address-i18n.js to prevent appending multiple "(optional)" labels. #20195
  186. * Fix - Check plugin properties exist when listening to auto_update_plugin hook. #20234
  187. * Fix - Add extra checks in `get_canonical_package_rate_ids` to prevent notices. #20237
  188. * Fix - Fix infinite loop with importing tax rates. #20253
  189. * Fix - Echo attribute label for "empty" default option. #20256
  190. * Fix - Fix download sample tax rates URL format. #20272
  191. * Fix - Product properties should not be accessed directly PHP notice when calling `wc_get_product_attachment_props`. #20282
  192. * Fix - If flexslider is disabled, gallery images also need to trigger photoswipe on click. #20290
  193. * Fix - Product import file uploads on windows servers. #20273
  194. * Fix - Fix variation attribute selection via the cart page/query string. #20293
  195. * Fix - Add greater specificity to required styling in 2017 theme. #20296
  196. * Enhancement - Export legacy paypal meta data in personal data exporter. #20200
  197. * Enhancement - Improve performance of `wc_update_340_states` update routine to help prevent timeouts. #20241
  198. * Dev - Remove red styling for PHP notice if using > 5.6. #20294
  199. * Dev - Add an action hook after printing the cart item name. #20190
  200. * Localization - Use "payment tokens" terminology in exports. #20197
  201. = 3.4.0 - 2018-05-23 =
  202. * Feature - GDPR: Tools to export WooCommerce data using the new export functionality in WordPress 4.9.6. #19330
  203. * Feature - GDPR: Tools to bulk anonymize order data in admin. #19330
  204. * Feature - GDPR: Tools to turn off company/address-2/phone checkout fields to avoid unnecessary data collection, and a toggle to choose how required fields are presented. This is available via the Customizer. #19637
  205. * Feature - GDPR: Tools in the Customizer to change the terms and conditions checkbox label on the checkout. #19637
  206. * Feature - GDPR: Tools to define a privacy policy for the account page and checkout page in "account privacy" settings and within the Customizer. #19747
  207. * Feature - GDPR: Tools to automatically clean up and remove order personal data after a set time period. #19743
  208. * Feature - GDPR: Added privacy snippet which works with the new privacy page functionality in WordPress 4.9.6. #19749
  209. * Feature - Added a new order widget to the dashboard (on multisite) so you can see your orders across multiple stores on the same WordPress network. #17598
  210. * Feature - Added "display name" input on the My Account page. #19078
  211. * Feature - Product search improvements including stopword support and support for searching for multiple products at the same time. #19096
  212. * Feature - Cash on Delivery gateway can be enabled/disabled for specific shipping methods instead of only method types. #19221
  213. * Feature - Add wildcard email support for coupons. #19331
  214. * Feature - Added support for the GeoLite2 library as a replacement for the deprecated MaxMind GeoIP library. #19419
  215. * Feature - Added tool for cleaning up download permissions table. #19922
  216. * Tweak - GDPR: Improved appearance of checkout field 'descriptions' (if used) to make them more useful for privacy notices. #19637
  217. * Tweak - GDPR: Improved related data cleanup when deleting users/orders. #19330
  218. * Tweak - GDPR: Notice about HTTPS as a requirement in admin if missing. #19756
  219. * Tweak - GDPR: Improved the checkout (payments) settings screen, moved page options to a new "advanced" section, and made an "Accounts and Privacy" section. #19703
  220. * Tweak - GDPR: Hash customer email address in download URLs to protect privacy. #18957
  221. * Tweak - GDPR: Add highlight to T&C checkbox if not checked to show it needs to be checked. #19177
  222. * Tweak - GDPR: Automatically purge old logs after 30 days. #19920
  223. * Tweak - GDPR: Only log Webhook body if WP_DEBUG is enabled. #19914
  224. * Tweak - GDPR: Store less PII in PayPal standard. #19914
  225. * Tweak - Only show admin notices on WooCommerce screens/plugins/dashboard. #19772
  226. * Tweak - Standardize stock update messages in admin and correctly log who performed the action. When an order note is added after modifying stock manually, update order notes display via AJAX. #18080
  227. * Tweak - Rollback if payment complete or update status fails to prevent partial order updates on failure. #18175
  228. * Tweak - Made the system status tool which purges user carts also purge persistent carts. #18492
  229. * Tweak - Display whether or not external object cache is enabled in system status report. #18595
  230. * Tweak - Display zero value when using shipping classes. #18624
  231. * Tweak - Fixed settings table styling on mobile. #18655
  232. * Tweak - Updated Flexslider to version 2.7.0. #18779
  233. * Tweak - Enable screen options for list screens. #18817
  234. * Tweak - Don't call WC_Install::install() on downgrades. #18818
  235. * Tweak - Remove user login from reset password link to protect personally identifying info. #18820
  236. * Tweak - Added a function to return a list of custom tables to aid with cleanup. #18831
  237. * Tweak - Enable going backwards in the setup wizard. #18921
  238. * Tweak - Make sure terms page exists and isn’t trashed before using it. #18993
  239. * Tweak - Toggle when clicking anywhere in toggle row during setup wizard. #19035
  240. * Tweak - Use `read_product` permissions instead of `edit_product` for ajax product search. #19087
  241. * Tweak - Add `priceSpecification` property with `valueAddedTaxIncluded` to product structured data. #19091
  242. * Tweak - Importer remembers mappings across imports. #19110
  243. * Tweak - Made coupon total displayed in cart more consistent. #19166
  244. * Tweak - Remove forced CSS line-heights to improve text input displays across different browsers. #19174
  245. * Tweak - When loading default attributes/variation, if there is no longer a match, reset the form and hide the notice #19190
  246. * Tweak - Removed admin product type column from core and made it into a free feature plugin. #19192
  247. * Tweak - Use `woocommerce-no-js` class to hide JavaScript-only forms and content. #19199
  248. * Tweak - Activate plugins during installation process even if directory doesn't match slug. #19200
  249. * Tweak - Allow category and attribute ids in the `products` shortcode instead of only slugs. #19204
  250. * Tweak - Invalidate cart items when important props like product type are updated. #19255
  251. * Tweak - Don't use mysql functions directly on system status page to prevent errors if they are disabled. #19281
  252. * Tweak - Replaces `have_posts` with `woocommerce_product_loop` which looks to see if there are products, or if the loop is going to be showing something else. #19288
  253. * Tweak - Delete widget options and order notes on uninstall. #19371
  254. * Tweak - Add unique names to all nonces in template fields and forms. #19387
  255. * Tweak - Enable using the tab key to select elements in selectWoo dropdowns. #19416
  256. * Tweak - Added autocomplete attributes to form elements for better autocomplete support. #19426
  257. * Tweak - Removed PayPal line item limit and ensured URLs are shorter than maximum length. #19493
  258. * Tweak - Disable Gutenberg editor on products posts. #19543
  259. * Tweak - Improvements around UI and wording of store setup step in setup wizard, a revamped extras step, and other improvements.
  260. * Tweak - Only push images to lightbox if an image is found. #19568
  261. * Tweak - Added and improved notices around old PHP versions and disabled geolocation on PHP 5.4 or lower. #19573
  262. * Tweak - The `manage_stock` field in the product API can return a `mixed` type instead of `boolean` for variations. #19598
  263. * Tweak - Link product import/export to WordPress import/export capabilities. #19602
  264. * Tweak - Use ` ` to separate asterisks in required fields to prevent awkward line breaks. #19610
  265. * Tweak - Load meta box input values using CRUD and edit context. #19670
  266. * Tweak - Scroll to notices on cart/checkout for better mobile visibility. #19699
  267. * Tweak - Add filter to coupon URL on "Edit order" screen. #19777
  268. * Tweak - Throw error if order can't be loaded on checkout. #19802
  269. * Tweak - Remove deprecated freegeoip service from geolocation. #19841
  270. * Tweak - Allow arrays of query vars in wc_get_orders and wc_get_products. #19848
  271. * Tweak - Invalidate fragment cache on theme switch.
  272. * Tweak - Include select tags when saving payment details temporarily in checkout.js. #19854
  273. * Tweak - Update - Include pending products in export. #19928
  274. * Tweak - Deprecate woocommerce_ajax_added_order_items action in favor of more useful action. #19933
  275. * Tweak - Enable touch-to-zoom on touch devices to make photoswipe more easily accessible. #20002
  276. * Tweak - Wizard: List out all plugins to be installed upon proceeding to the next step, with a highlight on hover indicating relevant settings. #19952
  277. * Tweak - Hide/show password strength meter instead of removing/inserting password strength meter. #20006
  278. * Tweak - Added support for HTTP_RANGE requests (used by iOS devices) to Force download method. #19984
  279. * Tweak - Replaced protocol-relative URLs for thumbnails in the cart and mini-cart with protocol-specific URLs to prevent problems with URLs that include port section. #19934
  280. * Tweak - In CSV exports, wrap cell in ' rather than just prepending to escape values. #20041
  281. * Tweak - Add JS listeners for reloading/reinitializing order items in edit-order page. #20082
  282. * Fix - Properly set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads(). #1862
  283. * Fix - Set maxlength for order item meta key to avoid values disappearing if too long. #18918
  284. * Fix - Remove hardcoded /wp-content check for downloads. #18961
  285. * Fix - Made get_on_sale_products respect the setting to hide outofstock products. #18984
  286. * Fix - Prevent shortcode [product_page] redirecting to the actual product's page after add to cart. #19043
  287. * Fix - Make the "main term" logic match for both the breadcrumb and product categories widget. #19044
  288. * Fix - Check parent status too when seeing if variation is purchasable. #19045
  289. * Fix - Fix uppercasing of accented characters. #19086
  290. * Fix - Do not allow updating parent ID from variations after created. #19097
  291. * Fix - Ensure coupon amount is not empty to prevent non-numeric value errors. #19098
  292. * Fix - Ensure shop archive works correctly when `paged=1` is in the URL. #19104
  293. * Fix - Ensure orders created with `woocommerce_adjust_non_base_location_prices` filter active have the same cost on frontend and admin. #19109
  294. * Fix - Handling in the CLI to prevent `Resource does not exist` errors when using commands of a certain format. #19123
  295. * Fix - Use subtotal when calculating discounts in admin/orders to ensure prices are the same as on the frontend. #19159
  296. * Fix - Use `kses` to process download names to prevent escaped HTML displaying in emails.
  297. * Fix - Remove translation from Thailand state file to prevent PayPal errors around unsupported characters. #19219
  298. * Fix - Fix auto-select variation URLs with special characters in them. #19283
  299. * Fix - Introduced `wc_round_discount` and improved consistency of discount rounding. #19291
  300. * Fix - Only add schema for ratings to structured data when ratings are enabled. #19310
  301. * Fix - Prevent default state applying unless the country was also unset in JS state/country inputs. #19338
  302. * Fix - Escape quantity labels correctly to prevent broken html. #19375
  303. * Fix - Delete orphaned variations after product import. #19378
  304. * Fix - Ensure API credentials exist before defining PayPal refund support. #19380
  305. * Fix - Force word-wrapping in the log viewer to prevent layout-breaking long lines. #19503
  306. * Fix - Removes permission checks that were preventing webhooks from displaying properly when no post object existed. #19508
  307. * Fix - Empty cart after completing PayPal payment. #19509
  308. * Fix - Strip tags on aria-labels in Add to Cart template to prevent broken HTML. #19522
  309. * Fix - Update post_modified date when saving products and variations but no other product data. #19595
  310. * Fix - Clear comment count transient when cleaning product transients to prevent incorrect comment count displays. #19664
  311. * Fix - Load gateways before order is saved/email is triggered to ensure all information gets sent/processed. #19667
  312. * Fix - Clear shipping transient when saving shipping method on zones screen. #19668
  313. * Fix - Handle escape characters for fputcsv to work around PHP standards issues. #19678
  314. * Fix - Cast post IDs to integers in admin meta boxes. #19710
  315. * Fix - Fix CSV unescaping of negative numbers in download expiry/limit columns. #19732
  316. * Fix - Don't load unsupported theme functionality if shop page ID is -1. #19822
  317. * Fix - Select and display "Downloadable" option in product admin filter when selected. #19876
  318. * Fix - Add sort handle column when adding new tags. #19875
  319. * Fix - More thorough CSV importer cleanup. #19877
  320. * Fix - Fix gallery switching when image is the same #19878
  321. * Fix - Ensure coupon amount is always returns as a float value #19889
  322. * Fix - No update available message after activating subscription that has a valid update. #19831
  323. * Fix - Include scheduled products in CSV export. #19907
  324. * Fix - Generator tag actions should be filters. #19946
  325. * Fix - WC API should not try to create a product image when creating a product variation if an empty image is passed. #19971
  326. * Fix - Force settings API settings to autoload by default. #19998
  327. * Fix - Cart html5 validation events when using keyboard. #20001
  328. * Fix - Don't show stock status fields in external product quick-edit. #20005
  329. * Fix - Prevent an infinite loop if 2 grouped products are linked. #20020
  330. * Fix - Switch stock_status when manage stock gets changed to prevent being out of stock if stock quantity is > 0. #20021
  331. * Fix - When duplicating variation, set the date to null. #20083
  332. * Fix - Fix rounding of line items for orders to match cart. #20086
  333. * Fix - Remove hardcoded border in email template. #20090
  334. * Fix - Prevent autofocus on checkout. #20123
  335. * Fix - Recalc taxes if address changes in API. #20137
  336. * Dev - Made wc_query_string_form_fields handle strings. #20162
  337. * Dev - Added refunded_payment prop to orders for determining if payment was refunded via API. #18196
  338. * Dev - Added extra params to `woocommerce_order_get_downloadable_items`. #18408
  339. * Dev - Store shipping method ID and instance ID in separate fields instead of both in one serialized field. #18483
  340. * Dev - Add `woocommerce_rest_insert_system_status_tool` hook that fires after executing a REST system status tool. #18505
  341. * Dev - Gallery meta box is now powered by CRUD. #18511
  342. * Dev - Refactor woocommerce_wp_select so it could be used for a multiselect. #18536
  343. * Dev - Added ability to declare sanitize_callback in settings API. #18554
  344. * Dev - Added support for additional HTML5 input types for settings/checkout forms. #18594
  345. * Dev - Made 'woocommerce_email_downloads_column_' hook format aware. #18600
  346. * Dev - Add missing `woocommerce_update_options__` actions for settings pages that override save method. #18609
  347. * Dev - Allow default value for single_select_country and multi_select_countries. #18754 #18756
  348. * Dev - Added `grouped_form` class to grouped product `form` element. #18786
  349. * Dev - Mini cart item link now respects value of $product_permalink. #18979
  350. * Dev - Added `woocommerce_coupon_get_items_to_validate` filter to enable excluding products from coupon validation. #19002
  351. * Dev - Added `woocommerce_persistent_cart_enabled` filter. #19027
  352. * Dev - Added `woocommerce_admin_order_item_coupon_url` filter. #19777
  353. * Dev - Replaced calls to `exit` with `wp_die` in the ajax methods to enable unit testing of those methods.
  354. * Dev - Introduce `woocommerce_coupon_custom_discounts_array` filter to allow post processing on custom coupons. #19148
  355. * Dev - Move jQuery UI styles into WooCommerce assets folder and load them from there. #19173
  356. * Dev - Added `woocommerce_coupon_validate_expiry_date` filter to enable modifying the coupon expiry date check. #19228
  357. * Dev - Added `woocommerce_shipping_calculator_enable_state` filter to enable disabling state section in shipping calculator. #19241
  358. * Dev - Added `woocommerce_bacs_process_payment_order_status` filter allowing plugins to change the order status to the BACS gateway. #19311
  359. * Dev - Added `woocommerce_coupon_sort` filter to allow plugins to override the default coupon apply order. #19339
  360. * Dev - Added `woocommerce_before_output_product_categories` and `woocommerce_after_output_product_categories` filters. #19363
  361. * Dev - Added general `woocommerce_form_field` filter to make it easier to filter all of the form fields. #19388
  362. * Dev - Added `woocommerce_install_get_tables` filter to enable plugins to register new, WooCommerce-specific tables. $19436
  363. * Dev - Use `get_variation_price` method in structured data to grab min/max so filters are ran. #19527
  364. * Dev - Added `woocommerce_helper_suppress_connect_notice` filter to enable suppressing the admin WordPress.com connection message. #19599
  365. * Dev - Moved all photoswipe styles to `photoswipe.css` to make it easy to dequeue all the photoswipe styles. #19673
  366. * Dev - Slash meta values before updating values in the data stores. #19675
  367. * Dev - New wc_selected method to handle array key conversion to int. #19705
  368. * Performance - Optimized saving of orders. Adds a transient for needs_processing, and only saves changes when saving order items. #18538
  369. * Performance - Refactored the SQL query for `WC_Customer_Download_Data_Store::get_downloads()` to fetch available downloads faster. #18559
  370. * Performance - Split the layered nav counts into multiple transient records by taxonomy and added a filter to allow bypassing caching. #19225
  371. * Performance - Removed duplicate `SET SESSION SQL_BIG_SELECTS=1` queries. #19502
  372. * Performance - Avoid storing coupon `_used_by` data to prevent database bloat. #19669
  373. * Performance - Introduced new wc_get_product_class() and wc_product_class() functions. #19639
  374. * Performance - Series of tweaks aimed at reducing the number of queries performed #19918
  375. * Template - Update cart coupon button from input to button type. #19059
  376. * Template - Added `woocommerce-form-register` class to registration form. #19486
  377. * Template - Added escaping to publish date. #19530
  378. * Template - Added a template file for recent product reviews. #19711
  379. * Template - Made add to cart templates more consistent between product types. #19666
  380. * Localization - Switched Georgian Lari symbol to new UTF symbol. #19603
  381. * Localization - Use ISO county codes for Irish states. #19658
  382. * Localization - Use ISO county codes for BD states. #19744
  383. * Localization - LR-Liberia states. #19709
  384. * Localization - Update ZA tax rate. #19909
  385. * Localization - Various spelling, grammar fixes, and phrasing improvements.
  386. * Localization - Fix missing Bahrain country code. #20061
  387. [See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce/master/CHANGELOG.txt).
  388. == Upgrade Notice ==
  389. = 3.0 =
  390. 3.0 is a major update. Make a full site backup, update your theme and extensions, and [review update best practices](https://docs.woocommerce.com/document/how-to-update-your-site) before upgrading.