
How to Get Product Information from WooCommerce Product Object

Photo by Rubaitul Azad
As a WooCommerce development freelancer, you probably repeat many time-consuming tasks every day. One common question is: “How do I get ____ if I have the $product variable/object?”
Don’t worry! Mangcoding is here to share how to get product information from a WooCommerce product object. Curious to learn how? Let’s keep reading!
For example: “How can we get the product SKU?”
Or “How can we get the short description?”
Or maybe stock quantity, shipping class, tax class, price, regular price, sale price, and so on… Hopefully, this article saves your time.
Of course, you won’t always have direct access to the $product variable (like when using WooCommerce hooks), so it’s important to understand your specific case and figure out if you can get the $product object from somewhere else.
For instance, maybe you have the $product_id. In that case, you’ll need a way to get the $product object from the $product_id, which we’ll cover below.
Other cases might include working with orders or cart pages. Again, `$product` may not be directly available, so you’ll have to loop through the order/cart items and retrieve it from there.
Hooks like (do_action and
apply_filters) often pass the “$produc” object into your function. Alternatively, you can declare “global $product” within your function.
In these cases, here’s how to get all the product information you need:
// 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();
If you have access to the product ID (again, usually do_action or apply_filters will allow you to do so), you must first retrieve the product object. Then, you can do exactly 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.
How do you get product information within an Order? In this case, you need to loop through all the items in the order and then apply the rules mentioned above.
// 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.
}
If you want to learn more articles and expand your knowledge about How to get order information from WooCommerce Order Object
How to get product information in the Cart? In this case, once again, you need to loop through all the items in the cart and then apply the rules above.
// 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.
}
Sometimes (like in the backend), you only have access to $post. Here’s how to get the product:
// 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.
That’s the guide Mangcoding can share!
Hopefully, this article is useful and gives you new insights.
If you have feedback or suggestions, feel free to leave a comment or contact Mangcoding via Email or social media.
Source: How to Get Product Information from WooCommerce Product Object