В продолжение статьи о сохранении данных формы в БД в виде публикации в WP, я собираюсь рассказать о том как получить код публикации, со страницы которой была выполнена отправка данных формы.
Находясь внутри обработчика wpcf7_mail_sent, вы не сможете получить код публикации методами вроде get_the_ID(). Технически, мы находимся внутри ajax запроса на системный адрес, начинающийся как:
|
|
/wp-json/contact-form-7/v1/contact-forms/... |
который никак не связан со страницей, где находится форма.
Нам придется опираться на данные, передаваемые $_SERVER[‘HTTP_REFERER’], и по ним уже найти объект WP post. К счастью, в богатом API WP есть нужная функция — get_page_by_path.
К примеру, вы разместили форму на всех страницах публикаций типа ‘products’. Тогда PHP код может выглядеть вот так:
|
|
//создание связи с публикацией $req = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH); if (preg_match('#([^/]*)(/)?$#U', $req, $m)) { $post = get_page_by_path($m[1], OBJECT, 'products'); } else { $post = NULL; } |
Теперь можно сохранить ссылку на post, к примеру, в мета-поле.
wpcf7
Данная запись опубликована в 09.06.2018 18:51 и размещена в рубрике wordpress.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июнь 11, 2018 г.
Еще одна задача, связанная с сохранением данных формы WP Contact Form 7 в базе WP, это загрузка и сохранение файла (обычно - изображения).
Особенность работы WPCF7, заключается в том, что загруженный через форму временный файл, плагин переносит ...
Читать
Июнь 6, 2018 г.
Это продолжение статьи о сохранении данных формы WPCF7, где я рассказал о том зачем это может понадобиться и подходе к реализации. Здесь мы перейдем уже более техническим вещам, к коду.
Итак, нам необходимо создать публикацию на основе данных, ...
Читать
Апрель 12, 2023 г.
Пользуюсь flamingo для протоколирования отправленных данных через Contact Form 7. Очень не удобно, что ссылки и сохраненные файлы выводятся как plain text. Но, мы это сейчас исправим!
Поля flamingo выводит через функцию форматирования, которая ...
Читать
Апрель 1, 2023 г.
Неудобно, что прямо в редакторе нельзя задать нужные атрибуты, приходится искать либо в коде, чтобы подсмотреть как это реализовано, или на форумах.
Нужно было создать элементы формы с атрибутом placeholder.
Оказалось, что wpcf7 понимает следующую ...
Читать