@WebforSelf

Как отключить кэширование у рандомных товаров Woocomerce?

Такая задача, нужно чтоб товары которые вывожу через шорткод не кешировались, а брал постоянно новые

Нашел в API такую функцию

protected function get_transient_name() {
		$transient_name = 'wc_product_loop_' . md5( wp_json_encode( $this->query_args ) . $this->type );

		if ( 'rand' === $this->query_args['orderby'] ) {
			// When using rand, we'll cache a number of random queries and pull those to avoid querying rand on each page load.
			$rand_index      = wp_rand( 0, max( 1, absint( apply_filters( 'woocommerce_product_query_max_rand_cache_count', 5 ) ) ) );
			$transient_name .= $rand_index;
		}

		return $transient_name;
	}


Можно через фильтры как то отключить чтоб товары собирались рандомом из всех которые заложены шорткодом.

[products attribute="stil" terms="Дизайнерский" orderby="rand" limit="8"]


То есть все товары (а их 500 где то) будут рандомно крутиться. А сейчас только несколько блоков которые статичны и меняются переодически.
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@WebforSelf Автор вопроса
Вдруг кому пригодится, правда решение не правильное, т.к. затрется при обновлении, надо выносить в функшен

$rand_index = wp_rand( 0, max );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы