Имея небольшую проблему с этим, у меня есть 12 идентичных запросов скручивания, чтобы соответствовать номеру заказа, напечатанному, чтобы получить ответ. Особенно это работает отлично.
Когда я пытаюсь собрать их вместе — если у первого URL нет совпадения, переходите ко второму запросу curl и так далее.
У меня проблема с логинами, я думаю, я ничего не получаю обратно. Я не совсем уверен, каким будет лучшее решение: выполнить набор операторов if / else и выполнить запрос curl, если последний был пуст, или запустить их все сразу и отобразить результат с сайта, который отвечает!
Вот мой текущий запрос.
Заранее спасибо за помощь…
$data = array();
$data_string = json_encode($data);
$username = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$password = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$ch = curl_init('https://tinywaist.co.uk/wc-api/v2/orders/'.$uksearch.'?consumer_key='.$username.'&consumer_secret='.$password);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
$result = json_decode($result, true);
foreach($result as $item) {
$ordernum = $item['order_number'];
$date = date('d M Y',strtotime($item['created_at']));
$firstname = $item['shipping_address']['first_name'];
$lastname = $item['shipping_address']['last_name'];
$company = $item['shipping_address']['company'];
$ad1 = $item['shipping_address']['address_1'];
$ad2 = $item['shipping_address']['address_2'];
$city = $item['shipping_address']['city'];
$state = $item['shipping_address']['state'];
$postcode = $item['shipping_address']['postcode'];
$country = $item['shipping_address']['country'];
$total = $item['total'];
$product = $item['line_items'][0]['name'];
$quantity = $item['line_items'][0]['quantity'];
$size = $item['line_items'][0]['meta'][0]['value'];
$prod1 = $item['line_items'][1]['name'];
$quant1 = $item['line_items'][1]['quantity'];
$size1 = $item['line_items'][1]['meta'][0]['value'];
$prod2 = $item['line_items'][2]['name'];
$quant2 = $item['line_items'][2]['quantity'];
$size2 = $item['line_items'][2]['meta'][0]['value'];
$email = $item['billing_address']['email'];
$status = $item['status'];
$account = '<a href="http://example.com/wp-admin/post.php?post='.$ordernum.'&action=edit" target="_blank">'.$ordernum.'</a>';
if (!$link = mysql_connect('IP_ADDRESS', 'user', 'pass')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('DB_Name', $link)) {
echo 'Could not select database';
exit;
}
$sql = "SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id = $ordernum AND meta_key = '_aftership_tracking_number'";
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$var = array();
while ($row = mysql_fetch_array($result)) {
$var = $row['meta_value'] . "\n";
}
$arrayuk .= '
<table class="table table-striped listbox">
<thead>
<tr>
<th>Customer Details</th>
<th>Order Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="">'.$firstname.' '.$lastname.'</div>
<p></p>
<div class="">'.$company.'</div>
<div class="">'.$ad1.'</div>
<div class="">'.$ad2.'</div>
<div class="">'.$city.'</div>
<div class="">'.$state.'</div>
<div class="">'.$postcode.'</div>
<div class="">'.$country.'</div>
</td>
<td>
<div class="">Number: '.$account.'</div>
<div class="">Date: '.$date.'</div>
<p></p>
<div><a href="mailto:'.$email.'">'.$email.'</a></div>
<p></p>
<img style="width:25px;" src="../images/flags/uk.png">
<div class="status">'.$status.'</div>
</td>
</tr>
<tr>
<th>Products</th>
<th>Tracking</th>
</tr>
<tr>
<td>
<div class=""><b>'.$quantity.'</b> '.$size.' '.$product.'</div>
<div class=""><b>'.$quant1.'</b> '.$size1.' '.$prod1.'</div>
<div class=""><b>'.$quant2.'</b> '.$size2.' '.$prod2.' </div>
</td>
<td><div class="trackcomplete"><a class="btn btn-md btn-primary" href="http://track.aftership.com/'.$var.'" target="_blank"><b>'.$var.'</b></a></div></td>
</tbody>
</table>';
}
curl_close($ch);
Если кто-то может дать мне ответ с примером или рукой помощи о том, как вставить вышеизложенное в оператор if / else, имея в виду, что он должен работать через 12 различных запросов. Я просто не уверен, что это правильно или эффективно!
Спасибо
Задача ещё не решена.
Других решений пока нет …