Woocommerce — интернет магазина на CMS WordPress — много модификаций — часть 2
- Stats: 2580 1
- Author: admin
- Category: CMS WordPress
- Comments: Комментариев нет
Ранее мы публиковали — множество хуков и модификаций для вашего 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 сообщество — у вас есть такая возможность: справа есть варианты для пожертвований на развитие портала. Или поделитесь статьей в ваших соц.сетях через сервис ниже.
Отправить ответ