Контактная форма 7 - проблемы с wpcf7_before_send_mail и wpcf7_submit - PullRequest
0 голосов
/ 24 февраля 2019

В настоящее время я работаю над сайтом, на котором пользователи отправляют форму, созданную с помощью контактной формы 7. Я пытаюсь расширить ее до записи этого действия (дата / время, вошедший в систему пользователь, получение информации из заполненных полей),и я несколько раз пытался использовать оба способа: wpcf7_before_send_mail и wpcf7_submit, но ни один из них не работает.Форма отправляется, но код, указанный ниже, не запускается.Я даже пытался вручную ввести информацию (имя таблицы, идентификатор пользователя, клиент и т. Д.) Вручную, чтобы посмотреть, будет ли она отправлена, а она по-прежнему отсутствует.

Ниже приведен текущий код, который я использую для сохранения некоторых данных.информация в базе данных, в которой я хочу сохранить активность:

add_action('wpcf7_before_send_mail', 'save_in_database');

function save_in_database($data) {
    global $wpdb;
    $account_number = get_account_number();
    $department = get_user_role();

    if ($data->title == 'Social_Media_Tool_Form'){
        $submission = WPCF7_Submission::get_instance();
        if ( $submission ) {
            $cf7_data = $submission->get_posted_data();
            $name = $cf7_data['customer-name'];
        }
    }


    $activity_table_name = $wpdb->prefix .'_'. $account_number . '_activity_log';

    //Creates activity log
    $wpdb->insert($activity_table_name, array(
        'date'              =>  current_time('Y-m-d H:i:s'),
        'user_id'           =>  get_current_user_id(),
        'customer_name'     =>  $name,
        'activity_type'     =>  'social',
        'department'        =>  $department
    ));
}

Я использовал этот же код для записи других операций ранее, поэтому теоретически он должен работать здесь.

Я в настоящее время на Wordpress 5.1 и использую контактную форму 7 5.1.1

1 Ответ

0 голосов
/ 24 февраля 2019

Я разобрался в проблеме.В формах вы должны добавить «subs_only: true» в дополнительные настройки.Поскольку это не было установлено, это не позволяло мне получать информацию от текущего пользователя, по этой причине она не отправлялась в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...