Simple Comment Editing
Users make typos! Allow users to correct their comments.
Sometimes a comment is made in the heat of the moment. Commenters have the option to delete their comment.
Core Features
Anonymous Comment Editing for Your Users
Testimonials
Developers
WordPress Filters
sce_loading_image
/**
* Filter: sce_loading_img
*
* Replace the loading image with a custom version.
*
* @since 1.0.0
*
* @param string $image_url URL path to the loading image.
*/
add_filter( 'sce_loading_img', 'edit_sce_loading_img' );
function edit_sce_loading_img( $default_url ) {
return 'http://domain.com/new_loading_image.gif';
Code language: PHP (php)
sce_comment_check_errors
/**
* Filter: sce_comment_check_errors
*
* Return a custom error message based on the saved comment
*
* @since 1.2.4
*
* @param bool $custom_error Default custom error. Overwrite with a string
* @param array $comment_to_save Associative array of comment attributes
*/
add_filter( 'sce_comment_check_errors', 'custom_sce_check_comment_length', 15, 2 );
function custom_sce_check_comment_length( $return = false, $comment = array() ) {
$comment_content = trim( wp_strip_all_tags( $comment[ 'comment_content' ] ) );
$comment_length = strlen( $comment_content );
if ( $comment_length < 50 ) {
return 'Comment must be at least 50 characters';
}
return false;
}
Code language: PHP (php)
sce_allow_delete
/**
* Filter: sce_allow_delete
*
* Determine if users can delete their comments
*
* @since 1.1.0
*
* @param bool $allow_delete True allows deletion, false does not
*/
// Disable delete functionality.
add_filter( 'sce_allow_delete', '__return_false' );
Code language: PHP (php)
sce_allow_delete_confirmation
/**
* Filter: sce_allow_delete_confirmation
*
* Boolean to decide whether to show a delete confirmation
*
* @since 2.1.7
*
* @param bool true to show a confirmation, false if not
*/
add_filter( 'sce_allow_delete_confirmation', '__return_false' );
Code language: PHP (php)
sce_get_comment
/**
* Filter: sce_get_comment
*
* Modify comment object
*
* @since 1.5.0
*
* @param object Comment Object
*/
Code language: PHP (php)
sce_extra_fields
/**
* Filter: sce_extra_fields
*
* Filter to add additional form fields
*
* @since 1.4.0
*
* @param string Empty string
* @param int post_id POST ID
* @param int comment_id Comment ID
*/
Code language: PHP (php)
sce_buttons
/**
* Filter: sce_buttons
*
* Filter to add button content
*
* @since 1.3.0
*
* @param string $textarea_buttons Button HTML
* @param int $comment_id Comment ID
*/
Code language: PHP (php)
sce_content
/**
* Filter: sce_content
*
* Filter to overral sce output
*
* @since 1.3.0
*
* @param string $sce_content SCE content
* @param int $comment_id Comment ID of the comment
*/
Code language: PHP (php)
sce_save_before
/**
* Filter: sce_save_before
*
* Allow third parties to modify comment
*
* @since 1.4.0
*
* @param object $comment_to_save The Comment Object
* @param int $post_id The Post ID
* @param int $comment_id The Comment ID
*/
Code language: PHP (php)
sce_can_edit
/**
* Filter: sce_can_edit
*
* Determine if a user can edit the comment
*
* @since 1.3.2
*
* @param bool true If user can edit the comment
* @param object $comment Comment object user has left
* @param int $comment_id Comment ID of the comment
* @param int $post_id Post ID of the comment
*/
Example Gist: https://gist.github.com/ronalfy/6b4fec8b3ac55bc47f3f
Code language: PHP (php)
sce_load_scripts
/**
* Filter: sce_load_scripts
*
* Boolean to decide whether to load SCE scripts or not
*
* @since 1.5.0
*
* @param bool true to load scripts, false not (default true)
*/
Code language: PHP (php)
sce_comment_time
/**
* Filter: sce_comment_time
*
* How long in minutes to edit a comment
*
* @since 1.0.0
*
* @param int $minutes Time in minutes
*/
add_filter( 'sce_comment_time', 'edit_sce_comment_time' );
function edit_sce_comment_time( $time_in_minutes ) {
return 60;
}
Code language: PHP (php)
sce_show_timer
/**
* Filter: sce_show_timer
*
* Filter allow you to hide the timer
*
* @since 2.3.0
*
* @param bool Whether to show the timer or not
*/
// Simple Comment Editing - Disable the timer.
add_filter( 'sce_show_timer', '__return_false' );
Code language: PHP (php)
sce_edit_text
/**
* Filter: sce_text_edit
*
* Filter allow editing of edit text
*
* @since 2.0.0
*
* @param string Translated click to edit text
*/
add_filter( 'sce_text_edit', function( $translated_text ) {
return "Custom Edit Text";
} );
Code language: PHP (php)
sce_edit_save
/**
* Filter: sce_text_save
*
* Filter allow editing of save text
*
* @since 2.0.0
*
* @param string Translated save text
*/
add_filter( 'sce_text_save', function( $translated_text ) {
return "Custom Save";
} );
Code language: PHP (php)
sce_edit_cancel
/**
* Filter: sce_text_cancel
*
* Filter allow editing of cancel text
*
* @since 2.0.0
*
* @param string Translated cancel text
*/
add_filter( 'sce_text_cancel', function( $translated_text ) {
return "Custom Cancel";
} );
Code language: PHP (php)
sce_edit_delete
/**
* Filter: sce_text_delete
*
* Filter allow editing of delete text
*
* @since 2.0.0
*
* @param string Translated delete text
*/
add_filter( 'sce_text_delete', function( $translated_text ) {
return "Custom Delete";
} );
Code language: PHP (php)
WordPress Actions
sce_save_after
/**
* Action: sce_save_after
*
* Allow third parties to save content after a comment has been updated
*
* @since 1.4.0
*
* @param object $comment_to_save The Comment Object
* @param int $post_id The Post ID
* @param int $comment_id The Comment ID
*/
Code language: PHP (php)
JavaScript Hooks
sce.comment.save.data
/**
* JSFilter: sce.comment.save.data
*
* Event triggered before a comment is saved
*
* @since 1.4.0
*
* @param object $ajax_save_params
*/
Code language: JavaScript (javascript)
sce.comment.timer.text
/**
* JSFilter: sce.comment.timer.text
*
* Filter triggered before a timer is returned
*
* @since 1.4.0
*
* @param string Timer text
* @param string Minutes text (internationalized)
* @param string Seconds text (internationalized)
* @param int minutes
* @param int seconds
*/
Code language: JavaScript (javascript)
JavaScript Events
sce.comment.save.pre
/**
* Event: sce.comment.save.pre
*
* Event triggered before a comment is saved
*
* @since 1.4.0
*
* @param int $comment_id The Comment ID
* @param int $post_id The Post ID
*/
Code language: JavaScript (javascript)
sce.comment.save
/**
* Event: sce.comment.save
*
* Event triggered after a comment is saved
*
* @since 1.4.0
*
* @param int $comment_id The Comment ID
* @param int $post_id The Post ID
*/
Code language: JavaScript (javascript)
sce.timer.loaded
/**
* Event: sce.timer.loaded
*
* Event triggered after a comment's timer has been loaded
*
* @since 1.3.0
*
* @param jQuery Element of the comment
*/
Code language: JavaScript (javascript)
sce.comment.loaded
/**
* Event: sce.comment.loaded
*
* Event triggered after SCE has loaded a comment.
*
* @since 1.5.0
*
* @param object Comment Object
*/
Code language: JavaScript (javascript)
Styling
The plugin doesn’t come with any styles. We leave it up to you to style the interface. It doesn’t look horribly ugly on most themes, but we leave the advanced customization up to you.
Styling the Edit Interface
The overall editing interface has been wrapped in a div
with class sce-edit-comment
.
.sce-edit-comment { /* styles here */ }
Code language: CSS (css)
Styling the Edit Button
The edit button and timer have been wrapped in a div
with class sce-edit-button
.
.sce-edit-button { /* styles here */ }
.sce-edit-button a { /* styles here */ }
.sce-edit-button .sce-timer { /* styles here */ }
Code language: CSS (css)
Styling the Loading Icon
The loading icon has been wrapped in a div
with class sce-loading
.
.sce-loading { /* styles here */ }
.sce-loading img { /* styles here */ }
Code language: CSS (css)
Styling the Textarea
The textarea interface has been wrapped in a div
with class sce-textarea
.
The actual textarea
has been wrapped in a div
with class sce-comment-textarea
. The save/cancel buttons have been wrapped in a div
with class sce-comment-edit-buttons
.
.sce-textarea { /* styles here */ }
.sce-textarea .sce-comment-textarea textarea { /* styles here */ }
.sce-comment-edit-buttons { /* styles here */ }
.sce-comment-edit-buttons .sce-comment-save { /* styles here */ }
.sce-comment-edit-buttons .sce-comment-cancel { /* styles here */ }
Code language: CSS (css)
Testing the Styles
Since most of the interface is hidden, it’s a little hard to style. Just place this into your stylesheet, and remove when you’re done.
/* todo - remove me when done styling */
.sce-edit-button,
.sce-loading,
.sce-textarea {
display: block !important;
}
Code language: CSS (css)