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:
jQuery.ajax({ 'url':ajaxurl, 'type':'POST', 'dataType':'json', 'data':{'action':'ozel_islem'}, 'success':function (data) { console.log(data); }});
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 add_action('wp_ajax_ozel_islem','ozelIslem'); function ozelIslem() { global $wpdb,$woocommerce; echo json_encode(array('status'=>'success')); wp_die(); } ?>
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:
İlk Yorumu Siz Yapın