woocommerce Kategorien / Unterkatergorien und wie die Produkte angezeigt werden

  • Hallo Leute ich bin ein wenig am Verzweifeln.
    Ich baue gerade einen Onlineshop mit woocommerce. Nun habe ich zb. folgende Kategorien: Kategorie A mit der Unterkategorie B. Es befinden sich in beiden Kategorien Produkte. Wenn nun ein Kunde auf Kategorie A klickt werden ihm sofort die Produkte der Kategorie A und auch B angezeigt. Ich möchte aber das der Kunde in der Kategorie A nur die Produkte der Kategorie A sieht, geht er in die Unterkategorie B dann sieht er nur die Produkte der Unterkategorie.

    Dies ist wichtig da es sich bei den Unterkategorien jeweils um abwandlungen des Produktes der Überkategorie handelt.

    Was muss ich einstellen? Habe mitlerweile alles an Anzeigeeinstellungen ausprobiert oder benötige ich dafür ein extra plugin?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wenn es doch nur so einfach wäre ;-) das habe ich natürlich schon probiert. Produkte anzeigen = es werden wirklich nur Produkte angezeigt; Unterkategorien anzeigen = es werden nur Unterkategorien angezeigt ; Beides = steht ja oben was passiert.

  • Ist nichts mit einstellen, Plugin dafür kenne ich auch nicht. Kannst du coden? Dann wäre eine Lösung, die Query für die Produkt-Archiv-Seiten zu ändern (in archive-product.php):

    <?php
    /**
    * The Template for displaying product archives, including the main shop page which is a post type archive.
    *
    * @author WooThemes
    * @package WooCommerce/Templates
    * @version 2.0.0
    */

    if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

    get_header();

    /**
    * Prevent products from subcategories from showing up on product category pages
    */
    if ( ! is_shop() ) {

    global $wp_query;

    $term = get_term_by( 'slug', get_query_var($wp_query->query_vars['taxonomy']), $wp_query->query_vars['taxonomy']);
    $args = array_merge( $wp_query->query_vars, array
    (
    'post_type' => 'product',
    'tax_query' => array(array(
    'taxonomy' => 'product_cat',
    'field' => 'slug',
    'terms' => $term->slug,
    'include_children' => 0
    )
    )
    )
    );

    query_posts( $args );

    }

    Dann der Rest...

    Die Änderung natürlich nicht in der Originaldatei, sondern in einer Kopie in deinem Theme.

    CU, Dirk

  • Ich würde immer zuerst versuchen ohne Änderung der Templates zu arbeiten. Der "richtige" Weg: http://codex.wordpress.org/Plugin_API/Act…e/pre_get_posts

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ich würde immer zuerst versuchen ohne Änderung der Templates zu arbeiten. Der "richtige" Weg: http://codex.wordpress.org/Plugin_API/Act…e/pre_get_posts

    Völlig richtig. Das oben widergegebene Snippet stammt allerdings aus einem Projekt, wo ich ohnehin das gesamte Template umschreiben musste, da konnte ich den notwendigen Code also auch direkt ins Template schreiben. Danke jedenfalls für deine Ergänzung.

  • Vielen Dank für die Antworten.

    Kannst du coden? Dann wäre eine Lösung, die Query für die Produkt-Archiv-Seiten zu ändern (in archive-product.php):


    Die Änderung natürlich nicht in der Originaldatei, sondern in einer Kopie in deinem Theme.

    CU, Dirk

    Leider kann ich noch nicht wirklich coden, habe ne ungefähre Ahnung. Habe aber ein wenig Erfahrung mit Delphi, also ne gewisse Grundlage ist da.

    Ich habe das mal ausprobiert, schaut auch recht gut aus jedoch werden mir die Unterkategorien dann nicht mehr angezeigt und es steht fett Suchergebnisse oben auf der Seite.

    Habe das so gemacht:

    <?php
    /**
    * The Template for displaying product archives, including the main shop page which is a post type archive.
    *
    * Override this template by copying it to yourtheme/woocommerce/archive-product.php
    *
    * @author WooThemes
    * @package WooCommerce/Templates
    * @version 2.0.0
    */

    if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

    get_header( 'shop' ); ?>


    <?php

    [COLOR=#ff0000]ab hier habe ich eingefügt[/COLOR]

    /**
    * Prevent products from subcategories from showing up on product category pages
    */
    if ( ! is_shop() ) {

    global $wp_query;

    $term = get_term_by( 'slug', get_query_var($wp_query->query_vars['taxonomy']), $wp_query->query_vars['taxonomy']);
    $args = array_merge( $wp_query->query_vars, array
    (
    'post_type' => 'product',
    'tax_query' => array(array(
    'taxonomy' => 'product_cat',
    'field' => 'slug',
    'terms' => $term->slug,
    'include_children' => 0
    )
    )
    )
    );

    query_posts( $args );

    }

    [COLOR=#ff0000]ab hier wieder Original[/COLOR]

    /**
    * woocommerce_before_main_content hook
    *
    * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
    * @hooked woocommerce_breadcrumb - 20
    */
    do_action( 'woocommerce_before_main_content' );
    ?>

    Einmal editiert, zuletzt von dune1982 (15. Dezember 2014 um 12:23)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!