web-dev-qa-db-fra.com

Comment définir un modèle personnalisé pour le shortcode woocommerce [produits]?

Le shortcode [produits] WooCommerce possède de nombreuses fonctionnalités, mais il manque une fonctionnalité de "modèle". Comment puis-je définir un modèle personnalisé comme ceci:

[products class="simple-list"]
1
AMIB

Ouvrez la function.php de votre thème et ajoutez ce qui suit

add_action( 'woocommerce_shortcode_before_products_loop', 'roka_before_products_shortcode_loop', 1, 10 );
add_action( 'woocommerce_shortcode_after_products_loop', 'roka_after_products_shortcode_loop', 0, 10 );

function roka_before_products_shortcode_loop( $atts ) {
    $GLOBALS[ 'roka_woocommerce_loop_template' ] =
        ( isset( $atts[ 'class' ] ) ? $atts[ 'class' ] : '' );
}

function roka_after_products_shortcode_loop( $atts ) {
    $GLOBALS[ 'roka_woocommerce_loop_template' ] = '';
}

Remplacez ensuite le fichier content-product.php en le copiant dans le dossier woocommerce de votre thème.

trouver la ligne <li <?php post_class(); ?>> et ajouter après ce qui suit:

<?php
    if(
        isset( $GLOBALS[ 'roka_woocommerce_loop_template' ] ) &&
        $GLOBALS[ 'roka_woocommerce_loop_template' ] == 'simple-list'
    ) {
        echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a>';
        return;
    }
?>
1
AMIB