Php Wordpress覆盖联系人表单邮件2正文

Php Wordpress覆盖联系人表单邮件2正文,php,wordpress,hook,contact-form-7,Php,Wordpress,Hook,Contact Form 7,目前,我面临一个问题,即在发送邮件之前,在hookwpcf7\u中覆盖邮件2的正文内容 我正试图重写wpcf7短代码,通过一些html修改来更恰当地表示内容 问题是我无法覆盖邮件正文。在我重写主体并直接打印结果之后,它似乎又回到了默认主体。当我直接打印我的修改时,我看到了我想要的修改 代码示例: add_action("wpcf7_before_send_mail", "cf7_wpcf7_custom", 99, 1); # Before sending email function cf7

目前,我面临一个问题,即在发送邮件之前,在hook
wpcf7\u中覆盖邮件2的正文内容

我正试图重写wpcf7短代码,通过一些html修改来更恰当地表示内容

问题是我无法覆盖邮件正文。在我重写主体并直接打印结果之后,它似乎又回到了默认主体。当我直接打印我的修改时,我看到了我想要的修改

代码示例:

add_action("wpcf7_before_send_mail", "cf7_wpcf7_custom", 99, 1);

# Before sending email
function cf7_wpcf7_custom($properties, $contact_form_obj) {
    $submission = WPCF7_Submission::get_instance();
    $wpcf7      = WPCF7_ContactForm::get_current();

    $wpcf7->mail_2['body'] = str_replace('[checkbox-1]', '..test..', $wpcf7->mail_2['body']);

    // No changes appearing
    var_dump($wpcf7->mail_2['body']);

    exit;
}

在设置附加邮件之前执行
wpcf7\u-before\u-send\u-mail
钩子。因此它将被覆盖

我们可以使用过滤器
wpcf7\u additional\u mail
修改邮件正文

例如:

add_filter('wpcf7_additional_mail', 'customize_mail_2', 10, 2);
function customize_mail_2($additional_mail, $contact_form) {
    $submission = WPCF7_Submission::get_instance();
    $wpcf7      = WPCF7_ContactForm::get_current();

    $additional_mail['mail_2']['body'] = '..do your replacement stuff';
    return $additional_mail;
}

我可以在functions.php中使用以下代码更改电子邮件1和2,并添加一些自我插入的代码:

add_action( 'wpcf7_before_send_mail', 'wpcf7_add_couponnr_to_mail_body' );

function wpcf7_add_couponnr_to_mail_body($contact_form){

  // get mail property
  $mail = $contact_form->prop( 'mail' ); // returns array with mail values
  $mail2 = $contact_form->prop( 'mail_2' ); // returns array with mail values

  $couponnr = ...some insert code...;

  // add date (or other content) to email body
  $mail['body'] = str_replace("%%%COUPONNR%%%", $couponnr, $mail['body']);
  $mail2['body'] = str_replace("%%%COUPONNR%%%", $couponnr, $mail2['body']);

  // set mail property with changed value(s)
  $contact_form->set_properties( array( 'mail' => $mail ) );
  $contact_form->set_properties( array( 'mail_2' => $mail2 ) );

}

你救了我一天。谢谢:)