# Classes in WooCommerce ## [List of Classes in WooCommerce](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-1) For a list of Classes in WooCommerce, please see the [WooCommerce Code Reference](https://woocommerce.github.io/code-reference/packages/WooCommerce-Classes.html). ## [Common Classes](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-2) ### [WooCommerce](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-3) The main class is `woocommerce` which is available globally via the `$woocommerce` variable. This handles the main functions of WooCommerce and init’s other classes, stores site-wide variables, and handles error/success messages. The woocommerce class initializes the following classes when constructed: - `WC_Query` – stored in `$woocommerce->query` - `WC_Customer` – stored in `$woocommerce->customer` - `WC_Shipping` – stored in `$woocommerce->shipping` - `WC_Payment_Gateways` – stored in `$woocommerce->payment_gateways` - `WC_Countries` – stored in `$woocommerce->countries` Other classes are auto-loaded on demand. View the [WooCommerce Class Code Reference](https://woocommerce.github.io/code-reference/classes/WooCommerce.html) for a full list of methods contained in this class. ### [WC_Product](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-4) WooCommerce has several product classes responsible for loading and outputting product data. This can be loaded through PHP using: `$product = wc_get_product( $post->ID );` In the loop this is not always necessary since calling `the_post()` will automatically populate the global `$product` variable if the post is a product. View the [WC_Product Code Reference](https://woocommerce.github.io/code-reference/classes/WC-Product.html) for a full list of methods contained in this class. ### [WC_Customer](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-5) The customer class allows you to get data about the current customer, for example: ```php global $woocommerce; $customer_country = $woocommerce->customer->get_country(); ``` View the [WC_Customer Code Reference](https://woocommerce.github.io/code-reference/classes/WC-Customer.html) for a full list of methods contained in this class. ### [WC_Cart](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/class-reference#section-6) The cart class loads and stores the users cart data in a session. For example, to get the cart subtotal you could use: ```php global $woocommerce; $cart_subtotal = $woocommerce->cart->get_cart_subtotal(); ``` View the [WC_Cart Code Reference](https://woocommerce.github.io/code-reference/classes/WC-Cart.html) for a full list of methods contained in this class.