未调用WordPress函数,AJAX返回0

时间:2017-04-05 作者:patel jinal

我正在开发一个名为“我的搜索网站”的插件,其中我有网站链接。如果单击该链接,将调用jQuery函数,并将该jQuery变量传递给wordpress函数,从中可以将其添加到user meta。

我的jQuery如下所示:

 $(".blavatar").click(function(){

        //toggle between the star icon 
        $(this).toggleClass(\'star-empty star_filled\');
        //retrieve the clicked link\'s ID and it\'s href
        var fav_id =  $(this).parent().parent().attr(\'id\');
        fav = $(this).parent().parent();
        //append favorites using ajax call

        jQuery.ajax({
                type:"POST",
                url: ajaxurl + "?action=fdiAddFavorite",
                data: {
                        action: \'fdiAddFavorite\',
                        fav_id: fav_id,
                },
                success:function(data){
                $(\'#wp-admin-bar-my-favorite-list\').append($(fav.html()));
                console.log(data);
                //console.log(fav_id);

                },
                error: function(errorThrown){
                        alert(errorThrown);
                }

        //}).always(function() { alert("complete");
    });

        return false;
});
在同一页上,我的wordpress函数声明如下:

 add_action(\'wp_ajax_fdiAddFavorite\', \'fdiAddFavorite\');
 add_action(\'wp_ajax_nopriv_fdiAddFavorite\', \'fdiAddFavorite\');

 function fdiAddFavorite() {
    $fav_id = get_post($_REQUEST[\'fav_id\']);
    $user_id = get_current_user_id();
    $favorite_list = get_user_meta($user_id, \'favorite links\', true);
    //print_r($favorite_list);
    if(empty($favorite_list))
        $favorite_list = array();

    $favorite_list[] = $fav_id;
    update_user_meta($user_id, \'favorite links\', $favorite_list);
    //sort($favorite_list);
    //print_r($favorite_list);
    die(\'{"success": true}\');
}
单击事件后,ajax返回0,并且该函数未被调用,并且ajax调用无法识别该函数。我无法更新用户元。你能帮我一下吗。谢谢

1 个回复
最合适的回答,由SO网友:scott 整理而成

而不是url: ajaxurl + "?action=fdiAddFavorite",, 使用以下两行:

url: ajaxurl,
action: "fdiAddFavorite",
然后在fdiAddFavorite(), 您可以尝试以下操作:

echo $favorite_list; // could also send message like "success!"
wp_die();

相关推荐

JqueryUi对话框给出未捕获的TypeError:This._addClass不是函数错误

我有一个网站,我们需要一些自定义php编码来连接到外部数据库,以获取几个销售我们产品的供应商的产品评论URL。我们试图实现的基本想法是让用户注册他们的产品,然后如果他们愿意留下评论,就延长保修期。我正在使用XYZScript。com的“插入PHP”插件来实现这一点。该主题最初只加载了jQuery,以避免创建子主题,我们正在php脚本中加载jQueryUI。因此,我们将jQuery加载到文档的标题中,将jQueryUI加载到文档的正文中。我不太确定这是因为加载脚本的顺序造成的,还是其他一些冲突的javasc