Woocommerce - интернет магазина на CMS Wordpress - много модификаций - часть 2

Woocommerce — интернет магазина на CMS WordPress — много модификаций — часть 2

Ранее мы публиковали — множество хуков и модификаций для вашего Woocommerce магазина. Вот вторая часть. Обязательно сохраните — пригодится.

Если есть дополнительные хуки — публикуйте в комментариях мы обязательно их добавим как и автора.

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

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

Цифра 30 в указанном ниже коде задает количество товаров. Измените ее на нужную Вам.

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

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

Можете изменить на нужное Вам значение (в коде цифра 35).

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 колонки
}
}

Изменение полей оформления заказа в 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;
}

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

Нужно добавить такой код:

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

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

Не забудьте изменить ссылки «ваш_сайт.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).

Вот и все, если Вы хотите «поблагодарить» наше IT сообщество — у вас есть такая возможность: справа есть варианты для пожертвований на развитие портала. Или поделитесь статьей в ваших соц.сетях через сервис ниже.

Источник

Отправить ответ

Please Login to comment
Войти с помощью: 
  Subscribe  
Notify of
Authorization
*
*
Войти с помощью: 
Registration
*
*
*
Войти с помощью: 

one × two =

Password generation