Woocommerce webhook oluşturma

Woocommerce webhook oluşturma

Woocommerce’de webhook kullanarak belli sipariş eylemleri gerçekleştiğinde php ile eylem detaylarını alabiliriz. Mesela yeni bir sipariş oluşturulduğunda sipariş detaylarını data olarak alabiliriz. Bu şekilde woocommerce’de yapılan belli eylemlere web kancaları ekleyebilir ve işlemlerimizi php ile yapabiliriz.

Webhook oluşturmak için panelden “Woocommerce” menüsüne giriyoruz. Ardında “Gelişmiş” sekmesine giriyoruz. Daha sonra yukarıdan “Web Kancaları” linkine tıklıyoruz. “Web Kancası Ekle” butonuna tıklıyoruz.

Woocommerce webhook oluşturma ayarlar

Başlık bölümünde eylemimizi seçiyoruz, ben yeni sipariş oluşturulduğunda tetiklenmesi için Sipariş Oluşturuldu seçeneğini seçtim ama siz farklı bir eylemde seçebilirsiniz. Teslimat URL’si ise eylem gerçekleştikten sonra bilgilerin hangi sayfaya post edileceğini girmemiz gerekiyor. Dizin içinde webhook.php olarak belirledim, sizde istediğiniz dosyayı tetikletebilirsiniz.

webhook.php dosyasında gelen bilgileri aşağıdaki gibi alıyoruz ve print_r olarak yazdırıyoruz.

<?php
$entityBody = file_get_contents('php://input');
$entityBody = json_decode($entityBody);
print_r($entityBody);
?>

Şimdi siteden test amaçlı bir sipariş oluşturuyoruz. Eğer siz farklı bir eylem seçtiyseniz o işlemi yapıp webhook tetikleme yapmanız gerekiyor.

Eylemi gerçekleştirdikten sonra “Woocommerce” altındaki “Durum” menüsüne gidiyoruz. Yukarıdan “Günlükler” sekmesini tıklıyoruz. Sağ üstten webhook-delivery… diye başlayan log dosyasını seçiyoruz ve Görüntüle diyoruz.

Woocommerce webhook log

 

Log dosyamız açıldıktan sonra webhook.php dosyamızdaki kodların çalıştığını ve post olarak gelen verilerin print_r olarak body bölümüne geldiğini aşağıdaki gibi görüyoruz. Http status 200 yani başarılı olarak geri dönmüş durumda. Burdan sonra gelen sipariş bilgilerini istediğimiz gibi işleyebilir ve işlemlerimizi yaptırabiliriz.

Woocommerce webhook sonucu

 

Diğer Yazılar

Okan Taştan

Full Stack Developer

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir