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

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

HIT

23.04.2016

7286

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

Тэги: ,

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

  • Похожие записи
  • Комментарии
  • Вложения
Metabox woocommerce

Metabox woocommerce

У плагина woocommerce есть набор дополнительных полей при редактировании товара. При необходимости можно в группы полей WC добавить свои произвольные metabox. Должно получится так: Создание и отображение metabox Первый экшн Читать далее »

/
Поле для вариативного товара

Поле для вариативного товара

Как делать произвольные (пользовательские) поля для товаров Woocommerce описано здесь. Но теперь пойдем дальше — сделаем поле для вариативного товара. Это должно открыть горизонты для интересных решений. Но я предвижу Читать далее »

Метод изменения шаблонов woocommerce

Метод изменения шаблонов woocommerce

В данной статье будет рассмотрен метод изменения шаблонов плагина Woocommerce. Разделение шаблонов категории и товара Первым делом надо разделить общий шаблон woocommerce.php на woocommerce-product.php и woocommerce-category.php. Делаем это простой проверкой: Читать далее »

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

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 минут.