=== WooCommerce - excelling eCommerce === Contributors: woothemes, mikejolley, jameskoster, claudiosanches Tags: ecommerce, e-commerce, commerce, woothemes, wordpress ecommerce, affiliate, store, sales, sell, shop, shopping, cart, checkout, configurable, variable, widgets, reports, download, downloadable, digital, inventory, stock, reports, shipping, tax Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=paypal@woothemes.com&item_name=Donation+for+WooCommerce Requires at least: 3.8 Tested up to: 4.0 Stable tag: 2.2.4 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html WooCommerce is a powerful, extendable eCommerce plugin that helps you sell anything. Beautifully. == Description == Transform your WordPress website into a thoroughbred eCommerce store. Delivering enterprise-level quality and features, backed by a name you can trust. Say "hello" to the WooCommerce eCommerce plugin. WooCommerce is built by the experienced folk at WooThemes who also offer premium [eCommerce themes](http://www.woothemes.com/product-category/themes/woocommerce/ "eCommerce themes from WooThemes") and [extensions](http://www.woothemes.com/product-category/woocommerce-extensions/ "eCommerce extensions for WooCommerce from WooThemes") to further enhance your shopfront. [vimeo http://vimeo.com/60440851] = Strength & flexibility = WooCommerce is built using WordPress best practises both on the front and the back end. This results in an efficient, robust and intuitive plugin. = Smart dashboard widgets & reports = Keep a birds-eye view of incoming sales and reviews, stock levels and general store performance and statistics all from the WordPress dashboard or go to the reports section to view stats in more detail. = Customizable = Your business is unique, your online store should be too. Choose one of our [eCommerce themes](http://www.woothemes.com/product-category/themes/woocommerce/ "eCommerce themes from WooThemes") or build your own and give it a personal touch using the built in shortcodes and widgets. WooCommerce works with any theme, including the default WordPress themes. If you need help getting your theme working nicely with WooCommerce please read our [theming docs](http://docs.woothemes.com/document/third-party-custom-theme-compatibility/) to discover your options. If you're looking for a tailored WordPress eCommerce theme designed specifically to be used with WooCommerce be sure to browse the official [WooCommerce Themes](http://www.woothemes.com/product-category/themes/woocommerce/). = Features = Whether you're operating a superstore selling thousands of products, or a just a sole trader selling hand made arts and crafts WooCommerce has you covered. You can read all about WooCommerce' features on the [WooCommerce website](http://www.woothemes.com/woocommerce/ "WooCommerce: An open-source eCommerce plugin for WordPress"). Payment Gateways and Shipping Methods are important to any store - WooCommerce comes bundled with several popular options including PayPal Standard (for accepting Credit Card and PayPal account payments), Simplify Commerce (a US gateway backed by Mastercard), BACS, Cash on Delivery, flat rate shipping, and free shipping. = Premium Extensions = Need a specific payment gateway? Perhaps additional shipping methods? WooCommerce has a [plethora of eCommerce extensions available to provide just that](http://www.woothemes.com/extensions/woocommerce-extensions/ "eCommerce extensions for WooCommerce from WooThemes"). Some of our popular extensions include **[Product Addons](http://www.woothemes.com/extension/product-addons/)**, **[Table rate shipping](http://www.woothemes.com/extension/table-rate-shipping/)**, **[Product CSV Import Suite](http://www.woothemes.com/extension/product-csv-import-suite/)**, **[WooCommerce Subscriptions](http://www.woothemes.com/products/woocommerce-subscriptions/)**, **[Dynamic Pricing](http://www.woothemes.com/extension/dynamic-pricing/)** and [Bookings](http://www.woothemes.com/products/woocommerce-bookings/). Want to see more? * [View Payment Gateways](http://www.woothemes.com/product-category/woocommerce-extensions/?prod_cat%5B%5D=1023&s=&post_type=product&min_price=0&max_price=129&prod_country=0 "Payment gateways for WooCommerce from WooThemes"). * [View Shipping Methods](http://www.woothemes.com/product-category/woocommerce-extensions/?prod_cat%5B%5D=1026&s=&post_type=product&min_price=0&max_price=129&post_type=product&prod_country=0 "Shipping methods for WooCommerce from WooThemes"). * [View all extensions](http://www.woothemes.com/product-category/woocommerce-extensions/ "View all WooCommerce extensions"). = Free Extensions = WordPress.org is home to many cool free extensions for WooCommerce made by other developers including the **[Admin Bar Addition](http://wordpress.org/extend/plugins/woocommerce-admin-bar-addition/)**, **[Delivery Notes](http://wordpress.org/extend/plugins/woocommerce-delivery-notes/)**, **[Affiliates Integration Light](http://wordpress.org/extend/plugins/affiliates-woocommerce-light/)**, **[Custom Product Tabs Lite](http://wordpress.org/extend/plugins/woocommerce-custom-product-tabs-lite/)**, **[PDF Invoices and Packing Slips](http://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/)**, **[Sequential Order Numbers](https://wordpress.org/plugins/woocommerce-sequential-order-numbers/)**, **[New Product Badges](http://wordpress.org/support/view/plugin-reviews/woocommerce-new-product-badge)**, **[Google Analytics](http://wordpress.org/plugins/woocommerce-google-analytics-integration/)** and the **[WooCommerce Customizer](http://wordpress.org/extend/plugins/woocommerce-customizer/)**. [Search WordPress.org for WooCommerce](http://wordpress.org/extend/plugins/search.php?q=woocommerce) to see everything that is available. = Get involved = Developers can contribute to the source code on the [WooCommerce GitHub Repository](https://github.com/woothemes/woocommerce/blob/master/CONTRIBUTING.md). Translators can contribute new languages to WooCommerce through [Transifex](https://www.transifex.com/projects/p/woocommerce/). == Installation == = Minimum Requirements = * WordPress 3.8 or greater * PHP version 5.2.4 or greater * MySQL version 5.0 or greater * Some payment gateways require fsockopen support (for IPN access) = Automatic installation = Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New. In the search field type “WooCommerce” and click Search Plugins. Once you’ve found our eCommerce plugin you can view details about it such as the the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”. = Manual installation = The manual installation method involves downloading our eCommerce plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains [instructions on how to do this here](http://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation). = Updating = Automatic updates should work like a charm; as always though, ensure you backup your site just in case. If on the off-chance you do encounter issues with the shop/category pages after an update you simply need to flush the permalinks by going to WordPress > Settings > Permalinks and hitting 'save'. That should return things to normal. = Dummy data = WooCommerce comes with some dummy data you can use to see how products look; either import dummy_data.xml via the [WordPress importer](http://wordpress.org/extend/plugins/wordpress-importer/) or use our [CSV Import Suite plugin](http://www.woothemes.com/products/product-csv-import-suite/) to import dummy_data.csv and dummy_data_variations.csv. == Frequently Asked Questions == = Where can I find WooCommerce documentation and user guides? = For help setting up and configuring WooCommerce please refer to our [user guide](http://docs.woothemes.com/document/woocommerce/) For extending or theming WooCommerce, see our [codex](http://docs.woothemes.com/documentation/plugins/woocommerce/woocommerce-codex/). = Where can I get support or talk to other users? = If you get stuck you can ask for help on the [WooThemes Community Forum](https://support.woothemes.com/hc/communities/public/topics). For help with premium add-ons from WooThemes, use [our helpdesk](http://support.woothemes.com/). = Will WooCommerce work with my theme? = Yes; WooCommerce will work with any theme, but may require some styling to make it match nicely. Please see our [codex](http://docs.woothemes.com/documentation/plugins/woocommerce/woocommerce-codex/) for help. = Where can I request new features, eCommerce themes and extensions? = You can vote on and request new features and extensions in our [WooIdeas board](http://ideas.woothemes.com/forums/133476-woocommerce) = Where can I report bugs or contribute to the project? = Bugs can be reported either in our support forum or preferably on the [WooCommerce GitHub repository](https://github.com/woothemes/woocommerce/issues). = WooCommerce is awesome! Can I contribute? = Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/woocommerce/) :) == Screenshots == 1. The slick WooCommerce settings panel. 2. WooCommerce products admin. 3. Product data panel. 4. WooCommerce sales reports. 5. A single product page. 6. A product archive (grid). == Changelog == = 2.2.5 = * Fix - Filters in admin screen for coupons and orders. * Fix - When bulk editing, don't allow sale price to be negative. * Fix - When manually adding items to an order, show tax columns. * Fix - When manually adding items to an order, include variation data. * Tweak - Tweak load_plugin_textdomain to be relative - this falls back to WP_LANG_DIR automatically. Can prevent "open_basedir restriction in effect". * Tweak - Added acceptance marks to PayPal Standard where applicable to replace generic PayPal icon. = 2.2.4 - 18/09/2014 = * Fix - Prevent errors when adding 'zero-rated' tax on checkout. * Fix - Fixed a varation product width inheritance bug. * Fix - Totals in taxes by date report. * Fix - Fix the 'only 1 visible product' redirect to not trigger when paging results. * Tweak - Improved headers sent notice to include file and line. * Tweak - When updating order status, ensure its a valid WC order status. * Tweak - Add notice when order is no longer editable. * Dev - Allow getting rating count for a specific rating value #6284. * Localisation - Nepal States. * Localisation - Mexico states. = 2.2.3 - 16/09/2014 = * Fix - Order status translation in admin and account page. * Fix - Ensure shipping address gets displayed - fixes needs_shipping_address() method. * Fix - Escaping of country names in tax settings. * Fix - Encoding of pagination link when using default permalinks. * Fix - NPR currency. * Fix - Fixing "Invalid key" error when clicking link in password reset email. * Fix - Mobile checkout via PayPal when using tax inclusive prices. * Fix - Thumbnails "hard crop" option. * Fix - Missing variables when add new product variation. * Fix - Fixed minor XSS issue on reports screens by escaping and sanitizing 'range' GET variable. * Fix - Number format when calculate the line items tax. * Fix - Language update/install in Multisites. * Fix - "Set product image" media gallery title in non-product post type. * Fix - Number of processing orders in WooCommerce > Orders menu. * Fix - Issue that preventing cookies being set on shutdown after wp_send_json. * Fix - Incorrect shipping calculation because of missing width in product variation. * Tweak - Display of locale information on system status page. * Tweak - Removed postcode for Bahamas. * Tweak - In system status, show path to template file override. * Tweak - Dynamically get the address fields in WC_Checkout::create_order() * Tweak - If a refund fails, delete refund post. * Tweak - Button for hide the language update message. * Tweak - Method for install the translations directly. * Tweak - Display of h4 in settings pages. * Dev - Added woocommerce_get_settings_ID filters. = 2.2.2 - 11/09/2014 = * Fix - Saving of variation stock when parent stock management is disabled. * Fix - "open_basedir restriction in effect" error caused on install when trying to create the WC logging directory. * Fix - For regular products, ensure stock level saves on product creation. = 2.2.1 - 10/09/2014 = * Fix - Small tweak to the installer to prevent errors caused by outdated plugins. * Fix - Mijireh Checkout update link. * Tweak - Small tweak to update notification to remind users to update old plugins prior to install. = 2.2.0 - 10/09/2014 = * Feature - Refunds system for orders. * Feature - New orders panel for managing line items + totals. * Feature - Language pack downloader. po and mo files removed from core (too heavy). * Feature - Added used payment gateway to view orders screens. * Feature - Allow backorders to be configured at variation level. * Feature - Protect admins from shop manager users. * Feature - Ability to add custom quantity using add_to_cart shortcode. * Feature - Ability to set a maximum spend for coupons. * Feature - Added Simplify Commerce payment gateway. * Fix - Allow endpoint use on the front page. * Fix - user_activation_key password reset code. * Tweak - Recalculate the cart totals, in the event a user registers during checkout and in doing so qualifies for any discounts. * Tweak - Use `woocommerce_valid_order_statuses_for_payment` in `pay_action` too. * Tweak - Added the possibility to translate the edit-address endpoint slug. * Tweak - Removed all the_content filter in favor to wpautop() and do_shortcode(). * Tweak - Send IPN email notifications to new order email. * Tweak - Clear and wipe session data on logout and end of checkout for guests. * Tweak - Load archive-product.php for other product taxonomies. * Tweak - Disable image size settings if filters are being used. * Tweak - Hide the shipping address when local pickup is used. * Tweak - Password protected posts are not hidden from catalog by default anymore, visibility can be set via the 'Catalog visibility' option. * Tweak - Removed the shortcode button in favor to [WooCommerce Shortcodes](https://wordpress.org/plugins/woocommerce-shortcodes/) * Dev - API Version 2 with push support. * Dev - API: Lookup customers by email endpoint. * Dev - API: Allow ordering on the resource level. * Dev - Customers API / Methods PUT/POST/DELETE. * Dev - Coupons API / Methods PUT/POST/DELETE. * Dev - Orders API / Methods PUT/POST/DELETE. * Dev - Products API / Methods PUT/POST/DELETE. * Dev - Added description parameter to the woocommerce_form_field function. * Dev - Introduce `woocommerce_valid_order_statuses_for_payment_complete` filter. * Dev - Introduce `woocommerce_thankyou_order_received_text` filter. * Dev - Introduce `woocommerce_product_backorders_allowed` filter. * Dev - get_user and get_user_id methods. * Dev - Add new 'wc_admin_reports_path' filter to reports. * Dev - Add user ID to shipping packages. * Dev - Added product id parameter to related posts filters. * Dev - WC_LOG_DIR constant for defining the log directory. * Dev - Moved default logging directory 1 level above WordPress, rather than in the plugin folder. * Dev - Added log viewer in System Status. * Dev - Made stateless classes static to allow unhooking of methods. * Dev - Introduces the wc_get_log_file_path() function. * Dev - Introduces the WC_Order::needs_shipping_address() method. * Dev - Gateways can set transaction ID for the order. * Dev - Gateways can do refunds via the Payment Gateway API. * Refactor - Changed the method in which order statuses are stored. Previously, order status was a taxonomy. This caused issues when unique term slugs differed from what we were expecting, and also added additonal overhead to order queries in reports. https://github.com/woothemes/woocommerce/issues/3064 Order status is now stored as post status - several new post statuses have been added. Order class variables are backwards compatible. The only thing to note (for devs) is that any query must use the order status instead of 'publish' when getting orders and querying by post_status. THe shop_order_status has also been removed. * Refactor - Update stock amounts with DB queries. * Refactor - Simplified attribute name sanitisation which maintains UTF8 char integrity. * Refactor - Country class return methods. * Notice - Deprecated Mijireh gateway in core. Plugin is available on .org. * Localisation - Egypptian currency. * Localisation - Address format of Taiwan. * Localisation - Removed language files from core to made the package lighter (see language pack downloader feature). = 2.1.12 - 01/07/2014 = * Fix - Total tax should be +, not -. * Fix - Address format in plain text emails to use line breaks, not commas. * Fix - order item count fix and tr class filters. * Fix - Missing translations during checkout. * Fix - Correctly clear transients, including sale transient. * Tweak - woocommerce_get_order_item_totals_excl_free_fees hook. = 2.1.11 - 09/06/2014 = * Fix - Plain text email display of customer address. * Fix - Saving tax rates threw notices (missing git cherry pick). = 2.1.10 - 03/06/2014 = * Fix - Removed unecessary localization from edit account. * Fix - Admin welcome screen css. * Fix - Fixed my account setting values to wrong user submitted strings. * Fix - Menu order terms were coming back empty. * Fix - Fix notice that occurs from external function call. * Fix - Addons page, reference new json API endpoint. * Fix - Notices when rendering WooCommerce Shop as Front Page. * Fix - Prevent undefined notice for Layered Nav title. * Fix - state_province is not required for mijireh any longer. * Fix - Fix coupon limit checks and enhance to check ID by provided email (if logged out). * Fix - Danish krone symbol. * Fix - check for the existence of the cart during the is_available(). * Fix - Fixes performance degradation on large wp_options tables. * Fix - improved the shortcodes button for support WordPress 3.9. * Tweak - Stronger session ID generation. * Dev - Add action hooks when saving tax rates. = 2.1.9 - 14/05/2014 = * Fix - fix case-insensitive matching for coupon posts with uppercase chars. * Fix - Make the welcome page RTL compatible. * Fix - Sanitize, but decode, flat rate shipping method ids. UTF-8 Friendly. * Fix - Stop sending line items to Mijireh. Like PayPal, Mijireh struggles with out prices including tax due to rounding errors. Since the validation cannot be disabled, its better to just send the order as 1 item. This will prevent rounding errors and payment failures. Prices excluding tax are unaffected. * Fix - Fix fee/coupon lines typo in REST API order response. * Fix - Fixes a fatal error when WC()->payment_gateways()->get_available_payment_gateways() is called in the admin. * Fix - is_available check in shipping for excluding countries was backwards. * Fix - Encoding of @ in download links. * Fix - Revise how variation attributes are deleted/updated. Prevents issues with WPE caching when you delete and then update right after. * Fix - Trim commas and empty lines off address formats. * Fix - defined a min value to cart quantity input. * Fix - Fix qty input styling in Firefox 29. * Fix - Use WP SEO class method rather than deprecated fn. * Fix - Cleaned up logic in email_instructions. * Fix - Prevent empty session data being stored until a cookie or session exists to retrieve it. * Fix - fixed WC_Product_Variable::set_stock() compatibility with WC_Product::set_stock(). * Fix - Fix notice when not scanning any files in system status. * Fix - Made wc_get_product_terms support custom menu_order by using get_terms and an include. * Fix - Correct character 3 vaildation for UK postcodes. * Tweak - Add a tip for default selections, and use opt groups for the long bulk edit list. * Tweak - Option to toggle enable_for_virtual for COD, rather than just doing it. * Dev - Introduce `woocommerce_coupon_data_panels` action. * Dev - Add $package to is_available shipping method hooks. * Dev - Add tool for disabling shipping rate cache for debug. = 2.1.8 - 30/04/2014 = * Fix - Prevent saving duplicate skus in quick edit. * Fix - Sorting of downloads on my account page. * Fix - Clear cached API reports when deleting other order transients. * Fix - Shipping calculator cart messages. * Fix - Display of UTF8 attributes on view order page. * Fix - Changed the way the order review html is appended to the checkout page via JS to reduce likelihood of errors. * Fix - Allow removing downloads from product by removing all rows. * Fix - Ignore variation stock if disabled globally. * Fix - Prevent duplicate admin menu items when using menu editor plugins. * Fix - Remove title from product not purchasable message to prevent possible data leak. Thanks Julio Potier. * Tweak - Updated REST API docs link. * Tweak - Updated prettyphoto dependencies. * Tweak - Customer search performance improvements. * Tweak - Made default shipping label clearer. * Tweak - Default order email to user email. * Tweak - Only show downloadable item related text when product has downloads. * Tweak - Improved Abstract product constructor. * Tweak - Add COD instructions to emails. = 2.1.7 - 10/04/2014 = * Fix - Allow WC API to generate API keys for different user than the one that is making request. * Fix - Fix the SKU search logic so it works with other filters. * Fix - Correctly round shipping + shipping tax together when passes the tax inclusive total to paypal. * Fix - orderby - skip adding hidden input of submit on a GET so JS can submit properly. * Fix - Check wc_checkout_params.is_checkout against string '1' instead of int 1. * Fix - Check order exists when resuming on checkout. * Fix - When removing base taxes, round to precision. * Fix - Ensure _order_currency is set. * Fix - Use `$wpdb->db_version()` instead of `mysql_get_server_info()` deprecated in PHP 5.5. * Fix - myaccount registration added check for auto generate password option. * Fix - API: normalize both key and value before calculating OAuth signature. * Fix - API: double-encode percent symbols when normalizing parameters. * Fix - API: Remove post_parent so grouped simple products are also returned. * Fix - Clear featured transients when needed. * Fix - Stay on checkout when removing coupon. * Fix - Prevent totals refreshing on every keydown event on the checkout. * Fix - When hierarchy is off, only show children in the cat widget. * Fix - Delete term count transients after stock status change and trashed post. * Fix - During save_meta_boxes, only save for the "main" post being saved, not nested or subsequent save_post events. * Fix - Stop _wc_session_expires autoloading. * Fix - Remove nonce from comment form to prevent issues with caching. * Fix - reset grouped products correctly to work with short codes. * Fix - In admin, work out cart discount without tax amounts. * Tweak - Apply filters to $product_type and we can set a default product type to new products. * Tweak - wp_kses_post for meta display in admin. * Tweak - woocommerce_order_cancelled_notice hook. * Tweak - Use is_ssl() for get_woocommerce_api_url(). * Tweak - Changes to filters to see if shipping is needed or not in the cart class. * Tweak - Chunk option names in cleanup_sessions() to reduce load. * Tweak - Change \WC_Order::add_order_note cap to edit_shop_order instead of manage_woocommerce. * Tweak - Allow filtering order statuses in dashboard reports widget. * Tweak - Added is_paying_customer() to easily check if a user is a WC customer. * Tweak - Allow query string fallback for REST API SSL auth. * Tweak - woocommerce_coupon_get_discount_amount filter in coupon class. * Tweak - More friendly/less blunt "no shipping" messages. * Tweak - use network_site_url instead of network_admin_url for multisite. * Tweak - Updater - Only show upgrade notices, and use transient cache. * Tweak - get_image_id method for use in email template. Shows correct variation images. * Tweak - added validation when save the frontend colors. = 2.1.6 - 25/03/2014 = * Fix - Fixed a bug where cron events are scheduled using a function name rather than a hook name. * Fix - Given transients not required on all pages expiration times to prevent autoloading. * Fix - Don't trailingslash Order Cancel URLs with a Query String. * Fix - Switch to jquery trim to allow checkout in older IE. * Fix - Variation bulk sale price edit over reaching causing errors on save. * Fix - Only append generator tag on HTML pages. * Fix - AED currency symbol. * Fix - Move loop_end hooks as it is generic and used in all WP loops. Prevents some theme conflicts. * Fix - Lingering tooltip after gallery image delete. * Fix - Move plugin headers to main WC POT file. * Fix - Correct discount calculation in admin when fees are involved. * Fix - Fix sale flash for out of stock sale items. * Fix - Use protocol relative URLs in the cart widget because it gets cached and can display on https or http pages. * Fix - Fix term recount during WP callbacks. * Fix - Convert states to strings for PayPal (non-US). * Fix - Hide empty at walker level to fix category widget display. * Fix - form-login form values were not persistent after failed submission. * Fix - URL decode not needed for custom text attribute names. * Fix - Fix bulk editing variation sale price. * Fix - Remove comment exclusion in order notes meta box. * Fix - Sync min and max prices for regular and sale prices so prices are displayed correctly when sale price is lower than a regular price of another variation. * Fix - Expanding line item_meta causes conflicts if attributes are named with things like 'name', 'type' or 'qty'. Added blacklist to exclude unsafe values. * Fix - Added support for clearing report transients when using object caching. * Fix - encoding issues with attribute values. * Fix - Escape the contents of the changelog when displayed. * Fix - Edge case where tax was still displayed for shipping when exempt. * Tweak - Allow city field to use another input method. * Tweak - Several new filters. * Tweak - PayPal, modify currency error message to include both sent and returned currencies for comparison. * Tweak - enable keyboard shortcuts in prettyPhoto. * Tweak - Add classes to item meta. * Tweak - Use is_purchasable to determine if a variation cart button is needed, and potentially show empty_price_html. * Tweak - new woocommerce_cart_taxes_total filter. * Tweak - new wc_cart_totals_taxes_total_html() function. * Tweak - Use API request URL for mijireh and PayPal callbacks. * Tweak - move variation data to tooltip in order items meta box. * Tweak - Store variation data for order items added through the admin. * Tweak - Billing Address > Billing Details text. We take more than address in this section. * Tweak - Delete terms transient during recount. * Refactor - jshint javascript files. * Localisation - add Bangladeshi currency and symbol. * Localisation - Bangladeshi states (districts). * Localisation - Croatian currency symbol. = 2.1.5 - 06/03/2014 = * Fix - Prevent notices on new plain text email parameter for BACS and Cheque gateways * Fix - Fixed issue where variation prices were hidden when variation stock management wasn't set * Fix - Discounts fixed_product are now properly multiplied by quantity * Fix - Fixed bulk edit % increase and decrease * Fix - Extra check for access_expires when getting downloadable files * Fix - get_related method fixed tags OR query not excluding product ID * Tweak - Fallback for when add ons page is not loading * Tweak - Hide price suffix in admin panel lists = 2.1.4 - 05/03/2014 = * Fix - Prevent duplicate loading of functions files * Fix - Fixed breaking timeline for reports * Fix - Category widget ordering * Fix - BACS and Cheque gateway emails now have a plain text flag * Fix - wc_get_product_ids_on_sale will never return 0 * Fix - Prevent errors upon comments when order is in trash * Fix - Reviews widget now links to proper review anchor * Fix - Added support for permalinks containing a query string in wc_get_endpoint_url * Fix - Variable product add file button works after adding a new variation * Fix - Resolved issue where styles didn't get compiled properly * Fix - Changed the save order so email data is correct for manual orders * Fix - Later hooking in for template redirect * Fix - Reverted load order change for language files and provided proper context * Fix - Made woocommerce_update_cart_action_cart_updated a filter which can return true or false to recalc totals * Fix - Updated sync logic to exclude hidden and out of stock variations from the price display * Fix - Changed set_stock to only make a variable product out of stock if all variations are stock managed to resync prices after stock changes * Fix - Use woocommerce_notify_no_stock_amount not 0 in variable class sync method * Fix - Suppress errors in download handler by silencing ob_flush and flush calls * Fix - load_textdomain first from WP_LANG_DIR before load_plugin_textdomain * Tweak - get_states method now returning false instead of array for countries without states * Tweak - Improved shipping language strings * Tweak - Remove admin check around global po translation file loading * Tweak - Improved styles for tab views * Refactor - Hardened code base and fixed strict standards notices = 2.1.3 - 27/02/2014 = * Fix - Use correct thresholds to calculate out of stock number in dashboard widget * Fix - Admin screen strings sanitised to work with Chinese characters * Fix - REST API OAuth signature fixed when using filter params * Fix - Ensure shipping address data for customers is updated if only shipping to billing address * Fix - Fixed sprintf missing parameter in customer-new-account.php template * Fix - Ampersand character properly outputted in plain text emails * Fix - Stack the password reset fields on smaller screens * Fix - Bulk edit options now reflect on all variations * Fix - Prevent notices when country has states but no states are specified in cart * Fix - Make my-account/view-order use the correct template file * Fix - Prevent session warnings when WordPress logs out * Fix - Prevent spaces in file names from breaking product thumbnails * Fix - Resolved issue where download permissions where not granted in some cases upon order complete * Fix - Prevent IE cursor from being stuck in loading animation * Fix - Ensure wc_get_product_ids_on_sale returns array of ints, not strings * Fix - Prevent rating stars from wrapping in IE * Fix - Rating stars properly aligned in small screens * Fix - Handle get_rate_code when no matching rate is found * Fix - Cleaned noticed that might show when tax rates left empty * Fix - Prevented warning when you have hide shipping methods until address entered selected in CoD * Fix - Better URL detection for subdirectory installs in get_woocommerce_api_url * Fix - Transient names are now md5 hashed so they don't exceed max length * Fix - Fixed searching for orders and speed improvements there * Fix - "Show children of current category only" option working again in Product Category widget * Fix - Order search by SKU can now return multiple results again * Fix - Fixed alignment of radio button in settings API * Fix - Layered nav widget now shows terms again when using list OR * Fix - Prevent multiple attempts at cancelling actions on orders * Fix - Fixes in reporting for variations * Fix - My Accounts downloads section now shows files names * Fix - Improved code to log in via email address * Fix - When guest checkout is enabled, manual made admin orders can be paid without logging in * Fix - Fix product counts when subcategories are displayed * Fix - Fixed Relevanssi conflicts * Fix - Fixed issue with Mijireh incorrectly rounding shipping totals * Fix - Shipping class selection will be hidden for virtual variations * Fix - Prevent product percentage based coupons to stack discounts * Tweak - Added United Arab Emirates Dirham currency * Tweak - Enforce a static base for product permalink structures to prevent 404 issues * Tweak - Introducing woocommerce_get_username_from_email filter in login processing method * Tweak - Trash pages swapped for endpoints instead of force delete * Tweak - Flip default status of price_trim_zeros (defaults to true now) * Tweak - Performance improvements for My Account view with a lot of available downloads * Tweak - Introduces woocommerce_return_to_shop_redirect filter * Tweak - Improved tax rounding, to calculate an accurate tax total * Tweak - Introduced failsafes to prevent actions trying to take place on removed products * Tweak - Permalinks enabled data in REST API * Tweak - Filters to restrict granting/revoking access to files * Tweak - Added Canadian address format * Refactor - Multiple docblock updates * Refactor - Multiple code standards improvements * Refactor - Changed all text strings without explicit domain, to use the 'woocommerce' text domain * Refactor - Speed improvements in various places = 2.1.2 - 13/02/2014 = * Fix - Removed nl2br function from plain text email-order-items email template * Fix - Made static string translatable in email-order-items email template * Fix - Added missing third parameter to _doing_it_wrong call * Fix - Sidebar in reports screen does now fit big numbers (long strings) * Fix - Report stock icon properly set up * Fix - Removed manual checks for AJAX requests, relying on DOING_AJAX constant now * Fix - Checkout get_value now returns null if no value is set, default can be used as fallback * Fix - Variation download url now cleaned via wc_clean instead of esc_url_raw * Fix - Wrap billing and shipping fields with a div/class to prevent field order issues * Fix - Fix line total display for order fees in admin panel order view page * Fix - Restored multiple image selection for product gallery * Fix - Update schemas before DBDELTA to fix mysql errors on update * Fix - Italian address formatting fix * Fix - Set countries as an array by default in the shipping abstract * Fix - Fixed term counts when terms span taxonomies * Fix - Fixed saving of fee tax total * Fix - Fixed "Shipping via" label in PayPal * Tweak - Tweak the order of checks in bulk_and_quick_edit_save_post to make it more efficient on autosave * Tweak - Always set order billing email address when user is logged in, if no email is provided * Refactor - Removed obsolete view order shortcode class * Localization - Multiple localization updates = 2.1.1 - 12/02/2014 = * Feature - Show notice if template files are out of date for themes including WooCommerce template files * Feature - Introducing supporting is_wc_endpoint_url function * Fix - During install, register all post types and endpoints so that the rewrite rules are correctly generated. * Fix - Allow line breaks in customer addresses on order details page * Fix - Fixed all language country codes to reflect WordPress standards * Fix - Payment gateway section links work in lower and upper caps texts * Fix - Prevents nonce notice when removing item from cart * Fix - Hide empty categories in product_categories shortcode * Fix - Fixed Twenty Thirteen single product page layout * Fix - Fix saving of checkboxes (off state) in widgets API * Fix - Proper password validation in user register on the My Account page * Fix - When add_to_cart is called, ensure the correct product_id is set for variations * Fix - Restored Italian translation files * Fix - Ensure stock status is updated. Prevents new products being hidden when the option to hide out of stock products is enabled * Fix - Fix manual order calculation when using non-standard decimal points * Tweak - Added Croatian Kuna currency * Tweak - Throw a non-fatal notice when file trying to be included as template doesn't exist * Tweak - Add versions to all scripts + styles to ensure browser cache is cleared * Tweak - Added tinymce buttons relevant to the short description * Refactor - Removed unused change password template and shortcode class * Refactor - Several function dockblocks improved * Refactor - Stripped out some unused variables = 2.1.0 - 10/02/2014 = * Feature - New REST API * Feature - Define whether prices should be shown incl. or excl. of tax, and add an optional suffix. * Feature - Show grouped or itemized taxes during checkout. * Feature - Split frontend styles into separate appearance/layout stylesheets and removed the enable/disable option. * Feature - Added woocommerce-smallscreen.css to optimise default layout on handheld devices. * Feature - Bulk edit increase / decrease variation prices by fixed or percentage values * Feature - Admin action to link past orders of the same email address to a new user. * Feature - Account edit page for editing profile data such as email. * Feature - Customer list reports. * Feature - Reports - New design, export csvs, more data. * Feature - Ability to link past orders to a customer (before they registered). * Feature - Authorize option for paypal standard. * Feature - Separate options for countries you can ship to and sell to. * Feature - BACS supports multiple account details. * Feature - PayPal PDT support (as alternative to IPN). * Feature - Handling for password protected products. * Feature - Schema markup selector for downloadables. * Feature - woocommerce_get_featured_product_ids function. * Feature - WC_DELIMITER to customise the pipes for attributes * Feature - Standardized, default credit card form for gateways to use if they support 'default_credit_card_form'. * Feature - Coupon usage limits per user (using email + ID). * Feature - Option to limit reviews to purchasers. * Feature - Option to install missing WooCommerce pages from tools page. * Feature - New notices API for adding errors/notices * Feature - Compatible with WordPress 3.8 default theme 'TwentyFourteen'. * Feature - Added is_store_notice_showing conditional. * Feature - Allow gateways to change the checkout place order button text on selection. * Tweak - Added pagination to tax rate screens. * Tweak - Added filter to check the 'Create account' checkbox on checkout by default. * Tweak - Update CPT parameters for 'product_variation' and 'shop_coupon' to be no longer public. * Tweak - COD processing instead of on-hold. * Tweak - Added filter to explicitly hide terms agreement checkbox. * Tweak - New System Status report layout, now plugin list is better visually and very better to read. * Tweak - content-widget-product.php template for product lists inside core widgets. * Tweak - Shipping is now renamed to Shipping and Handling on checkout. * Tweak - Select all/none for countries in admin. * Tweak - Handling for multiselect fields on checkout, and a filter for third party handling. * Tweak - Made scripts/styles use protocol-relative URLs. * Tweak - Revised shiptobilling functionality on the checkout. "ship to different address" option used instead. * Tweak - Filterable page installer. * Tweak - Order details optimised for small screens. * Tweak - Streamlined account process - username and passwords are optional and can be automatically generated. * Tweak - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](http://www.woothemes.com/products/product-csv-import-suite/)). * Tweak - Product shortcodes columns parameter now affects layout correctly. * Tweak - Disabled button styles. * Tweak - Hooks for overriding default email inline styles. * Tweak - Flat rate shipping support for percentage factor of additional costs. * Tweak - local delivery _ pattern matching for postcodes. e.g. NG1___ would match NG1 1AA but not NG10 1AA. * Tweak - Improved layered nav OR count logic * Tweak - Make shipping methods check if taxable, so when customer is VAT excempt taxes are not included in price. * Tweak - Coupon in admin bar new menu #3974 * Tweak - Shortcode tag filters + updated menu names to make white labelling easier. * Tweak - Removed placeholder polyfill. Use this plugin to replace functionality if required: http://wordpress.org/plugins/html5-placeholder-polyfill/ * Tweak - Replaced all instances of → and ← in frontent using wc icon font plus .wc-forward and .wc-backward utility classes. * Tweak - Add review form no longer opens in lightbox. * Tweak - Move average rating outside of hidden tab for google #3867. * Tweak - Add formatted_woocommerce_price filter. * Fix - Changed MyException to Exception in Checkout class as MyException class does not exist in WooCommerce * Fix - Default cart widget styling on non-wc pages. * Fix - Rounding for mijireh tax ex. price. * Fix - Updated blockui to prevent errors in WP 3.6. * Fix - Tweaked popularity sorting to work better when no sales are present. * Fix - Quote encoding in email subjects. * Fix - Added $wp_error parameter during checkout process to ensure WP_Error object is returned on error and checkout process is properly stopped. * Refactor - Taken out Piwik integration, use http://wordpress.org/extend/plugins/woocommerce-piwik-integration/ from now on. * Refactor - Taken out ShareYourCart integration, use http://wordpress.org/extend/plugins/shareyourcart/ from now on. * Refactor - Moved woocommerce_get_formatted_product_name function into WC_Product class. * Refactor - Improved parameter handling in woocommerce_related_products() function. * Refactor - Widget classes (added abstract and combined similar widgets). * Refactor - Removed pay and thanks pages. Endpoints are used instead. * Refactor - Removed certain my-account pages. Endpoints are used instead. * Localization - Portuguese locale by jpBenfica. * Localization - Swedish translation by Björn Sennbrink. * Localization - Japanese translation by Shohei Tanaka. * Localization - Danish translation by Mikael Lyngvig. * Localization - Spanish translation by Luis Giménez. * Localization - French, Spanish, Romanian, Danish, Korean, Czech, Arabic, Hungarian updates. = 2.0.20 - 21/11/2013 = * Tweaked paypal request * Check for WP Error when getting terms in breadcrumb file * Sanitize when searching in admin * Fix yard to cm conversion = 2.0.19 - 04/11/2013 = * Fix - get_item_subtotal() logic * Fix - Pass number of products variable to get_related for more then 5 related products * Fix - Email fatal error for orders with missing products * Fix - Local pickup base tax option on first calculation * Tweak - For paying customer column, use a dash #3971 * Tweak - Added wordwrap to order notes * Localisation - Updated Portuguese, Slovak, French, Lithuanian, Finnish = 2.0.18 - 21/10/2013 = * Fix - Escaped the "hide-wc-extensions-message" link in admin. * Fix - CSS -mox- prefix. #3953 * Fix - Remove sorting args after main query #3969 * Tweak - Pass index to woocommerce_save_product_variation. #3962 * Tweak - woocommerce_variable_product_sync hooks * Tweak - CH postcode validation * Tweak - Show layered nav widgets on any product taxonomy page * Localisation - Various corrections = 2.0.17 - 17/10/2013 = * Fix - Add missing doctype for email header #3921 * Fix - 2 notices on the cart/checkout related to tax #3922 * Fix - Allowed more tags to be saved in sharethis code * Fix - If no products on sale, don't show results in sale shortcode * Fix - During remove_product_query, remove ordering filters to prevent affecting other queries * Tweak - Min amount check takes taxes in consideration #3924 * Tweak - Added validate_ID_field method check to settings API for special validation rules * Tweak - Added needs_payment() method. Checks if an order needs payment, based on status and order total. * Tweak - Key value pairs for order_meta (woocommerce_email_order_meta_keys) * Tweak - Added wc_variation_form trigger to variations javascript for 3rd party plugins = 2.0.16 - 14/10/2013 = * Fix - woocommerce_change_term_counts needs to always return terms. Fixes category display. * Fix - Attribute label display. * Fix - add_to_cart shortcode correct use of setup_product_data = 2.0.15 - 14/10/2013 = * Fix - Added missing line break in plain text email. * Fix - Strict standards warnings in category walkers * Fix - Remember which attributes get registered to minimize conflicts * Fix - Allow quotes in store name for display in emails * Fix - Regression bug throwing warning in ShareThis integration * Fix - Correct state code for Canadian state Newfoundland * Fix - Tweaked popularity sorting to work better when no sales are present. * Fix - Removed action from single add to cart templates to resolve issues with other plugins. * Fix - Unsetting active classes #3896 * Fix - update_status checks if the order id exists #3904 * Fix - the first matching variation should be used (replaced pop() with shift()) @eef86ab * Fix - get_children should get published products only for grouped products #3880 * Fix - Clean the SKU, prevents variations breaking when " was saved @dc6574b * Fix - Correctly check attribute label and name upon creation @31c34f6 * Fix - Fixed Multiple Sets of Tabs on One Page @e584ea8 * Fix - Add tax_rate_id to objects returned from cart->tax_totals @40c85ec * Fix - find_product_in_cart check if cart is array #3863 * Fix - bump_request_timeout strict standards @4798cb8 * Fix - Fix upload dir #3812 * Fix - Remove accents from taxonomy names + run through filters #3832 * Tweak - Always show returning customer login box. = 2.0.14 - 05/09/2013 = * Tweak - Update cart performance improvements * Fix - Google Analytics no longer identifies users using custom vars * Fix - Send tax inclusive, rounded item price to Google Analytics * Fix - Use version_compare to check for required jQuery * Fix - Made gateway abstract compatible with implementations to prevent strict notices * Fix - Update order's GMT date ('post_date_gmt') when changing the order date via the "Edit Order" screen * Fix - Hardened the checkout payment URL method * Fix - Regression bug fixed, allowing 0 value attributes again * Fix - API url function work when permalinks are not pretty * Fix - Chosen select boxes now support RTL languages * Fix - Refresh when creating an account to prevent nonce issues * Other minor fixes = 2.0.13 - 19/07/2013 = * Tweak - Allow users with edit rights to add draft products to cart (and nobody else) * Tweak - Handle pending status for paypal * Tweak - Only refresh fragment when cart cookie > 0 * Tweak - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](http://www.woothemes.com/products/product-csv-import-suite/)). * Fix - Extra escaping on layered nav variables to prevent injection * Fix - Improved sanitization of option fields * Fix - Add fee total to cart total * Fix - Flush rewrite rules after adding or editing attributes * Fix - Set session after removing item from cart to prevent issues after removing last item * Fix - Sale expiration now works for variations as well * Fix - httpversion 1.1 for paypal upcoming changes * Fix - Price filter widget: preserve orderby * Fix - Fix paypal phone mask (whitespace) * Fix - Correct sanitization of option fields * Fix - Sanitized shipping calc form to fix persistent XSS issue. * Localisation - ES States = 2.0.12 - 17/06/2013 = * Tweak - Add actions for attribute create/update/delete * Fix - Fixed bug in cross sells loading in product data write panel * Fix - Fixed posting shipping method when only one is available * Fix - Fixed query breaking when using some product widgets = 2.0.11 - 13/06/2013 = * Tweak - Handling for multiselect fields on checkout, and a filter for third party handling * Fix - Duplicate param keys for sale_product shortcodes * Fix - Google Analytics tracking use get_order_number() method instead of id * Fix - Replaced jQuery placeholder plugin to provide support in older browsers * Fix - Rounding for mijireh tax ex. price * Fix - Fixed is_on_sale function for products without prices * Fix - Updated blockui to prevent errors in WP 3.6 * Fix - Extra data sanitization in some places * Fix - Offer tax class option per variation to use same tax class as parent = 2.0.10 - 15/05/2013 = * Tweak - Searching for SKU in admin panel can also be done via lowercase 'sku:' instead of just 'SKU:' * Fix - Cast term_id as int in product data write panel that will resolve issues with numerical attributes * Fix - Correct label for RUB symbol - added a dot after it * Fix - Javascript escapes to stop breaking scripts when used with translations * Fix - PayPal button should use classes 'button' and 'alt', not 'button-alt' * Fix - Have the remove_taxes() method set subtotal to subtotal_ex_tax * Fix - Allow layered nav to work with non pa_ prepended taxonomies * Fix - Better backwards compatibility with _woocommerce_exclude_image * Fix - is_on_sale() method now returns true for products with a sale product of 0 * Fix - For when get_the_terms() returns false inside woocommerce_get_product_terms() * Fix - PayPal has a 9 item limit * Fix - Replace deprecated wp_convert_bytes_to_hr() with size_format() = 2.0.9 - 02/05/2013 = * Feature - Added is_product_taxonomy() conditional. * Tweak - Notices during checkout for admin users if the checkout is mis-configured. * Tweak - Named charts on report page to make modifications easier. * Tweak - woocommerce_before_delete_order_item hook. * Fix - Disable autocomplete for checkout fields which refresh totals - no events get fired on autocomplete. * Fix - Clear rating transients when editing comments. * Fix - Screen ids when plugin name localised. * Fix - Brazilian state code BH -> BA. Data update required to update old values in orders. * Fix - Fix incorrect CSS class being output in product image gallery. * Fix - Mijireh page slurp. * Fix - woocommerce_downloadable_product_name filter fixes. * Fix - Pass order number to google analytics, not id * Fix - check_jquery in WP 3.6 beta * Fix - GA click tracking moved code to footer. * Localization - Netherlands, Hungarian, Taiwan, Italian, CZ, Spanish, Catalan updates. * Localization - Slovak translation by Dusan Belescak. * Localization - Added RUB currency. * Other minor fixes and localisation updates. = 2.0.8 - 17/04/2013 = * Feature - Related products shortcode. * Tweak - Order item meta - skip serialized fields. * Tweak - Support for the city field in shipping calc (filterable). * Tweak - use base_country for tax calculations in manually created orders. * Tweak - Download permissions meta box show cleaner filenames. * Fix - Updated shareyourcart SDK. * Fix - moved woocommerce_get_filename_from_url to core-functions as it is required in admin too. * Fix - checkmark after adding to cart multiple times. * Fix - Saving text attributes. Posted 'text' terms are not slugs. Only striptags/slashes - don't change to slugs. * Fix - Insert URL button when working with multiple variations. * Fix - Undefined found_shipping_classes in flat rate shipping. * Fix - Fix saving options for attribute taxonomies containing special chars. * Fix - Prevent empty meta queries. * Localization - Norwegian updates by Tore Hjartland * Localization - Spanish updates by Laguna Sanchez * Localization - Romanian updates by Aurel Roman * Localization - Finnish updates by arhipaiva = 2.0.7 - 12/04/2013 = * Feature - Option for GA _setDomainName. * Tweak - Removed rounding when option to round at subtotal is set. * Fix - Allow extra flat rate options even if main rate is 0. * Fix - Fix email subject lines if options not set. * Fix - Prevent over-sanitization of attribute terms when editing products. * Fix - Sanitize terms when linking all variations. * Fix - Sanitize coupon code names before checking/applying. = 2.0.6 - 10/04/2013 = * Tweak/Fix - Merge taxes by CODE so totals are displayed clearer. Also added additional function for getting merged tax totals, and to keep compatibility with themes. * Tweak/Fix - Recent reviews show actual review stars, and allowed get_rating_html() to be passed a rating. Also removed unused $location var. * Fix - Saving of meta values from paypal after payment. * Fix - woocommerce_nav_menu_items - only hide pages, not other objects. * Fix - woocommerce_add_tinymce_lang array key. * Fix - Find_rates now works with both postcode and city together. * Fix - PrettyPhoto content clearfixed. * Fix - Fix the download method when force SSL is on. * Fix - Put back sandbox pending fix. Apparently still needed for some accounts. * Fix - Do not sanitize old attribute name to not mess up comparing * Fix - Settings API empty value only used if set. In turn fixes blank values in flat rate shipping. * Fix - Ensure API Request URL scheme is not relative to the current page. * Fix - Fix saving of download permissions in order admin. * Fix - Action woocommerce_product_bulk_edit_end is now properly executed instead of outputted as HTML. * Fix - Fix IE Download via SSL bug and fix http file over SSL. * Fix - Show non-existing product line items. * Fix - Conflicts with W3 Total Cache DB Cache * Fix - piwik tracking. * Tweak - Added a check to parent theme for comments_template before loading plugin template. * Tweak - Remove hard coded max from random products widget. * Tweak - Add filter hook to the place order button for easy 3rd party manipulation. * Tweak - UX - Placeholder fades out on focus * Tweak - UX - Only display validation result on required fields * Tweak - Product column widths in admin * Tweak - .shipping_address clears to avoid flash of ugliness in some themes when revealing shipping address * Tweak - created an icon font for the star ratings to improve consistency * Tweak - woocommerce_show_page_title filter * Tweak - wrapper / css tweaks for TwentyThirteen compatibility * Tweak - Added filters for controlling cross-sell display * Tweak - Made hierarchy code in breadcrumbs more reliable. * Localisation - NZ States * Other minor fixes and localisation updates. = 2.0.5 - 26/03/2013 = * Tweak - Made no shipping available messages filterable via woocommerce_cart_no_shipping_available_html and woocommerce_no_shipping_available_html. * Tweak - disabled keyboard shortcuts in prettyPhoto. * Tweak - woocommerce_date_format() function. * Tweak - After adding to cart, add 'added_to_cart' to querystring - lets messages show with cache enabled. * Tweak - Similar to above, on failure don't redirect. The POST should exclude from cache. * Tweak - Version data on system status page. * Fix - Fix orderby title - separated from menu_order. * Fix - WC_Product::set_stock_status() to correctly set status. * Fix - last_modified_date updated on status change for orders. * Fix - Sanitize id in woocommerce_get_product_to_duplicate function * Fix - Cancel order function now looks at post_modified instead of post_date. * Other minor fixes and localisation updates. = 2.0.4 - 18/03/2013 = * Tweak - Like my account, added order_count attribute to view order shortcode. * Tweak - Moved WC_Order_Item_Meta into own file. * Tweak - PayPal standard gateway - no longer needs sandbox fix, and notify-validate should be first in the requests. * Tweak - Flat rate interface tidy up. * Tweak - Add order_id to woocommerce_download_product hook * Tweak - Disabled prettyPhoto deeplinking * Tweak - Applied a width to the product name column (edit products) to fix layout small screens * Tweak - Filters for attribute default values. * Tweak - Added filter to control order stock reduction when payment is complete. * Tweak - Increase priority of woocommerce_checkout_action and woocommerce_pay_action so things can be hooked-in prior. * Tweak - Tweaked default locale to include all fields so that checkout fields can fallback if specific properties are not set e.g. required. * Tweak - Removed Base Page Title option - rename the page instead. * Fix - WC_Order_Item_Meta support for keys with multiple values. * Fix - Codestyling bug with meta.php * Fix - Icon replacement in .woocommerce-info for Gecko * Fix - prettyPhoto next/prev links and thumbnail navigation no longer appear when there's only one attachment * Fix - Attribute base * Fix - Fixed adjust_price method in product class, allowing negative adjustments * Fix - Ratings and rating count transient syncing. * Fix - Tax label vs name in order emails. * Fix - Sendfile when FORCE_SSL_ADMIN is enabled. * Fix - "for" attribute within product_length option. * Fix - Encode the URLs generated by layered nav widget. * Fix - Order Again for variations. * Fix - Preserve arrays in query strings when using orderby dropdown. * Fix - Move track pageview back to template_redirect to prevent headers_redirect, but give a later priority than canonical. * Fix - Product tabs when a product type doesn't exist yet. * Fix - Saving of variation download paths with special chars. * Fix - Unset parent of children when deleting a grouped product. * Fix - Removed Sidebar Login Widget. Use http://wordpress.org/extend/plugins/sidebar-login/ instead. A potential security issue was found regarding logging of passwords (since GET was used instead of POST). Sidebar Login 2.5 resolves this and the widget has been removed from WC to prevent needing to maintain two (virtually identical) codebases. * Localization - Added indian rupees * Localization - Updated French translation by absoluteweb * Localization - Updated Brazilian translation by Claudio Sanches * Localization - Updated Hungarian translation by béla. = 2.0.3 - 11/03/2013 = * Feature - Added products by attribute shortcode, e.g. [product_attribute attribute="color" filter="blue"] * Tweak - Made coupon label more clear. * Tweak - woocommerce_cart_redirect_after_error hook. * Tweak - woocommerce_cancel_unpaid_order hook to control if an order should be cancelled (if unpaid) * Tweak - woocommerce_valid_order_statuses_for_payment and woocommerce_valid_order_statuses_for_cancel hooks for pay pages/my account. * Tweak - WC_START in checkout json requests to prevent notices breaking checkout. * Tweak - Add filters to product images and thumbnails. * Tweak - IPN email mismatch puts order on-hold. * Tweak - Option to set main paypal receiver email. * Tweak - Download file links show filename as part of link. * Fix - Samoa -> Western Samoa * Fix - Re-applied image setting tooltips * Fix - Post code ranges (taxes) on insert. * Fix - Moved init checkout to a later hook to prevent canonical template redirects kicking in. * Fix - Made custom attributes more robust by using sanitized values for variations. * Fix - woocommerce_cancel_unpaid_orders respects the manage stock setting. * Fix - Mijireh Page Slurp. * Fix - Removed unused 'woocommerce_prepend_shop_page_to_urls' setting from breadcrumbs. * Fix - hide_cart_widget_if_empty option. * Fix - Added legacy paypal IPN handling. * Localization - Finnish translation by Arhi Paivarinta. = 2.0.2 - 06/03/2013 = * Fix - Frontpage shop when 'orderby' is set. * Fix - Fix add-to-cart for grouped products which are sold individually. * Fix - Payment method animation on the checkout. * Fix - Updated chosen library. * Fix - Saving of attributes/variations with custom product-level attributes. * Fix - Include once to prevent class exist errors with widgets. * Fix - Fixed welcome screen bug shown in updater frame * Fix - Upgrade if DB version is lower than current. * Fix - FROM prices now ignore blank strings for variations. * Fix - Ensure order contents are saved before mailing via admin interface. = 2.0.1 - 04/03/2013 = * Fix - Added an extra permalink flush after upgrade to save needing to do it manually. = 2.0.0 - 04/03/2013 = * Feature - Sucuri audited and secured. * Feature - Added sales by category report. * Feature - Added sales by coupon report (kudos Max Rice). * Feature - Multiple downloadable files per product/variation (kudos Justin Stern). * Feature - Download expiry for variations (kudos niravmehta). * Feature - Added wildcard support to local delivery postcodes. * Feature - Option to enable Cash on Delivery for select shipping methods only. * Feature - Stopped using PHP sessions for cart data - using cookies and transients instead to allow WC to function better with static caching. Also to reduce support regarding hosts and session configurations. * Feature - Export and Import Tax Rates from a CSV file. * Feature - Option to control whether tax is calculated based on customer shipping or billing address. * Feature - New options for individual transaction emails with template editor. * Feature - Added "On Sale" shortcode (thanks daltonrooney). * Feature - Added "Best Selling" shortcode. * Feature - Added "Top Rated" shortcode. * Feature - Local pickup has the option to apply base tax rates instead of customer address rates. * Feature - New product images panel to make working with featured images + galleries easier. * Feature - Schedule sales for variations. * Feature - Expanded bulk edit for prices. Change to, increase by, decrease by. * Feature - Set attribute order (globally, per attribute). * Feature - Allow setting the product post type slug to a static (non-translatable) text, mainly to be used for translating and WPML setups. * Feature - Added lost password shortcode / email notification (thanks Max Rice). * Feature - Simplified permalink/base settings now found in Settings > Permalinks. * Feature - Support more permalink structures (from http://codex.wordpress.org/Using_Permalinks) * Feature - Added option to resend order emails, checkboxes select which one. * Feature - New layered nav current filters widget. This lists active filters from all layered nav for de-selection. * Feature - Added the option to sell products individually (only allow 1 in the cart). * Feature - New shop page/category archive display settings, and the ability to change display per-category. * Feature - Allow shipping tax classes to be defined independent of items. https://github.com/woothemes/woocommerce/issues/1625 * Feature - Redone order item storage making them easier (and faster) to access for reporting, and querying purchases. Huge performance gains for reports. Order items are no longer serialised - they are stored in their own table with meta. Existing data can be be updated on upgrade. * Feature - Update weights/dimensions for variations if they differ. * Feature - is_order_received_page() courtesy of Lee Willis. * Feature - Inline saving of attributes to make creating variable products easier. * Feature - Zip code restriction for local pickup. * Feature - New free shipping logic - coupon, min-amount, Both or Either. * Feature - Taxes can be based on shipping, billing, or shop base. * Feature - Filter coupons in admin by type. * Feature - Append view cart link on ajax buttons. * Feature - Revised the way coupons are stored per order and added new coupon reports on usage. * Feature - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](http://www.woothemes.com/products/product-csv-import-suite/)). * Feature - Option to hold stock for unpaid orders (defaults to 60mins). When this time limit is reached, and the order is not paid for, stock is released and the order is cancelled. * Feature - Added set_stock() method to product class. * Feature - Linking to mydomain.com/product#review_form will now open the review form on load (if WooCommerce lightbox is turned on) * Feature - Customers can sort by popularity + rating. * Feature - Option to exclude coupons from sale items (thanks aj-adl) * Feature - Logout "page" which can be added to menus. * Templating - Revised pagination, sorting areas (sorting is now above products, numbered pagination below) and added a result count. * Templating - email-order-items.php change get_downloadable_file_url() to get_downloadable_file_urls() to support multiple files. * Templating - loop-end and start for product loops, allow changing the UL's used by default to something else. * Templating - woocommerce_page_title function for archive titles. * Templating - CSS namespacing changes (courtesy of Brian Feister). * Templating - My account page broken up into template files (by Brian Richards) * Templating - CSS classes standardised. Instances of '.woocommerce_' & '.wc-' replaced with '.woocommerce-' * Templating - Ratings added to loop. Remove with [this snippet](https://gist.github.com/4518617). * Templating - Replaced Fancybox with prettyPhoto * Templating - loop-shop which was deprecated is now gone for good. * Templating - Renamed empty.php to cart-empty.php to make clearer. * Templating - Renamed sorting.php to orderby.php to better reflect contained hooks and code. * Templating - Product tabs rewritten - new filter to define tab titles, priorities, and display callbacks. * Templating - loop/no-products-found.php template added. * Tweak - Sorting uses GET to make it cache friendly * Tweak - Optimised class loading (autoload). Reduced memory consumption. * Tweak - Moved shortcodes and widgets to classes. * Tweak - Tweaks to gateways API. Must use WC-WPI for IPN requests (classes will only be init when needed). * Tweak - Save hooks for gateways have changed to match shipping methods. Plugins must be updated with the new hook to save options. * Tweak - Cron jobs for scheduled sales. * Tweak - Improved product data panels. * Tweak - Improved installation + upgrade process upon activation. * Tweak - Protect logs and uploads with a blank index.html * Tweak - Append unique hash to log file names * Tweak - get_order_number support for PayPal (thanks Justin) * Tweak - Taxes - removed woocommerce_display_cart_taxes option in favour of never showing tax until we know where the user is (for tax exclusive prices). Tax inclusive continues to use base so prices remain correct. * Tweak - Taxes - tweaked display of tax when using inclusive pricing to avoid confusion. * Tweak - Taxes - improved admin interface and simplified options. * Tweak - More granular capabilities for admin/shop manager covering products, orders and coupons. * Tweak - Added some calculations to the order page when manually entering rows. Also added accounting.js for more accurate rounding of floats. * Tweak - Order page can now calculate tax rows for you. * Tweak - Display tax/discount total for reference on orders * Tweak - Humanised order email subjects/headings * Tweak - Cleaned up the tax settings. * Tweak - If a PayPal prefix is changed, IPN requests break for all existing orders - fixed. new wc_get_order_id_by_order_key() function added. Thanks Brent. * Tweak - On add to cart success, redirect back. * Tweak - Prefix jquery plugins JS. * Tweak - Made paypal use wc-api for IPN. * Tweak - Due to new session handling, removed session section from the status page. * Tweak - Removed upsell limit - show whats defined. * Tweak - Args for upsells to control per-page and cols. * Tweak - Recoded add_to_cart_action for better handling of variations and groups. * Tweak - Admin sales stats show totals. * Tweak - product_variations_{id} changed to product_variations array * Tweak - Coupon description field. * Tweak - Exclude up-sells from related products. * Tweak - Allowed sku search to return > 1 result. * Tweak - If only one country is enabled, don't show country dropdown on checkout. * Tweak - Case insensitive coupons. * Tweak - Made armed forces 'states' under the US rather than in their own 'country'. * Tweak - Extended woocommerce_update_options for flexibility. * Tweak - Added disabled to settings API. * Tweak - Flat rate shipping - if no rules match, and no default is set, don't return a rate. * Tweak - custom_attributes option added to woocommerce_form_field args. Pass name/value pairs. * Tweak - Added html5 type inputs to admin with inline validation. * Tweak - Use WP Core jquery-ui-slider * Tweak - Further optimisation of icons in admin for HiDPI devices * Tweak - On product search include post_excerpt, by krbvroc1 * Tweak - Attribute page restricts reserved terms by GeertDD * Tweak - Arguments for taxonomies are now filterable * Fix - Added more error messages for coupons. * Fix - Variation sku updating after selection. * Fix - Active plugins display on status page. * Localization - Makepot added by Geert De Deckere for generating POT files. * Localization - Admin/Frontend POT files to reduce memory consumption on the frontend. * Localization - French update by Arnaud Cheminand and absoluteweb. * Localization - Romanian update by silviu-bucsa and a1ur3l. * Localization - Dutch updates by Ramoonus. * Localization - Swedish updates by Mikael Jorhult. * Localization - Localized shortcode button. * Localization - Norwegian translation by frilyd. * Localization - Italian update by Giuseppe-Mazzapica. * Localization - Korean translate by Woo Jin Koh. * Localization - Bulgarian update by Hristo Pandjarov. * Localization - Spanish update by bolorino. * Localization - Finnish translation by Arhi Paivarinta. * Localization - Chinese (Taiwan) translation by Fliper. * Localization - Brazilian update by Fernando Daciuk. * Localization - Hungarian translation by béla. * Localization - Indonesian translation by Stanley Caramoy. == Upgrade Notice == = 2.2.4 = 2.2 is a major update. Test extensions and your theme prior to updating, ensure extensions are up to date and 2.2 compatible, and ensure that you keep backups. Developers should catch up with [develop.woothemes.com](http://develop.woothemes.com/) to see what has been happening in core.