Content Restriction Plugin 14
August 18, 2015
Time to apply some default restrictions to unrestricted posts.
Finding unrestricted posts
I've completed a satisfying development of the class methods that are supposed to help me find any post that's not restricted according to the existing restricting taxonomies.
The code is being used in a re-scheduling loop in the Restricted Content framework plugin:
class trc_Core_Scheduler {
/**
* @var static
*/
protected static $instance;
/**
* @return trc_Core_Scheduler
*/
public static function instance() {
if ( empty( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
public function schedule() {
// each 2' apply the default restrictions to some unrestricted posts
$post_defaults = trc_Core_PostDefaults::instance();
tad_reschedule( 'trc/core/unrestricted_posts/check' )
->each( 120 )
->until( array( $post_defaults, 'has_unrestricted_posts' ) )
->with_args( $post_defaults->get_unrestricted_posts() );
}
}
the tested code for it on GitHub.
It's time to use that information.
Applying a default restriction
I will take the same approach that brought me the code above and start from the end.
Now that I'm scheduling an action, trc/core/unrestricted_posts/check
, that's happening each two minutes until there are unrestricted posts, I need to hook into that action to restrict the posts.
The main plugin file is, upon loading, creating and initializing an instance of the trc_Core_PostRestrictions
class which is hooking to the action above to run the method in charge of applying the default restriction terms to each unrestricted post.
class trc_Core_PostRestrictions {
/**
* @var static
*/
protected static $instance;
public static function instance() {
if ( empty( self::$instance ) ) {
self:
$instance = new self();
}
return self::$instance;
}
public function init() {
add_action( 'trc/core/unrestricted_posts/check', array( $this, 'apply_default_restrictions' ) );
}
public function apply_default_restrictions( array $unrestricted_posts = array() ) {
// TDD me
}
}
I know the input or this latter method, a list of post IDs by taxonomy, and will start from that to develop its functions.