2012-02-09 69 views
1

我有一個簡單的AJAX函數,放在我的主題的functions.php中。它的工作原理,「工作」正確返回到jQuery ajax請求,所以事情的一面是好的。將AJAX函數放置在插件中時不起作用

BUT,當相同的功能被置於一個插件代替,它不再起作用,只是返回0

function addCustomer(){ 

    echo "working"; 
    die(); 

} 
add_action('wp_ajax_addCustomer', 'addCustomer'); 
add_action('wp_ajax_nopriv_addCustomer', 'addCustomer'); 

我還試圖將所述動作鉤的 內如果(is_admin()) 正如this tutorial中所建議的那樣,但沒有運氣。

我想我可能忽略了一些令人難以置信的明顯的東西,但我無法弄清楚。任何幫助表示讚賞,因爲我現在一直在Google上搜索幾個小時。

編輯:這裏是AJAX調用我使用:

<script type="text/javascript"> 
         jQuery('#newCustomerForm').submit(ajaxSubmit); 

         function ajaxSubmit(){ 

          var newCustomerForm = jQuery(this).serialize(); 

          jQuery.ajax({ 
           type:"POST", 
           url: "/wp-admin/admin-ajax.php", 
           data: newCustomerForm, 
           success:function(data){ 
            jQuery("#feedback").html(data); 
           }, 
           error: function(errorThrown){ 
            alert(errorThrown); 
           } 
          }); 

          return false; 
         } 

,但我敢肯定這一點是好的,因爲它可以正常使用時,接收功能被放置在functions.php的,只是沒有當放置在一個單獨的插件中。

+0

你應該閱讀你太鏈接的文章,並做他們正在做的方式。這是正確的方法。 – thenetimp 2012-02-09 12:41:28

+0

好吧,我發佈的簡單代碼和鏈接文章的完成方式之間有很大區別。具體而言,我想知道他們究竟做了些什麼才能使其發揮作用 - 我相當肯定地說,整個課程都是很好的編程,但不是必需的。事實是,我沒有nonce檢查阻止它?如果是這樣,爲什麼它會在函數中工作,但不在插件中? – 2012-02-09 12:44:45

+0

你確定你沒有收到數據嗎?您是否嘗試過使用休息客戶端調用ajax調用,以便看到返回的內容?數據類型可能期望json返回並且您正在使用print語句,因此這可能是一個因素。向我們展示您的AJAX調用代碼的樣子,以便我們可以看到這兩個問題。 – thenetimp 2012-02-09 12:49:26

回答

1

我也有同樣的問題,但在調試(螢火蟲)運行時,我得到一個404錯誤,URL:「/wp-admin/admin-ajax.php」丟失。爲了解決這個問題改變它的URL部分如下:

function ajaxSubmit(){ 
var newCustomerForm = jQuery(this).serialize(); 
jQuery.ajax({ 
    type:"POST", 
    url: "<?php echo home_url('/'); ?>/wp-admin/admin-ajax.php", 
    data: newCustomerForm, 
    success:function(data){ 
    jQuery("#feedback").html(data); 
    }, 
    error: function(errorThrown){ 
    alert(errorThrown); 
    } 
}); 
return false; 
} 

,它應該工作

VK

相關問題