function qa_mark_answer_point($question_id, $answer_id) { $answer = get_post($answer_id); if ($answer) { // answer is valid global $user_ID; if ($user_ID != $answer->post_author) { /** * get site qa badge point system */ $point = qa_get_badge_point(); /** * update use point by answer accepted point */ qa_update_user_point($answer->post_author, $point->a_accepted); QA_Answers::update_field($answer_id, 'et_best_answer_point', $point->a_accepted); /** * do action qa point answer mark answered * @param $answer the answer be mark * @param $point */ do_action('qa_point_answer_marked', $answer, $point->a_accepted); } } }
<?php /** * Template Name: Badges List Template * version 1.0 * @author: enginethemes **/ get_header(); $badge_points = qa_get_badge_point(); $levels = qa_get_privileges(); ?> <?php get_sidebar('left'); ?> <div class="col-md-8 main-content"> <div class="row select-category"> <div class="col-md-12 current-category"> <span><?php _e("Badges", ET_DOMAIN); ?> </span> </div> </div><!-- END SELECT-CATEGORY --> <div class="row points-system"> <div class="col-md-12"> <h3><?php _e("Points System", ET_DOMAIN); ?> </h3> <p><?php _e("You earn reputation when people vote on your posts", ET_DOMAIN);
public function update_post() { try { global $current_user; if (!isset($_POST['do_action'])) { throw new Exception(__("Invalid action", ET_DOMAIN)); } if (isset($_POST['content']['post_title']) && $_POST['content']['post_title'] != strip_tags($_POST['content']['post_title'])) { throw new Exception(__("Post title should not contain any HTML Tag.", ET_DOMAIN)); } $action = $_POST['do_action']; switch ($action) { case 'vote_down': if (!qa_user_can('vote_down')) { throw new Exception(__("You don't have enough point to vote up.", ET_DOMAIN)); } case 'vote_up': if (!qa_user_can('vote_up')) { throw new Exception(__("You don't have enough point to vote down.", ET_DOMAIN)); } QA_Questions::vote($_POST['ID'], $action); $post = QA_Questions::convert(get_post($_POST['ID'])); $resp = array('success' => true, 'data' => $post); break; case 'accept-answer': case 'un-accept-answer': $question = get_post($_POST['post_parent']); $answerID = $action == "accept-answer" ? $_POST['ID'] : 0; if ($current_user->ID != $question->post_author) { throw new Exception(__("Only question author can mark answered.", ET_DOMAIN)); return false; } QA_Questions::mark_answer($_POST['post_parent'], $answerID); do_action('qa_accept_answer', $answerID, $action); $resp = array('success' => true); break; case 'saveComment': $data = array(); $data['comment_ID'] = $_POST['comment_ID']; $data['comment_content'] = $_POST['comment_content']; $success = QA_Comments::update($data); $comment = QA_Comments::convert(get_comment($_POST['comment_ID'])); $resp = array('success' => true, 'data' => $comment); break; case 'savePost': $data = array(); $data['ID'] = $_POST['ID']; $data['post_content'] = $_POST['post_content']; $data['post_author'] = $_POST['post_author']; $success = QA_Answers::update($data); $post = QA_Answers::convert(get_post($_POST['ID'])); if ($success && !is_wp_error($success)) { $resp = array('success' => true, 'data' => $post); } else { $resp = array('success' => false, 'data' => $post, 'msg' => $success->get_error_message()); } break; case 'saveQuestion': $data = $_POST['content']; $data['ID'] = $_POST['ID']; $data['qa_tag'] = isset($data['tags']) ? $data['tags'] : array(); $data['post_author'] = $_POST['post_author']; unset($data['tags']); $success = QA_Questions::update($data); $post = QA_Questions::convert(get_post($_POST['ID'])); if ($success && !is_wp_error($success)) { $resp = array('success' => true, 'data' => $post, 'msg' => __('Question has been saved successfully.', ET_DOMAIN), 'redirect' => get_permalink($_POST['ID'])); } else { $resp = array('success' => false, 'data' => $post, 'msg' => $success->get_error_message()); } break; case 'approve': $id = $_POST['ID']; $success = QA_Questions::change_status($id, "publish"); $post = QA_Questions::convert(get_post($id)); $point = qa_get_badge_point(); //store question id to data for send mail QA_Engine::qa_questions_new_answer($id); if ($success && !is_wp_error($success)) { if ($post->post_type == "question") { //add points to user if (!empty($point->create_question)) { qa_update_user_point($post->post_author, $point->create_question); } // set transient for new question set_transient('qa_notify_' . mt_rand(100000, 999999), array('title' => __('New Question', ET_DOMAIN), 'content' => __("There's a new post, why don't you give a look at", ET_DOMAIN) . ' <a href ="' . get_permalink($id) . '">' . get_the_title($id) . '</a>', 'type' => 'update', 'user' => md5($current_user->user_login)), 20); $resp = array('success' => true, 'data' => $post, 'msg' => __("You've just successfully approved a question.", ET_DOMAIN), 'redirect' => get_permalink($id)); } else { if ($post->post_type == "answer") { //add point to user if (!empty($point->post_answer)) { qa_update_user_point($post->post_author, $point->post_answer); } $resp = array('success' => true, 'data' => $post, 'msg' => __("You've just successfully approved an answer.", ET_DOMAIN), 'redirect' => get_permalink($id)); } } } else { $resp = array('success' => false, 'data' => $post, 'msg' => $success->get_error_message()); } break; case 'follow': case 'unfollow': if (!$current_user->ID) { throw new Exception(__('Login required', ET_DOMAIN)); } $result = QA_Questions::toggle_follow($_POST['ID'], $current_user->ID); if (!is_array($result)) { throw new Exception(__('Error occurred', ET_DOMAIN)); } if (in_array($current_user->ID, $result)) { $msg = __('You have started following this question.', ET_DOMAIN); } else { $msg = __('You have stopped following this question.', ET_DOMAIN); } $resp = array('success' => true, 'msg' => $msg, 'data' => array('isFollow' => in_array($current_user->ID, $result), 'following' => $result)); break; case 'report': $id = $_POST['ID']; if (!isset($_POST) || !$id) { throw new Exception(__("Invalid post", ET_DOMAIN)); } else { $fl = $this->report($id, $_POST['data']['message']); if ($fl) { $resp = array('success' => true, 'msg' => __("You have reported successfully", ET_DOMAIN)); } else { $resp = array('success' => false, 'msg' => __("Error when reported!", ET_DOMAIN)); } } break; default: throw new Exception(__("Invalid action", ET_DOMAIN)); break; } } catch (Exception $e) { $resp = array('success' => false, 'msg' => $e->getMessage()); } return $resp; }