【问题标题】:Contact Form 7 : send default value to mail if textarea empty联系表格 7:如果 textarea 为空,则将默认值发送到邮件
【发布时间】:2014-02-20 09:14:46
【问题描述】:

[your-name] 我有一个联系表格 7 3.7,其中 textarea 字段为:

<p>Message (optional)<br />
[textarea my-message]</p>

邮件格式为:

From :    [your-name] | [your-email]
Message : [my-message]

现在,当前文本区域为空。
如果用户未在消息框中填写任何数据,则邮件以空字段发送。
如果 textarea 为空,如何默认发送“None”值?

【问题讨论】:

  • 如果可以,请检查 [my-message] 的值。如果它为空,则为 [my-message] 分配一些值
  • 谢谢 Sushil,我尝试使用 $_POST[$name] = "None"; 添加一个检查/过滤器; //如果为空。但是添加这个会使整个页面崩溃
  • 可能是 $_POST[$name] 中的语法错误。尝试使用 $_POST["name_of_textfield"]。或者可能有其他方法可以读取联系表 7 中的帖子值。
  • 我终于让 $_POST[$name] 工作了。但是邮件中的字段是空的。在检查元素时,它具有值:“无”
  • 那么要么变量没有正确分配给 [my-message],要么你的变量在某处被覆盖。正确浏览代码,会有一些隐藏的魔法。

标签: php wordpress contact-form-7


【解决方案1】:

这需要一段时间才能找到并且可以使用一些工作,但请在您的 functions.php 文件中尝试:

add_action("wpcf7_posted_data", "wpcf7_modify_this");
function wpcf7_modify_this($posted_data) {

    // if user leaves the message area blank, set to "None"
    if ($posted_data['my-message'] == "")
        $posted_data['my-message'] = "None";

    // generic example
    if ( /* some logic */ )
        $posted_data['/* cf7-field-name */'] = "ValueToEmail";

    return $posted_data;
}

这里需要注意的一点是,验证发生在此之前,因此如果您允许用户输入空白值,请不要将其设为必填项。

【讨论】:

    【解决方案2】:

    根据 Contact Form 7 网站,您可以指定默认值。

    例子:

    [email* your-email default:user_email]
    

    这将使用当前用户的电子邮件地址填充该字段。

    更多信息here

    【讨论】:

    • 感谢Danyo,但设置默认值在界面上显示相同。
    【解决方案3】:

    很简单。
    从联系人表单生成的generate tag下拉菜单中选择Textarea选项。
    并且有设置默认值的选项。
    通过使用该选项,您可以设置 textarea 的默认值。 我在这里附上了一张图片...
    在该图像中,我显示了详细信息。

    它对我有用...
    我希望它也对你有用。

    【讨论】:

    • 感谢 Bhavesh,但我的要求是不要在界面上显示默认值。但如果字段为空,则发送到邮件
    • 如果 textarea 为空则发送默认值?
    • 是的..我为它创建了一个过滤器并插入了值..但它没有到达邮件中
    【解决方案4】:

    我尝试了上面@DACrosby 提供的代码,但那个对我不起作用。于是我删了一些代码改成这个,然后就完美运行了!

    add_action("wpcf7_posted_data", "wpcf7_modify_this");
    function wpcf7_modify_this($posted_data) {
    
        // if user leaves the message area blank, set to "None"
        if ($posted_data['my-message'] == "")
            $posted_data['my-message'] = "None";
    
        // generic example
        if ( /* some logic */ )
            $posted_data['/* cf7-field-name */'] = "ValueToEmail";
    
        return $posted_data;
    }
    

    【讨论】:

      【解决方案5】:

      据我所知,您无法使用 Contact Form 7 做到这一点。

      【讨论】:

        猜你喜欢
        • 2013-04-22
        • 2021-01-27
        • 1970-01-01
        • 2017-04-24
        • 2015-01-10
        • 1970-01-01
        • 2015-07-12
        • 1970-01-01
        相关资源
        最近更新 更多