Created
November 4, 2014 05:26
-
-
Save forlogos/68c77f029d514760e1d8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//start post meta box | |
$key = "Announcements"; | |
$meta_boxes = array( | |
"expimo" => array( | |
"name" => "expimo", | |
"title" => "Expiration Month", | |
"description" => "Select a date in the future for this post to expire. Default date is one month into the future", | |
"option" => array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12')), | |
"expida" => array( | |
"name" => "expida", | |
"title" => "Expiration Day", | |
"description" => "Select Day", | |
"options" => array('-', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31')), | |
"expiye" => array( | |
"name" => "expiye", | |
"title" => "Expiration Year", | |
"description" => "Select Month", | |
"options" => array('-', '2013', '2012', '2011', '2010')), | |
"expiti" => array( | |
"name" => "expiti", | |
"title" => "Expiration Time", | |
"description" => "Select Time", | |
"options" => array('00:00:00', '01:00:00', '02:00:00', '03:00:00', '04:00:00', '05:00:00', '06:00:00', '07:00:00', '08:00:00', '09:00:00', '10:00:00', '11:00:00', '12:00:00', '13:00:00', '14:00:00', '15:00:00', '16:00:00', '17:00:00', '18:00:00', '19:00:00', '20:00:00', '21:00:00', '22:00:00', '23:00:00')), | |
"autodelp" => array( | |
"name" => "autodelp", | |
"title" => "Delete Post On Expiration", | |
"description" => "Choose if a post should be deleted after expiration. Choosing NO will remove the post from the homepage and archive it upon expiration", | |
"options" => array('no', 'yes')), | |
); | |
function create_meta_box() { | |
global $key; | |
if( function_exists( 'add_meta_box' ) ) { | |
add_meta_box( 'new-meta-boxes', ucfirst( $key ) . ' Post Options', 'display_meta_box', 'post', 'normal', 'high' ); | |
} | |
} | |
function display_meta_box() { | |
global $post, $meta_boxes, $key; | |
?> | |
<div class="form-wrap"> | |
<?php | |
wp_nonce_field( plugin_basename( __FILE__ ), $key . '_wpnonce', false, true ); | |
foreach($meta_boxes as $meta_box) { | |
$data = get_post_meta($post->ID, $key, true); | |
?> | |
<?php if($meta_box[ 'name'] != 'expimo' && | |
$meta_box[ 'name'] != 'expida' && | |
$meta_box[ 'name'] != 'expiye' && | |
$meta_box[ 'name'] != 'autodep' && | |
$meta_box[ 'name'] != 'expiti' && | |
$meta_box[ 'name'] != 'autodelp' | |
) { ?> | |
<div class="form-field form-required"> | |
<label for="<?php echo $meta_box[ 'name' ]; ?>"><?php echo $meta_box[ 'title' ]; ?></label> | |
<input type="text" name="<?php echo $meta_box[ 'name' ]; ?>" value="<?php echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] ); ?>" /> | |
<p><?php echo $meta_box[ 'description' ]; ?></p></div> | |
<?php } elseif ($meta_box[ 'name'] == 'expimo') { | |
echo '<div class="form-field form-required"><label for="Post Expiration Date">Post Expiration Date</label>'; | |
echo '<select name="expimo" id="expimo">'; | |
foreach ($meta_boxes['expimo']['option'] as $option) { | |
if ($option == '01') {$optionez = 'January'; | |
} elseif ($option == '02') {$optionez = 'February'; | |
} elseif ($option == '03') {$optionez = 'March'; | |
} elseif ($option == '04') {$optionez = 'April'; | |
} elseif ($option == '05') {$optionez = 'May'; | |
} elseif ($option == '06') {$optionez = 'June'; | |
} elseif ($option == '07') {$optionez = 'July'; | |
} elseif ($option == '08') {$optionez = 'August'; | |
} elseif ($option == '09') {$optionez = 'September'; | |
} elseif ($option == '10') {$optionez = 'August'; | |
} elseif ($option == '11') {$optionez = 'November'; | |
} else {$optionez = 'December';} | |
echo '<option', ' value="', $option, '"', $data[ 'expimo' ] == $option ? ' selected="selected"' : '', '>', $optionez, '</option>'; | |
} | |
echo '</select>'; | |
echo '<select name="expida" id="expida">'; | |
foreach ($meta_boxes['expida']['options'] as $option) { | |
echo '<option', ' value="', $option, '"', $data[ 'expida' ] == $option ? ' selected="selected"' : '', '>', $option, '</option>'; | |
} | |
echo '</select>'; | |
echo '<select name="expiye" id="expiye">'; | |
foreach ($meta_boxes['expiye']['options'] as $option) { | |
echo '<option', $data[ 'expiye' ] == $option ? ' selected="selected"' : '', '>', $option, '</option>'; | |
} | |
echo '</select>'; | |
echo '<select name="expiti" id="expiti">'; | |
foreach ($meta_boxes['expiti']['options'] as $option) { | |
if ($option == '00:00:00') {$optionez = '12MN'; | |
} elseif ($option == '01:00:00') {$optionez = '1AM'; | |
} elseif ($option == '02:00:00') {$optionez = '2AM'; | |
} elseif ($option == '03:00:00') {$optionez = '3AM'; | |
} elseif ($option == '04:00:00') {$optionez = '4AM'; | |
} elseif ($option == '05:00:00') {$optionez = '5AM'; | |
} elseif ($option == '06:00:00') {$optionez = '6AM'; | |
} elseif ($option == '07:00:00') {$optionez = '7AM'; | |
} elseif ($option == '08:00:00') {$optionez = '8AM'; | |
} elseif ($option == '09:00:00') {$optionez = '9AM'; | |
} elseif ($option == '10:00:00') {$optionez = '10AM'; | |
} elseif ($option == '11:00:00') {$optionez = '11AM'; | |
} elseif ($option == '12:00:00') {$optionez = '12NN'; | |
} elseif ($option == '13:00:00') {$optionez = '1PM'; | |
} elseif ($option == '14:00:00') {$optionez = '2PM'; | |
} elseif ($option == '15:00:00') {$optionez = '3PM'; | |
} elseif ($option == '16:00:00') {$optionez = '4PM'; | |
} elseif ($option == '17:00:00') {$optionez = '5PM'; | |
} elseif ($option == '18:00:00') {$optionez = '6PM'; | |
} elseif ($option == '19:00:00') {$optionez = '7PM'; | |
} elseif ($option == '20:00:00') {$optionez = '8PM'; | |
} elseif ($option == '21:00:00') {$optionez = '9PM'; | |
} elseif ($option == '22:00:00') {$optionez = '10PM'; | |
} else {$optionez = '11PM';} | |
echo '<option', ' value="', $option, '"',$data[ 'expiti' ] == $option ? ' selected="selected"' : '', '>', $optionez, '</option>'; | |
} | |
echo '</select>'; | |
echo '<p>Select a date in the future for this post to expire. Default date is one month into the future</p></div>'; | |
} elseif ($meta_box[ 'name'] == 'autodelp') { | |
echo '<label for="Auto Delete">Auto Delete?</label>'; | |
echo '<select name="autodelp" id="autodelp">'; | |
foreach ($meta_boxes['autodelp']['options'] as $option) { | |
echo '<option', $data[ 'autodelp' ] == $option ? ' selected="selected"' : '', '>', $option, '</option>'; | |
} | |
echo '</select><p>', $meta_box[ 'description' ], '</p></div>'; | |
} else {} | |
?> | |
<?php | |
}; ?> | |
<?php | |
if (get_the_time('m') == 12) {$mononet = 1; | |
} else {$mononet = 1 + get_the_time('m');} | |
$slashhh = '/'; | |
$spaceeee = ' '; | |
if ( $data[ 'expida'] == '-') {$datarr = $mononet.$slashhh.get_the_time('d/Y').$spaceeee.$data[ 'expiti' ]; | |
} else {$datarr = $data[ 'expimo' ].$slashhh.$data[ 'expida' ].$slashhh.$data[ 'expiye' ].$spaceeee.$data[ 'expiti' ];} ?> | |
<?php update_post_meta($post->ID, 'expiration', $datarr); ?> | |
</div> | |
<?php | |
} | |
function save_meta_box( $post_id ) { | |
global $post, $meta_boxes, $key; | |
foreach( $meta_boxes as $meta_box ) { | |
$data[ $meta_box[ 'name' ] ] = $_POST[ $meta_box[ 'name' ] ]; | |
} | |
if ( !wp_verify_nonce( $_POST[ $key . '_wpnonce' ], plugin_basename(__FILE__) ) ) | |
return $post_id; | |
if ( !current_user_can( 'edit_post', $post_id )) | |
return $post_id; | |
update_post_meta( $post_id, $key, $data ); | |
} | |
add_action( 'admin_menu', 'create_meta_box' ); | |
add_action( 'save_post', 'save_meta_box' ); | |
//end post meta box | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment