WordPress-重力表单:如何添加“重力”;“确认电话号码”;领域

WordPress-重力表单:如何添加“重力”;“确认电话号码”;领域,wordpress,gravity-forms-plugin,Wordpress,Gravity Forms Plugin,如果您熟悉WordPress重力表单,那么您知道可以从高级字段选项中添加“电话”字段。这很好,但我正在一个为手机用户提供服务的网站上工作,因此我需要确保填写表单的人重复两次(在两个字段中),以确保他们输入的手机号码没有输入错误。我一直在到处找,不知道怎么做 这段代码对我来说非常有效。他们的网站上有更详细的说明 将其粘贴到functions.php文件中,并更改register\u confirmation\u字段(8,数组(1,2))以适合您的形式 /** * Double Confirmati

如果您熟悉WordPress重力表单,那么您知道可以从高级字段选项中添加“电话”字段。这很好,但我正在一个为手机用户提供服务的网站上工作,因此我需要确保填写表单的人重复两次(在两个字段中),以确保他们输入的手机号码没有输入错误。我一直在到处找,不知道怎么做

这段代码对我来说非常有效。他们的网站上有更详细的说明

将其粘贴到
functions.php
文件中,并更改
register\u confirmation\u字段(8,数组(1,2))以适合您的形式

/**
* Double Confirmation Fields
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/

register_confirmation_fields(8, array(1, 2));

add_filter('gform_validation', 'gfcf_validation');
function gfcf_validation($validation_result) {
    global $gfcf_fields;

    $form = $validation_result['form'];
    $confirm_error = false;

    if(!isset($gfcf_fields[$form['id']]))
        return $validation_result;

    foreach($gfcf_fields[$form['id']] as $confirm_fields) {

        $values = array();

        // loop through form fields and gather all field values for current set of confirm fields
        foreach($form['fields'] as $field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            $values[] = rgpost("input_{$field['id']}");

        }

        // filter out unique values, if greater than 1, a value was different
        if(count(array_unique($values)) <= 1)
            continue;

        $confirm_error = true;

        foreach($form['fields'] as &$field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            // fix to remove phone format instruction
            if(RGFormsModel::get_input_type($field) == 'phone')
                $field['phoneFormat'] = '';

            $field['failed_validation'] = true;
            $field['validation_message'] = 'Your values do not match.'; 
        }

    }

    $validation_result['form'] = $form;
    $validation_result['is_valid'] = !$validation_result['is_valid'] ? false : !$confirm_error;

    return $validation_result;
}

function register_confirmation_fields($form_id, $fields) {
    global $gfcf_fields;

    if(!$gfcf_fields)
        $gfcf_fields = array();

    if(!isset($gfcf_fields[$form_id]))
        $gfcf_fields[$form_id] = array();

    $gfcf_fields[$form_id][] = $fields;
}

// register field IDs 1 and 2 on form ID 8
register_confirmation_fields(8, array(1, 2));
/**
*双重确认字段
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/
寄存器确认字段(8,数组(1,2));
添加_过滤器(“gform_验证”、“gfcf_验证”);
函数gfcf\u验证($validation\u result){
全球$gfcf_字段;
$form=$validation_result['form'];
$confirm\u error=false;
如果(!isset($gfcf_字段[$form['id']]))
返回$validation\u结果;
foreach($gfcf_字段[$form['id']]作为$confirm_字段){
$values=array();
//循环表单字段并收集当前确认字段集的所有字段值
foreach($form['fields']作为$field){
if(!in_数组($field['id'],$confirm_fields))
继续;
$values[]=rgpost(“输入{$field['id']}”);
}
//筛选出唯一的值,如果大于1,则值不同
if(count(array_unique($values))这段代码对我来说非常有效。他们的网站上有更详细的说明

将其粘贴到
functions.php
文件中,并更改
register\u confirmation\u字段(8,数组(1,2));
以适合您的表单

/**
* Double Confirmation Fields
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/

register_confirmation_fields(8, array(1, 2));

add_filter('gform_validation', 'gfcf_validation');
function gfcf_validation($validation_result) {
    global $gfcf_fields;

    $form = $validation_result['form'];
    $confirm_error = false;

    if(!isset($gfcf_fields[$form['id']]))
        return $validation_result;

    foreach($gfcf_fields[$form['id']] as $confirm_fields) {

        $values = array();

        // loop through form fields and gather all field values for current set of confirm fields
        foreach($form['fields'] as $field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            $values[] = rgpost("input_{$field['id']}");

        }

        // filter out unique values, if greater than 1, a value was different
        if(count(array_unique($values)) <= 1)
            continue;

        $confirm_error = true;

        foreach($form['fields'] as &$field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            // fix to remove phone format instruction
            if(RGFormsModel::get_input_type($field) == 'phone')
                $field['phoneFormat'] = '';

            $field['failed_validation'] = true;
            $field['validation_message'] = 'Your values do not match.'; 
        }

    }

    $validation_result['form'] = $form;
    $validation_result['is_valid'] = !$validation_result['is_valid'] ? false : !$confirm_error;

    return $validation_result;
}

function register_confirmation_fields($form_id, $fields) {
    global $gfcf_fields;

    if(!$gfcf_fields)
        $gfcf_fields = array();

    if(!isset($gfcf_fields[$form_id]))
        $gfcf_fields[$form_id] = array();

    $gfcf_fields[$form_id][] = $fields;
}

// register field IDs 1 and 2 on form ID 8
register_confirmation_fields(8, array(1, 2));
/**
*双重确认字段
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/
寄存器确认字段(8,数组(1,2));
添加_过滤器(“gform_验证”、“gfcf_验证”);
函数gfcf\u验证($validation\u result){
全球$gfcf_字段;
$form=$validation_result['form'];
$confirm\u error=false;
如果(!isset($gfcf_字段[$form['id']]))
返回$validation\u结果;
foreach($gfcf_字段[$form['id']]作为$confirm_字段){
$values=array();
//循环表单字段并收集当前确认字段集的所有字段值
foreach($form['fields']作为$field){
if(!in_数组($field['id'],$confirm_fields))
继续;
$values[]=rgpost(“输入{$field['id']}”);
}
//筛选出唯一的值,如果大于1,则值不同
if(count(array_unique($values))这段代码对我来说非常有效。他们的网站上有更详细的说明

将其粘贴到
functions.php
文件中,并更改
register\u confirmation\u字段(8,数组(1,2));
以适合您的表单

/**
* Double Confirmation Fields
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/

register_confirmation_fields(8, array(1, 2));

add_filter('gform_validation', 'gfcf_validation');
function gfcf_validation($validation_result) {
    global $gfcf_fields;

    $form = $validation_result['form'];
    $confirm_error = false;

    if(!isset($gfcf_fields[$form['id']]))
        return $validation_result;

    foreach($gfcf_fields[$form['id']] as $confirm_fields) {

        $values = array();

        // loop through form fields and gather all field values for current set of confirm fields
        foreach($form['fields'] as $field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            $values[] = rgpost("input_{$field['id']}");

        }

        // filter out unique values, if greater than 1, a value was different
        if(count(array_unique($values)) <= 1)
            continue;

        $confirm_error = true;

        foreach($form['fields'] as &$field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            // fix to remove phone format instruction
            if(RGFormsModel::get_input_type($field) == 'phone')
                $field['phoneFormat'] = '';

            $field['failed_validation'] = true;
            $field['validation_message'] = 'Your values do not match.'; 
        }

    }

    $validation_result['form'] = $form;
    $validation_result['is_valid'] = !$validation_result['is_valid'] ? false : !$confirm_error;

    return $validation_result;
}

function register_confirmation_fields($form_id, $fields) {
    global $gfcf_fields;

    if(!$gfcf_fields)
        $gfcf_fields = array();

    if(!isset($gfcf_fields[$form_id]))
        $gfcf_fields[$form_id] = array();

    $gfcf_fields[$form_id][] = $fields;
}

// register field IDs 1 and 2 on form ID 8
register_confirmation_fields(8, array(1, 2));
/**
*双重确认字段
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/
寄存器确认字段(8,数组(1,2));
添加_过滤器(“gform_验证”、“gfcf_验证”);
函数gfcf\u验证($validation\u result){
全球$gfcf_字段;
$form=$validation_result['form'];
$confirm\u error=false;
如果(!isset($gfcf_字段[$form['id']]))
返回$validation\u结果;
foreach($gfcf_字段[$form['id']]作为$confirm_字段){
$values=array();
//循环表单字段并收集当前确认字段集的所有字段值
foreach($form['fields']作为$field){
if(!in_数组($field['id'],$confirm_fields))
继续;
$values[]=rgpost(“输入{$field['id']}”);
}
//筛选出唯一的值,如果大于1,则值不同
if(count(array_unique($values))这段代码对我来说非常有效。他们的网站上有更详细的说明

将其粘贴到
functions.php
文件中,并更改
register\u confirmation\u字段(8,数组(1,2));
以适合您的表单

/**
* Double Confirmation Fields
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/

register_confirmation_fields(8, array(1, 2));

add_filter('gform_validation', 'gfcf_validation');
function gfcf_validation($validation_result) {
    global $gfcf_fields;

    $form = $validation_result['form'];
    $confirm_error = false;

    if(!isset($gfcf_fields[$form['id']]))
        return $validation_result;

    foreach($gfcf_fields[$form['id']] as $confirm_fields) {

        $values = array();

        // loop through form fields and gather all field values for current set of confirm fields
        foreach($form['fields'] as $field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            $values[] = rgpost("input_{$field['id']}");

        }

        // filter out unique values, if greater than 1, a value was different
        if(count(array_unique($values)) <= 1)
            continue;

        $confirm_error = true;

        foreach($form['fields'] as &$field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;

            // fix to remove phone format instruction
            if(RGFormsModel::get_input_type($field) == 'phone')
                $field['phoneFormat'] = '';

            $field['failed_validation'] = true;
            $field['validation_message'] = 'Your values do not match.'; 
        }

    }

    $validation_result['form'] = $form;
    $validation_result['is_valid'] = !$validation_result['is_valid'] ? false : !$confirm_error;

    return $validation_result;
}

function register_confirmation_fields($form_id, $fields) {
    global $gfcf_fields;

    if(!$gfcf_fields)
        $gfcf_fields = array();

    if(!isset($gfcf_fields[$form_id]))
        $gfcf_fields[$form_id] = array();

    $gfcf_fields[$form_id][] = $fields;
}

// register field IDs 1 and 2 on form ID 8
register_confirmation_fields(8, array(1, 2));
/**
*双重确认字段
* http://gravitywiz.com/2012/05/01/custom-field-confirmation/
*/
寄存器确认字段(8,数组(1,2));
添加_过滤器(“gform_验证”、“gfcf_验证”);
函数gfcf\u验证($validation\u result){
全球$gfcf_字段;
$form=$validation_result['form'];
$confirm\u error=false;
如果(!isset($gfcf_字段[$form['id']]))
返回$validation\u结果;
foreach($gfcf_字段[$form['id']]作为$confirm_字段){
$values=array();
//循环表单字段并收集当前确认字段集的所有字段值
foreach($form['fields']作为$field){
if(!in_数组($field['id'],$confirm_fields))
继续;
$values[]=rgpost(“输入{$field['id']}”);
}
//筛选出唯一的值,如果大于1,则值不同
if(计数(数组_唯一($value))