Можно ли вызвать URL после завершения заказа. Это не URL-адрес, на который должен быть отправлен клиент, но в конце этого URL-адреса следует посетить, чтобы вызвать API. Я немного новичок в этом, поэтому не знаю, если это правильный путь. Если бы кто-то мог указать мне правильное направление, это было бы здорово.
Я получил этот URL, который должен запускаться, заполненный переменными, которые я должен получить после выполнения заказа:
https: /// v1 / пригласить / externalhash = XXX & location_id = XXX & tenantId = XX & Invite_email = XXX & delay = X & first_name = XXX & last_name = XXX & language = XX & ref_code = XXXX
- пригласить_email -> Это должен быть адрес электронной почты, на который размещен заказ
- last_name -> Это должно быть Фамилия, с которым размещен заказ
- language -> Это должен быть язык код (в нижнем регистре) страны доставки, куда заказ доставляется
Я знаю, что это много, но как мне это сделать?
РЕДАКТИРОВАТЬ Хорошо, я нашел способ сделать это с CURL, но как я могу извинить приведенный ниже код, не открывая URL в браузере?
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
Я просто хочу извинить URL, но не хочу открывать его в своем браузере. Просто быстрый звонок и все.
Возможно ли это с CURL?
Редактировать 2.0.1
Я изменяю свою функцию с завершенным статусом заказа , Я почти все заработал, но по какой-то причине при использовании URL-адреса «dynamici c» URL-адрес не срабатывает.
Я также добавил эхо-предупреждение в javascript, и это оповещение передает точную хорошую динамику. c URL, чтобы он работал так, как он звучит. Ниже функции с предупреждением:
add_action('woocommerce_order_status_completed', 'custom_process_order');
function custom_process_order($order_id) {
// Get the order info
$order = wc_get_order( $order_id );
if($order->get_billing_country() == "NL"){
// create a new cURL resourc
$ch = curl_init();
$voornaam = $order->get_billing_first_name();
$achternaam = $order->get_billing_last_name();
$email = $order->get_billing_email();
echo '<script type="text/javascript">alert("https://klantenvertellen.nl/v1/invite/external?hash=0926-4adb-a39e-d04110d1e445&location_id=104679&tenantId=99&invite_email='.$email.'&delay=1&first_name='.$voornaam.'&last_name='.$achternaam.'&language=nl");</script>';
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'https://klantenvertellen.nl/v1/invite/external?hash=0926-4adb-a39e-d04110d1e445&location_id=10479&tenantId=99&invite_email='.$email.'&delay=1&first_name='.$voornaam.'&last_name='.$achternaam.'&language=nl');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
}
}
Когда я использую это, URL не срабатывает. Но URL-адрес оповещения выглядит следующим образом: https://klantenvertellen.nl/v1/invite/external?hash=0926-4adb-a39e-d04110d1e445&location_id=104679&tenantId=99&invite_email=test@email.com&delay=1&first_name=my имя и фамилия = моя фамилия и язык = nl
Точно так же, как это должно быть, но по какой-то причине функция CURL не сработала. Когда я добавляю URL-адрес, как это в функции:
curl_setopt($ch, CURLOPT_URL, 'https://klantenvertellen.nl/v1/invite/external?hash=0926-4adb-a39e-d04110d1e445&location_id=104679&tenantId=99&invite_email=test@email.com&delay=1&first_name=my first name&last_name=my lastname&language=nl');
URL-адрес срабатывает. Так что же я делаю неправильно, что при добавлении URL-адреса вручную он работает, а при работе с переменными он не работает?