2016-03-20 14 views
0

CIで書かれており、wooapi v2を使用しています。注文はmanual renewalではなく、常にcompletedとマークされています。目標は、後のステータスが既に手動で更新されている場合、完了マークは付けられませんが、手動で更新することです。どんな助けでも大歓迎です。 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であると思わ= "WHERE ID = '$の受注コード' XXXXXX SELECT * FROM";または $ poststatus = 'です。 $ row ["post_status"]。 '; 私が知っているすべてを試しましたが修正できません。 – gpratt86

+0

これは 'if($ poststatus = wc-manual-renewal-re){'を意味しません。最初に、常に真を返す '==='の代わりに '='を代入しています。これは定数ではなく文字列でなければなりません: 'wc-manual-renewal-re' – JimL

+0

ありがとうございます。 @JImL。私の部分では非常に愚かなエラー。 ===それを固定した。それを答えさせて、それを正しいとマークします。 – gpratt86

答えて

0

はあなたが=を割り当てる代わりに、常にtrueを返します===を比較しているあなた、ここでコード

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'); 
} 
関連する問題