Контактная форма 7 и значение cookie - PullRequest
0 голосов
/ 28 августа 2018

Доброе утро, я использую контактную форму 7 с отправкой электронной почты после отправки формы. Теперь мне нужно отправить по электронной почте значение, которое хранится в куки (это реферальный код). Как я могу это сделать?

Ответы [ 4 ]

0 голосов
/ 17 мая 2019

Без какого-либо плагина очень просто добиться того же, просто добавив новый пользовательский Специальный почтовый тег :

ШАГ-1: Добавьте приведенный ниже код в функции вашей темы. Php

add_filter( 'wpcf7_special_mail_tags', 'wpcf7_my_cookie_mailtag', 10, 3 );
function wpcf7_my_cookie_mailtag( $output, $name, $html ) {
    if ( '_my_cookie_special_tag' != $name ) { // rename the tag name as your wish;
        return $output;
    }

    if ( ! $contact_form = WPCF7_ContactForm::get_current() ) {
        return $output;
    }

    $val = isset($_COOKIE['my_cookie'])? $_COOKIE['my_cookie']):'N/A';

    return $html ? esc_html($val) : $val;
}

STEP-2: Используйте этот короткий код [_my_cookie_special_tag] в Mail Setup .

0 голосов
/ 28 августа 2018

Вот шаги для достижения этого.

  1. Установка Контактная форма 7 Расширение динамического текста Плагин.

  2. Добавьте это в файл functions.php вашей темы.

    function dynamictext_cf7_cookie($atts){
        extract(shortcode_atts(array(
            'key' => -1,
        ), $atts));
    
        if($key == -1) return '';
        $val = '';
    
        if( isset( $_COOKIE[$key] ) ){
            $val = $_COOKIE[$key];
        }
    
        return $val;
    }
    add_shortcode('DT_CF7_COOKIE', 'dynamictext_cf7_cookie');
    
  3. Добавьте это на вкладку «Форма» формы вашей контактной формы 7 - [dynamichidden referral-code-field "DT_CF7_COOKIE key='REFERRAL_CODE'"], где «REFERRAL_CODE» - это имя файла cookie PHP.

  4. Добавьте это на вкладку «Почта» вашей формы обратной связи 7 - [referral-code-field].

Вот и все, и вы можете прочитать больше здесь - https://www.sean -barton.co.uk / 2014/04 / contact-form-7-place-post-server-cookie-session-variable-fields / .

0 голосов
/ 28 августа 2018

Я думаю, вы пытаетесь отправить еще одно электронное письмо после успешной отправки контактной формы 7. Вы можете сделать это через доступный хук wpcf7 в бэкэнде. wpcf7_mail_sent

Примечание. Необходимо получить необходимые данные cookie и динамически включить их в форму в виде скрытого поля, используя javascript, чтобы они были включены в отправленную форму, которую вы можете получить на сервере.

//you can place this in your functions.php
add_action('wpcf7_mail_sent', function ($cf7) {
  //do what you want here like get the extra  
});

Вот как я бы сделал это в бэкэнде, предполагая, что у меня уже есть данные из файла cookie, добавленные в качестве скрытого поля с использованием javascript / jquery, например. <input type="hidden" name="referral_code" /> внутри тега формы.

add_action('wpcf7_mail_sent', function ($cf7) {

    $wpcf7         = WPCF7_ContactForm::get_current();
    $submission    = WPCF7_Submission::get_instance();
    $posted_data   = empty($submission) ? null : $submission>get_posted_data();

    //assuming you are tracking a form with an id 1234
    if($wpcf7->id() === 1234){

      //not sure if this still works, if not you can simply use $_GET['referral_code']
      if(isset($posted_data['referral_code'])){
         $referralCode = $posted_data['referral_code'];
         //...now from this point you can send an email or pass this info to another platform for tracking purposes.
      }

    }

});
0 голосов
/ 28 августа 2018

Вы можете проверить документацию, согласно документам, контактная форма7 не будет использовать куки.

При использовании конфигурации по умолчанию этот плагин сам по себе не:

  1. отслеживать пользователей по стелс;
  2. записывать любые личные данные пользователя в базу данных;
  3. отправлять любые данные на внешние серверы;
  4. использовать куки.

https://wordpress.org/plugins/contact-form-7/

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