WordPress插件管理员ajax不再工作了

时间:2016-04-28 08:53:01

标签: php jquery ajax wordpress

所以我制作了一个WordPress插件,在管理页面中我使用了ajax调用。它适用于我所有的测试人员和服务器,但现在我在一个安装了多个其他插件的大型网站上进行测试。我不知道为什么,但如果按下调用ajax请求的按钮,则不会发生任何事情。

以下是我的ajax调用的代码:

jQuery.ajax({
    url: "../wp-content/plugins/autocommerce/admin/activatePlugin.php?activate=true",
    method: "POST",
    data: { txtAC : txtAC, txtKey: txtKey }
}).done(function(msg) {
    if(msg == "success") {
        jQuery("#admin_activate").append('<input type="hidden" name="txtActivated" value="true" />');
        jQuery("#admin_activate").submit();
    } else if(msg == "failed") {
        jQuery("#activateError").html("Gegevens onjuist. Controleer uw gegevens en probeer het opnieuw.");
    } else if(msg == "notSet") {
        jQuery("#activateError").html("Een of meerdere velden zijn onjuist ingevuld.");
    } else {
        alert(msg);
        jQuery("#activateError").html("Er is een fout opgetreden. Probeer het later opnieuw.");
    }
});

没有错误,在其他网站上它只是工作,所以我不知道从哪里开始寻找解决这个问题。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:1)

我建议使用wordpress标准ajax而不是对你自己的php文件进行ajax调用:

add_action('wp_ajax_yourfunction', 'yourfunction');
add_action('wp_ajax_nopriv_yourfunction', 'yourfunction');

function nsds_change_password() { 
//your functional part goes here
}

Anf然后在ajax调用中使用admin ajax url,可以像这样预先输出:

<script type='text/javascript'> var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; </script>

并使用ajaxurl作为变量并设置附加动作参数,这将是您的函数名称。