Wednesday, April 15, 2015

WOOCOMMERCE — МОДИФИКАЦИЯ И ТОНКАЯ НАСТРОЙКА

http://maxtop.org/internet-magazin-besplatno/woocommerce-modifikaciya-i-tonkaya-nastrojka/

WOOCOMMERCE — МОДИФИКАЦИЯ И ТОНКАЯ НАСТРОЙКА

Рассмотрим тонкую настройку компонента интернет-магазина WooCommerce без внесения изменений в ядро. Описанные здесь модификации безопасны и валидны. При обновлении WordPress и WooCommerce никакие модификации не будут утрачены.

Перед внесением любых изменений рекомендую выполнить резервное копирование сайта (и базы данных).

Добавление валюты «Российский рубль» в магазин на WooCommerce.

Эта модификация добавит рубль в ваш магазин на WooCommerce. Вы можете установитьплагин Saphali Lite и рубль будет добавлен автоматически в комплекте с плагином.

Откройте файл функции темы (для вашей активной темы оформления WordPress). Для этого в админ. панели перейдите в меню «Внешний вид» --> «Редактор» --> «Функции темы» — файл functions.php. Добавьте указанный код в конец файла и сохраните:

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;  }

Изменение количества товаров на одной странице магазина WooCommerce.

Я рекомендую использовать плагин WooCommerce Customizer — он позволит настроить число продуктов на страницу, число колонок с продуктами на странице магазина.

Если хотите работать без плагина, Вы можете установить произвольное количество товаров, отображаемое по умолчанию на странице Вашего магазина. Цифра 30 в указанном ниже коде задает количество товаров. Измените ее на нужную Вам. Добавьте код в файл functions.php:

add_filter('loop_shop_per_page', create_function('$cols', 'return 30;'));

Количество товара в колонке Вашего магазина.

Можете изменить на нужное Вам значение (в коде цифра 35). Код добавляем как обычно в functions.php:

add_filter('loop_shop_columns', 'loop_columns');   if (!function_exists('loop_columns')) {   function loop_columns() {   return 35;   }   }

Изменяет количество up-sells товаров.

Up-sells — это товары или продукты, которые вы рекомендуете вместо просматриваемых клиентом товаров Пример: более выгодные и недорогие либо более качественные и функциональные, но дорогие варианты.

Цифры в коде означают число колонок и число товара в колонках. Добавьте код в функции темы как обычно:

remove_action( 'woocommerce_after_single_product', 'woocommerce_upsell_display');  add_action( 'woocommerce_after_single_product', 'woocommerce_output_upsells', 20);  if (!function_exists('woocommerce_output_upsells')) {  function woocommerce_output_upsells() {  woocommerce_upsell_display(4,4); // Показать 4 товара в 4 колонки  }  }

Изменяем количество сопутствующих товаров.

Сопутствующие товары отображаются в карточке товара внизу страницы под основным товаром. По умолчанию отображается 2 сопутствующих товара. Изменим число сопутствующих товаров. Цифры задают число товаров и число колонок. Код вносим в файл functions.php:

function woocommerce_output_related_products() {   woocommerce_related_products(4,4); // Показать 4 товара а 4 колонки   }

Изменение полей оформления заказа в WooCommerce.

Я рекомендую изменять набор полей для оформления заказа с помощью плагина Saphali Lite. Но это можно сделать с помощью правки функций темы. Ниже пример кода, который удалит указанные поля:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );   function custom_override_checkout_fields( $fields ) { /*Убрали ненужные поля*/   unset($fields['billing']['billing_company']);   unset($fields['billing']['billing_country']);   unset($fields['billing']['billing_address_2']);   unset($fields['billing']['billing_state']);   return $fields;   }   add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');   function custom_woocommerce_billing_fields( $fields ) {   $fields['billing_address_1']['class'] = array( 'form-row-wide' ); /*Поле адреса шире*/   return $fields;   }

Скрыть отображение количества товаров в категории.

В functions.php темы оформления нужно добавить такой код:

add_filter( 'woocommerce_subcategory_count_html', 'jk_hide_category_count' );  function jk_hide_category_count() {  }

Изменяем обертки (wrapper) для нашего шаблона на страницах интернет-магазина.

В принципе для WooCommerce-совместимых шаблонов это не требуется. Если хотите проэкспериментировать, код такой:

remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10); // Убрали  remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);  add_action('woocommerce_before_main_content', create_function('', 'echo "<div id=\"contentwrapper\"><div id=  \"content\">";'), 10);  function divandsidebar_function(){  echo "</div></div>";  get_sidebar('left'); // после обертки вызвали sidebar-left.php  }  add_action('woocommerce_after_main_content', 'divandsidebar_function', 10);  // Свои поставили

Убираем кнопку «В корзину» на основной витрине магазина.

Код как обычно добавляем в функции темы:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);

Меняем местами краткое описание товара и цену.

Если Вы хотите поменять местами краткое описание и цену, добавьте такой код в functions.php:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);   remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);   add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 20);   add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);   function HB_woocommerce_template_dimensions(){ //Добавим функцию вызова панельки с размерами и весом   global $woocommerce, $post, $product;   $product->list_attributes();   }   add_action( 'woocommerce_single_product_summary', 'HB_woocommerce_template_dimensions', 15); //Поставим панельку после краткого описания

Убираем хлебные крошки на страницах магазина WooCommerce и на странице карточки товара.

Если Вам не нравятся стандартные хлебные крошки WooCommerce или вместо них у Вас есть специальный плагин, выводящий Breadcrumbs, то добавться в functions.php такой код:

remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0);

Убираем вкладку «Дополнительное описание» товаров в магазине WooCommerce:

Если Вам не нужно дополнительное описание, то убрать его просто. Добавим в функции темы код:

remove_action( 'woocommerce_product_tabs', 'woocommerce_product_attributes_tab', 20 );   remove_action( 'woocommerce_product_tab_panels', 'woocommerce_product_attributes_panel', 20 );

Перенаправление (редирект) клиента после авторизации в магазине на нужную Вам страницу.

Чтобы после входа в личный кабинет клиент переходил на ту страницу, которую Вы хотите задать (адрес страницы в коде /checkout замените на нужный), добавьте такой код в функции темы:

add_filter('woocommerce_login_widget_redirect', 'custom_login_redirect');   function custom_login_redirect( $redirect_to ) {   $redirect_to = '/checkout';   }

Меняем местами постраничную навигацию и сортировку.

Поменяем местами постраничную навигацию (список страниц внизу) и блок сортировки (вверху — по убыванию/возрастанию цены и т.д.). Код такой:

remove_action( 'woocommerce_pagination', 'woocommerce_pagination', 10 );   remove_action( 'woocommerce_pagination', 'woocommerce_catalog_ordering', 20 );   function pre_woocommerce_pagination(){ //Добавим текст перед списком   echo '<span>Сортировка: </span>';   }   add_action( 'woocommerce_pagination', 'pre_woocommerce_pagination', 5 );   add_action( 'woocommerce_pagination', 'woocommerce_catalog_ordering', 10 );   add_action( 'woocommerce_pagination', 'woocommerce_pagination', 20 );

Добавляем навигацию и сортировку  в начало страницы.

Код вносим как всегда в functions.php:

add_action( 'woocommerce_before_shop_loop', 'pre_woocommerce_pagination', 1 );  add_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 2 );  add_action( 'woocommerce_before_shop_loop', 'woocommerce_pagination', 3 );

Делаем поля в форме заказа WooCommerce необязательными.

add_filter( 'woocommerce_checkout_fields' , 'no_required_checkout_fields' );   function no_required_checkout_fields( $fields ) {   $fields['billing']['billing_last_name']['required'] = false;   $fields['billing']['billing_address_1']['required'] = false;   $fields['billing']['billing_city']['required'] = false;   $fields['billing']['billing_postcode']['required'] = false;   return $fields;   }

Ставим кнопки «Продолжить покупки» и «Оформить заказ» вниз страницы корзины WooCommerce.

Не забудьте изменить ссылки «ваш_сайт.ru» на правильный адрес вашего сайта.

function cart_more_buttons() {   echo '<a href="http://ваш_сайт.ru/shop/"> ← Продолжить покупки</a><a href="http://ваш_сайт.ru/checkout/">Оформить заказ →</a>';   }   add_action ('woocommerce_after_cart_totals', 'cart_more_buttons', 5);

Добавляем конпку «Продолжить покупки» на страницу оформления заказа.

Не забудьте изменить ссылки «ваш_сайт.ru» на правильный адрес вашего сайта.

function checkout_more_buttons() {   echo '<a href="http://ваш_сайт.ru/shop/"> ← Продолжить покупки</a>';   }   add_action ('woocommerce_review_order_before_submit', 'checkout_more_buttons', 5);

Мы рассмотрели основные параметры тонкой настройки магазина на WooCommerce с помощью валидного способа правки функций темы (файла functions.php).

No comments:

Post a Comment