Skip to content

Instantly share code, notes, and snippets.

@bueltge
Created May 3, 2011 11:38
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save bueltge/953195 to your computer and use it in GitHub Desktop.
Save bueltge/953195 to your computer and use it in GitHub Desktop.
WordPress Example Plugin: Comment meta data test
<?php
/*
Plugin Name: Comment meta data test
Version: 1.0
Plugin URI: http://wpengineer.com
Description: Comment meta data test
Author: Latz
Author URI: http://wpengineer.com
*/
add_filter( 'comment_form_defaults', 'change_comment_form_defaults');
function change_comment_form_defaults($default) {
$commenter = wp_get_current_commenter();
$default['fields']['email'] .= '<p class="comment-form-author">' .
'<label for="city">'. __('City') . '</label>
<span class="required">*</span>
<input id="city" name="city" size="30" type="text" /></p>';
return $default;
}
add_filter( 'preprocess_comment', 'verify_comment_meta_data' );
function verify_comment_meta_data($commentdata) {
if ( ! isset( $_POST['city'] ) )
wp_die( __('Error: please fill the required field (city).') );
return $commentdata;
}
add_action( 'comment_post', 'save_comment_meta_data' );
function save_comment_meta_data( $comment_id ) {
$cities = explode(',', $_POST['city']);
foreach ($cities as $city)
echo update_comment_meta( $comment_id, 'city', $city, true);
}
add_filter( 'get_comment_author_link', 'attach_city_to_author' );
function attach_city_to_author( $author ) {
$cities = get_comment_meta( get_comment_ID(), 'city', false );
if ( $cities ) {
$author .= ' (';
foreach ($cities as $city)
$author .= $city . ' ';
$author .= ')';
}
return $author;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment