WordPress eklentisi geliştirken ajax işlemleri nasıl kullanılır ?

WordPress de yazdığınız eklentinin url adresine direk girerek veri almak pek mümkün değil zaten wordpress yapısı için de böyle bir şey kullanmak çokta uygun değil. WordPress de neredeyse herşey add_action ve add_filter işlemleriyle yürüyor. Geliştirdiğiniz bir eklentiden frontend den backende işlem göndermek için backend tarafında wp_ajax_ozel_fonksiyon actioni kullanarak kendi fonksiyonunu yazmanız yeterli olacaktır.

Frontend İçin:
[code lang=”js”]
jQuery.ajax({
‘url’:ajaxurl,
‘type’:’POST’,
‘dataType’:’json’,
‘data’:{‘action’:’ozel_islem’},
‘success’:function (data) {
console.log(data);
}});
[/code]
ajax post sorgusunda action ismi ile wp_ajax_ add_action isleminde kullanacağınız isimler aynı olması gerekiyor.ajaxurl değişkeni wordpressin global ajax urlsini döndürecektir.Gönderdiğiniz here ajax requestinde illa action parametresi tanımlanmış ve arka tarafta belirtilen action add_action ile register edilmiş olması gerekmektedir.

Backend İçin:
[php]
<?php
add_action(‘wp_ajax_ozel_islem’,’ozelIslem’);
function ozelIslem() {
global $wpdb,$woocommerce;

echo json_encode(array(‘status’=>’success’));
wp_die();
}
?>
[/php]
Ajax sorgusunda gönderdiğimi action parametresiyle add_action da kullandığım isim birebir aynı olduğuna dikkat edin. Fonksiyonumun en sonunda wp_die() fonksiyonu bulunmazsa wordpressin diğer fonskiyonlarıda çalıştığından çıktıyı bozuyor o yüzden wp_die her fonksiyonun bitiminde mutlaka kullanılmalı.

Yararlandığım Kaynaklar:

  1. http://stackoverflow.com/questions/3516296/ajax-send-and-retrieve-a-value-with-jquery-post-and-php-wordpress
  2. https://codex.wordpress.org/AJAX_in_Plugins

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir