Version Description
Download this release
Release Info
| Developer | axelseaa |
| Plugin | |
| Version | 1.6.2 |
| Comparing to | |
| See all releases | |
Code changes from version 1.6.1 to 1.6.2
- post-expirator.php +63 -35
- readme.txt +7 -1
post-expirator.php
CHANGED
|
@@ -4,7 +4,7 @@ Plugin Name: Post Expirator
|
|
| 4 |
Plugin URI: http://wordpress.org/extend/plugins/post-expirator/
|
| 5 |
Description: Allows you to add an expiration date (minute) to posts which you can configure to either delete the post, change it to a draft, or update the post categories at expiration time.
|
| 6 |
Author: Aaron Axelsen
|
| 7 |
-
Version: 1.6.
|
| 8 |
Author URI: http://postexpirator.tuxdocs.net/
|
| 9 |
Translation: Thierry (http://palijn.info)
|
| 10 |
Text Domain: post-expirator
|
|
@@ -19,7 +19,7 @@ add_action('plugins_loaded', 'postExpirator_init');
|
|
| 19 |
|
| 20 |
|
| 21 |
// Default Values
|
| 22 |
-
define('POSTEXPIRATOR_VERSION','1.6.
|
| 23 |
define('POSTEXPIRATOR_DATEFORMAT',__('l F jS, Y','post-expirator'));
|
| 24 |
define('POSTEXPIRATOR_TIMEFORMAT',__('g:ia','post-expirator'));
|
| 25 |
define('POSTEXPIRATOR_FOOTERCONTENTS',__('Post expires at EXPIRATIONTIME on EXPIRATIONDATE','post-expirator'));
|
|
@@ -28,6 +28,7 @@ define('POSTEXPIRATOR_POSTSTATUS','Draft');
|
|
| 28 |
define('POSTEXPIRATOR_PAGESTATUS','Draft');
|
| 29 |
define('POSTEXPIRATOR_FOOTERDISPLAY','0');
|
| 30 |
define('POSTEXPIRATOR_CATEGORY','1');
|
|
|
|
| 31 |
define('POSTEXPIRATOR_DEBUG','0');
|
| 32 |
define('POSTEXPIRATOR_CRONSCHEDULE','postexpiratorminute');
|
| 33 |
define('POSTEXPIRATOR_EXPIREDEFAULT','null');
|
|
@@ -100,15 +101,15 @@ function expirationdate_delete_expired_posts() {
|
|
| 100 |
require_once(plugin_dir_path(__FILE__).'post-expirator-debug.php');
|
| 101 |
|
| 102 |
$debug = new postExpiratorDebug();
|
| 103 |
-
$startts =
|
| 104 |
$debug->save(array('timestamp' => $startts,'message' => 'START'));
|
| 105 |
$debug->save(array('timestamp' => $startts,'message' => 'SQL EXPIRE: '.$sql));
|
| 106 |
}
|
| 107 |
|
| 108 |
$processsql = 'select post_id from '.$wpdb->postmeta.' where meta_key = "_expiration-date-processed" AND meta_value = "1"';
|
| 109 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 110 |
$processresult = $wpdb->get_col($processsql);
|
| 111 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 112 |
|
| 113 |
if (!empty($result)) foreach ($result as $a) {
|
| 114 |
// Check to see if already proccessed
|
|
@@ -128,28 +129,29 @@ function expirationdate_delete_expired_posts() {
|
|
| 128 |
$cat = get_post_meta($a->post_id,'_expiration-date-category');
|
| 129 |
if (($catEnabled === false || $catEnabled == 1) && (isset($cat) && !empty($cat[0]))) {
|
| 130 |
wp_update_post(array('ID' => $a->post_id, 'post_category' => $cat[0]));
|
| 131 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 132 |
} else {
|
| 133 |
if ($expiredStatus == 'delete') {
|
| 134 |
wp_delete_post($a->post_id);
|
| 135 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 136 |
} else {
|
| 137 |
wp_update_post(array('ID' => $a->post_id, 'post_status' => 'draft'));
|
| 138 |
delete_post_meta($a->post_id, 'expiration-date');
|
| 139 |
update_post_meta($a->post_id, 'expiration-date', $a->meta_value);
|
| 140 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 141 |
}
|
| 142 |
}
|
| 143 |
|
| 144 |
// Mark as Processed
|
| 145 |
update_post_meta($a->post_id, '_expiration-date-processed', 1);
|
| 146 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 147 |
}
|
| 148 |
-
if ($debugEnabled) $debug->save(array('timestamp' =>
|
| 149 |
}
|
| 150 |
-
if (postExpirator_is_wpmu())
|
|
|
|
| 151 |
add_action ('expirationdate_delete_'.$current_blog->blog_id, 'expirationdate_delete_expired_posts');
|
| 152 |
-
else
|
| 153 |
add_action ('expirationdate_delete', 'expirationdate_delete_expired_posts');
|
| 154 |
|
| 155 |
/**
|
|
@@ -222,6 +224,12 @@ function expirationdate_meta_box($post) {
|
|
| 222 |
$enabled = '';
|
| 223 |
$disabled = ' disabled="disabled"';
|
| 224 |
$categories = get_option('expirationdateCategoryDefaults');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
} else {
|
| 226 |
$defaultmonth = date('F',$expirationdatets);
|
| 227 |
$defaultday = date('d',$expirationdatets);
|
|
@@ -483,6 +491,7 @@ function postExpiratorMenuGeneral() {
|
|
| 483 |
update_option('expirationdateCategoryDefaults',$_POST['expirationdate_category']);
|
| 484 |
update_option('expirationdateCronSchedule',$_POST['expired-default-cron-schedule']);
|
| 485 |
update_option('expirationdateDefaultDate',$_POST['expired-default-expiration-date']);
|
|
|
|
| 486 |
if ($_POST['expired-custom-expiration-date']) update_option('expirationdateDefaultDateCustom',$_POST['expired-custom-expiration-date']);
|
| 487 |
postExpiratorResetCronEvent();
|
| 488 |
echo "<div id='message' class='updated fade'><p>";
|
|
@@ -497,6 +506,7 @@ function postExpiratorMenuGeneral() {
|
|
| 497 |
$expirationdateDefaultDateFormat = get_option('expirationdateDefaultDateFormat',POSTEXPIRATOR_DATEFORMAT);
|
| 498 |
$expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',POSTEXPIRATOR_TIMEFORMAT);
|
| 499 |
$expiredcategory = get_option('expirationdateCategory',POSTEXPIRATOR_CATEGORY);
|
|
|
|
| 500 |
$expireddisplayfooter = get_option('expirationdateDisplayFooter',POSTEXPIRATOR_FOOTERDISPLAY);
|
| 501 |
$expirationdateFooterContents = get_option('expirationdateFooterContents',POSTEXPIRATOR_FOOTERCONTENTS);
|
| 502 |
$expirationdateFooterStyle = get_option('expirationdateFooterStyle',POSTEXPIRATOR_FOOTERSTYLE);
|
|
@@ -520,6 +530,12 @@ function postExpiratorMenuGeneral() {
|
|
| 520 |
else if ($expiredcategory == 1)
|
| 521 |
$expiredcategoryenabled = 'checked="checked"';
|
| 522 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 523 |
|
| 524 |
?>
|
| 525 |
<p>
|
|
@@ -558,6 +574,15 @@ function postExpiratorMenuGeneral() {
|
|
| 558 |
<?php _e('Select whether the page should be deleted or changed to a draft at expiration time.','post-expirator');?>
|
| 559 |
</td>
|
| 560 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 561 |
<tr valign-"top">
|
| 562 |
<th scope="row"><label for="expired-default-date-format"><?php _e('Date Format:','post-expirator');?></label></th>
|
| 563 |
<td>
|
|
@@ -945,7 +970,10 @@ function postexpirator_upgrade() {
|
|
| 945 |
update_option('postexpiratorVersion',POSTEXPIRATOR_VERSION);
|
| 946 |
update_option('expirationdateDefaultDate',POSTEXPIRATOR_EXPIREDEFAULT);
|
| 947 |
break;
|
| 948 |
-
|
|
|
|
|
|
|
|
|
|
| 949 |
}
|
| 950 |
}
|
| 951 |
}
|
|
@@ -992,6 +1020,7 @@ function expirationdate_deactivate () {
|
|
| 992 |
delete_option('expirationdateCronSchedule');
|
| 993 |
delete_option('expirationdateDefaultDate');
|
| 994 |
delete_option('expirationdateDefaultDateCustom');
|
|
|
|
| 995 |
if (postExpirator_is_wpmu())
|
| 996 |
wp_clear_scheduled_hook('expirationdate_delete_'.$current_blog->blog_id);
|
| 997 |
else
|
|
@@ -1003,8 +1032,8 @@ function expirationdate_deactivate () {
|
|
| 1003 |
register_deactivation_hook (__FILE__, 'expirationdate_deactivate');
|
| 1004 |
|
| 1005 |
class Walker_PostExpirator_Category_Checklist extends Walker {
|
| 1006 |
-
|
| 1007 |
-
|
| 1008 |
|
| 1009 |
var $disabled = '';
|
| 1010 |
|
|
@@ -1012,29 +1041,28 @@ class Walker_PostExpirator_Category_Checklist extends Walker {
|
|
| 1012 |
$this->disabled = 'disabled="disabled"';
|
| 1013 |
}
|
| 1014 |
|
| 1015 |
-
|
| 1016 |
-
|
| 1017 |
-
|
| 1018 |
-
|
| 1019 |
|
| 1020 |
-
|
| 1021 |
-
|
| 1022 |
-
|
| 1023 |
-
|
| 1024 |
|
| 1025 |
-
|
| 1026 |
-
|
| 1027 |
-
|
| 1028 |
-
|
| 1029 |
|
| 1030 |
$name = 'expirationdate_category';
|
| 1031 |
|
| 1032 |
-
|
| 1033 |
-
|
| 1034 |
-
|
| 1035 |
-
|
| 1036 |
-
|
| 1037 |
-
|
| 1038 |
-
|
| 1039 |
}
|
| 1040 |
-
|
| 4 |
Plugin URI: http://wordpress.org/extend/plugins/post-expirator/
|
| 5 |
Description: Allows you to add an expiration date (minute) to posts which you can configure to either delete the post, change it to a draft, or update the post categories at expiration time.
|
| 6 |
Author: Aaron Axelsen
|
| 7 |
+
Version: 1.6.2
|
| 8 |
Author URI: http://postexpirator.tuxdocs.net/
|
| 9 |
Translation: Thierry (http://palijn.info)
|
| 10 |
Text Domain: post-expirator
|
| 19 |
|
| 20 |
|
| 21 |
// Default Values
|
| 22 |
+
define('POSTEXPIRATOR_VERSION','1.6.2');
|
| 23 |
define('POSTEXPIRATOR_DATEFORMAT',__('l F jS, Y','post-expirator'));
|
| 24 |
define('POSTEXPIRATOR_TIMEFORMAT',__('g:ia','post-expirator'));
|
| 25 |
define('POSTEXPIRATOR_FOOTERCONTENTS',__('Post expires at EXPIRATIONTIME on EXPIRATIONDATE','post-expirator'));
|
| 28 |
define('POSTEXPIRATOR_PAGESTATUS','Draft');
|
| 29 |
define('POSTEXPIRATOR_FOOTERDISPLAY','0');
|
| 30 |
define('POSTEXPIRATOR_CATEGORY','1');
|
| 31 |
+
define('POSTEXPIRATOR_AUTOENABLE','0');
|
| 32 |
define('POSTEXPIRATOR_DEBUG','0');
|
| 33 |
define('POSTEXPIRATOR_CRONSCHEDULE','postexpiratorminute');
|
| 34 |
define('POSTEXPIRATOR_EXPIREDEFAULT','null');
|
| 101 |
require_once(plugin_dir_path(__FILE__).'post-expirator-debug.php');
|
| 102 |
|
| 103 |
$debug = new postExpiratorDebug();
|
| 104 |
+
$startts = time();
|
| 105 |
$debug->save(array('timestamp' => $startts,'message' => 'START'));
|
| 106 |
$debug->save(array('timestamp' => $startts,'message' => 'SQL EXPIRE: '.$sql));
|
| 107 |
}
|
| 108 |
|
| 109 |
$processsql = 'select post_id from '.$wpdb->postmeta.' where meta_key = "_expiration-date-processed" AND meta_value = "1"';
|
| 110 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'SQL PROCESSED: '.$processsql));
|
| 111 |
$processresult = $wpdb->get_col($processsql);
|
| 112 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'PROCESSED POST IDS: '.print_r($processresult,true)));
|
| 113 |
|
| 114 |
if (!empty($result)) foreach ($result as $a) {
|
| 115 |
// Check to see if already proccessed
|
| 129 |
$cat = get_post_meta($a->post_id,'_expiration-date-category');
|
| 130 |
if (($catEnabled === false || $catEnabled == 1) && (isset($cat) && !empty($cat[0]))) {
|
| 131 |
wp_update_post(array('ID' => $a->post_id, 'post_category' => $cat[0]));
|
| 132 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'EXPIRE: ID:'.$a->post_id.' CATEGORY:'.print_r($cat[0],true)));
|
| 133 |
} else {
|
| 134 |
if ($expiredStatus == 'delete') {
|
| 135 |
wp_delete_post($a->post_id);
|
| 136 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'EXPIRE: ID:'.$a->post_id.' DELETE'));
|
| 137 |
} else {
|
| 138 |
wp_update_post(array('ID' => $a->post_id, 'post_status' => 'draft'));
|
| 139 |
delete_post_meta($a->post_id, 'expiration-date');
|
| 140 |
update_post_meta($a->post_id, 'expiration-date', $a->meta_value);
|
| 141 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'EXPIRE: ID:'.$a->post_id.' DRAFT'));
|
| 142 |
}
|
| 143 |
}
|
| 144 |
|
| 145 |
// Mark as Processed
|
| 146 |
update_post_meta($a->post_id, '_expiration-date-processed', 1);
|
| 147 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'PROCESSED: ID:'.$a->post_id));
|
| 148 |
}
|
| 149 |
+
if ($debugEnabled) $debug->save(array('timestamp' => time(),'message' => 'END - DURATION: '.(time() - $startts)));
|
| 150 |
}
|
| 151 |
+
if (postExpirator_is_wpmu()) {
|
| 152 |
+
global $current_blog;
|
| 153 |
add_action ('expirationdate_delete_'.$current_blog->blog_id, 'expirationdate_delete_expired_posts');
|
| 154 |
+
} else
|
| 155 |
add_action ('expirationdate_delete', 'expirationdate_delete_expired_posts');
|
| 156 |
|
| 157 |
/**
|
| 224 |
$enabled = '';
|
| 225 |
$disabled = ' disabled="disabled"';
|
| 226 |
$categories = get_option('expirationdateCategoryDefaults');
|
| 227 |
+
|
| 228 |
+
$expiredauto = get_option('expirationdateAutoEnabled',POSTEXPIRATOR_AUTOENABLE);
|
| 229 |
+
if ($expiredauto === true || $expiredauto == 1) {
|
| 230 |
+
$enabled = ' checked="checked"';
|
| 231 |
+
$disabled='';
|
| 232 |
+
}
|
| 233 |
} else {
|
| 234 |
$defaultmonth = date('F',$expirationdatets);
|
| 235 |
$defaultday = date('d',$expirationdatets);
|
| 491 |
update_option('expirationdateCategoryDefaults',$_POST['expirationdate_category']);
|
| 492 |
update_option('expirationdateCronSchedule',$_POST['expired-default-cron-schedule']);
|
| 493 |
update_option('expirationdateDefaultDate',$_POST['expired-default-expiration-date']);
|
| 494 |
+
update_option('expirationdateAutoEnabled',$_POST['expired-auto-enable']);
|
| 495 |
if ($_POST['expired-custom-expiration-date']) update_option('expirationdateDefaultDateCustom',$_POST['expired-custom-expiration-date']);
|
| 496 |
postExpiratorResetCronEvent();
|
| 497 |
echo "<div id='message' class='updated fade'><p>";
|
| 506 |
$expirationdateDefaultDateFormat = get_option('expirationdateDefaultDateFormat',POSTEXPIRATOR_DATEFORMAT);
|
| 507 |
$expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',POSTEXPIRATOR_TIMEFORMAT);
|
| 508 |
$expiredcategory = get_option('expirationdateCategory',POSTEXPIRATOR_CATEGORY);
|
| 509 |
+
$expiredauto = get_option('expirationdateAutoEnabled',POSTEXPIRATOR_AUTOENABLE);
|
| 510 |
$expireddisplayfooter = get_option('expirationdateDisplayFooter',POSTEXPIRATOR_FOOTERDISPLAY);
|
| 511 |
$expirationdateFooterContents = get_option('expirationdateFooterContents',POSTEXPIRATOR_FOOTERCONTENTS);
|
| 512 |
$expirationdateFooterStyle = get_option('expirationdateFooterStyle',POSTEXPIRATOR_FOOTERSTYLE);
|
| 530 |
else if ($expiredcategory == 1)
|
| 531 |
$expiredcategoryenabled = 'checked="checked"';
|
| 532 |
|
| 533 |
+
$expiredautoenabled = '';
|
| 534 |
+
$expiredautodisabled = '';
|
| 535 |
+
if ($expiredauto == 0)
|
| 536 |
+
$expiredautodisabled = 'checked="checked"';
|
| 537 |
+
else if ($expiredauto == 1)
|
| 538 |
+
$expiredautoenabled= 'checked="checked"';
|
| 539 |
|
| 540 |
?>
|
| 541 |
<p>
|
| 574 |
<?php _e('Select whether the page should be deleted or changed to a draft at expiration time.','post-expirator');?>
|
| 575 |
</td>
|
| 576 |
</tr>
|
| 577 |
+
<tr valign-"top">
|
| 578 |
+
<th scope="row"><label for="expired-auto-enable"><?php _e('Auto-Enable Post Expirator:','post-expirator');?></label></th>
|
| 579 |
+
<td>
|
| 580 |
+
<input type="radio" name="expired-auto-enable" id="expired-auto-enable-true" value="1" <?php echo $expiredautoenabled ?>/> <label for="expired-auto-enable-true"><?php _e('Enabled','post-expirator');?></label>
|
| 581 |
+
<input type="radio" name="expired-auto-enable" id="expired-auto-enable-false" value="0" <?php echo $expiredautodisabled ?>/> <label for="expired-auto-enable-false"><?php _e('Disabled','post-expirator');?></label>
|
| 582 |
+
<br/>
|
| 583 |
+
<?php _e('Select whether the post expirator is enabled for all new posts.','post-expirator');?>
|
| 584 |
+
</td>
|
| 585 |
+
</tr>
|
| 586 |
<tr valign-"top">
|
| 587 |
<th scope="row"><label for="expired-default-date-format"><?php _e('Date Format:','post-expirator');?></label></th>
|
| 588 |
<td>
|
| 970 |
update_option('postexpiratorVersion',POSTEXPIRATOR_VERSION);
|
| 971 |
update_option('expirationdateDefaultDate',POSTEXPIRATOR_EXPIREDEFAULT);
|
| 972 |
break;
|
| 973 |
+
case '1.6.2':
|
| 974 |
+
update_option('postexpiratorVersion',POSTEXPIRATOR_VERSION);
|
| 975 |
+
update_option('expirationdateAutoEnabled',POSTEXPIRATOR_AUTOENABLE);
|
| 976 |
+
break;
|
| 977 |
}
|
| 978 |
}
|
| 979 |
}
|
| 1020 |
delete_option('expirationdateCronSchedule');
|
| 1021 |
delete_option('expirationdateDefaultDate');
|
| 1022 |
delete_option('expirationdateDefaultDateCustom');
|
| 1023 |
+
delete_option('expirationdateAutoEnabled');
|
| 1024 |
if (postExpirator_is_wpmu())
|
| 1025 |
wp_clear_scheduled_hook('expirationdate_delete_'.$current_blog->blog_id);
|
| 1026 |
else
|
| 1032 |
register_deactivation_hook (__FILE__, 'expirationdate_deactivate');
|
| 1033 |
|
| 1034 |
class Walker_PostExpirator_Category_Checklist extends Walker {
|
| 1035 |
+
var $tree_type = 'category';
|
| 1036 |
+
var $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this
|
| 1037 |
|
| 1038 |
var $disabled = '';
|
| 1039 |
|
| 1041 |
$this->disabled = 'disabled="disabled"';
|
| 1042 |
}
|
| 1043 |
|
| 1044 |
+
function start_lvl(&$output, $depth, $args) {
|
| 1045 |
+
$indent = str_repeat("\t", $depth);
|
| 1046 |
+
$output .= "$indent<ul class='children'>\n";
|
| 1047 |
+
}
|
| 1048 |
|
| 1049 |
+
function end_lvl(&$output, $depth, $args) {
|
| 1050 |
+
$indent = str_repeat("\t", $depth);
|
| 1051 |
+
$output .= "$indent</ul>\n";
|
| 1052 |
+
}
|
| 1053 |
|
| 1054 |
+
function start_el(&$output, $category, $depth, $args) {
|
| 1055 |
+
extract($args);
|
| 1056 |
+
if ( empty($taxonomy) )
|
| 1057 |
+
$taxonomy = 'category';
|
| 1058 |
|
| 1059 |
$name = 'expirationdate_category';
|
| 1060 |
|
| 1061 |
+
$class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
|
| 1062 |
+
$output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $selected_cats ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' '.$this->disabled.'/> ' . esc_html( apply_filters('the_category', $category->name )) . '</label>';
|
| 1063 |
+
}
|
| 1064 |
+
|
| 1065 |
+
function end_el(&$output, $category, $depth, $args) {
|
| 1066 |
+
$output .= "</li>\n";
|
| 1067 |
+
}
|
| 1068 |
}
|
|
|
readme.txt
CHANGED
|
@@ -3,7 +3,7 @@ Contributors: axelseaa
|
|
| 3 |
Tags: expire, posts, pages, schedule
|
| 4 |
Requires at least: 3.2
|
| 5 |
Tested up to: 3.4
|
| 6 |
-
Stable tag: 1.6.
|
| 7 |
|
| 8 |
Allows you to add an expiration date to posts which you can configure to either delete the post, change it to a draft, or update the
|
| 9 |
post categories.
|
|
@@ -47,6 +47,12 @@ This section describes how to install the plugin and get it working.
|
|
| 47 |
|
| 48 |
== Changelog ==
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
**Version 1.6.1**
|
| 51 |
|
| 52 |
* Tweaked error messages, removed clicks for reset cron event
|
| 3 |
Tags: expire, posts, pages, schedule
|
| 4 |
Requires at least: 3.2
|
| 5 |
Tested up to: 3.4
|
| 6 |
+
Stable tag: 1.6.2
|
| 7 |
|
| 8 |
Allows you to add an expiration date to posts which you can configure to either delete the post, change it to a draft, or update the
|
| 9 |
post categories.
|
| 47 |
|
| 48 |
== Changelog ==
|
| 49 |
|
| 50 |
+
**Version 1.6.2**
|
| 51 |
+
|
| 52 |
+
* Added the ability to configure the post expirator to be enabled by default for all new posts
|
| 53 |
+
* Changed some instances of mktime to time
|
| 54 |
+
* Fixed missing global call for MS installs
|
| 55 |
+
|
| 56 |
**Version 1.6.1**
|
| 57 |
|
| 58 |
* Tweaked error messages, removed clicks for reset cron event
|
