@Bjornie
Изучаю Python

Как автоматически добавить запись в Wordpress при заполнении формы Contact Form7?

Здравствуйте. Хочется задать вопрос экспертам Wordpress вопрос из заголовка. Принцип простой: заполнил форму - добавился пост в базу данных (с использованием данных из формы).

Как вариант у меня есть идея сделать это следующим образом: на форму вешается JS-обработчик, который слушает событие, и через AJAX отправляет данные в разработанный для целей плагин.

Хотя возможно есть другие варианты, кто знает - поделитесь пожалуйста.
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Здравствуйте.

Вообще, есть же специальные плагины для этого.

Если нужно именно CF7, то там есть разные хуки. Я как-то пользовался wpcf7_before_send_mail для изменения email-адреса, думаю, он и для Вашей цели подойдет.
Пример:
add_action('wpcf7_before_send_mail', 'dco_wpcf7_before_send_mail');

function dco_wpcf7_before_send_mail($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    $data = & $submission->get_posted_data();
    $employee_name = $data['employee-name'];

    $post = get_page_by_title($employee_name, OBJECT, 'employee');
    $email = get_post_meta($post->ID, 'employee_email', true);

    if ($email) {
        $mail = $contact_form->prop('mail');
        $mail['recipient'] = $email;
        $contact_form->set_properties(array('mail' => $mail));
    }
}


Ещё есть плагин Flamingo, который записывает все сообщения, отправленные через Contact Form 7 в виде своего типа записей.

Ну и ещё один вариант, погуглить как-нибудь так. Вполне возможно, что уже есть готовое решение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы