Example #1
0
        <h2>Comments</h2>
        <p>
        <?php 
global $comments;
?>
        <?php 
$comments = get_comments_from_user($curauth->ID);
?>
        <?php 
if (count($comments)) {
    ?>
        <?php 
    foreach ($comments as $comment) {
        ?>
            <?php 
        wp_list_comments(array('type' => 'comment', 'callback' => get_digressit_comments_function()));
        ?>
            
        <?php 
    }
    ?>
        <?php 
} else {
    ?>
                No comments.
        <?php 
}
?>
        </p>
        
    </div>
/**
 * This handles submission of comment form. 
 */
function add_comment_ajax($request_params)
{
    global $wpdb, $current_user, $blog_id;
    if (function_exists('switch_to_blog')) {
        if ($request_params['blog_id']) {
            switch_to_blog($request_params['blog_id']);
        }
    }
    $time = current_time('mysql');
    $time_gmt = current_time('mysql', 1);
    $display_name = isset($current_user->display_name) ? $current_user->display_name : $request_params['display_name'];
    $user_email = isset($request_params['user_email']) ? $request_params['user_email'] : $current_user->user_email;
    $user_ID = isset($current_user->ID) ? $current_user->ID : '';
    $comment_moderation = get_option('comment_moderation');
    $data = array('comment_post_ID' => $request_params['comment_post_ID'], 'comment_author' => $display_name, 'comment_author_email' => $user_email, 'comment_content' => $request_params['comment'], 'comment_parent' => $request_params['comment_parent'], 'user_id' => $user_ID, 'comment_author_IP' => $_SERVER['REMOTE_ADDR'], 'comment_agent' => $_SERVER['HTTP_USER_AGENT'], 'comment_date' => $time, 'comment_date_gmt' => $time_gmt, 'comment_approved' => $comment_moderation ? 0 : 1);
    if (strlen($display_name) < 2) {
        die(json_encode(array('status' => 0, "message" => 'Please enter a valid name.')));
    }
    if (!is_email($user_email)) {
        die(json_encode(array('status' => 0, "message" => 'Not a valid email.')));
    }
    if (strlen($request_params['comment']) < 2) {
        die(json_encode(array('status' => 0, "message" => 'Your comment is too short.')));
    }
    /*
    @TODO
    if(digressit_live_spam_check_comment( $data )){
        die(json_encode(array('status' => 0, "message" => 'Your comment looks like spam. You might want to try again with out links')));                        
    }
    */
    if ($wpdb->get_var($wpdb->prepare("SELECT COUNT(*) as comment_exists FROM {$wpdb->comments} WHERE comment_author_email = {$user_email} AND {$comment_content} = %s ", $user_email, $request_params['comment'])) > 0) {
        die(json_encode(array('status' => 0, "message" => 'This comment already exists')));
    }
    $comment_ID = wp_insert_comment($data);
    $request_params['comment_ID'] = $comment_ID;
    //@TODO: we are moving away from the extra column, in FUTURE VERSIONS we will just use comment meta
    $result = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->comments} SET comment_text_signature = %s WHERE comment_ID = %d", $request_params['selected_paragraph_number'], $comment_ID));
    add_metadata('post', $request_params['comment_post_ID'], 'comment_text_signature', $request_params['selected_paragraph_number'], true);
    add_metadata('comment', $comment_ID, 'paragraph', $request_params['selected_paragraph_number'], true);
    $comment_date = date('m/d/y');
    $message['comment_ID'] = $comment_ID;
    $message['comment_parent'] = $request_params['comment_parent'];
    $message['comment_date'] = $comment_date;
    $message['comment_author'] = $display_name;
    $status = 1;
    //an extra hook
    do_action('add_comment_ajax_metadata', $request_params);
    $commentcount = count(get_approved_comments($request_params['comment_post_ID']));
    delete_metadata('post', $request_params['comment_post_ID'], 'comment_count');
    add_metadata('post', $request_params['comment_post_ID'], 'comment_count', $commentcount, true);
    $message['comment_count'] = $commentcount;
    $message['paragraph_comment_count'] = count(digressit_get_approved_comments_for_paragraph($request_params['comment_post_ID'], $request_params['selected_paragraph_number']));
    ob_start();
    $data = get_comment($comment_ID);
    $data->blog_id = $blog_id;
    $data->ajax_call = $request_params['comment_parent'] ? true : false;
    $data->comment_text_signature = $request_params['selected_paragraph_number'];
    call_user_func(get_digressit_comments_function(), $data, null, null);
    $message['comment_response'] = ob_get_contents();
    ob_end_clean();
    if (function_exists('switch_to_blog')) {
        if ($request_params['blog_id']) {
            restore_current_blog();
        }
    }
    die(json_encode(array('status' => $status, "message" => $message)));
}