Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if product has a specific product attribute in Woocommerce

I would like to identify if a product has an attribute or not. For example:

if (product has attribute 'pa_color')
{
    //do something
}

How can I accomplish this?

like image 202
Vpant Avatar asked Apr 07 '18 21:04

Vpant


People also ask

Where are WooCommerce product attributes stored?

Product attributes are stored in two locations - in wp_terms, wp_term_taxonomy and wp_term_relationships (that's the first place - each attribute is preceded by pa_ for its taxonomy name - e.g. if you have a color attribute, it's under pa_color) then also as a PHP serialized array in wp_postmeta under '_ ...


1 Answers

You simply can use the WC_Product method get_attribute() this way:

// (If needed) Get an instance of the WC_Product Object from the product ID
$product = wc_get_product( $product_id );

// Get the product attribute value(s)
$color = $product->get_attribute('pa_color');

// if product has attribute 'pa_color' value(s)
if( ! empty( $color ) ){
    // do something
} else {
    // No product attribute is set for this product
}
like image 125
LoicTheAztec Avatar answered Sep 28 '22 08:09

LoicTheAztec