How to check if woocommerce is activated in theme
if ( class_exists( 'WooCommerce' ) ) { // code that requires WooCommerce } else { // you don't appear to have WooCommerce activated }
How to get woocommerce products using a query
$args = array( 'post_type' => 'product', // get only products 'posts_per_page' => -1, // get all products 'product_cat' => 'book', // get only products that have the book category slug ); query_posts($args); while (have_posts()) : the_post(); global $product; echo $product->get_sku(); echo get_the_ID(); endwhile;
How to get product categories
See get_terms() for values accepted for $args. To change the order of the categories, just go to Admin / Products / Categories and reorder them using the drag-and-drop functionality.
$args = array( 'taxonomy' => 'product_cat', 'hide_empty' => 0 ); $product_categories = get_categories($args); foreach ($product_categories as $cat) { echo $cat->name; // get category name echo get_term_link( $cat ); // get category url $thumbnail_id = get_woocommerce_term_meta($cat->term_id, 'thumbnail_id', true); $image = wp_get_attachment_url($thumbnail_id); if ($image) { echo '<img src="' . $image . '" alt="" />'; // get category thumbnail } }
How to get a product category link by ID
get_term_link( $woo_cat_id, 'product_cat' );
How to get a product’s attribute by ID
$product = new WC_Product( get_the_ID() ); $price = $product->price;
How to get a product by it’s ID
$product = get_product($product_id); $product_title = $product->post->post_title;
single-product.php
How to get the short description
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
How to get the product’s category ID by product ID
$term_list = wp_get_post_terms($product->id,'product_cat',array('fields'=>'ids')); $cat_id = (int)$term_list[0];
How to get the product’s attributes
Returns the product’s attributes’ names.
$attributes = $product->get_attributes();
How to get the product’s available variations
// we need to check that the product is variable, or else it will throw an error if ($product->product_type == 'variable') { $variations = $product->get_available_variations(); foreach ($variations as $variation => $value) { echo $value['variation_id']; } }
archive-product.php
The loop
while (have_posts()) : the_post(); global $product; // use your functions here endwhile;
How to get the product type
echo $product->product_type;
How to get the price in html format
echo $product->get_price_html();
How to check if a product is out of stock
if (!$product->is_in_stock()) { // out of stock }
Cart functions
add_action( 'woocommerce_checkout_process', 'cart_functions' ); add_action( 'woocommerce_before_cart' , 'cart_functions' ); function cart_functions(){ echo WC()->cart->get_cart_total(); // echoes cart subtotal (without shipping costs or vat) as a string with price format, eg. 20€ echo WC()->cart->cart_contents_total; // echoes cart subtotal (without shipping costs or vat) as a float number echo WC()->cart->tax_total; // echoes cart taxes as a float number echo WC()->cart->total; // echoes cart total as a float number }
Javascript functions for archive products
jQuery( '.single_variation_wrap' ).each(function(){
jQuery(this).on( 'show_variation', function( event, variation ) {
console.log( variation );
//jQuery(this).find
});
})
Javascript functions for single product
jQuery( '.single_variation_wrap' ).on( 'show_variation', function( event, variation ) {
console.log( variation );
})