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

Version Description

  • 2019-02-09
Download this release

Release Info

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

Code changes from version 8.1.8 to 8.2.0

CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
 
 
 
 
 
2
  ### v8.1.8 - 2019-01-29
3
  **Changes:**
4
  * Fix: Minor bugs
1
 
2
+ ### v8.2.0 - 2019-02-09
3
+ **Changes:**
4
+ * New: The share post on publish feature is now in the lite version of the plugin. This should help with Facebook app review process (see revive.social docs)
5
+
6
  ### v8.1.8 - 2019-01-29
7
  **Changes:**
8
  * Fix: Minor bugs
includes/admin/class-rop-admin.php CHANGED
@@ -226,7 +226,7 @@ class Rop_Admin {
226
  'accounts' => $active_accounts,
227
  );
228
 
229
- if ( 'publish_now' === $page && $global_settings->license_type() > 0 ) {
230
  $array_nonce['publish_now'] = apply_filters( 'rop_publish_now_attributes', $array_nonce['publish_now'] );
231
  wp_register_script( $this->plugin_name . '-publish_now', ROP_LITE_URL . 'assets/js/build/publish_now' . ( ( ROP_DEBUG ) ? '' : '.min' ) . '.js', array(), ( ROP_DEBUG ) ? time() : $this->version, false );
232
  }
@@ -453,25 +453,111 @@ class Rop_Admin {
453
  * @access public
454
  */
455
  public function publish_now_upsell() {
456
-
457
  $page = $this->get_current_page();
458
  if ( empty( $page ) ) {
459
  return;
460
  }
461
-
462
  $global_settings = new Rop_Global_Settings;
463
  $settings = new Rop_Settings_Model;
464
 
465
- if ( $global_settings->license_type() <= 0 && $settings->get_instant_sharing() ) {
 
 
 
466
  echo '<div class="misc-pub-section " style="font-size: 13px;text-align: center;line-height: 1.7em;color: #888;"><span class="dashicons dashicons-lock"></span>' .
467
  __(
468
- 'Instant social sharing is available on the extended version for ',
469
  'tweet-old-post'
470
  ) . '<a href="' . ROP_PRO_URL . '" target="_blank">Revive Old Posts </a>
471
  </div>';
472
  }
473
  }
474
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  /**
476
  * The publish now Cron Job for the plugin.
477
  *
@@ -506,6 +592,32 @@ class Rop_Admin {
506
  }
507
  }
508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
509
  /**
510
  * The Cron Job for the plugin.
511
  *
226
  'accounts' => $active_accounts,
227
  );
228
 
229
+ if ( 'publish_now' === $page ) {
230
  $array_nonce['publish_now'] = apply_filters( 'rop_publish_now_attributes', $array_nonce['publish_now'] );
231
  wp_register_script( $this->plugin_name . '-publish_now', ROP_LITE_URL . 'assets/js/build/publish_now' . ( ( ROP_DEBUG ) ? '' : '.min' ) . '.js', array(), ( ROP_DEBUG ) ? time() : $this->version, false );
232
  }
453
  * @access public
454
  */
455
  public function publish_now_upsell() {
 
456
  $page = $this->get_current_page();
457
  if ( empty( $page ) ) {
458
  return;
459
  }
 
460
  $global_settings = new Rop_Global_Settings;
461
  $settings = new Rop_Settings_Model;
462
 
463
+ $services = new Rop_Services_Model();
464
+ $active_accounts = $services->get_active_accounts();
465
+
466
+ if ( $settings->get_instant_sharing() && count( $active_accounts ) >= 2 && ! defined( 'ROP_PRO_VERSION' ) ) {
467
  echo '<div class="misc-pub-section " style="font-size: 13px;text-align: center;line-height: 1.7em;color: #888;"><span class="dashicons dashicons-lock"></span>' .
468
  __(
469
+ 'Share to more accounts by upgrading to the extended version for ',
470
  'tweet-old-post'
471
  ) . '<a href="' . ROP_PRO_URL . '" target="_blank">Revive Old Posts </a>
472
  </div>';
473
  }
474
  }
475
 
476
+ /**
477
+ * Adds the publish now buttons.
478
+ */
479
+ public function add_publish_actions() {
480
+ global $post, $pagenow;
481
+
482
+ $settings_model = new Rop_Settings_Model();
483
+ $global_settings = new Rop_Global_Settings();
484
+
485
+ $post_types = wp_list_pluck( $settings_model->get_selected_post_types(), 'value' );
486
+ if ( in_array( $post->post_type, $post_types ) && in_array(
487
+ $pagenow,
488
+ array(
489
+ 'post.php',
490
+ 'post-new.php',
491
+ )
492
+ ) && ( ( method_exists( $settings_model, 'get_instant_sharing' ) && $settings_model->get_instant_sharing() ) || ! method_exists( $settings_model, 'get_instant_sharing' ) )
493
+ ) {
494
+ wp_nonce_field( 'rop_publish_now_nonce', 'rop_publish_now_nonce' );
495
+ include_once ROP_LITE_PATH . '/includes/admin/views/publish_now.php';
496
+ }
497
+ }
498
+
499
+ /**
500
+ * Publish now attributes to be provided to the javascript.
501
+ *
502
+ * @param array $default The default attributes.
503
+ */
504
+ public function publish_now_attributes( $default ) {
505
+ global $post;
506
+
507
+ if ( 'publish' === $post->post_status ) {
508
+ $default['action'] = 'yes' === get_post_meta( $post->ID, 'rop_publish_now', true );
509
+ }
510
+ $default['active'] = get_post_meta( $post->ID, 'rop_publish_now_accounts', true );
511
+
512
+ return $default;
513
+ }
514
+
515
+ /**
516
+ * Publish now, if enabled.
517
+ *
518
+ * @param int $post_id The post ID.
519
+ */
520
+ public function maybe_publish_now( $post_id ) {
521
+ if ( ! isset( $_POST['rop_publish_now_nonce'] ) || ! wp_verify_nonce( $_POST['rop_publish_now_nonce'], 'rop_publish_now_nonce' ) ) {
522
+ return;
523
+ }
524
+
525
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
526
+ return;
527
+ }
528
+
529
+ if ( ! current_user_can( 'edit_post', $post_id ) ) {
530
+ return;
531
+ }
532
+
533
+ if ( ! isset( $_POST['publish_now'] ) || empty( $_POST['publish_now'] ) ) {
534
+ delete_post_meta( $post_id, 'rop_publish_now' );
535
+ delete_post_meta( $post_id, 'rop_publish_now_accounts' );
536
+
537
+ return;
538
+ }
539
+
540
+ $enabled = $_POST['publish_now_accounts'];
541
+
542
+ $services = new Rop_Services_Model();
543
+ $active = array_keys( $services->get_active_accounts() );
544
+ // has something been added extra?
545
+ $extra = array_diff( $enabled, $active );
546
+ // reject the extra.
547
+ $enabled = array_diff( $enabled, $extra );
548
+
549
+ update_post_meta( $post_id, 'rop_publish_now', 'yes' );
550
+ update_post_meta( $post_id, 'rop_publish_now_accounts', $enabled );
551
+
552
+ if ( ! $enabled ) {
553
+ return;
554
+ }
555
+
556
+ $cron = new Rop_Cron_Helper();
557
+ $cron->manage_cron( array( 'action' => 'publish-now' ) );
558
+ }
559
+
560
+
561
  /**
562
  * The publish now Cron Job for the plugin.
563
  *
592
  }
593
  }
594
 
595
+ /**
596
+ * The publish now feature notice message
597
+ *
598
+ * @since 8.2.0
599
+ * @access public
600
+ */
601
+ public function publish_now_notice() {
602
+ $user_id = get_current_user_id();
603
+ if ( ! get_user_meta( $user_id, 'rop_publish_now_notice_dismissed' ) ) {
604
+ echo '<div class="notice notice-info"><p>' . sprintf( __( '%1$sRevive Old Posts Update:%2$s You can now share posts on publish to your social networks in the free version of %1$sRevive Old Posts%2$s! This can help with Facebook App reviews. %3$sLearn more here.%4$s', 'tweet-old-post' ), '<strong>', '</strong>', '<a href="https://docs.revive.social/article/926-how-to-go-through-the-facebook-review-process" target="_blank">', '</a>' ) . '</p><p><a href="?publish_now_notice_dismissed">' . __( 'Dismiss', 'tweet-old-post' ) . '</a></p></div>';
605
+ }
606
+ }
607
+
608
+ /**
609
+ * The publish now feature notice dismissal
610
+ *
611
+ * @since 8.2.0
612
+ * @access public
613
+ */
614
+ public function publish_now_notice_dismissed() {
615
+ $user_id = get_current_user_id();
616
+ if ( isset( $_GET['publish_now_notice_dismissed'] ) ) {
617
+ add_user_meta( $user_id, 'rop_publish_now_notice_dismissed', 'true', true );
618
+ }
619
+ }
620
+
621
  /**
622
  * The Cron Job for the plugin.
623
  *
includes/admin/views/publish_now.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ // publish now
3
+ ?>
4
+ <div id="rop_publish_now" class="misc-pub-section" >
5
+ <publish-now></publish-now>
6
+ </div>
includes/class-rop.php CHANGED
@@ -68,7 +68,7 @@ class Rop {
68
  public function __construct() {
69
 
70
  $this->plugin_name = 'rop';
71
- $this->version = '8.1.8';
72
 
73
  $this->load_dependencies();
74
  $this->set_locale();
@@ -136,7 +136,13 @@ class Rop {
136
  $this->loader->add_action( 'admin_print_footer_scripts', $tutorial_pointers, 'rop_enqueue_pointers' );
137
  $this->loader->add_action( 'admin_menu', $plugin_admin, 'menu_pages' );
138
  $this->loader->add_action( 'rop_cron_job', $plugin_admin, 'rop_cron_job' );
 
139
  $this->loader->add_action( 'rop_cron_job_publish_now', $plugin_admin, 'rop_cron_job_publish_now' );
 
 
 
 
 
140
  $this->loader->add_action( 'wp_loaded', $this, 'register_service_api_endpoints', 1 );
141
 
142
  $this->loader->add_action( 'wp_loaded', $this, 'upgrade', 2 );
@@ -153,7 +159,6 @@ class Rop {
153
  * Use PHP_INT_MAX to make sure the schedule is added. Some plugins add their schedule by clearing the previous values.
154
  */
155
  $this->loader->add_filter( 'cron_schedules', $rop_cron_helper, 'rop_cron_schedules', PHP_INT_MAX );
156
- $this->loader->add_action( 'post_submitbox_misc_actions', $plugin_admin, 'publish_now_upsell' );
157
  }
158
 
159
  /**
68
  public function __construct() {
69
 
70
  $this->plugin_name = 'rop';
71
+ $this->version = '8.2.0';
72
 
73
  $this->load_dependencies();
74
  $this->set_locale();
136
  $this->loader->add_action( 'admin_print_footer_scripts', $tutorial_pointers, 'rop_enqueue_pointers' );
137
  $this->loader->add_action( 'admin_menu', $plugin_admin, 'menu_pages' );
138
  $this->loader->add_action( 'rop_cron_job', $plugin_admin, 'rop_cron_job' );
139
+
140
  $this->loader->add_action( 'rop_cron_job_publish_now', $plugin_admin, 'rop_cron_job_publish_now' );
141
+ $this->loader->add_action( 'post_submitbox_misc_actions', $plugin_admin, 'add_publish_actions' );
142
+ $this->loader->add_action( 'post_submitbox_misc_actions', $plugin_admin, 'publish_now_upsell' );
143
+ $this->loader->add_action( 'save_post', $plugin_admin, 'maybe_publish_now' );
144
+ $this->loader->add_filter( 'rop_publish_now_attributes', $plugin_admin, 'publish_now_attributes' );
145
+
146
  $this->loader->add_action( 'wp_loaded', $this, 'register_service_api_endpoints', 1 );
147
 
148
  $this->loader->add_action( 'wp_loaded', $this, 'upgrade', 2 );
159
  * Use PHP_INT_MAX to make sure the schedule is added. Some plugins add their schedule by clearing the previous values.
160
  */
161
  $this->loader->add_filter( 'cron_schedules', $rop_cron_helper, 'rop_cron_schedules', PHP_INT_MAX );
 
162
  }
163
 
164
  /**
readme.md CHANGED
@@ -133,6 +133,11 @@ http://revive.social/plugins/revive-old-post
133
 
134
 
135
  ## Changelog ##
 
 
 
 
 
136
  ### 8.1.8 - 2019-01-29 ###
137
 
138
  * Fix: Minor bugs
133
 
134
 
135
  ## Changelog ##
136
+ ### 8.2.0 - 2019-02-09 ###
137
+
138
+ * New: The share post on publish feature is now in the lite version of the plugin. This should help with Facebook app review process (see revive.social docs)
139
+
140
+
141
  ### 8.1.8 - 2019-01-29 ###
142
 
143
  * Fix: Minor bugs
readme.txt CHANGED
@@ -133,6 +133,11 @@ http://revive.social/plugins/revive-old-post
133
 
134
 
135
  == Changelog ==
 
 
 
 
 
136
  = 8.1.8 - 2019-01-29 =
137
 
138
  * Fix: Minor bugs
133
 
134
 
135
  == Changelog ==
136
+ = 8.2.0 - 2019-02-09 =
137
+
138
+ * New: The share post on publish feature is now in the lite version of the plugin. This should help with Facebook app review process (see revive.social docs)
139
+
140
+
141
  = 8.1.8 - 2019-01-29 =
142
 
143
  * Fix: Minor bugs
themeisle-hash.json CHANGED
@@ -1 +1 @@
1
- {"class-rop-autoloader.php":"7bfbb1554230d0ace777adb2e42bebeb","index.php":"39ab8276fb0e4bd3fcab3270822c5977","tweet-old-post.php":"c7ca7abe68934e88b41a4cee3517b3ce","uninstall.php":"88c3ec2a2919988f1ed38891cb37b6f1"}
1
+ {"class-rop-autoloader.php":"7bfbb1554230d0ace777adb2e42bebeb","index.php":"39ab8276fb0e4bd3fcab3270822c5977","tweet-old-post.php":"89397ec33ad1370d111a79c70c2f93b4","uninstall.php":"c78d4f8a68cb3521a00b2209164f432f"}
tweet-old-post.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: Revive Old Posts
17
  * Plugin URI: https://revive.social/
18
  * 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="http://revive.social/support/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
19
- * Version: 8.1.8
20
  * Author: revive.social
21
  * Author URI: https://revive.social/
22
  * Requires at least: 3.5
@@ -98,7 +98,7 @@ function run_rop() {
98
  }
99
 
100
  define( 'ROP_PRO_URL', 'http://revive.social/plugins/revive-old-post/' );
101
- define( 'ROP_LITE_VERSION', '8.1.8' );
102
  define( 'ROP_LITE_BASE_FILE', __FILE__ );
103
  define( 'ROP_DEBUG', false );
104
  define( 'ROP_LITE_PATH', plugin_dir_path( __FILE__ ) );
16
  * Plugin Name: Revive Old Posts
17
  * Plugin URI: https://revive.social/
18
  * 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="http://revive.social/support/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
19
+ * Version: 8.2.0
20
  * Author: revive.social
21
  * Author URI: https://revive.social/
22
  * Requires at least: 3.5
98
  }
99
 
100
  define( 'ROP_PRO_URL', 'http://revive.social/plugins/revive-old-post/' );
101
+ define( 'ROP_LITE_VERSION', '8.2.0' );
102
  define( 'ROP_LITE_BASE_FILE', __FILE__ );
103
  define( 'ROP_DEBUG', false );
104
  define( 'ROP_LITE_PATH', plugin_dir_path( __FILE__ ) );
uninstall.php CHANGED
@@ -55,6 +55,8 @@ if ( isset( $housekeeping ) && $housekeeping ) {
55
  delete_option( $key );
56
  }
57
 
 
 
58
  global $wpdb;
59
  $post_meta = $wpdb->prefix . 'postmeta';
60
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", 'rop_custom_messages_group' ) );
55
  delete_option( $key );
56
  }
57
 
58
+ delete_metadata( 'user', 0, 'rop_publish_now_notice_dismissed', '', true );
59
+
60
  global $wpdb;
61
  $post_meta = $wpdb->prefix . 'postmeta';
62
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", 'rop_custom_messages_group' ) );
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit4864e8dd3a7d4044cc62547de7ab0751::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit8bea1964d84778fbd7ae3e9e79fbcabd
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire8bea1964d84778fbd7ae3e9e79fbcabd($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire8bea1964d84778fbd7ae3e9e79fbcabd($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit4864e8dd3a7d4044cc62547de7ab0751
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit4864e8dd3a7d4044cc62547de7ab0751', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit4864e8dd3a7d4044cc62547de7ab0751', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequire4864e8dd3a7d4044cc62547de7ab0751($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequire4864e8dd3a7d4044cc62547de7ab0751($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;