';
if ( $post->post_status == 'trash' ) {
echo '
' . __( 'Restore', 'jetpack' ) . ' | ';
echo "
" . __( 'Delete Permanently', 'jetpack' ) . "";
?>
post_status == 'publish' ) {
echo '
Spam';
echo ' | ';
echo '
';
echo '' . __( 'Trash', 'jetpack' ) . '';
?>
post_status == 'spam' ) {
echo '
Not Spam';
echo ' | ';
echo "
" . __( 'Delete Permanently', 'jetpack' ) . "";
?>
'',
'subject' => '',
'fields' => array(),
);
foreach ( $grunion->fields as $field ) {
$out['fields'][$field->get_attribute( 'id' )] = $field->attributes;
}
$to = $grunion->get_attribute( 'to' );
$subject = $grunion->get_attribute( 'subject' );
foreach ( array( 'to', 'subject' ) as $attribute ) {
$value = $grunion->get_attribute( $attribute );
if ( isset( $grunion->defaults[$attribute] ) && $value == $grunion->defaults[$attribute] ) {
$value = '';
}
$out[$attribute] = $value;
}
die( json_encode( $out ) );
}
add_action( 'wp_ajax_grunion_shortcode', 'grunion_ajax_shortcode' );
add_action( 'wp_ajax_grunion_shortcode_to_json', 'grunion_ajax_shortcode_to_json' );
// process row-action spam/not spam clicks
add_action( 'wp_ajax_grunion_ajax_spam', 'grunion_ajax_spam' );
function grunion_ajax_spam() {
global $wpdb;
if ( empty( $_POST['make_it'] ) )
return;
$post_id = (int) $_POST['post_id'];
check_ajax_referer( 'grunion-post-status-' . $post_id );
if ( !current_user_can("edit_page", $post_id) )
wp_die( __( 'You are not allowed to manage this item.', 'jetpack' ) );
require_once dirname( __FILE__ ) . '/grunion-contact-form.php';
$current_menu = '';
if ( preg_match( '|post_type=feedback|', $_POST['sub_menu'] ) ) {
if ( preg_match( '|post_status=spam|', $_POST['sub_menu'] ) )
$current_menu = 'spam';
else if ( preg_match( '|post_status=trash|', $_POST['sub_menu'] ) )
$current_menu = 'trash';
else
$current_menu = 'messages';
}
$post = get_post( $post_id );
$post_type_object = get_post_type_object( $post->post_type );
$akismet_values = get_post_meta( $post_id, '_feedback_akismet_values', TRUE );
if ( $_POST['make_it'] == 'spam' ) {
$post->post_status = 'spam';
$status = wp_insert_post( $post );
wp_transition_post_status( 'spam', 'publish', $post );
do_action( 'contact_form_akismet', 'spam', $akismet_values );
} elseif ( $_POST['make_it'] == 'ham' ) {
$post->post_status = 'publish';
$status = wp_insert_post( $post );
wp_transition_post_status( 'publish', 'spam', $post );
do_action( 'contact_form_akismet', 'spam', $akismet_values );
// resend the original email
$email = get_post_meta( $post_id, '_feedback_email', TRUE );
wp_mail( $email['to'], $email['subject'], $email['message'], $email['headers'] );
} elseif( $_POST['make_it'] == 'publish' ) {
if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
wp_die( __( 'You are not allowed to move this item out of the Trash.', 'jetpack' ) );
if ( ! wp_untrash_post($post_id) )
wp_die( __( 'Error in restoring from Trash.', 'jetpack' ) );
} elseif( $_POST['make_it'] == 'trash' ) {
if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
wp_die( __( 'You are not allowed to move this item to the Trash.', 'jetpack' ) );
if ( ! wp_trash_post($post_id) )
wp_die( __( 'Error in moving to Trash.', 'jetpack' ) );
}
$sql = "
SELECT post_status,
COUNT( * ) AS post_count
FROM `{$wpdb->posts}`
WHERE post_type = 'feedback'
GROUP BY post_status
";
$status_count = (array) $wpdb->get_results( $sql, ARRAY_A );
$status = array();
$status_html = '';
foreach ( $status_count as $i => $row ) {
$status[$row['post_status']] = $row['post_count'];
}
if ( isset( $status['publish'] ) ) {
$status_html .= '
';
$status_html .= '(' . number_format( $status['publish'] ) . ')';
$status_html .= ' |';
}
if ( isset( $status['trash'] ) ) {
$status_html .= '
';
$status_html .= '(' . number_format( $status['trash'] ) . ')';
$status_html .= '';
if ( isset( $status['spam'] ) )
$status_html .= ' |';
$status_html .= '';
}
if ( isset( $status['spam'] ) ) {
$status_html .= '
';
$status_html .= '(' . number_format( $status['spam'] ) . ')';
$status_html .= '';
}
echo $status_html;
exit;
}
add_action( 'omnisearch_add_providers', 'grunion_omnisearch_add_providers' );
function grunion_omnisearch_add_providers() {
// Feedback uses capability_type 'page'
if ( current_user_can( 'edit_pages' ) ) {
require_once( GRUNION_PLUGIN_DIR . '/grunion-omnisearch.php' );
new Jetpack_Omnisearch_Grunion;
}
}