'.sprintf(__('Akismet %s requires WordPress 3.0 or higher.'), AKISMET_VERSION) .' '.sprintf(__('Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.'), 'http://codex.wordpress.org/Upgrading_WordPress', 'http://wordpress.org/extend/plugins/akismet/download/'). '
'; } add_action('admin_notices', 'akismet_version_warning'); return; } if ( function_exists( 'get_plugin_page_hook' ) ) $hook = get_plugin_page_hook( 'akismet-stats-display', 'index.php' ); else $hook = 'dashboard_page_akismet-stats-display'; add_meta_box('akismet-status', __('Comment History'), 'akismet_comment_status_meta_box', 'comment', 'normal'); } add_action('admin_init', 'akismet_admin_init'); add_action( 'admin_enqueue_scripts', 'akismet_load_js_and_css' ); function akismet_load_js_and_css() { global $hook_suffix; if ( in_array( $hook_suffix, array( 'index.php', # dashboard 'edit-comments.php', 'comment.php', 'post.php', 'plugins_page_akismet-key-config', 'jetpack_page_akismet-key-config', ) ) ) { wp_register_style( 'akismet.css', AKISMET_PLUGIN_URL . 'akismet.css', array(), '2.5.9' ); wp_enqueue_style( 'akismet.css'); wp_register_script( 'akismet.js', AKISMET_PLUGIN_URL . 'akismet.js', array('jquery'), '2.5.9' ); wp_enqueue_script( 'akismet.js' ); wp_localize_script( 'akismet.js', 'WPAkismet', array( 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ) ) ); } } function akismet_nonce_field($action = -1) { return wp_nonce_field($action); } $akismet_nonce = 'akismet-update-key'; function akismet_plugin_action_links( $links, $file ) { if ( $file == plugin_basename( dirname(__FILE__).'/akismet.php' ) ) { $links[] = ''.__( 'Settings' ).''; } return $links; } add_filter( 'plugin_action_links', 'akismet_plugin_action_links', 10, 2 ); function akismet_conf() { global $akismet_nonce, $current_user; $new_key_link = 'https://akismet.com/get/'; $config_link = esc_url( add_query_arg( array( 'page' => 'akismet-key-config', 'show' => 'enter-api-key' ), class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'plugins.php' ) ) ); $stats_link = esc_url( add_query_arg( array( 'page' => 'akismet-stats-display' ), class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'index.php' ) ) ); $api_key = akismet_get_key(); $show_key_form = $api_key; $key_status = 'empty'; $saved_ok = false; $key_status_text = ''; $ms = array(); if ( isset( $_POST['submit'] ) ) { if ( function_exists('current_user_can') && !current_user_can('manage_options') ) die(__('Cheatin’ uh?')); $show_key_form = true; check_admin_referer( $akismet_nonce ); $key = preg_replace( '/[^a-h0-9]/i', '', $_POST['key'] ); $home_url = parse_url( get_bloginfo('url') ); if ( empty( $home_url['host'] ) ) $ms[] = 'bad_home_url'; if ( empty( $key ) ) { if ( $api_key ) { delete_option('wordpress_api_key'); $saved_ok = true; $ms[] = 'new_key_empty'; } else $ms[] = 'key_empty'; } else $key_status = akismet_verify_key( $key ); if ( $key != $api_key && $key_status == 'valid' ) { $ms[] = 'new_key_valid'; update_option('wordpress_api_key', $key); } elseif ( $key_status == 'invalid' ) $ms[] = 'new_key_invalid'; elseif ( $key_status == 'failed' ) $ms[] = 'new_key_failed'; $api_key = $key_status == 'valid' ? $key : false; if ( isset( $_POST['akismet_discard_month'] ) ) update_option( 'akismet_discard_month', 'true' ); else update_option( 'akismet_discard_month', 'false' ); if ( isset( $_POST['akismet_show_user_comments_approved'] ) ) update_option( 'akismet_show_user_comments_approved', 'true' ); else update_option( 'akismet_show_user_comments_approved', 'false' ); if ( empty( $ms ) ) $saved_ok = true; } elseif ( isset( $_POST['check'] ) ) { $show_key_form = true; check_admin_referer( $akismet_nonce ); akismet_get_server_connectivity(0); } elseif ( isset( $_GET['show'] ) && $_GET['show'] == 'enter-api-key' ) { $show_key_form = true; } if ( $show_key_form ) { //check current key status //only get this if showing the key form otherwise takes longer for page to load for new user //no need to get it if we already know it and its valid if ( in_array( $key_status, array( 'invalid', 'failed', 'empty' ) ) ) { $key = get_option('wordpress_api_key'); if ( empty( $key ) ) { //no key saved yet - maybe connection to Akismet down? if ( in_array( $key_status, array( 'invalid', 'empty' ) ) ) { if ( akismet_verify_key( '1234567890ab' ) == 'failed' ) $ms[] = 'no_connection'; } } else $key_status = akismet_verify_key( $key ); } if ( !isset( $_POST['submit'] ) ) { if ( $key_status == 'invalid' ) $ms[] = 'key_invalid'; elseif ( !empty( $key ) && $key_status == 'failed' ) $ms[] = 'key_failed'; } } $key_status_strings = array( 'empty' => __( 'Empty' ), 'valid' => __( 'Valid' ), 'invalid' => __( 'Invalid' ), 'failed' => __( 'Failed' ), ); $messages = array( 'new_key_empty' => array( 'class' => 'updated fade', 'text' => __('Your key has been cleared.' ) ), 'new_key_valid' => array( 'class' => 'updated fade', 'text' => __('Your Akismet account has been successfully set up and activated. Happy blogging!' ) ), 'new_key_invalid' => array( 'class' => 'error', 'text' => __('The key you entered is invalid. Please double-check it.' ) ), 'new_key_failed' => array( 'class' => 'error', 'text' => __('The key you entered could not be verified because a connection to akismet.com could not be established. Please check your server configuration.' ) ), 'no_connection' => array( 'class' => 'error', 'text' => __('There was a problem connecting to the Akismet server. Please check your server configuration.' ) ), 'key_empty' => array( 'class' => 'updated fade', 'text' => __('Please enter an API key' ) ), 'key_invalid' => array( 'class' => 'error', 'text' => __('This key is invalid.' ) ), 'key_failed' => array( 'class' => 'error', 'text' => __('The key below was previously validated but a connection to akismet.com can not be established at this time. Please check your server configuration.' ) ), 'bad_home_url' => array( 'class' => 'error', 'text' => sprintf( __('Your WordPress home URL %s is invalid. Please fix the home option.'), esc_html( get_bloginfo('url') ), admin_url('options.php#home') ) ) ); ?>Sign up success! Please check your email for your Akismet API Key and enter it below.') ?>
'.sprintf( _n( 'Akismet has protected your site from %3$s spam comments.', 'Akismet has protected your site from %3$s spam comments.', $count ), 'http://akismet.com/?return=true', clean_url("$link?page=akismet-admin"), number_format_i18n($count) ).'
'; } add_action('activity_box_end', 'akismet_stats'); function akismet_admin_warnings() { global $wpcom_api_key, $pagenow; if ( $pagenow == 'edit-comments.php' || ( !empty( $_GET['page'] ) && $_GET['page'] == 'akismet-key-config' ) || ( !empty( $_GET['page'] ) && $_GET['page'] == 'akismet-stats-display' ) ) { if ( get_option( 'akismet_alert_code' ) ) { function akismet_alert() { $alert = array( 'code' => (int) get_option( 'akismet_alert_code' ), 'msg' => get_option( 'akismet_alert_msg' ) ); ?>:
%s' , 'https://akismet.com/errors/'.$alert['code'], 'https://akismet.com/errors/'.$alert['code'] );?>