wc_get_formatted_variation()
Variation Formatting.
Gets a formatted version of variation data or item meta.
Хуков нет.
Возвращает
Строку
.
Использование
wc_get_formatted_variation( $variation, $flat, $include_names, $skip_attributes_in_name );
- $variation(массив|WC_Product_Variation) (обязательный)
- Variation object.
- $flat(true|false)
- Should this be a flat list or HTML list? .
По умолчанию: false) - $include_names(true|false)
- include attribute names/labels in the list.
По умолчанию: true - $skip_attributes_in_name(true|false)
- Do not list attributes already part of the variation name.
По умолчанию: false
Код wc_get_formatted_variation() wc get formatted variation WC 9.4.2
function wc_get_formatted_variation( $variation, $flat = false, $include_names = true, $skip_attributes_in_name = false ) { $return = ''; if ( is_a( $variation, 'WC_Product_Variation' ) ) { $variation_attributes = $variation->get_attributes(); $product = $variation; $variation_name = $variation->get_name(); } else { $product = false; $variation_name = ''; // Remove attribute_ prefix from names. $variation_attributes = array(); if ( is_array( $variation ) ) { foreach ( $variation as $key => $value ) { $variation_attributes[ str_replace( 'attribute_', '', $key ) ] = $value; } } } $list_type = $include_names ? 'dl' : 'ul'; if ( is_array( $variation_attributes ) ) { if ( ! $flat ) { $return = '<' . $list_type . ' class="variation">'; } $variation_list = array(); foreach ( $variation_attributes as $name => $value ) { // If this is a term slug, get the term's nice name. if ( taxonomy_exists( $name ) ) { $term = get_term_by( 'slug', $value, $name ); if ( ! is_wp_error( $term ) && $term && null !== $term->name && '' !== $term->name ) { $value = $term->name; } } // Do not list attributes already part of the variation name. if ( '' === $value || ( $skip_attributes_in_name && wc_is_attribute_in_product_name( $value, $variation_name ) ) ) { continue; } if ( $include_names ) { if ( $flat ) { $variation_list[] = wc_attribute_label( $name, $product ) . ': ' . rawurldecode( $value ); } else { $variation_list[] = '<dt>' . wc_attribute_label( $name, $product ) . ':</dt><dd>' . rawurldecode( $value ) . '</dd>'; } } else { if ( $flat ) { $variation_list[] = rawurldecode( $value ); } else { $variation_list[] = '<li>' . rawurldecode( $value ) . '</li>'; } } } if ( $flat ) { $return .= implode( ', ', $variation_list ); } else { $return .= implode( '', $variation_list ); } if ( ! $flat ) { $return .= '</' . $list_type . '>'; } } return $return; }