• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Табличный вид

Srt

Новичок
Подскажите. Как модифицировать данный пример таким образом, чтобы при выборе одной категории товаров в магазине, показывалась одна таблица, а при выборе другой - другая. Например, выбирая категорию 1 будет выдаваться таблица с тремя своими столбцами, а при выборе категории 2 - таблица с пятью столбцами.
 

Grollem

Опытный
Подскажите. Как модифицировать данный пример таким образом, чтобы при выборе одной категории товаров в магазине, показывалась одна таблица, а при выборе другой - другая. Например, выбирая категорию 1 будет выдаваться таблица с тремя своими столбцами, а при выборе категории 2 - таблица с пятью столбцами.
это можно сделать так. при открытии страницы с категорией проверять в какой мы находимся, и если эта категория совпадает нужной нам, писать для нее условие вывода по 3 колонки, аналогично с 5 колонками
 

Srt

Новичок
это можно сделать так. при открытии страницы с категорией проверять в какой мы находимся, и если эта категория совпадает нужной нам, писать для нее условие вывода по 3 колонки, аналогично с 5 колонками
Спасибо большое. Вроде понял.
 
Последнее редактирование:

OniX

Форумчанин
а висящий заголовок таблицы при пустой категории Вас не смущает? :whistle:
а неработающая сортировка?(n)
а что будет, когда появится 30 товаров?:unsure:
Возвращайте archive-products.php какой был!
Вместо этого пишите в functions.php темы:
PHP:
/* Добавляем таблицу для отображения товаров в товарной категории.  */
add_action('woocommerce_before_shop_loop', 'table_loop_head',40);
function table_loop_head( ) {
?>
<table class="loop_table loop" cellspacing="0">
    .....................

При такой конструкции все работает, но если выбрать отображение товара только в подкатегории, в родителе соответственно отображаются только миниатюры подкатов, то под этими миниатюрами висит шапка этой таблицы.

Не знаю точно оптимально это или не совсем, но решил это так:

Код:
if (have_posts()) do_action( 'woocommerce_before_shop_loop' );
Файл archive-products.php
 

tqaz

Новичок
Добрый день, помогите в голове вообще винегрет :censored: запутался совсем. Делаю как в пример выводятся только заголовки таблицы и все, сама таблица пустая. Может кто поделиться файлами с табличным выводом или подскажет в каких именно файлах что менять:unsure:. Очень хочется сделать табличный вывод товаров.
 

Nail

Новичок
Удачи!
Я у себя тоже хочу сделать что-то такое, правда, мне надо будет еще выбор количества добавить, и влепить такой код не для всех категорий, а собрать на отдельной странице все товары. Ну это когда-нибудь потом, может и совсем по-другому реализую.
Доброго времени суток! Уважаемы Stork.71 вы случайно не сделали как хотели, а то у меня проблемка с фильтрами, незнаю как реализовать, + как вы писали сделать выбор количества
 

Stork.71

Гуру
Местный
Доброго времени суток! Уважаемы Stork.71 вы случайно не сделали как хотели, а то у меня проблемка с фильтрами, незнаю как реализовать, + как вы писали сделать выбор количества
К сожалению, пока руки не дошли.
 

brunma

Новичок
Ребята, всё работает. всё круто. Но столкнулся с таким моментом. А как для вариативных товаров??? Как засунуть в таблицу чтобы одна вариация (одно свойство) работало с кнопкой добавить в корзину.

Вот это оч актуально для меня. Буду чрезмерно благодарен
 

Seo-optimist

Новичок
При такой конструкции все работает, но если выбрать отображение товара только в подкатегории, в родителе соответственно отображаются только миниатюры подкатов, то под этими миниатюрами висит шапка этой таблицы.

Не знаю точно оптимально это или не совсем, но решил это так:

Код:
if (have_posts()) do_action( 'woocommerce_before_shop_loop' );
Файл archive-products.php

Здравствуйте.
Я так же столкнулся с проблемой отображения шапки таблицы внизу страницы категории в которой должны выводиться только миниатюры дочерних категорий. Буду благодарен если поможете разобраться как реализовать решение описанное выше, оно применимо к варианту вставки из 11 сообщения данной ветки или все вставки должны быть в archive-products.php запутался немного..
Если у кого-нибудь сохранился рабочий пример реализации поделитесь пожалуйста "полным кодом" решения.
Заранее спасибо!
 

Seo-optimist

Новичок
Всем привет, опытным путем мне удалось найти решение (убрать отображение шапки таблицы товаров на странице с подкатегориями). Хочу поделиться, возможно еще кому-нибудь пригодится:

Итак делаем следующие вставки:
в файле functions.php

<?php
add_action('woocommerce_before_shop_loop', 'table_loop_head',40);
function table_loop_head( ) {
?>
<table class="loop_table loop" cellspacing="0" >

<thead>
<tr>
<th class="product_table"><?php _e( 'Наименование', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'R1', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Марка', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Длина', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Остаток', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Цена от 1т.', 'woocommerce' ); ?></th>
<th class="product-table">&nbsp;</th>
</tr>
</thead>
<tbody>
<?php
}
add_action('woocommerce_after_shop_loop', 'table_loop_closetag',9);
function table_loop_closetag( ) {
?>
</tbody></table>
<?php
} ?>


В файле content-product.php

<tr>
<td class="product_table"><b><?php the_title(); ?></b></td>

<td class="product_table"><?php echo ($product->get_attribute( 'r1' )); ?></td>

<td class="product_table"><?php echo ($product->get_attribute( 'marka' )); ?></td>

<td class="product_table"><?php echo ($product->get_attribute( 'dlina' )); ?></td>

<td class="product_table"><?php print_r ($product->get_stock_quantity( ' ' )); ?></td>

<td class="product_table"><?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?></td>

<td class="product-table"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?></td>
</tr>


В файле archive-product.php
я перенес хук woocommerce_before_shop_loop hook.

привожу содержимое файла целиком что бы не было путаницы

<?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive
*
* This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/

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

get_header( 'shop' ); ?>

<?php
/**
* 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' );
?>

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

<?php endif; ?>

<?php
/**
* woocommerce_archive_description hook.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>

<?php if ( have_posts() ) : ?>

<?php
/**
* Изначальное расположение хука woocommerce_before_shop_loop hook.
*
*
*/

?>

<?php woocommerce_product_loop_start(); ?>

<?php woocommerce_product_subcategories(); ?>


<?php

/**
* Новое расположение хука woocommerce_before_shop_loop hook.
*/
if ( have_posts() ) :
do_action( 'woocommerce_before_shop_loop' ); ?>

<?php endif; ?>


<?php while ( have_posts() ) : the_post(); ?>

<?php wc_get_template_part( 'content', 'product' ); ?>

<?php endwhile; // end of the loop. ?>

<?php woocommerce_product_loop_end(); ?>

<?php
/**
* woocommerce_after_shop_loop hook.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
?>

<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

<?php wc_get_template( 'loop/no-products-found.php' ); ?>

<?php endif; ?>

<?php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>

<?php
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>

<?php get_footer( 'shop' ); ?>

В результате у меня получилась таблица с наименованием, атрибутами, остатком товара и ценой

primer.jpg
 

win4er

Новичок
Всем привет, опытным путем мне удалось найти решение (убрать отображение шапки таблицы товаров на странице с подкатегориями). Хочу поделиться, возможно еще кому-нибудь пригодится:

Итак делаем следующие вставки:
в файле functions.php

<?php
add_action('woocommerce_before_shop_loop', 'table_loop_head',40);
function table_loop_head( ) {
?>
<table class="loop_table loop" cellspacing="0" >

<thead>
<tr>
<th class="product_table"><?php _e( 'Наименование', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'R1', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Марка', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Длина', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Остаток', 'woocommerce' ); ?></th>
<th class="product_table"><?php _e( 'Цена от 1т.', 'woocommerce' ); ?></th>
<th class="product-table">&nbsp;</th>
</tr>
</thead>
<tbody>
<?php
}
add_action('woocommerce_after_shop_loop', 'table_loop_closetag',9);
function table_loop_closetag( ) {
?>
</tbody></table>
<?php
} ?>


В файле content-product.php

<tr>
<td class="product_table"><b><?php the_title(); ?></b></td>

<td class="product_table"><?php echo ($product->get_attribute( 'r1' )); ?></td>

<td class="product_table"><?php echo ($product->get_attribute( 'marka' )); ?></td>

<td class="product_table"><?php echo ($product->get_attribute( 'dlina' )); ?></td>

<td class="product_table"><?php print_r ($product->get_stock_quantity( ' ' )); ?></td>

<td class="product_table"><?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?></td>

<td class="product-table"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?></td>
</tr>


В файле archive-product.php
я перенес хук woocommerce_before_shop_loop hook.

привожу содержимое файла целиком что бы не было путаницы

<?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive
*
* This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/

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

get_header( 'shop' ); ?>

<?php
/**
* 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' );
?>

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

<?php endif; ?>

<?php
/**
* woocommerce_archive_description hook.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>

<?php if ( have_posts() ) : ?>

<?php
/**
* Изначальное расположение хука woocommerce_before_shop_loop hook.
*
*
*/

?>

<?php woocommerce_product_loop_start(); ?>

<?php woocommerce_product_subcategories(); ?>


<?php

/**
* Новое расположение хука woocommerce_before_shop_loop hook.
*/
if ( have_posts() ) :
do_action( 'woocommerce_before_shop_loop' ); ?>

<?php endif; ?>


<?php while ( have_posts() ) : the_post(); ?>

<?php wc_get_template_part( 'content', 'product' ); ?>

<?php endwhile; // end of the loop. ?>

<?php woocommerce_product_loop_end(); ?>

<?php
/**
* woocommerce_after_shop_loop hook.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
?>

<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

<?php wc_get_template( 'loop/no-products-found.php' ); ?>

<?php endif; ?>

<?php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>

<?php
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>

<?php get_footer( 'shop' ); ?>

В результате у меня получилась таблица с наименованием, атрибутами, остатком товара и ценой

Посмотреть вложение 2676
Уважаемый Seo-optimist , подскажите куда вставлять код (после какого значения, что удалить а что оставить) в файлах function и content-product, я новичок еще в этом деле, у меня после вставки кодов все съехало...
 

Stork.71

Гуру
Местный
Уважаемый Seo-optimist , подскажите куда вставлять код (после какого значения, что удалить а что оставить) в файлах function и content-product, я новичок еще в этом деле, у меня после вставки кодов все съехало...
в functions просто добавлять в конец файла. При этом в начале <?php и в конце ?> не нужны
в content-product блок table надо вставить вместо блока li
 

feya v tapkach

Новичок
Люди добрые а подскажите пожалуйста как скрыть от индесации вывод списком и таблицей категорий и меток товаров. Поисковые системы все индексируют проблема дублей. Спасибо за ответ .
 
Сверху Снизу