我们有一个包含父内的多个节点XML。我会给你下面的例子:
<PARENT>
<Data>
<DATE_FIELD>11.07.2018</DATE_FIELD>
<SUM_AVG/>
<DOUBLE_AVG/>
<THIRD_AVG/>
<FOURTH_AVG>45000.00</FOURTH_AVG>
</Data>
<Data>
<DATE_FIELD>10.08.2018</DATE_FIELD>
<SUM_AVG>546.45</SUM_AVG>
<DOUBLE_AVG>472.50</DOUBLE_AVG>
<THIRD_AVG>180.00</THIRD_AVG>
<FOURTH_AVG>44453.55</FOURTH_AVG>
</Data>
<Data>
<DATE_FIELD>10.09.2018</DATE_FIELD>
<SUM_AVG>536.59</SUM_AVG>
<DOUBLE_AVG>482.36</DOUBLE_AVG>
<THIRD_AVG>180.00</THIRD_AVG>
<FOURTH_AVG>43916.96</FOURTH_AVG>
</Data>
<Data>
<DATE_FIELD>12.06.2023</DATE_FIELD>
<SUM_AVG>995.85</SUM_AVG>
<DOUBLE_AVG>23.10</DOUBLE_AVG>
<THIRD_AVG>180.00</THIRD_AVG>
<FOURTH_AVG>1009.23</FOURTH_AVG>
</Data>
<Data>
<DATE_FIELD>10.07.2023</DATE_FIELD>
<SUM_AVG>1009.23</SUM_AVG>
<DOUBLE_AVG>9.80</DOUBLE_AVG>
<THIRD_AVG>180.00</THIRD_AVG>
<FOURTH_AVG/>
</Data>
</PARENT>
我们希望这些多个值存储wp_usermeta表内不同的自定义字段(包含用户自定义字段的表)内,使用WP所有导入插件。默认情况下,你必须手动分配插件的设置里面相应的节点。
对于这一点,我试图勾自定义PHP函数进入“pmxi_saved_post”的动作,依次通过“数据”节点和添加每一个到适当sepparate命名的自定义字段。所以,对于“数据”里面的每个节点,我们必须把它存储到一个独立的自定义字段。
问题是,它不存储wp_usermeta表内的任何东西。
下面是代码:
add_action('pmxi_saved_post', 'post_saved', 10, 1);
function post_saved($id) {
foreach( $data as $key => $value ) {
update_post_meta( $post_id, $key, $value );
}
我设法得到它的工作,具有以下功能:
function wpallimport_post_saved( $post_id, $xml_data, $is_update ) {
if(!empty($xml_data->PARENT){
$xml = $xml_data->PARENT;
$counter = 1;
foreach($xml->Data as $counts => $data){
foreach($data as $key => $user_meta){
update_user_meta( $post_id, strtolower($key) . "-data-" . $counter , current($user_meta));
}
$counter++;
}
}
}