2006-10-26 00:55:05 +02:00
< ? php
2008-08-11 22:26:31 +02:00
/**
2011-04-28 17:24:49 +02:00
* Comment Management Screen
2008-08-11 22:26:31 +02:00
*
* @ package WordPress
* @ subpackage Administration
*/
/** Load WordPress Bootstrap */
2013-09-25 02:18:11 +02:00
require_once ( dirname ( __FILE__ ) . '/admin.php' );
2006-10-26 00:55:05 +02:00
2006-12-07 01:40:31 +01:00
$parent_file = 'edit-comments.php' ;
2006-10-26 00:55:05 +02:00
$submenu_file = 'edit-comments.php' ;
2015-05-28 23:41:30 +02:00
/**
* @ global string $action
*/
2015-01-10 21:42:24 +01:00
global $action ;
2007-12-10 21:42:03 +01:00
wp_reset_vars ( array ( 'action' ) );
2006-10-26 00:55:05 +02:00
if ( isset ( $_POST [ 'deletecomment' ] ) )
$action = 'deletecomment' ;
2009-12-15 11:55:55 +01:00
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' ;
}
2007-12-10 21:42:03 +01:00
switch ( $action ) {
case 'editcomment' :
2006-10-26 00:55:05 +02:00
$title = __ ( 'Edit Comment' );
2011-12-01 03:22:07 +01:00
get_current_screen () -> add_help_tab ( array (
'id' => 'overview' ,
'title' => __ ( 'Overview' ),
'content' =>
'<p>' . __ ( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' .
'<p>' . __ ( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>'
) );
2011-11-02 21:54:56 +01:00
get_current_screen () -> set_help_sidebar (
2010-05-28 01:45:45 +02:00
'<p><strong>' . __ ( 'For more information:' ) . '</strong></p>' .
2015-04-12 23:29:32 +02:00
'<p>' . __ ( '<a href="https://codex.wordpress.org/Administration_Screens#Comments" target="_blank">Documentation on Comments</a>' ) . '</p>' .
2014-03-08 05:14:15 +01:00
'<p>' . __ ( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
2010-05-28 01:45:45 +02:00
);
2008-02-20 03:41:16 +01:00
wp_enqueue_script ( 'comment' );
2013-09-25 02:18:11 +02:00
require_once ( ABSPATH . 'wp-admin/admin-header.php' );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
$comment_id = absint ( $_GET [ 'c' ] );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
if ( ! $comment = get_comment ( $comment_id ) )
2015-07-27 01:36:24 +02:00
comment_footer_die ( __ ( 'Invalid comment ID.' ) . sprintf ( ' <a href="%s">' . __ ( 'Go back' ) . '</a>.' , 'javascript:history.go(-1)' ) );
2006-10-26 00:55:05 +02:00
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment_id ) )
comment_footer_die ( __ ( 'You are not allowed to edit this comment.' ) );
2006-10-26 00:55:05 +02:00
2009-08-09 12:58:41 +02:00
if ( 'trash' == $comment -> comment_approved )
2009-07-30 15:39:34 +02:00
comment_footer_die ( __ ( 'This comment is in the Trash. Please move it out of the Trash if you want to edit it.' ) );
2009-09-14 16:03:32 +02:00
2007-12-10 21:42:03 +01:00
$comment = get_comment_to_edit ( $comment_id );
2006-10-26 00:55:05 +02:00
2013-09-25 02:18:11 +02:00
include ( ABSPATH . 'wp-admin/edit-form-comment.php' );
2006-10-26 00:55:05 +02:00
break ;
2009-12-15 11:55:55 +01:00
case 'delete' :
case 'approve' :
case 'trash' :
case 'spam' :
2006-10-26 00:55:05 +02:00
2010-09-26 11:37:25 +02:00
$title = __ ( 'Moderate Comment' );
2010-02-20 12:18:25 +01:00
$comment_id = absint ( $_GET [ 'c' ] );
if ( ! $comment = get_comment_to_edit ( $comment_id ) ) {
wp_redirect ( admin_url ( 'edit-comments.php?error=1' ) );
die ();
}
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment -> comment_ID ) ) {
2010-02-20 12:18:25 +01:00
wp_redirect ( admin_url ( 'edit-comments.php?error=2' ) );
die ();
}
2010-02-20 12:48:38 +01:00
// No need to re-approve/re-trash/re-spam a comment.
if ( $action == str_replace ( '1' , 'approve' , $comment -> comment_approved ) ) {
wp_redirect ( admin_url ( 'edit-comments.php?same=' . $comment_id ) );
die ();
}
2013-09-25 02:18:11 +02:00
require_once ( ABSPATH . 'wp-admin/admin-header.php' );
2006-10-26 00:55:05 +02:00
2009-12-15 11:55:55 +01:00
$formaction = $action . 'comment' ;
$nonce_action = 'approve' == $action ? 'approve-comment_' : 'delete-comment_' ;
2007-12-10 21:42:03 +01:00
$nonce_action .= $comment_id ;
2006-10-26 00:55:05 +02:00
?>
2014-05-18 23:47:14 +02:00
< div class = " wrap " >
2006-10-26 00:55:05 +02:00
2015-06-27 17:41:25 +02:00
< h1 >< ? php echo esc_html ( $title ); ?> </h1>
2010-02-20 12:18:25 +01:00
2007-12-10 21:42:03 +01:00
< ? php
2009-12-15 11:55:55 +01:00
switch ( $action ) {
case 'spam' :
$caution_msg = __ ( 'You are about to mark the following comment as spam:' );
2015-07-27 01:36:24 +02:00
$button = _x ( 'Mark as Spam' , 'comment' );
2009-12-15 11:55:55 +01:00
break ;
case 'trash' :
$caution_msg = __ ( 'You are about to move the following comment to the Trash:' );
2015-03-06 15:06:24 +01:00
$button = __ ( 'Move to Trash' );
2009-12-15 11:55:55 +01:00
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 ;
2007-12-10 21:42:03 +01:00
}
2010-02-20 12:48:38 +01:00
if ( $comment -> comment_approved != '0' ) { // if not unapproved
$message = '' ;
switch ( $comment -> comment_approved ) {
case '1' :
$message = __ ( 'This comment is currently approved.' );
break ;
case 'spam' :
$message = __ ( 'This comment is currently marked as spam.' );
break ;
case 'trash' :
$message = __ ( 'This comment is currently in the Trash.' );
break ;
}
2015-03-10 15:51:26 +01:00
if ( $message ) {
echo '<div class="notice notice-info"><p>' . $message . '</p></div>' ;
}
2010-02-20 12:48:38 +01:00
}
?>
2007-12-10 21:42:03 +01:00
< p >< strong >< ? php _e ( 'Caution:' ); ?> </strong> <?php echo $caution_msg; ?></p>
2006-10-26 00:55:05 +02:00
2009-12-15 11:55:55 +01:00
< table class = " form-table comment-ays " >
2015-03-06 15:06:24 +01:00
< tr >
2007-12-23 11:05:37 +01:00
< th scope = " row " >< ? php _e ( 'Author' ); ?> </th>
2006-10-26 00:55:05 +02:00
< td >< ? php echo $comment -> comment_author ; ?> </td>
</ tr >
< ? php if ( $comment -> comment_author_email ) { ?>
< tr >
2015-08-28 05:17:21 +02:00
< th scope = " row " >< ? php _e ( 'Email' ); ?> </th>
2006-10-26 00:55:05 +02:00
< td >< ? php echo $comment -> comment_author_email ; ?> </td>
</ tr >
< ? php } ?>
< ? php if ( $comment -> comment_author_url ) { ?>
< tr >
2007-12-23 11:05:37 +01:00
< th scope = " row " >< ? php _e ( 'URL' ); ?> </th>
2009-07-19 01:21:50 +02:00
< td >< a href = " <?php echo $comment->comment_author_url ; ?> " >< ? php echo $comment -> comment_author_url ; ?> </a></td>
2006-10-26 00:55:05 +02:00
</ tr >
< ? php } ?>
2015-03-06 15:06:24 +01:00
< tr >
2015-07-27 01:36:24 +02:00
< th scope = " row " >< ? php /* translators: column name or table row header */ _e ( 'In Response To' ); ?> </th>
2015-03-06 15:06:24 +01:00
< td >
< ? php
$post_id = $comment -> comment_post_ID ;
if ( current_user_can ( 'edit_post' , $post_id ) ) {
$post_link = " <a href=' " . esc_url ( get_edit_post_link ( $post_id ) ) . " '> " ;
$post_link .= esc_html ( get_the_title ( $post_id ) ) . '</a>' ;
} else {
$post_link = esc_html ( get_the_title ( $post_id ) );
}
echo $post_link ;
if ( $comment -> comment_parent ) {
$parent = get_comment ( $comment -> comment_parent );
2015-09-11 08:05:24 +02:00
$parent_link = esc_url ( get_comment_link ( $parent ) );
$name = get_comment_author ( $parent );
2015-09-18 20:36:24 +02:00
printf (
/* translators: comment link */
' | ' . __ ( 'In reply to %s.' ),
'<a href="' . $parent_link . '">' . $name . '</a>'
);
2015-03-06 15:06:24 +01:00
}
?>
</ td >
</ tr >
< tr >
< th scope = " row " >< ? php _e ( 'Submitted on' ); ?> </th>
< td >
< ? php
/* translators: 2: comment date, 3: comment time */
2015-03-10 15:51:26 +01:00
printf ( __ ( '<a href="%1$s">%2$s at %3$s</a>' ),
2015-09-11 08:21:25 +02:00
esc_url ( get_comment_link ( $comment ) ),
2015-03-06 15:06:24 +01:00
/* translators: comment date format. See http://php.net/date */
2015-09-11 08:15:24 +02:00
get_comment_date ( __ ( 'Y/m/d' ), $comment ),
get_comment_date ( get_option ( 'time_format' ), $comment )
2015-03-06 15:06:24 +01:00
);
?>
</ td >
</ tr >
2006-10-26 00:55:05 +02:00
< tr >
2014-01-24 20:06:15 +01:00
< th scope = " row " >< ? php /* translators: field name in comment form */ _ex ( 'Comment' , 'noun' ); ?> </th>
2007-05-25 11:41:04 +02:00
< td >< ? php echo $comment -> comment_content ; ?> </td>
2006-10-26 00:55:05 +02:00
</ tr >
</ table >
2015-03-06 15:06:24 +01:00
< form action = " comment.php " method = " get " class = " comment-ays-submit " >
2009-12-15 11:55:55 +01:00
2015-03-06 15:06:24 +01:00
< p >
< ? php submit_button ( $button , 'primary' , 'submit' , false ); ?>
< a href = " <?php echo admin_url('edit-comments.php'); ?> " class = " button-cancel " >< ? php esc_attr_e ( 'Cancel' ); ?> </a></td>
</ p >
2009-12-15 11:55:55 +01:00
< ? php wp_nonce_field ( $nonce_action ); ?>
2014-05-18 23:47:14 +02:00
< input type = " hidden " name = " action " value = " <?php echo esc_attr( $formaction ); ?> " />
< input type = " hidden " name = " c " value = " <?php echo esc_attr( $comment->comment_ID ); ?> " />
< input type = " hidden " name = " noredir " value = " 1 " />
2009-12-15 11:55:55 +01:00
</ form >
2006-10-26 00:55:05 +02:00
</ div >
< ? php
break ;
2010-02-20 12:18:25 +01:00
case 'deletecomment' :
case 'trashcomment' :
case 'untrashcomment' :
case 'spamcomment' :
case 'unspamcomment' :
case 'approvecomment' :
case 'unapprovecomment' :
2009-07-30 15:39:34 +02:00
$comment_id = absint ( $_REQUEST [ 'c' ] );
2010-02-20 12:18:25 +01:00
if ( in_array ( $action , array ( 'approvecomment' , 'unapprovecomment' ) ) )
check_admin_referer ( 'approve-comment_' . $comment_id );
else
check_admin_referer ( 'delete-comment_' . $comment_id );
2009-12-15 11:55:55 +01:00
2009-07-30 15:39:34 +02:00
$noredir = isset ( $_REQUEST [ 'noredir' ]);
2009-09-14 16:03:32 +02:00
2009-10-27 04:46:31 +01:00
if ( ! $comment = get_comment ( $comment_id ) )
2015-07-27 01:36:24 +02:00
comment_footer_die ( __ ( 'Invalid comment ID.' ) . sprintf ( ' <a href="%s">' . __ ( 'Go back' ) . '</a>.' , 'edit-comments.php' ) );
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment -> comment_ID ) )
2009-07-30 15:39:34 +02:00
comment_footer_die ( __ ( 'You are not allowed to edit comments on this post.' ) );
2009-09-14 16:03:32 +02:00
2010-02-20 12:18:25 +01:00
if ( '' != wp_get_referer () && ! $noredir && false === strpos ( wp_get_referer (), 'comment.php' ) )
2009-10-27 04:46:31 +01:00
$redir = wp_get_referer ();
2010-02-20 12:18:25 +01:00
elseif ( '' != wp_get_original_referer () && ! $noredir )
2009-10-27 04:46:31 +01:00
$redir = wp_get_original_referer ();
2010-02-20 12:18:25 +01:00
elseif ( in_array ( $action , array ( 'approvecomment' , 'unapprovecomment' ) ) )
$redir = admin_url ( 'edit-comments.php?p=' . absint ( $comment -> comment_post_ID ) );
2009-10-27 04:46:31 +01:00
else
$redir = admin_url ( 'edit-comments.php' );
2010-02-20 12:18:25 +01:00
$redir = remove_query_arg ( array ( 'spammed' , 'unspammed' , 'trashed' , 'untrashed' , 'deleted' , 'ids' , 'approved' , 'unapproved' ), $redir );
2009-11-27 11:34:09 +01:00
switch ( $action ) {
2009-12-15 10:45:29 +01:00
case 'deletecomment' :
2015-09-14 23:47:25 +02:00
wp_delete_comment ( $comment );
2009-12-15 10:45:29 +01:00
$redir = add_query_arg ( array ( 'deleted' => '1' ), $redir );
break ;
2009-11-27 11:34:09 +01:00
case 'trashcomment' :
2015-09-14 23:47:25 +02:00
wp_trash_comment ( $comment );
2009-11-27 11:34:09 +01:00
$redir = add_query_arg ( array ( 'trashed' => '1' , 'ids' => $comment_id ), $redir );
break ;
case 'untrashcomment' :
2015-09-14 23:47:25 +02:00
wp_untrash_comment ( $comment );
2009-11-27 11:34:09 +01:00
$redir = add_query_arg ( array ( 'untrashed' => '1' ), $redir );
break ;
case 'spamcomment' :
2015-09-14 23:47:25 +02:00
wp_spam_comment ( $comment );
2009-11-27 11:34:09 +01:00
$redir = add_query_arg ( array ( 'spammed' => '1' , 'ids' => $comment_id ), $redir );
break ;
case 'unspamcomment' :
2015-09-14 23:47:25 +02:00
wp_unspam_comment ( $comment );
2009-11-27 11:34:09 +01:00
$redir = add_query_arg ( array ( 'unspammed' => '1' ), $redir );
break ;
2010-02-20 12:18:25 +01:00
case 'approvecomment' :
2015-09-14 23:40:24 +02:00
wp_set_comment_status ( $comment , 'approve' );
2010-02-20 12:18:25 +01:00
$redir = add_query_arg ( array ( 'approved' => 1 ), $redir );
break ;
case 'unapprovecomment' :
2015-09-14 23:40:24 +02:00
wp_set_comment_status ( $comment , 'hold' );
2010-02-20 12:18:25 +01:00
$redir = add_query_arg ( array ( 'unapproved' => 1 ), $redir );
break ;
2010-02-21 01:03:42 +01:00
}
2009-09-14 16:03:32 +02:00
2009-10-27 04:46:31 +01:00
wp_redirect ( $redir );
2009-07-30 15:39:34 +02:00
die ;
2007-12-10 21:42:03 +01:00
case 'editedcomment' :
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
$comment_id = absint ( $_POST [ 'comment_ID' ] );
2009-03-06 06:06:15 +01:00
$comment_post_id = absint ( $_POST [ 'comment_post_ID' ] );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
check_admin_referer ( 'update-comment_' . $comment_id );
2006-10-26 00:55:05 +02:00
edit_comment ();
2008-11-20 05:51:47 +01:00
$location = ( empty ( $_POST [ 'referredby' ] ) ? " edit-comments.php?p= $comment_post_id " : $_POST [ 'referredby' ] ) . '#comment-' . $comment_id ;
2013-10-25 04:29:52 +02:00
2013-09-06 19:01:09 +02:00
/**
* Filter the URI the user is redirected to after editing a comment in the admin .
*
* @ since 2.1 . 0
*
* @ param string $location The URI the user will be redirected to .
* @ param int $comment_id The ID of the comment being edited .
*/
2007-12-10 21:42:03 +01:00
$location = apply_filters ( 'comment_edit_redirect' , $location , $comment_id );
wp_redirect ( $location );
2006-11-15 01:02:28 +01:00
exit ();
2007-12-10 21:42:03 +01:00
2006-10-26 00:55:05 +02:00
default :
2007-12-10 21:42:03 +01:00
wp_die ( __ ( 'Unknown action.' ) );
2006-10-26 00:55:05 +02:00
} // end switch
2013-09-25 02:18:11 +02:00
include ( ABSPATH . 'wp-admin/admin-footer.php' );