WordPress.org

Ready to get started?Download WordPress

Forums

[Plugin: SI CAPTCHA Anti-Spam] Where is the comment textarea? (17 posts)

  1. Sonic_Gear
    Member
    Posted 4 years ago #

    From the faq:

    Sometimes the captcha image and captcha input field are displayed AFTER the submit button on the comment form.
    Your theme must have a <?php do_action('comment_form', $post->ID); ?> tag inside your comments.php form. Most themes do. The best place to locate the tag is before the comment textarea, you may want to move it if it is below the comment textarea. This tag is exactly where the captcha image and captcha code entry will display on the form, so move the line to before the comment textarea, uncheck the 'Comment Form Rearrange' box on the 'Captcha options' page, and the problem should be fixed.

    Well, I'm totally an idiot in this thing and didn't know where I should move the tag. I mean I know where this comment.php located but no clue about the comment textarea. Can someone help point out where I had to move the <? Php do_action ('comment_form', $ post-> ID);?> so the captcha image and captcha input appear on the right place (be4 the submit button). Thanks.

    BTW I use WP 2.9.2 and Arras theme.

  2. Mike Challis
    Member
    Posted 4 years ago #

    On that theme.... move it here:

    <?php do_action('comment_form', $post->ID); ?>
        <p>
         <textarea name="comment" id="s4" cols="50" rows="10" tabindex="4" class="required"></textarea>
        </p>
  3. Sonic_Gear
    Member
    Posted 4 years ago #

    Thanks Mike...

  4. Mike Challis
    Member
    Posted 4 years ago #

    More info for others who may find this thread...

    When diagnosing missing CAPTCHA field on comment form....
    The version of WP makes a difference...

    (WP 2 series) Your theme must have a <?php do_action('comment_form', $post->ID); ?> tag inside your comments.php form. Most themes do. The best place to locate the tag is before the comment textarea, you may want to move it if it is below the comment textarea.

    (WP 3 series with a proper WP3 theme does not need this step, but if you have WP3 update to plugin version 2.5.2 or higher, if you still have the missing captcha, try above WP Series 2 steps)

  5. Inv_Trdr
    Member
    Posted 4 years ago #

    Thanks Mike. I do not see the line of code above in my comment.php file. I am pasting the file below. Will really appreciate it if you could tell me where to insert your line of code.
    Thank you.

    <?php
    /**
     * Comment Management Panel
     *
     * @package WordPress
     * @subpackage Administration
     */
    
    /** Load WordPress Bootstrap */
    require_once('admin.php');
    
    $parent_file = 'edit-comments.php';
    $submenu_file = 'edit-comments.php';
    
    wp_reset_vars( array('action') );
    
    if ( isset( $_POST['deletecomment'] ) )
    	$action = 'deletecomment';
    
    if ( 'cdc' == $action )
    	$action = 'delete';
    elseif ( 'mac' == $action )
    	$action = 'approve';
    
    if ( isset( $_GET['dt'] ) ) {
    	if ( 'spam' == $_GET['dt'] )
    		$action = 'spam';
    	elseif ( 'trash' == $_GET['dt'] )
    		$action = 'trash';
    }
    
    /**
     * Display error message at bottom of comments.
     *
     * @param string $msg Error Message. Assumed to contain HTML and be sanitized.
     */
    function comment_footer_die( $msg ) {
    	echo "<div class='wrap'><p>$msg</p></div>";
    	include('admin-footer.php');
    	die;
    }
    
    switch( $action ) {
    
    case 'editcomment' :
    	$title = __('Edit Comment');
    
    	wp_enqueue_script('comment');
    	require_once('admin-header.php');
    
    	$comment_id = absint( $_GET['c'] );
    
    	if ( !$comment = get_comment( $comment_id ) )
    		comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'javascript:history.go(-1)') );
    
    	if ( !current_user_can('edit_post', $comment->comment_post_ID) )
    		comment_footer_die( __('You are not allowed to edit comments on this post.') );
    
    	if ( 'trash' == $comment->comment_approved )
    		comment_footer_die( __('This comment is in the Trash. Please move it out of the Trash if you want to edit it.') );
    
    	$comment = get_comment_to_edit( $comment_id );
    
    	include('edit-form-comment.php');
    
    	break;
    
    case 'delete'  :
    case 'approve' :
    case 'trash'   :
    case 'spam'    :
    
    	require_once('admin-header.php');
    
    	$comment_id = absint( $_GET['c'] );
    	$formaction    = $action . 'comment';
    	$nonce_action  = 'approve' == $action ? 'approve-comment_' : 'delete-comment_';
    	$nonce_action .= $comment_id;
    
    	if ( !$comment = get_comment_to_edit( $comment_id ) )
    		comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
    
    	if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
    		comment_footer_die( 'approve' != $action ? __('You are not allowed to delete comments on this post.') : __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    ?>
    <div class='wrap'>
    
    <div class="narrow">
    <?php
    switch ( $action ) {
    	case 'spam' :
    		$caution_msg = __('You are about to mark the following comment as spam:');
    		$button      = __('Spam Comment');
    		break;
    	case 'trash' :
    		$caution_msg = __('You are about to move the following comment to the Trash:');
    		$button      = __('Trash Comment');
    		break;
    	case 'delete' :
    		$caution_msg = __('You are about to delete the following comment:');
    		$button      = __('Permanently Delete Comment');
    		break;
    	default :
    		$caution_msg = __('You are about to approve the following comment:');
    		$button      = __('Approve Comment');
    		break;
    }
    ?>
    
    <p><strong><?php _e('Caution:'); ?></strong> <?php echo $caution_msg; ?></p>
    
    <table class="form-table comment-ays">
    <tr class="alt">
    <th scope="row"><?php _e('Author'); ?></th>
    <td><?php echo $comment->comment_author; ?></td>
    </tr>
    <?php if ( $comment->comment_author_email ) { ?>
    <tr>
    <th scope="row"><?php _e('E-mail'); ?></th>
    <td><?php echo $comment->comment_author_email; ?></td>
    </tr>
    <?php } ?>
    <?php if ( $comment->comment_author_url ) { ?>
    <tr>
    <th scope="row"><?php _e('URL'); ?></th>
    <td><a href="<?php echo $comment->comment_author_url; ?>"><?php echo $comment->comment_author_url; ?></a></td>
    </tr>
    <?php } ?>
    <tr>
    <th scope="row" valign="top"><?php /* translators: field name in comment form */ echo _x('Comment', 'noun'); ?></th>
    <td><?php echo $comment->comment_content; ?></td>
    </tr>
    </table>
    
    <p><?php _e('Are you sure you want to do that?'); ?></p>
    
    <form action='comment.php' method='get'>
    
    <table width="100%">
    <tr>
    <td><a class="button" href="<?php echo admin_url('edit-comments.php'); ?>"><?php esc_attr_e('No'); ?></a></td>
    <td class="textright"><input type='submit' class="button" value='<?php echo esc_attr($button); ?>' /></td>
    </tr>
    </table>
    
    <?php wp_nonce_field( $nonce_action ); ?>
    <input type='hidden' name='action' value='<?php echo esc_attr($formaction); ?>' />
    <input type='hidden' name='p' value='<?php echo esc_attr($comment->comment_post_ID); ?>' />
    <input type='hidden' name='c' value='<?php echo esc_attr($comment->comment_ID); ?>' />
    <input type='hidden' name='noredir' value='1' />
    </form>
    
    </div>
    </div>
    <?php
    	break;
    
    case 'deletecomment' :
    case 'trashcomment' :
    case 'untrashcomment' :
    case 'spamcomment' :
    case 'unspamcomment' :
    	$comment_id = absint( $_REQUEST['c'] );
    	check_admin_referer( 'delete-comment_' . $comment_id );
    
    	$noredir = isset($_REQUEST['noredir']);
    
    	if ( !$comment = get_comment($comment_id) )
    		comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php') );
    	if ( !current_user_can('edit_post', $comment->comment_post_ID ) )
    		comment_footer_die( __('You are not allowed to edit comments on this post.') );
    
    	if ( '' != wp_get_referer() && false == $noredir && false === strpos(wp_get_referer(), 'comment.php') )
    		$redir = wp_get_referer();
    	elseif ( '' != wp_get_original_referer() && false == $noredir )
    		$redir = wp_get_original_referer();
    	else
    		$redir = admin_url('edit-comments.php');
    
    	$redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids'), $redir );
    
    	switch ( $action ) {
    		case 'deletecomment' :
    			wp_delete_comment( $comment_id );
    			$redir = add_query_arg( array('deleted' => '1'), $redir );
    			break;
    		case 'trashcomment' :
    			wp_trash_comment($comment_id);
    			$redir = add_query_arg( array('trashed' => '1', 'ids' => $comment_id), $redir );
    			break;
    		case 'untrashcomment' :
    			wp_untrash_comment($comment_id);
    			$redir = add_query_arg( array('untrashed' => '1'), $redir );
    			break;
    		case 'spamcomment' :
    			wp_spam_comment($comment_id);
    			$redir = add_query_arg( array('spammed' => '1', 'ids' => $comment_id), $redir );
    			break;
    		case 'unspamcomment' :
    			wp_unspam_comment($comment_id);
    			$redir = add_query_arg( array('unspammed' => '1'), $redir );
    			break;
    	}
    
    	wp_redirect( $redir );
    
    	die;
    	break;
    
    case 'approvecomment'   :
    case 'unapprovecomment' :
    	$comment_id = absint( $_GET['c'] );
    	check_admin_referer( 'approve-comment_' . $comment_id );
    
    	$noredir = isset( $_GET['noredir'] );
    
    	if ( !$comment = get_comment( $comment_id ) )
    		comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
    
    	if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) ) {
    		if ( 'approvecomment' == $action )
    			comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    		else
    			comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
    	}
    
    	if ( '' != wp_get_referer() && false == $noredir )
    		$redir = remove_query_arg( array('approved', 'unapproved'), wp_get_referer() );
    	else
    		$redir = admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
    
    	if ( 'approvecomment' == $action ) {
    		wp_set_comment_status( $comment_id, 'approve' );
    		$redir = add_query_arg( array( 'approved' => 1 ), $redir );
    	} else {
    		wp_set_comment_status( $comment_id, 'hold' );
    		$redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
    	}
    
    	wp_redirect( $redir );
    
    	exit();
    	break;
    
    case 'editedcomment' :
    
    	$comment_id = absint( $_POST['comment_ID'] );
    	$comment_post_id = absint( $_POST['comment_post_ID'] );
    
    	check_admin_referer( 'update-comment_' . $comment_id );
    
    	edit_comment();
    
    	$location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
    	$location = apply_filters( 'comment_edit_redirect', $location, $comment_id );
    	wp_redirect( $location );
    
    	exit();
    	break;
    
    default:
    	wp_die( __('Unknown action.') );
    	break;
    
    } // end switch
    
    include('admin-footer.php');
    
    ?>
  6. Inv_Trdr
    Member
    Posted 4 years ago #

    I found the comment.php file under WP-Admin in the root folder.

  7. Mike Challis
    Member
    Posted 4 years ago #

    That is the wrong comments.php. The one you need is not in WP-Admin.

    Look for wp-content/themes/default/comments.php
    If you are not using the default theme, look in the theme folder other than "default"

  8. Inv_Trdr
    Member
    Posted 4 years ago #

    Got it. Was looking in the wrong place. Found it in my theme's comments.php file. It was in there but a little lower down. Moved it up and it works fine.
    Thank you.

  9. Inv_Trdr
    Member
    Posted 4 years ago #

    Thanks Mike. Do not see that code in the new 2010 theme comment.php file though.

  10. Mike Challis
    Member
    Posted 4 years ago #

    WP 3.0 2010 theme does not need the <?php do_action ('comment_form', $post->ID);?> code in it because WP 3.0 has a new comments function separate from the comments.php template. SI CAPTCHA Anti-Spam version 2.5.2 or higher is fully WP 3.0 compliant.

    Be aware that using other themes (besides Twenty Ten) on WP 3.0 that are not fully WP 3.0 compliant can cause missing features.

  11. Inv_Trdr
    Member
    Posted 4 years ago #

    Thanks. Where is the new comment function in theme 2010 listed? I thought all goes in the comments.php file.

  12. Mike Challis
    Member
    Posted 4 years ago #

    since 3.0.0 there is function comment_form inside /wp-includes/comment-template.php

  13. Inv_Trdr
    Member
    Posted 4 years ago #

    Thank you Mike. So that automatically places the Captcha Box just above the "Submit" button?

  14. Mike Challis
    Member
    Posted 4 years ago #

    WP 3.0 with Twenty Ten theme or any WP 3.0 compatible theme will automatically have Captcha Box just above the comment box

  15. javigh123
    Member
    Posted 4 years ago #

    Has anyone had any luck rearranging the captcha image above the input field?

  16. javigh123
    Member
    Posted 4 years ago #

    Ok, i figured out how to put the captcha image above the input field. Hit me up for the si-captcha.php file if anyone is looking for this.

  17. muymalestado
    Member
    Posted 4 years ago #

    Thanks for above - found the correct comments.php and the line which was too low, moved that up, but still no comments.

    Using WP 2.8.4 and Kubrick.

    Any hints?

Topic Closed

This topic has been closed to new replies.

About this Topic