0
如果您熟悉WordPress Gravity Forms,那麼您知道可以從高級字段選項中添加「電話」字段。這很好,但我正在爲移動用戶提供服務的網站上工作,所以我需要確保填寫表單的人員這樣做了兩次(在兩個字段中)以確保輸入的手機號碼中沒有打字錯誤。我一直在尋找,無法弄清楚如何做到這一點。WordPress - Gravity Forms:如何添加「確認電話號碼」字段
如果您熟悉WordPress Gravity Forms,那麼您知道可以從高級字段選項中添加「電話」字段。這很好,但我正在爲移動用戶提供服務的網站上工作,所以我需要確保填寫表單的人員這樣做了兩次(在兩個字段中)以確保輸入的手機號碼中沒有打字錯誤。我一直在尋找,無法弄清楚如何做到這一點。WordPress - Gravity Forms:如何添加「確認電話號碼」字段
此代碼從http://gravitywiz.com/custom-field-confirmation/完美地爲我工作。在他們的網站上有更詳細的說明。
將其粘貼到您的functions.php
文件中並更改register_confirmation_fields(8, array(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));