get_results( "SELECT * FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies" ); set_transient( $transient_name, $attribute_taxonomies ); } return apply_filters( 'woocommerce_attribute_taxonomies', $attribute_taxonomies ); } /** * Get a product attributes name. * * @param mixed $name * @return string */ function wc_attribute_taxonomy_name( $name ) { return 'pa_' . wc_sanitize_taxonomy_name( $name ); } /** * Get a product attributes label. * * @param string $name * @param object $product object Optional * @return string */ function wc_attribute_label( $name, $product = '' ) { global $wpdb; if ( taxonomy_is_product_attribute( $name ) ) { $name = wc_sanitize_taxonomy_name( str_replace( 'pa_', '', $name ) ); $label = $wpdb->get_var( $wpdb->prepare( "SELECT attribute_label FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s;", $name ) ); if ( ! $label ) { $label = ucfirst( $name ); } } elseif ( $product && ( $attributes = $product->get_attributes() ) && isset( $attributes[ sanitize_title( $name ) ]['name'] ) ) { // Attempt to get label from product, as entered by the user $label = $attributes[ sanitize_title( $name ) ]['name']; } else { // Just format as best as we can $label = ucwords( str_replace( '-', ' ', $name ) ); } return apply_filters( 'woocommerce_attribute_label', $label, $name, $product ); } /** * Get a product attributes orderby setting. * * @param mixed $name * @return string */ function wc_attribute_orderby( $name ) { global $wpdb; $name = str_replace( 'pa_', '', sanitize_title( $name ) ); $orderby = $wpdb->get_var( $wpdb->prepare( "SELECT attribute_orderby FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = %s;", $name ) ); return apply_filters( 'woocommerce_attribute_orderby', $orderby, $name ); } /** * Get an array of product attribute taxonomies. * * @access public * @return array */ function wc_get_attribute_taxonomy_names() { $taxonomy_names = array(); $attribute_taxonomies = wc_get_attribute_taxonomies(); if ( $attribute_taxonomies ) { foreach ( $attribute_taxonomies as $tax ) { $taxonomy_names[] = wc_attribute_taxonomy_name( $tax->attribute_name ); } } return $taxonomy_names; }