【问题标题】:Modify Contact Form 7 Submission Data修改联系表 7 提交数据
【发布时间】:2017-02-21 08:52:57
【问题描述】:

我在网站上使用联系表 7,需要更改复选框提交的数据。复选框有一个名为“勾号的标签,如果您不想接收进一步营销,则在检查Admins通知电子邮件中发送的值显示复选框标签。 所以它看起来像:

如果您不想接受进一步的营销,请在此处打勾:如果您不想接受进一步的营销,请在此处打勾

我想改变它,所以当它检查时发布的值为否。

我相信我可以使用以下动作挂钩来实现这一点,但我不知道如何检查该功能中的复选框是否已被勾选并修改其值。

非常感谢任何帮助。

// define the wpcf7_posted_data callback 
function action_wpcf7_posted_data( $array ) { 
// make action magic happen here... 
}; 

// add the action 
add_action( 'wpcf7_posted_data', 'action_wpcf7_posted_data', 10, 1 );

【问题讨论】:

    标签: wordpress contact-form-7


    【解决方案1】:

    我相信你可以使用:

    // define the wpcf7_posted_data callback 
    function action_wpcf7_posted_data( $array ) { 
        //'checkbox-name' is the name that you gave the field in the CF7 admin.
        $value = $array['checkbox-name'];
        if( !empty( $value ) ){
            $array['checkbox-name'] = "New Value";
        }
    
        return $array;
    }; 
    add_filter( 'wpcf7_posted_data', 'action_wpcf7_posted_data', 10, 1 );
    

    【讨论】:

    • 谢谢您,这是有效的,但当复选框打勾时,它也会更改发布的数据。当它没有打勾时,我希望它要么不发送数据,要么说是。
    • 我会说你使用了错误的钩子。明天我会查找正确的。
    • 我应该使用 wpcf7_before_send_mail 吗?上面的 if 语句会按预期工作吗?
    • 再想一想,检查空白字符串可能不正确。找出未勾选复选框时 $value 的值。无论该值是什么,都将 if 语句中的空白字符串替换为该值。
    • 虽然这篇文章比较老,但我遇到了同样的问题,这里是解决方案:posted-data 中复选框名称的 $value 将始终是一个数组,因此非空。不同之处在于第一个元素为空或不为空。所以正确的检查是:if (!empty( $value[0]) )。然后$array['checkbox-name'][0] = "New Value";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2016-04-20
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    相关资源
    最近更新 更多