WordPress的 - 自定义PHP函数中的XML多个节点保存到多个用户元字段

问题描述 投票:0回答:1

我们有一个包含父内的多个节点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 );
}    
wordpress import
1个回答
0
投票

我设法得到它的工作,具有以下功能:

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++;
    }
}
}
© www.soinside.com 2019 - 2024. All rights reserved.