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

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

Image CMS

D&B

Администратор
Команда форума
Местный
#2
Плагинов разных с таблицами товаров то много, но вот именно с таким функционалом и фильтрами в придачу, не подскажу.
 

Валерий

Специалист
#4
...и есть ли готовые решения? (нужно выбрать сервер, потом будет список)
На Woocomerce
На счет готовых решений не подскажу. :( Непосредственно WooCommerce плагины такого типа не попадались, но для Wordpress есть масса табличных плагинов, которые позволяют выводить в ячейках таблицы любой контент: ссылки, картинки, текст и даже шоткоды.

...можно ли сделать подобный список товаров, http://www.mmodiy.com/Lineage-II-Adena/ ...
Да, можно, это вполне реальная задача. ;) Область таблицы, которая расположена под переключателями валют (красная стрелка) - это по сути дела та же самая корзина. :) В WooCommerce корзина ведь в табличной форме. Просто там не такая красивая табличная форма корзины, но это поправимо с помощью css. При достаточном усердии саму таблицу можно по внешнему виду подогнать один в один. Выпадающий список серверов - это виджет WooCommerce, только виджет нужно будет вывести на странице, а не в сайдбаре, как обычно. Остаются валюты... есть мультивалютные плагины для WooCommerce. Нужно только их прикрутить в нужном месте.

otvet-1.png
 

Роман

Форумчанин
#5
На счет готовых решений не подскажу. :( Непосредственно WooCommerce плагины такого типа не попадались, но для Wordpress есть масса табличных плагинов, которые позволяют выводить в ячейках таблицы любой контент: ссылки, картинки, текст и даже шоткоды.



Да, можно, это вполне реальная задача. ;) Область таблицы, которая расположена под переключателями валют (красная стрелка) - это по сути дела та же самая корзина. :) В WooCommerce корзина ведь в табличной форме. Просто там не такая красивая табличная форма корзины, но это поправимо с помощью css. При достаточном усердии саму таблицу можно по внешнему виду подогнать один в один. Выпадающий список серверов - это виджет WooCommerce, только виджет нужно будет вывести на странице, а не в сайдбаре, как обычно. Остаются валюты... есть мультивалютные плагины для WooCommerce. Нужно только их прикрутить в нужном месте.

Спасибо за подсказки, я тоже думал о том что это корзина. А каким образом сделать так что бы в этой корзине находились определенные товары таким списком? Я допустим хотел бы сделать так что бы там было не кол-во валюты игровой а непосредственно название сервера, кол-во же можно регулировать самому. И еще такой нюанс, в моем случае должно быть несколько таких корзин , ибо работаем не в одной игре . А валюта по большому счету мне не нужна. Рубли и только. В идеале там где сервер должна быть игра, а там где 200,300,500m Adena игровые сервера этой игры.
 

Валерий

Специалист
#6
...я тоже думал о том что это корзина...
А вот я не думал, что это корзина! :ROFLMAO: Я даже этого не говорил, а сказал, что внешний вид корзины примерно похож на то, что изображено на рисунке, и то, что ничего не мешает добиться подобного отображения для товаров магазина на WooCommerce. Т.е. выводить их не так, как они выводятся по умолчанию в большинстве шаблонов (в 3 или 4 колонки), а списком в виде таблицы. Если Вы сделаете это, то у Вас и получится несколько "корзин", а если выражаться более точно, у Вас товары по категориям будут выводится табличным списком. А что будет в данном случае товаром - Вам решать.
 

galiulinr

Опытный
Местный
#7
Я попробывал сделать табличный вид используя шаблон корзины для этого я поместил код в файл content-product.php сам код ниже:
Код:
<?php
/**
* The template for displaying product category thumbnails within loops.
*
* Override this template by copying it to yourtheme/woocommerce/content-product_cat.php
*
* @author         WooThemes
* @package     WooCommerce/Templates
* @version    
*/

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

global $woocommerce_loop;

// Store loop count we're currently on
if ( empty( $woocommerce_loop['loop'] ) )
    $woocommerce_loop['loop'] = 0;

// Store column count for displaying the grid
if ( empty( $woocommerce_loop['columns'] ) )
    $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );

// Increase loop count
$woocommerce_loop['loop']++;
?>

<table class="loop_table loop" cellspacing="0">

    <thead>
        <tr>
            <th class="product_name"><?php _e( 'Product', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Код ОКП', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Год', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Кол-во страниц', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Price', 'woocommerce' ); ?></th>
            <th class="product-price">&nbsp;</th>
        </tr>
    </thead>
   
<tbody>   
<?php do_action( 'woocommerce_before_loop_contents' ); ?>   

      <tr>
        <td class="product_name"><a href="<?php the_permalink() ?>" ><?php the_title(); ?></a></td>
       
        <td class="product_okp"><?php echo (get_post_meta($post->ID, 'okp', true)); ?></td>
       
        <td class="product_year"><?php echo (get_post_meta($post->ID, 'year', true)); ?></td>
       
        <td class="product_pages"><?php echo (get_post_meta($post->ID, 'pages', true)); ?></td>
       
        <td class="product_price"><?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?></td>
       
        <td class="product-price"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?></td>
      </tr>
     
      <?php do_action( 'woocommerce_after_loop_contents' ); ?>
    </tbody>

</table>

<?php do_action( 'woocommerce_after_loop_table' ); ?>

но у меня почему-то выводиться каждый товар со своим заголовком страницы. Вот ссылка как это выглядит shop-tu.ru/magazin пробовал блок <thead> выводить за <?php не помогло. Может кто в курсе как это можно реализовать?
 

Stork.71

Гуру
Местный
#8
как я понял, в этом файле задается отображение того, что выводится для каждого элемента каталога, то есть Вы же сами в нем и прописали, чтобы для каждого элемента рисовать заголовок!
вам блок thead надо вынести вообще куда-то подальше.
Попробуйте использовать хук woocommerce_before_shop_loop (прописан в archive-products.php)и в functions.php подцепить на него свой thead
только тут скорее всего уже получится 2 отдельные таблицы: заголовок и сами товары. Надо будет их ширины синхронизировать.
 

galiulinr

Опытный
Местный
#9
Все получилось. На странице archive-products.php после кода:
Код:
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1><?php endif; ?>
прописал заголовок таблицы:
Код:
<table class="loop_table loop" cellspacing="0">
    <thead>
        <tr>
            <th class="product_name"><?php _e( 'Product', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Код ОКП', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Год', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Кол-во страниц', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Price', 'woocommerce' ); ?></th>
            <th class="product-price">&nbsp;</th>
        </tr>
    </thead>
    <tbody>
далее после кода:
Код:
<?php wc_get_template_part( 'content', 'product' ); ?> <?php endwhile; // end of the loop. ?>
прописал закрывающие тэги таблицы:
Код:
</tbody></table>
а на странице content-product.php оставил только следующий код:
Код:
<?php
/**
* The template for displaying product category thumbnails within loops.
*
* Override this template by copying it to yourtheme/woocommerce/content-product_cat.php
*
* @author         WooThemes
* @package     WooCommerce/Templates
* @version    
*/
?>
      <tr>
        <td class="product_name"><a href="<?php the_permalink() ?>" ><?php the_title(); ?></a></td>
       
        <td class="product_okp"><?php echo (get_post_meta($post->ID, 'okp', true)); ?></td>
       
        <td class="product_year"><?php echo (get_post_meta($post->ID, 'year', true)); ?></td>
       
        <td class="product_pages"><?php echo (get_post_meta($post->ID, 'pages', true)); ?></td>
       
        <td class="product_price"><?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?></td>
       
        <td class="product-price"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?></td>
      </tr>
и теперь все получилось посмотреть можно здесь . Спасибо Stork.71 за пост #8, очень помог.
 

galiulinr

Опытный
Местный
#10
Заметил один косяк при отсутствии в категории товара, страница съезжает. Решил путем перетаскивания тега </table> на странице archive-products.php и установкой его перед кодом:
Код:
<?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' );
    ?>
 

Stork.71

Гуру
Местный
#11
а висящий заголовок таблицы при пустой категории Вас не смущает? :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">
    <thead>
        <tr>
            <th class="product_name"><?php _e( 'Product', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Код ОКП', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Год', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Кол-во страниц', 'woocommerce' ); ?></th>
            <th class="product_price"><?php _e( 'Price', 'woocommerce' ); ?></th>
            <th class="product-price">&nbsp;</th>
        </tr>
    </thead>
    <tbody>
<?php
}
add_action('woocommerce_after_shop_loop', 'table_loop_closetag',9);
function table_loop_closetag( ) {
?>
</tbody></table>
<?php
}
Конструкции типа <?php _e( 'Код ОКП', 'woocommerce' ); ?> я бы пожалуй заменил на просто надпись на русском языке, из переводов их тянуть бессмысленно.
Кстати, у Вас в файле content-product.php почему-то описание от content-product_cat.php, на всякий случай лучше исправить.
И не забудьте Override this template by copying it to yourtheme/woocommerce/content-product.php чтобы не потерять изменения при обновлении woocommerce! ;)
 
Последнее редактирование:

Stork.71

Гуру
Местный
#13
ну и я бы еще поэкспериментировал с content-product.php: Вы из него жестко удалили кучу функций, часть из которых, конечно, точно не нужна, но другая часть мне не совсем понятна, возможно она проявится при появлении большого количества товаров и кучи страниц. Я бы их наверное все же вернул бы.
 

galiulinr

Опытный
Местный
#14
Да я тоже об этом думал, сегодня залью побольше товар и посмотрю что получиться. Возможно придется вернуть что-то. Буду экспериментировать.
 

Stork.71

Гуру
Местный
#15
Удачи!
Я у себя тоже хочу сделать что-то такое, правда, мне надо будет еще выбор количества добавить, и влепить такой код не для всех категорий, а собрать на отдельной странице все товары. Ну это когда-нибудь потом, может и совсем по-другому реализую.
А Вам вот еще пригодится: корретируем шрифты
 
Последнее редактирование:

galiulinr

Опытный
Местный
#16
У меня снова проблема http://shop-tu.ru/magazin/posuda-odnorazovaya-iz-plastmass/ "Похожие товары" отображаются не совсем нормально, должно быть в виде таблицы, ну или может вообще убрать дополнительные сведения и цену и оставить только ссылку на товар. Только вот осталось узнать как это сделать?
 

galiulinr

Опытный
Местный
#18
Столкнулся со следующей проблемой при реализации табличного вида товаров. На созданной странице разместил шорт код для вывода товаров из отдельной категории [product_category category="tehnicheskie-usloviya-po-gost-2-114"] в итоге получилось следующее http://shop-tu.ru/tehnicheskie-usloviya-po-gost-2-114/. Пока даже не знаю в какую сторону смотреть. Почему то таблица пропала.
 

VAN_Q

Новичок
#19
Ребят большое спасибо за информацию, очень помогли, правда появился один вопрос, как в столбце количестве вывести количество товаров на складе из карточки товара?

help1.jpg

help2.jpg
 
Сверху Снизу