Marque de produits avec images dans WooCommerce

Mis à jour le mercredi 19 août 2020
Temps approximatif de lecture : 3 minutes

Un petit défi pour un collègue australien. Il avait le plug-in Brands pour WooCommerce mais nous aurions aimé pouvoir filtrer sur les marques ainsi que d'avoir des archives par marques.

Dans un premier temps, nous allons créer l'attribut "Brands" ou "Marques" dans WooCommerce et nous allons cocher "Activer les archives"

Ensuite nous allons installer le plug-in Taxonomy Images et aller activer sur "Produit Brands".

J'ai ensuite créer une simple page Brands ou Marques et ajouter sur celle-ci un code bloc avec :

<?php
    $args = array(
        'taxonomy'    => 'pa_brands',
        'term_args'   => array(
            'hide_empty'    => false,
        )
    );
    $terms = apply_filters( 'taxonomy-images-get-terms', '', $args );

    foreach ($terms as $term){
        $archive_link = get_term_link( $term->slug, 'pa_brands' );
        $image_attributes = wp_get_attachment_image_src( $term->image_id, 'thumbnail' );

        $html = '<div class="mr-brand"><a href="' . $archive_link . '">'; 
        $html .= '<option>' . $term->name . '</option>';
   
        if ( $image_attributes ) { 
        $html .= '<img src="' . $image_attributes[0] . '" width="' . $image_attributes[1] . '" height="' .$image_attributes[2] . '" />';
        } 
        $html .= '</div></a>';
        
        echo $html;
    }    
?>

Nous récupérons donc toutes nos marques à l'intérieur d'une div qui a le lien vers l'archive de la marque ainsi que l'image que nous avons pu insérer avec le plug-in.

N'oubliez pas de faire un template ou de configurer votre template de catégorie sur cette taxonomie. Petite note : l'utilisation des taxonomies d'attributs dans WooCommerce doit être précédées de pa_.

Pour terminer nous allons peut-être aussi vouloir récupérer nos marques sur les produits (single). Voici la fonction à utiliser dans un bloc de code :

<?php
	global $product;
    $rmbrands = $product->get_attribute( 'pa_brands' );
    echo '<div class="rm-brands">Brand: ' . $rmbrands . '</div>';

	$mytaxonomy = 'pa_brands';
	$post_id = get_the_ID();
	$terms = wp_get_post_terms( $post_id, $mytaxonomy ); // Terms for this post
	$custom_taxonomy_images = get_option( 'taxonomy_image_plugin' ); // Plugin images data
	if ( empty( $terms ) ) return; // If no terms found, we exit.

	echo '<div class="rm-brands-container">';
	// Loop through each term in this post for the defined taxonomy
	foreach( $terms as $term ) {
		$attachment_id = $custom_taxonomy_images[intval($term->term_id)]; // Get image Attachement ID
		$image = wp_get_attachment_image( $attachment_id, 'thumbnail' ); // Get image to be displayed
		$url = get_term_link( $term->term_id, $taxonomy ); // Get term URL
 		?>
		<div class=”rm-brands-image”>
		<a href="<?php echo $url; ?>"><?php echo $image; ?>
		</div>
		<?php
		}
	echo '</div>';
?>

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Copyright © 2019 - 2020 Bulgaweb
 | 
Développé par BulgaWeb
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram