更新Wordpress元数据

时间:2016-07-03 19:38:48

标签: php wordpress metadata updating

我有一个名为'sales'的自定义meta_key,它包含销售人员执行的所有销售信息以及一个标记,表明它是否已获得授权,等待授权或是否已被拒绝。

Wordpress将每笔销售保存为usermeta表中的一个单独的行,我没有遇到的问题是更新特定的销售状态;即将其从待定(2)改为拒绝(0)或批准(1)。

我已经尝试了一些方法来执行此操作以及其他论坛上的建议等,但似乎我可能首先错误地存储元数据,因为所有示例都很有趣,每个自定义meta_key每行只有一行用户;所以帖子建议更新值,删除与密钥相关的所有数据,然后上传修改后的数组。

我目前有以下代码,但它无法正常工作,因为它将数据保存到另一个数组中,因此进一步嵌套。

if(isset($_POST['approved'])) {

    $saleStatus = 2;

    switch ($_POST['approved']) {
        case 'approve':
            $saleStatus = 1;
            break;

        case 'reject':
            $saleStatus = 0;
            break;
    }

    $sales = get_user_meta($_POST['repID'], 'sales');

    foreach ($sales as $key => $sale) {

        if($sale['reg'] === $_POST['carReg']) {

            $sales[$key]['approved'] = $saleStatus;

        }

    }

    update_user_meta( $_POST['repID'], 'sales', $sales);
}

已更新

$sales = get_user_meta($_POST['repID'], 'sales');

foreach ($sales as $key => $sale) {
  $old_sale_data = $sale;
  if($sale['reg'] === $_POST['carReg']) {
    $sale['approved'] = $saleStatus;
     update_user_meta( $_POST['repID'], 'sales', $sale, $old_sale_data);
  }
}

1 个答案:

答案 0 :(得分:0)

Here is the full answer。我已用正确的代码更新了问题。我不得不将更新放在循环中,因为我的元数据存储在不同的行中。