Woocommerce shop orderby=RANDOM, как предотвратить повторение товаров при переходе на другую страницу с помощью нумераци ⇐ Php
Woocommerce shop orderby=RANDOM, как предотвратить повторение товаров при переходе на другую страницу с помощью нумераци
По сути, у меня есть рабочий код в функциях, который случайным образом отображает продукты для назначенной категории. Проблема в том, что при отображении продуктов, если они имеют нумерацию страниц, продукты показывают повторения на странице 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() { ?>
По сути, у меня есть рабочий код в функциях, который случайным образом отображает продукты для назначенной категории. Проблема в том, что при отображении продуктов, если они имеют нумерацию страниц, продукты показывают повторения на странице 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() { ?>
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Используют ли, когда и зачем numpy.random.rand(…) и numpy.random.random(…)?
Anonymous » » в форуме Python - 0 Ответы
- 65 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как включить случайную сортировку товаров для категорий товаров WooCommerce?
Anonymous » » в форуме Php - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как включить случайную сортировку товаров для категорий товаров WooCommerce?
Anonymous » » в форуме Php - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-