Woocommerce Product Attribute Hooks
In this post you will learn how to get the product sku, description, short description, regular price, shipping class and so on. You will not always have access to the $product variable, so in this tutorial you will see different ways to get your product information, even without the $product variable.
Using the $product variable
With hooks (e.g. do_action and apply_filters), additional arguments are passed to the function. You are allowed to use the $product object or you can declare the global $product inside your function.
// Get Product ID $product->get_id(); // Get Product General Info $product->get_type(); $product->get_name(); $product->get_slug(); $product->get_date_created(); $product->get_date_modified(); $product->get_status(); $product->get_featured(); $product->get_catalog_visibility(); $product->get_description(); $product->get_short_description(); $product->get_sku(); $product->get_menu_order(); $product->get_virtual(); get_permalink( $product->get_id() ); // Get Product Prices $product->get_price(); $product->get_regular_price(); $product->get_sale_price(); $product->get_date_on_sale_from(); $product->get_date_on_sale_to(); $product->get_total_sales(); // Get Product Tax, Shipping & Stock $product->get_tax_status(); $product->get_tax_class(); $product->get_manage_stock(); $product->get_stock_quantity(); $product->get_stock_status(); $product->get_backorders(); $product->get_sold_individually(); $product->get_purchase_note(); $product->get_shipping_class_id(); // Get Product Dimensions $product->get_weight(); $product->get_length(); $product->get_width(); $product->get_height(); $product->get_dimensions(); // Get Linked Products $product->get_upsell_ids(); $product->get_cross_sell_ids(); $product->get_parent_id(); // Get Product Variations and Attributes $product->get_children(); // get variations $product->get_attributes(); $product->get_default_attributes(); $product->get_attribute( 'attributeid' ); //get specific attribute value // Get Product Taxonomies $product->get_categories(); $product->get_category_ids(); $product->get_tag_ids(); // Get Product Downloads $product->get_downloads(); $product->get_download_expiry(); $product->get_downloadable(); $product->get_download_limit(); // Get Product Images $product->get_image_id(); $product->get_image(); $product->get_gallery_image_ids(); // Get Product Reviews $product->get_reviews_allowed(); $product->get_rating_counts(); $product->get_average_rating(); $product->get_review_count();
Using the $product_id variable
If you have access to the object $product_id (as mentioned above, this is made possible using the hooks do_action or apply_filters), you must first determine the product object. Then you have to do the same as above:
// Get $product object from product ID $product = wc_get_product( $product_id ); // Now you have access to (see above)... $product->get_type(); $product->get_name(); // etc. // etc.
Using the Order object or Order ID
To get the information inside an order, you need to loop through all the items in the order and then calculate and get the information needed from the $product object.
// Get $product object from $order / $order_id $order = wc_get_order( $order_id ); $items = $order->get_items(); foreach ( $items as $item ) { $product = $item->get_product(); // Now you have access to (see above)... $product->get_type(); $product->get_name(); // etc. // etc. }
Using the Cart object
If you need the information inside the cart, you will need to do it similarly to the information inside the order, using a loop.
// Get $product object from Cart object $cart = WC()->cart->get_cart(); foreach( $cart as $cart_item_key => $cart_item ){ $product = $cart_item['data']; // Now you have access to (see above)... $product->get_type(); $product->get_name(); // etc. // etc. }
Using the $post object
In some cases you only have access to the $post object. Here you can see how to get the information of the $product object with the $post object:
// Get $product object from $post object $product = wc_get_product( $post ); // Now you have access to (see above)... $product->get_type(); $product->get_name(); // etc. // etc.
Conclusion
As you have seen, it is easy to get the information from a Woocommerce Product even if you do not have direct access to the $product object. Hopefully this post about Woocommerce Product Attribute Hooks was helpful. You can read more Arrow Design posts here:
Read another Woocommerce post : ‘Continue Shopping From Cart Woocommerce Functionality‘
Arrow Design, based in Dublin, Ireland, provides quality website design services in Dublin and beyond at affordable prices. If you would like help with implementing the above code, or any wordpress website development project, contact us. We love website design and it shows! We provide custom wordpress plugin development, website design training and lots more.
We do it all, so you don’t have to!
Related Posts
Woocommerce Account Page Hook Guide
In this article you will find a visual hook guide for the Woocommerce Account Pages, like the Login/Register page, the Downloads page or the Orders page.
Woocommerce Single Product Page Hook Guide
In this article you will find a visual hook guide for the Woocommerce Single Product Page. This should help you to quickly and easily find the hook positions on the page.
Woocommerce PHP – Product Categories by Product ID
In this tutorial you will learn how to check if a product is assigned to a tag, a category or a custom taxonomy. You can check if a product is is on the shop page, in the cart, in an order & more.
…We do more, so you can do less 🙂