Revive Old Posts – Auto Post to Social Media - Version 7.2

Version Description

Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 Revive Old Posts – Auto Post to Social Media
Version 7.2
Comparing to
See all releases

Code changes from version 7.1 to 7.2

Files changed (3) hide show
  1. inc/core.php +132 -38
  2. readme.txt +21 -16
  3. tweet-old-post.php +2 -2
inc/core.php CHANGED
@@ -4,6 +4,11 @@ require_once(ROPPLUGINPATH."/inc/config.php");
4
  // RopTwitterOAuth class
5
  require_once(ROPPLUGINPATH."/inc/oAuth/twitteroauth.php");
6
 
 
 
 
 
 
7
  if (!class_exists('CWP_TOP_Core')) {
8
  class CWP_TOP_Core {
9
 
@@ -162,7 +167,59 @@ if (!class_exists('CWP_TOP_Core')) {
162
  return $returnedPost;
163
  }
164
 
165
- public function getTweetsFromDB()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  {
167
  global $wpdb;
168
  // Generate the Tweet Post Date Range
@@ -177,6 +234,9 @@ if (!class_exists('CWP_TOP_Core')) {
177
  // Get post categories set.
178
  // $postQueryCategories = $this->getTweetCategories();
179
  $excludedIds = "";
 
 
 
180
  $tweetedPosts = get_option("top_opt_already_tweeted_posts");
181
  if(!is_array($tweetedPosts)) $tweetedPosts = array();
182
 
@@ -184,6 +244,7 @@ if (!class_exists('CWP_TOP_Core')) {
184
 
185
  $tweetedPosts = array();
186
  }
 
187
  $postQueryExcludedPosts = $this->getExcludedPosts();
188
  $postQueryExcludedPosts = explode (',',$postQueryExcludedPosts);
189
  $excluded = array_merge($tweetedPosts,$postQueryExcludedPosts);
@@ -196,9 +257,16 @@ if (!class_exists('CWP_TOP_Core')) {
196
  SELECT {$wpdb->prefix}posts.ID
197
  FROM {$wpdb->prefix}posts
198
  LEFT JOIN {$wpdb->prefix}term_relationships ON ({$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id)
199
- WHERE 1=1
200
- AND ((post_date >= '{$dateQuery['before']}'
201
- AND post_date <= '{$dateQuery['after']}')) ";
 
 
 
 
 
 
 
202
 
203
  // If there are no categories set, select the post from all.
204
  //if(!empty($postQueryCategories)) {
@@ -210,7 +278,7 @@ if (!class_exists('CWP_TOP_Core')) {
210
  SELECT object_id
211
  FROM {$wpdb->prefix}term_relationships
212
  INNER JOIN {$wpdb->prefix}term_taxonomy ON ( {$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id )
213
- WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}))) ";
214
  }
215
 
216
  if(!empty($excluded)) {
@@ -218,17 +286,38 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
218
  $query .= "AND ( {$wpdb->prefix}posts.ID NOT IN ({$excluded})) ";
219
  }
220
  if(!empty($somePostType)){
221
-
222
  $somePostType = explode(',',$somePostType);
223
  $somePostType = "'".implode("','",$somePostType)."'";
224
  }
225
- $query .= "AND {$wpdb->prefix}posts.post_type IN ({$somePostType})
226
- AND ({$wpdb->prefix}posts.post_status = 'publish')
 
 
 
 
 
 
 
 
 
 
 
227
  GROUP BY {$wpdb->prefix}posts.ID
228
  order by RAND() limit 50
229
  ";
230
 
231
- $returnedPost = $wpdb->get_results( $query);
 
 
 
 
 
 
 
 
 
 
 
232
 
233
  if(count($returnedPost) > $tweetCount) {
234
  $rand_keys = array_rand( $returnedPost, $tweetCount );
@@ -317,17 +406,14 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
317
 
318
  $returnedPost = $this->getTweetsFromDBbyID($byID);
319
  }else{
320
- $returnedPost = $this->getTweetsFromDB();
321
  if(!is_array($returnedPost)) return false;
322
  }
323
  if (count($returnedPost) == 0 ) {
324
  self::addNotice(__('There is no suitable post to tweet make sure you excluded correct categories and selected the right dates.','tweet-old-post'),'error');
325
  }
326
- $done = get_option("top_opt_already_tweeted_posts");
327
- if(!is_array($done) || get_option('top_opt_tweet_multiple_times')=="on" ) $done = array();
328
  $users = $this->getUsers();
329
  foreach($returnedPost as $post){
330
- if(in_array($post->ID,$done)) continue;
331
  $oknet = false;
332
  foreach($users as $u){
333
  if($u['service'] == $ntk){
@@ -338,11 +424,7 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
338
  if(!$oknet) return false;
339
  $finalTweet = $this->generateTweetFromPost($post,$ntk);
340
  $this->tweetPost( $finalTweet, $ntk, $post );
341
- $tweetedPosts = get_option("top_opt_already_tweeted_posts");
342
- if ($tweetedPosts=="") $tweetedPosts = array();
343
- array_push($tweetedPosts, $post->ID);
344
- update_option("top_opt_already_tweeted_posts", $tweetedPosts);
345
- $done[] = $post->ID;
346
  }
347
  if ($byID===false) {
348
  $this->scheduleTweet($ntk);
@@ -717,6 +799,13 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
717
 
718
  public function tweetPost($finalTweet,$network = 'twitter',$post)
719
  {
 
 
 
 
 
 
 
720
  $users = $this->getUsers();
721
  foreach ($users as $user) {
722
  if($network == $user['service'] ){
@@ -1256,14 +1345,12 @@ endif;
1256
  }*/
1257
 
1258
  // Generates the tweet date range based on the user input.
 
1259
  public function getTweetPostDateRange()
1260
  {
1261
- if (get_option('top_opt_max_age_limit')==0 )
1262
- $limit = 9999;
1263
- else
1264
- $limit = intval(get_option('top_opt_max_age_limit'));
1265
 
1266
- if( !is_int($limit) ) {
1267
  self::addNotice(__("Incorect value for Maximum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
1268
  return false;
1269
  }
@@ -1275,26 +1362,23 @@ endif;
1275
  return false;
1276
 
1277
  }
1278
- if($limit == 0 ){
1279
- $limit = 10*365;
1280
- }
1281
- if($limit < $min){
1282
  self::addNotice(__("Maximum age of post to be eligible for sharing must be greater than Minimum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
1283
  return false;
1284
 
1285
  }
1286
 
 
 
 
 
 
1287
 
 
 
 
 
1288
 
1289
- $minLimit = time() - $min*24*60*60;
1290
- $maxLimit = time() - $limit*24*60*60;
1291
-
1292
- $minAgeLimit = date("Y-m-d H:i:s", $minLimit);
1293
- $maxAgeLimit = date("Y-m-d H:i:s", $maxLimit);
1294
- $dateQuery = array();
1295
- $dateQuery['before'] = $maxAgeLimit;
1296
- $dateQuery['after'] = $minAgeLimit;
1297
- $dateQuery['inclusive'] = true;
1298
  return $dateQuery;
1299
 
1300
 
@@ -2111,7 +2195,14 @@ endif;
2111
  'top_opt_tweet-multiple-times' => 'off',
2112
  'cwp_top_logged_in_users' => '',
2113
  'top_fb_token' =>'',
2114
- 'top_opt_post_formats' =>''
 
 
 
 
 
 
 
2115
  );
2116
 
2117
  foreach ($defaultOptions as $option => $defaultValue) {
@@ -2599,7 +2690,10 @@ endif;
2599
 
2600
  add_filter("rop_users_filter",array($this,"rop_users_filter_free"),1,1);
2601
 
2602
-
 
 
 
2603
 
2604
  if(isset($_GET['debug']) ) {
2605
  //$this->getNextTweetTime('twitter');
4
  // RopTwitterOAuth class
5
  require_once(ROPPLUGINPATH."/inc/oAuth/twitteroauth.php");
6
 
7
+ // Added by Ash/Upwork
8
+ define("ROP_IS_TEST", false);
9
+ // Added by Ash/Upwork
10
+
11
+
12
  if (!class_exists('CWP_TOP_Core')) {
13
  class CWP_TOP_Core {
14
 
167
  return $returnedPost;
168
  }
169
 
170
+ // Added by Ash/Upwork
171
+ /**
172
+ * This will get the postIDs for the particular network
173
+ */
174
+ private function getAlreadyTweetedPosts($ntk){
175
+ $array = array();
176
+ if(!$ntk) return $array;
177
+
178
+ $opt = get_option("top_opt_posts_buffer_" . $ntk, array());
179
+ if(!$opt || !is_array($opt)) return $array;
180
+
181
+ return $opt;
182
+ }
183
+
184
+ /**
185
+ * This will add the postID to the network buffer to note which post was posted on which network
186
+ */
187
+ private function setAlreadyTweetedPosts($ntk, $postID){
188
+ if(!$ntk || !$postID) return;
189
+ $opt = get_option("top_opt_posts_buffer_" . $ntk, array());
190
+ if(!$opt || !is_array($opt)){
191
+ $opt = array();
192
+ }
193
+ $opt[] = $postID;
194
+
195
+
196
+ update_option("top_opt_posts_buffer_" . $ntk, $opt);
197
+ }
198
+
199
+ /**
200
+ * This will clear the network buffer
201
+ */
202
+ private function clearAlreadyTweetedPosts($ntk){
203
+ if(!$ntk) return;
204
+ delete_option("top_opt_posts_buffer_" . $ntk);
205
+ }
206
+
207
+ /**
208
+ * This is a test method that will be fired on admin_init. Only to be used for testing.
209
+ * In production, this function will just return harmlessly
210
+ */
211
+ public function doTestAction(){
212
+ if(!ROP_IS_TEST) return;
213
+
214
+ $networks = array("twitter", "facebook", "linkedin", "tumblr");
215
+ $ntk = $networks[array_rand($networks)];
216
+ for($x = 0; $x < rand(0,5); $x++) $this->setAlreadyTweetedPosts($ntk, rand(0,100));
217
+ echo "<pre>network=".$ntk.print_r($this->getAlreadyTweetedPosts($ntk),true). "</pre>";
218
+ }
219
+
220
+ // Added by Ash/Upwork
221
+
222
+ public function getTweetsFromDB($ntk=null, $clearNetworkBuffer=false)
223
  {
224
  global $wpdb;
225
  // Generate the Tweet Post Date Range
234
  // Get post categories set.
235
  // $postQueryCategories = $this->getTweetCategories();
236
  $excludedIds = "";
237
+ // Added by Ash/Upwork
238
+ $tweetedPosts = $this->getAlreadyTweetedPosts($ntk);
239
+ /*
240
  $tweetedPosts = get_option("top_opt_already_tweeted_posts");
241
  if(!is_array($tweetedPosts)) $tweetedPosts = array();
242
 
244
 
245
  $tweetedPosts = array();
246
  }
247
+ */
248
  $postQueryExcludedPosts = $this->getExcludedPosts();
249
  $postQueryExcludedPosts = explode (',',$postQueryExcludedPosts);
250
  $excluded = array_merge($tweetedPosts,$postQueryExcludedPosts);
257
  SELECT {$wpdb->prefix}posts.ID
258
  FROM {$wpdb->prefix}posts
259
  LEFT JOIN {$wpdb->prefix}term_relationships ON ({$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id)
260
+ WHERE 1=1 ";
261
+
262
+ // Added by Ash/Upwork
263
+ if(array_key_exists("before", $dateQuery)){
264
+ $query .= "AND post_date >= '{$dateQuery['before']}' ";
265
+ }
266
+ if(array_key_exists("after", $dateQuery)){
267
+ $query .= "AND post_date <= '{$dateQuery['after']}' ";
268
+ }
269
+ // Added by Ash/Upwork
270
 
271
  // If there are no categories set, select the post from all.
272
  //if(!empty($postQueryCategories)) {
278
  SELECT object_id
279
  FROM {$wpdb->prefix}term_relationships
280
  INNER JOIN {$wpdb->prefix}term_taxonomy ON ( {$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id )
281
+ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}))) ";
282
  }
283
 
284
  if(!empty($excluded)) {
286
  $query .= "AND ( {$wpdb->prefix}posts.ID NOT IN ({$excluded})) ";
287
  }
288
  if(!empty($somePostType)){
 
289
  $somePostType = explode(',',$somePostType);
290
  $somePostType = "'".implode("','",$somePostType)."'";
291
  }
292
+
293
+ // Added by Ash/Upwork
294
+ // Use a more efficient = condition than a costly IN condition if only one type is present
295
+ if(!empty($somePostType)){
296
+ if(strpos($somePostType, ",") !== FALSE){
297
+ $query .= "AND {$wpdb->prefix}posts.post_type IN ({$somePostType}) ";
298
+ }else{
299
+ $query .= "AND {$wpdb->prefix}posts.post_type = ({$somePostType}) ";
300
+ }
301
+ }
302
+ // Added by Ash/Upwork
303
+
304
+ $query .= "AND ({$wpdb->prefix}posts.post_status = 'publish')
305
  GROUP BY {$wpdb->prefix}posts.ID
306
  order by RAND() limit 50
307
  ";
308
 
309
+ $returnedPost = $wpdb->get_results( $query);
310
+
311
+ //self::addLog("rows " . count($returnedPost) . " from " . $query);
312
+
313
+ // Added by Ash/Upwork
314
+ // If the number of posts found is zero and a post can be shared multiple times, lets clear the buffer and fetch again
315
+ if($ntk && !$clearNetworkBuffer && count($returnedPost) == 0 && get_option('top_opt_tweet_multiple_times') == "on"){
316
+ //self::addLog("clearing for $ntk!!");
317
+ $this->clearAlreadyTweetedPosts($ntk);
318
+ return $this->getTweetsFromDB($ntk, true);
319
+ }
320
+ // Added by Ash/Upwork
321
 
322
  if(count($returnedPost) > $tweetCount) {
323
  $rand_keys = array_rand( $returnedPost, $tweetCount );
406
 
407
  $returnedPost = $this->getTweetsFromDBbyID($byID);
408
  }else{
409
+ $returnedPost = $this->getTweetsFromDB($ntk);
410
  if(!is_array($returnedPost)) return false;
411
  }
412
  if (count($returnedPost) == 0 ) {
413
  self::addNotice(__('There is no suitable post to tweet make sure you excluded correct categories and selected the right dates.','tweet-old-post'),'error');
414
  }
 
 
415
  $users = $this->getUsers();
416
  foreach($returnedPost as $post){
 
417
  $oknet = false;
418
  foreach($users as $u){
419
  if($u['service'] == $ntk){
424
  if(!$oknet) return false;
425
  $finalTweet = $this->generateTweetFromPost($post,$ntk);
426
  $this->tweetPost( $finalTweet, $ntk, $post );
427
+ $this->setAlreadyTweetedPosts($ntk, $post->ID);
 
 
 
 
428
  }
429
  if ($byID===false) {
430
  $this->scheduleTweet($ntk);
799
 
800
  public function tweetPost($finalTweet,$network = 'twitter',$post)
801
  {
802
+ // Added by Ash/Upwork
803
+ if(ROP_IS_TEST){
804
+ self::addLog("Not posting because ROP_IS_TEST is set");
805
+ return;
806
+ }
807
+ // Added by Ash/Upwork
808
+
809
  $users = $this->getUsers();
810
  foreach ($users as $user) {
811
  if($network == $user['service'] ){
1345
  }*/
1346
 
1347
  // Generates the tweet date range based on the user input.
1348
+ // Corrected by Ash/Upwork: added a few efficiencies
1349
  public function getTweetPostDateRange()
1350
  {
1351
+ $max = intval(get_option('top_opt_max_age_limit'));
 
 
 
1352
 
1353
+ if( !is_int($max) ) {
1354
  self::addNotice(__("Incorect value for Maximum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
1355
  return false;
1356
  }
1362
  return false;
1363
 
1364
  }
1365
+ if($max > 0 && $min > 0 && $max < $min){
 
 
 
1366
  self::addNotice(__("Maximum age of post to be eligible for sharing must be greater than Minimum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
1367
  return false;
1368
 
1369
  }
1370
 
1371
+ $dateQuery = array();
1372
+ if($max > 0){
1373
+ $maxLimit = time() - $max*24*60*60;
1374
+ $dateQuery['before'] = date("Y-m-d H:i:s", $maxLimit);
1375
+ }
1376
 
1377
+ if($min > 0){
1378
+ $minLimit = time() - $min*24*60*60;
1379
+ $dateQuery['after'] = date("Y-m-d H:i:s", $minLimit);
1380
+ }
1381
 
 
 
 
 
 
 
 
 
 
1382
  return $dateQuery;
1383
 
1384
 
2195
  'top_opt_tweet-multiple-times' => 'off',
2196
  'cwp_top_logged_in_users' => '',
2197
  'top_fb_token' =>'',
2198
+ 'top_opt_post_formats' =>'',
2199
+ // Added by Ash/Upwork
2200
+ 'top_opt_posts_buffer_twitter' => '',
2201
+ 'top_opt_posts_buffer_facebook' => '',
2202
+ 'top_opt_posts_buffer_linkedin' => '',
2203
+ 'top_opt_posts_buffer_tumblr' => '',
2204
+ 'top_opt_posts_buffer_xing' => '',
2205
+ // Added by Ash/Upwork
2206
  );
2207
 
2208
  foreach ($defaultOptions as $option => $defaultValue) {
2690
 
2691
  add_filter("rop_users_filter",array($this,"rop_users_filter_free"),1,1);
2692
 
2693
+ // Added by Ash/Upwork
2694
+ // test action, only to be used for testing
2695
+ if(ROP_IS_TEST) add_action("admin_init", array($this, "doTestAction"));
2696
+ // Added by Ash/Upwork
2697
 
2698
  if(isset($_GET['debug']) ) {
2699
  //$this->getNextTweetTime('twitter');
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,Madalin_Themeisle
3
  Tags: admin, ajax, plugin, twitter, facebook, linkedin, automatic, tweet, share, wordpress, marketing, sharing, Tweet old post, Tweets,evergreen, Promote old post by tweeting about them, Twitter, Auto Tweet, Hashtags, Twitter Hashtags, Tweet Posts, Tweet, Post Tweets, Wordpress Twitter Plugin, Twitter Plugin, Tweet Selected Posts, Twitter, Promote Posts, Tweet Random Post, Share Post, Promote Post, Post Tweets, Wordpress Twitter, Drive Traffic, Tweet Selected Posts
4
  Requires at least: 2.7
5
- Tested up to: 4.4.1
6
  Stable tag: trunk
7
 
8
 
@@ -16,6 +16,19 @@ This plugin helps you to keeps your old posts alive by sharing them and driving
16
 
17
  For updates follow https://twitter.com/themeisle If you have anything you can let us know <a href="https://themeisle.com/contact/?utm_source=readmetop&utm_medium=announce&utm_campaign=top">here</a>.
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  > ### Why to upgrade to PRO ?
20
 
21
  > Using the <a rel="friend" href="https://themeisle.com/plugins/tweet-old-post-pro/">PRO version</a> of the plugin you will unleash the most important functionality : images in tweets . Using those your RT/CTR will go crazy.
@@ -29,20 +42,7 @@ For updates follow https://twitter.com/themeisle If you have anything you can le
29
  > * Custom Schedule
30
  > * Post to Xing / Tumblr
31
 
32
- ThemeIsle is a Codeinwp product where we also offer a <a href="http://www.codeinwp.com" rel="friend" title="psd to wordpress">psd to wordpress service</a>, we blog about different topics like : news, <a href="http://www.codeinwp.com/blog/best-business-corporate-wordpress-themes/" rel="friend"> business themes </a> or <a href="http://justfreethemes.com/" rel="friend">free themes</a>
33
-
34
-
35
- **Revive Old Post provides following features**
36
-
37
- - Share new and old posts.
38
- - Choose the time between posts.
39
- - Choose the number of posts to share.
40
- - Use hashtags to focus on topics.
41
- - Include links back to your site.
42
- - Exclude categories
43
- - Exclude specific posts.
44
-
45
- If you want to see a live demo of the plugin you can check <a href="http://www.youtube.com/watch?v=YOnlWmyO3VU">http://www.youtube.com/watch?v=YOnlWmyO3VU</a>.
46
 
47
 
48
  = Translations =
@@ -119,6 +119,12 @@ https://themeisle.com/plugins/tweet-old-post-lite/
119
 
120
  == Changelog ==
121
 
 
 
 
 
 
 
122
  **New in v7.1**
123
 
124
  * Fixed inconsistency in the schedule. Now posting is more accurate.
@@ -126,7 +132,6 @@ https://themeisle.com/plugins/tweet-old-post-lite/
126
 
127
 
128
  **New in v7.0.8**
129
-
130
  * Added facebook tutorial for facebook share.
131
  * Fixed multisite issue for redirect url
132
  * Making translation ready for new wordpress.org system
2
  Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,Madalin_Themeisle
3
  Tags: admin, ajax, plugin, twitter, facebook, linkedin, automatic, tweet, share, wordpress, marketing, sharing, Tweet old post, Tweets,evergreen, Promote old post by tweeting about them, Twitter, Auto Tweet, Hashtags, Twitter Hashtags, Tweet Posts, Tweet, Post Tweets, Wordpress Twitter Plugin, Twitter Plugin, Tweet Selected Posts, Twitter, Promote Posts, Tweet Random Post, Share Post, Promote Post, Post Tweets, Wordpress Twitter, Drive Traffic, Tweet Selected Posts
4
  Requires at least: 2.7
5
+ Tested up to: 4.4.2
6
  Stable tag: trunk
7
 
8
 
16
 
17
  For updates follow https://twitter.com/themeisle If you have anything you can let us know <a href="https://themeisle.com/contact/?utm_source=readmetop&utm_medium=announce&utm_campaign=top">here</a>.
18
 
19
+ Revive Old Post is offered by ThemeIsle and CodeinWP where we blog about different topics like : news,<a href="http://www.codeinwp.com/blog/best-business-corporate-wordpress-themes/" rel="friend" > business themes </a> or <a href="http://justfreethemes.com/" rel="friend">free themes</a>
20
+
21
+ **Revive Old Post provides following features**
22
+
23
+ - Share new and old posts.
24
+ - Choose the time between posts.
25
+ - Choose the number of posts to share.
26
+ - Use hashtags to focus on topics.
27
+ - Include links back to your site.
28
+ - Exclude categories
29
+ - Exclude specific posts.
30
+
31
+
32
  > ### Why to upgrade to PRO ?
33
 
34
  > Using the <a rel="friend" href="https://themeisle.com/plugins/tweet-old-post-pro/">PRO version</a> of the plugin you will unleash the most important functionality : images in tweets . Using those your RT/CTR will go crazy.
42
  > * Custom Schedule
43
  > * Post to Xing / Tumblr
44
 
45
+ Some of you reported some scheduling issues, after investigation work looks like this is coming from some web hosts, make sure you check-out this post about <a rel="friend" href="http://www.codeinwp.com/blog/best-wordpress-shared-hosting-providers/">shared WordPress hosting</a>, which should help you pick a good one.
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
 
48
  = Translations =
119
 
120
  == Changelog ==
121
 
122
+ **New in v7.2**
123
+
124
+ * Fixed randomization algorithm, preventing sharing of same post twice until the end of cycle.
125
+ * Fixed date range selection when both values are 0
126
+
127
+
128
  **New in v7.1**
129
 
130
  * Fixed inconsistency in the schedule. Now posting is more accurate.
132
 
133
 
134
  **New in v7.0.8**
 
135
  * Added facebook tutorial for facebook share.
136
  * Fixed multisite issue for redirect url
137
  * Making translation ready for new wordpress.org system
tweet-old-post.php CHANGED
@@ -4,7 +4,7 @@
4
  # Plugin URI: https://themeisle.com/plugins/tweet-old-post-lite/
5
  # Description: Wordpress plugin that helps you to keeps your old posts alive by sharing them and driving more traffic to them from twitter/facebook or linkedin. It also helps you to promote your content. You can set time and no of posts to share to drive more traffic.For questions, comments, or feature requests, <a href="https://themeisle.com/contact/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
6
  # Author: ThemeIsle
7
- # Version: 7.1
8
  # Author URI: https://themeisle.com/
9
  # Text Domain: tweet-old-post
10
  # Domain Path: /languages
@@ -18,7 +18,7 @@ define("ROPJSFILE", plugins_url('js/master.js',__FILE__ ));
18
  define("ROPJSCOUNTDOWN", plugins_url('js/countdown.js',__FILE__ ));
19
  define("ROPPLUGINBASENAME", plugin_basename(__FILE__));
20
  define('ROP_TOP_FB_API_VERSION','v2.0');
21
- define('ROP_VERSION','7.1');
22
  // Require core.
23
  require_once(ROPPLUGINPATH."/inc/core.php");
24
  // Require core.
4
  # Plugin URI: https://themeisle.com/plugins/tweet-old-post-lite/
5
  # Description: Wordpress plugin that helps you to keeps your old posts alive by sharing them and driving more traffic to them from twitter/facebook or linkedin. It also helps you to promote your content. You can set time and no of posts to share to drive more traffic.For questions, comments, or feature requests, <a href="https://themeisle.com/contact/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
6
  # Author: ThemeIsle
7
+ # Version: 7.2
8
  # Author URI: https://themeisle.com/
9
  # Text Domain: tweet-old-post
10
  # Domain Path: /languages
18
  define("ROPJSCOUNTDOWN", plugins_url('js/countdown.js',__FILE__ ));
19
  define("ROPPLUGINBASENAME", plugin_basename(__FILE__));
20
  define('ROP_TOP_FB_API_VERSION','v2.0');
21
+ define('ROP_VERSION','7.2');
22
  // Require core.
23
  require_once(ROPPLUGINPATH."/inc/core.php");
24
  // Require core.