X
Заказать услугу

Сортировка товаров по наличию в Woocommerce WordPress

Плагины и Шаблоны для Wordpress
  • 2019-08-20
  • 55 просмотр

    0 комментарий

  • Дизайн и разработка сайта

Доброго времени суток. 🙂

Продолжаем серию статей о Woocommerce и сегодня разберем как сделать сортировку товаров по наличию. Недавно столкнулся с такой задачей на одном из клиентских сайтов. Решение простое и очень полезное.

Сортировка товаров по наличию в Woocommerce WordPress

Если вы занимаетесь разработкой собственного магазина или помогаете в с этим кому-то, то можете так же столкнутся с такой проблемой, что товары, которых нет в наличии выводятся перед теми, что есть на складе. Таким образом, посетители могут не увидеть ваши горячие предложения и вы потеряете клиента.

Конечно же, вы можете отключить показ товаров которых нет в наличии в настройках плагина Woocommerce. Сделать это можно перейдя по вкладке в консоли - Woocommerce - Настройки - вкладка Товары - вкладка Запасы и там вы найдете:

Спрятать отсутствующие товары Woocommerce WordPress

Но, полное отключение товаров, которых нет в наличии, может быть не совсем хорошим шагом. Ведь эти страницы повлекут потом за собой 404 ошибки, выпадут из поисковиков, а значит упадет трафик. Как известно, это не очень хорошо. Вы можете как то привлечь внимание покупателя, даже если товара нет в наличии. Если товара нет временно, можно сделать возможность сообщения, когда тот появится. Если же товар, например, снят с производства, то можно предлагать аналоги или похожие. В общем, не обязательно терять посетителей и удалять страницы. Единственное, это неправильная сортировка, что может отпугнуть посетителей, ее мы и исправим с вами сейчас.

Для этого нужно добавить небольшой код в файл функций. Как я говорил в прошлых статьях, можно добавлять в файл пользовательских функций function.php. Если вы послушались моего совета и создали отдельный файл для Woocommerce, то добавлять нужно в него, чтобы не путать функции темы и Woocommerce, если вы планируете их добавлять много. Подробнее об этом в предыдущей статье - Как подключить Woocommerce к своей теме WordPress.

Перед изменением function.php или того файла что у вас для функций Woocommerce, обязательно сохраните его копию, чтобы в дальнейшем, в случаи ошибки, вернуть все как было.

// Сначала показывать товар в наличии
class iWC_Orderby_Stock_Status{
public function __construct(){
	if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
	add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000);
}
}
public function order_by_stock_status($posts_clauses){
global $wpdb;
if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag())) {
	$posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
	$posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
	$posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
}
return $posts_clauses;
}
}
new iWC_Orderby_Stock_Status;

По коду все просто, добавили в конец файла или куда вам удобно, если вы знаете как работать с кодом и для вас это не проблема.

На этом все, спасибо за внимание. 🙂

Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)

Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 1, в среднем: 5 из 5
Читайте также
Комментариев нет. Оставьте первый

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

Чтобы оставить комментарий - заполните поля ниже. Ваш e-mail не будет опубликован. Все поля обязательны

Нажмите, чтобы добавить код в комментарий. Далее добавьте свой код внутрь тегов <code> тут код </code>
Я ознакомлен(а) с политикой конфиденциальности и даю согласие на обработку персональных данных*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.