Шапка общая

Хук PHP WooCommerce для вывода атрибутов на карточку товара

Хук PHP WooCommerce для вывода атрибутов на карточку товара

Хук PHP для вывода атрибутов на карточку товара в WooCommerce — это woocommerce_after_shop_loop_item_title. Этот хук вызывается после заголовка товара на странице каталога, но перед ценой товара. Можно использовать этот хук для вывода атрибутов товара на странице каталога.

Пример использования хука woocommerce_after_shop_loop_item_title для вывода атрибутов товара на странице каталога:

add_action( ‘woocommerce_after_shop_loop_item_title’, ‘my_custom_function’ );

function my_custom_function() {
global $product;

$attributes = $product->get_attributes();

if ( ! $attributes ) {
    return;
}

echo '<div class="product-attributes">';

foreach ( $attributes as $attribute ) {
    echo '<span class="attribute-label">' . wc_attribute_label( $attribute->get_name() ) . ': </span>';

    $values = array();

    if ( $attribute->is_taxonomy() ) {
        $attribute_taxonomy = $attribute->get_taxonomy_object();
        $attribute_values = wc_get_product_terms( $product->get_id(), $attribute->get_name(), array( 'fields' => 'all' ) );

        foreach ( $attribute_values as $attribute_value ) {
            $value_name = esc_html( $attribute_value->name );

            if ( $attribute_taxonomy->attribute_public ) {
                $values[] = '<a href="' . get_term_link( $attribute_value->term_id, $attribute->get_name() ) . '">' . $value_name . '</a>';
            } else {
                $values[] = $value_name;
            }
        }
    } else {
        $values = $attribute->get_options();

        foreach ( $values as &$value ) {
            $value = wcs_kses_html( $value );
        }
    }

    echo '<span class="attribute-values">' . implode( ', ', $values ) . '</span>';
}

echo '</div>';

}

Код выше выводит все атрибуты товара на странице каталога, если они есть. Атрибуты показываются с их названием и значениями. Этот код можно использовать в functions.php вашей темы или в плагине.