2016-01-29 57 views

回答

0

需要同步更新为,否则会老去率

的更新同步功能默认关闭。要启用更新同步:

转到:WooCommerce>设置>订阅

点击同步更新复选框

点击保存更改按钮

阅读更多Here

+0

这会做出一个订阅的所有款项出去在每月的同一天,因为我们需要他们继续重复自己的注册日期的每月周年。 – JanRed

1

我发现这样做的方法是修改woocommerce数据库。

有迹象表明,需要改变

1)在“wp_woocommerce_order_itemmeta”表中的“_line_total”值

2)在“wp_woocommerce_order_itemmeta”表中的“_line_subtotal”值 这是三个值基于该项目ID,它是由顺序号

3)在“wp_postmeta表”,这是基于顺序号的“_order_total”值 抬头在“wp_woocommerce_order_items”表,如图订阅名单

一些代码,这样做:

$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");