logo

Mettre l’image du dernier produit en thumbnail de sa catégorie sous WooCommerce [functions + PHP]

Vous avez besoin de changer régulièrement les images de vos catégories sous WooCommerce. Cette solution peut vous convenir : il s’agit de mettre l’image du dernier article rentrée en miniature (thumbnail) sur sa catégorie.

Dans fonctions.php :

function first_publish_set($new, $old, $post) {
    // first publish
    if ($new == 'publish' && $old != 'publish' && isset($post->post_type)) {

        if($post->post_type !== 'product'){
            return;
        }

        $postcat = get_the_terms($post->ID, 'product_cat'); //recuperations des termes de la custom catégorie
        $term_id   = $postcat[0]->term_id;

        $cat_thumbnail = get_term_meta($term_id, 'thumbnail_id', TRUE);
        $post_thumbnail = get_post_meta($post->ID, '_thumbnail_id', TRUE);

        if(empty($cat_thumbnail) && !empty($post_thumbnail)){
            update_term_meta( $term_id, 'thumbnail_id', $post_thumbnail, '' );
        }else{
            if(!empty($post_thumbnail)){
                update_term_meta( $term_id, 'thumbnail_id', $post_thumbnail, $cat_thumbnail );
            }
        }
        
    }

}

add_action('transition_post_status','first_publish_set', 10, 3);