Blog Web & Design

Comment ajouter un champ de description personnalisé dans les catégories de produits WooCommerce ?

Ce code est un plugin Woocommerce qui ajoute une fonctionnalité pour ajouter un champ de contenu rédactionnel à la page d’édition des catégories de produit et permet de l’afficher automatiquement en bas des pages.

Ce nouveau champ permet aux administrateurs de saisir du contenu supplémentaire, généralement utilisé pour le SEO, qui sera affiché sur les pages de catégories de produits.

Pour ajouter ce code, vous pouvez copier-coller dans le dossier /mu-plugins de votre site ou copier les fonctions (sans les commentaires /* */ du début) dans le fichier functions.php de votre theme.

Besoin d’un spécialiste Woocommerce pour votre projet ? Contactez-moi

<?php
/*
Nom du plugin : TD Add Extra Field in Categories WooCommerce
URI du plugin : https://mistersize.com?from=woocommerce-plugin
Description : Ajoute un champ de contenu rédactionnel personnalisé en bas des pages de catégories de produits dans WooCommerce.
Version : 1
Auteur : Thomas Dufranne
URI de l'auteur :
Domaine de texte : td-functions
*/


// Afficher le champ sur la page d'administration "Ajouter une nouvelle catégorie de produit" et "Modifier une catégorie de produit"
add_action( 'product_cat_add_form_fields', 'td_category_extra_textarea_wp_editor_fields', 10, 2 );
add_action( 'product_cat_edit_form_fields', 'td_category_extra_textarea_wp_editor_fields', 10, 2 );

function td_category_extra_textarea_wp_editor_fields( $term ) {
    $second_desc = '';

    if ( is_object( $term ) ) {
        $second_desc = htmlspecialchars_decode( get_woocommerce_term_meta( $term->term_id, 'td_category_extra_textarea', true ) );
    }

    $settings = array(
        'textarea_name' => 'td_category_extra_textarea',
        'quicktags'     => array( 'buttons' => 'em,strong,link' ),
        'tinymce'       => array(
            'toolbar1' => 'bold,italic,strikethrough,bullist,numlist,blockquote,justifyleft,justifycenter,justifyright,link,unlink',
            'toolbar2' => '',
        ),
        'editor_css'    => '<style>#wp-excerpt-editor-container .wp-editor-area{height:175px; width:100%;}</style>',
    );

    echo '<div class="form-field">
        <label for="td_category_extra_textarea">' . __( 'Contenu rédactionnel de bas de page', 'td-functions' ) . '</label>';

    wp_editor( $second_desc, 'td_category_extra_textarea', $settings );

    echo '<p class="description">' . __( 'Votre contenu rédactionnel s\'affichera en bas de page', 'td-functions' ) . '</p>
    </div>';
}

// Enregistrer le champ sur la page d'administration
add_action( 'edit_term', 'td_category_extra_textarea_save_wp_editor', 10, 3 );
add_action( 'created_term', 'td_category_extra_textarea_save_wp_editor', 10, 3 );

function td_category_extra_textarea_save_wp_editor( $term_id, $tt_id = '', $taxonomy = '' ) {
    if ( isset( $_POST['td_category_extra_textarea'] ) && 'product_cat' === $taxonomy ) {
        update_woocommerce_term_meta( $term_id, 'td_category_extra_textarea', esc_attr( $_POST['td_category_extra_textarea'] ) );
    }
}

// Afficher le champ sous les produits sur les pages de catégories de produits
add_action( 'woocommerce_after_shop_loop', 'td_category_extra_textarea_display_wp_editor_content', 5 );

function td_category_extra_textarea_display_wp_editor_content() {
    if ( is_product_taxonomy() ) {
        $term = get_queried_object();
        $content = get_woocommerce_term_meta( $term->term_id, 'td_category_extra_textarea', true );
        if ( $term && ! empty( $content ) ) {
            echo '<div class="footer-term-description">' . wc_format_content( htmlspecialchars_decode( $content ) ) . '</div>';
        }
    }
}

Une fois activé, vous devriez voir un nouveau champ de saisie s’afficher dans la modification d’une catégorie de produit WooCommerce, comme ceci :

Dernière mise à jour le Auteur : Thomas Dufranne

Ce contenu vous a-t-il été utile ?

Merci pour votre avis !

Si vous pensez pouvoir aider d'autres personnes, pensez à partager le contenu

Merci pour votre avis !

Désolé que vous n'ayez pas trouvé votre réponse.

Je vous invite à me poser vos question par commentaire ou par e-mail !

Repondre

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.