WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Сортировка товара

Есть ли плагин случайной сортировки чтобы можно настроить в исходной по умолчанию, минуя шорткоды?

Заметки к вопросу:
stepan 2.3 года назад

есть фильтры, которые позволяют изменить стандартную сортировку товара

nikita-volkis 2.3 года назад

Можно узнать какие?

stepan 2.3 года назад

а о каких товарах идет речь?
о какой странице?
какой плагиин добавл товары?

nikita-volkis 2.3 года назад

Есть сайт маркетплейс корейских товаров: На главной странице у меня шорткоды один из них отображает последние добавления товара. Мне нужно чтобы когда заходишь на страницу где находятся все товары,для этого установил плагин WooCommerce Random Product Sorting with Pagination и в настойке задал исходную в Woocomerce по умолчанию на рандом, но из-за этого у меня на главной странице в шоркоде где должны отображаться товары по последним добавлениям тоже принял рандомную сортировку. Общая проблема заключается в том что сайт создан для продавцов чтобы они через нас могли продавать и на странице и в разделе категории сначала идут товары от одного продавца потом от другого и товаров у них тысяча и на первой пагинации кажется что товары у нас от одного продавца.

Думаю смог вам объяснить?

stepan 2.3 года назад

Сразу говорю - рандомная сортировка - это плохо скажется на производительности.

nikita-volkis 2.3 года назад

Можете объяснить? и как можно сделать?

[caption class="aligncenter" width="500"] Это последнее добавление [/caption] [caption class="aligncenter" width="500"] Это товары от одного и того же продавца[/caption]

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

Заранее извиняюсь за мою повторную проблему

nikita-volkis 2.3 года назад

Может исходная сортировка влияет на всё, не смотря на шорткоды?

stepan 2.3 года назад

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

nikita-volkis 2.3 года назад
[caption class="aligncenter" width="349"] Мне нужно чтобы здесь была стояла рандомная сортировка по умолчанию[/caption]

а этот шорткод:
[recent_products per_page="12" orderby="post_date" columns="6" order="DESC" visibility="visible"]
не ломался и не принимал рандомную сортировку

stepan 2.3 года назад

Вы читали - пробовали код что ниже в ответе??
Ну да ладно.

0
nikita-volkis
2.3 года назад
  • 1
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    https://rudrastyh.com/woocommerce/random-product-order-with-pagination.html
    Когда проверите код - отпишитесь, работает ли и как исправили под себя.

    stepan 2.3 года назад

    Рабочий код, немного изменил.
    Рандомная сортировка будет на странице shop

    if (session_status() == PHP_SESSION_NONE) {
    	session_start();
    }
    
    add_filter( 'posts_orderby', 'misha_rand_order_with_seed' );
    function misha_rand_order_with_seed( $orderby ){
    
    	if( !is_shop() ) return $orderby;
    
    	// do the magic only when "Sort in a random order" is selected
    	if( ! isset( $_GET['orderby'] ) ) {
    
    		// reset the order each time the 1st page is visited
    		if( ! is_paged() && isset( $_SESSION['seed'] ) ) {
    			unset( $_SESSION['seed'] );
    		}
    
    		$seed = false;
    		if( isset( $_SESSION['seed'] ) ) {
    			$seed = $_SESSION['seed'];
    		}
    
    		// Set a new seed if not exists
    		if ( ! $seed ) {
    			$seed = rand();
    			$_SESSION['seed'] = $seed;
    		}
    
    		// pass it to an SQL query
    		$orderby = 'RAND(' . $seed . ')';
    
    	}
    
    	return $orderby;
    
    }
    stepan 2.3 года назад

    если нужно рандомная сортировка и на странице категорий магазина - то
    заменить

    if( !is_shop() ) return $orderby;

    на

    if ( ! is_shop() && ! is_product_category() ) {
    		return $orderby;
    	}
    nikita-volkis 2.3 года назад

    Большое спасибо, код работает и простите что не увидел код который вы мне отправили

    stepan 2.3 года назад

    Я код НЕ отправлял, только сегодня добавил.
    Я ссылку скинул, откуда взял решение.
    Там было решение. Вам нужно было его под себя подправить.
    НО я понял, что с кодом вы не дружите smile
    Только плагины.

    Отмечайте вопрос как решенным.

    nikita-volkis 2.3 года назад

    На самом деле я front-end-разработчик.

    Роман 9 месяцев назад

    stepan код замечательно работает только товары дублируются в пагинация. Это можно как то исправить?

    kyzia 9 месяцев назад

    И еще на хостинге появляются сообщения о блокировке сессии.

    kyzia 9 месяцев назад

    И еще маленькая странность. Когда авторизированный, под админом, просматриваю страницы то дубляжей вроде нет. А если без авторизации то есть.

    stepan 9 месяцев назад

    Рандомная сортировка - это плохо.
    Рандомная сортировка и пагинация - это дорого.
    Если используете рандомную сортировку - то пагинация не предусмотрено. Зачем вообще такое делать - каждый раз рандомно что-то показывать + еще пагинацию добавлять.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация