2016-03-20 3 views
0

Это написано на CI и с использованием wooapi v2. Заказ всегда обозначается как completed, а не manual renewal. Цель состоит в том, что если статус сообщения уже является обновлением вручную, он не будет отмечен как завершенный, но продолжит ручное обновление. Любая помощь очень ценится. Несколько нового для CI.Проблема с статусом заказа CI

function complete_order($orderid) { 
    $consumer_key = 'xxx'; // Add your own Consumer Key here 
    $consumer_secret = 'xxxx'; // Add your own Consumer Secret here 
    $store_url = 'xxx'; // Add the home URL to the store you want to connect to here 
    $options = array(
     'debug' => true, 
     'return_as_array' => false, 
     'validate_url' => false, 
     'timeout' => 30, 
     'ssl_verify' => false, 
    ); 
    $servername = "xxx"; 
    $username = "xxx"; 
    $password = "xxx"; 
    $dbname = "xxx"; 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    $sql ="SELECT * FROM xxxxxx WHERE ID = '$orderid'"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $poststatus= '. $row["post_status"].'; 
     if ($poststatus = wc-manual-renewal-re){ 
      $client = new WC_API_Client($store_url, $consumer_key, $consumer_secret, $options); 
      $client->orders->update_status($orderid, 'wc-manual-renewal-re'); 
     }else{$client = new WC_API_Client($store_url, $consumer_key, $consumer_secret, $options); 
      $client->orders->update_status($orderid, 'wc-completed'); 
     } 
    } 
} 
+0

Я думаю, что ошибка в $ SQL = "SELECT * FROM хххххх WHERE ID = '$ OrderID'"; или $ poststatus = '. $ Строки [ "post_status"] ". Пробовал все, что знаю и не могу исправить. – gpratt86

+0

это не имеет смысла 'if ($ poststatus = wc-manual-renewal-re) {'. Сначала вы назначаете '=' вместо сравнения '===', который всегда будет возвращать true, и я предполагаю, что это должна быть строка, а не константа: 'wc-manual-renewal-re' – JimL

+0

Спасибо. @JImL. С моей стороны очень глупая ошибка. === исправил это. Сделайте это ответом, и я отметю его правильно. – gpratt86

ответ

0

У вас есть несколько ошибок/опечаток в коде здесь

if ($poststatus = wc-manual-renewal-re){ 
    $client = new WC_API_Client($store_url, $consumer_key, $consumer_secret, $options); 

    $client->orders->update_status($orderid, 'wc-manual-renewal-re'); 
} 

Вы назначаете = вместо сравнения ===, который всегда возвращает истину, и я предполагаю, что это должно быть строкой, а не константа: wc-manual-renewal-re

if ($poststatus === 'wc-manual-renewal-re'){ 
    $client = new WC_API_Client($store_url, $consumer_key, $consumer_secret, $options); 

    $client->orders->update_status($orderid, 'wc-manual-renewal-re'); 
} 
Смежные вопросы