public
Last active

Delay the ability to publish posts

  • Download Gist
delay_publish.php
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
<?php
/**
* Plugin Name: Delay post publishing
* Plugin URI: http://unserkaiser.com
* Description: Only allows publishing a post if the user registered one week ago.
* Version: 0.1
* Author: Franz Josef Kaiser
* Author URI: http://unserkaiser.com
*/
// Not a WordPress context? Stop. Why? Ask @toscho
! defined( 'ABSPATH' ) AND exit;
 
// Only run this for new "post"-post_type admin UI screens
if ( ! is_admin() AND 'post-new.php' !== $GLOBALS['typenow'] ) return;
 
function debug_user()
{
// User data as object
$curr_user = get_user_by( 'id', get_current_user_id() );
 
// get time/date and format as UNIX timestamp
$reg_date = abs( strtotime( $curr_user->user_registered ) );
$curr_date = abs( strtotime( current_time( 'mysql' ) ) );
 
// Human readable difference
$diff = human_time_diff( $reg_date, $curr_date );
$diff_array = explode( ' ', $diff );
 
// Remove if we're on the 1st day (diff result is mins/hours)
if (
strstr( $diff_array[1], 'mins' )
OR strstr( $diff_array[1], 'hours' )
)
return remove_meta_box( 'submitdiv', null, 'side' );
 
// Remove if we're below or equal to 7 days (1 week)
if ( 7 >= $diff_array[0] )
return remove_meta_box( 'submitdiv', null, 'side' );
}
add_action( 'add_meta_boxes', 'debug_user', 20 );

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.