Post Expirator - Version 2.4.4

Version Description

Download this release

Release Info

Developer publishpress
Plugin Icon 128x128 Post Expirator
Version 2.4.4
Comparing to
See all releases

Code changes from version 2.4.3 to 2.4.4

admin-edit.js CHANGED
@@ -1,102 +1,102 @@
1
- (function($, config) {
2
-
3
- // show/hide the date fields when the user chooses the intent.
4
- $('body').on('change', 'select[name="expirationdate_status"]', function(e){
5
- var $show = $(this).find('option:selected').attr('data-show-fields');
6
- if($show === 'true'){
7
- $(this).parents('.timestamp-wrap').find('span.post-expirator-date-fields').show();
8
- }else{
9
- $(this).parents('.timestamp-wrap').find('span.post-expirator-date-fields').hide();
10
- }
11
- });
12
-
13
- // we create a copy of the WP inline edit post function
14
- var $wp_inline_edit = inlineEditPost.edit;
15
-
16
- // and then we overwrite the function with our own code
17
- inlineEditPost.edit = function( id ) {
18
-
19
- // "call" the original WP edit function
20
- // we don't want to leave WordPress hanging
21
- $wp_inline_edit.apply( this, arguments );
22
-
23
- // now we take care of our business
24
-
25
- // get the post ID
26
- var $post_id = 0;
27
- if ( typeof( id ) == 'object' ) {
28
- $post_id = parseInt( this.getId( id ) );
29
- }
30
-
31
- if ( $post_id > 0 ) {
32
- // define the edit row
33
- var $edit_row = $( '#edit-' + $post_id );
34
-
35
- // get / set year
36
- var $year = $( '#expirationdate_year-' + $post_id ).text();
37
- $edit_row.find( 'input[name="expirationdate_year"]' ).val( $year );
38
-
39
- // get / set month
40
- var $month = $( '#expirationdate_month-' + $post_id ).text();
41
- $edit_row.find( 'select[name="expirationdate_month"]' ).val( $month );
42
-
43
- // get / set day
44
- var $day = $( '#expirationdate_day-' + $post_id ).text();
45
- $edit_row.find( 'input[name="expirationdate_day"]' ).val( $day );
46
-
47
- // get / set hour
48
- var $hour = $( '#expirationdate_hour-' + $post_id ).text();
49
- $edit_row.find( 'input[name="expirationdate_hour"]' ).val( $hour );
50
-
51
- // get / set minute
52
- var $minute = $( '#expirationdate_minute-' + $post_id ).text();
53
- $edit_row.find( 'input[name="expirationdate_minute"]' ).val( $minute );
54
-
55
- var $enabled = $( '#expirationdate_enabled-' + $post_id ).text();
56
- if ($enabled == "true") {
57
- $edit_row.find( 'input[name="enable-expirationdate"]' ).prop( 'checked', true );
58
- }
59
- }
60
- };
61
-
62
- $( '#bulk_edit' ).on( 'click', function() {
63
-
64
- // define the bulk edit row
65
- var $bulk_row = $( '#bulk-edit' );
66
-
67
- // get the selected post ids that are being edited
68
- var $post_ids = [];
69
- $bulk_row.find( '#bulk-titles' ).children().each( function() {
70
- $post_ids.push( $( this ).attr( 'id' ).replace( /^(ttle)/i, '' ) );
71
- });
72
-
73
- // get the custom fields
74
- var $expirationdate_month = $bulk_row.find( 'select[name="expirationdate_month"]' ).val();
75
- var $expirationdate_day = $bulk_row.find( 'input[name="expirationdate_day"]' ).val();
76
- var $expirationdate_year = $bulk_row.find( 'input[name="expirationdate_year"]' ).val();
77
- var $expirationdate_hour = $bulk_row.find( 'input[name="expirationdate_hour"]' ).val();
78
- var $expirationdate_minute = $bulk_row.find( 'input[name="expirationdate_minute"]' ).val();
79
- var $expirationdate_status = $bulk_row.find( 'select[name="expirationdate_status"]' ).val();
80
-
81
- // save the data
82
- $.ajax({
83
- url: ajaxurl, // this is a variable that WordPress has already defined for us
84
- type: 'POST',
85
- async: false,
86
- cache: false,
87
- data: {
88
- action: config.ajax.bulk_edit,
89
- post_ids: $post_ids, // and these are the 2 parameters we're passing to our function
90
- expirationdate_month: $expirationdate_month,
91
- expirationdate_day: $expirationdate_day,
92
- expirationdate_year: $expirationdate_year,
93
- expirationdate_hour: $expirationdate_hour,
94
- expirationdate_minute: $expirationdate_minute,
95
- expirationdate_status: $expirationdate_status,
96
- nonce: config.ajax.nonce
97
- }
98
- });
99
-
100
- });
101
-
102
- })(jQuery, config);
1
+ (function($, config) {
2
+
3
+ // show/hide the date fields when the user chooses the intent.
4
+ $('body').on('change', 'select[name="expirationdate_status"]', function(e){
5
+ var $show = $(this).find('option:selected').attr('data-show-fields');
6
+ if($show === 'true'){
7
+ $(this).parents('.timestamp-wrap').find('span.post-expirator-date-fields').show();
8
+ }else{
9
+ $(this).parents('.timestamp-wrap').find('span.post-expirator-date-fields').hide();
10
+ }
11
+ });
12
+
13
+ // we create a copy of the WP inline edit post function
14
+ var $wp_inline_edit = inlineEditPost.edit;
15
+
16
+ // and then we overwrite the function with our own code
17
+ inlineEditPost.edit = function( id ) {
18
+
19
+ // "call" the original WP edit function
20
+ // we don't want to leave WordPress hanging
21
+ $wp_inline_edit.apply( this, arguments );
22
+
23
+ // now we take care of our business
24
+
25
+ // get the post ID
26
+ var $post_id = 0;
27
+ if ( typeof( id ) == 'object' ) {
28
+ $post_id = parseInt( this.getId( id ) );
29
+ }
30
+
31
+ if ( $post_id > 0 ) {
32
+ // define the edit row
33
+ var $edit_row = $( '#edit-' + $post_id );
34
+
35
+ // get / set year
36
+ var $year = $( '#expirationdate_year-' + $post_id ).text();
37
+ $edit_row.find( 'input[name="expirationdate_year"]' ).val( $year );
38
+
39
+ // get / set month
40
+ var $month = $( '#expirationdate_month-' + $post_id ).text();
41
+ $edit_row.find( 'select[name="expirationdate_month"]' ).val( $month );
42
+
43
+ // get / set day
44
+ var $day = $( '#expirationdate_day-' + $post_id ).text();
45
+ $edit_row.find( 'input[name="expirationdate_day"]' ).val( $day );
46
+
47
+ // get / set hour
48
+ var $hour = $( '#expirationdate_hour-' + $post_id ).text();
49
+ $edit_row.find( 'input[name="expirationdate_hour"]' ).val( $hour );
50
+
51
+ // get / set minute
52
+ var $minute = $( '#expirationdate_minute-' + $post_id ).text();
53
+ $edit_row.find( 'input[name="expirationdate_minute"]' ).val( $minute );
54
+
55
+ var $enabled = $( '#expirationdate_enabled-' + $post_id ).text();
56
+ if ($enabled == "true") {
57
+ $edit_row.find( 'input[name="enable-expirationdate"]' ).prop( 'checked', true );
58
+ }
59
+ }
60
+ };
61
+
62
+ $( '#bulk_edit' ).on( 'click', function() {
63
+
64
+ // define the bulk edit row
65
+ var $bulk_row = $( '#bulk-edit' );
66
+
67
+ // get the selected post ids that are being edited
68
+ var $post_ids = [];
69
+ $bulk_row.find( '#bulk-titles' ).children().each( function() {
70
+ $post_ids.push( $( this ).attr( 'id' ).replace( /^(ttle)/i, '' ) );
71
+ });
72
+
73
+ // get the custom fields
74
+ var $expirationdate_month = $bulk_row.find( 'select[name="expirationdate_month"]' ).val();
75
+ var $expirationdate_day = $bulk_row.find( 'input[name="expirationdate_day"]' ).val();
76
+ var $expirationdate_year = $bulk_row.find( 'input[name="expirationdate_year"]' ).val();
77
+ var $expirationdate_hour = $bulk_row.find( 'input[name="expirationdate_hour"]' ).val();
78
+ var $expirationdate_minute = $bulk_row.find( 'input[name="expirationdate_minute"]' ).val();
79
+ var $expirationdate_status = $bulk_row.find( 'select[name="expirationdate_status"]' ).val();
80
+
81
+ // save the data
82
+ $.ajax({
83
+ url: ajaxurl, // this is a variable that WordPress has already defined for us
84
+ type: 'POST',
85
+ async: false,
86
+ cache: false,
87
+ data: {
88
+ action: config.ajax.bulk_edit,
89
+ post_ids: $post_ids, // and these are the 2 parameters we're passing to our function
90
+ expirationdate_month: $expirationdate_month,
91
+ expirationdate_day: $expirationdate_day,
92
+ expirationdate_year: $expirationdate_year,
93
+ expirationdate_hour: $expirationdate_hour,
94
+ expirationdate_minute: $expirationdate_minute,
95
+ expirationdate_status: $expirationdate_status,
96
+ nonce: config.ajax.nonce
97
+ }
98
+ });
99
+
100
+ });
101
+
102
+ })(jQuery, config);
assets/css/edit.css CHANGED
@@ -1,11 +1,11 @@
1
- div.timestamp-wrap label {
2
- vertical-align: middle !important;
3
- }
4
-
5
- div.timestamp-wrap > span.post-expirator-date-fields {
6
- display: none;
7
- }
8
-
9
- .post-expirator-quickedit input {
10
- font-size: 12px;
11
- }
1
+ div.timestamp-wrap label {
2
+ vertical-align: middle !important;
3
+ }
4
+
5
+ div.timestamp-wrap > span.post-expirator-date-fields {
6
+ display: none;
7
+ }
8
+
9
+ .post-expirator-quickedit input {
10
+ font-size: 12px;
11
+ }
assets/css/style.css CHANGED
@@ -1,34 +1,34 @@
1
- /* settings */
2
- .post-expirator-adminnotice {
3
- background-color: red;
4
- }
5
-
6
- .post-expirator-addcolumn {
7
- font-size: 0.8em;
8
- font-weight: normal;
9
- }
10
-
11
- .post-expirator-debug th {
12
- font-weight: bold;
13
- border-bottom: 1px solid black;
14
- }
15
-
16
- .post-expirator-timestamp {
17
- width: 150px;
18
- }
19
-
20
- /* metabox */
21
- #post-expirator-cat-list {
22
- max-width: 250px;
23
- }
24
- #post-expirator-cat-list ul {
25
- margin: 0;
26
- }
27
- #post-expirator-cat-list ul ul {
28
- margin-left: 18px;
29
- }
30
- .post-expirator-taxonomy-name {
31
- margin: 0px;
32
- font-style: italic;
33
- font-size: x-small;
34
- }
1
+ /* settings */
2
+ .post-expirator-adminnotice {
3
+ background-color: red;
4
+ }
5
+
6
+ .post-expirator-addcolumn {
7
+ font-size: 0.8em;
8
+ font-weight: normal;
9
+ }
10
+
11
+ .post-expirator-debug th {
12
+ font-weight: bold;
13
+ border-bottom: 1px solid black;
14
+ }
15
+
16
+ .post-expirator-timestamp {
17
+ width: 150px;
18
+ }
19
+
20
+ /* metabox */
21
+ #post-expirator-cat-list {
22
+ max-width: 250px;
23
+ }
24
+ #post-expirator-cat-list ul {
25
+ margin: 0;
26
+ }
27
+ #post-expirator-cat-list ul ul {
28
+ margin-left: 18px;
29
+ }
30
+ .post-expirator-taxonomy-name {
31
+ margin: 0px;
32
+ font-style: italic;
33
+ font-size: x-small;
34
+ }
functions.php CHANGED
@@ -1,7 +1,7 @@
1
- <?php
2
- /**
3
- * This file provides access to all publicly exposed functions.
4
- */
5
-
6
- require_once POSTEXPIRATOR_BASEDIR . '/legacy-functions.php';
7
-
1
+ <?php
2
+ /**
3
+ * This file provides access to all publicly exposed functions.
4
+ */
5
+
6
+ require_once POSTEXPIRATOR_BASEDIR . '/legacy-functions.php';
7
+
languages/post-expirator.pot CHANGED
@@ -1,582 +1,582 @@
1
- # Copyright (C) 2021 Aaron Axelsen
2
- # This file is distributed under the same license as the Post Expirator package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Post Expirator 2.4.2\n"
6
- "Report-Msgid-Bugs-To: "
7
- "https://wordpress.org/support/plugin/PublishPress-Future\n"
8
- "POT-Creation-Date: 2021-06-17 17:09:25+00:00\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=utf-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "Last-Translator: PostExpirator Translate Team\n"
13
- "Language-Team: PostExpirator Translate Team\n"
14
-
15
- #: post-expirator-debug.php:66
16
- msgid "Debugging table is currently empty."
17
- msgstr ""
18
-
19
- #: post-expirator-debug.php:70
20
- msgid "Timestamp"
21
- msgstr ""
22
-
23
- #: post-expirator-debug.php:71
24
- msgid "Message"
25
- msgstr ""
26
-
27
- #: post-expirator.php:15
28
- msgid "l F jS, Y"
29
- msgstr ""
30
-
31
- #: post-expirator.php:16
32
- msgid "g:ia"
33
- msgstr ""
34
-
35
- #: post-expirator.php:17
36
- msgid "Post expires at EXPIRATIONTIME on EXPIRATIONDATE"
37
- msgstr ""
38
-
39
- #: post-expirator.php:41
40
- msgid "Settings"
41
- msgstr ""
42
-
43
- #: post-expirator.php:70 post-expirator.php:147 post-expirator.php:218
44
- #: post-expirator.php:269
45
- msgid "Expires"
46
- msgstr ""
47
-
48
- #: post-expirator.php:164
49
- msgid "Never"
50
- msgstr ""
51
-
52
- #: post-expirator.php:216 post-expirator.php:272 post-expirator.php:429
53
- msgid "Enable Post Expiration"
54
- msgstr ""
55
-
56
- #: post-expirator.php:220 post-expirator.php:283 post-expirator.php:436
57
- msgid "Month"
58
- msgstr ""
59
-
60
- #: post-expirator.php:233 post-expirator.php:297 post-expirator.php:437
61
- msgid "Day"
62
- msgstr ""
63
-
64
- #: post-expirator.php:235 post-expirator.php:301 post-expirator.php:435
65
- msgid "Year"
66
- msgstr ""
67
-
68
- #: post-expirator.php:237 post-expirator.php:305 post-expirator.php:474
69
- msgid "Hour"
70
- msgstr ""
71
-
72
- #: post-expirator.php:239 post-expirator.php:309 post-expirator.php:475
73
- msgid "Minute"
74
- msgstr ""
75
-
76
- #: post-expirator.php:274
77
- msgid "No Change"
78
- msgstr ""
79
-
80
- #: post-expirator.php:275
81
- msgid "Change expiry date if enabled on posts"
82
- msgstr ""
83
-
84
- #: post-expirator.php:275
85
- msgid "Change on posts"
86
- msgstr ""
87
-
88
- #: post-expirator.php:276
89
- msgid "Add expiry date if not enabled on posts"
90
- msgstr ""
91
-
92
- #: post-expirator.php:276
93
- msgid "Add to posts"
94
- msgstr ""
95
-
96
- #: post-expirator.php:277
97
- msgid "Change & Add"
98
- msgstr ""
99
-
100
- #: post-expirator.php:278
101
- msgid "Remove from posts"
102
- msgstr ""
103
-
104
- #: post-expirator.php:432
105
- msgid "The published date/time will be used as the expiration value"
106
- msgstr ""
107
-
108
- #: post-expirator.php:496
109
- msgid "How to expire"
110
- msgstr ""
111
-
112
- #: post-expirator.php:507
113
- msgid "Expiration Categories"
114
- msgstr ""
115
-
116
- #: post-expirator.php:518
117
- msgid ""
118
- "You must assign a heirarchical taxonomy to this post type to use this "
119
- "feature."
120
- msgstr ""
121
-
122
- #: post-expirator.php:520
123
- msgid ""
124
- "More than 1 heirachical taxonomy detected. You must assign a default "
125
- "taxonomy on the settings screen."
126
- msgstr ""
127
-
128
- #: post-expirator.php:530
129
- msgid "Taxonomy Name"
130
- msgstr ""
131
-
132
- #: post-expirator.php:827 post-expirator.php:838 post-expirator.php:849
133
- #: post-expirator.php:860
134
- msgid ""
135
- "%1$s (%2$s) has expired at %3$s. Post status has been successfully changed "
136
- "to \"%4$s\"."
137
- msgstr ""
138
-
139
- #: post-expirator.php:871
140
- msgid ""
141
- "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" status has been successfully "
142
- "set."
143
- msgstr ""
144
-
145
- #: post-expirator.php:882
146
- msgid ""
147
- "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" status has been successfully "
148
- "removed."
149
- msgstr ""
150
-
151
- #: post-expirator.php:895 post-expirator.php:909
152
- msgid ""
153
- "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" have now been set to "
154
- "\"%5$s\"."
155
- msgstr ""
156
-
157
- #: post-expirator.php:932 post-expirator.php:946
158
- msgid ""
159
- "%1$s (%2$s) has expired at %3$s. The following post \"%4$s\" have now been "
160
- "added: \"%5$s\". The full list of categories on the post are: \"%6$s\"."
161
- msgstr ""
162
-
163
- #: post-expirator.php:974 post-expirator.php:995
164
- msgid ""
165
- "%1$s (%2$s) has expired at %3$s. The following post \"%4$s\" have now been "
166
- "removed: \"%5$s\". The full list of categories on the post are: \"%6$s\"."
167
- msgstr ""
168
-
169
- #: post-expirator.php:1014
170
- msgid "Post Expiration Complete \"%s\""
171
- msgstr ""
172
-
173
- #: post-expirator.php:1050
174
- msgid "[%1$s] %2$s"
175
- msgstr ""
176
-
177
- #: post-expirator.php:1092
178
- msgid "General Settings"
179
- msgstr ""
180
-
181
- #: post-expirator.php:1093 post-expirator.php:1228
182
- msgid "Defaults"
183
- msgstr ""
184
-
185
- #: post-expirator.php:1094
186
- msgid "Diagnostics"
187
- msgstr ""
188
-
189
- #: post-expirator.php:1095
190
- msgid "View Debug Logs"
191
- msgstr ""
192
-
193
- #: post-expirator.php:1110 post-expirator.php:1133
194
- msgid "Post Expirator Options"
195
- msgstr ""
196
-
197
- #: post-expirator.php:1169 post-expirator.php:1401
198
- msgid "Saved Options!"
199
- msgstr ""
200
-
201
- #: post-expirator.php:1216
202
- msgid ""
203
- "The post expirator plugin sets a custom meta value, and then optionally "
204
- "allows you to select if you want the post changed to a draft status or "
205
- "deleted when it expires."
206
- msgstr ""
207
-
208
- #: post-expirator.php:1219
209
- msgid "Valid [postexpirator] attributes:"
210
- msgstr ""
211
-
212
- #: post-expirator.php:1221
213
- msgid "type - defaults to full - valid options are full,date,time"
214
- msgstr ""
215
-
216
- #: post-expirator.php:1222
217
- msgid ""
218
- "dateformat - format set here will override the value set on the settings "
219
- "page"
220
- msgstr ""
221
-
222
- #: post-expirator.php:1223
223
- msgid ""
224
- "timeformat - format set here will override the value set on the settings "
225
- "page"
226
- msgstr ""
227
-
228
- #: post-expirator.php:1231
229
- msgid "Date Format:"
230
- msgstr ""
231
-
232
- #: post-expirator.php:1235
233
- msgid ""
234
- "The default format to use when displaying the expiration date within a post "
235
- "using the [postexpirator] shortcode or within the footer. For information "
236
- "on valid formatting options, see: <a "
237
- "href=\"http://us2.php.net/manual/en/function.date.php\" "
238
- "target=\"_blank\">PHP Date Function</a>."
239
- msgstr ""
240
-
241
- #: post-expirator.php:1239
242
- msgid "Time Format:"
243
- msgstr ""
244
-
245
- #: post-expirator.php:1243
246
- msgid ""
247
- "The default format to use when displaying the expiration time within a post "
248
- "using the [postexpirator] shortcode or within the footer. For information "
249
- "on valid formatting options, see: <a "
250
- "href=\"http://us2.php.net/manual/en/function.date.php\" "
251
- "target=\"_blank\">PHP Date Function</a>."
252
- msgstr ""
253
-
254
- #: post-expirator.php:1247
255
- msgid "Default Date/Time Duration:"
256
- msgstr ""
257
-
258
- #: post-expirator.php:1250
259
- msgid "None"
260
- msgstr ""
261
-
262
- #: post-expirator.php:1251
263
- msgid "Custom"
264
- msgstr ""
265
-
266
- #: post-expirator.php:1252
267
- msgid "Post/Page Publish Time"
268
- msgstr ""
269
-
270
- #: post-expirator.php:1255
271
- msgid ""
272
- "Set the default expiration date to be used when creating new posts and "
273
- "pages. Defaults to none."
274
- msgstr ""
275
-
276
- #: post-expirator.php:1260
277
- msgid ""
278
- "Set the custom value to use for the default expiration date. For "
279
- "information on formatting, see %1$s. For example, you could enter %2$s+1 "
280
- "month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext "
281
- "Thursday%7$s."
282
- msgstr ""
283
-
284
- #: post-expirator.php:1265
285
- msgid "Category Expiration"
286
- msgstr ""
287
-
288
- #: post-expirator.php:1268
289
- msgid "Default Expiration Category"
290
- msgstr ""
291
-
292
- #: post-expirator.php:1279
293
- msgid "Set's the default expiration category for the post."
294
- msgstr ""
295
-
296
- #: post-expirator.php:1284
297
- msgid "Expiration Email Notification"
298
- msgstr ""
299
-
300
- #: post-expirator.php:1285
301
- msgid ""
302
- "Whenever a post expires, an email can be sent to alert users of the "
303
- "expiration."
304
- msgstr ""
305
-
306
- #: post-expirator.php:1288
307
- msgid "Enable Email Notification?"
308
- msgstr ""
309
-
310
- #: post-expirator.php:1290 post-expirator.php:1300 post-expirator.php:1323
311
- #: post-expirator.php:1464
312
- msgid "Enabled"
313
- msgstr ""
314
-
315
- #: post-expirator.php:1292 post-expirator.php:1302 post-expirator.php:1325
316
- #: post-expirator.php:1466
317
- msgid "Disabled"
318
- msgstr ""
319
-
320
- #: post-expirator.php:1294
321
- msgid ""
322
- "This will enable or disable the send of email notification on post "
323
- "expiration."
324
- msgstr ""
325
-
326
- #: post-expirator.php:1298
327
- msgid "Include Blog Administrators?"
328
- msgstr ""
329
-
330
- #: post-expirator.php:1304
331
- msgid ""
332
- "This will include all users with the role of \"Administrator\" in the post "
333
- "expiration email."
334
- msgstr ""
335
-
336
- #: post-expirator.php:1308 post-expirator.php:1478
337
- msgid "Who to notify:"
338
- msgstr ""
339
-
340
- #: post-expirator.php:1312
341
- msgid ""
342
- "Enter a comma seperate list of emails that you would like to be notified "
343
- "when the post expires. This will be applied to ALL post types. You can "
344
- "set post type specific emails on the Defaults tab."
345
- msgstr ""
346
-
347
- #: post-expirator.php:1317
348
- msgid "Post Footer Display"
349
- msgstr ""
350
-
351
- #: post-expirator.php:1318
352
- msgid ""
353
- "Enabling this below will display the expiration date automatically at the "
354
- "end of any post which is set to expire."
355
- msgstr ""
356
-
357
- #: post-expirator.php:1321
358
- msgid "Show in post footer?"
359
- msgstr ""
360
-
361
- #: post-expirator.php:1327
362
- msgid ""
363
- "This will enable or disable displaying the post expiration date in the post "
364
- "footer."
365
- msgstr ""
366
-
367
- #: post-expirator.php:1331
368
- msgid "Footer Contents:"
369
- msgstr ""
370
-
371
- #: post-expirator.php:1335
372
- msgid ""
373
- "Enter the text you would like to appear at the bottom of every post that "
374
- "will expire. The following placeholders will be replaced with the post "
375
- "expiration date in the following format:"
376
- msgstr ""
377
-
378
- #: post-expirator.php:1344
379
- msgid "Footer Style:"
380
- msgstr ""
381
-
382
- #: post-expirator.php:1347
383
- msgid "This post will expire on"
384
- msgstr ""
385
-
386
- #: post-expirator.php:1349
387
- msgid "The inline css which will be used to style the footer text."
388
- msgstr ""
389
-
390
- #: post-expirator.php:1354 post-expirator.php:1492
391
- msgid "Save Changes"
392
- msgstr ""
393
-
394
- #: post-expirator.php:1409
395
- msgid "Default Expiration Values"
396
- msgstr ""
397
-
398
- #: post-expirator.php:1411
399
- msgid ""
400
- "Use the values below to set the default actions/values to be used for each "
401
- "for the corresponding post types. These values can all be overwritten when "
402
- "creating/editing the post/page."
403
- msgstr ""
404
-
405
- #: post-expirator.php:1443
406
- msgid "Active:"
407
- msgstr ""
408
-
409
- #: post-expirator.php:1445
410
- msgid "Active"
411
- msgstr ""
412
-
413
- #: post-expirator.php:1447
414
- msgid "Inactive"
415
- msgstr ""
416
-
417
- #: post-expirator.php:1449
418
- msgid "Select whether the post expirator meta box is active for this post type."
419
- msgstr ""
420
-
421
- #: post-expirator.php:1453
422
- msgid "How to expire:"
423
- msgstr ""
424
-
425
- #: post-expirator.php:1458
426
- msgid "Select the default expire action for the post type."
427
- msgstr ""
428
-
429
- #: post-expirator.php:1462
430
- msgid "Auto-Enable?"
431
- msgstr ""
432
-
433
- #: post-expirator.php:1468
434
- msgid "Select whether the post expirator is enabled for all new posts."
435
- msgstr ""
436
-
437
- #: post-expirator.php:1472
438
- msgid "Taxonomy (hierarchical):"
439
- msgstr ""
440
-
441
- #: post-expirator.php:1482
442
- msgid ""
443
- "Enter a comma seperate list of emails that you would like to be notified "
444
- "when the post expires."
445
- msgstr ""
446
-
447
- #: post-expirator.php:1514
448
- msgid "Debugging Disabled"
449
- msgstr ""
450
-
451
- #: post-expirator.php:1519
452
- msgid "Debugging Enabled"
453
- msgstr ""
454
-
455
- #: post-expirator.php:1526
456
- msgid "Debugging Table Emptied"
457
- msgstr ""
458
-
459
- #: post-expirator.php:1535
460
- msgid "Advanced Diagnostics"
461
- msgstr ""
462
-
463
- #: post-expirator.php:1538
464
- msgid "Post Expirator Debug Logging:"
465
- msgstr ""
466
-
467
- #: post-expirator.php:1542
468
- msgid "Status: Enabled"
469
- msgstr ""
470
-
471
- #: post-expirator.php:1543
472
- msgid "Disable Debugging"
473
- msgstr ""
474
-
475
- #: post-expirator.php:1545
476
- msgid "Status: Disabled"
477
- msgstr ""
478
-
479
- #: post-expirator.php:1546
480
- msgid "Enable Debugging"
481
- msgstr ""
482
-
483
- #: post-expirator.php:1554
484
- msgid "Purge Debug Log:"
485
- msgstr ""
486
-
487
- #: post-expirator.php:1556
488
- msgid "Purge Debug Log"
489
- msgstr ""
490
-
491
- #: post-expirator.php:1560
492
- msgid "WP-Cron Status:"
493
- msgstr ""
494
-
495
- #: post-expirator.php:1564
496
- msgid "DISABLED"
497
- msgstr ""
498
-
499
- #: post-expirator.php:1566
500
- msgid "ENABLED - OK"
501
- msgstr ""
502
-
503
- #: post-expirator.php:1572
504
- msgid "Current Cron Schedule:"
505
- msgstr ""
506
-
507
- #: post-expirator.php:1574
508
- msgid ""
509
- "The below table will show all currently scheduled cron events with the next "
510
- "run time."
511
- msgstr ""
512
-
513
- #: post-expirator.php:1577
514
- msgid "Date"
515
- msgstr ""
516
-
517
- #: post-expirator.php:1578
518
- msgid "Event"
519
- msgstr ""
520
-
521
- #: post-expirator.php:1579
522
- msgid "Arguments / Schedule"
523
- msgstr ""
524
-
525
- #: post-expirator.php:1604
526
- msgid "Single Event"
527
- msgstr ""
528
-
529
- #: post-expirator.php:1632
530
- msgid ""
531
- "Below is a dump of the debugging table, this should be useful for "
532
- "troubleshooting."
533
- msgstr ""
534
-
535
- #: post-expirator.php:2075
536
- msgid "Draft"
537
- msgstr ""
538
-
539
- #: post-expirator.php:2076
540
- msgid "Delete"
541
- msgstr ""
542
-
543
- #: post-expirator.php:2077
544
- msgid "Trash"
545
- msgstr ""
546
-
547
- #: post-expirator.php:2078
548
- msgid "Private"
549
- msgstr ""
550
-
551
- #: post-expirator.php:2079
552
- msgid "Stick"
553
- msgstr ""
554
-
555
- #: post-expirator.php:2080
556
- msgid "Unstick"
557
- msgstr ""
558
-
559
- #: post-expirator.php:2082
560
- msgid "Category: Replace"
561
- msgstr ""
562
-
563
- #: post-expirator.php:2083
564
- msgid "Category: Add"
565
- msgstr ""
566
-
567
- #: post-expirator.php:2084
568
- msgid "Category: Remove"
569
- msgstr ""
570
-
571
- #: post-expirator.php:2137
572
- msgid ""
573
- "Select the hierarchical taxonomy to be used for \"category\" based "
574
- "expiration."
575
- msgstr ""
576
-
577
- #. Description of the plugin/theme
578
- msgid ""
579
- "Allows you to add an expiration date (minute) to posts which you can "
580
- "configure to either delete the post, change it to a draft, or update the "
581
- "post categories at expiration time."
582
  msgstr ""
1
+ # Copyright (C) 2021 Aaron Axelsen
2
+ # This file is distributed under the same license as the Post Expirator package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Post Expirator 2.4.2\n"
6
+ "Report-Msgid-Bugs-To: "
7
+ "https://wordpress.org/support/plugin/PublishPress-Future\n"
8
+ "POT-Creation-Date: 2021-06-17 17:09:25+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=utf-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Last-Translator: PostExpirator Translate Team\n"
13
+ "Language-Team: PostExpirator Translate Team\n"
14
+
15
+ #: post-expirator-debug.php:66
16
+ msgid "Debugging table is currently empty."
17
+ msgstr ""
18
+
19
+ #: post-expirator-debug.php:70
20
+ msgid "Timestamp"
21
+ msgstr ""
22
+
23
+ #: post-expirator-debug.php:71
24
+ msgid "Message"
25
+ msgstr ""
26
+
27
+ #: post-expirator.php:15
28
+ msgid "l F jS, Y"
29
+ msgstr ""
30
+
31
+ #: post-expirator.php:16
32
+ msgid "g:ia"
33
+ msgstr ""
34
+
35
+ #: post-expirator.php:17
36
+ msgid "Post expires at EXPIRATIONTIME on EXPIRATIONDATE"
37
+ msgstr ""
38
+
39
+ #: post-expirator.php:41
40
+ msgid "Settings"
41
+ msgstr ""
42
+
43
+ #: post-expirator.php:70 post-expirator.php:147 post-expirator.php:218
44
+ #: post-expirator.php:269
45
+ msgid "Expires"
46
+ msgstr ""
47
+
48
+ #: post-expirator.php:164
49
+ msgid "Never"
50
+ msgstr ""
51
+
52
+ #: post-expirator.php:216 post-expirator.php:272 post-expirator.php:429
53
+ msgid "Enable Post Expiration"
54
+ msgstr ""
55
+
56
+ #: post-expirator.php:220 post-expirator.php:283 post-expirator.php:436
57
+ msgid "Month"
58
+ msgstr ""
59
+
60
+ #: post-expirator.php:233 post-expirator.php:297 post-expirator.php:437
61
+ msgid "Day"
62
+ msgstr ""
63
+
64
+ #: post-expirator.php:235 post-expirator.php:301 post-expirator.php:435
65
+ msgid "Year"
66
+ msgstr ""
67
+
68
+ #: post-expirator.php:237 post-expirator.php:305 post-expirator.php:474
69
+ msgid "Hour"
70
+ msgstr ""
71
+
72
+ #: post-expirator.php:239 post-expirator.php:309 post-expirator.php:475
73
+ msgid "Minute"
74
+ msgstr ""
75
+
76
+ #: post-expirator.php:274
77
+ msgid "No Change"
78
+ msgstr ""
79
+
80
+ #: post-expirator.php:275
81
+ msgid "Change expiry date if enabled on posts"
82
+ msgstr ""
83
+
84
+ #: post-expirator.php:275
85
+ msgid "Change on posts"
86
+ msgstr ""
87
+
88
+ #: post-expirator.php:276
89
+ msgid "Add expiry date if not enabled on posts"
90
+ msgstr ""
91
+
92
+ #: post-expirator.php:276
93
+ msgid "Add to posts"
94
+ msgstr ""
95
+
96
+ #: post-expirator.php:277
97
+ msgid "Change & Add"
98
+ msgstr ""
99
+
100
+ #: post-expirator.php:278
101
+ msgid "Remove from posts"
102
+ msgstr ""
103
+
104
+ #: post-expirator.php:432
105
+ msgid "The published date/time will be used as the expiration value"
106
+ msgstr ""
107
+
108
+ #: post-expirator.php:496
109
+ msgid "How to expire"
110
+ msgstr ""
111
+
112
+ #: post-expirator.php:507
113
+ msgid "Expiration Categories"
114
+ msgstr ""
115
+
116
+ #: post-expirator.php:518
117
+ msgid ""
118
+ "You must assign a heirarchical taxonomy to this post type to use this "
119
+ "feature."
120
+ msgstr ""
121
+
122
+ #: post-expirator.php:520
123
+ msgid ""
124
+ "More than 1 heirachical taxonomy detected. You must assign a default "
125
+ "taxonomy on the settings screen."
126
+ msgstr ""
127
+
128
+ #: post-expirator.php:530
129
+ msgid "Taxonomy Name"
130
+ msgstr ""
131
+
132
+ #: post-expirator.php:827 post-expirator.php:838 post-expirator.php:849
133
+ #: post-expirator.php:860
134
+ msgid ""
135
+ "%1$s (%2$s) has expired at %3$s. Post status has been successfully changed "
136
+ "to \"%4$s\"."
137
+ msgstr ""
138
+
139
+ #: post-expirator.php:871
140
+ msgid ""
141
+ "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" status has been successfully "
142
+ "set."
143
+ msgstr ""
144
+
145
+ #: post-expirator.php:882
146
+ msgid ""
147
+ "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" status has been successfully "
148
+ "removed."
149
+ msgstr ""
150
+
151
+ #: post-expirator.php:895 post-expirator.php:909
152
+ msgid ""
153
+ "%1$s (%2$s) has expired at %3$s. Post \"%4$s\" have now been set to "
154
+ "\"%5$s\"."
155
+ msgstr ""
156
+
157
+ #: post-expirator.php:932 post-expirator.php:946
158
+ msgid ""
159
+ "%1$s (%2$s) has expired at %3$s. The following post \"%4$s\" have now been "
160
+ "added: \"%5$s\". The full list of categories on the post are: \"%6$s\"."
161
+ msgstr ""
162
+
163
+ #: post-expirator.php:974 post-expirator.php:995
164
+ msgid ""
165
+ "%1$s (%2$s) has expired at %3$s. The following post \"%4$s\" have now been "
166
+ "removed: \"%5$s\". The full list of categories on the post are: \"%6$s\"."
167
+ msgstr ""
168
+
169
+ #: post-expirator.php:1014
170
+ msgid "Post Expiration Complete \"%s\""
171
+ msgstr ""
172
+
173
+ #: post-expirator.php:1050
174
+ msgid "[%1$s] %2$s"
175
+ msgstr ""
176
+
177
+ #: post-expirator.php:1092
178
+ msgid "General Settings"
179
+ msgstr ""
180
+
181
+ #: post-expirator.php:1093 post-expirator.php:1228
182
+ msgid "Defaults"
183
+ msgstr ""
184
+
185
+ #: post-expirator.php:1094
186
+ msgid "Diagnostics"
187
+ msgstr ""
188
+
189
+ #: post-expirator.php:1095
190
+ msgid "View Debug Logs"
191
+ msgstr ""
192
+
193
+ #: post-expirator.php:1110 post-expirator.php:1133
194
+ msgid "Post Expirator Options"
195
+ msgstr ""
196
+
197
+ #: post-expirator.php:1169 post-expirator.php:1401
198
+ msgid "Saved Options!"
199
+ msgstr ""
200
+
201
+ #: post-expirator.php:1216
202
+ msgid ""
203
+ "The post expirator plugin sets a custom meta value, and then optionally "
204
+ "allows you to select if you want the post changed to a draft status or "
205
+ "deleted when it expires."
206
+ msgstr ""
207
+
208
+ #: post-expirator.php:1219
209
+ msgid "Valid [postexpirator] attributes:"
210
+ msgstr ""
211
+
212
+ #: post-expirator.php:1221
213
+ msgid "type - defaults to full - valid options are full,date,time"
214
+ msgstr ""
215
+
216
+ #: post-expirator.php:1222
217
+ msgid ""
218
+ "dateformat - format set here will override the value set on the settings "
219
+ "page"
220
+ msgstr ""
221
+
222
+ #: post-expirator.php:1223
223
+ msgid ""
224
+ "timeformat - format set here will override the value set on the settings "
225
+ "page"
226
+ msgstr ""
227
+
228
+ #: post-expirator.php:1231
229
+ msgid "Date Format:"
230
+ msgstr ""
231
+
232
+ #: post-expirator.php:1235
233
+ msgid ""
234
+ "The default format to use when displaying the expiration date within a post "
235
+ "using the [postexpirator] shortcode or within the footer. For information "
236
+ "on valid formatting options, see: <a "
237
+ "href=\"http://us2.php.net/manual/en/function.date.php\" "
238
+ "target=\"_blank\">PHP Date Function</a>."
239
+ msgstr ""
240
+
241
+ #: post-expirator.php:1239
242
+ msgid "Time Format:"
243
+ msgstr ""
244
+
245
+ #: post-expirator.php:1243
246
+ msgid ""
247
+ "The default format to use when displaying the expiration time within a post "
248
+ "using the [postexpirator] shortcode or within the footer. For information "
249
+ "on valid formatting options, see: <a "
250
+ "href=\"http://us2.php.net/manual/en/function.date.php\" "
251
+ "target=\"_blank\">PHP Date Function</a>."
252
+ msgstr ""
253
+
254
+ #: post-expirator.php:1247
255
+ msgid "Default Date/Time Duration:"
256
+ msgstr ""
257
+
258
+ #: post-expirator.php:1250
259
+ msgid "None"
260
+ msgstr ""
261
+
262
+ #: post-expirator.php:1251
263
+ msgid "Custom"
264
+ msgstr ""
265
+
266
+ #: post-expirator.php:1252
267
+ msgid "Post/Page Publish Time"
268
+ msgstr ""
269
+
270
+ #: post-expirator.php:1255
271
+ msgid ""
272
+ "Set the default expiration date to be used when creating new posts and "
273
+ "pages. Defaults to none."
274
+ msgstr ""
275
+
276
+ #: post-expirator.php:1260
277
+ msgid ""
278
+ "Set the custom value to use for the default expiration date. For "
279
+ "information on formatting, see %1$s. For example, you could enter %2$s+1 "
280
+ "month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext "
281
+ "Thursday%7$s."
282
+ msgstr ""
283
+
284
+ #: post-expirator.php:1265
285
+ msgid "Category Expiration"
286
+ msgstr ""
287
+
288
+ #: post-expirator.php:1268
289
+ msgid "Default Expiration Category"
290
+ msgstr ""
291
+
292
+ #: post-expirator.php:1279
293
+ msgid "Set's the default expiration category for the post."
294
+ msgstr ""
295
+
296
+ #: post-expirator.php:1284
297
+ msgid "Expiration Email Notification"
298
+ msgstr ""
299
+
300
+ #: post-expirator.php:1285
301
+ msgid ""
302
+ "Whenever a post expires, an email can be sent to alert users of the "
303
+ "expiration."
304
+ msgstr ""
305
+
306
+ #: post-expirator.php:1288
307
+ msgid "Enable Email Notification?"
308
+ msgstr ""
309
+
310
+ #: post-expirator.php:1290 post-expirator.php:1300 post-expirator.php:1323
311
+ #: post-expirator.php:1464
312
+ msgid "Enabled"
313
+ msgstr ""
314
+
315
+ #: post-expirator.php:1292 post-expirator.php:1302 post-expirator.php:1325
316
+ #: post-expirator.php:1466
317
+ msgid "Disabled"
318
+ msgstr ""
319
+
320
+ #: post-expirator.php:1294
321
+ msgid ""
322
+ "This will enable or disable the send of email notification on post "
323
+ "expiration."
324
+ msgstr ""
325
+
326
+ #: post-expirator.php:1298
327
+ msgid "Include Blog Administrators?"
328
+ msgstr ""
329
+
330
+ #: post-expirator.php:1304
331
+ msgid ""
332
+ "This will include all users with the role of \"Administrator\" in the post "
333
+ "expiration email."
334
+ msgstr ""
335
+
336
+ #: post-expirator.php:1308 post-expirator.php:1478
337
+ msgid "Who to notify:"
338
+ msgstr ""
339
+
340
+ #: post-expirator.php:1312
341
+ msgid ""
342
+ "Enter a comma seperate list of emails that you would like to be notified "
343
+ "when the post expires. This will be applied to ALL post types. You can "
344
+ "set post type specific emails on the Defaults tab."
345
+ msgstr ""
346
+
347
+ #: post-expirator.php:1317
348
+ msgid "Post Footer Display"
349
+ msgstr ""
350
+
351
+ #: post-expirator.php:1318
352
+ msgid ""
353
+ "Enabling this below will display the expiration date automatically at the "
354
+ "end of any post which is set to expire."
355
+ msgstr ""
356
+
357
+ #: post-expirator.php:1321
358
+ msgid "Show in post footer?"
359
+ msgstr ""
360
+
361
+ #: post-expirator.php:1327
362
+ msgid ""
363
+ "This will enable or disable displaying the post expiration date in the post "
364
+ "footer."
365
+ msgstr ""
366
+
367
+ #: post-expirator.php:1331
368
+ msgid "Footer Contents:"
369
+ msgstr ""
370
+
371
+ #: post-expirator.php:1335
372
+ msgid ""
373
+ "Enter the text you would like to appear at the bottom of every post that "
374
+ "will expire. The following placeholders will be replaced with the post "
375
+ "expiration date in the following format:"
376
+ msgstr ""
377
+
378
+ #: post-expirator.php:1344
379
+ msgid "Footer Style:"
380
+ msgstr ""
381
+
382
+ #: post-expirator.php:1347
383
+ msgid "This post will expire on"
384
+ msgstr ""
385
+
386
+ #: post-expirator.php:1349
387
+ msgid "The inline css which will be used to style the footer text."
388
+ msgstr ""
389
+
390
+ #: post-expirator.php:1354 post-expirator.php:1492
391
+ msgid "Save Changes"
392
+ msgstr ""
393
+
394
+ #: post-expirator.php:1409
395
+ msgid "Default Expiration Values"
396
+ msgstr ""
397
+
398
+ #: post-expirator.php:1411
399
+ msgid ""
400
+ "Use the values below to set the default actions/values to be used for each "
401
+ "for the corresponding post types. These values can all be overwritten when "
402
+ "creating/editing the post/page."
403
+ msgstr ""
404
+
405
+ #: post-expirator.php:1443
406
+ msgid "Active:"
407
+ msgstr ""
408
+
409
+ #: post-expirator.php:1445
410
+ msgid "Active"
411
+ msgstr ""
412
+
413
+ #: post-expirator.php:1447
414
+ msgid "Inactive"
415
+ msgstr ""
416
+
417
+ #: post-expirator.php:1449
418
+ msgid "Select whether the post expirator meta box is active for this post type."
419
+ msgstr ""
420
+
421
+ #: post-expirator.php:1453
422
+ msgid "How to expire:"
423
+ msgstr ""
424
+
425
+ #: post-expirator.php:1458
426
+ msgid "Select the default expire action for the post type."
427
+ msgstr ""
428
+
429
+ #: post-expirator.php:1462
430
+ msgid "Auto-Enable?"
431
+ msgstr ""
432
+
433
+ #: post-expirator.php:1468
434
+ msgid "Select whether the post expirator is enabled for all new posts."
435
+ msgstr ""
436
+
437
+ #: post-expirator.php:1472
438
+ msgid "Taxonomy (hierarchical):"
439
+ msgstr ""
440
+
441
+ #: post-expirator.php:1482
442
+ msgid ""
443
+ "Enter a comma seperate list of emails that you would like to be notified "
444
+ "when the post expires."
445
+ msgstr ""
446
+
447
+ #: post-expirator.php:1514
448
+ msgid "Debugging Disabled"
449
+ msgstr ""
450
+
451
+ #: post-expirator.php:1519
452
+ msgid "Debugging Enabled"
453
+ msgstr ""
454
+
455
+ #: post-expirator.php:1526
456
+ msgid "Debugging Table Emptied"
457
+ msgstr ""
458
+
459
+ #: post-expirator.php:1535
460
+ msgid "Advanced Diagnostics"
461
+ msgstr ""
462
+
463
+ #: post-expirator.php:1538
464
+ msgid "Post Expirator Debug Logging:"
465
+ msgstr ""
466
+
467
+ #: post-expirator.php:1542
468
+ msgid "Status: Enabled"
469
+ msgstr ""
470
+
471
+ #: post-expirator.php:1543
472
+ msgid "Disable Debugging"
473
+ msgstr ""
474
+
475
+ #: post-expirator.php:1545
476
+ msgid "Status: Disabled"
477
+ msgstr ""
478
+
479
+ #: post-expirator.php:1546
480
+ msgid "Enable Debugging"
481
+ msgstr ""
482
+
483
+ #: post-expirator.php:1554
484
+ msgid "Purge Debug Log:"
485
+ msgstr ""
486
+
487
+ #: post-expirator.php:1556
488
+ msgid "Purge Debug Log"
489
+ msgstr ""
490
+
491
+ #: post-expirator.php:1560
492
+ msgid "WP-Cron Status:"
493
+ msgstr ""
494
+
495
+ #: post-expirator.php:1564
496
+ msgid "DISABLED"
497
+ msgstr ""
498
+
499
+ #: post-expirator.php:1566
500
+ msgid "ENABLED - OK"
501
+ msgstr ""
502
+
503
+ #: post-expirator.php:1572
504
+ msgid "Current Cron Schedule:"
505
+ msgstr ""
506
+
507
+ #: post-expirator.php:1574
508
+ msgid ""
509
+ "The below table will show all currently scheduled cron events with the next "
510
+ "run time."
511
+ msgstr ""
512
+
513
+ #: post-expirator.php:1577
514
+ msgid "Date"
515
+ msgstr ""
516
+
517
+ #: post-expirator.php:1578
518
+ msgid "Event"
519
+ msgstr ""
520
+
521
+ #: post-expirator.php:1579
522
+ msgid "Arguments / Schedule"
523
+ msgstr ""
524
+
525
+ #: post-expirator.php:1604
526
+ msgid "Single Event"
527
+ msgstr ""
528
+
529
+ #: post-expirator.php:1632
530
+ msgid ""
531
+ "Below is a dump of the debugging table, this should be useful for "
532
+ "troubleshooting."
533
+ msgstr ""
534
+
535
+ #: post-expirator.php:2075
536
+ msgid "Draft"
537
+ msgstr ""
538
+
539
+ #: post-expirator.php:2076
540
+ msgid "Delete"
541
+ msgstr ""
542
+
543
+ #: post-expirator.php:2077
544
+ msgid "Trash"
545
+ msgstr ""
546
+
547
+ #: post-expirator.php:2078
548
+ msgid "Private"
549
+ msgstr ""
550
+
551
+ #: post-expirator.php:2079
552
+ msgid "Stick"
553
+ msgstr ""
554
+
555
+ #: post-expirator.php:2080
556
+ msgid "Unstick"
557
+ msgstr ""
558
+
559
+ #: post-expirator.php:2082
560
+ msgid "Category: Replace"
561
+ msgstr ""
562
+
563
+ #: post-expirator.php:2083
564
+ msgid "Category: Add"
565
+ msgstr ""
566
+
567
+ #: post-expirator.php:2084
568
+ msgid "Category: Remove"
569
+ msgstr ""
570
+
571
+ #: post-expirator.php:2137
572
+ msgid ""
573
+ "Select the hierarchical taxonomy to be used for \"category\" based "
574
+ "expiration."
575
+ msgstr ""
576
+
577
+ #. Description of the plugin/theme
578
+ msgid ""
579
+ "Allows you to add an expiration date (minute) to posts which you can "
580
+ "configure to either delete the post, change it to a draft, or update the "
581
+ "post categories at expiration time."
582
  msgstr ""
legacy-functions.php CHANGED
@@ -45,3 +45,17 @@ if ( ! function_exists( 'postExpiratorExpire' ) ) {
45
  }
46
 
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
 
47
 
48
+ if ( ! function_exists( '_postExpiratorExpireType' ) ) {
49
+
50
+ /**
51
+ * Get the HTML for expire type.
52
+ *
53
+ * @since 2.5.0
54
+ * @deprecated 2.5.0
55
+ */
56
+ function _postExpiratorExpireType( $opts ) {
57
+ _postexpirator_expire_type( $opts );
58
+ }
59
+ }
60
+
61
+
post-expirator.php CHANGED
@@ -3,15 +3,15 @@
3
  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: 2.4.3
8
- Author URI: http://postexpirator.tuxdocs.net/
9
  Text Domain: post-expirator
10
  Domain Path: /languages
11
  */
12
 
13
  // Default Values
14
- define( 'POSTEXPIRATOR_VERSION', '2.4.3' );
15
  define( 'POSTEXPIRATOR_DATEFORMAT', __( 'l F jS, Y', 'post-expirator' ) );
16
  define( 'POSTEXPIRATOR_TIMEFORMAT', __( 'g:ia', 'post-expirator' ) );
17
  define( 'POSTEXPIRATOR_FOOTERCONTENTS', __( 'Post expires at EXPIRATIONTIME on EXPIRATIONDATE', 'post-expirator' ) );
@@ -234,11 +234,11 @@ function postexpirator_quickedit( $column_name, $post_type ) {
234
  <label>
235
  <span class="screen-reader-text"><?php _e( 'Day', 'post-expirator' ); ?></span>
236
  <input name="expirationdate_day" value="" size="2" maxlength="2" autocomplete="off" type="text" placeholder="<?php echo date( 'd' ); ?>">
237
- </label>,
238
  <label>
239
  <span class="screen-reader-text"><?php _e( 'Year', 'post-expirator' ); ?></span>
240
  <input name="expirationdate_year" value="" size="4" maxlength="4" autocomplete="off" type="text" placeholder="<?php echo date( 'Y' ); ?>">
241
- </label> @
242
  <label>
243
  <span class="screen-reader-text"><?php _e( 'Hour', 'post-expirator' ); ?></span>
244
  <input name="expirationdate_hour" value="" size="2" maxlength="2" autocomplete="off" type="text" placeholder="00">
@@ -306,11 +306,11 @@ function postexpirator_bulkedit( $column_name, $post_type ) {
306
  <label>
307
  <span class="screen-reader-text"><?php _e( 'Day', 'post-expirator' ); ?></span>
308
  <input name="expirationdate_day" placeholder="<?php echo date( 'd' ); ?>" value="" size="2" maxlength="2" autocomplete="off" type="text">
309
- </label>,
310
  <label>
311
  <span class="screen-reader-text"><?php _e( 'Year', 'post-expirator' ); ?></span>
312
  <input name="expirationdate_year" placeholder="<?php echo date( 'Y' ); ?>" value="" size="4" maxlength="4" autocomplete="off" type="text">
313
- </label> @
314
  <label>
315
  <span class="screen-reader-text"><?php _e( 'Hour', 'post-expirator' ); ?></span>
316
  <input name="expirationdate_hour" placeholder="00" value="" size="2" maxlength="2" autocomplete="off" type="text">
@@ -979,10 +979,11 @@ function postexpirator_expire_post( $id ) {
979
  $cats = wp_get_post_categories( $id );
980
  $merged = array();
981
  foreach ( $cats as $cat ) {
982
- if ( ! in_array( $cat, $category, true ) ) {
983
  $merged[] = $cat;
984
  }
985
  }
 
986
  if ( wp_update_post( array('ID' => $id, 'post_category' => $merged) ) === 0 ) {
987
  if ( POSTEXPIRATOR_DEBUG ) {
988
  $debug->save( array('message' => $id . ' -> FAILED ' . $expireType . ' ' . print_r( $postoptions, true )) );
@@ -999,7 +1000,7 @@ function postexpirator_expire_post( $id ) {
999
  $terms = wp_get_object_terms( $id, $categoryTaxonomy, array('fields' => 'ids') );
1000
  $merged = array();
1001
  foreach ( $terms as $term ) {
1002
- if ( ! in_array( $term, $category, true ) ) {
1003
  $merged[] = $term;
1004
  }
1005
  }
3
  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: PublishPress
7
+ Version: 2.4.4
8
+ Author URI: http://publishpress.com
9
  Text Domain: post-expirator
10
  Domain Path: /languages
11
  */
12
 
13
  // Default Values
14
+ define( 'POSTEXPIRATOR_VERSION', '2.4.4' );
15
  define( 'POSTEXPIRATOR_DATEFORMAT', __( 'l F jS, Y', 'post-expirator' ) );
16
  define( 'POSTEXPIRATOR_TIMEFORMAT', __( 'g:ia', 'post-expirator' ) );
17
  define( 'POSTEXPIRATOR_FOOTERCONTENTS', __( 'Post expires at EXPIRATIONTIME on EXPIRATIONDATE', 'post-expirator' ) );
234
  <label>
235
  <span class="screen-reader-text"><?php _e( 'Day', 'post-expirator' ); ?></span>
236
  <input name="expirationdate_day" value="" size="2" maxlength="2" autocomplete="off" type="text" placeholder="<?php echo date( 'd' ); ?>">
237
+ </label>,
238
  <label>
239
  <span class="screen-reader-text"><?php _e( 'Year', 'post-expirator' ); ?></span>
240
  <input name="expirationdate_year" value="" size="4" maxlength="4" autocomplete="off" type="text" placeholder="<?php echo date( 'Y' ); ?>">
241
+ </label> @
242
  <label>
243
  <span class="screen-reader-text"><?php _e( 'Hour', 'post-expirator' ); ?></span>
244
  <input name="expirationdate_hour" value="" size="2" maxlength="2" autocomplete="off" type="text" placeholder="00">
306
  <label>
307
  <span class="screen-reader-text"><?php _e( 'Day', 'post-expirator' ); ?></span>
308
  <input name="expirationdate_day" placeholder="<?php echo date( 'd' ); ?>" value="" size="2" maxlength="2" autocomplete="off" type="text">
309
+ </label>,
310
  <label>
311
  <span class="screen-reader-text"><?php _e( 'Year', 'post-expirator' ); ?></span>
312
  <input name="expirationdate_year" placeholder="<?php echo date( 'Y' ); ?>" value="" size="4" maxlength="4" autocomplete="off" type="text">
313
+ </label> @
314
  <label>
315
  <span class="screen-reader-text"><?php _e( 'Hour', 'post-expirator' ); ?></span>
316
  <input name="expirationdate_hour" placeholder="00" value="" size="2" maxlength="2" autocomplete="off" type="text">
979
  $cats = wp_get_post_categories( $id );
980
  $merged = array();
981
  foreach ( $cats as $cat ) {
982
+ if ( ! in_array( $cat, $category, false ) ) {
983
  $merged[] = $cat;
984
  }
985
  }
986
+
987
  if ( wp_update_post( array('ID' => $id, 'post_category' => $merged) ) === 0 ) {
988
  if ( POSTEXPIRATOR_DEBUG ) {
989
  $debug->save( array('message' => $id . ' -> FAILED ' . $expireType . ' ' . print_r( $postoptions, true )) );
1000
  $terms = wp_get_object_terms( $id, $categoryTaxonomy, array('fields' => 'ids') );
1001
  $merged = array();
1002
  foreach ( $terms as $term ) {
1003
+ if ( ! in_array( $term, $category, false ) ) {
1004
  $merged[] = $term;
1005
  }
1006
  }
readme.txt CHANGED
@@ -1,329 +1,359 @@
1
- === Post Expirator: Automatically Unpublish WordPress Posts ===
2
- Contributors: publishpress, kevinB, stevejburge, andergmartins, axelseaa, rozroz
3
- Author: PublishPress
4
- Author URI: https://publishpress.com
5
- Tags: expire, posts, pages, schedule
6
- Requires at least: 4.0
7
- Tested up to: 5.8
8
- Stable tag: 2.4.3
9
-
10
- Add an expiration date to posts. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
11
-
12
- == Description ==
13
-
14
- The Post Expirator plugin allows you to add an expiration date to posts. pages and other content type. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
15
-
16
- Here's an overview of what you can do with Post Expirator:
17
-
18
- * Choose expiry dates for content in any post type.
19
- * Select expiry dates in the right sidebar when editing posts.
20
- * Modify, remove or completely delete content when the expiry date arrives.
21
- * Modify expiry dates using "Quick Edit" and "Bulk Edit".
22
- * Receive email notifications when your content expires.
23
- * Show expiry dates in your content, automatically or with shortcodes.
24
-
25
- ## Options for Expiring Posts
26
-
27
- When your posts expire, you can perform these changes on your content:
28
-
29
- * Change the status to "Draft".
30
- * Delete the post.
31
- * Send the post to the Trash.
32
- * Change the status to "Private".
33
- * Enable the “Stick to the top of the blog” option.
34
- * Disable the “Stick to the top of the blog” option.
35
- * Remove all existing categories, and add new categories.
36
- * Keep all existing categories, and add new categories.
37
- * Keep all existing categories, except for those specified in this change.
38
-
39
- [Click here for more details on expiring posts](https://publishpress.com/knowledge-base/ways-to-expire-posts/).
40
-
41
- ## Display the Expiry Date in Your Content
42
-
43
- Post Expirator allows you to place automatically show the expiry date inside your articles. The expiry will be added at the bottom of your post.
44
-
45
- [Click here to see the Footer Display options](https://publishpress.com/knowledge-base/footer-display/).
46
-
47
- You can use shortcodes to show the expiration date inside your posts. You can customize the shortcode output with several formatting options.
48
-
49
- [Click here to see the shortcode options](https://publishpress.com/knowledge-base/shortcodes-to-show-expiration-date/).
50
-
51
- ## Expiry Defaults for Post Types
52
-
53
- Post Expirator can support any post type in WordPress. Go to Settings > Post Expirator > Defaults and you can choose default expiry options for each post type.
54
-
55
- [Click here to see the default options](https://publishpress.com/knowledge-base/defaults-for-post-types/).
56
-
57
- ## Post Expirator Email Notifications
58
-
59
- The Post Expirator plugin can send you email notifications when your content is unpublished. You can control the emails by going to Settings > Post Expirator > General Settings.
60
-
61
- [Click here to see the notification options](https://publishpress.com/knowledge-base/email-notifications/).
62
-
63
- ## Details on How Post Expiry Works
64
-
65
- For each expiration event, a custom cron job is scheduled. This can help reduce server overhead for busy sites. This plugin REQUIRES that WP-CRON is setup and functional on your webhost. Some hosts do not support this, so please check and confirm if you run into issues using the plugin.
66
-
67
- [Click here to see the technical details for this plugin](https://publishpress.com/knowledge-base/scheduling-cron-jobs/).
68
-
69
- == Installation ==
70
-
71
- This section describes how to install the plugin and get it working.
72
-
73
- 1. Unzip the plugin contents to the `/wp-content/plugins/post-expirator/` directory
74
- 2. Activate the plugin through the 'Plugins' menu in WordPress
75
-
76
- == Screenshots ==
77
-
78
- 1. Adding expiration date to a post
79
- 2. Viewing the expiration dates on the post overview screen
80
- 3. Settings screen
81
-
82
- == Changelog ==
83
-
84
- **Version 2.4.3**
85
-
86
- * Added: Expose wrappers for legacy functions, #40;
87
- * Added: Support for quotes in Default expiry, #43;
88
- * Fixed: Default expiry duration is broken for future years, #39;
89
- * Fixed: Translation bug, #5;
90
- * Fixed: Post expiring one year early, #24;
91
- * Changed: Bulk and Quick Edit boxes default to current date/year, #46;
92
-
93
- **Version 2.4.2**
94
-
95
- * Fixed: Bulk edit does not change scheduled event bug, #29;
96
- * Fixed: Date not being translated in shortcode, #16;
97
- * Fixed: Bulk Edit doesn't work, #4;
98
-
99
- **Version 2.4.1**
100
-
101
- * Fix: Updated deprecated .live jQuery reference.
102
-
103
- **Version 2.4.0**
104
-
105
- * Fix: Fixed PHP Error with PHP 7.
106
-
107
- **Version 2.3.1**
108
-
109
- * Fix: Fixed PHP Error that snuck in on some installations.
110
-
111
- **Version 2.3.0**
112
-
113
- * New: Email notification upon post expiration. A global email can be set, blog admins can be selected and/or specific users based on post type can be notified.
114
- * New: Expiration Option Added - Stick/Unstick post is now available.
115
- * New: Expiration Option Added - Trash post is now available.
116
- * New: Added custom actions that can be hooked into when expiration events are scheduled / unscheduled.
117
- * Fix: Minor HTML Code Issues
118
-
119
- **Version 2.2.2**
120
-
121
- * Fix: Quick Edit did not retain the expire type setting, and defaulted back to "Draft". This has been resolved.
122
-
123
- **Version 2.2.1**
124
-
125
- * Fix: Fixed issue with bulk edit not correctly updating the expiration date.
126
-
127
- **Version 2.2.0**
128
-
129
- * New: Quick Edit - setting expiration date and toggling post expiration status can now be done via quick edit.
130
- * New: Bulk Edit - changing expiration date on posts that already are configured can now be done via bulk edit.
131
- * New: Added ability to order by Expiration Date in dashboard.
132
- * New: Adjusted formatting on defaults page. Multiple post types are now displayed cleaner.
133
- * Fix: Minor Code Cleanup
134
-
135
- **Version 2.1.4**
136
-
137
- * Fix: PHP Strict errors with 5.4+
138
- * Fix: Removed temporary timezone conversion - now using core functions again
139
-
140
- **Version 2.1.3**
141
-
142
- * Fix: Default category selection now saves correctly on default settings screen
143
-
144
- **Version 2.1.2**
145
-
146
- * Security: Added form nonce for protect against possible CSRF
147
- * Security: Fixed XSS issue on settings pages
148
- * New: Added check to show if WP_CRON is enabled on diagnostics page
149
- * Fix: Minor Code Cleanup
150
-
151
- **Version 2.1.1**
152
-
153
- * New: Added the option to disable post expirator for certain post types if desired
154
- * Fix: Fixed php warning issue cause when post type defaults are not set
155
-
156
- **Version 2.1.0**
157
-
158
- * New: Added support for hierarchical custom taxonomy
159
- * New: Enhanced custom post type support
160
- * Fix: Updated debug function to be friendly for scripted calls
161
- * Fix: Change to only show public custom post types on defaults screen
162
- * Fix: Removed category expiration options for 'pages', which is currently unsupported
163
- * Fix: Some date calls were getting "double" converted for the timezone pending how other plugins handled date - this issue should now be resolved
164
-
165
- **Version 2.0.1**
166
-
167
- * Removes old scheduled hook - this was not done completely in the 2.0.0 upgrade
168
- * Old option cleanup
169
-
170
- **Version 2.0.0**
171
-
172
- This is a major update of the core functions of this plugin. All current plugins and settings should be upgraded to the new formats and work as expected. Any posts currently schedule to be expirated in the future will be automatically upgraded to the new format.
173
-
174
- * New: Improved debug calls and logging
175
- * New: Added the ability to expire to a "private" post
176
- * New: Added the ability to expire by adding or removing categories. The old way of doing things is now known as replacing categories
177
- * New: Revamped the expiration process - the plugin no longer runs on an minute, hourly, or other schedule. Each expiration event schedules a unique event to run, conserving system resources and making things more efficient
178
- * New: The type of expiration event can be selected for each post, directly from the post editing screen
179
- * New: Ability to set defaults for each post type (including custom posts)
180
- * New: Renamed expiration-date meta value to _expiration-date
181
- * New: Revamped timezone handling to be more correct with WordPress standards and fix conflicts with other plugins
182
- * New: 'Expires' column on post display table now uses the default date/time formats set for the blog
183
- * Fix: Removed kses filter calls when then schedule task runs that was causing code entered as unfiltered_html to be removed
184
- * Fix: Updated some calls of date to now use date_i18n
185
- * Fix: Most (if not all) php error/warnings should be addressed
186
- * Fix: Updated wpdb calls in the debug class to use wpdb_prepare correctly
187
- * Fix: Changed menu capability option from "edit_plugin" to "manage_options"
188
-
189
- **Version 1.6.2**
190
-
191
- * Added the ability to configure the post expirator to be enabled by default for all new posts
192
- * Changed some instances of mktime to time
193
- * Fixed missing global call for MS installs
194
-
195
- **Version 1.6.1**
196
-
197
- * Tweaked error messages, removed clicks for reset cron event
198
- * Switched cron schedule functions to use "current_time('timestamp')"
199
- * Cleaned up default values code
200
- * Added option to allow user to select any cron schedule (minute, hourly, twicedaily, daily) - including other defined schedules
201
- * Added option to set default expiration duration - options are none, custom, or publish time
202
- * Code cleanup - php notice
203
-
204
- **Version 1.6**
205
-
206
- * Fixed invalid html
207
- * Fixed i18n issues with dates
208
- * Fixed problem when using "Network Activate" - reworked plugin activation process
209
- * Replaced "Upgrade" tab with new "Diagnostics" tab
210
- * Reworked expire logic to limit the number of sql queries needed
211
- * Added debugging
212
- * Various code cleanup
213
-
214
- **Version 1.5.4**
215
-
216
- * Cleaned up deprecated function calls
217
-
218
- **Version 1.5.3**
219
-
220
- * Fixed bug with sql expiration query (props to Robert & John)
221
-
222
- **Version 1.5.2**
223
-
224
- * Fixed bug with shortcode that was displaying the expiration date in the incorrect timezone
225
- * Fixed typo on settings page with incorrect shortcode name
226
-
227
- **Version 1.5.1**
228
-
229
- * Fixed bug that was not allow custom post types to work
230
-
231
- **Version 1.5**
232
-
233
- * Moved Expirator Box to Sidebar and cleaned up meta code
234
- * Added ability to expire post to category
235
-
236
- **Version 1.4.3**
237
-
238
- * Fixed issue with 3.0 multisite detection
239
-
240
- **Version 1.4.2**
241
-
242
- * Added post expirator POT to /languages folder
243
- * Fixed issue with plugin admin navigation
244
- * Fixed timezone issue on plugin options screen
245
-
246
- **Version 1.4.1**
247
-
248
- * Added support for custom post types (Thanks Thierry)
249
- * Added i18n support (Thanks Thierry)
250
- * Fixed issue where expiration date was not shown in the correct timezone in the footer
251
- * Fixed issue where on some systems the expiration did not happen when scheduled
252
-
253
- **Version 1.4**
254
-
255
- NOTE: After upgrading, you may need to reset the cron schedules. Following onscreen notice if prompted. Previously scheduled posts will not be updated, they will be deleted referncing the old timezone setting. If you wish to update them, you will need to manually update the expiration time.
256
-
257
- * Fixed compatability issues with Wordpress - plugin was originally coded for WPMU - should now work on both
258
- * Added ability to schedule post expiration by minute
259
- * Fixed timezone - now uses the same timezone as configured by the blog
260
-
261
- **Version 1.3.1**
262
-
263
- * Fixed sporadic issue of expired posts not being removed
264
-
265
- **Version 1.3**
266
-
267
- * Expiration date is now retained across all post status changes
268
- * Modified date/time format options for shortcode postexpirator tag
269
- * Added the ability to add text automatically to the post footer if expiration date is set
270
-
271
- **Version 1.2.1**
272
-
273
- * Fixed issue with display date format not being recognized after upgrade
274
-
275
- **Version 1.2**
276
-
277
- * Changed wording from "Expiration Date" to "Post Expirator" and moved the configuration options to the "Settings" tab.
278
- * Added shortcode tag [postexpirator] to display the post expiration date within the post
279
- ** Added new setting for the default format
280
- * Fixed bug where expiration date was removed when a post was auto saved
281
-
282
- **Version 1.1**
283
-
284
- * Expired posts retain expiration date
285
-
286
- **Version 1.0**
287
-
288
- * Initial Release
289
-
290
- == Upgrade Notice ==
291
-
292
- = 2.2.0 =
293
- Quick Edit/Bulk Edit Added. Sortable Expiration Date Fields Added
294
-
295
- = 2.1.4 =
296
- Fixed PHP Strict errors with 5.4+
297
- Removed temporary timezone conversion functions
298
-
299
- = 2.1.3 =
300
- Default category selection now saves correctly on default settings screen
301
-
302
- = 2.1.2 =
303
- Important Update - Security Fixes - See Changelog
304
-
305
- = 2.0.1 =
306
- Removes old scheduled hook - this was not done completely in the 2.0.0 upgrade
307
-
308
- = 2.0.0 =
309
- This is a major update of the core functions of this plugin. All current plugins and settings should be upgraded to the new formats and work as expected. Any posts currently schedule to be expirated in the future will be automatically upgraded to the new format.
310
-
311
- = 1.6.1 =
312
- Tweaked error messages, added option to allow user to select cron schedule and set default exiration duration
313
-
314
- = 1.6 =
315
- Fixed invalid html
316
- Fixed i18n issues with dates
317
- Fixed problem when using "Network Activate" - reworked plugin activation process
318
- Replaced "Upgrade" tab with new "Diagnostics" tab
319
- Reworked expire logic to limit the number of sql queries needed
320
- Added debugging
321
-
322
- = 1.5.4 =
323
- Cleaned up deprecated function calls
324
-
325
- = 1.5.3 =
326
- Fixed bug with sql expiration query (props to Robert & John)
327
-
328
- = 1.5.2 =
329
- Fixed shortcode timezone issue
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Post Expirator: Schedule WordPress Posts to Automatically Unpublish ===
2
+ Contributors: publishpress, kevinB, stevejburge, andergmartins
3
+ Author: publishpress
4
+ Author URI: https://publishpress.com
5
+ Tags: expire, posts, pages, schedule
6
+ Requires at least: 4.0
7
+ Tested up to: 5.8
8
+ Stable tag: 2.4.4
9
+
10
+ Add an expiration date to posts. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
11
+
12
+ == Description ==
13
+
14
+ The Post Expirator plugin allows you to add an expiration date to posts. pages and other content type. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
15
+
16
+ Here's an overview of what you can do with Post Expirator:
17
+
18
+ * Choose expiry dates for content in any post type.
19
+ * Select expiry dates in the right sidebar when editing posts.
20
+ * Modify, remove or completely delete content when the expiry date arrives.
21
+ * Modify expiry dates using "Quick Edit" and "Bulk Edit".
22
+ * Receive email notifications when your content expires.
23
+ * Show expiry dates in your content, automatically or with shortcodes.
24
+
25
+ ## Options for Expiring Posts
26
+
27
+ When your posts expire, you can perform these changes on your content:
28
+
29
+ * Change the status to "Draft".
30
+ * Delete the post.
31
+ * Send the post to the Trash.
32
+ * Change the status to "Private".
33
+ * Enable the “Stick to the top of the blog” option.
34
+ * Disable the “Stick to the top of the blog” option.
35
+ * Remove all existing categories, and add new categories.
36
+ * Keep all existing categories, and add new categories.
37
+ * Keep all existing categories, except for those specified in this change.
38
+
39
+ [Click here for more details on expiring posts](https://publishpress.com/knowledge-base/ways-to-expire-posts/).
40
+
41
+ ## Display the Expiry Date in Your Content
42
+
43
+ Post Expirator allows you to place automatically show the expiry date inside your articles. The expiry will be added at the bottom of your post.
44
+
45
+ [Click here to see the Footer Display options](https://publishpress.com/knowledge-base/footer-display/).
46
+
47
+ You can use shortcodes to show the expiration date inside your posts. You can customize the shortcode output with several formatting options.
48
+
49
+ [Click here to see the shortcode options](https://publishpress.com/knowledge-base/shortcodes-to-show-expiration-date/).
50
+
51
+ ## Expiry Defaults for Post Types
52
+
53
+ Post Expirator can support any post type in WordPress. Go to Settings > Post Expirator > Defaults and you can choose default expiry options for each post type.
54
+
55
+ [Click here to see the default options](https://publishpress.com/knowledge-base/defaults-for-post-types/).
56
+
57
+ ## Post Expirator Email Notifications
58
+
59
+ The Post Expirator plugin can send you email notifications when your content is unpublished. You can control the emails by going to Settings > Post Expirator > General Settings.
60
+
61
+ [Click here to see the notification options](https://publishpress.com/knowledge-base/email-notifications/).
62
+
63
+ ## Details on How Post Expiry Works
64
+
65
+ For each expiration event, a custom cron job is scheduled. This can help reduce server overhead for busy sites. This plugin REQUIRES that WP-CRON is setup and functional on your webhost. Some hosts do not support this, so please check and confirm if you run into issues using the plugin.
66
+
67
+ [Click here to see the technical details for this plugin](https://publishpress.com/knowledge-base/scheduling-cron-jobs/).
68
+
69
+ = Join PublishPress and get the Pro plugins =
70
+
71
+ The Pro versions of the PublishPress plugins are well worth your investment. The Pro versions have extra features and faster support. [Click here to join PublishPress](https://publishpress.com/pricing/).
72
+
73
+ Join PublishPress and you'll get access to these Pro plugins:
74
+
75
+ * [PublishPress Authors Pro](https://publishpress.com/authors) allows you to add multiple authors and guest authors to WordPress posts.
76
+ * [PublishPress Blocks Pro](https://publishpress.com/blocks) has everything you need to build professional websites with the WordPress block editor.
77
+ * [PublishPress Capabilities Pro](https://publishpress.com/capabilities) is the plugin to manage your WordPress user roles, permissions, and capabilities.
78
+ * [PublishPress Checklists Pro](https://publishpress.com/checklists) enables you to define tasks that must be completed before content is published.
79
+ * [PublishPress Permissions Pro](https://publishpress.com/permissions) is the plugin for advanced WordPress permissions.
80
+ * [PublishPress Pro](https://publishpress.com/publishpress) is the plugin for managing and scheduling WordPress content.
81
+ * [PublishPress Revisions Pro](https://publishpress.com/revisions) allows you to update your published pages with teamwork and precision.
82
+ * [PublishPress Series Pro](https://publishpress.com/series) enables you to group content together into a series
83
+
84
+ Together, these plugins are a suite of powerful publishing tools for WordPress. If you need to create a professional workflow in WordPress, with moderation, revisions, permissions and more... then you should try PublishPress.
85
+
86
+
87
+ == Installation ==
88
+
89
+ This section describes how to install the plugin and get it working.
90
+
91
+ 1. Unzip the plugin contents to the `/wp-content/plugins/post-expirator/` directory
92
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
93
+
94
+ == Screenshots ==
95
+
96
+ 1. Adding expiration date to a post
97
+ 2. Viewing the expiration dates on the post overview screen
98
+ 3. Settings screen
99
+
100
+ == Screenshots ==
101
+
102
+ 1. Adding expiration date to a post
103
+ 2. Viewing the expiration dates on the post overview screen
104
+ 3. Settings screen
105
+
106
+ == Changelog ==
107
+
108
+ = [2.4.4] - 22 Jul 2021 =
109
+
110
+ * Fixed: Fix conflict with the plugin WCFM, #60;
111
+ * Fixed: Fix the Category: Remove option, #61;
112
+
113
+ = [2.4.3] - 07 Jul 2021 =
114
+
115
+ * Added: Expose wrappers for legacy functions, #40;
116
+ * Added: Support for quotes in Default expiry, #43;
117
+ * Fixed: Default expiry duration is broken for future years, #39;
118
+ * Fixed: Translation bug, #5;
119
+ * Fixed: Post expiring one year early, #24;
120
+ * Changed: Bulk and Quick Edit boxes default to current date/year, #46;
121
+
122
+ = [2.4.2] =
123
+
124
+ * Fixed: Bulk edit does not change scheduled event bug, #29;
125
+ * Fixed: Date not being translated in shortcode, #16;
126
+ * Fixed: Bulk Edit doesn't work, #4;
127
+
128
+ = [2.4.1] =
129
+
130
+ * Fix: Updated deprecated .live jQuery reference.
131
+
132
+ = [2.4.0] =
133
+
134
+ * Fix: Fixed PHP Error with PHP 7.
135
+
136
+ = [2.3.1] =
137
+
138
+ * Fix: Fixed PHP Error that snuck in on some installations.
139
+
140
+ = [2.3.0] =
141
+
142
+ * New: Email notification upon post expiration. A global email can be set, blog admins can be selected and/or specific users based on post type can be notified.
143
+ * New: Expiration Option Added - Stick/Unstick post is now available.
144
+ * New: Expiration Option Added - Trash post is now available.
145
+ * New: Added custom actions that can be hooked into when expiration events are scheduled / unscheduled.
146
+ * Fix: Minor HTML Code Issues
147
+
148
+ = [2.2.2] =
149
+
150
+ * Fix: Quick Edit did not retain the expire type setting, and defaulted back to "Draft". This has been resolved.
151
+
152
+ = [2.2.1] =
153
+
154
+ * Fix: Fixed issue with bulk edit not correctly updating the expiration date.
155
+
156
+ = [2.2.0] =
157
+
158
+ * New: Quick Edit - setting expiration date and toggling post expiration status can now be done via quick edit.
159
+ * New: Bulk Edit - changing expiration date on posts that already are configured can now be done via bulk edit.
160
+ * New: Added ability to order by Expiration Date in dashboard.
161
+ * New: Adjusted formatting on defaults page. Multiple post types are now displayed cleaner.
162
+ * Fix: Minor Code Cleanup
163
+
164
+ = [2.1.4] =
165
+
166
+ * Fix: PHP Strict errors with 5.4+
167
+ * Fix: Removed temporary timezone conversion - now using core functions again
168
+
169
+ = [2.1.3] =
170
+
171
+ * Fix: Default category selection now saves correctly on default settings screen
172
+
173
+ = [2.1.2] =
174
+
175
+ * Security: Added form nonce for protect against possible CSRF
176
+ * Security: Fixed XSS issue on settings pages
177
+ * New: Added check to show if WP_CRON is enabled on diagnostics page
178
+ * Fix: Minor Code Cleanup
179
+
180
+ = [2.1.1] =
181
+
182
+ * New: Added the option to disable post expirator for certain post types if desired
183
+ * Fix: Fixed php warning issue cause when post type defaults are not set
184
+
185
+ = [2.1.0] =
186
+
187
+ * New: Added support for hierarchical custom taxonomy
188
+ * New: Enhanced custom post type support
189
+ * Fix: Updated debug function to be friendly for scripted calls
190
+ * Fix: Change to only show public custom post types on defaults screen
191
+ * Fix: Removed category expiration options for 'pages', which is currently unsupported
192
+ * Fix: Some date calls were getting "double" converted for the timezone pending how other plugins handled date - this issue should now be resolved
193
+
194
+ = [2.0.1] =
195
+
196
+ * Removes old scheduled hook - this was not done completely in the 2.0.0 upgrade
197
+ * Old option cleanup
198
+
199
+ = [2.0.0] =
200
+
201
+ This is a major update of the core functions of this plugin. All current plugins and settings should be upgraded to the new formats and work as expected. Any posts currently schedule to be expirated in the future will be automatically upgraded to the new format.
202
+
203
+ * New: Improved debug calls and logging
204
+ * New: Added the ability to expire to a "private" post
205
+ * New: Added the ability to expire by adding or removing categories. The old way of doing things is now known as replacing categories
206
+ * New: Revamped the expiration process - the plugin no longer runs on an minute, hourly, or other schedule. Each expiration event schedules a unique event to run, conserving system resources and making things more efficient
207
+ * New: The type of expiration event can be selected for each post, directly from the post editing screen
208
+ * New: Ability to set defaults for each post type (including custom posts)
209
+ * New: Renamed expiration-date meta value to _expiration-date
210
+ * New: Revamped timezone handling to be more correct with WordPress standards and fix conflicts with other plugins
211
+ * New: 'Expires' column on post display table now uses the default date/time formats set for the blog
212
+ * Fix: Removed kses filter calls when then schedule task runs that was causing code entered as unfiltered_html to be removed
213
+ * Fix: Updated some calls of date to now use date_i18n
214
+ * Fix: Most (if not all) php error/warnings should be addressed
215
+ * Fix: Updated wpdb calls in the debug class to use wpdb_prepare correctly
216
+ * Fix: Changed menu capability option from "edit_plugin" to "manage_options"
217
+
218
+ = [1.6.2] =
219
+
220
+ * Added the ability to configure the post expirator to be enabled by default for all new posts
221
+ * Changed some instances of mktime to time
222
+ * Fixed missing global call for MS installs
223
+
224
+ = [1.6.1] =
225
+
226
+ * Tweaked error messages, removed clicks for reset cron event
227
+ * Switched cron schedule functions to use "current_time('timestamp')"
228
+ * Cleaned up default values code
229
+ * Added option to allow user to select any cron schedule (minute, hourly, twicedaily, daily) - including other defined schedules
230
+ * Added option to set default expiration duration - options are none, custom, or publish time
231
+ * Code cleanup - php notice
232
+
233
+ = [1.6] =
234
+
235
+ * Fixed invalid html
236
+ * Fixed i18n issues with dates
237
+ * Fixed problem when using "Network Activate" - reworked plugin activation process
238
+ * Replaced "Upgrade" tab with new "Diagnostics" tab
239
+ * Reworked expire logic to limit the number of sql queries needed
240
+ * Added debugging
241
+ * Various code cleanup
242
+
243
+ = [1.5.4] =
244
+
245
+ * Cleaned up deprecated function calls
246
+
247
+ = [1.5.3] =
248
+
249
+ * Fixed bug with sql expiration query (props to Robert & John)
250
+
251
+ = [1.5.2] =
252
+
253
+ * Fixed bug with shortcode that was displaying the expiration date in the incorrect timezone
254
+ * Fixed typo on settings page with incorrect shortcode name
255
+
256
+ = [1.5.1] =
257
+
258
+ * Fixed bug that was not allow custom post types to work
259
+
260
+ = [1.5] =
261
+
262
+ * Moved Expirator Box to Sidebar and cleaned up meta code
263
+ * Added ability to expire post to category
264
+
265
+ = [1.4.3] =
266
+
267
+ * Fixed issue with 3.0 multisite detection
268
+
269
+ = [1.4.2] =
270
+
271
+ * Added post expirator POT to /languages folder
272
+ * Fixed issue with plugin admin navigation
273
+ * Fixed timezone issue on plugin options screen
274
+
275
+ = [1.4.1] =
276
+
277
+ * Added support for custom post types (Thanks Thierry)
278
+ * Added i18n support (Thanks Thierry)
279
+ * Fixed issue where expiration date was not shown in the correct timezone in the footer
280
+ * Fixed issue where on some systems the expiration did not happen when scheduled
281
+
282
+ = [1.4] =
283
+
284
+ NOTE: After upgrading, you may need to reset the cron schedules. Following onscreen notice if prompted. Previously scheduled posts will not be updated, they will be deleted referncing the old timezone setting. If you wish to update them, you will need to manually update the expiration time.
285
+
286
+ * Fixed compatability issues with Wordpress - plugin was originally coded for WPMU - should now work on both
287
+ * Added ability to schedule post expiration by minute
288
+ * Fixed timezone - now uses the same timezone as configured by the blog
289
+
290
+ = [1.3.1] =
291
+
292
+ * Fixed sporadic issue of expired posts not being removed
293
+
294
+ = [1.3] =
295
+
296
+ * Expiration date is now retained across all post status changes
297
+ * Modified date/time format options for shortcode postexpirator tag
298
+ * Added the ability to add text automatically to the post footer if expiration date is set
299
+
300
+ = [1.2.1] =
301
+
302
+ * Fixed issue with display date format not being recognized after upgrade
303
+
304
+ = [1.2] =
305
+
306
+ * Changed wording from "Expiration Date" to "Post Expirator" and moved the configuration options to the "Settings" tab.
307
+ * Added shortcode tag [postexpirator] to display the post expiration date within the post
308
+ ** Added new setting for the default format
309
+ * Fixed bug where expiration date was removed when a post was auto saved
310
+
311
+ = [1.1] =
312
+
313
+ * Expired posts retain expiration date
314
+
315
+ = [1.0] =
316
+
317
+ * Initial Release
318
+
319
+ == Upgrade Notice ==
320
+
321
+ = 2.2.0 =
322
+ Quick Edit/Bulk Edit Added. Sortable Expiration Date Fields Added
323
+
324
+ = 2.1.4 =
325
+ Fixed PHP Strict errors with 5.4+
326
+ Removed temporary timezone conversion functions
327
+
328
+
329
+ = 2.1.3 =
330
+ Default category selection now saves correctly on default settings screen
331
+
332
+ = 2.1.2 =
333
+ Important Update - Security Fixes - See Changelog
334
+
335
+ = 2.0.1 =
336
+ Removes old scheduled hook - this was not done completely in the 2.0.0 upgrade
337
+
338
+ = 2.0.0 =
339
+ This is a major update of the core functions of this plugin. All current plugins and settings should be upgraded to the new formats and work as expected. Any posts currently schedule to be expirated in the future will be automatically upgraded to the new format.
340
+
341
+ = 1.6.1 =
342
+ Tweaked error messages, added option to allow user to select cron schedule and set default exiration duration
343
+
344
+ = 1.6 =
345
+ Fixed invalid html
346
+ Fixed i18n issues with dates
347
+ Fixed problem when using "Network Activate" - reworked plugin activation process
348
+ Replaced "Upgrade" tab with new "Diagnostics" tab
349
+ Reworked expire logic to limit the number of sql queries needed
350
+ Added debugging
351
+
352
+ = 1.5.4 =
353
+ Cleaned up deprecated function calls
354
+
355
+ = 1.5.3 =
356
+ Fixed bug with sql expiration query (props to Robert & John)
357
+
358
+ = 1.5.2 =
359
+ Fixed shortcode timezone issue