Woocommerce shop orderby=RANDOM, как предотвратить повторение товаров при переходе на другую страницу с помощью нумерациPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Woocommerce shop orderby=RANDOM, как предотвратить повторение товаров при переходе на другую страницу с помощью нумераци

Сообщение Anonymous »


По сути, у меня есть рабочий код в функциях, который случайным образом отображает продукты для назначенной категории. Проблема в том, что при отображении продуктов, если они имеют нумерацию страниц, продукты показывают повторения на странице 2/3/... Я пытаюсь предотвратить это.

Я пробовал внедрить в свой рабочий код плагин, который делает именно это, но не для конкретной категории.

Итак, я пытаюсь рандомизировать порядок товаров для определенной категории. Это код, который это делает (но с повторением на странице 2/3/...)

function custom_catalog_ordering_args_8($args) { $product_category = 'бестселлеры'; if( ! is_product_category($product_category)) возвращает $args; // Установите порядок по умолчанию на «идентификатор даты», то есть «новизна». $args['orderby'] = 'рандом'; if( $args['orderby'] == 'идентификатор даты') $args['order'] = 'DESC'; // Устанавливаем порядок по DESC вернуть $арги; } add_filter('woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args_8', 20, 1); Ниже приведен код плагина, который предотвращает повторение продуктов, создавая временный срок службы в один час. ` //добавим настройку «Случайный» в меню сортировки товаров функция do2_addRandomProductOrderSetting($sortby){ $sortby['random_order'] = 'Случайный'; вернуть $сортировку; } add_filter('woocommerce_default_catalog_orderby_options','do2_addRandomProductOrderSetting'); add_filter('woocommerce_catalog_orderby','do2_addRandomProductOrderSetting'); //рандомизировать продукты при использовании настроек функция do2_randomizeProductWhenSet($args){ $orderbySetting = isset($_GET['orderby']) ? wc_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby')); if('random_order' == $orderbySetting){ if(false===($seed = get_transient('do2_randSeed'))){ $семя = рандом(); set_transient('do2_randSeed', $seed, 3600); } $args['orderby'] = 'RAND('.$seed.')'; $args['order'] = ''; $args['meta_key'] = ''; } вернуть $арги; } add_filter('woocommerce_get_catalog_ordering_args','do2_randomizeProductWhenSet'); } } еще { if(!function_exists('do2_WooCommerceAdminNotice')){ //предупреждаем об отсутствии WooCommerce функция do2_WooCommerceAdminNotice() { ?>
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»