联系表格7条件必填复选框

时间:2016-07-22 09:48:43

标签: php wordpress contact-form-7

我有条件表格(Wordpress上的联系表格7),它会根据第一个问题上检查的方框隐藏或显示字段。

只有出现的问题是required(即在第一个问题中检查了他们的类别)。为了做到这一点,我需要将所有复选框设置为required,然后在下面的验证码中执行魔术

function wpcf7_checkbox_validation_filter( $result, $tag ) {
$tag = new WPCF7_Shortcode( $tag );


$type = $tag->type;
$name = $tag->name;

$value = isset( $_POST[$name] ) ? (array) $_POST[$name] : array();

if ( $tag->is_required() && empty( $value ) ) {
    $result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) );
}

return $result;
}

此特定行if ( $tag->is_required() && empty( $value ) )我需要更改它以检查:

  1. $tag->required()
  2. empty( $value )
  3. 是否已选中复选框的主要类别
  4. 只有这样才会失效。

    如何编码第3个点?此外,每个类别我都有大约5-10个问题。

1 个答案:

答案 0 :(得分:0)

经过多次努力,我找到了答案

function example_checkbox_validation_filter( $result, $tag ) {
$tag = new WPCF7_Shortcode( $tag );

$arr1 = array('project', 'property', 'budget', 'spaces', 'physical-limitations', 'achieve', 'control', 'lighting', 'climate', 'security');
$arr2 = array('pc_room', 'pc_display', 'pc_audio', 'pc_source', 'pc_seat', 'pc_control');

$type = $tag->type;
$name = $tag->name;

$value = isset( $_POST[$name] ) ? (array) $_POST[$name] : array();

foreach($_POST['choice'] as $selected){
    if ( $selected == 'Example' ) {
        if ( $tag->is_required() && empty( $value ) ) {
            foreach ($arr1 as $array) {
                    if ( $name == $array ) {
                        $result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) );
                }
            }
        }
    }
    if ( $selected == 'Example 2' ) {
        if ( $tag->is_required() && empty( $value ) ) {
            foreach ($arr2 as $array) {
                    if ( $name == $array ) {
                        $result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) );
                }
            }
        }
    }
}
return $result;

}