我有一个名为'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);
}
}