Это написано на 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');
}
}
}
Я думаю, что ошибка в $ SQL = "SELECT * FROM хххххх WHERE ID = '$ OrderID'"; или $ poststatus = '. $ Строки [ "post_status"] ". Пробовал все, что знаю и не могу исправить. – gpratt86
это не имеет смысла 'if ($ poststatus = wc-manual-renewal-re) {'. Сначала вы назначаете '=' вместо сравнения '===', который всегда будет возвращать true, и я предполагаю, что это должна быть строка, а не константа: 'wc-manual-renewal-re' – JimL
Спасибо. @JImL. С моей стороны очень глупая ошибка. === исправил это. Сделайте это ответом, и я отметю его правильно. – gpratt86