【问题标题】:Updating Wordpress meta data更新 Wordpress 元数据
【发布时间】:2016-07-03 19:38:48
【问题描述】:

我有一个名为“sales”的自定义元密钥,它包含销售人员进行的所有销售的信息以及一个标志,表明它是否已获得授权、等待授权或是否已被拒绝。

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);
  }
}

【问题讨论】:

  • 使用 $sales['approved'] = $saleStatus; $sales[$key]['approved'] = $saleStatus;
  • 根据this answer 使用更新后的代码来实现这一点我已经在此处更新了代码,以明确答案。感谢您的建议。

标签: php wordpress metadata updating


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多