【发布时间】:2023-01-30 00:41:38
【问题描述】:
在 Gravity Form 的类 GF_Field_Checkbox 中有一个名为 get_value_export() 的方法,它为 GFCommon::selection_display() 创建的一堆元素返回 implode( ', ', $selected )
class-gf-field-checkbox.php 代码,这样您就可以看到我在引用什么。
public function get_value_export( $entry, $input_id = '', $use_text = false, $is_csv = false ) {
if ( empty( $input_id ) || absint( $input_id ) == $input_id ) {
$selected = array();
foreach ( $this->inputs as $input ) {
$index = (string) $input['id'];
if ( ! rgempty( $index, $entry ) ) {
$selected[] = GFCommon::selection_display( rgar( $entry, $index ), $this, rgar( $entry, 'currency' ), $use_text );
}
}
return implode( ', ', $selected );
...
这一切都很好,但是,问题是我正在分解从此方法返回的值。
$answer = explode(', ', $field->get_value_export($entry));
我不想这样做,因为存在一种边缘情况,其中潜在的 value 可能有一个逗号被分解。例如,假设我的表单中有一个选项,如下所示
Label: Are you not entertained?
Value:
[x] Lorem ipsum dolor sit amet, consectetur adipiscing elit
[x] Duis blandit, risus vel rutrum suscipit
[ ] Duis cursus ex risus
正如您所看到的,前两个选项被选中,这将被拾取,然后将被分解
['Lorem ipsum dolor sit amet', 'consectetur adipiscing elit', 'Duis blandit', 'risus vel rutrum suscipit']
什么时候就该这样爆
['Lorem ipsum dolor sit amet, consectetur adipiscing elit', 'Duis blandit, risus vel rutrum suscipit']
GFAPI 中存在什么方法,或者我可以使用自定义代码来解决此问题?
【问题讨论】:
标签: wordpress gravity-forms-plugin