'aged-content-message' ), admin_url( 'options-general.php' ) ); } /** * Settings link on the plugin page. * * @param array $plugin_links Plugin links, typically Activate|Deactivate and Edit */ function aged_content_message__plugins_page_settings_link ( $plugin_links ) { // Thou shalt not edit plugins in your back-end. if ( isset( $plugin_links[ 'edit' ] ) ) { unset( $plugin_links[ 'edit' ] ); } // Thou shalt, however, edit your settings quickly. $plugin_links[ 'aged-content-message-settings' ] = sprintf( '%2$s', esc_url( aged_content_message__admin_get_settings_page_url() ), __( 'Settings', 'aged-content-message' ) ); return $plugin_links; } /** * The settings page. * I thought I was never going to do this. * * @return void */ function aged_content_message__add_admin_menu() { add_options_page( __( 'Aged Content Message', 'aged-content-message' ), __( 'Aged Content', 'aged-content-message' ), 'manage_options', 'aged-content-message', 'aged_content_message__settings_page' ); } /** * Adding all the sections and fields. * * @return void */ function aged_content_message__settings_init() { $defaults = aged_content_message__defaults(); $options = get_option( 'aged_content_message__settings' ); // First run: fill option. if ( empty( $options ) ) { update_option( 'aged_content_message__settings', $defaults ); } // Later runs: check for and merge new defaults. $diff = array_diff_key( (array) $defaults, (array) $options ); if( ! empty( $diff ) ) { $options = wp_parse_args( $options, $defaults ); update_option( 'aged_content_message__settings', $options ); } register_setting( 'aged_content_message', 'aged_content_message__settings' ); add_settings_section( 'aged_content_message_preview', __( 'Preview', 'aged-content-message' ), 'aged_content_message__settings_preview', 'aged_content_message' ); add_settings_field( 'activate', __( 'Activate Message', 'aged-content-message' ), 'aged_content_message__activate_render', 'aged_content_message', 'aged_content_message_preview', array( 'label_for' => 'aged_content_message__settings[activate]' ) ); add_settings_section( 'aged_content_message_settings', __( 'Settings', 'aged-content-message' ), 'aged_content_message__settings_fields', 'aged_content_message' ); add_settings_field( 'min_age', __( 'Minimal Post Age', 'aged-content-message' ), 'aged_content_message__min_age_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'heading', __( 'Message Heading', 'aged-content-message' ), 'aged_content_message__heading_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'body_singular', __( 'Message Body (Singular)', 'aged-content-message' ), 'aged_content_message__body_singular_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'body_plural', __( 'Message Body (Plural)', 'aged-content-message' ), 'aged_content_message__body_plural_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'class', __( 'Message Class Attribute', 'aged-content-message' ), 'aged_content_message__class_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'html', __( 'Message HTML', 'aged-content-message' ), 'aged_content_message__html_render', 'aged_content_message', 'aged_content_message_settings' ); add_settings_field( 'css', __( 'Message CSS', 'aged-content-message' ), 'aged_content_message__css_render', 'aged_content_message', 'aged_content_message_settings' ); } /** * Activate Message setting. * * @return void */ function aged_content_message__activate_render() { $options = get_option( 'aged_content_message__settings' ); $value = isset( $options[ 'activate' ] ) ? absint( $options[ 'activate' ] ) : 0; $description = __( 'Ready? Activate the message on your website now.', 'aged-content-message' ); if ( ! empty( $value ) ) { $description = __( 'The message is being displayed on your website right now. Uncheck to deactivate and re-configure.', 'aged-content-message' ); } ?> ', esc_attr( $value ) ); ?>

%s = post age in years (rounded)', 'aged-content-message' ); ?>

%s = post age in years (rounded)', 'aged-content-message' ); ?>

%1$s = message heading; %2$s = message body', 'aged-content-message' ); ?>

Aged Content Message has been activated. Edit your settings in order to see the actual notice displayed on your site.', 'aged-content-message' ), esc_url( aged_content_message__admin_get_settings_page_url() ) ); // Print notice. printf( '

%s

', $message ); // Prevent annoyance. update_option( 'aged_content_message__status', 'dismissed' ); } /** * Preview section. * * @return void */ function aged_content_message__settings_preview() { $options = get_option( 'aged_content_message__settings' ); $age = absint( $options[ 'min_age' ] ); $css = wp_kses_post( $options[ 'css' ] ); ?>

Note: Styling may vary dependent on theme styles inherited on your website.', 'aged-content-message' ); ?>