自定义CF7验证,仅检查特定网址

时间:2019-09-20 20:08:23

标签: php wordpress forms contact-form-7

我需要在CF7函数中添加一个自定义规则。基本上,我正在检查提交中的URL。以

开头的提交
  

http://boca

  

https://boca

好的。我目前正在检查“ http”的实例,然后检查两个接受的值中有多少个。如果“ http”的总数较高,则存在不可接受的URL。这是我的代码。它似乎不起作用。我以为这种方法会循环通过表格。请帮我

    function check_if_brp_url( $result, $tag ){

    //$cool_boca_urls = array("https://boca", "http://boca");

        $name = $tag->name;

        //$value = isset( $_POST[$name] )
        //  ? trim( wp_unslash( strtr( (string) $_POST[$name], "\n", " " ) ) )
//: '';

            $value = isset( $_POST[$name] ) ? (string) $_POST[$name] : '';
                if ( 'text' == $tag->basetype ) {
                    foreach($value as $value){
                    $http_setter = "http";
                    $http_value_val = substr_count($value, $http_setter);

             if(!empty($http_value_val)){
                     $good1 = "https://boca";
                $good2 = "http://boca";
                 $good_urls = substr_count($value, $good1) + substr_count($value, $good2);
                 if($http_value_val > $good_urls){
                    $result->invalidate( $tag, wpcf7_get_message( 'not_brp_url' ) );
                 }
             }
             }
         }

            return $result;
}

add_filter( 'wpcf7_validate_text', 'check_if_brp_url', 10, 2 );
add_filter( 'wpcf7_validate_text*', 'check_if_brp_url', 10, 2 );

我也确实将“ not_brp_url”消息添加到消息数组中。因此,这不是问题。为什么这不起作用?

0 个答案:

没有答案