WordPress中解析Gravity Forms列表条目遇格式识别难题
关于Gravity Forms列表字段存储格式的解析
你看到的这个字符串是PHP序列化格式,这是PHP用来把数组、对象这类复杂数据转成字符串,方便存储或传递的标准格式。
格式含义拆解
a:2:{...}:表示这是一个包含2个元素的数组i:0;:数组的索引键为0s:2:"Fruit";:表示这是一个长度为2的字符串,内容是Fruit- 嵌套的
a:2:{...}对应你表格里的每一行数据,包含该行的水果和颜色信息
解析方法
直接用PHP内置的unserialize()函数就能把这个字符串转回PHP数组,之后就能正常操作数据了。修改你的代码如下:
function after_submission($entry, $form){ $list_entries = $entry[5]; // 解析序列化字符串 $parsed_list = unserialize($list_entries); // 遍历处理每一行数据 if(is_array($parsed_list)){ foreach($parsed_list as $row){ $fruit = $row['Fruit']; $color = $row['Color']; // 这里写你的业务逻辑,比如存库、发通知等 } } } add_action('gform_after_submission', 'after_submission', 10, 2);
注意:如果序列化字符串被篡改导致解析失败,unserialize()会返回false,加个is_array()判断能避免后续报错。
内容的提问来源于stack exchange,提问作者chatzich
相关产品推荐
相关产品推荐

