# WooCommerce Documentation This file contains a list of all documentation files available in the WooCommerce documentation. [Getting Started with WooCommerce APIs](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/README.md) WooCommerce provides a number of programmatic APIs to interact with WooCommerce store data. [WooCommerce REST API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/rest-api/README.md) The [REST API](https://woocommerce.github.io/woocommerce-rest-api-docs/#introduction) is a powerful part of WooCommerce which lets you read and write various parts of WooCommerce data such as orders, ... [WooCommerce Store API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/README.md) **The Store API provides public Rest API endpoints for the development of customer-facing cart, checkout, and product functionality. It follows many of the patterns used in the [WordPress REST API](ht... [Cart Tokens](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/cart-tokens.md) Cart tokens can be used instead of cookies based sessions for headless interaction with carts. When using a `Cart-Token` a [Nonce Token](/docs/apis/store-api/nonce-tokens) is not required. [Store API Guiding principles](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/guiding-principles.md) The following principles should be considered when extending, creating, or updating endpoints in the Store API. [Nonce Tokens](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/nonce-tokens.md) Nonces are generated numbers used to verify origin and intent of requests for security purposes. You can read more about [nonces in the WordPress codex](https://developer.wordpress.org/apis/security/n... [Rate Limiting for Store API endpoints](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/rate-limiting.md) [Rate Limiting](https://github.com/woocommerce/woocommerce-blocks/pull/5962) is available for Store API endpoints. This is optional and disabled by default. It can be enabled by following [these instr... [Cart Coupons API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/cart-coupons.md) ```http [Cart Items API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/cart-items.md) ```http [Cart API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/cart.md) The cart API returns the current state of the cart for the current session or logged in user. [Checkout order API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/checkout-order.md) The checkout order API facilitates the processing of existing orders and handling payments. [Checkout API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/checkout.md) The checkout API facilitates the creation of orders (from the current cart) and handling payments for payment methods. [Order API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/order.md) The order API returns the pay-for-order order. [Product Attribute Terms API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-attribute-terms.md) ```http [Product Attributes API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-attributes.md) ```http [Product Brands API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-brands.md) ```http [Product Categories API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-categories.md) ```http [Product Collection Data API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-collection-data.md) This endpoint allows you to get aggregate data from a collection of products, for example, the min and max price in a collection of products (ignoring pagination). This is used by blocks for product f... [Product Reviews API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-reviews.md) This endpoint returns product reviews (comments) and can also show results from either specific products or specific categories. [Product Tags API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/product-tags.md) ```http [Products API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/apis/store-api/resources-endpoints/products.md) The store products API provides public product data so it can be rendered on the client side. [WooCommerce coding standards](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/coding-standards/coding-standards.md) Adhering to WooCommerce coding standards is essential for maintaining high code quality, ensuring compatibility, and facilitating easier maintenance and updates. This document outlines the recommended... [CSS/Sass naming conventions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/coding-standards/css-sass-naming-conventions.md) Our guidelines are based on those used in [Calypso](https://github.com/Automattic/wp-calypso), which itself follows the [BEM methodology](https://getbem.com/). [WooCommerce grammar, punctuation and capitalization guide](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/coding-standards/grammar-punctuation-capitalization.md) Following grammar, punctuation and style guidelines helps keep our presentation consistent. Users have a better experience if they know what to expect and where to find the information they need. [Naming conventions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/coding-standards/naming-conventions.md) WooCommerce core generally follows [WordPress PHP naming conventions](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#naming-conventions). [How to add a custom field to simple and variable products](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/data-management/adding-a-custom-field-to-variable-products.md) In this tutorial you will learn how to create a custom field for a product and show it in your store. Together we will set up the skeleton plugin, and learn about WP naming conventions and WooCommerce... [Developing using WooCommerce CRUD objects](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/data-management/crud-objects.md) CRUD is an abbreviation of the four basic operations you can do to a database or resource - Create, Read, Update, Delete. [Data storage primer](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/data-management/data-storage.md) When developing for WordPress and WooCommerce, it's important to consider the nature and permanence of your data. This will help you decide the best way to store it. Here's a quick primer: [How to manage WooCommerce Data Stores](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/data-management/data-stores.md) Data store classes act as a bridge between WooCommerce's data CRUD classes (`WC_Product`, `WC_Order`, `WC_Customer`, etc) and the database layer. With the database logic separate from data, WooCommerc... [Logging in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/data-management/logging.md) WooCommerce has its own robust system for logging, which can be used for debugging during development, catching errors on production, or even sending notifications when specific events occur. By defau... [Updating countries and subdivisions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/localization-translation/countries-and-subdivisions.md) WooCommerce comes complete with a comprehensive list of countries and subdivisions (such as provinces or states) that are used in various parts of the user interface. [How to translate WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/localization-translation/translating-woocommerce.md) WooCommerce is already translated into several languages and is translation-ready right out of the box. All that's needed is a translation file for your language. [How to configure caching plugins for WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/performance/configuring-caching-plugins.md) Oftentimes if using caching plugins they'll already exclude these pages. Otherwise make sure you exclude the following pages from the cache through your caching systems respective settings. [Performance best practices for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/performance/performance-best-practices.md) Optimizing the performance of WooCommerce extensions is vital for ensuring that online stores run smoothly, provide a superior user experience, and rank well in search engine results. This guide is ta... [How to optimize performance for WooCommerce stores](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/performance/performance-optimization.md) This guide covers best practices and techniques for optimizing the performance of WooCommerce stores, including caching, image optimization, database maintenance, code minification, and the use of Con... [Review guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/README.md) Reviews are an integral part of the online shopping experience, and people installing software pay attention to them. Prospective users of your extensions will likely consider average ratings when mak... [How to request WooCommerce extension reviews](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/how-to-request-reviews.md) Admin notices are an industry standard method of requesting reviews, but bombarding the admin dashboard with admin notices is not effective. We recommend using restraint in the design of a notice, as ... [Miscellaneous guidelines and advice](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/misc-guidelines.md) Contributors' names matching search terms directly will rank extremely highly on the WordPress.org plugin repo, which means that having a WordPress.org user named after your business (if that's a sear... [Notifying users about bug fixes and feature requests](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/notifying-users-about-important-events.md) A bug or a missing feature can be a showstopper for merchants. Bugs that pile up or popular features that are not implemented can lead to negative reviews and/or merchants churning and looking at a co... [How to respond to negative WooCommerce extension reviews](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/responding-to-negative-reviews.md) An unpleasant event in the merchant's journey can lead them to leave a public, negative review. These events usually are: [Utilizing WooCommerce extension feature requests](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/utilizing-feature-requests.md) It is important to keep track of all feature requests, and have some sort of system of record where anyone can see what kind of feedback the product is receiving over time. [Utilizing your support team to respond to feedback](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/utilizing-your-support-team.md) Your support team is usually the primary contact point of merchants when they contact you. Tickets and chats are the best tools we have to converse with merchants, understand pain-points about our sof... [When to request WooCommerce extension reviews](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/review-guidelines/when-to-request-reviews.md) The best approach to increasing our top-star reviews is to identify key moments in the merchant's journey, when they are more likely to leave a review and actively request for it. [How to Prevent Data Leaks in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/security/prevent-data-leaks.md) Data leaks can expose sensitive information and compromise the security of a WooCommerce site. One common source of data leaks is direct access to PHP files. This tutorial will show you how to prevent... [WooCommerce security best practices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/security/security-best-practices.md) Security is extremely important for online stores. A breach can lead to significant financial loss, reputational damage, and erosion of customer trust. Implementing robust security practices is crucia... [Customizing WooCommerce endpoint URLs](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/urls-and-routing/customizing-endpoint-urls.md) Before you start, check out [WooCommerce Endpoints](./woocommerce-endpoints.md). [Understanding the risks of removing URL bases in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/urls-and-routing/removing-product-product-category-or-shop-from-the-url.md) Removing `/product/`, `/product-category/`, or `/shop/` from the URLs is not advisable due to the way WordPress resolves its URLs. It uses the `product-category` (or any other text for that matt... [Working with webhooks in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/urls-and-routing/webhooks.md) A [Webhook](http://en.wikipedia.org/wiki/Webhook) is an event notification sent to a URL of your choice. Users can configure them to trigger events on one site to invoke behavior on another. [Understanding WooCommerce endpoints](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/best-practices/urls-and-routing/woocommerce-endpoints.md) Endpoints are an extra part in the website URL that is detected to show different content when present. [Blocks reference](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/block-references.md) This page lists the Woo blocks included in the package. (Incomplete as there are still blocks that are not using block.json definition). [Additional checkout fields](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/additional-checkout-fields.md) A common use-case for developers and merchants is to add a new field to the Checkout form to collect additional data about a customer or their order. [Available Filters](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/README.md) This document lists the filters that are currently available to extensions and offers usage information for each one of them. Information on registering filters can be found on the [Checkout - Filter ... [Inner block types](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/additional-cart-checkout-inner-block-types.md) The following Additional Cart and Checkout inner block types filter is available: [Cart line items](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/cart-line-items.md) [Checkout and place order button](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/checkout-and-place-order-button.md) [Coupons](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/coupons.md) [Order summary items](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/order-summary-items.md) [Totals footer item](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-filters/totals-footer-item.md) [Available slots](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/available-slot-fills.md) [Checkout flow and events](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events.md) This document gives an overview of the flow for the checkout in the WooCommerce checkout block, and some general architectural overviews. [Filtering payment methods in the Checkout block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/checkout-payment-methods/filtering-payment-methods.md) [Payment method integration](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration.md) The client side integration consists of an API for registering both _regular_ and _express_ payment methods. [DOM events](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/dom-events.md) Some blocks need to react to certain events in order to display the most up to date data or behave in a certain way. That's the case of the Cart block, for example, that must listen to 'add to cart' e... [Getting started with Cart and Checkout extensibility](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/extensibility-getting-started.md) [Frequently Asked Questions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/faq.md) [Hook support and common extensibility paths](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/hooks/hook-alternatives.md) Please see the [hook alternatives document](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/hooks/hook-alternatives.md... [Legacy hooks](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/hooks/migrated-hooks.md) Below are the hooks that exist in WooCommerce core and that were brough over to WooCommerce Blocks. [How the checkout block processes an order](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/how-checkout-processes-an-order.md) This document will shed some light on the inner workings of the Checkout flow. More specifically, what happens after a user hits the "Place Order" button. [How to Add Additional Fields to the WooCommerce Checkout Block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/how-to-additional-checkout-fields-guide.md) This feature requires a minimum version of WooCommerce 8.9.0 [How to Make Your WooCommerce Additional Checkout Fields Conditionally Visible in the Checkout Block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/how-to-conditional-additional-fields.md) This feature requires a minimum version of WooCommerce 9.9.0 [Handling scripts, styles, and data](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/integration-interface.md) You are an extension developer, and to allow users to interact with your extension on the client-side, you have written some CSS and JavaScript that you would like to be included on the page. Your Jav... [Overview of data flow between client and server](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/overview-of-data-flow.md) [Removing checkout fields](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/removing-checkout-fields.md) [Slot and fill](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/cart-and-checkout-blocks/slot-fills.md) You added custom data to the [Store API](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-... [Extensibility in blocks](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/extensibility-in-blocks/README.md) These documents are all dealing with extensibility in the various WooCommerce Blocks. [Product collection block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/product-collection-block/README.md) No description available [DOM events sent from product collection block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/product-collection-block/dom-events.md) This event is triggered when Product Collection block was rendered or re-rendered (e.g. due to page change). [Registering custom collections in product collection block](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/block-development/product-collection-block/register-product-collection.md) The `__experimentalRegisterProductCollection` function is part of the `@woocommerce/blocks-registry` package. This function allows third party developers to register a new collection. This function ac... [Using the Code Snippets Plugin](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/README.md) Customizing WooCommerce functionality often requires adding code snippets to modify behavior, enhance features, or integrate with third-party tools. Instead of editing theme files or the `functions.ph... [Add a country](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/add-a-country.md) Add a country using to your countries list using this code snippet: [Add currencies and symbols](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/add-a-currency-symbol.md) Add custom currencies to your currencies list: [Add or modify states](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/add-or-modify-states.md) Add your own or modify shipping states in WooCommerce. [Adjust the quantity input values](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/adjust-quantity-input-values.md) Set the starting value, maximum value, minimum value, and increment amount for quantity input fields on product pages. [Add a message above the login / register form](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/before-login--register-form.md) This code will add a custom message above the login/register form on the user's my-account page. [Change a currency symbol](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/change-a-currency-symbol.md) In WooCommerce, each currency is associated with a code and a symbol. For example, the Australian dollar has the code `AUD` and the symbol `$` (if you are interested, you can see a full list of codes ... [Check if a Payment Method Support Refunds, Subscriptions or Pre-orders](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/check_payment_method_support.md) If a payment method's documentation doesn’t clearly outline the supported features, you can often find what features are supported by looking at payment methods code. [Code snippets for configuring special tax scenarios](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/configuring_special_tax_scenarios.md) If a store enters product prices including taxes, but levies various location-based tax rates, the prices will appear to change depending on which tax rate is applied. In reality, the base price remai... [Customizing checkout fields using actions and filters](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/customising-checkout-fields.md) If you are unfamiliar with code and resolving potential conflicts, we have an extension that can help: [WooCommerce Checkout Field Editor](https://woocommerce.com/products/woocommerce-checkout-field-e... [Disabling Marketplace Suggestions Programmatically](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/disabling_marketplace_suggestions_programmatically.md) For those who prefer to programmatically disable marketplace suggestions that are fetched from woocommerce.com, add the `woocommerce_allow_marketplace_suggestions` filter to your theme’s `functions.ph... [Displaying custom fields in your theme or site](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/displaying_custom_fields_in_your_theme_or_site.md) You can use the metadata from custom fields you add to your products to display the added information within your theme or site. [Free Shipping Customizations](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/free_shipping_customization.md) By default, WooCommerce shows all shipping methods that match the customer and the cart contents. This means Free Shipping also shows along with Flat Rate and other Shipping Methods. [Advanced settings and customization for legacy Local Pickup](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/legacy_local_pickup_advacned_settings_and_customization.md) Local Pickup calculates taxes based on your store's location (address) by default, and not the customer's address. Add this snippet at the end of your theme's `functions.php` to use your standard tax ... [Add link to logged data](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/link-to-logged-data.md) [Logging](/docs/best-practices/data-management/logging) is a crucial part of any WooCommerce extension. It helps you track errors and debug issues. A common pattern is to have a setting in your extens... [Making your translation upgrade safe](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/making_translations_upgrade_safe.md) Like all other plugins, WooCommerce keeps translations in `wp-content/languages/plugins`. [Change number of related products displayed](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/number-of-products-per-row.md) Add code to your child theme's functions.php file or via a plugin that allows custom functions to be added, such as the [Code snippets](https://wordpress.org/plugins/code-snippets/) plugin. Avoid addi... [Override loop template and show quantities next to add to cart buttons](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/override-loop-template-show-quantities-next-add-cart.md) Add this code to your child theme’s `functions.php` file or via a plugin that allows custom functions to be added, such as the [Code Snippets](https://wordpress.org/plugins/code-snippets/) plugin. Avo... [Rename a country](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/rename-a-country.md) Rename a country in your countries list: [SSL and HTTPS and WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/ssl_and_https_and_woocommerce_websites_behind_load_balanacers_or_reverse_proxies.md) WooCommerce uses the `is_ssl()` WordPress function to verify if your website using SSL or not. [Unhook and remove WooCommerce emails](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/unhook--remove-woocommerce-emails.md) This code allows you to unhook and remove the default WooCommerce emails. [Uninstall and remove all WooCommerce Data](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/uninstall_remove_all_woocommerce_data.md) The WooCommerce plugin can be uninstalled like any other WordPress plugin. By default, the WooCommerce data is left in place though. [Useful core functions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/useful-functions.md) WooCommerce core functions are available on both front-end and admin. They can be found in `includes/wc-core-functions.php` and can be used by themes in plugins. [Using NGINX server to protect your upload directory](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/code-snippets/using_nginx_server_to_protect_your_uploads_directory.md) If you using NGINX server for your site along with **X-Accel-Redirect/X-Sendfile** or **Force Downloads** download method, it is necessary that you add this configuration for better security: [CSS SASS coding guidelines and naming conventions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/CSS-SASS-coding-guidelines-and-naming-conventions.md) Our guidelines are based on those used in [Calypso](https://github.com/Automattic/wp-calypso) which itself follows the BEM methodology. Refer to [this doc](https://wpcalypso.wordpress.com/devdocs/docs... [Contribute to Woo](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/README.md) Interested in joining the Woo contributor community? The links in this doc summarize and direct you to the order of operations you will need to make your first contribution. If you are a seasoned WooC... [Critical flows within the WooCommerce Core API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/api-critical-flows.md) In our documentation, we've pinpointed the essential user flows within the WooCommerce Core API. These flows serve as [Common issues](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/common-issues.md) This page aims to document a comprehensive list of known issues, commonly encountered problems, and their solutions or workarounds. If you have encountered an issue that is not mentioned here and shou... [How to assess the impact of a pull request](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/deciding-pr-high-impact.md) Deciding if a Pull Request should be declared High-Impact is a complex task. To achieve it, we need to assess and estimate the impact that the changes introduced in the Pull Request have in WooCommerc... [Deprecation in core](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/deprecation-in-core.md) Deprecation is a method of discouraging usage of a feature or practice in favour of something else without breaking backwards compatibility or totally prohibiting its usage. To quote the Wikipedia art... [Handling SCSS and JS minification in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/minification-of-SCSS-and-JS.md) When updating SCSS files in the WooCommerce project, please **commit only your changes to unminified SCSS files**. The minification will be handled as part of the release process. [Naming conventions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/naming-conventions.md) WooCommerce core generally follows [WordPress PHP naming conventions](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#naming-conventions). On top of that, function, class... [Reporting security issues](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/reporting-security-issues.md) WooCommerce cares deeply about security and works hard to keep our merchants and their customers safe. [String localization guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/string-localisation-guidelines.md) 1. Use `woocommerce` textdomain in all strings. [WooCommerce Git flow](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing/woocommerce-git-flow.md) For core development, we use the following structure and flow. [Contributing technical documentation](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing-docs/contributing-docs.md) Thanks for helping improve WooCommerce's developer documentation. Our docs are powered by Docusaurus, and live inside the [`woocommerce/docs/`](https://github.com/woocommerce/woocommerce/tree/trunk/do... [Technical Documentation Style Guide](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/contributing-docs/style-guide.md) This style guide is intended to provide guidelines for creating effective and user-friendly tutorials and how-to guides for WooCommerce technical documentation that will live in repo and be editable a... [Releasing WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/releases/README.md) The WooCommerce release process is managed by a rotating release lead. The documentation below outlines the process for managing releases. [Backporting in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/releases/backporting.md) Backporting is the process of applying a change from `trunk` to an open release branch. When a release branch is created, it is copied from the `trunk` branch at the time of code freeze. Changes are... [WooCommerce Release Candidates](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/releases/rc.md) Release candidates are pre-release WooCommerce versions made available for testing by plugin authors and users. [WooCommerce Release Schedule](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/releases/schedule.md) The schedule can be found on [this page](https://developer.woocommerce.com/release-calendar/), which also explains the types [Testing](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/testing/README.md) Properly setting up your test environment and writing tests when contributing to WooCommerce core are essential parts of our development pipeline. The links below are also included in our [Contributin... [Beta Testing](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/testing/beta-testing.md) Beta testing is vital to ensuring our releases are as bug free as possible and to ensure we hear user feedback before putting changes live. Anyone can beta test; shop owners, plugin developers, theme ... [WooCommerce core critical flows](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/testing/core-critical-flows.md) We have identified what we consider to be our most critical user flows within WooCommerce Core. These flows will help us focus and prioritize our testing efforts. They will also help us consider the i... [Writing high quality testing instructions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/contribution/testing/writing-high-quality-testing-instructions.md) Having clear testing Instructions on pull requests is the first level of quality engineering in WooCommerce, which is key for testing early and minimizing the impact of unexpected effects in the upcom... [Accessibility Best Practices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/accessibility.md) In many places around the world, ecommerce stores are required to be accessible to people with disabilities. As a WooCommerce extension developer, your code directly impacts the accessibility of the s... [Compatibility and interoperability for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/compatibility.md) Ensuring your WooCommerce extension is compatible and interoperable with the core platform, various components, and other extensions is fundamental to providing a seamless experience for users. This d... [WooCommerce extension development best practices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/extension-development-best-practices.md) Want to create a plugin to extend WooCommerce? You're in the right place. [GDPR compliance guidelines for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/gdpr-compliance.md) The General Data Protection Regulation (GDPR) is in effect, granting EU residents increased rights over their personal data. Developers must ensure that WooCommerce extensions are compliant with these... [Privacy Standards for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/privacy-standards.md) Privacy and data protection are becoming increasingly important online, and WooCommerce extensions are no exception. This document outlines the key markers of quality regarding privacy for WooCommerce... [Support and documentation for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/best-practices-extensions/support-and-documentation.md) Effective support and comprehensive documentation are fundamental to the success of any WooCommerce extension. They not only enhance the user experience but also facilitate easier maintenance and deve... [Core concepts](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/README.md) This section covers the fundamental principles, best practices, and essential knowledge you need to develop robust, maintainable WooCommerce extensions. [How to add actions and filters](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/adding-actions-and-filters.md) Like many WordPress plugins, WooCommerce provides a range of actions and filters through which developers can extend and modify the platform. [Formatting for Changelog.txt](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/changelog-txt.md) WooCommerce extensions use a standard changelog format. Your `changelog.txt` file should look like this: [How to check if WooCommerce is active](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/check-if-woo-is-active.md) When developing for WooCommerce, ensuring that WooCommerce is installed and active before your code runs is crucial. This prevents errors related to missing WooCommerce functions or classes. [Classes in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/class-reference.md) For a list of Classes in WooCommerce, please see the [WooCommerce Code Reference](https://woocommerce.github.io/code-reference/packages/WooCommerce-Classes.html). [Example WordPress plugin header comment for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/example-header-plugin-comment.md) This is a WordPress plugin header comment. It's used to provide WordPress with metadata about a plugin. [Managing extension deactivation and uninstallation](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/handling-deactivation-and-uninstallation.md) There are a number of cleanup tasks you'll need to handle when a merchant deactivates or uninstalls your extension. This guide provides a brief overview of WooCommerce-specific items you'll want to ma... [Maintaining and updating WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/maintainability.md) Maintaining and updating WooCommerce extensions is crucial for ensuring they remain compatible, secure, and functional within the ever-evolving WordPress ecosystem. This document outlines best practic... [WooCommerce Plugin API callbacks](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/core-concepts/woocommerce-plugin-api-callback.md) This document provides a guide on how to use the WooCommerce Plugin API to initiate callbacks for plugin actions, especially for gateways and classes not initialized by default. [How to add custom product types to Add Products onboarding list](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/extension-onboarding/adding-custom-products-to-add-products-onboarding-list.md) WooCommerce allows developers to extend the product type onboarding list, offering a more customizable and engaging experience during the Add Products onboarding task. This tutorial will guide you thr... [How to create custom product tours](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/extension-onboarding/creating-custom-product-tours.md) WooCommerce allows developers to extend or replace the product tour, offering a more customizable and engaging experience during product creation. This tutorial will guide you through adding a custom ... [How to implement merchant onboarding](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/extension-onboarding/handling-merchant-onboarding.md) Onboarding is a critical part of the merchant's user experience. It helps set them up for success and ensures they're not only using your extension correctly but also getting the most out of it. There... [Integrating with coming soon mode](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/extension-onboarding/integrating-coming-soon-mode.md) This guide provides examples for third-party developers and hosting providers on how to integrate their systems with WooCommerce's coming soon mode. For more details, please read the [developer blog p... [Get started building extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/getting-started-extensions/README.md) This section provides guides and resources for building, testing, and distributing WooCommerce extensions. [How to build your first extension](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/getting-started-extensions/building-your-first-extension.md) This guide will teach you how to use [create-woo-extension](https://www.npmjs.com/package/@woocommerce/create-woo-extension) to scaffold a WooCommerce extension. There are various benefits to using cr... [How to design a simple extension](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/getting-started-extensions/how-to-design-a-simple-extension.md) Building a WooCommerce extension that provides a first-class experience for merchants and shoppers requires a hybrid development approach combining PHP and modern JavaScript. The PHP handles the lifec... [How to add a section to a settings tab](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/adding-a-section-to-a-settings-tab.md) When you're building an extension for WooCommerce that requires settings of some kind, it's important to ask yourself: **Where do they belong?** If your extension just has a couple of simple setting... [How to add store management links](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/how-to-add-your-own-store-management-links.md) In the new and improved WooCommerce home screen, there are two points of extensibility for plugin developers that have recently had some attention. The first is the setup task list, allowing you to re... [Creating custom settings for WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/implementing-settings.md) If you're customizing WooCommerce or adding your own functionality to it you'll probably need a settings page of some sort. One of the easiest ways to create a settings page is by taking advantage of ... [Settings API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/settings-api.md) The WooCommerce Settings API is used by extensions to display, save, and load settings. The best way to make use of the API in your extension is to create a class that extends the `WC_Settings_API` cl... [Managing custom attributes in WooCommerce menus and taxonomy archives](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/using-custom-attributes-in-menus.md) Attributes that can be used for the layered nav are a custom taxonomy, which means you can display them in menus, or display products by attributes. This requires some work on your part, and archives ... [Integrating admin pages into WooCommerce extensions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/settings-and-config/working-with-woocommerce-admin-pages.md) There are a number of ways to manage admin-area pages for your WooCommerce extension. You can use existing PHP pages or create new React-powered pages. Regardless of the approach you choose, you'll ne... [Extension Guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/README.md) This section covers general guidelines, and best practices to follow in order to ensure your product experience aligns with WooCommerce for ease of use, seamless integration, and strong adoption. [Accessibility](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/accessibility.md) Your extensions must meet the [WordPress Accessibility Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/accessibility/) [Best Practices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/best-practices.md) - **Plugin name should simply state the feature of the plugin and not use an existing core feature or extension in its' title**. The plugin name should appear at all times in the UI as a functional an... [Colors](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/colors.md) When creating extensions for the WordPress wp-admin, use the core colors, respect the user's WordPress admin color scheme selection, and ensure your designs pass AA level guidelines. [Navigation](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/navigation.md) **Menu Structure.** Place your product navigation elements within the existing WooCommerce taxonomy. [Notices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/notices.md) Use notices primarily to provide user feedback in response to an action. Avoid using notices to communicate offers or announcements. Don't apply brand colors, fonts, or illustrations to your notices. [Onboarding](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/onboarding.md) The first experience your users have with your extension is crucial. A user activating your extension for the first time provides an opportunity to onboard new and reorient returning users the right w... [Settings](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/settings.md) **Make extension settings easy to understand.** Only include settings options that are crucial to the overall functionality of the product. [Task List and Inbox](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/task-list-and-inbox.md) Plugins should choose between implementing a Task or Inbox note based on the following guidelines. Avoid implementing both Task and Inbox note for the same message, which adds clutter and reduces the ... [Testing](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/extensions/ux-guidelines-extensions/testing.md) Users must be able to perform all actions of the functionality provided. This can be achieved by running user tests. [How to add columns to analytics reports and CSV downloads](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/analytics/adding-columns-to-analytics-reports-and-csv-downloads.md) Adding columns to analytics reports are a really interesting way to add functionality to WooCommerce. New data can be consumed in the table view of the user interface and in your user's favourite spre... [How to extend WooCommerce analytics reports](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/analytics/extending-woocommerce-admin-reports.md) This document serves as a guide to extending WC-Admin Reports with a basic UI dropdown, added query parameters, and modification of SQL queries and resulting report data. This example will create a cu... [Email HTML - Best Practices](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/email/email-html-best-practices.md) [Email Preview Integration](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/email/email-preview.md) [High Performance Order Storage (HPOS)](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/README.md) WooCommerce has traditionally stored store orders and related order information (like refunds) as custom WordPress post types or post meta records. This comes with performance issues. [HPOS CLI Tools](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/cli-tools.md) We have a number of [WP-CLI commands](https://developer.woocommerce.com/docs/category/wc-cli/) that can be used to manage HPOS-related functionality, all of which live under the `wp wc hpos` namespace... [How to enable High Performance Order Storage](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/enable-hpos.md) From WooCommerce 8.2, released on October 2023, HPOS is enabled by default for new installations. Existing stores can switch to the "High-Performance Order Storage" from "WordPress Posts Storage" by f... [A large store's guide to enable HPOS on WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/guide-large-store.md) Do you run a high-volume WooCommerce store? Are you about to embark on the task to enable High Performance Order Storage (HPOS) on said store? As we move more and more high-volume store to HPOS, we de... [HPOS extension recipe book](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/recipe-book.md) Up until recently, WooCommerce stored order-related data in the post and postmeta tables in the database as a custom WordPress post type, which allowed everyone working in the ecosystem to take advant... [HPOS order querying APIs](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/high-performance-order-storage/wc-order-query-improvements.md) With the introduction of HPOS, we've enhanced the querying functionality in WC. Now, in addition to the well-known [existing APIs](https://github.com/woocommerce/woocommerce/wiki/wc_get_orders-and-WC_... [WooCommerce Payment Gateway API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/payments/payment-gateway-api.md) Payment gateways in WooCommerce are class based and can be added through traditional plugins. This guide provides an intro to gateway development. [WooCommerce payment gateway plugin base](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/payments/payment-gateway-plugin-base.md) This code can be used as a base to create your own simple custom payment gateway for WooCommerce. If not used in a custom plugin, you need to add this code to your child theme's functions.php file or ... [WooCommerce Payment Token API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/payments/payment-token-api.md) WooCommerce 2.6 introduced an API for storing and managing payment tokens for gateways. Users can also manage these tokens from their account settings and choose from saved payment tokens on checkout. [Shipping method API](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/features/shipping/shipping-method-api.md) WooCommerce has a Shipping Method API which plugins can use to add their own rates. This article will take you through the steps to creating a new shipping method based on the core Flat Rate method th... [Getting started](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/README.md) WooCommerce is a customizable, open-source eCommerce platform built on WordPress. It empowers businesses worldwide to sell anything from physical products and digital downloads to subscriptions, conte... [AI](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/ai.md) This guide provides an overview of AI tools and how to use them to enhance your WooCommerce development workflows. [Resources for debugging](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/debugging.md) A good place to start is usually the debugging tools built into WordPress itself: [Developer tools](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/developer-tools.md) This guide provides an overview of essential tools and libraries for WooCommerce development. It's intended for developers looking to enhance their WooCommerce projects efficiently. [Setting up your development environment](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/development-environment.md) There are some specific software requirements you will need to consider when developing WooCommerce extensions. The necessary software includes: [Project Structure](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/project-structure.md) WooCommerce adheres to WordPress code standards and guidelines, so it's best to familiarize yourself with [WordPress Development](https://learn.wordpress.org/tutorial/introduction-to-wordpress/) as we... [Scaffolding and sample store data](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/scaffolding.md) WooCommerce offers a number of starter kits and scaffolds depending on what you are building. [Tools for low-code development](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/tools-for-low-code-development.md) This guide provides an introduction to low-code solutions, such as Gutenberg and WooCommerce Store Editing, as well as other page builders and pre-built components for creating WooCommerce stores with... [Version control and deployment](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/getting-started/version-control-deployment.md) Because WordPress and WooCommerce are both developer frameworks *and* content management systems, it’s important to plan ahead for how you will version control your code and deploy changes to a live e... [Cart and checkout blocks theming](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/block-theme-development/cart-and-checkout.md) > [!IMPORTANT] [CSS styling for themes](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/block-theme-development/css-styling.md) > [!IMPORTANT] [Theming for Woo blocks](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/block-theme-development/theming-woo-blocks.md) --- [Classic theme development handbook](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/classic-theme-developer-handbook.md) --- [Conditional tags in WooCommerce](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/conditional-tags.md) The conditional tags of WooCommerce and WordPress can be used in your template files to change what content is displayed based on what *conditions* the page matches. For example, you may want to displ... [How to fix outdated WooCommerce templates](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/fixing-outdated-woocommerce-templates.md) We sometimes update the default templates when a new version of WooCommerce is released. This applies to major releases (WooCommerce 2.6, 3.0, and 4.0) but also to minor releases (WooCommerce 3.8.0). [Image sizing for theme developers](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/image-sizes.md) **Note:** this document was created for use when developing classic themes (as opposed to block themes). Check this other document for [block theme development](../block-theme-development/theming-woo-... [How to set up and use a child theme](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/set-up-a-child-theme.md) **Note:** This document is intended for creating and using classic child themes. For a comprehensive guide on creating a child block theme and understanding the differences between a classic and block... [Template structure & Overriding templates via a theme](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/template-structure.md) --- [Theme design and user experience guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/theme-design-ux-guidelines.md) This guide covers general guidelines and best practices to follow in order to ensure your theme experience aligns with ecommerce industry standards and WooCommerce for providing a great online shoppin... [Thumbnail image regeneration](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/theming/theme-development/thumbnail-image-regeneration.md) WooCommerce 3.3 introduced thumbnail regeneration functionality. In the past when image size settings were changed you would need to install an external plugin and then have it regenerate all WordPres... [Payments Guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-payments/README.md) When building payments extensions, you should ensure you follow the [WooCommerce Extension Guidelines](https://developer.woocommerce.com/docs/category/extension-guidelines/). [Payment Button Layout](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-payments/payment-button-layout.md) Define the position and alignment of buttons in relationship to their container, with equal hierarchy and consistent spacing between buttons. [Payment Button Size and Anatomy](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-payments/payment-button-size.md) Payment buttons must be consistent in visual appearance to other buttons in the shopper experience. [Payment Button Style](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-payments/payment-button-style.md) Use the appropriate button style depending on the site theme. [Payments Onboarding and Setup](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-payments/payments-onboarding.md) Plugin authors should actively guide merchants through setup of the plugin once installed and activated. [Product Editor guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/README.md) Our research shows that merchants think in terms of tasks and goals while creating new products in Woo. For example, adding or editing a product price is a separate task from uploading images or manag... [Example Use-Cases](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-examples.md) Depending on the type of your extension (and your use case), you can pick the interface location that best suits how users will interact with it. [Custom Product Types](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-custom-product-types.md) Custom product types allow you to design a custom form and completely control its structure. They are convenient for extensions that enable merchants to create products from start to finish. [Dialogue Extensions (future feature)](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-dialogue-extensions.md) Dialog extensions differ from other extensions as they are unrelated to any section or functionality within the product form. They can connect to third-party systems or come with complex interfaces th... [Fields](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-fields.md) Fields are the simplest type of extension. They let users add extra product information, replace or manage the visibility of other fields assigned to a specific product type, and control the contents ... [Groups](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-groups.md) The new product form consists of groups currently displayed as tabs. Each is a separate view and may contain any number of sections and subsections. All areas serve a specific purpose, allowing mercha... [Sections](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-sections.md) Sections are significant parts of the form that may consist of multiple subsections and fields. They should be used sparsely throughout the form, so merchants are not overwhelmed with options while fi... [Subsections](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-subsections.md) Subsections add extra fields to existing form groups. They are small forms with a low to medium level of complexity. This interface location works best for extensions that add extra features that buil... [Top Bar Extensions (future feature)](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-product-editor/product-editor-form-top-bar.md) Top bar extensions offer supplementary experiences **not vital** to the critical product creation flows. They're secondary, meaning that they shouldn't contain information that may impact the product'... [Theme Design guidelines](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/README.md) This section covers general guidelines and best practices to follow in order to ensure your theme experience aligns with ecommerce industry standards and WooCommerce for providing a great online shopp... [Accessibility](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/theme-accessibility.md) Your theme must meet the [WordPress Accessibility Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/accessibility/) [Branding](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/theme-branding.md) The theme must not contain any branding or references to theme authors in locations that interfere with the normal operation of an online store. Theme authors can include links to their websites on th... [Customization](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/theme-customization.md) > This page of the guidelines applies to development of non-block themes only. For more specific guidance on development of block themes, refer to the [WordPress Developer's Guide to Block Themes](htt... [Demos and Sample Content](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/theme-demos-and-sample-content.md) Upon submission theme authors must provide a way for the theme to be showcased and tested. The sample content/demo should refrain from using custom graphics/assets that will not be present in the deli... [Branding](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/user-experience-guidelines/ux-guidelines-themes/theme-design.md) High-quality design is an important aspect of an online store, and that is driven by the theme design and content. The design of the theme should be simple, consistent, uncluttered, memorable, intuiti... [WooCommerce CLI Frequently Asked Questions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/wc-cli/cli-faq.md) - WooCommerce CLI (WC-CLI) is a command-line interface for managing WooCommerce settings and data. It provides a fast and efficient way to perform many tasks that would otherwise require manual work v... [WooCommerce CLI Overview](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/wc-cli/cli-overview.md) WooCommerce CLI (WC-CLI) offers an efficient way to manage WooCommerce (WC) stores via the command line. This tool is a part of WC from version 3.0.0 onwards and leverages the capabilities of the WC R... [How to Use WooCommerce CLI](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/wc-cli/using-wc-cli.md) This guide aims to assist beginners in using WooCommerce CLI (WC-CLI) for managing WooCommerce stores via the command line. [WooCommerce CLI Commands](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/wc-cli/wc-cli-commands.md) This document serves as a comprehensive reference for the WooCommerce Command Line Interface (WC-CLI) commands. It includes syntax, options, and brief descriptions for each command. These commands are... [WooCommerce CLI Examples](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/docs/wc-cli/wc-cli-examples.md) Full documentation for every command is available using `--help`. Below are some example commands to show what the CLI can do.