php - WordPress 覆盖联系表单 mail_2 正文

标签 php wordpress hook contact-form-7

目前,我面临着覆盖wpcf7_before_send_mail Hook 中mail_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_before_send_mail Hook 在设置附加邮件之前执行。所以它会被覆盖。

我们可以使用过滤器wpcf7_additional_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;
}

关于php - WordPress 覆盖联系表单 mail_2 正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857693/

相关文章:

google-chrome - 如何在 Chrome 扩展程序中 Hook 下载?

c# - 应用程序如何连接到系统范围内的文本选择?

php - array_key_exists($key, $array) 与 !empty($array[$key])

javascript - 在循环中使用 javascript 注册全局变量

php - MYSQL PDO返回类型奇怪的转换

php - 如何在我的页脚每 10 个列表项后换行

php - 如何从远程页面获取iframe内容?

php - WordPress 固定链接结构 mysite.com/blog/%postname%/%post_id%/

mysql - 获取mysql varchar列的最大值

c++ - 在 X11 中全局钩住并阻止鼠标