From dc035e1418e00b575442a47691cff25ed85d8f8e Mon Sep 17 00:00:00 2001
From: samba <samba@autistici.org>
Date: Sun, 19 May 2019 22:12:22 +0200
Subject: [PATCH] [auto] plugin: disable-comments 1.9.0

---
 .../disable-comments/disable-comments.php     | 52 +------------------
 .../includes/settings-page.php                | 26 ----------
 .../disable-comments/includes/tools-page.php  |  5 +-
 .../plugins/disable-comments/readme.txt       |  8 ++-
 4 files changed, 12 insertions(+), 79 deletions(-)

diff --git a/wp-content/plugins/disable-comments/disable-comments.php b/wp-content/plugins/disable-comments/disable-comments.php
index 54c90ccc8..bd4611ac2 100644
--- a/wp-content/plugins/disable-comments/disable-comments.php
+++ b/wp-content/plugins/disable-comments/disable-comments.php
@@ -3,7 +3,7 @@
 Plugin Name: Disable Comments
 Plugin URI: https://wordpress.org/plugins/disable-comments/
 Description: Allows administrators to globally disable comments on their site. Comments can be disabled according to post type.
-Version: 1.8.0
+Version: 1.9.0
 Author: Samir Shah
 Author URI: http://www.rayofsolaris.net/
 License: GPL2
@@ -76,7 +76,7 @@ class Disable_Comments {
 					unset( $this->options[$v] );
 			}
 
-			foreach( array( 'remove_everywhere', 'permanent', 'extra_post_types' ) as $v ) {
+			foreach( array( 'remove_everywhere', 'extra_post_types' ) as $v ) {
 				if( !isset( $this->options[$v] ) ) {
 					$this->options[$v] = false;
 				}
@@ -181,12 +181,6 @@ class Disable_Comments {
 			add_action( 'admin_notices', array( $this, 'discussion_notice' ) );
 			add_filter( 'plugin_row_meta', array( $this, 'set_plugin_meta' ), 10, 2 );
 
-			// if only certain types are disabled, remember the original post status
-			if( !( $this->persistent_mode_allowed() && $this->options['permanent'] ) && !$this->options['remove_everywhere'] ) {
-				add_action( 'edit_form_advanced', array( $this, 'edit_form_inputs' ) );
-				add_action( 'edit_page_form', array( $this, 'edit_form_inputs' ) );
-			}
-
 			if( $this->options['remove_everywhere'] ) {
 				add_action( 'admin_menu', array( $this, 'filter_admin_menu' ), 9999 );	// do this as late as possible
 				add_action( 'admin_print_styles-index.php', array( $this, 'admin_css' ) );
@@ -273,14 +267,6 @@ class Disable_Comments {
 		}
 	}
 
-	public function edit_form_inputs() {
-		global $post;
-		// Without a dicussion meta box, comment_status will be set to closed on new/updated posts
-		if( in_array( $post->post_type, $this->modified_types ) ) {
-			echo '<input type="hidden" name="comment_status" value="' . $post->comment_status . '" /><input type="hidden" name="ping_status" value="' . $post->ping_status . '" />';
-		}
-	}
-
 	public function discussion_notice() {
 		$disabled_post_types = $this->get_disabled_post_types();
 		if( get_current_screen()->id == 'options-discussion' && !empty( $disabled_post_types ) ) {
@@ -416,40 +402,6 @@ class Disable_Comments {
 		include dirname( __FILE__ ) . '/includes/tools-page.php';
 	}
 
-	private function enter_permanent_mode() {
-		$types = $this->get_disabled_post_types();
-		if( empty( $types ) )
-			return;
-
-		global $wpdb;
-
-		if( $this->networkactive ) {
-			// NOTE: this can be slow on large networks!
-			$blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND deleted = '0'", $wpdb->siteid ) );
-
-			foreach ( $blogs as $id ) {
-				switch_to_blog( $id );
-				$this->close_comments_in_db( $types );
-				restore_current_blog();
-			}
-		}
-		else {
-			$this->close_comments_in_db( $types );
-		}
-	}
-
-	private function close_comments_in_db( $types ){
-		global $wpdb;
-		$bits = implode( ', ', array_pad( array(), count( $types ), '%s' ) );
-		$wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->posts` SET `comment_status` = 'closed', ping_status = 'closed' WHERE `post_type` IN ( $bits )", $types ) );
-	}
-
-	private function persistent_mode_allowed() {
-		if( defined( 'DISABLE_COMMENTS_ALLOW_PERSISTENT_MODE' ) && DISABLE_COMMENTS_ALLOW_PERSISTENT_MODE == false ) {
-			return false;
-		}
-	}
-
 	private function discussion_settings_allowed() {
 		if( defined( 'DISABLE_COMMENTS_ALLOW_DISCUSSION_SETTINGS' ) && DISABLE_COMMENTS_ALLOW_DISCUSSION_SETTINGS == true ) {
 			return true;
diff --git a/wp-content/plugins/disable-comments/includes/settings-page.php b/wp-content/plugins/disable-comments/includes/settings-page.php
index f1d1f1b52..5699a92c0 100644
--- a/wp-content/plugins/disable-comments/includes/settings-page.php
+++ b/wp-content/plugins/disable-comments/includes/settings-page.php
@@ -13,8 +13,6 @@ foreach( array_keys( $types ) as $type ) {
 		unset( $types[$type] );
 }
 
-$persistent_allowed = $this->persistent_mode_allowed();
-
 if ( isset( $_POST['submit'] ) ) {
 	check_admin_referer( 'disable-comments-admin' );
 	$this->options['remove_everywhere'] = ( $_POST['mode'] == 'remove_everywhere' );
@@ -26,12 +24,7 @@ if ( isset( $_POST['submit'] ) ) {
 
 	$disabled_post_types = array_intersect( $disabled_post_types, array_keys( $types ) );
 
-	// entering permanent mode, or post types have changed
-	if( $persistent_allowed && !empty( $_POST['permanent'] ) && ( !$this->options['permanent'] || $disabled_post_types != $this->options['disabled_post_types'] ) )
-		$this->enter_permanent_mode();
-
 	$this->options['disabled_post_types'] = $disabled_post_types;
-	$this->options['permanent'] = $persistent_allowed && isset( $_POST['permanent'] );
 
 	// Extra custom post types
 	if( $this->networkactive && !empty( $_POST['extra_post_types'] ) ) {
@@ -71,20 +64,6 @@ if( WP_CACHE )
 </li>
 </ul>
 
-<?php if( $persistent_allowed && $this->options['permanent'] ): ?>
-<h2><?php _e( 'Other options', 'disable-comments') ?></h2>
-<ul>
-	<li>
-	<?php
-	echo '<label for="permanent"><input type="checkbox" name="permanent" id="permanent" '. checked( $this->options['permanent'], true, false ) . '> <strong>' . __( 'Use persistent mode', 'disable-comments') . '</strong></label>';
-	echo '<p class="indent">' . sprintf( __( '%s: <strong>This will make persistent changes to your database &mdash; comments will remain closed even if you later disable the plugin!</strong> You should not use it if you only want to disable comments temporarily. Please <a href="%s" target="_blank">read the FAQ</a> before selecting this option.', 'disable-comments'), '<strong style="color: #900">' . __('Warning', 'disable-comments') . '</strong>', 'https://wordpress.org/plugins/disable-comments/faq/' ) . '</p>';
-	if( $this->networkactive )
-		echo '<p class="indent">' . sprintf( __( '%s: Entering persistent mode on large multi-site networks requires a large number of database queries and can take a while. Use with caution!', 'disable-comments'), '<strong style="color: #900">' . __('Warning', 'disable-comments') . '</strong>' ) . '</p>';
-	?>
-	</li>
-</ul>
-<?php endif; ?>
-
 <?php wp_nonce_field( 'disable-comments-admin' ); ?>
 <p class="submit"><input class="button-primary" type="submit" name="submit" value="<?php _e( 'Save Changes', 'disable-comments') ?>"></p>
 </form>
@@ -105,10 +84,5 @@ jQuery(document).ready(function($){
 	});
 
 	disable_comments_uihelper();
-
-	$("#permanent").change( function() {
-		if( $(this).is(":checked") && ! confirm(<?php echo json_encode( sprintf( __( '%s: Selecting this option will make persistent changes to your database. Are you sure you want to enable it?', 'disable-comments'), __( 'Warning', 'disable-comments' ) ) );?>) )
-			$(this).attr("checked", false );
-	});
 });
 </script>
diff --git a/wp-content/plugins/disable-comments/includes/tools-page.php b/wp-content/plugins/disable-comments/includes/tools-page.php
index 8ae4f65cb..c1b7db2bf 100644
--- a/wp-content/plugins/disable-comments/includes/tools-page.php
+++ b/wp-content/plugins/disable-comments/includes/tools-page.php
@@ -59,7 +59,10 @@ if ( isset( $_POST['delete'] ) && isset( $_POST['delete_mode'] ) ) {
                 $wpdb->query( "DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'" );
                 $wpdb->query( "DELETE comments FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'" );
                 $wpdb->query( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '$delete_post_type'" );
-				echo "<p style='color:green'><strong>" . sprintf( __( 'All comments have been deleted for %ss.', 'disable-comments' ), $delete_post_type ) . "</strong></p>";
+
+                $post_type_object = get_post_type_object( $delete_post_type );
+                $post_type_label = $post_type_object ? $post_type_object->labels->name : $delete_post_type;
+				echo "<p style='color:green'><strong>" . sprintf( __( 'All comments have been deleted for %s.', 'disable-comments' ), $post_type_label ) . "</strong></p>";
 			}
 
             $wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
diff --git a/wp-content/plugins/disable-comments/readme.txt b/wp-content/plugins/disable-comments/readme.txt
index 436b7ef4f..a5065b872 100644
--- a/wp-content/plugins/disable-comments/readme.txt
+++ b/wp-content/plugins/disable-comments/readme.txt
@@ -2,8 +2,8 @@
 Contributors: solarissmoke
 Donate link: http://www.rayofsolaris.net/donate/
 Tags: comments, disable, global
-Requires at least: 4.7
-Tested up to: 5.0
+Requires at least: 5.0
+Tested up to: 5.1
 Stable tag: trunk
 
 Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. Multisite friendly. Provides tool to delete all comments or according to post type.
@@ -74,6 +74,10 @@ These definitions can be made either in your main `wp-config.php` or in your the
 
 == Changelog ==
 
+= 1.9.0 =
+* Fix compatibility with WordPress 5.0 and above.
+* Remove deprecated "persistent mode" feature.
+
 = 1.8.0 =
 * Added `DISABLE_COMMENTS_ALLOW_DISCUSSION_SETTINGS` configuration.
 
-- 
GitLab