联系表格7和Cookie值

时间:2018-08-28 11:15:36

标签: wordpress cookies

早上好,我在提交表单后使用联系表单7和电子邮件提交功能。 现在,我需要通过电子邮件发送存储在cookie中的值(这是推荐代码)。我该怎么办?

4 个答案:

答案 0 :(得分:2)

以下是实现此目的的步骤。

  1. 安装Contact Form 7 Dynamic Text Extension插件。

  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. 将其添加到Contact Form 7表单的“表单”标签-[dynamichidden referral-code-field "DT_CF7_COOKIE key='REFERRAL_CODE'"],其中“ REFERRAL_CODE”是您的PHP cookie名称。

  4. 将此添加到联系表7表单-[referral-code-field]的“邮件”标签中。

就这样,您可以在这里阅读更多内容-https://www.sean-barton.co.uk/2014/04/contact-form-7-place-post-server-cookie-session-variables-fields/

答案 1 :(得分:0)

您可以按照文档检查文档,请与form7联系,不要使用cookie。

使用默认配置,此插件本身不会:

  1. 通过隐身跟踪用户;
  2. 将任何用户个人数据写入数据库;
  3. 将任何数据发送到外部服务器;
  4. 使用cookie。

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

答案 2 :(得分:0)

我认为您要执行的操作是在成功提交联系表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  
});

假设我已经使用javascript / jquery例如,已经将来自cookie的数据添加为隐藏字段,这就是我要在后端进行的操作。将<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.
      }

    }

});

答案 3 :(得分:0)

没有任何插件,只需添加新的自定义Special Mail Tag即可轻松实现相同目的:

STEP-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 :在您的Mail Setup中使用此短代码[_my_cookie_special_tag]