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: