动态更改CF7表单值

脱铁狗

我一直在尝试动态更改CF7表单字段,而不使用Contact Form 7动态文本扩展我看了很多关于如何获取已发布数据的文章,而不仅仅是关于如何覆盖现有值的文章。我的目标是动态更改文件附件并添加与每个帖子关联的其他元数据。能做到吗?谢谢!

这是我到目前为止的内容:

function wpcf7_custom_before_send(&$cf7) {
    if ( $cf7->id == 4 ) {
        $submission = WPCF7_Submission::get_instance();
        if ( $submission ) {
            $data =& $submission->get_posted_data();
            // how do I overwrite posted data?
        }
    }
}
add_action("wpcf7_before_send_mail", "wpcf7_custom_before_send");
兄弟村

您可以使用我的代码来执行此操作。您的代码的一些解释:

1)由于id$cf7->id属性不再可用。请改用id()方法$cf7->id()

2)不需要使用&回调$cf7$submission用于此return

add_action("wpcf7_before_send_mail", "wpcf7_do_something");

function wpcf7_do_something($WPCF7_ContactForm)
{

    if (224 == $WPCF7_ContactForm->id()) {

        //Get current form
        $wpcf7      = WPCF7_ContactForm::get_current();

        // get current SUBMISSION instance
        $submission = WPCF7_Submission::get_instance();

        // Ok go forward
        if ($submission) {

            // get submission data
            $data = $submission->get_posted_data();

            // nothing's here... do nothing...
            if (empty($data))
                return;

            // extract posted data for example to get name and change it
            $name         = isset($data['your-name']) ? $data['your-name'] : "";

            // do some replacements in the cf7 email body
            $mail         = $wpcf7->prop('mail');

            // Find/replace the "[your-name]" tag as defined in your CF7 email body
            // and add changes name
            $mail['body'] = str_replace('[your-name]', $name . '-tester', $mail['body']);

            // Save the email body
            $wpcf7->set_properties(array(
                "mail" => $mail
            ));

            // return current cf7 instance
            return $wpcf7;
        }
    }
}

就是这样,我们更改了一些标签,然后发送带有已修改标签的电子邮件;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CF7动态更改表单数据

来自分类Dev

WordPress CF7 插件

来自分类Dev

联系表格7(CF7)单选按钮以更改WordPress上的用户角色

来自分类Dev

如何在 Wordpress 中发送前更改文本 - CF7

来自分类Dev

如何枚举cf7中的表格?

来自分类Dev

如何改变CF7的宽度?

来自分类Dev

动态更改JS中表单的值

来自分类Dev

CF7需要发送两个不同的邮件

来自分类Dev

检查手机号码CF7

来自分类Dev

使用jQuery动态更改操作值时无法提交表单

来自分类Dev

将ACF字段作为邮件标签获取到CF7中?

来自分类Dev

CF7火烈鸟从特定形式获取消息

来自分类Dev

JS将更多输入字段合并到一个CF7中

来自分类Dev

如何在cf7下拉菜单中添加最近五年?

来自分类Dev

提交值的动态表单

来自分类Dev

更改嵌入式动态表单组件中表单控件的值

来自分类Dev

表单中的动态选择值

来自分类Dev

与antd反应动态表单值

来自分类Dev

表单中的动态选择值

来自分类Dev

如何更改表单的HiddenInput值

来自分类Dev

如何访问表单的更改值?

来自分类Dev

动态添加行时检测表单的更改

来自分类Dev

更改功能未触发,JavaScript动态表单

来自分类Dev

Rails-动态更改表单中的选项

来自分类Dev

动态更改表单提交中的div内容

来自分类Dev

动态更改 Web 表单的模板内容

来自分类Dev

如何使用javascript更改wordpress联系表单7中文本字段的值

来自分类Dev

Delphi 7 AlphaBlend无法用于动态表单

来自分类Dev

AngularJS动态更改字段值