WC_Product_Data_Store_CPT::read_attributes( WC_Product $product )
Read attributes from post meta.
Description Description
Parameters Parameters
- $product
-
(Required) Product object.
Source Source
File: includes/data-stores/class-wc-product-data-store-cpt.php
protected function read_attributes( &$product ) { $meta_attributes = get_post_meta( $product->get_id(), '_product_attributes', true ); if ( ! empty( $meta_attributes ) && is_array( $meta_attributes ) ) { $attributes = array(); foreach ( $meta_attributes as $meta_attribute_key => $meta_attribute_value ) { $meta_value = array_merge( array( 'name' => '', 'value' => '', 'position' => 0, 'is_visible' => 0, 'is_variation' => 0, 'is_taxonomy' => 0, ), (array) $meta_attribute_value ); // Check if is a taxonomy attribute. if ( ! empty( $meta_value['is_taxonomy'] ) ) { if ( ! taxonomy_exists( $meta_value['name'] ) ) { continue; } $id = wc_attribute_taxonomy_id_by_name( $meta_value['name'] ); $options = wc_get_object_terms( $product->get_id(), $meta_value['name'], 'term_id' ); } else { $id = 0; $options = wc_get_text_attributes( $meta_value['value'] ); } $attribute = new WC_Product_Attribute(); $attribute->set_id( $id ); $attribute->set_name( $meta_value['name'] ); $attribute->set_options( $options ); $attribute->set_position( $meta_value['position'] ); $attribute->set_visible( $meta_value['is_visible'] ); $attribute->set_variation( $meta_value['is_variation'] ); $attributes[] = $attribute; } $product->set_attributes( $attributes ); } }