Вопрос или проблема
У меня есть сайт недвижимости с пользовательской формой поиска для минимальной и максимальной площади.
Зарегистрированный пользователь выполняет поиск с минимальным (например, 150 кв. футов) и максимальным (например, 300 кв. футов) значением выбора.
Мне уже удалось сохранить в куки минимальные и максимальные значения.
Затем пользователь может нажать на кнопку “сохранить этот поиск”.
Я хотел бы сохранить эти значения в базе данных и показывать их на странице профиля каждого пользователя (которую я уже создал).
Когда пользователь заходит на страницу профиля, я хотел бы видеть список всех сохраненных поисков.
Надеюсь, это понятно.
В идеале пользовательская страница будет выглядеть так:
Сохраненный поиск 1: 150 кв. футов – 300 кв. футов
Сохраненный поиск 2: 500 кв. футов – 800 кв. футов
…
Это возможно? Как мне это сделать?
Я довольно новый в настройке шаблонов WordPress, я бы очень оценил любую помощь.
Предполагая, что у этих пользователей есть учетные записи на вашем сайте (они являются подписчиками, авторами или имеют другую роль), вы можете добавить настраиваемые поля в их профили. Самый простой способ — использовать плагин, такой как Advanced Custom Fields (https://wordpress.org/plugins/advanced-custom-fields/).
Поля будут доступны на страницах их профилей, и вы сможете добавлять и использовать их в любом шаблоне.
Я бы дал примеры кода, но их сайт, похоже, не работает… Я постараюсь обновить ответ, когда он снова станет доступен.
Обновление: ACF может позаботиться о создании полей и отображении их на странице профиля пользователя, и вы можете использовать add_user_meta для их сохранения:
add_user_meta( $user_id, 'custom_field_name', $search);
Если вы не хотите использовать ACF, вы можете отображать поля в профиле с использованием пользовательского кода. Удаление поисков будет немного сложнее, но возможно.
Подводя итоги:
Создайте новый пост и сохраните информацию о поиске как мета-данные поста, затем обращайтесь к ним позже по идентификатору поста.
Создайте настраиваемый тип поста
Узнайте, как сохранить мета-данные поста
Используйте wp_insert_post для сохранения поста и мета-данных, когда поиск сохранен
Выводите в шаблонах с использованием обычных циклов
Это дает нам решение на серверной стороне, которое может быть связано с данными, которые вы упомянули, решением на стороне клиента могло бы быть добавление данных в window.localStorage
для последующего поиска и предзаполнения входных данных формы.
Ответ или решение
Конечно, давайте рассмотрим, как реализовать сохранение критериев поиска на вашем сайте WordPress с учетом предоставленного контекста.
F (Fact) — Текущая ситуация:
Вы владеете сайтом недвижимости с поисковой формой, которая позволяет пользователям фильтровать объявления по площади (минимальная и максимальная площадь в квадратных футах). Пользователь может сохранить критерии поиска, чтобы потом быстро получить доступ к этой информации на своей персональной странице.
O (Objective) — Что нужно сделать:
Вам необходимо решить следующие задачи:
- Хранение информации о критериях поиска каждого пользователя в базе данных.
- Отображение сохраненных поисков на пользовательской странице профиля.
- Обеспечение возможности добавления, обновления и удаления сохраненных поисков, если потребуется.
R (Reason) — Почему это важно:
Подобная функция значительно улучшит пользовательский опыт, позволяя клиентам быстро находить интересующие их объекты, что повысит вовлеченность и удовлетворенность пользователей.
E (Evidence) — Примеры и доказательства:
Использование плагина Advanced Custom Fields (ACF) позволяет легко добавлять и настраивать пользовательские поля на страницах профиля пользователя, непосредственно интегрируя их в темы WordPress. Это решает задачу хранения данных поисков и их вывода без необходимости углубленных знаний программирования.
S (Solution) — Как это реализовать:
-
Создание пользовательских полей: Используйте плагин ACF для добавления пользовательских полей в профили пользователей. Эти поля будут хранить данные о минимальной и максимальной площади.
-
Сохранение данных поиска в базу данных: При нажатии на кнопку "сохранить этот поиск" используйте PHP-функцию WordPress
add_user_meta
для сохранения этих данных:add_user_meta( $user_id, 'saved_search', array('min_sqft' => $min_sqft, 'max_sqft' => $max_sqft) );
-
Отображение данных на странице профиля: Извлекайте сохраненные параметры поиска с помощью
get_user_meta
и отображайте их на персональной странице пользователя:$saved_searches = get_user_meta( $user_id, 'saved_search' ); foreach ($saved_searches as $search) { echo 'Saved Search: '. $search['min_sqft'] . 'sq ft - ' . $search['max_sqft'] . ' sq ft<br>'; }
-
Управление поисками: Если предусмотрено добавление дополнительных возможностей, таких как удаление критериев поиска, используйте функции
delete_user_meta
для управления данными.
T (Testimony) — Заключение и призыв к действию:
Эта методология обеспечит надежное хранение и управление данными поиска пользователей, повысив качество работы вашего сайта. Если у вас возникнут вопросы или потребуются дополнительные консультации по настройке, не стесняйтесь обратиться к специализированным сообществам разработчиков или нанимайте профессионалов для получения наилучших результатов.
Эта реализация будет органично интегрирована в WordPress, улучшая пользовательский опыт и обеспечивая простоту дальнейшей поддержки и масштабируемости сайта.