WooCommerce: полезные плагины, снипетты, заметки

WooCommerce - бесплатный плагин для WordPress, с помощью которого можно создать интернет-магазин.

В этой записи будут собраны полезные плагины для WooCommerce, снипеты, хитрости и заметки касающиеся WooCommerce.

Подборка плагинов для WooCommerce

  • Woocommerce - собственно сам плагин для создания интернет-магазина.
  • Saphali Woocommerce Russian - возможности плагина:
    • Добавление валют СНГ (Российский рубль, Украинскую гривну  и пр).
    • Управление полями на странице оформления заказа: скрыть или добавить поля, отметить их как обязательное или наоборот убрать из обязательных.
    • Управление числом колонок в каталоге товаров и в рубриках
    • Подключение популярных российских и украинских платежные систем: QIWI, Приват24, LiqPay, WebMoney, Яндекс.Деньги, Интеркасса, PayPal для России и Украины, Z-payment, ChronoPay, ROBOKASSA.
  • WooCommerce Customizer - при помощи этого плагина можно изменить:
    • Текст на кнопке «В корзину» для различных типов товаров и в случае отсутствия товара
    • Количество товаров, отображаемых на одной странице или в колонке
    • В карточке товара название вкладок и текст кнопки добавления товара в корзину
    • Текст сообщений, появляющихся при оформлении заказа
    • Текст налоговых ставок
  • WooCommerce Product Details Customiser - скрытие или отображение тех или иных деталей товара на странице товара: изображения, вкладки, сопутствующие и схожие товары. Настраивается на странице "WooCommerce - настройки - товары"
  • WooCommerce Grid / List Toggle plugin - плагин добавляет в магазин кнопку для переключения вида отображения товаров с плитки (стандартного) в список. Список выглядит красиво, в таком виде отображения каждый товар занимает всю ширину страницы, выводится краткое описание к товару. Как отображать по умолчанию можно настроить в "WooCommerce - настройки - товары"
  • WooCommerce View - почти тоже самое что и в предыдущем плагине. Только кнопок вида больше: список, дата (сортируются по дате добавления), плитка, карта (справа появляется карта на которой фишками отображаются адреса товаров)
  • WooCommerce Custom Product Tabs Lite - добавление дополнительной вкладки на странице товара, например для публикации видео-ролика, на созданных вкладках можно добавлять html-код
  • WooCommerce New Product Badge - добавляет ярлык «New» для товаров, добавленных за определенный промежуток времени.
  • Woocommerce Compare Products - сравнение товаров по тем или иным характеристикам.
  • Woocommerce CSV importer - импорт товаров в интернет-магазин woocommerce при помощи csv-файлов.
  • WooCommerce - Store Exporter - экспорт товаров и связанной с интернет магазином информации в CSV, XML, Excel 2007 XLS и т.п. форматы
  • WooCommerce Dynamic Gallery - добавление галереи к товару с кнопкой zoom и возможностью слайдшоу.
  • WooCommerce Direct Checkout - если у вас магазин одного товара, то этот плагин позволит направить покупателя при нажатии на кнопку “Добавить в корзину” сразу на страницу Оплаты (пропуская страницу Корзина). Также можно изменить текст кнопки “Добавить в корзину” на любой текст.
  • WooCommerce PDF Invoices & Packing Slips - Плагин автоматически добавляет счет-фактуру в виде PDF файла вместе с письмом подтверждением на почтовый ящик ваших клиентов. В настройках плагина есть различные шаблоны PDF файла, можно указать свой логотип и контактную информацию.
  • Woocommerce woocart popup lite - плагин для установки всплывания небольшого popup окна после добавления товара в корзину
  • YITH Essential Kit for WooCommerce #1 - Содержит в себе более 20 различных полезных функций, таких как: AJAX поиск товара в реальном времени, сравнение товаров, лупа для просмотра продукции, быстрый просмотр, список желаний (wishlist), чат и т.д.
  • WooCommerce PDF Invoices & Packing Slips - Генерирует счет-фактуру в pdf.
  • Booster for WooCommerce - плагин пригодится если нужно выполнить какие-либо действия над большим количеством товаром, например добавление некоторых символов к цене или прикрепление дополнительных кнопок.
  • WooCommerce Predictive Search - умный поиск, то есть выводит в подсказках название товара, миниатюру и описание сразу же как только пользователь начинает вводить запрос.
  • WooCommerce Dynamic Gallery - плагин имеющий различные настройки для отображения галереи (есть слайдер) изображений нас странице товара.

Полезные сниппеты для WooCommerce

Так называемые снипетты добавляются посредством добавления кода в файл functions.php в вашем шаблоне.

Добавление валюты

По умолчанию в WooCommerce нет таких валют как русский рубль и украинская гривна. Но это достаточно легко исправить.

// Добавляем Гривны в WooCommerce
add_filter( 'woocommerce_currencies', 'add_my_currency' );
function add_my_currency( $currencies ) {
     $currencies['ABC'] = __( 'Украинская гривна', 'woocommerce' );
     return $currencies;
}
add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);
function add_my_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'ABC': $currency_symbol = 'грн.'; break;
     }
     return $currency_symbol;
}

Изменение надписи "Главная"  в хлебных крошках

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_change_breadcrumb_home_text' );
function jk_change_breadcrumb_home_text( $defaults ) {
   // Change the breadcrumb home text from 'Home' to 'Магазин'
   $defaults['home'] = 'Магазин';
   return $defaults;
}

Изменение ссылки на главную в хлебных крошках

add_filter( 'woocommerce_breadcrumb_home_url', 'woo_custom_breadrumb_home_url' );
function woo_custom_breadrumb_home_url() {
   return 'http://elims.pp.ua/?page_id=86';
}

Выводим ссылку на корзину

Добавляем этот код в то место шаблона, где это нужно. Если нужно в шапке - правим header.php. Это дело можно обернуть в кликабельный div с иконкой корзины.

<?php
global $woocommerce;
// get cart quantity
$qty = $woocommerce->cart->get_cart_contents_count();
// get cart total
$total = $woocommerce->cart->get_cart_total();
// get cart url
$cart_url = $woocommerce->cart->get_cart_url();
// if multiple products in cart
if($qty>1)
      echo '<a href="'.$cart_url.'">'.$qty.' products | '.$total.'</a>';
// if single product in cart
if($qty==1)
      echo '<a href="'.$cart_url.'">1 product | '.$total.'</a>';
?>

Вывод какого-либо атрибута товара на странице магазина

Переходим к редактированию файла: Плагины - Редактор - Плагин "Woocommerce" - Файл  "woocommerce/templates/content-product.php/templates/content-product.php".
Почти в самом низу находим строку

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

И над ней вставляем код:

<?php
   $terms = get_the_terms( $post->ID, 'pa_NameOfYourAttribute' );
   if ( $terms && ! is_wp_error( $terms ) ) { 
      foreach ( $terms as $term ) {
         echo "<p style=\"color: #85ad74;\">Срок действия: " . $term->name . "</p>";
      }
   } 
   else {echo "<p style=\"color: #85ad74;\">Без срока действия</p>";}
?>

Где NameOfYourAttribute - это имя Вашего атрибута. На моем примере я вывожу атрибут который в себе хранит дату окончания акции, то есть до какой даты можно будет купить товар.

Переименование вкладки "Дополнительная информация" в "Характеристики"

add_filter( 'woocommerce_product_tabs', 'devise_woo_rename_reviews_tab', 98);
function devise_woo_rename_reviews_tab($tabs) {
$tabs['additional_information']['title'] = 'Характеристики';
return $tabs;
}

Хотя это же самое можно сделать через плагин WooCommerce Customizer

Добавить микроразметку рейтинга отзывов на страницу товара:

Если хотите чтобы в сниппете поисковика для страниц товара отображались звезды рейтинга, то для этого нужно использовать микроразметку aggregateRating. Для этого вставьте на странице товара там, где хотите выводить среднее арифметическое по рейтингу, следующий код (нашел тут):

<?php
/**
 * Single Product Rating
 *
 * @author WooThemes
 * @package WooCommerce/Templates
 * @version 2.3.2
 */
if ( ! defined( 'ABSPATH' ) ) {
 exit; // Exit if accessed directly
}
global $product;
if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' ) {
 return;
}
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average = $product->get_average_rating();
if ( $rating_count > 0 ) : ?>

 <div class="woocommerce-product-rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
 <div class="star-rating" title="<?php printf( __( 'Rated %s out of 5', 'woocommerce' ), $average ); ?>">
 <span style="width:<?php echo ( ( $average / 5 ) * 100 ); ?>%">
 <strong itemprop="ratingValue" class="rating"><?php echo esc_html( $average ); ?></strong> <?php printf( __( 'out of %s5%s', 'woocommerce' ), '<span itemprop="bestRating">', '</span>' ); ?>
 <?php printf( _n( 'based on %s customer rating', 'based on %s customer ratings', $rating_count, 'woocommerce' ), '<span itemprop="ratingCount" class="rating">' . $rating_count . '</span>' ); ?>
 </span>
 </div>
 <?php if ( comments_open() ) : ?><a href="#reviews" class="woocommerce-review-link" rel="nofollow">(<?php printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woocommerce' ), '<span itemprop="reviewCount" class="count">' . $review_count . '</span>' ); ?>)</a><?php endif ?>
 </div>

<?php endif; ?>

Оборачивание в div изображений в списках товаров

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

add_action( 'woocommerce_before_shop_loop_item_title', create_function('', 'echo "<div class=\"img-wrap-product-list-parent\"><div class=\"img-wrap-product-list-child\">";'), 5, 2);
add_action( 'woocommerce_before_shop_loop_item_title', create_function('', 'echo "</div></div>";'), 12, 2);

Woocommerce и кэширование

На официальном сайте woocommerce есть рекомендации по поводу кеширования woocommerce.

А именно:

  • Не кешировать следующие страницы: 
    • /cart/ - корзина
    • /checkout/ - оформление заказа
    • /my-account/ - страница пользователя, где отображена информация о предыдущих заказах, реквизиты и тд.
  • При минификации html не убирать из исходного кода комментарии содержащие "mfunc"
  • Рекомендуют не минифицировать js скрипты
Понравилось? =) Поделись с друзьями:

Обсуждение записи “WooCommerce: полезные плагины, снипетты, заметки”

  1. Дмитрий (fischer.ist.ua) says:

    Здравствуйте, подскажите пожалуйста плагин на подобии WooCommerce New Product Badge, в котором можно самому на некоторые товары вешать похожие стикеры со своим текстом.
    Спасибо!

  2. Владимир Демянович (elims.org.ua) says:

    Дмитрий, добрый день, мне не попадались такие плагины, не было необходимости в их поиске. К сожалению посоветовать ничего не могу.

  3. Юрий says:

    Вечер добрый! ПОМОГИТЕ. Двое суток мучаюсь. При экспорте,плагин Store Exporter, поле количество выводится к примеру надо 15 ,а выводится 15.000000 ( точка и шесть нулей). Как изменить вывод этого дурацкого формата. ПОМОГИТЕ !!!!!!!!!!!

  4. Владимир Демянович (elims.org.ua) says:

    Юрий, это значение в базе данных храниться самим woocommerce в таком формате. Рекомендую просто после экспорта проходить автозаменой и убирать лишние нули. можно скриптик написать.

  5. Юрий says:

    Спасибо !!!!!

  6. Юрий says:

    Подскажите пожалуйста. Использую плагин Import Products from any XML or CSV to WooCommerce. Но после перевода EXEL в CSV,не отображаются русские наименования .

  7. Валерий says:

    Добрый день. Прошу совет как реализовать такую функцию. клиенты для которых делаю магазин, продают продукцию которая требует дополнительных сервисных услуг (в принципе стандартная дополнительная опция). Пакеты услуг бывают трех уровней. 100, 200, 300 у.е. задача такая, если покупатель выбирает товар и заказывает какую то опцию, нужно реализовать скидку на товар. пример. товар стоит 10 000, плюс пакет 100, стоимость за товар 10 000-10%=9 000+100=9100
    (200 -18%, 300 -23% соответственно).
    если пакет не выбирает — цена остается 10 000.
    жду совет. спасибо

  8. Tatjana says:

    Добрый день. Установила плагин, есть один вопросик. Как мне убрать подпись и кнопку под товаром на главной? Есть какие-то настройки и я их просто не вижу или нужно создать шаблон главной страницы и ручками прописать стили?

  9. Александр says:

    Здравствуйте,
    может кто знает как реализовать?
    Суть вопроса…
    В доставке есть такое как «Доставка Почтой» (медународная), установлена фиксированая стоимость за 1 единицу товара в корзине.
    Как сделать так, чтобы эта стоимость увеличивалась, если в корзине не 1, а 2, 3 и т.д. товара?
    напрмер:
    1 ед. товара = 300 руб.
    2 ед. товара = 600 руб.
    и т.д.
    главное, чтобы это автоматически было.

  10. Виталий says:

    Привет всем!
    Как быть??? Перепробовал всё, ничего не помогает.
    Ситуация: после покупки товара, как обычно идет оформление заказа и тут… ДУРДОМ!!!
    По мимо стандартных данных требует заполнить фамилию, индекс и т.д. Я даже сам своего индекса не помню. Как по убирать все лишние поля и оставить только имя, № телефона и e-mail?
    У меня вукоммерс на вордпресс.
    Нужной информации я нигде не нашел.
    Просто-помогите. очень прошу и заранее благодарю!!!

  11. Андрей says:

    Виталий, установите дополнение-плагин Saphali Woocommerce LITE
    к Woocommerce. Это дополнение поможет вам добавить\убрать необходимые поля с формы заказа.

  12. Ирина says:

    Добрый день! Вы не подскажите как можно избавиться от цены? в смысле мне нужно что бы при пустой цене все равно отправлял товар в корзину, или может скрыть поля для вывода цены. Мучаюсь уже очень долго и все равно не получается(

  13. Владимир Демянович (elims.org.ua) says:

    Добрый день. Можно попытаться скрыть через css, то есть сделать display:none для блока с ценой.

  14. Оксана says:

    Добрый день!

    Каким образом установить суммарный рейтинг всех товаров на общей странице магазина (а не на странице отдельного товара), чтобы в перспективе звезды рейтинга отображались в поисковике Гугла? Заранее спасибо за помощь!

  15. Любовь says:

    Спасибо большое за такую информативную и бесспорно полезную статью! Побежала всё внедрять

  16. Сергей says:

    Здравствуйте. Обыскал весь интернет и ничего не нашёл. Как решить проблему? В стилях ковырялся и ничего не помогает. Вот товар inplast-nn.ru/oborudovanie/konicheskij-ekstruder-pvx/#wp-toolbar под картинкой товара пустота и никак не получается сделать так чтобы текст писался и под картинкой. Получается я пишу текст и он пишется в столбик справа от картинки товара, а под картинкой пустота. Как заставить текст чтобы он ложился по всей ширине и под картинкой тоже. Ну как в обычных статьях на сайте. Очень прошу помочь. Мне кажется решение простое но я его не вижу..

  17. Екатерина says:

    Проблемка в том, что когда нажимаешь на «крестик», чтобы удалить товар, страница перезагружается. Мне необходимо, чтобы обновилась сама таблица заказа, без перезагрузки страницы.
    Нашла stackoverflow.com/questions/21900865/remove-product-in-the-cart-using-ajax-in-woocommerce такое решение, только не хватает понимания, куда этот код писать (в functions.php?). И там, насколько я поняла, дописать надо чуток, только я не пойму что дописать, и куда дописать

  18. Алексей says:

    Здравствуйте! Подскажите пожалуйста, как выводить товары из категорий списком ? Именно товары из категории на нужной странице?

  19. рита says:

    Добрый день, подскажите как на сайте сделать кликабельнную корзину?

  20. Игорь says:

    Здравствуйте! есть ли плагины для визуального редактирования шапки сайта(header) очень нужно сделать подобную шапку как на таком сайте mironline.com.ua/

  21. Владимир Демянович (elims.org.ua) says:

    добрый день. не встречал таких плагинов.

  22. Татьяна says:

    Добрый день. Подскажите возможно какой-то плагин для WooCommerce или др.путь реализации. У меня вариативные товары. Хотелось бы чтобы на странице магазина внизу под фото товара выводились маленькие миниатюры всех остальных вариантов товара. Сейчас все варианты товара можно просмотреть только зайдя на страницу товара, а хотелось бы чтобы покупатель их уже видел на странице магазина.

  23. Владимир says:

    как сделать на главной странице отображение товара ( фото, а справа описание и кнопка купить )

  24. Нурлыбек says:

    Как сделать так чтобы клиент сам писал цену?
    Мы продаем услуги, а цена разная на одну и ту же услугу.
    Жду ваших комментариев, спасибо.

  25. Алексей says:

    Спасибо. Ты есть в ВК или Facebook?

  26. Владимир Демянович (elims.org.ua) says:

    угу, контакты тут: https://elims.org.ua/about

  27. Эд says:

    Что бы в корзине был расчет стоимости доставки, к товару надо добавить вес продукта.
    Что бы доставка расчитывалась не только по России а и зарубеж, придется приобрести платную версию плагина Saphali — POST RUSSIA and EMS

Обсудить