it-swarm.com.de

WooCommerce - Kategorie für Produktseite erhalten

Für meine WC-Produktseiten muss ich dem Body-Tag eine Klasse hinzufügen, damit ich ein benutzerdefiniertes Styling durchführen kann. Hier ist die Funktion, die ich dafür erstelle ...

function my_add_woo_cat_class($classes) {

    $wooCatIdForThisProduct = "?????"; //help!

    // add 'class-name' to the $classes array
    $classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;
    // return the $classes array
    return $classes;
}

//If we're showing a WC product page
if (is_product()) {
    // Add specific CSS class by filter
    add_filter('body_class','my_add_woo_cat_class');
}

... aber wie bekomme ich die WooCommerce-Katzen-ID?

33

Ein WC-Produkt darf keiner, einer oder mehreren WC-Kategorien angehören. Angenommen, Sie möchten nur eine WC-Kategorie-ID erhalten.

global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
    $product_cat_id = $term->term_id;
    break;
}

Bitte schauen Sie in die Datei meta.php im Ordner "templates/single-product /" des WooCommerce-Plugins.

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?>
68
Box

Ich habe diese Codezeile buchstäblich aus der Datei content-single-popup.php entfernt, die sich im Ordner woocommerce in meinem Themenverzeichnis befindet.

global $product; 
echo $product->get_categories( ', ', ' ' . _n( ' ', '  ', $cat_count, 'woocommerce' ) . ' ', ' ' );

Da mein Thema, an dem ich arbeite, Woocommerce enthält, war dies meine Lösung.

4

$product->get_categories() ist veraltet seit Version 3.0! Verwenden wc_get_product_category_list stattdessen.

https://docs.woocommerce.com/wc-apidocs/function-wc_get_product_category_list.html

3
Jaydip Nimavat

Danke Box. Ich verwende MyStile Theme und musste den Namen der Produktkategorie auf meiner Suchergebnisseite anzeigen. Ich habe diese Funktion zu meinem untergeordneten Theme functions.php hinzugefügt

Hoffe es hilft anderen.

/* Post Meta */


if (!function_exists( 'woo_post_meta')) {
    function woo_post_meta( ) {
        global $woo_options;
        global $post;

        $terms = get_the_terms( $post->ID, 'product_cat' );
        foreach ($terms as $term) {
            $product_cat = $term->name;
            break;
        }

?>
<aside class="post-meta">
    <ul>
        <li class="post-category">
            <?php the_category( ', ', $post->ID) ?>
                        <?php echo $product_cat; ?>

        </li>
        <?php the_tags( '<li class="tags">', ', ', '</li>' ); ?>
        <?php if ( isset( $woo_options['woo_post_content'] ) && $woo_options['woo_post_content'] == 'excerpt' ) { ?>
            <li class="comments"><?php comments_popup_link( __( 'Leave a comment', 'woothemes' ), __( '1 Comment', 'woothemes' ), __( '% Comments', 'woothemes' ) ); ?></li>
        <?php } ?>
        <?php edit_post_link( __( 'Edit', 'woothemes' ), '<li class="edit">', '</li>' ); ?>
    </ul>
</aside>
<?php
    }
}


?>
2
ZAA.CC