我如何在 WordPress Formidable Forms 中创建一个新的转发器字段而不将以前的条目值作为默认值?
How can I createa a new repeater field in WordPress Formidable Forms without it getting the previous entry values as default?
我想用多个值填充 Wordpress Formidable 转发器字段。我用自定义代码创建了一个自定义 Wordpress 插件,并使用 https://formidableforms.com/knowledgebase/frm_setup_new_fields_vars/#kb-auto-populate-multiple-rows-in-a-repeater 作为参考。
我的解决方案有效,但有一个问题。我可以毫无问题地创建一个新条目,它显示为一个条目。但是,下一个新条目将作为默认值提供旧条目值。请注意,我仍然可以编辑该新表格并保存新条目。
在这个 Formidable 插件的某处,旧条目被假定为用于默认值的条目。我应该更改什么以始终创建新条目(这样在转发器行中没有不需要的默认值)?
假设 'form_select' 是正确的子表单 ID 是否有问题?或者是否缺少某些东西,例如 'entry_id' 来说明这是一个新条目?
class formidableRepeater
{
public static function populateRepeaterFieldsWithNames($result, $field)
{
//simplified a bit and removed non-relevant code
$names = ['jack', 'jill', 'joe'];
$result['value'] = self::getValueRowsForResult(FormidableFieldKey::PREFILL_REPEATER_NAME, $names, $result['form_select']);
return result;
}
private static function getValueRowsForResult($fieldKey, $values, $form_select): array
{
$result = [];
//simplified a bit and removed non-relevant code
$valueRows = static::getValueRows($fieldId, $values);
$result = $valueRows;
$result['form'] = $form_select;
$result['row_ids'] = array_keys($valueRows);
return result;
}
private static function getValueRows($fieldId, $values): array
{
$result = [];
$i = 0;
$finalValues = is_array($values) ? $values : [$values];
foreach ($finalValues as $value) {
$result[$i] = static::getValueRow($i, $fieldId, $value);
$i++;
}
return $result;
}
private static function getValueRow(int $rowNumber, $fieldId, $value): array
{
return [
$rowNumber => '',
$fieldId => $value
];
}
}
事实证明,这只适用于文本字段。强大的状态(在支持问题中):
Just to clarify, checkboxes and radio buttons works differently. That
function is to be used for setting default values in text fields and
not radio buttons/dropdown fields/checkbox fields.
如果这些信息写在 link 上,我会节省几个小时。
我在这里找到了 'kind of' 解决方案。如果您希望它起作用,请确保创建一个没有任何值的第一个条目用于单选/复选框/下拉列表。下次创建条目时,默认仍会加载,但它们是空的,不会干扰您的表单!
我想用多个值填充 Wordpress Formidable 转发器字段。我用自定义代码创建了一个自定义 Wordpress 插件,并使用 https://formidableforms.com/knowledgebase/frm_setup_new_fields_vars/#kb-auto-populate-multiple-rows-in-a-repeater 作为参考。
我的解决方案有效,但有一个问题。我可以毫无问题地创建一个新条目,它显示为一个条目。但是,下一个新条目将作为默认值提供旧条目值。请注意,我仍然可以编辑该新表格并保存新条目。
在这个 Formidable 插件的某处,旧条目被假定为用于默认值的条目。我应该更改什么以始终创建新条目(这样在转发器行中没有不需要的默认值)?
假设 'form_select' 是正确的子表单 ID 是否有问题?或者是否缺少某些东西,例如 'entry_id' 来说明这是一个新条目?
class formidableRepeater
{
public static function populateRepeaterFieldsWithNames($result, $field)
{
//simplified a bit and removed non-relevant code
$names = ['jack', 'jill', 'joe'];
$result['value'] = self::getValueRowsForResult(FormidableFieldKey::PREFILL_REPEATER_NAME, $names, $result['form_select']);
return result;
}
private static function getValueRowsForResult($fieldKey, $values, $form_select): array
{
$result = [];
//simplified a bit and removed non-relevant code
$valueRows = static::getValueRows($fieldId, $values);
$result = $valueRows;
$result['form'] = $form_select;
$result['row_ids'] = array_keys($valueRows);
return result;
}
private static function getValueRows($fieldId, $values): array
{
$result = [];
$i = 0;
$finalValues = is_array($values) ? $values : [$values];
foreach ($finalValues as $value) {
$result[$i] = static::getValueRow($i, $fieldId, $value);
$i++;
}
return $result;
}
private static function getValueRow(int $rowNumber, $fieldId, $value): array
{
return [
$rowNumber => '',
$fieldId => $value
];
}
}
事实证明,这只适用于文本字段。强大的状态(在支持问题中):
Just to clarify, checkboxes and radio buttons works differently. That function is to be used for setting default values in text fields and not radio buttons/dropdown fields/checkbox fields.
如果这些信息写在 link 上,我会节省几个小时。
我在这里找到了 'kind of' 解决方案。如果您希望它起作用,请确保创建一个没有任何值的第一个条目用于单选/复选框/下拉列表。下次创建条目时,默认仍会加载,但它们是空的,不会干扰您的表单!