wp e-commerce group продукт по категориям - PullRequest
1 голос
/ 27 февраля 2012

Извините за мой плохой английский. У меня есть WP 3.3.1 & wp-e-commerce.3.8.7.6.2. На странице товаров (которая использует шаблон wpsc-products_page.php) у меня есть список товаров. Я хочу сгруппировать этот продукт по категориям. Например:

** Cat1
Продукт 1
Продукт 2

** Cat2
Продукт 1
Продукт 2

** Cat3
Продукт 1
Продукт 2

Я пытаюсь использовать этот метод, но он не работает

add_filter('posts_join', create_function('$a', 'global $wpdb; return $a . " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";'));
add_filter('posts_where', create_function('$a', 'global $wpdb; return $a . " AND $wpdb->term_taxonomy.taxonomy = \'wpsc_product_category\'";'));
add_filter('posts_orderby', create_function('$a','global $wpdb; return "$wpdb->term_taxonomy.term_id DESC";'));
query_posts('');

Заранее всем спасибо за ответ!

Ответы [ 2 ]

7 голосов
/ 11 марта 2012

Попробуйте следующий код.

/* ----------
-------------
Continue code
-------------
---------- */

<?php
/* Check if this is the products page not the category or single page  */
if( is_products_page() && wpsc_is_product() && (!wpsc_is_in_category()) && (!wpsc_is_single_product()) ) {
    /* Get all the categories for wp e-commerce products */
    $wpec_product_categories = get_terms( 'wpsc_product_category', 'hide_empty=0&parent=0');
    foreach($wpec_product_categories as $wpec_categories){
        $wpec_term_id = $wpec_categories->term_id;
        $wpec_term_name = $wpec_categories->name;
        $wpec_term_slug = $wpec_categories->slug;

        //Skip the categories term(which comes default in wp e-commerce
        if($wpec_term_slug == 'categories') {
            continue;
        }

        //Set the args array
        $wpec_args = array(
            'post_status' => 'publish',
            'post_type'   => 'wpsc-product',
            'numberposts' => 12,
            'showposts' => 12,
            "wpsc_product_category" => $wpec_term_slug
        );

        $wpec_categoryProducts = new WP_Query($wpec_args);
    ?>
        <div class="wpec_productcat_name"><h3><?php echo $wpec_term_name; ?></h3></div>

    <?php /** start the category wise - products loop here */?>
    <?php while ($wpec_categoryProducts->have_posts()) : $wpec_categoryProducts->the_post();
        global $wpsc_custom_meta, $wpsc_variations;
        $wpsc_custom_meta = new wpsc_custom_meta( get_the_ID() );
        $wpsc_variations = new wpsc_variations( get_the_ID() );
    ?>
        <div class="default_product_display product_view_<?php echo wpsc_the_product_id(); ?> <?php echo wpsc_category_class(); ?> group"> 

/* ----------
-------------
Continue code - product display
-------------
---------- */

        </div><!--close default_product_display-->
    <?php endwhile; ?>
    <?php /** end the product loop here */?>     

<?php
}
else {
?>
    <?php /** start the wp e-commerce default product loop here */ ?>
    <?php while (wpsc_have_products()) :  wpsc_the_product(); ?>
        <div class="default_product_display product_view_<?php echo wpsc_the_product_id(); ?> <?php echo wpsc_category_class(); ?> group">

/* ----------
-------------
Continue code - products display(same code as above)
-------------
---------- */

        </div><!--close default_product_display-->
    <?php endwhile; ?>
    <?php /** end the product loop here */?> 

<?php
} //End of else block for products page checking
?>

Код выше вы должны использовать внутри шаблона продукта WP E-Commerce.

Шаги:

- Откройте файл wpsc-products_page.php. - Найти оператор цикла в коде.

<?php /** start the product loop here */?>
<?php while (wpsc_have_products()) :  wpsc_the_product(); ?>

- Найти оператор конца цикла продуктов.

<?php endwhile; ?>
<?php /** end the product loop here */ ?>

- Скопировать весь блок между временем и концом для цикла продукта. - Затем приложите скопированный код к указанному ниже условию. - Сохраните и проверьте страницу продуктов.

0 голосов
/ 08 марта 2012

Если вы зайдете в админ-панель и нажмете на продукты, вы увидите «категории», щелкните по ним и создайте категории для ваших продуктов, так же, как отдельные страницы продуктов.Затем на странице ваших продуктов перейдите к каждому продукту, и вы сможете выбрать, к каким категориям они подходят.

В настройках> магазин> внешний вид найдите «Выберите категорию продукта, которую вы хотите отобразить на странице продуктов:» и переместитестрелка «показать список категорий продуктов».

затем найдите «Заменить заголовок страницы названием продукта / категории:» нажмите «Да».

Затем перейдите в меню «Внешний вид»> и нажмите меню,Если вы прокрутите вниз, вы увидите, что категории продуктов, которые вы создали, могут быть добавлены в ваше меню.Я положил их в качестве подпунктов в мой магазин.Когда кто-то нажимает на магазин, первой страницей является список категорий товаров.Если они нажимают на категорию, они получают список продуктов в этой категории.

Я думаю, это то, чего вы пытаетесь достичь.

Мой сайт: www.greenhillsoaps.com

Надеюсь, это поможет.

...