• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Плагин FacetWP - Расширенные фильтры для WordPress

3.5.4 не затруднит выложить с актуальными версиями плагинов?
 
Всем добра! Интересует, как с помощью FacetWP сделать инклюзивный фильтр ? Т.е. сейчас на сайте работает фильтр который выводит посты исходя из дат (вводятся через ACF date field repeater) указанных в посте. Но на данный момент, фильтр выводит посты которые входят в выбранный диапазон дат, а мне нужно что бы даты которые введены в пост были наоборот исключены из результата фильтрации.

Например, если человек ищет даты с 05.11 до 10.11, и у меня в посте отмечены эти даты, то после фильтрации пост не должен быть в выдаче. Во время добавления дат мы отмечаем "дату когда объект закрыт". Нашел хук facetwp_facet_filter_posts, но разобраться до конца так и не смог.

Надеюсь внятно объяснил. Буду рад любой помощи - спасибо большое!
 
Нашел хук facetwp_facet_filter_posts, но разобраться до конца так и не смог.
на каком моменте разбора остановились ? вот код про который вы говорите Для просмотра ссылки Войди или Зарегистрируйся

подразумевается, что для передачи данных в функцию вы используете, например, тип фасета date-range(диапозон дат) Для просмотра ссылки Войди или Зарегистрируйся ( но можете и другой любой, который передаёт несколько параметров).

Код:
add_filter( 'facetwp_facet_filter_posts', function( $return, $params ) {
    $selected_values = $params['selected_values'];

    if ( 'availability' == $params['facet']['name'] ) {  //  availability - название вашего фасета, например, название типа из date-range
        $start_date = $selected_values[0]; // это первая дата из диапазона date-range
        $end_date = $selected_values[1]; // это вторая

        // get post IDs of available rooms between these dates
        $post_ids = fake_get_available_rooms( $start_date, $end_date ); 
// fake_get_available_rooms - это ваша функция, в которой вы что-то делаете с диапазоном дат
// и возвращаете результат в виде id постов для отображения.
// fake_get_available_rooms - логику работы этой функции вы должны самостоятельно написать
// судя по вашему описанию, она должна исключить все посты , у которых некое произвольное поле лежит в диапазоне $start_date $end_date
        return $post_ids;
    }
    return $return;
}, 10, 2 );

вот есть, например, готовое решение - функция, которая возвращает все даты диапазона
Для просмотра ссылки Войди или Зарегистрируйся.

если вы её доработаете, то можете получить не массив дат на выходе, а массив id постов диапазона.

далее вам нужно взять все id постов в массив.

в результате у вас будет 2 массива - один со всеми постами, второй с теми, что лежат в диапазоне.

теперь просто объединяете и уникализируете эти два массива.

возвращаете оставшиеся id - это и есть ваши посты, произвольные поля , которых лежать вне диапазона дат
 
Последнее редактирование:
Поделитесь пожалуйста у кого есть версия более новая чем 3.4.7. В посте выше есть ссылка но уже нерабочая
 
  • Заблокирован
  • #56
FacetWP v3.9.5 + Addons
Скрытое содержимое доступно для зарегистрированных пользователей!

FacetWP v4.0.1+ Addons
Скрытое содержимое доступно для зарегистрированных пользователей!
 
FacetWP v4.1.4 + Addons
Не забудьте сделать резервную копию перед обновлением

Источник: С просторов интернета. Используйте на свой страх и риск.
NewAdded "No results text" field to the listing builder
ImprovedWP-CLI integration - use temp table, just like the UI version
FixedJSON response - ensure that "action" is a string (3rd party plugins sometimes break this standard)
UpdatedBuild tools
 
свежих версий нет?
 
Назад
Сверху