Version Description
Download this release
Release Info
| Developer | wpdevteam |
| Plugin | |
| Version | 2.3.0 |
| Comparing to | |
| See all releases | |
Code changes from version 2.2.4 to 2.3.0
- assets/js/disable-comments-settings-scripts.js +2 -2
- assets/js/pagination.min.js +44 -29
- disable-comments.php +18 -2
- languages/disable-comments.pot +30 -13
- readme.txt +7 -1
- views/partials/_delete.php +5 -0
assets/js/disable-comments-settings-scripts.js
CHANGED
|
@@ -216,7 +216,7 @@ jQuery(document).ready(function ($) {
|
|
| 216 |
"#delete__post__types .delete__checklist__item, #extradeletetypes"
|
| 217 |
);
|
| 218 |
var toggle_ct_bits = jQuery("#listofdeletecommenttypes");
|
| 219 |
-
if (jQuery("#delete_everywhere").is(":checked")) {
|
| 220 |
toggle_pt_bits
|
| 221 |
.css("opacity", ".3")
|
| 222 |
.find(":input")
|
|
@@ -249,7 +249,7 @@ jQuery(document).ready(function ($) {
|
|
| 249 |
}
|
| 250 |
|
| 251 |
jQuery(
|
| 252 |
-
"#delete_everywhere, #selected_delete_types, #selected_delete_comment_types"
|
| 253 |
).on('change', function () {
|
| 254 |
delete_comments_uihelper();
|
| 255 |
});
|
| 216 |
"#delete__post__types .delete__checklist__item, #extradeletetypes"
|
| 217 |
);
|
| 218 |
var toggle_ct_bits = jQuery("#listofdeletecommenttypes");
|
| 219 |
+
if (jQuery("#delete_everywhere, #delete_spam").is(":checked")) {
|
| 220 |
toggle_pt_bits
|
| 221 |
.css("opacity", ".3")
|
| 222 |
.find(":input")
|
| 249 |
}
|
| 250 |
|
| 251 |
jQuery(
|
| 252 |
+
"#delete_everywhere, #delete_spam, #selected_delete_types, #selected_delete_comment_types"
|
| 253 |
).on('change', function () {
|
| 254 |
delete_comments_uihelper();
|
| 255 |
});
|
assets/js/pagination.min.js
CHANGED
|
@@ -20,6 +20,21 @@
|
|
| 20 |
var pluginHookMethod = 'addHook';
|
| 21 |
|
| 22 |
var eventPrefix = '__pagination-';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
// Conflict, use backup
|
| 25 |
if ($.fn.pagination) {
|
|
@@ -236,15 +251,15 @@
|
|
| 236 |
var goButton = '<input type="button" class="J-paginationjs-go-button" value="' + goButtonText + '">';
|
| 237 |
var formattedString;
|
| 238 |
|
| 239 |
-
var formatNavigator =
|
| 240 |
-
var formatGoInput =
|
| 241 |
-
var formatGoButton =
|
| 242 |
|
| 243 |
-
var autoHidePrevious =
|
| 244 |
-
var autoHideNext =
|
| 245 |
|
| 246 |
-
var header =
|
| 247 |
-
var footer =
|
| 248 |
|
| 249 |
// Whether to display header
|
| 250 |
if (header) {
|
|
@@ -385,7 +400,7 @@
|
|
| 385 |
postData[alias.pageSize ? alias.pageSize : 'pageSize'] = pageSize;
|
| 386 |
postData[alias.pageNumber ? alias.pageNumber : 'pageNumber'] = pageNumber;
|
| 387 |
|
| 388 |
-
var ajaxParams =
|
| 389 |
var formatAjaxParams = {
|
| 390 |
type: 'get',
|
| 391 |
cache: false,
|
|
@@ -468,9 +483,9 @@
|
|
| 468 |
var self = this;
|
| 469 |
var model = self.model;
|
| 470 |
|
| 471 |
-
if (
|
| 472 |
customCallback(data, model);
|
| 473 |
-
} else if (
|
| 474 |
attributes.callback(data, model);
|
| 475 |
}
|
| 476 |
},
|
|
@@ -587,7 +602,7 @@
|
|
| 587 |
|
| 588 |
if (typeof locator === 'string') {
|
| 589 |
result = locator;
|
| 590 |
-
} else if (
|
| 591 |
result = locator();
|
| 592 |
} else {
|
| 593 |
throwError('"locator" is incorrect. (String | Function)');
|
|
@@ -629,7 +644,7 @@
|
|
| 629 |
callback(attributes.dataSource = self.filterDataByLocator(dataSource));
|
| 630 |
} else if (Helpers.isArray(dataSource)) {
|
| 631 |
callback(attributes.dataSource = dataSource);
|
| 632 |
-
} else if (
|
| 633 |
attributes.dataSource(function(data) {
|
| 634 |
if (!Helpers.isArray(data)) {
|
| 635 |
throwError('The parameter of "done" Function should be an Array.');
|
|
@@ -653,7 +668,7 @@
|
|
| 653 |
var args = Array.prototype.slice.apply(arguments);
|
| 654 |
args.shift();
|
| 655 |
|
| 656 |
-
if (attributes[hook] &&
|
| 657 |
if (attributes[hook].apply(global, args) === false) {
|
| 658 |
result = false;
|
| 659 |
}
|
|
@@ -676,11 +691,11 @@
|
|
| 676 |
|
| 677 |
// Go to specified page number
|
| 678 |
container.on(eventPrefix + 'go', function(event, pageNumber, done) {
|
| 679 |
-
pageNumber = parseInt(
|
| 680 |
|
| 681 |
if (!pageNumber) return;
|
| 682 |
|
| 683 |
-
if (
|
| 684 |
throwError('"pageNumber" is incorrect. (Number)');
|
| 685 |
}
|
| 686 |
|
|
@@ -688,9 +703,9 @@
|
|
| 688 |
});
|
| 689 |
|
| 690 |
// Page number button click
|
| 691 |
-
el.
|
| 692 |
var current = $(event.currentTarget);
|
| 693 |
-
var pageNumber =
|
| 694 |
|
| 695 |
if (!pageNumber || current.hasClass(attributes.disableClassName) || current.hasClass(attributes.activeClassName)) return;
|
| 696 |
|
|
@@ -706,9 +721,9 @@
|
|
| 706 |
});
|
| 707 |
|
| 708 |
// Previous button click
|
| 709 |
-
el.
|
| 710 |
var current = $(event.currentTarget);
|
| 711 |
-
var pageNumber =
|
| 712 |
|
| 713 |
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
|
| 714 |
|
|
@@ -724,9 +739,9 @@
|
|
| 724 |
});
|
| 725 |
|
| 726 |
// Next button click
|
| 727 |
-
el.
|
| 728 |
var current = $(event.currentTarget);
|
| 729 |
-
var pageNumber =
|
| 730 |
|
| 731 |
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
|
| 732 |
|
|
@@ -742,7 +757,7 @@
|
|
| 742 |
});
|
| 743 |
|
| 744 |
// Go button click
|
| 745 |
-
el.
|
| 746 |
var pageNumber = $('.J-paginationjs-go-pagenumber', el).val();
|
| 747 |
|
| 748 |
// Before Go button clicked
|
|
@@ -755,7 +770,7 @@
|
|
| 755 |
});
|
| 756 |
|
| 757 |
// go input enter
|
| 758 |
-
el.
|
| 759 |
if (event.which === 13) {
|
| 760 |
var pageNumber = $(event.currentTarget).val();
|
| 761 |
|
|
@@ -828,7 +843,7 @@
|
|
| 828 |
// Pagination has been initialized
|
| 829 |
if (container.data('pagination') && container.data('pagination').initialized === true) {
|
| 830 |
// Handle events
|
| 831 |
-
if (
|
| 832 |
// eg: container.pagination(5)
|
| 833 |
container.trigger.call(this, eventPrefix + 'go', options, arguments[1]);
|
| 834 |
return this;
|
|
@@ -1000,7 +1015,7 @@
|
|
| 1000 |
throwError('Missing argument.');
|
| 1001 |
}
|
| 1002 |
|
| 1003 |
-
if (
|
| 1004 |
throwError('callback must be a function.');
|
| 1005 |
}
|
| 1006 |
|
|
@@ -1063,23 +1078,23 @@
|
|
| 1063 |
if (args.totalNumberLocator === undefined) {
|
| 1064 |
if (args.totalNumber === undefined) {
|
| 1065 |
throwError('"totalNumber" is required.');
|
| 1066 |
-
} else if (
|
| 1067 |
throwError('"totalNumber" is incorrect. (Number)');
|
| 1068 |
}
|
| 1069 |
} else {
|
| 1070 |
-
if (
|
| 1071 |
throwError('"totalNumberLocator" should be a Function.');
|
| 1072 |
}
|
| 1073 |
}
|
| 1074 |
} else if (Helpers.isObject(args.dataSource)) {
|
| 1075 |
if (typeof args.locator === 'undefined') {
|
| 1076 |
throwError('"dataSource" is an Object, please specify "locator".');
|
| 1077 |
-
} else if (typeof args.locator !== 'string' &&
|
| 1078 |
throwError('' + args.locator + ' is incorrect. (String | Function)');
|
| 1079 |
}
|
| 1080 |
}
|
| 1081 |
|
| 1082 |
-
if (args.formatResult !== undefined &&
|
| 1083 |
throwError('"formatResult" should be a Function.');
|
| 1084 |
}
|
| 1085 |
}
|
| 20 |
var pluginHookMethod = 'addHook';
|
| 21 |
|
| 22 |
var eventPrefix = '__pagination-';
|
| 23 |
+
var isFunction = function(func){
|
| 24 |
+
return typeof func === "function";
|
| 25 |
+
}
|
| 26 |
+
var isNumeric = function( obj ) {
|
| 27 |
+
// As of jQuery 3.0, isNumeric is limited to
|
| 28 |
+
// strings and numbers (primitives or objects)
|
| 29 |
+
// that can be coerced to finite numbers (gh-2662)
|
| 30 |
+
var type = typeof obj;
|
| 31 |
+
return ( type === "number" || type === "string" ) &&
|
| 32 |
+
|
| 33 |
+
// parseFloat NaNs numeric-cast false positives ("")
|
| 34 |
+
// ...but misinterprets leading-number strings, e.g. hex literals ("0x...")
|
| 35 |
+
// subtraction forces infinities to NaN
|
| 36 |
+
!isNaN( obj - parseFloat( obj ) );
|
| 37 |
+
};
|
| 38 |
|
| 39 |
// Conflict, use backup
|
| 40 |
if ($.fn.pagination) {
|
| 251 |
var goButton = '<input type="button" class="J-paginationjs-go-button" value="' + goButtonText + '">';
|
| 252 |
var formattedString;
|
| 253 |
|
| 254 |
+
var formatNavigator = isFunction(attributes.formatNavigator) ? attributes.formatNavigator(currentPage, totalPage, totalNumber) : attributes.formatNavigator;
|
| 255 |
+
var formatGoInput = isFunction(attributes.formatGoInput) ? attributes.formatGoInput(goInput, currentPage, totalPage, totalNumber) : attributes.formatGoInput;
|
| 256 |
+
var formatGoButton = isFunction(attributes.formatGoButton) ? attributes.formatGoButton(goButton, currentPage, totalPage, totalNumber) : attributes.formatGoButton;
|
| 257 |
|
| 258 |
+
var autoHidePrevious = isFunction(attributes.autoHidePrevious) ? attributes.autoHidePrevious() : attributes.autoHidePrevious;
|
| 259 |
+
var autoHideNext = isFunction(attributes.autoHideNext) ? attributes.autoHideNext() : attributes.autoHideNext;
|
| 260 |
|
| 261 |
+
var header = isFunction(attributes.header) ? attributes.header(currentPage, totalPage, totalNumber) : attributes.header;
|
| 262 |
+
var footer = isFunction(attributes.footer) ? attributes.footer(currentPage, totalPage, totalNumber) : attributes.footer;
|
| 263 |
|
| 264 |
// Whether to display header
|
| 265 |
if (header) {
|
| 400 |
postData[alias.pageSize ? alias.pageSize : 'pageSize'] = pageSize;
|
| 401 |
postData[alias.pageNumber ? alias.pageNumber : 'pageNumber'] = pageNumber;
|
| 402 |
|
| 403 |
+
var ajaxParams = isFunction(attributes.ajax) ? attributes.ajax() : attributes.ajax;
|
| 404 |
var formatAjaxParams = {
|
| 405 |
type: 'get',
|
| 406 |
cache: false,
|
| 483 |
var self = this;
|
| 484 |
var model = self.model;
|
| 485 |
|
| 486 |
+
if (isFunction(customCallback)) {
|
| 487 |
customCallback(data, model);
|
| 488 |
+
} else if (isFunction(attributes.callback)) {
|
| 489 |
attributes.callback(data, model);
|
| 490 |
}
|
| 491 |
},
|
| 602 |
|
| 603 |
if (typeof locator === 'string') {
|
| 604 |
result = locator;
|
| 605 |
+
} else if (isFunction(locator)) {
|
| 606 |
result = locator();
|
| 607 |
} else {
|
| 608 |
throwError('"locator" is incorrect. (String | Function)');
|
| 644 |
callback(attributes.dataSource = self.filterDataByLocator(dataSource));
|
| 645 |
} else if (Helpers.isArray(dataSource)) {
|
| 646 |
callback(attributes.dataSource = dataSource);
|
| 647 |
+
} else if (isFunction(dataSource)) {
|
| 648 |
attributes.dataSource(function(data) {
|
| 649 |
if (!Helpers.isArray(data)) {
|
| 650 |
throwError('The parameter of "done" Function should be an Array.');
|
| 668 |
var args = Array.prototype.slice.apply(arguments);
|
| 669 |
args.shift();
|
| 670 |
|
| 671 |
+
if (attributes[hook] && isFunction(attributes[hook])) {
|
| 672 |
if (attributes[hook].apply(global, args) === false) {
|
| 673 |
result = false;
|
| 674 |
}
|
| 691 |
|
| 692 |
// Go to specified page number
|
| 693 |
container.on(eventPrefix + 'go', function(event, pageNumber, done) {
|
| 694 |
+
pageNumber = parseInt(pageNumber);
|
| 695 |
|
| 696 |
if (!pageNumber) return;
|
| 697 |
|
| 698 |
+
if (!isNumeric(pageNumber)) {
|
| 699 |
throwError('"pageNumber" is incorrect. (Number)');
|
| 700 |
}
|
| 701 |
|
| 703 |
});
|
| 704 |
|
| 705 |
// Page number button click
|
| 706 |
+
el.on('click', '.J-paginationjs-page', function(event) {
|
| 707 |
var current = $(event.currentTarget);
|
| 708 |
+
var pageNumber = current.attr('data-num').trim();
|
| 709 |
|
| 710 |
if (!pageNumber || current.hasClass(attributes.disableClassName) || current.hasClass(attributes.activeClassName)) return;
|
| 711 |
|
| 721 |
});
|
| 722 |
|
| 723 |
// Previous button click
|
| 724 |
+
el.on('click', '.J-paginationjs-previous', function(event) {
|
| 725 |
var current = $(event.currentTarget);
|
| 726 |
+
var pageNumber = current.attr('data-num').trim();
|
| 727 |
|
| 728 |
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
|
| 729 |
|
| 739 |
});
|
| 740 |
|
| 741 |
// Next button click
|
| 742 |
+
el.on('click', '.J-paginationjs-next', function(event) {
|
| 743 |
var current = $(event.currentTarget);
|
| 744 |
+
var pageNumber = current.attr('data-num').trim();
|
| 745 |
|
| 746 |
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
|
| 747 |
|
| 757 |
});
|
| 758 |
|
| 759 |
// Go button click
|
| 760 |
+
el.on('click', '.J-paginationjs-go-button', function(event) {
|
| 761 |
var pageNumber = $('.J-paginationjs-go-pagenumber', el).val();
|
| 762 |
|
| 763 |
// Before Go button clicked
|
| 770 |
});
|
| 771 |
|
| 772 |
// go input enter
|
| 773 |
+
el.on('keyup', '.J-paginationjs-go-pagenumber', function(event) {
|
| 774 |
if (event.which === 13) {
|
| 775 |
var pageNumber = $(event.currentTarget).val();
|
| 776 |
|
| 843 |
// Pagination has been initialized
|
| 844 |
if (container.data('pagination') && container.data('pagination').initialized === true) {
|
| 845 |
// Handle events
|
| 846 |
+
if (isNumeric(options)) {
|
| 847 |
// eg: container.pagination(5)
|
| 848 |
container.trigger.call(this, eventPrefix + 'go', options, arguments[1]);
|
| 849 |
return this;
|
| 1015 |
throwError('Missing argument.');
|
| 1016 |
}
|
| 1017 |
|
| 1018 |
+
if (!isFunction(callback)) {
|
| 1019 |
throwError('callback must be a function.');
|
| 1020 |
}
|
| 1021 |
|
| 1078 |
if (args.totalNumberLocator === undefined) {
|
| 1079 |
if (args.totalNumber === undefined) {
|
| 1080 |
throwError('"totalNumber" is required.');
|
| 1081 |
+
} else if (!isNumeric(args.totalNumber)) {
|
| 1082 |
throwError('"totalNumber" is incorrect. (Number)');
|
| 1083 |
}
|
| 1084 |
} else {
|
| 1085 |
+
if (!isFunction(args.totalNumberLocator)) {
|
| 1086 |
throwError('"totalNumberLocator" should be a Function.');
|
| 1087 |
}
|
| 1088 |
}
|
| 1089 |
} else if (Helpers.isObject(args.dataSource)) {
|
| 1090 |
if (typeof args.locator === 'undefined') {
|
| 1091 |
throwError('"dataSource" is an Object, please specify "locator".');
|
| 1092 |
+
} else if (typeof args.locator !== 'string' && !isFunction(args.locator)) {
|
| 1093 |
throwError('' + args.locator + ' is incorrect. (String | Function)');
|
| 1094 |
}
|
| 1095 |
}
|
| 1096 |
|
| 1097 |
+
if (args.formatResult !== undefined && !isFunction(args.formatResult)) {
|
| 1098 |
throwError('"formatResult" should be a Function.');
|
| 1099 |
}
|
| 1100 |
}
|
disable-comments.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
* Plugin Name: Disable Comments
|
| 5 |
* Plugin URI: https://wordpress.org/plugins/disable-comments/
|
| 6 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. You could bulk delete comments using Tools.
|
| 7 |
-
* Version: 2.
|
| 8 |
* Author: WPDeveloper
|
| 9 |
* Author URI: https://wpdeveloper.net
|
| 10 |
* License: GPL-3.0+
|
|
@@ -37,7 +37,7 @@ class Disable_Comments
|
|
| 37 |
|
| 38 |
function __construct()
|
| 39 |
{
|
| 40 |
-
define('DC_VERSION', '2.
|
| 41 |
define('DC_PLUGIN_SLUG', 'disable_comments_settings');
|
| 42 |
define('DC_PLUGIN_ROOT_PATH', dirname(__FILE__));
|
| 43 |
define('DC_PLUGIN_VIEWS_PATH', DC_PLUGIN_ROOT_PATH . '/views/');
|
|
@@ -621,6 +621,11 @@ class Disable_Comments
|
|
| 621 |
}
|
| 622 |
|
| 623 |
remove_submenu_page('options-general.php', 'options-discussion.php');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 624 |
}
|
| 625 |
}
|
| 626 |
|
|
@@ -1044,8 +1049,19 @@ class Disable_Comments
|
|
| 1044 |
|
| 1045 |
$log = __('All comments have been deleted', 'disable-comments');
|
| 1046 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1047 |
}
|
| 1048 |
}
|
|
|
|
| 1049 |
return $log;
|
| 1050 |
}
|
| 1051 |
|
| 4 |
* Plugin Name: Disable Comments
|
| 5 |
* Plugin URI: https://wordpress.org/plugins/disable-comments/
|
| 6 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. You could bulk delete comments using Tools.
|
| 7 |
+
* Version: 2.3.0
|
| 8 |
* Author: WPDeveloper
|
| 9 |
* Author URI: https://wpdeveloper.net
|
| 10 |
* License: GPL-3.0+
|
| 37 |
|
| 38 |
function __construct()
|
| 39 |
{
|
| 40 |
+
define('DC_VERSION', '2.3.0');
|
| 41 |
define('DC_PLUGIN_SLUG', 'disable_comments_settings');
|
| 42 |
define('DC_PLUGIN_ROOT_PATH', dirname(__FILE__));
|
| 43 |
define('DC_PLUGIN_VIEWS_PATH', DC_PLUGIN_ROOT_PATH . '/views/');
|
| 621 |
}
|
| 622 |
|
| 623 |
remove_submenu_page('options-general.php', 'options-discussion.php');
|
| 624 |
+
// disabling gravatar if enabled.
|
| 625 |
+
$show_avatar = get_option('show_avatars', false);
|
| 626 |
+
if($show_avatar){
|
| 627 |
+
update_option('show_avatars', false);
|
| 628 |
+
}
|
| 629 |
}
|
| 630 |
}
|
| 631 |
|
| 1049 |
|
| 1050 |
$log = __('All comments have been deleted', 'disable-comments');
|
| 1051 |
}
|
| 1052 |
+
} elseif ($formArray['delete_mode'] == 'delete_spam') {
|
| 1053 |
+
|
| 1054 |
+
$wpdb->query("DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID WHERE comments.comment_approved = 'spam'");
|
| 1055 |
+
$wpdb->query("DELETE comments FROM $wpdb->comments comments WHERE comments.comment_approved = 'spam'");
|
| 1056 |
+
|
| 1057 |
+
|
| 1058 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
| 1059 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
| 1060 |
+
|
| 1061 |
+
$log = __('All spam comments have been deleted', 'disable-comments');
|
| 1062 |
}
|
| 1063 |
}
|
| 1064 |
+
delete_transient('wc_count_comments');
|
| 1065 |
return $log;
|
| 1066 |
}
|
| 1067 |
|
languages/disable-comments.pot
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
# This file is distributed under the GPL-3.0+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
-
"Project-Id-Version: Disable Comments 2.
|
| 6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/disable-comments\n"
|
| 7 |
-
"POT-Creation-Date: 2021-
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -70,34 +70,38 @@ msgid ""
|
|
| 70 |
"page</a> to choose which post types to disable comments on."
|
| 71 |
msgstr ""
|
| 72 |
|
| 73 |
-
#: disable-comments.php:
|
| 74 |
msgid "Settings"
|
| 75 |
msgstr ""
|
| 76 |
|
| 77 |
-
#: disable-comments.php:
|
| 78 |
msgid "Tools"
|
| 79 |
msgstr ""
|
| 80 |
|
| 81 |
-
#: disable-comments.php:
|
| 82 |
msgid "Delete Comments"
|
| 83 |
msgstr ""
|
| 84 |
|
| 85 |
-
#: disable-comments.php:
|
| 86 |
msgid "Default (no type)"
|
| 87 |
msgstr ""
|
| 88 |
|
| 89 |
-
#: disable-comments.php:
|
| 90 |
msgid "Saved"
|
| 91 |
msgstr ""
|
| 92 |
|
| 93 |
-
#: disable-comments.php:
|
| 94 |
msgid "All comments have been deleted"
|
| 95 |
msgstr ""
|
| 96 |
|
| 97 |
-
#: disable-comments.php:
|
| 98 |
msgid "Internal error occured. Please try again later."
|
| 99 |
msgstr ""
|
| 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
#: includes/class-plugin-usage-tracker.php:378
|
| 102 |
msgid ""
|
| 103 |
"We can't detect any plugin information. This is most probably because you "
|
|
@@ -218,7 +222,8 @@ msgid "Permanently delete all comments on your WordPress website"
|
|
| 218 |
msgstr ""
|
| 219 |
|
| 220 |
#: views/partials/_delete.php:23 views/partials/_delete.php:46
|
| 221 |
-
#: views/partials/_delete.php:59 views/partials/
|
|
|
|
| 222 |
msgid "Warnings:"
|
| 223 |
msgstr ""
|
| 224 |
|
|
@@ -259,11 +264,23 @@ msgid ""
|
|
| 259 |
"a database backup."
|
| 260 |
msgstr ""
|
| 261 |
|
| 262 |
-
#: views/partials/_delete.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 263 |
msgid "Total Comments:"
|
| 264 |
msgstr ""
|
| 265 |
|
| 266 |
-
#: views/partials/_delete.php:
|
| 267 |
msgid "No comments are available for deletion."
|
| 268 |
msgstr ""
|
| 269 |
|
|
@@ -428,7 +445,7 @@ msgstr ""
|
|
| 428 |
msgid "https://wpdeveloper.net"
|
| 429 |
msgstr ""
|
| 430 |
|
| 431 |
-
#: disable-comments.php:
|
| 432 |
msgctxt "settings menu title"
|
| 433 |
msgid "Disable Comments"
|
| 434 |
msgstr ""
|
| 2 |
# This file is distributed under the GPL-3.0+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
+
"Project-Id-Version: Disable Comments 2.3.0\n"
|
| 6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/disable-comments\n"
|
| 7 |
+
"POT-Creation-Date: 2021-12-14 02:30:59+00:00\n"
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 70 |
"page</a> to choose which post types to disable comments on."
|
| 71 |
msgstr ""
|
| 72 |
|
| 73 |
+
#: disable-comments.php:698 views/partials/_disable.php:3
|
| 74 |
msgid "Settings"
|
| 75 |
msgstr ""
|
| 76 |
|
| 77 |
+
#: disable-comments.php:699
|
| 78 |
msgid "Tools"
|
| 79 |
msgstr ""
|
| 80 |
|
| 81 |
+
#: disable-comments.php:718 views/partials/_delete.php:72
|
| 82 |
msgid "Delete Comments"
|
| 83 |
msgstr ""
|
| 84 |
|
| 85 |
+
#: disable-comments.php:783
|
| 86 |
msgid "Default (no type)"
|
| 87 |
msgstr ""
|
| 88 |
|
| 89 |
+
#: disable-comments.php:922
|
| 90 |
msgid "Saved"
|
| 91 |
msgstr ""
|
| 92 |
|
| 93 |
+
#: disable-comments.php:993 disable-comments.php:1027 disable-comments.php:1050
|
| 94 |
msgid "All comments have been deleted"
|
| 95 |
msgstr ""
|
| 96 |
|
| 97 |
+
#: disable-comments.php:995 disable-comments.php:999
|
| 98 |
msgid "Internal error occured. Please try again later."
|
| 99 |
msgstr ""
|
| 100 |
|
| 101 |
+
#: disable-comments.php:1061
|
| 102 |
+
msgid "All spam comments have been deleted"
|
| 103 |
+
msgstr ""
|
| 104 |
+
|
| 105 |
#: includes/class-plugin-usage-tracker.php:378
|
| 106 |
msgid ""
|
| 107 |
"We can't detect any plugin information. This is most probably because you "
|
| 222 |
msgstr ""
|
| 223 |
|
| 224 |
#: views/partials/_delete.php:23 views/partials/_delete.php:46
|
| 225 |
+
#: views/partials/_delete.php:59 views/partials/_delete.php:64
|
| 226 |
+
#: views/partials/_disable.php:41
|
| 227 |
msgid "Warnings:"
|
| 228 |
msgstr ""
|
| 229 |
|
| 264 |
"a database backup."
|
| 265 |
msgstr ""
|
| 266 |
|
| 267 |
+
#: views/partials/_delete.php:63
|
| 268 |
+
msgid "Spam:"
|
| 269 |
+
msgstr ""
|
| 270 |
+
|
| 271 |
+
#: views/partials/_delete.php:63
|
| 272 |
+
msgid "Permanently delete all spam comments on your WordPress website"
|
| 273 |
+
msgstr ""
|
| 274 |
+
|
| 275 |
+
#: views/partials/_delete.php:64
|
| 276 |
+
msgid "This will permanently delete spam comments everywhere on your website."
|
| 277 |
+
msgstr ""
|
| 278 |
+
|
| 279 |
+
#: views/partials/_delete.php:66
|
| 280 |
msgid "Total Comments:"
|
| 281 |
msgstr ""
|
| 282 |
|
| 283 |
+
#: views/partials/_delete.php:210
|
| 284 |
msgid "No comments are available for deletion."
|
| 285 |
msgstr ""
|
| 286 |
|
| 445 |
msgid "https://wpdeveloper.net"
|
| 446 |
msgstr ""
|
| 447 |
|
| 448 |
+
#: disable-comments.php:708
|
| 449 |
msgctxt "settings menu title"
|
| 450 |
msgid "Disable Comments"
|
| 451 |
msgstr ""
|
readme.txt
CHANGED
|
@@ -5,7 +5,7 @@ Tags: comments, delete comments, disable comments, spam comment, disable, stop s
|
|
| 5 |
Requires at least: 5.0
|
| 6 |
Tested up to: 5.8
|
| 7 |
Requires PHP: 5.6
|
| 8 |
-
Stable tag: 2.
|
| 9 |
License: GPL-3.0-or-later
|
| 10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 11 |
|
|
@@ -191,6 +191,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|
| 191 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
| 192 |
This will be maiintained from August 19, 2020 - @asif2bd
|
| 193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 194 |
= [2.2.4] - 2021-11-09 =
|
| 195 |
* Added: Ajax pagination in Subsite area (Multisite network).
|
| 196 |
* Added: Ajax search in Subsite area (Multisite network).
|
| 5 |
Requires at least: 5.0
|
| 6 |
Tested up to: 5.8
|
| 7 |
Requires PHP: 5.6
|
| 8 |
+
Stable tag: 2.3.0
|
| 9 |
License: GPL-3.0-or-later
|
| 10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 11 |
|
| 191 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
| 192 |
This will be maiintained from August 19, 2020 - @asif2bd
|
| 193 |
|
| 194 |
+
= [2.3.0] - 2021-12-14 =
|
| 195 |
+
* New Feature: Delete Spam Comments.
|
| 196 |
+
* Updated deprecated jQuery library.
|
| 197 |
+
* Improvement: Disable Gravatar request.
|
| 198 |
+
* Few minor bug fixes and improvement.
|
| 199 |
+
|
| 200 |
= [2.2.4] - 2021-11-09 =
|
| 201 |
* Added: Ajax pagination in Subsite area (Multisite network).
|
| 202 |
* Added: Ajax search in Subsite area (Multisite network).
|
views/partials/_delete.php
CHANGED
|
@@ -58,6 +58,11 @@
|
|
| 58 |
</ul>
|
| 59 |
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('Deleting comments by comment type will remove existing comment entries of the selected comment type(s) in the database and cannot be reverted without a database backup.', 'disable-comments'); ?></p>
|
| 60 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
<h4 class="total-comments"><?php _e('Total Comments:', 'disable-comments'); ?> <?php echo $this->get_all_comments_number(); ?></h4>
|
| 62 |
</div>
|
| 63 |
<?php if(is_network_admin()):?>
|
| 58 |
</ul>
|
| 59 |
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('Deleting comments by comment type will remove existing comment entries of the selected comment type(s) in the database and cannot be reverted without a database backup.', 'disable-comments'); ?></p>
|
| 60 |
</div>
|
| 61 |
+
<div class="disable_option dc-text__block mb30 mt30">
|
| 62 |
+
<input type="radio" id="delete_spam" name="delete_mode" value="delete_spam" />
|
| 63 |
+
<label for="delete_spam"><?php _e('Spam:', 'disable-comments'); ?> <span><?php _e('Permanently delete all spam comments on your WordPress website', 'disable-comments'); ?></span></label>
|
| 64 |
+
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('This will permanently delete spam comments everywhere on your website.', 'disable-comments'); ?></p>
|
| 65 |
+
</div>
|
| 66 |
<h4 class="total-comments"><?php _e('Total Comments:', 'disable-comments'); ?> <?php echo $this->get_all_comments_number(); ?></h4>
|
| 67 |
</div>
|
| 68 |
<?php if(is_network_admin()):?>
|
