我在自定义 Wordpress 主题中使用 Ninja Forms 3.1.4,我试图<select>
在将其保存到数据库之前验证和编辑服务器上的值,例如:
<select>
<option value="0">Please select a value</option>
<option value="1" selected>Option One</option>
<option value="2">Option Two</option>
</select>
在提交时,<option value="1" selected>Option One</option>
被选中,它的值将被保存到数据库中。这意味着如果我想稍后检索此信息,例如在电子邮件通知中,我将得到“ 1 ”。我宁愿展示“选项一”或更人性化的东西。
如果选择值为“ 0 ”,我也想抛出错误。
我在 codex 中找到了这一部分:http: //developer.ninjaforms.com/codex/submission-processing-hooks/
因此,我尝试在我的functions.php中像这样实现它:
add_filter('ninja_forms_submit_data', 'edit_select_submit_data');
function edit_select_submit_data($form_data) {
foreach($form_data['fields'] as $field) {
/* The doc uses $field['key'] but it seems that
* I don't have access to it...
*/
if($field['id'] == '19') { // 19 being my select field ID
switch($field['value']) {
case '0':
$field['value'] = ''; // Set to empty, so it throws an error
case '1':
$field['value'] = 'Option One'; // Set custom value
case '2':
$field['value'] = 'Option Two'; // Set custom value
}
}
}
return $form_data;
}
这个钩子被调用并且代码在case '1'下被执行,但是$field['value']
保持不变并且没有更新。
所以,我想知道我是否使用了正确的方法来编辑选择字段提交值,因为我似乎无法让它工作。