我们已经提高了订阅价格,但目前的续订费率是旧的,尽管新订阅者的费率是新的。
有什么方法可以使价格上涨反射(reflect)在现有订户的定期付款中。
谢谢
最佳答案
我发现这样做的方法是修改 woocommerce 数据库。
需要修改三个值
1) 在“wp_woocommerce_order_itemmeta”表中的“_line_total”值
2) 在“wp_woocommerce_order_itemmeta”表中的“_line_subtotal”值 这是基于商品 ID,它是通过订单号在“wp_woocommerce_order_items”表中查找的
3)在'wp_postmeta表'中,'_order_total'值 这是根据订单号,如订阅列表所示
执行此操作的一些代码:
$query = "SELECT order_item_id FROM wp_woocommerce_order_items where order_id=$orderno";
if ($result = $mysqli->query($query))
{
while ($row = $result->fetch_object())
{
$itemid = $row->order_item_id;
$itemquery = "SELECT meta_value FROM wp_woocommerce_order_itemmeta where order_item_id=$itemid and meta_key='_variation_id'";
if ($itemresult = $mysqli->query($itemquery))
{
$variationid = $itemresult->fetch_object()->meta_value;
.... verify that have the right product.....
}
$sql = "UPDATE wp_woocommerce_order_itemmeta SET meta_value='$newamount' where order_item_id=$itemid and meta_key='_line_total'";
$modresult = $mysqli->query($sql);
$sql = "UPDATE wp_woocommerce_order_itemmeta SET meta_value='$newamount' where order_item_id=$itemid and meta_key='_line_subtotal'";
$modresult = $mysqli->query($sql);
}
}
$sql = "UPDATE wp_postmeta SET meta_value='$newamount' where post_id=$orderno and meta_key='_order_total'";
printf("SQL: $sql\n", FILE_APPEND);
$modresult = $mysqli->query($sql);
printf("Update order total result:" . print_r($modresult, true)."\n");
关于woocommerce - 更改现有定期付款的 woocommerce 订阅率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086097/