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?
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 '_ ...
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
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With