Intereting Posts
Как должен работать WP_Customize_Background_Image_Control? Переписать СРТ в постоянные ссылки на субдомены Создайте родительскую страницу на странице ребенка и автоматически добавьте ее в меню Невозможно получить доступ к панели мониторинга после автоматического обновления 4.8.1 Archive.php не отображает теги WP аудиоплеер с предыдущими опциями Несколько пользовательских типов сообщений на странице индекса с настраиваемыми шаблонами Проблемы, исключающие пользовательский пост-тип из цикла wp_nav_menu и его резерв Размещение сообщения WordPress с использованием post_class Admin user edit – Захватить вновь представленную мета-пользователя сразу после обновления / отправки Как прослушивать изменения цвета на панели выбора цветов? Каков наилучший способ хранения нескольких полей? Пользовательский запрос xmlrpc не передает параметры? Как включить настраиваемые поля, которые отключены по темам?

Скрыть гравитационные формы

У меня есть формы гравитации, настроенные на моем сайте, и я хочу скрыть / показать форму, основанную на том, разместил ли пользователь запись в форме / базе данных. Если они сделали запись, я хочу скрыть ее и отобразить простой текст.

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

Я предполагаю, что мне придется запрашивать базу данных, но я не уверен, что лучший способ ее написать. Должен ли я использовать что-то вроде get_posts и проверить, есть ли у автора запись? Будет ли это лучшим способом сделать это?

Solutions Collecting From Web of "Скрыть гравитационные формы"

Попробуй это;

<?php $user = wp_get_current_user(); if ( count_user_posts( $user->ID ) >= 1 ) { // echo your text snippet } else { // echo your form } ?> 

1) wp_get_current_user() возвращает объект WP_User который содержит много свойств для этого пользователя.

2) Поскольку нам нужен только идентификатор текущего пользователя, мы назначаем переменную выбора, в этом случае $user которая равна $user = wp_get_current_user() .

3) Затем мы можем захватить текущий идентификатор пользователя, просто объявив $user->ID

4) Мы передаем $user->ID нашей функции count_user_posts( $user->ID) которая затем измеряется относительно нашего состояния, которое больше или равно 1 сообщению.

5) Сделайте свое дело …

Рекомендации:

  • Код: wp_get_current_user
  • Codex: count_user_posts

Попробуй это

  global $wpdb; $user = wp_get_current_user(); $sql = "SELECT id from " . $wpdb->prefix . "rg_lead WHERE created_by=" . $user->ID; $results = $wpdb->get_results($sql); if (count($results) > 0) { // An entry is made by the user for any form } else{ // Show form } 

Если вы знаете идентификатор формы, например $ form_id, используйте

 $sql = "SELECT id from " . $wpdb->prefix . "rg_lead WHERE created_by=" . $user->ID . " AND form_id=" . $form_id;