【问题标题】:How to send HTML content in message body using contact form 7?如何使用联系表格 7 在邮件正文中发送 HTML 内容?
【发布时间】:2020-07-20 17:28:20
【问题描述】:

我想使用联系表格 7 发送 HTML 内容,但 HTML 代码无法正常工作,直接在电子邮件中发送 HTML 标记。那么如何使用钩子或任何方式发送此类消息?

我正在使用钩子“wpcf7_posted_data”在正文中附加我额外的 HTML 标记。 我想在发送电子邮件之前发送额外的 HTML 格式数据。

function action_wpcf7_posted_data( $array ) {
    $html .= '<table>';
    $html .='<tr><td>'.$product->get_Name().'</td></tr>';
    $html .='<tr><td>'.$display.'</td></tr>';
    $html .='<tr><td>Qty : '.$ProductQty.'</td></tr>';
    $html .= '</table>';
    $value = $array['message'];
    if( !empty( $value ) ){       
        $array['message'] = $value."<br><br>".$html;
    }
    return $array;
}
add_filter( 'wpcf7_posted_data', 'action_wpcf7_posted_data', 10, 1 );

【问题讨论】:

  • 你到底想要什么?
  • Testing
    此数据以 HTML 格式而不是 HTML 标记以电子邮件形式发送。
  • 表示表单提交后要在邮件中发送HTML?
  • 是的,我想要这样。
  • 检查我的答案。

标签: wordpress contact-form-7


【解决方案1】:

如果您尝试将数据附加到 Contact Form 7 电子邮件 HTML。下面的代码将做到这一点。但是,您似乎正在使用其他一些变量,我不确定您从哪里得到它们。所有提交的表单字段都将在我下面的函数中的$posted_data 中。您可以在存在字段时触发该过程,或者每次都运行它。您还可以使用global $product 并获取变量来完成您的表格。

add_action( 'wpcf7_before_send_mail', 'he_append_to_email_body' );
function he_append_to_email_body( $contact_form ) {

    $submission = WPCF7_Submission::get_instance();
        if ( $submission ) {
            $posted_data = $submission->get_posted_data();    
    }

    if (isset($posted_data['the_field_you_want_to_trigger_this'])) { // Check that your field is present in your form.
        /**
         * ToDo:
         * Get your product and display and other variables here to put into the table.
         */
        $html = '<table>';
        $html .='<tr><td>'.$product->get_Name().'</td></tr>';
        $html .='<tr><td>'.$display.'</td></tr>';
        $html .='<tr><td>Qty : '.$ProductQty.'</td></tr>';
        $html .= '</table>';
        // Get the existing output from the CF7 email
        $mail = $contact_form->prop( 'mail' );
        // Append your data after the existing
        $mail['body'] .= $html;
        // Update the mail 
        $contact_form->set_properties(array('mail' => $mail));
    }
    return;
}

【讨论】:

    【解决方案2】:

    您不需要用户自己在表单中插入 HTML。因此,您需要在 MAIL TAB 表单中设置已发送消息的布局,并检查消息正文字段下方的“使用 HTML 内容类型”。

    您可以编写 HTML,但请注意邮件协议和客户端不会读取所有 HTML 标记甚至所有 CSS。 查看此链接以了解如何创建 HTML 电子邮件正文消息:https://www.campaignmonitor.com/dev-resources/guides/coding-html-emails/ 这对于允许的 CSS:https://www.campaignmonitor.com/css/

    您也可以将表格发送到另一个电子邮件地址,检查使用邮件 (2) "是一个额外的邮件模板,通常用作自动回复"。

    检查联系表 7 文档:https://contactform7.com/setting-up-mail/

    问候。 H

    【讨论】:

    • 感谢您的回复,但实际上我使用钩子“wpcf7_posted_data”在正文中附加我的额外 HTML 标记。
    • 我觉得每次我在这篇文章中你都在改变你的问题!
    • 也许您应该使用 google 进行更好的研究。您可以使用隐藏字段插件。
    猜你喜欢
    • 2013-04-22
    • 2021-01-27
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2018-01-13
    • 2020-05-10
    相关资源
    最近更新 更多