/ Сайтостроение / Плагины / Настраиваем woocommerce

Настраиваем woocommerce

HIT

23.04.2016

6458

8

Настраиваем различные аспекты плагина woocommerce, под текущие задачи.

Ваша корзина пуста

Шаблон для настроек страницы корзины (когда она пуста) находится здесь:

woocommerce (локализованная в теме)/cart/cart-empty.php

Можно отцентрировать и добавить какое-либо изображение. Например:

Лэйбл «Распродажа»

Чтобы изменить слово «Распродажа» — надо отредактировать перевод woocommerce.

Проценты скидки

// Добавляем значение сэкономленных процентов рядом с ценой у товаров

add_filter( 'woocommerce_sale_price_html', 'woocommerce_custom_sales_price', 10, 2 );
function woocommerce_custom_sales_price( $price, $product ) {
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
  
return $price . sprintf( __(' Скидка %s', 'woocommerce' ), $percentage . '%' );
}

Изменение кнопок, ссылки, хлебные крошки

Добавляем в functions.php

// Изменить текст кнопки «Добавить в корзину» в шаблоне категорий
add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' );    // 2.1 +
function woo_archive_custom_cart_button_text() {
        return __( 'В корзину', 'woocommerce' );
}

// Изменить текст кнопки «Добавить в корзину» в шаблоне карточки товара
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_single_add_to_cart_text' );  // 2.1 +
function woo_custom_single_add_to_cart_text() {
    return __( 'В корзину', 'woocommerce' );
}




// Изменить ссылку на кнопке "Вернутся в магазин" из корзины когда она пуста
function wc_empty_cart_redirect_url() {
	return '/katalog-tovarov/';
}
add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );



// Если у товара нет цены, то выводить:
add_filter('woocommerce_empty_price_html', 'custom_call_for_price');

function custom_call_for_price() {
return 'Уточните цену по телефону';
}




// Добавить кнопку «Отчистить корзину» на страницу Корзина
add_action( 'woocommerce_cart_actions', 'insert_empty_cart_button', 40 );
function insert_empty_cart_button() {
    // Echo our Empty Cart button
    echo '<a class="button" href="'. $woocommerce->cart->get_cart_url .'?empty-cart">Очистить корзину</a>';

}
// проверяем параметр empty-cart для очистки корзины
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
  global $woocommerce;

	if ( isset( $_GET['empty-cart'] ) ) {
		$woocommerce->cart->empty_cart();
	}
}




// Добавляем конпку «Продолжить покупки» на страницу оформления 
function checkout_more_buttons() {
 echo '<a id="cont-buy" href="javascript:history.back()"><i class="fa fa-angle-left" aria-hidden="true"></i>Продолжить покупки</a>';
 }
 add_action ('woocommerce_review_order_before_submit', 'checkout_more_buttons', 5);

 
// Добавляем кнопку «Продолжить покупки» на страницу корзины
function cart_more_buttons() {
 echo '<a id="cont-buy" href="javascript:history.back()"><i class="fa fa-angle-left" aria-hidden="true"></i>Продолжить покупки</a>';
 }
 add_action ('woocommerce_after_cart_totals', 'cart_more_buttons', 5);

href=»javascript:history.back()» — возврат на предыдущую страницу


Можно вернутся на две страницы назад — для этого ставим эквивалентную команду history.go(-1)
и меняем на необходимое количество: href=»javascript:history.go(-2)»

Товар без цены, товар которого нет в наличие

Данные код выдает фатальную ошибку. Необходимо доработать!


Не работает с мини-корзиной ajax


Чтобы не отображать товар, которого нет в наличие. Нужно в настройках Woocommerce/Товары/Запасы поставить соответствующую галку Спрятать отсутствующие товары из каталога.

Чтобы спрятать кнопки у товаров, которых нет в наличие и товаров без цены

if (!function_exists('woocommerce_template_loop_add_to_cart')) {
	function woocommerce_template_loop_add_to_cart() {
		global $product;
		if ( ! $product->is_in_stock() || ! $product->is_purchasable() ) return;
		woocommerce_get_template('loop/add-to-cart.php');
	}
}

Чтобы изменить кнопки у товаров с отсутствующей ценой и которых нет в наличие

if (!function_exists('woocommerce_template_loop_add_to_cart')) {
	
  function woocommerce_template_loop_add_to_cart() {
	global $product;
	
		if (!$product->is_purchasable()) {echo '<a class="outstock_button" href="'.get_permalink().'" rel="nofollow">Уточните цену</a>';}
	    elseif (!$product->if (!$product->is_purchasable()) {echo '<a class="outstock_button" href="'.get_permalink().'" rel="nofollow">Нет в наличие</a>';}) {echo '<a class="outstock_button" href="'.get_permalink().'" rel="nofollow">Contact Us</a>';}

		else { woocommerce_get_template('loop/add-to-cart.php'); }
	}
}

Символ рубля

// Возвращаем нормальное отображение рубля руб. (или можно поставить символ рубля font-awesome)

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
 
function change_existing_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'RUB': $currency_symbol = ' <i class="fa fa-rub"></i>'; break;
     }
     return $currency_symbol;
}

Тэги: ,

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Выравнивание миниатюр товаров

Выравнивание миниатюр товаров

Идеальная ситуация, когда мы загружаем изображения для товаров (хотя бы для главного изображения) квадратными. т.е. заранее подготовленными, откадрированными. Но бывают случаи, когда на сайт начинают заливаться изображения разных пропорций. Сделаем Читать далее »

/
Статусы заказов

Статусы заказов

Как и любой интернет-магазин Woocommerce присваивает заказам определенные статусы в зависимости от отплаты и формирования заказа. Существует 7 различных статусов заказа: В ожидании оплаты (Pending payment) Обработка (Processing) На удержании Читать далее »

Переключение вида вывода товаров

Переключение вида вывода товаров

Для разных людей по разному удобно просматривать товары: когда они строятся в виде плиток, либо в линию или другими способами. Добавим на сайт функционал переключения вида отображения товаров в архивах. Читать далее »

/

Добавить комментарий

8 комментариев

  1. Алексей

    Куда нужно вставить этот код : Проценты скидки

    // Добавляем значение сэкономленных процентов рядом с ценой у товаров

    add_filter( ‘woocommerce_sale_price_html’, ‘woocommerce_custom_sales_price’, 10, 2 );
    function woocommerce_custom_sales_price( $price, $product ) {
    $percentage = round( ( ( $product->regular_price — $product->sale_price ) / $product->regular_price ) * 100 );

    return $price . sprintf( __(‘ Скидка %s’, ‘woocommerce’ ), $percentage . ‘%’ );
    }

  2. сергей

    Как вывести товары по меткам? Допустим несколько товаров имеют метку — какашка, а другие — моча. Надо чтобы над товарами можно было выбрать, моча или какашка, и да, если будут еще метки то надо чтобы предыдущие значения запомнились, допустим — какашка , коричневая

    1. Alexandr
      Alexandr

      Ну и примеры у вас). Данную задачу можно решить разными способами:
      1. Фильтром (WooCommerce Products Filter, YITH WooCommerce Ajax Product Filter).
      2. Дополнительным вызовом — по типу как здесь. Но для товаров woocommerce еще так не делал.
      3. Локально можно вывести товары по меткам шорткодом

  3. Дмитрий

    Доброй ночи. Подскажите, а как сделать сортировку по наличию товара?

    1. Alexandr
      Alexandr

      Вынес пользовательские варианты сортировки в отдельную статью. Дополнил вариантом сортировки по наличию.

  4. Dexploit

    Чтобы изменить кнопки у товаров с отсутствующей ценой и которых нет в наличие — скопировал код, поставил. Фатальная ошибка 🙂
    Пишет о синтаксической ошибке в строке с elseif, ругается на {

    Как поправить?

    1. Alexandr
      Alexandr

      Да вы правы! Фатальная ошибка.. Спасибо за замечание. Постараюсь на днях доработать этот код и внести исправления.

Настраиваем woocommerce
Плавный скроллинг по якорям
Рекомендации для васПлавный скроллинг по якорямOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.