Здравствуйте.
Можете попробовать функцию is_user_logged_in.
<?php
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
echo 'Welcome, visitor!';
}
?>
Автор
Анна
(@smsmedia)
denisco, спасибо за ответ, да, это решение на логику залогинен/не залогинен.
Но я не могу пока понять, как сделать так, чтобы эта логика работала в рамках плагина Contact Form 7.
Потому что если создавать шорт-код типа [member] / [quest] по вашему примеру, шорт-коды не срабатывают на странице создания формы.
То есть, я думала над тем, как сделать так, чтобы при создании формы можно было сделать как-то так:
[text text-78 placeholder "Текстовочка"]
[member] <-- если залогинен
[submit]
[/member]
[quest] <-- если НЕзалогинен
форма авторизации
[submit]
[/quest]
Шорт-код, например, [member], создавала так:
add_shortcode('member', 'member_check_shortcode');
function member_check_shortcode( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return '';
}
Шорт-код [guest], соответственно, !is_user_logged_in().
Проблема: мои шорткоды в рамках создания формы Contact Form 7 — не работают 🙂
Как вариант, я думаю можно создать две формы для авторизованных и неавторизованных пользователей и показывать их примерно так:
<?php
if ( is_user_logged_in() ) {
echo do_shortcode( '[contact-form-7 id="1234" title="Contact form 1"]' );
} else {
echo do_shortcode( '[contact-form-7 id="12345" title="Contact form 2"]' );
}
?>
Вариант номер 2. Можно попробовать скрывать поля в зависимости от классов элемента <body>:
body.logged-in input.wpcf7-submit {
display: none;
}
Вариант номер 3. Взять за основу какое-нибудь расширение для Contact Form 7, например, это и сделать свои теги, тогда они будут обрабатываться формой.
Автор
Анна
(@smsmedia)
Ну, первым вариантом сейчас так, к сожалению, и сделано, но это «одноразовый» вариант конкретно под данную страницу с формой…
Второй вариант интересен. Не приходило в голову, но, он привязан к CSS, это не совсем корректно…
Третий — не совсем поняла как он может быть мне полезен?..
Он ведь просто добавляет поле, в которое можно как placeholder загнать определенную информацию «страницы»?
Второй вариант интересен. Не приходило в голову, но, он привязан к CSS, это не совсем корректно…
Класс logged-in является одним из стандартных css-классов WordPress.
Третий — не совсем поняла как он может быть мне полезен?..
Он ведь просто добавляет поле, в которое можно как placeholder загнать определенную информацию «страницы»?
Именно этот да, но Вы можете разработать своё расширение для Contact Form 7, которое добавит нужные теги.
Автор
Анна
(@smsmedia)
Класс logged-in является одним из стандартных css-классов WordPress.
При отключенном в браузере css кнопка будет видна.
Именно этот да, но Вы можете разработать своё расширение для Contact Form 7, которое добавит нужные теги.
как раз и хотелось без самодеятельности.
неужели нет стандартного решения в самом плагине?
При отключенном в браузере css кнопка будет видна.
При отключенном css у Вас сайт-то нормально будет виден? 😀 А при отключенном JavaScript нормально будет работать? И самый главный вопрос, что происходит с самим Contact Form 7, если отключить css?
неужели нет стандартного решения в самом плагине?
Можете уточнить этот вопрос на форуме поддержки плагина.
Автор
Анна
(@smsmedia)
При отключенном css у Вас сайт-то нормально будет виден? 😀 А при отключенном JavaScript нормально будет работать?
Да, вполне 🙂
И самый главный вопрос, что происходит с самим Contact Form 7, если отключить css?
Исчезает оформление. Но не серверная логика. 🙂
Благодарю за ссылку, я о ней знаю 🙂
Я надеялась найти русскоязычную помощь здесь, с тегом «contact form 7». Предполагала, что я не первая, кто бы хотел подобное сделать.
неужели нет стандартного решения в самом плагине?
Вы не верно пытаетесь решить задачу.
Зачем Вам форма СФ7, если Вы отправляете человека на регистрацию?
Правильная логика такая:
если авторизован (и имеет право) — показываем форму СФ7.
иначе — отправляем на регистрацию (или сразу выводим форму регистрации)
И denisco в первом же ответе показал как реализовать этот путь.
Так же можно решить этот вопрос с пом плагинов, регулирующими что кому показывать.