Intereting Posts
В каком файле использовать $ wpdb и его функции для операций с базами данных и запросов в wordpress? Правильный способ загрузки таблицы стилей в состояние как добавить галочку для определения роли пользователя при регистрации wp Динамически добавлять заголовки для отправки изображений, если они пусты Запрос дополнительных пользовательских полей Как отобразить определенную категорию с помощью пользовательского запроса в WordPress? Как использовать is_active_widget? SHortcode для запуска в повторяемом поле WYSIWYG с использованием CMB2 Одна из причин изменения GUID Показать другой код на главной странице на другие страницы условный (тематический) выбор языка в 'runtime' Как фильтровать сообщения по категориям INSIDE loop Разница между архивом и страницами с перечислением страниц Отображать get_post_meta, если содержит значение Получать сообщения из нескольких типов сообщений

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

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

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

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

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

<?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;