Commit 283452f6 authored by Erick Hitter's avatar Erick Hitter

Allow others to override the priority at which this plugin changes the number of revisions to keep.

parent 207f5a47
......@@ -31,6 +31,9 @@ class WP_Revisions_Control {
/**
* Class variables
*/
private static $priority = null; // use $this->plugin_priority()
private $priority_default = 50;
private static $post_types = array(); // use $this->get_post_types()
private static $settings = array(); // use $this->get_settings()
......@@ -72,20 +75,21 @@ class WP_Revisions_Control {
* Register actions and filters
*
* @uses add_action
* @uses apply_filters
* @uses add_filter
* @uses this::plugin_priority
* @return null
*/
public function action_init() {
add_action( 'admin_init', array( $this, 'action_admin_init' ) );
$plugin_priority = apply_filters( 'wp_revisions_control_priority', 50 );
add_filter( 'wp_revisions_to_keep', array( $this, 'filter_wp_revisions_to_keep' ), $plugin_priority, 2 );
add_filter( 'wp_revisions_to_keep', array( $this, 'filter_wp_revisions_to_keep' ), $this->plugin_priority(), 2 );
}
/**
* Register plugin's settings fields
*
* Plugin title is intentionally not translatable.
*
* @uses register_setting
* @uses add_settings_section
* @uses __
......@@ -108,6 +112,7 @@ class WP_Revisions_Control {
* Display assistive text in settings section
*
* @uses _e
* @uses this::plugin_priority
* @return string
*/
public function settings_section_intro() {
......@@ -115,6 +120,12 @@ class WP_Revisions_Control {
<p><?php _e( 'Set the number of revisions to save for each post type listed. To retain all revisions for a given post type, leave the field empty.', 'wp_revisions_control' ); ?></p>
<p><?php _e( "If a post type isn't listed, revisions are not enabled for that post type.", 'wp_revisions_control' ); ?></p>
<?php
// Display a note if the plugin priority is other than the default.
// Will be useful when debugging issues later.
if ( $this->plugin_priority() !== $this->priority_default ) : ?>
<p><?php _e( "A local change is causing this plugin's functionality to run at a priority other than the default. If you experience difficulties with the plugin, please unhook any functions from the <code>wp_revisions_control_priority</code> filter.", 'wp_revisions_control' ); ?></p>
<?php endif;
}
/**
......@@ -159,6 +170,22 @@ class WP_Revisions_Control {
return $options_sanitized;
}
/**
* Allow others to change the priority this plugin's functionality runs at
*
* @uses apply_filters
* @return int
*/
private function plugin_priority() {
if ( is_null( self::$priority ) ) {
$plugin_priority = apply_filters( 'wp_revisions_control_priority', $this->priority_default );
self::$priority = is_numeric( $plugin_priority ) ? (int) $plugin_priority : $this->priority_default;
}
return self::$priority;
}
/**
* Override number of revisions to keep using plugin's settings
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment