[Помогите] Редирект Contact Form 7

Тема в разделе "Wordpress", создана пользователем shumarev, 4 апр 2015.

Модераторы: Sorcus
  1. shumarev

    shumarev Постоялец

    Регистр.:
    10 окт 2013
    Сообщения:
    67
    Симпатии:
    35
    Всем привет, друзья.

    Есть форма Contact Form 7 в хедере сайта.

    При отправке использую функцию формы on_sent_ok:"location = 'http://example.com/';" для возвращения на нужную страницу.
    Есть вопрос как сделать так что бы вместо http://example.com/ вставлялся url страницы на который была совершена отправка. То есть если отправили форму с главной то вставляется ссылка http://example.com/ , если отправили с блога то вставляется ссылка http://example.com/blog

    Спасибо.
     
    mcdst2008 нравится это.
  2. snpru

    snpru Создатель

    Регистр.:
    26 авг 2010
    Сообщения:
    146
    Симпатии:
    22
    Код:
    function getUrl() {
    $url = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"];
    $url .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";
    $url .= $_SERVER["REQUEST_URI"];
    return $url;
    }
    
    echo getUrl(); // вернет url вида http://yandex.ru/404.html
    Соответственно, в location нужно подставить результат работы этой функции.
     
    mcdst2008 и shumarev нравится это.
  3. shumarev

    shumarev Постоялец

    Регистр.:
    10 окт 2013
    Сообщения:
    67
    Симпатии:
    35
    Спасибо за помощь. А как вставить результат функции в location? Вставил on_sent_ok: "location = 'getUrl();';" На выходе получил ссылку http://example.com/getUrl()
     
    mcdst2008 нравится это.
  4. snpru

    snpru Создатель

    Регистр.:
    26 авг 2010
    Сообщения:
    146
    Симпатии:
    22
    Функцию нужно вставлять в php скрипт.
    Подождите, так а по умолчанию, без использования настройки on_sent_ok, скрипт разве не возвращает на ту же страницу?
    p.s. ещё один вариант, можно попробовать проще, без php функции, вот так:
    Код:
    on_sent_ok: "location = window.location.href;"
     
    Последнее редактирование: 4 апр 2015
    mcdst2008 и shumarev нравится это.
  5. shumarev

    shumarev Постоялец

    Регистр.:
    10 окт 2013
    Сообщения:
    67
    Симпатии:
    35
    Возвращает но я использовал форму в modal box и что бы его закрыть нужно было после отправки закрывать вручную. А при помощи
    on_sent_ok можно было его "красиво закрыть".
    И с вашей помощью это получилось! Облазил весь инет - ничего не нашел! Спасибо огромное!!!
    Код:
    on_sent_ok: "location = window.location.href;"
    Код работает!!!
     
    mcdst2008 нравится это.
  6. Ryan_93

    Ryan_93 Создатель

    Регистр.:
    5 апр 2013
    Сообщения:
    40
    Симпатии:
    3
    А можете подсказать, форму Contact Form 7 в виде модального окна?
    у меня есть форма на странице, как сделать так, чтобы была кнопка "Обратная связь", например.
    А при нажатии на нее во всплывающем окне была настроенная мной форма?
     
    mcdst2008 нравится это.
  7. snpru

    snpru Создатель

    Регистр.:
    26 авг 2010
    Сообщения:
    146
    Симпатии:
    22
    Если цель прикуртить модальное окно именно к CF7, то советую смотреть в сторону плагина Easy FancyBox, либо можно вместо этой связки использовать плагин Request-call-back, он сразу как всплывающее окно реализован.
     
    bismarck нравится это.
  8. WiZXaK

    WiZXaK Причиняю добро

    Регистр.:
    8 сен 2012
    Сообщения:
    579
    Симпатии:
    797
    Готовое решение: https://wordpress.org/plugins/contact-form-7-dynamic-text-extension/
     
  9. bismarck

    bismarck Создатель

    Регистр.:
    18 ноя 2014
    Сообщения:
    40
    Симпатии:
    2
    Реализовал на основе FancyBox for wordpress и CF7. Связка Easy FancyBox и CF7 не заработала.
     
  10. kurya4iy

    kurya4iy Постоялец

    Регистр.:
    7 май 2013
    Сообщения:
    53
    Симпатии:
    1
    Используйте Easy Modal + CF7. Отлично работает в этой связке