AJAX评论支持-投票并不总是登记

时间:2019-08-14 作者:J. Stockland

我试图创建一个简单的ajax-基于Wordpress的评论投票系统。我已经成功地构建了大部分,但现在似乎大多数情况下,UPVOUTS都没有注册。有时它们确实会注册(但最多只能注册2个,尽管我没有实现限制),Ajax调用会得到成功的响应(因此我猜PHP函数会被执行)。

你知道我哪里做错了吗(这是我的第一个Ajax项目)?

PHP function:

add_action( \'wp_ajax_comment_meta_update_vote\', \'comment_meta_update_vote\' );

function comment_meta_update_vote( ) {
    check_ajax_referer( \'upvote_nonce\' );

    $comment_id = $_POST[\'comment_id\'];
    $vote_score = get_comment_meta($comment_id , \'vote\', true);
    ++$vote_score;
    update_comment_meta($comment_id , \'vote\', $vote_score, true );


      $response[\'type\'] = \'success\';
      $response = json_encode( $response );
      echo $response;
    die(); 
}

Javascript Function:

function updateVote( comment_id ){

    jQuery(function($) {
      $.ajax({
      type : \'post\',
      dataType : \'json\',
      url : upvote_ajax.ajax_url,
      data : {
        action: \'comment_meta_update_vote\',
        comment_id: comment_id,
        _ajax_nonce: upvote_ajax.nonce
      },
      success: function( response ) {
         if( \'success\' == response.type ) {
            // console.log(\'success\');
         }
         else {
           // alert( \'Something went wrong, try logging in!\' );
         }
      }
    }) })};

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

请试试这个,并告诉我您在控制台中得到了什么。当然可以console.log 这个type

add_action( \'wp_ajax_comment_meta_update_vote\', \'comment_meta_update_vote\' );

function comment_meta_update_vote( ) {
check_ajax_referer( \'upvote_nonce\' );

$comment_id = $_POST[\'comment_id\'];
$vote_score = get_comment_meta($comment_id , \'vote\', true);
$vote_score++;
$updated = update_comment_meta($comment_id , \'vote\', $vote_score );

  if($updated){
    $msg = \'success\';
  }else{
    $msg = \'failed\';
  }
  $response = array(\'type\' => $msg);
  wp_json_encode( $response );

die(); 
}

相关推荐

使用AJAX更新Post Meta的问题(看起来很简单,但搞不懂)

首先,也最重要的是,感谢所有花时间回应的人。我是一个新的开发人员,我肯定我有一个误解或一些简单的东西,我错过了。我花了几个小时尝试不同的东西,但我不知道现在该尝试什么。下面您可以找到我的代码和问题的解释。我试图实现的目标:本质上,我试图创建一个插件,从插件管理页面编辑我页面上的所有元描述。考虑到这一点,我创建了一个非常简单的文件,其中包含了我试图实现的所有原则。我的想法是,一旦我弄清楚了这一部分,我就会找出合适的循环,以尝试实现我的最终目标。下面是尽可能精确的代码。再次感谢您的帮助-我已经测试了一段时间了