未调用Contact Form 7自定义验证

时间:2019-07-06 作者:Best Dev Tutorials

我正在尝试更改电子邮件的筛选器,使其显示“需要电子邮件地址”。我检查它是否为空()。

我在联系人表格7中的标签是[电子邮件*您的电子邮件]

你可以在这里看到,我尝试了所有的方法来改变过滤器的响应,但没有任何效果。

add_filter( \'wpcf7_validate_email\', \'custom_email_confirmation_validation_filter\', 20, 2 );
add_filter( \'wpcf7_validate_email*\', \'custom_email_confirmation_validation_filter\', 20, 2 );

function custom_email_confirmation_validation_filter( $result, $tag ) {
    $result->invalidate( $tag, "Email Address is Required" );
    if ( \'your-email\' == $tag->name ) {
        $your_email = isset( $_POST[\'your-email\'] ) ? trim( $_POST[\'your-email\'] ) : \'\';

        if ( empty($your_email) ) {
            $result->invalidate( $tag, "Email Address is Required" );
        } else {
             $result->invalidate( $tag, "Email Address is Required" );
        }
    }

    return $result;
}
我可能会错过什么?

谢谢

1 个回复
最合适的回答,由SO网友:João Teixeira 整理而成

首先,如果您已经使用该功能检查字段是否为空,则无需在backoffice[电子邮件*您的电子邮件]中使用*。

无论如何,它都不起作用,因为is_required()比函数先执行。

Solutions:

1) 删除后端中的*

OR

(2)Change the priority

// From 20 to 5 should work
// You only need to apply this to this filter as it is the one for required fields

add_filter( \'wpcf7_validate_email*\', \'custom_email_confirmation_validation_filter\', 5, 2 );
希望有帮助!

相关推荐

Multiple category filters

我正在为客户端开发一个事件插件,我需要几个“类别过滤器”。现在我有了一个post类型的参数,我注册了该post类型和分类法,并创建了另一个分类法。在我的category metabox中,我只有第一个分类显示为我可以选择的类别。如果我在我的菜单上创建另一个帖子类型,它会像一个不同的插件菜单一样显示,其中子菜单是我的帖子类型所在的位置,我只想有一个不同的“类别过滤器”,我可以将类别添加到其中,然后在同一个插件中显示为类别元框。所以现在我有一个“Place”的帖子类型和分类法,它显示在我的插件中,通常是一个类