сейчас атрибуты выводятся в виджет через functions.php
// Регистрация виджета "Вывод характеристик"
function producAttr_load_widget() {
register_widget( 'producAttr_widget' );
}
add_action( 'widgets_init', 'producAttr_load_widget' );
// Создание виджета
class producAttr_widget extends WP_Widget {
function __construct() {
parent::__construct(
'producAttr_widget',
__('Вывод атрибутов товара', 'producAttr_widget_domain'),
// Описание виджета
array( 'description' => __( 'Для страницы товара', 'producAttr_widget_domain' ), )
);
}
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
// Code
global $product;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
$has_row = false;
$attributes = $product->get_attributes();
ob_start();
?>
<div class="product_attributes">
<div><h2>Характеристики: </h2></div>
<?php foreach ( $attributes as $attribute ) :
if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) )
continue;
$values = wc_get_product_terms( $product->get_id(), $attribute['name'], array( 'fields' => 'names' ) );
$att_val = apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
if( empty( $att_val ) )
continue;
$has_row = true;
?>
<div>
<div class="att_label" style="font-weight: bold; display: inline-block;"><?php echo wc_attribute_label( $attribute['name'] ); ?></div>
<?php echo ': '; ?>
<div class="att_value" style="display: inline-block;"><?php echo $att_val; ?></div><!-- .att_value -->
</div><!-- .col -->
<?php endforeach; ?>
</div><!-- .product_attributes -->
<?php
if ( $has_row ) {
echo ob_get_clean();
} else {
ob_end_clean();
}
}
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
else {
$title = __( 'Характеристики', 'producAttr_widget_domain' );
}
// producAttr
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
}
// конец виджета