n-wp.ru — блог о WordPress

Показ чего-либо в зависимости от состояния поля в профиле пользователя…

Не могу найти подробнее информацию для новичков как сделать такое: зарегистрировавшийся человек должен заполнить анкету и пока он не заполнит, в сайдбаре или еще где будет торчать большая кнопка «ЗАПОЛНИ АНКЕТУ». Когда он заполняет анкету, то эта кнопка пропадает. Читал статью о перенаправлении на определенную страницу, но это немного не то, хоть и временное решение. Я так понял, что логика такая:
1. у каждого в профиле есть мета поле в котором сохраняется значение заполненности анкеты
2. кнопка «ЗАПОЛНИ АНКЕТУ» должна как-то проверять это поле на значение и если там пусто, 0 или ‘нет’ то выводиться, а если ‘да’ то прятаться
3. при сабмите формы должно что-то срабатывать и менять значение в этом поле на 1 или ‘да’

Начал делать так:
1. Создаем у всех пользователей в профиле дополнительное поле.
Я создавал так, в functions.php текущей темы добавил

В итоге в каждом профиле появляется пустое поле ‘Анкета заполнена?’.

2. Состряпал код, который по идее должен менять значение в нужном поле в профиле

Дальше дело встало.. (( Не могу сообразить куда вставить этот код (ищу в gravity forms, но там уж очень много кода).
До конструкции проверяющей значение поля и выводящую/прячущую кнопку даже не дошел.

Может есть более простое и элегантное решение подобной задачи?

4 комментария

  • Думаю, что можно подобное сделать без введения дополнительного поля. Для этого нужно определиться, какие поля в профиле нужно заполнить, чтобы профиль считался заполненным полностью.

    Предположим, что профиль будет заполненным полностью, если пользователь заполнит Био и Сайт. Нужно вставить условие: ЕСЛИ био ИЛИ сайт отсутствуют, то выводим надпись.

    Получить и вывести БИО текущего пользователя можно так:

    [cc lang=php]
    < ?php $user_info = get_userdata($current_user->ID);
    echo $user_info-> user_description ;
    ?>

    Получить и вывести САЙТ текущего пользователя можно так:

    [cc lang=php]
    < ?php $user_info = get_userdata($current_user->ID);
    echo $user_info-> user_url ;
    ?>

    Подробнее о том, как можно получить данные текущего пользователя: http://codex.wordpress.org/Function_Reference/get_userdata

    Проверить, заполнено ли поле БИО в профиле текущего пользователя, и вывести его, значение, если оно есть, можно так:

    Выведем надпись, показывающую пользователю, что нужно заполнить поле БИО в профиле:

    Выведем надпись, показывающую пользователю, что нужно заполнить поле САЙТ в профиле:

    Объединим два условия:

    Я мог ошибиться в деталях кода, так как не программист, но логика примерно такая.

  • О ужас.. Жаль в посте поправить ничего не могу, но АНКЕТА и ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ в данном вопросе — это разные вещи… На самом деле вопрос был совсем не про заполненность профиля пользователя, а про заполненность любой формы на сайте т.е. если я вдруг решил провести среди пользователей анкетирование по какому-то вопросу и предлагаю им заполнить трехэтажную форму, по-этому и про большую кнопку говорю и вопрос называется «показ чего-либо в зависимости от состояния поля в профиле».. Такой хороший ответ, но не мой вопрос.. (

  • И проблема у такого как я часто бывает даже не с тем чтобы написать кусок кода (есть в интернет примеры, (в том же кодексе) в которые можно по аналогии вписать свои значения), а в том КУДА этот кусок кода пихать… (