Пара тапок » Woocommerce http://paratapok.ru Блог о веб-разработке Sun, 18 Dec 2022 12:14:48 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.3.34 Как в WooCommerce убрать товары определенной категории с главной страницы магазина? http://paratapok.ru/backend/4642_kak-v-woocommerce-ubrat-tovary-opredelennoj-kategorii-s-glavnoj-stranicy-magazina/ http://paratapok.ru/backend/4642_kak-v-woocommerce-ubrat-tovary-opredelennoj-kategorii-s-glavnoj-stranicy-magazina/#comments Fri, 18 May 2018 18:46:50 +0000 http://paratapok.ru/?p=4642 Читать далее →]]> Представим себе ситуацию, когда на главной странице магазина нужно из списка товаров удалить товары какой-то конкретной категории, например, «Подарочные сертификаты» или ещё какой-то другой мало значимой группы товаров.

Для этого нужно на событие pre_get_posts повесить кастомное действие, в котором следует сначала убедиться, что выполняется получение списка товаров именно на главной странице, а затем отсеять товары ненужной категории, скорректировав параметры запроса $query. Для этого в свойстве terms следует передать массив отбрасываемых категорий, а в operator отрицание вхождения в указанный список.

Рассматриваемое событие тригерится при каждом запросе WP_Query, непосредственно перед самим запросом в БД. Используется для того, чтобы модифицировать запрос, что мы и делаем в рамках решения обозначенной в заголовке статьи задачи. Важно помнить, что исключить товары заданной категории мы хотим в публичной части магазина, поэтому не забываем проверять, что запрос относится именно к ней с помощью условия !is_admin().

Таким образом, для отсеивания товаров заданных категорий с главной страницы магазина WooCommerce нужно добавить в конец файла /wp-content/themes/название_вашей_темы/functions.php следующий кусок кода:

// Удаляет товары заданных категорий из списка на главной странице магазина
function remove_goods_category($query) {
    if ($query->is_main_query() || $query->is_post_type_archive()) {
        if (!is_admin() && is_shop()) {
            $query->set("tax_query", array(array(
                "taxonomy" => "product_cat",
                "field" => "slug",
                "terms" => array("gifts"),
                "operator" => "NOT IN"
            )));
        }
    }
}
add_action("pre_get_posts", "remove_goods_category");
]]>
http://paratapok.ru/backend/4642_kak-v-woocommerce-ubrat-tovary-opredelennoj-kategorii-s-glavnoj-stranicy-magazina/feed/ 2
Ссылки на товары и категории Woocommerce в админке http://paratapok.ru/backend/4364_ssylki-na-tovary-i-kategorii-woocommerce-v-adminke/ http://paratapok.ru/backend/4364_ssylki-na-tovary-i-kategorii-woocommerce-v-adminke/#comments Sun, 01 Apr 2018 18:11:20 +0000 http://paratapok.ru/?p=4364 Читать далее →]]> В какой-то момент, возможно при очередном обновлении версии WordPress или установке каких-то плагинов, в админке в левом меню исчез раздел «Товары» под пунктом Woocommerce. В итоге в админке нельзя ни просмотреть весь список товаров, ни отредактировать список категорий.

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

Возможно кому-то когда-то пригодятся, сохраню как минимум для себя.

  • Ссылка на список товаров в админке — /wp-admin/edit.php?post_type=product
  • Ссылка на список категорий товаров в админке — /wp-admin/edit-tags.php?taxonomy=product_cat&post_type=product
]]>
http://paratapok.ru/backend/4364_ssylki-na-tovary-i-kategorii-woocommerce-v-adminke/feed/ 0