Comments – wpDiscuz - Version 5.1.6

Version Description

Download this release

Release Info

Developer AdvancedCoding
Plugin Icon 128x128 Comments – wpDiscuz
Version 5.1.6
Comparing to
See all releases

Code changes from version 5.1.5 to 5.1.6

assets/css/wpdiscuz-rtl.css CHANGED
@@ -511,7 +511,7 @@ wpdtip{display: inline-block; position: inherit; width: auto;}
511
  #wpcomm .wpdiscuz_subscribe_status{font-size:12px; padding-top:6px}
512
  #wpcomm .wpdiscuz_subscribe_status a{font-size:12px}
513
  #wpcomm .wc-comment.wc-no-left-margin{margin-right:0!important}
514
- #wc_unsubscribe_message,#wc_delete_content_message,#wc_follow_message{margin:10px auto 1px auto; padding:10px; text-align:center; border:#0d0 1px dotted; background:#cfc}
515
  .wc_unsubscribe_message,.wc_delete_content_message,.wc_follow_message{font-size:14px; color:#444}
516
  #wpcomm .wc_editable_div{-moz-appearance:textfield-multiline; -webkit-appearance:textarea; border:1px solid #ccc; border-radius:0; font:medium -moz-fixed; font:-webkit-small-control; overflow:auto; resize:both; box-sizing:border-box; height:46px; max-width:100%; min-height:46px!important; padding:5px; width:100%}
517
  .wpdiscuz-nofollow,.wpdiscuz-nofollow:hover{text-decoration:none!important}
511
  #wpcomm .wpdiscuz_subscribe_status{font-size:12px; padding-top:6px}
512
  #wpcomm .wpdiscuz_subscribe_status a{font-size:12px}
513
  #wpcomm .wc-comment.wc-no-left-margin{margin-right:0!important}
514
+ #wc_unsubscribe_message,#wc_delete_content_message,#wc_follow_message{margin:10px auto 1px auto; padding:10px; text-align:center; border:#0d0 1px dotted; background:#cfc;clear:both;}
515
  .wc_unsubscribe_message,.wc_delete_content_message,.wc_follow_message{font-size:14px; color:#444}
516
  #wpcomm .wc_editable_div{-moz-appearance:textfield-multiline; -webkit-appearance:textarea; border:1px solid #ccc; border-radius:0; font:medium -moz-fixed; font:-webkit-small-control; overflow:auto; resize:both; box-sizing:border-box; height:46px; max-width:100%; min-height:46px!important; padding:5px; width:100%}
517
  .wpdiscuz-nofollow,.wpdiscuz-nofollow:hover{text-decoration:none!important}
assets/css/wpdiscuz.css CHANGED
@@ -512,7 +512,7 @@ wpdtip{display: inline-block; position: inherit; width: auto;}
512
  #wpcomm .wpdiscuz_subscribe_status{font-size:12px; padding-top:6px}
513
  #wpcomm .wpdiscuz_subscribe_status a{font-size:12px}
514
  #wpcomm .wc-comment.wc-no-left-margin{margin-left:0!important}
515
- #wc_unsubscribe_message,#wc_delete_content_message,#wc_follow_message{margin:10px auto 1px auto; padding:10px; text-align:center; border:#0d0 1px dotted; background:#cfc}
516
  .wc_unsubscribe_message,.wc_delete_content_message,.wc_follow_message{font-size:14px; color:#444}
517
  #wpcomm .wc_editable_div{-moz-appearance:textfield-multiline; -webkit-appearance:textarea; border:1px solid #ccc; border-radius:0; font:medium -moz-fixed; font:-webkit-small-control; overflow:auto; resize:both; box-sizing:border-box; height:46px; max-width:100%; min-height:46px!important; padding:5px; width:100%}
518
  .wpdiscuz-nofollow,.wpdiscuz-nofollow:hover{text-decoration:none!important}
512
  #wpcomm .wpdiscuz_subscribe_status{font-size:12px; padding-top:6px}
513
  #wpcomm .wpdiscuz_subscribe_status a{font-size:12px}
514
  #wpcomm .wc-comment.wc-no-left-margin{margin-left:0!important}
515
+ #wc_unsubscribe_message,#wc_delete_content_message,#wc_follow_message{margin:10px auto 1px auto; padding:10px; text-align:center; border:#0d0 1px dotted; background:#cfc;clear:both;}
516
  .wc_unsubscribe_message,.wc_delete_content_message,.wc_follow_message{font-size:14px; color:#444}
517
  #wpcomm .wc_editable_div{-moz-appearance:textfield-multiline; -webkit-appearance:textarea; border:1px solid #ccc; border-radius:0; font:medium -moz-fixed; font:-webkit-small-control; overflow:auto; resize:both; box-sizing:border-box; height:46px; max-width:100%; min-height:46px!important; padding:5px; width:100%}
518
  .wpdiscuz-nofollow,.wpdiscuz-nofollow:hover{text-decoration:none!important}
assets/js/wpdiscuz-user-content.js CHANGED
@@ -1,5 +1,6 @@
1
  ;
2
  jQuery(document).ready(function ($) {
 
3
  $(document).delegate('.wpd-info,.wpd-page-link,.wpd-delete-content,.wpd-user-email-delete-links', 'click', function (e) {
4
  e.preventDefault();
5
  });
@@ -19,17 +20,18 @@ jQuery(document).ready(function ($) {
19
  });
20
 
21
  function wpdFullInfo(btn, data) {
 
22
  var icon = $('.fas', btn);
23
  var oldClass = icon.attr('class');
24
  icon.removeClass();
25
  icon.addClass('fas fa-pulse fa-spinner');
26
- var ajax = getUCAjaxObj(false, data);
27
- ajax.done(function (resp) {
28
  btn.addClass('wpd-not-clicked');
29
  icon.removeClass();
30
  icon.addClass(oldClass);
31
- if (resp) {
32
- $('#wpdUserContentInfo').html(resp);
33
  $('#wpdUserContentInfo ul.wpd-list .wpd-list-item:first-child').addClass('wpd-active');
34
  $('#wpdUserContentInfo div.wpd-content .wpd-content-item:first-child').addClass('wpd-active');
35
 
@@ -57,11 +59,11 @@ jQuery(document).ready(function ($) {
57
  var data = new FormData();
58
  data.append('action', action);
59
  data.append('page', goToPage);
60
- var ajax = getUCAjaxObj(true, data);
61
- ajax.done(function (resp) {
62
  btn.addClass('wpd-not-clicked');
63
- if (resp) {
64
- $('.wpd-content-item.wpd-active').html(resp);
65
  }
66
  $('.wpdiscuz-loading-bar').hide();
67
  });
@@ -96,7 +98,7 @@ jQuery(document).ready(function ($) {
96
  data.append('action', action);
97
 
98
 
99
- var ajax = getUCAjaxObj(false, data);
100
  ajax.done(function (response) {
101
  btn.addClass('wpd-not-clicked');
102
  icon.removeClass().addClass(oldClass);
@@ -112,7 +114,7 @@ jQuery(document).ready(function ($) {
112
  $('.wpd-loading', btn).addClass('wpd-show');
113
  var data = new FormData();
114
  data.append('action', 'wpdEmailDeleteLinks');
115
- var ajax = getUCAjaxObj(false, data);
116
  ajax.done(function (response) {
117
  btn.addClass('wpd-not-clicked');
118
  $('[data-lity-close]', window.parent.document).trigger('click');
@@ -129,7 +131,7 @@ jQuery(document).ready(function ($) {
129
  var data = new FormData();
130
  data.append('action', 'wpdGuestAction');
131
  data.append('guestAction', guestAction);
132
- var ajax = getUCAjaxObj(false, data);
133
  ajax.done(function (response) {
134
  btn.addClass('wpd-not-clicked');
135
  btn.find('.wpd-loading').removeClass('wpd-show');
@@ -189,4 +191,23 @@ jQuery(document).ready(function ($) {
189
  processData: false,
190
  });
191
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  });
1
  ;
2
  jQuery(document).ready(function ($) {
3
+ var isNativeAjaxEnabled = wpdiscuzAjaxObj.wpdiscuz_options.isNativeAjaxEnabled;
4
  $(document).delegate('.wpd-info,.wpd-page-link,.wpd-delete-content,.wpd-user-email-delete-links', 'click', function (e) {
5
  e.preventDefault();
6
  });
20
  });
21
 
22
  function wpdFullInfo(btn, data) {
23
+ console.log(btn);
24
  var icon = $('.fas', btn);
25
  var oldClass = icon.attr('class');
26
  icon.removeClass();
27
  icon.addClass('fas fa-pulse fa-spinner');
28
+ var ajax = isNativeAjaxEnabled ? getUCAjaxObj(false, data) : getUCACustomAjaxObj(false, data);
29
+ ajax.done(function (response) {
30
  btn.addClass('wpd-not-clicked');
31
  icon.removeClass();
32
  icon.addClass(oldClass);
33
+ if (response) {
34
+ $('#wpdUserContentInfo').html(response);
35
  $('#wpdUserContentInfo ul.wpd-list .wpd-list-item:first-child').addClass('wpd-active');
36
  $('#wpdUserContentInfo div.wpd-content .wpd-content-item:first-child').addClass('wpd-active');
37
 
59
  var data = new FormData();
60
  data.append('action', action);
61
  data.append('page', goToPage);
62
+ var ajax = isNativeAjaxEnabled ? getUCAjaxObj(true, data) : getUCACustomAjaxObj(true, data);
63
+ ajax.done(function (response) {
64
  btn.addClass('wpd-not-clicked');
65
+ if (response) {
66
+ $('.wpd-content-item.wpd-active').html(response);
67
  }
68
  $('.wpdiscuz-loading-bar').hide();
69
  });
98
  data.append('action', action);
99
 
100
 
101
+ var ajax = isNativeAjaxEnabled ? getUCAjaxObj(false, data) : getUCACustomAjaxObj(false, data);
102
  ajax.done(function (response) {
103
  btn.addClass('wpd-not-clicked');
104
  icon.removeClass().addClass(oldClass);
114
  $('.wpd-loading', btn).addClass('wpd-show');
115
  var data = new FormData();
116
  data.append('action', 'wpdEmailDeleteLinks');
117
+ var ajax = isNativeAjaxEnabled ? getUCAjaxObj(false, data) : getUCACustomAjaxObj(false, data);
118
  ajax.done(function (response) {
119
  btn.addClass('wpd-not-clicked');
120
  $('[data-lity-close]', window.parent.document).trigger('click');
131
  var data = new FormData();
132
  data.append('action', 'wpdGuestAction');
133
  data.append('guestAction', guestAction);
134
+ var ajax = isNativeAjaxEnabled ? getUCAjaxObj(false, data) : getUCACustomAjaxObj(false, data);
135
  ajax.done(function (response) {
136
  btn.addClass('wpd-not-clicked');
137
  btn.find('.wpd-loading').removeClass('wpd-show');
191
  processData: false,
192
  });
193
  }
194
+
195
+ /**
196
+ * @param {type} action the action key
197
+ * @param {type} data the request properties
198
+ * @returns {jqXHR}
199
+ */
200
+ function getUCACustomAjaxObj(isShowTopLoading, data) {
201
+ if (isShowTopLoading) {
202
+ $('.wpdiscuz-loading-bar').show();
203
+ }
204
+ data.append('postId', wpdiscuzAjaxObj.wpdiscuz_options.wc_post_id);
205
+ return $.ajax({
206
+ type: 'POST',
207
+ url: wpdiscuzAjaxObj.customAjaxUrl,
208
+ data: data,
209
+ contentType: false,
210
+ processData: false,
211
+ });
212
+ }
213
  });
assets/js/wpdiscuz.js CHANGED
@@ -14,11 +14,19 @@ jQuery(document).ready(function ($) {
14
  var commentListUpdateTimer = wpdiscuzAjaxObj.wpdiscuz_options.commentListUpdateTimer;
15
  var disableGuestsLiveUpdate = wpdiscuzAjaxObj.wpdiscuz_options.liveUpdateGuests;
16
  var loadLastCommentId = wpdiscuzAjaxObj.wpdiscuz_options.loadLastCommentId;
17
- var wpdiscuzCommentOrder = wpdiscuzAjaxObj.wpdiscuz_options.wordpress_comment_order;
 
 
 
 
 
 
 
 
 
18
  var commentsVoteOrder = wpdiscuzAjaxObj.wpdiscuz_options.commentsVoteOrder;
19
  var storeCommenterData = wpdiscuzAjaxObj.wpdiscuz_options.storeCommenterData;
20
  var wpdiscuzLoadCount = 1;
21
- var wpdiscuzCommentOrderBy = 'comment_date_gmt';
22
  var wpdiscuzReplyArray = [];
23
  var wpdiscuzCommentArray = [];
24
  var wpdiscuzUploader = wpdiscuzAjaxObj.wpdiscuz_options.uploader;
@@ -30,6 +38,7 @@ jQuery(document).ready(function ($) {
30
  var wpdiscuzCookiehash = wpdiscuzAjaxObj.wpdiscuz_options.cookiehash;
31
  var isLoadOnlyParentComments = wpdiscuzAjaxObj.wpdiscuz_options.isLoadOnlyParentComments;
32
  var enableDropAnimation = wpdiscuzAjaxObj.wpdiscuz_options.enableDropAnimation ? 500 : 0;
 
33
  var wpdiscuzAgreementFields = [];
34
  loginButtonsClone();
35
 
@@ -40,12 +49,13 @@ jQuery(document).ready(function ($) {
40
  Cookies.set(wpdiscuzLastVisitKey, (JSON.stringify(wpdiscuzLastVisit)), {expires: wpdiscuzLastVisitExpires, path: window.location});
41
  }
42
 
43
- if (commentsVoteOrder) {
44
- $('.wpdiscuz-vote-sort-up').addClass('wpdiscuz-sort-button-active');
45
- wpdiscuzCommentOrderBy = 'by_vote';
46
- } else {
47
- $('.wpdiscuz-date-sort-' + wpdiscuzCommentOrder).addClass('wpdiscuz-sort-button-active');
48
- }
 
49
  $('#wc_unsubscribe_message, #wc_delete_content_message, #wc_follow_message').delay(3000).fadeOut(1500, function () {
50
  $(this).remove();
51
  location.href = location.href.substring(0, location.href.indexOf('wpdiscuzUrlAnchor') - 1);
@@ -209,7 +219,7 @@ jQuery(document).ready(function ($) {
209
  addAgreementInCookie(wcForm);
210
  $(currentSubmitBtn).removeClass('wc_not_clicked');
211
  var data = new FormData();
212
- data.append('action', 'addComment');
213
  data.append('ahk', wpdiscuzAjaxObj.wpdiscuz_options.ahk);
214
  var inputs = $(":input", wcForm);
215
  inputs.each(function () {
@@ -276,54 +286,55 @@ jQuery(document).ready(function ($) {
276
  wpdCookiesConsent = false;
277
  }
278
 
279
- getAjaxObj(true, data).done(function (response) {
 
280
  $(currentSubmitBtn).addClass('wc_not_clicked');
281
  var messageKey = '';
282
  var message = '';
283
  try {
284
- var obj = $.parseJSON(response);
285
- messageKey = obj.code;
286
  if (parseInt(messageKey) >= 0) {
287
- var isMain = obj.is_main;
288
- message = obj.message;
289
- $('.wpd-cc-value').html(obj.wc_all_comments_count_new);
290
  if ($('.wpd-stat-threads-count').length) {
291
- $('.wpd-stat-threads-count').html(obj.threadsCount);
292
  }
293
  if ($('.wpd-stat-replies-count').length) {
294
- $('.wpd-stat-replies-count').html(obj.repliesCount);
295
  }
296
  if ($('.wpd-stat-authors-count').length) {
297
- $('.wpd-stat-authors-count').html(obj.authorsCount);
298
  }
299
  if (isMain) {
300
  $('.wc-thread-wrapper').prepend(message);
301
  } else {
302
  $('#wc-secondary-form-wrapper-' + messageKey).slideToggle(700);
303
- if (obj.is_in_same_container == 1) {
304
  $('#wc-secondary-form-wrapper-' + messageKey).after(message);
305
  } else {
306
  $('#wc-secondary-form-wrapper-' + messageKey).after(message.replace('wc-reply', 'wc-reply wc-no-left-margin'));
307
  }
308
  }
309
- if (obj.held_moderate && isCookiesEnabled) {
310
  var moderateCommentTime = 30 * 24 * 60 * 60;
311
  var moderateComments = '';
312
  if (Cookies.get('wc_moderate_comments_' + wpdiscuzPostId)) {
313
  moderateComments = Cookies.get('wc_moderate_comments_' + wpdiscuzPostId);
314
  }
315
- moderateComments += obj.new_comment_id + ',';
316
  Cookies.set('wc_moderate_comments_' + wpdiscuzPostId, moderateComments, {expires: moderateCommentTime, path: '/'});
317
  }
318
- notifySubscribers(obj);
319
- wpdiscuzRedirect(obj);
320
  if (isCookiesEnabled && wpdCookiesConsent) {
321
- addCookie(wcForm, obj);
322
  } else if (!wpdCookiesConsent) {
323
  $('.wpd-cookies-checkbox').removeAttr('checked');
324
  }
325
  wcForm.get(0).reset();
326
- setCookieInForm(obj);
327
  var currTArea = $('.wc_comment', wcForm);
328
  currTArea.css('height', '72px');
329
  setTextareaCharCount(currTArea, commentTextMaxLength);
@@ -334,17 +345,17 @@ jQuery(document).ready(function ($) {
334
  deleteAgreementFields();
335
  } else {
336
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
337
- if (obj.typeError != 'undefined' && obj.typeError != null) {
338
- message += ' ' + obj.typeError;
339
  }
340
  wpdiscuzAjaxObj.setCommentMessage(wcForm, messageKey, message, true);
341
  }
342
- if (obj.callbackFunctions != null && obj.callbackFunctions != 'undefined' && obj.callbackFunctions.length) {
343
- $.each(obj.callbackFunctions, function (i) {
344
- if (typeof wpdiscuzAjaxObj[obj.callbackFunctions[i]] === "function") {
345
- wpdiscuzAjaxObj[obj.callbackFunctions[i]](messageKey, wcForm);
346
  } else {
347
- console.log(obj.callbackFunctions[i] + " is not a function");
348
  }
349
  });
350
  }
@@ -363,17 +374,17 @@ jQuery(document).ready(function ($) {
363
  wpdiscuzReset();
364
  });
365
 
366
- function notifySubscribers(obj) {
367
- if (!obj.held_moderate) {
368
  var data = new FormData();
369
- data.append('action', 'checkNotificationType');
370
- data.append('comment_id', obj.new_comment_id);
371
- data.append('email', obj.comment_author_email);
372
- data.append('isParent', obj.is_main);
373
- var ajaxObject = getAjaxObj(true, data);
374
- ajaxObject.done(function (response) {
375
  try {
376
- obj = $.parseJSON(response);
377
  } catch (e) {
378
  console.log(e);
379
  }
@@ -381,17 +392,17 @@ jQuery(document).ready(function ($) {
381
  }
382
  }
383
 
384
- function wpdiscuzRedirect(obj) {
385
- if (obj.redirect > 0 && obj.new_comment_id) {
386
  var data = new FormData();
387
- data.append('action', 'redirect');
388
- data.append('commentId', obj.new_comment_id);
389
- var ajaxObject = getAjaxObj(true, data);
390
- ajaxObject.done(function (response) {
391
- obj = $.parseJSON(response);
392
- if (obj.code == 1) {
393
  setTimeout(function () {
394
- window.location.href = obj.redirect_to;
395
  }, 5000);
396
  }
397
  });
@@ -439,23 +450,23 @@ jQuery(document).ready(function ($) {
439
  var commentID = getCommentID(uniqueID);
440
  var editButton = $(this);
441
  var data = new FormData();
442
- data.append('action', 'editComment');
443
  data.append('commentId', commentID);
444
  var wcCommentTextBeforeEditingTop = $('#wc-comm-' + uniqueID + ' .wpd-top-custom-fields');
445
  var wcCommentTextBeforeEditingBottom = $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields');
446
  wcCommentTextBeforeEditing = wcCommentTextBeforeEditingTop.length ? '<div class="wpd-top-custom-fields">' + wcCommentTextBeforeEditingTop.html() + '</div>' : '';
447
  wcCommentTextBeforeEditing += '<div class="wc-comment-text">' + $('#wc-comm-' + uniqueID + ' .wc-comment-text').html() + '</div>';
448
  wcCommentTextBeforeEditing += wcCommentTextBeforeEditingBottom.length ? '<div class="wpd-bottom-custom-fields">' + $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields').html() + '</div>' : '';
449
- console.log(wcCommentTextBeforeEditing);
450
- getAjaxObj(true, data).done(function (response) {
451
  try {
452
- var obj = $.parseJSON(response);
453
  var message = '';
454
- var messageKey = obj.code;
455
  if (parseInt(messageKey) >= 0) {
456
  $('#wc-comm-' + uniqueID + ' .wpd-top-custom-fields').remove();
457
  $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields').remove();
458
- $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-text').replaceWith(obj.message);
459
  $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-footer .wc_editable_comment').hide();
460
  $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-footer .wc_cancel_edit').css('display', 'inline-block');
461
  var editForm = $('#wc-comm-' + uniqueID + ' > .wc-comment-right #wpdiscuz-edit-form');
@@ -483,7 +494,7 @@ jQuery(document).ready(function ($) {
483
 
484
  if (editCommentForm[0].checkValidity()) {
485
  var data = new FormData();
486
- data.append('action', 'saveEditedComment');
487
  data.append('wpdiscuz_unique_id', uniqueID);
488
  data.append('commentId', commentID);
489
  var inputs = $(":input", editCommentForm);
@@ -498,23 +509,24 @@ jQuery(document).ready(function ($) {
498
  }
499
  });
500
 
501
- getAjaxObj(true, data).done(function (response) {
 
502
  try {
503
- var obj = $.parseJSON(response);
504
- var messageKey = obj.code;
505
  var message = '';
506
  if (parseInt(messageKey) >= 0) {
507
- wcCancelOrSave(uniqueID, obj.message);
508
  } else {
509
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
510
  wpdiscuzAjaxObj.setCommentMessage(saveButton, messageKey, message, false);
511
  }
512
- if (obj.callbackFunctions != null && obj.callbackFunctions != 'undefined' && obj.callbackFunctions.length) {
513
- $.each(obj.callbackFunctions, function (i) {
514
- if (typeof wpdiscuzAjaxObj[obj.callbackFunctions[i]] === "function") {
515
- wpdiscuzAjaxObj[obj.callbackFunctions[i]](messageKey, commentID, commentContent);
516
  } else {
517
- console.log(obj.callbackFunctions[i] + " is not a function");
518
  }
519
  });
520
  }
@@ -584,21 +596,22 @@ jQuery(document).ready(function ($) {
584
  loadButton.toggleClass(loaded);
585
  loadButton.toggleClass(loading);
586
  var data = new FormData();
587
- data.append('action', 'loadMoreComments');
588
  data.append('offset', wpdiscuzLoadCount);
589
- data.append('orderBy', wpdiscuzCommentOrderBy);
590
- data.append('order', wpdiscuzCommentOrder);
591
  data.append('lastParentId', getLastParentID());
592
  data.append(wpdiscuzLastVisitKey, Cookies.get(wpdiscuzLastVisitKey));
593
  wpdiscuzLoadCount++;
594
- getAjaxObj(true, data).done(function (response) {
 
595
  try {
596
- var obj = $.parseJSON(response);
597
- $('.wpdiscuz-comment-pagination').before(obj.comment_list);
598
- setLoadMoreVisibility(obj);
599
  $('.wpdiscuz_single').remove();
600
  isRun = false;
601
- loadLastCommentId = obj.loadLastCommentId;
602
  } catch (e) {
603
  console.log(e);
604
  }
@@ -609,21 +622,21 @@ jQuery(document).ready(function ($) {
609
  });
610
  }
611
 
612
- function setLoadMoreVisibility(obj) {
613
- if (obj.is_show_load_more == false) {
614
  $('#wpdiscuzHasMoreComments').val(0);
615
  $('.wc-load-more-submit').parents('.wpdiscuz-comment-pagination').hide();
616
  } else {
617
- setLastParentID(obj.last_parent_id);
618
  $('#wpdiscuzHasMoreComments').val(1);
619
  }
620
 
621
- if (obj.callbackFunctions != null && obj.callbackFunctions != 'undefined' && obj.callbackFunctions.length) {
622
- $.each(obj.callbackFunctions, function (i) {
623
- if (typeof wpdiscuzAjaxObj[obj.callbackFunctions[i]] === "function") {
624
- wpdiscuzAjaxObj[obj.callbackFunctions[i]]();
625
  } else {
626
- console.log(obj.callbackFunctions[i] + " is not a function");
627
  }
628
  });
629
  }
@@ -646,36 +659,37 @@ jQuery(document).ready(function ($) {
646
  }
647
 
648
  var data = new FormData();
649
- data.append('action', 'voteOnComment');
650
  data.append('commentId', commentID);
651
  data.append('voteType', voteType);
652
- getAjaxObj(true, data).done(function (response) {
 
653
  $(currentVoteBtn).addClass('wc_not_clicked');
654
  try {
655
- var obj = $.parseJSON(response);
656
- messageKey = obj.code;
657
  if (parseInt(messageKey) >= 0) {
658
- if (obj.buttonsStyle == 'total') {
659
  var voteCountDiv = $('.wc-comment-footer .wc-vote-result', $('#comment-' + commentID));
660
  voteCountDiv.text(parseInt(voteCountDiv.text()) + voteType);
661
  } else {
662
  var likeCountDiv = $('.wc-comment-footer .wc-vote-result-like', $('#comment-' + commentID));
663
  var dislikeCountDiv = $('.wc-comment-footer .wc-vote-result-dislike', $('#comment-' + commentID));
664
- likeCountDiv.text(obj.likeCount);
665
- dislikeCountDiv.text(obj.dislikeCount);
666
- parseInt(obj.likeCount) > 0 ? likeCountDiv.addClass('wc-positive') : likeCountDiv.removeClass('wc-positive');
667
- parseInt(obj.dislikeCount) < 0 ? dislikeCountDiv.addClass('wc-negative') : dislikeCountDiv.removeClass('wc-negative');
668
  }
669
  } else {
670
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
671
  wpdiscuzAjaxObj.setCommentMessage(currentVoteBtn, messageKey, message, false);
672
  }
673
- if (obj.callbackFunctions != null && obj.callbackFunctions != 'undefined' && obj.callbackFunctions.length) {
674
- $.each(obj.callbackFunctions, function (i) {
675
- if (typeof wpdiscuzAjaxObj[obj.callbackFunctions[i]] === "function") {
676
- wpdiscuzAjaxObj[obj.callbackFunctions[i]](messageKey, commentID, voteType);
677
  } else {
678
- console.log(obj.callbackFunctions[i] + " is not a function");
679
  }
680
  });
681
  }
@@ -691,35 +705,39 @@ jQuery(document).ready(function ($) {
691
  if (!($(this).hasClass('wpdiscuz-sort-button-active'))) {
692
  var clickedBtn = $(this);
693
  if ($(this).hasClass('wpdiscuz-vote-sort-up')) {
694
- wpdiscuzCommentOrderBy = 'by_vote';
695
- wpdiscuzCommentOrder = 'desc';
696
  } else {
697
- wpdiscuzCommentOrderBy = 'comment_date_gmt';
698
- wpdiscuzCommentOrder = $(this).hasClass('wpdiscuz-date-sort-desc') ? 'desc' : 'asc';
699
  }
 
 
 
 
700
  var data = new FormData();
701
- data.append('action', 'wpdiscuzSorting');
702
- data.append('orderBy', wpdiscuzCommentOrderBy);
703
- data.append('order', wpdiscuzCommentOrder);
704
- data.append('order', wpdiscuzCommentOrder);
705
 
706
  var messageKey = '';
707
  var message = '';
708
- getAjaxObj(true, data).done(function (response) {
 
709
  try {
710
- var obj = $.parseJSON(response);
711
- messageKey = obj.code;
712
- message = obj.message;
713
  if (parseInt(messageKey) > 0) {
714
  $('#wpcomm .wc-thread-wrapper .wc-comment').each(function () {
715
  $(this).remove();
716
  });
717
  $('#wpcomm .wc-thread-wrapper').prepend(message);
718
- wpdiscuzLoadCount = parseInt(obj.loadCount);
719
  } else {
720
  }
721
  setActiveButton(clickedBtn);
722
- setLoadMoreVisibility(obj);
723
  } catch (e) {
724
  console.log(e);
725
  }
@@ -744,20 +762,31 @@ jQuery(document).ready(function ($) {
744
  var commentId = matches[1];
745
  if (!$('#comment-' + commentId).length) {
746
  var data = new FormData();
747
- data.append('action', 'getSingleComment');
748
  data.append('commentId', commentId);
749
- var ajaxObject = getAjaxObj(true, data);
750
- ajaxObject.done(function (response) {
751
  try {
752
- var obj = $.parseJSON(response);
753
  var scrollToSelector = '.wc-thread-wrapper';
754
- if ($('#comment-' + obj.parentCommentID).length) {
755
- var parentComment = $('#comment-' + obj.parentCommentID);
756
  $('.wc-toggle', parentComment).trigger('click');
757
- scrollToSelector = '#comment-' + obj.parentCommentID;
758
  } else {
759
- $('.wc-thread-wrapper').prepend(obj.message);
 
 
 
 
 
 
 
 
 
 
760
  }
 
761
  $('html, body').animate({
762
  scrollTop: $(scrollToSelector).offset().top - 32
763
  }, 1000);
@@ -780,20 +809,20 @@ jQuery(document).ready(function ($) {
780
  var visibleCommentIds = getVisibleCommentIds();
781
  var email = (Cookies.get('comment_author_email_' + wpdiscuzCookiehash) != undefined && Cookies.get('comment_author_email_' + wpdiscuzCookiehash) != '') ? Cookies.get('comment_author_email_' + wpdiscuzCookiehash) : '';
782
  var data = new FormData();
783
- data.append('action', 'updateAutomatically');
784
  data.append('loadLastCommentId', loadLastCommentId);
785
  data.append('visibleCommentIds', visibleCommentIds);
786
  data.append('email', email);
787
- var ajaxObject = getAjaxObj(false, data);
788
- ajaxObject.done(function (response) {
789
  try {
790
- var obj = $.parseJSON(response);
791
- if (obj.code == 1) {
792
  if (commentListUpdateType == 1) {
793
- liveUpdateImmediately(obj);
794
  } else {
795
- wpdiscuzCommentArray = wpdiscuzCommentArray.concat(obj.message.comments);
796
- wpdiscuzReplyArray = wpdiscuzReplyArray.concat(obj.message.author_replies);
797
  var newCommentArrayLength = wpdiscuzCommentArray.length;
798
  var newRepliesArrayLength = wpdiscuzReplyArray.length;
799
  if (newCommentArrayLength > 0) {
@@ -811,8 +840,8 @@ jQuery(document).ready(function ($) {
811
  $('.wc_new_reply').hide();
812
  }
813
  }
814
- $('.wpd-cc-value').html(obj.wc_all_comments_count_new);
815
- loadLastCommentId = obj.loadLastCommentId;
816
  }
817
  } catch (e) {
818
  console.log(e);
@@ -821,10 +850,10 @@ jQuery(document).ready(function ($) {
821
  });
822
  }
823
 
824
- function liveUpdateImmediately(obj) {
825
- if (obj.message !== undefined) {
826
  var commentObject;
827
- var message = obj.message;
828
  for (var i = 0; i < message.length; i++) {
829
  commentObject = message[i];
830
  addCommentToTree(commentObject.comment_parent, commentObject.comment_html);
@@ -834,7 +863,7 @@ jQuery(document).ready(function ($) {
834
 
835
  $(document).delegate('.wc-update-on-click', 'click', function () {
836
  var data = new FormData();
837
- data.append('action', 'updateOnClick');
838
  var clickedButton = $(this);
839
  if (clickedButton.hasClass('wc_new_comment')) {
840
  data.append('newCommentIds', wpdiscuzCommentArray.join());
@@ -842,10 +871,11 @@ jQuery(document).ready(function ($) {
842
  data.append('newCommentIds', wpdiscuzReplyArray.join());
843
  }
844
 
845
- getAjaxObj(true, data).done(function (response) {
 
846
  try {
847
- var obj = $.parseJSON(response);
848
- liveUpdateImmediately(obj);
849
  if (clickedButton.hasClass('wc_new_comment')) {
850
  wpdiscuzCommentArray = [];
851
  $('.wc_new_comment').hide();
@@ -865,13 +895,14 @@ jQuery(document).ready(function ($) {
865
  var uniqueId = getUniqueID($(this));
866
  var commentId = getCommentID(uniqueId);
867
  var data = new FormData();
868
- data.append('action', 'readMore');
869
  data.append('commentId', commentId);
870
- getAjaxObj(true, data).done(function (response) {
 
871
  try {
872
- var obj = $.parseJSON(response);
873
- if (obj.code) {
874
- $('#comment-' + commentId + ' .wc-comment-text').html(' ' + obj.message);
875
  $('#wpdiscuz-readmore-' + uniqueId).remove();
876
  }
877
  } catch (e) {
@@ -1130,9 +1161,9 @@ jQuery(document).ready(function ($) {
1130
  function wpdiscuzShowReplies(uniqueId) {
1131
  var commentId = getCommentID(uniqueId);
1132
  var data = new FormData();
1133
- data.append('action', 'wpdiscuzShowReplies');
1134
  data.append('commentId', commentId);
1135
- var ajax = getAjaxObj(true, data);
1136
  ajax.done(function (response) {
1137
  try {
1138
  var obj = $.parseJSON(response);
@@ -1167,12 +1198,12 @@ jQuery(document).ready(function ($) {
1167
  var data = new FormData();
1168
  data.append('action', 'wpdStickComment');
1169
  data.append('commentId', commentId);
1170
- var ajax = getAjaxObj(true, data);
1171
  ajax.done(function (response) {
1172
  try {
1173
- var obj = $.parseJSON(response);
1174
- if (obj.code == 1) {
1175
- $('.wc_stick_text', btn).text(obj.data);
1176
  setTimeout(function () {
1177
  location.reload(true);
1178
  }, 1000);
@@ -1193,12 +1224,12 @@ jQuery(document).ready(function ($) {
1193
  var data = new FormData();
1194
  data.append('action', 'wpdCloseThread');
1195
  data.append('commentId', commentId);
1196
- var ajax = getAjaxObj(true, data);
1197
  ajax.done(function (response) {
1198
  try {
1199
- var obj = $.parseJSON(response);
1200
- if (obj.code == 1) {
1201
- $('.wc_close_btn', btn).text(obj.data);
1202
  setTimeout(function () {
1203
  location.reload(true);
1204
  }, 1000);
@@ -1230,10 +1261,7 @@ jQuery(document).ready(function ($) {
1230
  $('.fas', btn).addClass('fa-pulse fa-spinner');
1231
  var data = new FormData();
1232
  data.append('action', 'wpdMostReactedComment');
1233
- // data.append('action', 'wpdMostReacted');
1234
- var ajax = getCustomAjaxObj(false, data);
1235
- // var ajax = getAjaxObj(false, data);
1236
-
1237
  ajax.done(function (response) {
1238
  try {
1239
  $('.fas', btn).removeClass('fa-pulse fa-spinner');
@@ -1250,6 +1278,16 @@ jQuery(document).ready(function ($) {
1250
  scrollToSelector = '#comment-' + r.commentId;
1251
  }
1252
 
 
 
 
 
 
 
 
 
 
 
1253
  $('html, body').animate({
1254
  scrollTop: $(scrollToSelector).offset().top - 32
1255
  }, 1000);
@@ -1268,11 +1306,8 @@ jQuery(document).ready(function ($) {
1268
  var btn = $(this);
1269
  $('.fab', btn).addClass('fas fa-pulse fa-spinner');
1270
  var data = new FormData();
1271
- data.append('action', 'wpdMostActiveThread');
1272
- // data.append('action', 'wpdHottest');
1273
- var ajax = getCustomAjaxObj(false, data);
1274
- // var ajax = getAjaxObj(false, data);
1275
-
1276
  ajax.done(function (response) {
1277
  try {
1278
  $('.fab', btn).removeClass('fas fa-pulse fa-spinner');
@@ -1293,6 +1328,16 @@ jQuery(document).ready(function ($) {
1293
  toggle.trigger('click');
1294
  }
1295
 
 
 
 
 
 
 
 
 
 
 
1296
  $('html, body').animate({
1297
  scrollTop: $(scrollToSelector).offset().top - 32
1298
  }, 1000);
@@ -1335,7 +1380,7 @@ jQuery(document).ready(function ($) {
1335
  var data = new FormData();
1336
  data.append('action', 'wpdFollowUser');
1337
  data.append('commentId', commentId);
1338
- var ajax = getAjaxObj(false, data);
1339
 
1340
  ajax.done(function (response) {
1341
  btn.addClass('wc_not_clicked');
14
  var commentListUpdateTimer = wpdiscuzAjaxObj.wpdiscuz_options.commentListUpdateTimer;
15
  var disableGuestsLiveUpdate = wpdiscuzAjaxObj.wpdiscuz_options.liveUpdateGuests;
16
  var loadLastCommentId = wpdiscuzAjaxObj.wpdiscuz_options.loadLastCommentId;
17
+ var cookieCommentsSorting = wpdiscuzAjaxObj.wpdiscuz_options.cookieCommentsSorting;
18
+ var wpdiscuzOrderData = Cookies.get(cookieCommentsSorting + "_" + wpdiscuzPostId);
19
+ if (wpdiscuzOrderData) {
20
+ wpdiscuzOrderData = JSON.parse(wpdiscuzOrderData);
21
+ var wpdiscuzCommentsOrder = wpdiscuzOrderData && wpdiscuzOrderData.order ? wpdiscuzOrderData.order : wpdiscuzAjaxObj.wpdiscuz_options.wpdiscuzCommentsOrder;
22
+ var wpdiscuzCommentsOrderBy = wpdiscuzOrderData && wpdiscuzOrderData.orderBy ? wpdiscuzOrderData.orderBy : wpdiscuzAjaxObj.wpdiscuz_options.wpdiscuzCommentOrderBy;
23
+ } else {
24
+ var wpdiscuzCommentsOrder = wpdiscuzAjaxObj.wpdiscuz_options.wpdiscuzCommentsOrder;
25
+ var wpdiscuzCommentsOrderBy = wpdiscuzAjaxObj.wpdiscuz_options.wpdiscuzCommentOrderBy;
26
+ }
27
  var commentsVoteOrder = wpdiscuzAjaxObj.wpdiscuz_options.commentsVoteOrder;
28
  var storeCommenterData = wpdiscuzAjaxObj.wpdiscuz_options.storeCommenterData;
29
  var wpdiscuzLoadCount = 1;
 
30
  var wpdiscuzReplyArray = [];
31
  var wpdiscuzCommentArray = [];
32
  var wpdiscuzUploader = wpdiscuzAjaxObj.wpdiscuz_options.uploader;
38
  var wpdiscuzCookiehash = wpdiscuzAjaxObj.wpdiscuz_options.cookiehash;
39
  var isLoadOnlyParentComments = wpdiscuzAjaxObj.wpdiscuz_options.isLoadOnlyParentComments;
40
  var enableDropAnimation = wpdiscuzAjaxObj.wpdiscuz_options.enableDropAnimation ? 500 : 0;
41
+ var isNativeAjaxEnabled = wpdiscuzAjaxObj.wpdiscuz_options.isNativeAjaxEnabled;
42
  var wpdiscuzAgreementFields = [];
43
  loginButtonsClone();
44
 
49
  Cookies.set(wpdiscuzLastVisitKey, (JSON.stringify(wpdiscuzLastVisit)), {expires: wpdiscuzLastVisitExpires, path: window.location});
50
  }
51
 
52
+ // if (commentsVoteOrder) {
53
+ // $('.wpdiscuz-vote-sort-up').addClass('wpdiscuz-sort-button-active');
54
+ // wpdiscuzCommentOrderBy = 'by_vote';
55
+ // }
56
+ // else {
57
+ // $('.wpdiscuz-date-sort-' + wpdiscuzCommentOrder).addClass('wpdiscuz-sort-button-active');
58
+ // }
59
  $('#wc_unsubscribe_message, #wc_delete_content_message, #wc_follow_message').delay(3000).fadeOut(1500, function () {
60
  $(this).remove();
61
  location.href = location.href.substring(0, location.href.indexOf('wpdiscuzUrlAnchor') - 1);
219
  addAgreementInCookie(wcForm);
220
  $(currentSubmitBtn).removeClass('wc_not_clicked');
221
  var data = new FormData();
222
+ data.append('action', 'wpdAddComment');
223
  data.append('ahk', wpdiscuzAjaxObj.wpdiscuz_options.ahk);
224
  var inputs = $(":input", wcForm);
225
  inputs.each(function () {
286
  wpdCookiesConsent = false;
287
  }
288
 
289
+ var ajax = (!isNativeAjaxEnabled && !wpdiscuzUploader) ? getCustomAjaxObj(true, data) : getAjaxObj(true, data);
290
+ ajax.done(function (response) {
291
  $(currentSubmitBtn).addClass('wc_not_clicked');
292
  var messageKey = '';
293
  var message = '';
294
  try {
295
+ var r = $.parseJSON(response);
296
+ messageKey = r.code;
297
  if (parseInt(messageKey) >= 0) {
298
+ var isMain = r.is_main;
299
+ message = r.message;
300
+ $('.wpd-cc-value').html(r.wc_all_comments_count_new);
301
  if ($('.wpd-stat-threads-count').length) {
302
+ $('.wpd-stat-threads-count').html(r.threadsCount);
303
  }
304
  if ($('.wpd-stat-replies-count').length) {
305
+ $('.wpd-stat-replies-count').html(r.repliesCount);
306
  }
307
  if ($('.wpd-stat-authors-count').length) {
308
+ $('.wpd-stat-authors-count').html(r.authorsCount);
309
  }
310
  if (isMain) {
311
  $('.wc-thread-wrapper').prepend(message);
312
  } else {
313
  $('#wc-secondary-form-wrapper-' + messageKey).slideToggle(700);
314
+ if (r.is_in_same_container == 1) {
315
  $('#wc-secondary-form-wrapper-' + messageKey).after(message);
316
  } else {
317
  $('#wc-secondary-form-wrapper-' + messageKey).after(message.replace('wc-reply', 'wc-reply wc-no-left-margin'));
318
  }
319
  }
320
+ if (r.held_moderate && isCookiesEnabled) {
321
  var moderateCommentTime = 30 * 24 * 60 * 60;
322
  var moderateComments = '';
323
  if (Cookies.get('wc_moderate_comments_' + wpdiscuzPostId)) {
324
  moderateComments = Cookies.get('wc_moderate_comments_' + wpdiscuzPostId);
325
  }
326
+ moderateComments += r.new_comment_id + ',';
327
  Cookies.set('wc_moderate_comments_' + wpdiscuzPostId, moderateComments, {expires: moderateCommentTime, path: '/'});
328
  }
329
+ notifySubscribers(r);
330
+ wpdiscuzRedirect(r);
331
  if (isCookiesEnabled && wpdCookiesConsent) {
332
+ addCookie(wcForm, r);
333
  } else if (!wpdCookiesConsent) {
334
  $('.wpd-cookies-checkbox').removeAttr('checked');
335
  }
336
  wcForm.get(0).reset();
337
+ setCookieInForm(r);
338
  var currTArea = $('.wc_comment', wcForm);
339
  currTArea.css('height', '72px');
340
  setTextareaCharCount(currTArea, commentTextMaxLength);
345
  deleteAgreementFields();
346
  } else {
347
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
348
+ if (r.typeError != 'undefined' && r.typeError != null) {
349
+ message += ' ' + r.typeError;
350
  }
351
  wpdiscuzAjaxObj.setCommentMessage(wcForm, messageKey, message, true);
352
  }
353
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
354
+ $.each(r.callbackFunctions, function (i) {
355
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
356
+ wpdiscuzAjaxObj[r.callbackFunctions[i]](messageKey, wcForm);
357
  } else {
358
+ console.log(r.callbackFunctions[i] + " is not a function");
359
  }
360
  });
361
  }
374
  wpdiscuzReset();
375
  });
376
 
377
+ function notifySubscribers(r) {
378
+ if (!r.held_moderate) {
379
  var data = new FormData();
380
+ data.append('action', 'wpdCheckNotificationType');
381
+ data.append('comment_id', r.new_comment_id);
382
+ data.append('email', r.comment_author_email);
383
+ data.append('isParent', r.is_main);
384
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
385
+ ajax.done(function (response) {
386
  try {
387
+ r = $.parseJSON(response);
388
  } catch (e) {
389
  console.log(e);
390
  }
392
  }
393
  }
394
 
395
+ function wpdiscuzRedirect(r) {
396
+ if (r.redirect > 0 && r.new_comment_id) {
397
  var data = new FormData();
398
+ data.append('action', 'wpdRedirect');
399
+ data.append('commentId', r.new_comment_id);
400
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
401
+ ajax.done(function (response) {
402
+ r = $.parseJSON(response);
403
+ if (r.code == 1) {
404
  setTimeout(function () {
405
+ window.location.href = r.redirect_to;
406
  }, 5000);
407
  }
408
  });
450
  var commentID = getCommentID(uniqueID);
451
  var editButton = $(this);
452
  var data = new FormData();
453
+ data.append('action', 'wpdEditComment');
454
  data.append('commentId', commentID);
455
  var wcCommentTextBeforeEditingTop = $('#wc-comm-' + uniqueID + ' .wpd-top-custom-fields');
456
  var wcCommentTextBeforeEditingBottom = $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields');
457
  wcCommentTextBeforeEditing = wcCommentTextBeforeEditingTop.length ? '<div class="wpd-top-custom-fields">' + wcCommentTextBeforeEditingTop.html() + '</div>' : '';
458
  wcCommentTextBeforeEditing += '<div class="wc-comment-text">' + $('#wc-comm-' + uniqueID + ' .wc-comment-text').html() + '</div>';
459
  wcCommentTextBeforeEditing += wcCommentTextBeforeEditingBottom.length ? '<div class="wpd-bottom-custom-fields">' + $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields').html() + '</div>' : '';
460
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
461
+ ajax.done(function (response) {
462
  try {
463
+ var r = $.parseJSON(response);
464
  var message = '';
465
+ var messageKey = r.code;
466
  if (parseInt(messageKey) >= 0) {
467
  $('#wc-comm-' + uniqueID + ' .wpd-top-custom-fields').remove();
468
  $('#wc-comm-' + uniqueID + ' .wpd-bottom-custom-fields').remove();
469
+ $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-text').replaceWith(r.message);
470
  $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-footer .wc_editable_comment').hide();
471
  $('#wc-comm-' + uniqueID + ' > .wc-comment-right .wc-comment-footer .wc_cancel_edit').css('display', 'inline-block');
472
  var editForm = $('#wc-comm-' + uniqueID + ' > .wc-comment-right #wpdiscuz-edit-form');
494
 
495
  if (editCommentForm[0].checkValidity()) {
496
  var data = new FormData();
497
+ data.append('action', 'wpdSaveEditedComment');
498
  data.append('wpdiscuz_unique_id', uniqueID);
499
  data.append('commentId', commentID);
500
  var inputs = $(":input", editCommentForm);
509
  }
510
  });
511
 
512
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
513
+ ajax.done(function (response) {
514
  try {
515
+ var r = $.parseJSON(response);
516
+ var messageKey = r.code;
517
  var message = '';
518
  if (parseInt(messageKey) >= 0) {
519
+ wcCancelOrSave(uniqueID, r.message);
520
  } else {
521
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
522
  wpdiscuzAjaxObj.setCommentMessage(saveButton, messageKey, message, false);
523
  }
524
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
525
+ $.each(r.callbackFunctions, function (i) {
526
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
527
+ wpdiscuzAjaxObj[r.callbackFunctions[i]](messageKey, commentID, commentContent);
528
  } else {
529
+ console.log(r.callbackFunctions[i] + " is not a function");
530
  }
531
  });
532
  }
596
  loadButton.toggleClass(loaded);
597
  loadButton.toggleClass(loading);
598
  var data = new FormData();
599
+ data.append('action', 'wpdLoadMoreComments');
600
  data.append('offset', wpdiscuzLoadCount);
601
+ data.append('orderBy', wpdiscuzCommentsOrderBy);
602
+ data.append('order', wpdiscuzCommentsOrder);
603
  data.append('lastParentId', getLastParentID());
604
  data.append(wpdiscuzLastVisitKey, Cookies.get(wpdiscuzLastVisitKey));
605
  wpdiscuzLoadCount++;
606
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
607
+ ajax.done(function (response) {
608
  try {
609
+ var r = $.parseJSON(response);
610
+ $('.wpdiscuz-comment-pagination').before(r.comment_list);
611
+ setLoadMoreVisibility(r);
612
  $('.wpdiscuz_single').remove();
613
  isRun = false;
614
+ loadLastCommentId = r.loadLastCommentId;
615
  } catch (e) {
616
  console.log(e);
617
  }
622
  });
623
  }
624
 
625
+ function setLoadMoreVisibility(r) {
626
+ if (r.is_show_load_more == false) {
627
  $('#wpdiscuzHasMoreComments').val(0);
628
  $('.wc-load-more-submit').parents('.wpdiscuz-comment-pagination').hide();
629
  } else {
630
+ setLastParentID(r.last_parent_id);
631
  $('#wpdiscuzHasMoreComments').val(1);
632
  }
633
 
634
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
635
+ $.each(r.callbackFunctions, function (i) {
636
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
637
+ wpdiscuzAjaxObj[r.callbackFunctions[i]]();
638
  } else {
639
+ console.log(r.callbackFunctions[i] + " is not a function");
640
  }
641
  });
642
  }
659
  }
660
 
661
  var data = new FormData();
662
+ data.append('action', 'wpdVoteOnComment');
663
  data.append('commentId', commentID);
664
  data.append('voteType', voteType);
665
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
666
+ ajax.done(function (response) {
667
  $(currentVoteBtn).addClass('wc_not_clicked');
668
  try {
669
+ var r = $.parseJSON(response);
670
+ messageKey = r.code;
671
  if (parseInt(messageKey) >= 0) {
672
+ if (r.buttonsStyle == 'total') {
673
  var voteCountDiv = $('.wc-comment-footer .wc-vote-result', $('#comment-' + commentID));
674
  voteCountDiv.text(parseInt(voteCountDiv.text()) + voteType);
675
  } else {
676
  var likeCountDiv = $('.wc-comment-footer .wc-vote-result-like', $('#comment-' + commentID));
677
  var dislikeCountDiv = $('.wc-comment-footer .wc-vote-result-dislike', $('#comment-' + commentID));
678
+ likeCountDiv.text(r.likeCount);
679
+ dislikeCountDiv.text(r.dislikeCount);
680
+ parseInt(r.likeCount) > 0 ? likeCountDiv.addClass('wc-positive') : likeCountDiv.removeClass('wc-positive');
681
+ parseInt(r.dislikeCount) < 0 ? dislikeCountDiv.addClass('wc-negative') : dislikeCountDiv.removeClass('wc-negative');
682
  }
683
  } else {
684
  message = wpdiscuzAjaxObj.wpdiscuz_options[messageKey];
685
  wpdiscuzAjaxObj.setCommentMessage(currentVoteBtn, messageKey, message, false);
686
  }
687
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
688
+ $.each(r.callbackFunctions, function (i) {
689
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
690
+ wpdiscuzAjaxObj[r.callbackFunctions[i]](messageKey, commentID, voteType);
691
  } else {
692
+ console.log(r.callbackFunctions[i] + " is not a function");
693
  }
694
  });
695
  }
705
  if (!($(this).hasClass('wpdiscuz-sort-button-active'))) {
706
  var clickedBtn = $(this);
707
  if ($(this).hasClass('wpdiscuz-vote-sort-up')) {
708
+ wpdiscuzCommentsOrderBy = 'by_vote';
709
+ wpdiscuzCommentsOrder = 'desc';
710
  } else {
711
+ wpdiscuzCommentsOrderBy = 'comment_date_gmt';
712
+ wpdiscuzCommentsOrder = $(this).hasClass('wpdiscuz-date-sort-desc') ? 'desc' : 'asc';
713
  }
714
+ var cookieCommentsSorting = wpdiscuzAjaxObj.wpdiscuz_options.cookieCommentsSorting;
715
+ var postId = wpdiscuzAjaxObj.wpdiscuz_options.wc_post_id;
716
+ var orderData = {orderBy: wpdiscuzCommentsOrderBy, order: wpdiscuzCommentsOrder};
717
+ Cookies.set(cookieCommentsSorting + "_" + postId, JSON.stringify(orderData), {expires: 7, path: location.href});
718
  var data = new FormData();
719
+ data.append('action', 'wpdSorting');
720
+ data.append('orderBy', wpdiscuzCommentsOrderBy);
721
+ data.append('order', wpdiscuzCommentsOrder);
 
722
 
723
  var messageKey = '';
724
  var message = '';
725
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
726
+ ajax.done(function (response) {
727
  try {
728
+ var r = $.parseJSON(response);
729
+ messageKey = r.code;
730
+ message = r.message;
731
  if (parseInt(messageKey) > 0) {
732
  $('#wpcomm .wc-thread-wrapper .wc-comment').each(function () {
733
  $(this).remove();
734
  });
735
  $('#wpcomm .wc-thread-wrapper').prepend(message);
736
+ wpdiscuzLoadCount = parseInt(r.loadCount);
737
  } else {
738
  }
739
  setActiveButton(clickedBtn);
740
+ setLoadMoreVisibility(r);
741
  } catch (e) {
742
  console.log(e);
743
  }
762
  var commentId = matches[1];
763
  if (!$('#comment-' + commentId).length) {
764
  var data = new FormData();
765
+ data.append('action', 'wpdGetSingleComment');
766
  data.append('commentId', commentId);
767
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
768
+ ajax.done(function (response) {
769
  try {
770
+ var r = $.parseJSON(response);
771
  var scrollToSelector = '.wc-thread-wrapper';
772
+ if ($('#comment-' + r.parentCommentID).length) {
773
+ var parentComment = $('#comment-' + r.parentCommentID);
774
  $('.wc-toggle', parentComment).trigger('click');
775
+ scrollToSelector = '#comment-' + r.parentCommentID;
776
  } else {
777
+ $('.wc-thread-wrapper').prepend(r.message);
778
+ }
779
+
780
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
781
+ $.each(r.callbackFunctions, function (i) {
782
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
783
+ wpdiscuzAjaxObj[r.callbackFunctions[i]]();
784
+ } else {
785
+ console.log(r.callbackFunctions[i] + " is not a function");
786
+ }
787
+ });
788
  }
789
+
790
  $('html, body').animate({
791
  scrollTop: $(scrollToSelector).offset().top - 32
792
  }, 1000);
809
  var visibleCommentIds = getVisibleCommentIds();
810
  var email = (Cookies.get('comment_author_email_' + wpdiscuzCookiehash) != undefined && Cookies.get('comment_author_email_' + wpdiscuzCookiehash) != '') ? Cookies.get('comment_author_email_' + wpdiscuzCookiehash) : '';
811
  var data = new FormData();
812
+ data.append('action', 'wpdUpdateAutomatically');
813
  data.append('loadLastCommentId', loadLastCommentId);
814
  data.append('visibleCommentIds', visibleCommentIds);
815
  data.append('email', email);
816
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(false, data) : getCustomAjaxObj(false, data);
817
+ ajax.done(function (response) {
818
  try {
819
+ var r = $.parseJSON(response);
820
+ if (r.code == 1) {
821
  if (commentListUpdateType == 1) {
822
+ liveUpdateImmediately(r);
823
  } else {
824
+ wpdiscuzCommentArray = wpdiscuzCommentArray.concat(r.message.comments);
825
+ wpdiscuzReplyArray = wpdiscuzReplyArray.concat(r.message.author_replies);
826
  var newCommentArrayLength = wpdiscuzCommentArray.length;
827
  var newRepliesArrayLength = wpdiscuzReplyArray.length;
828
  if (newCommentArrayLength > 0) {
840
  $('.wc_new_reply').hide();
841
  }
842
  }
843
+ $('.wpd-cc-value').html(r.wc_all_comments_count_new);
844
+ loadLastCommentId = r.loadLastCommentId;
845
  }
846
  } catch (e) {
847
  console.log(e);
850
  });
851
  }
852
 
853
+ function liveUpdateImmediately(r) {
854
+ if (r.message !== undefined) {
855
  var commentObject;
856
+ var message = r.message;
857
  for (var i = 0; i < message.length; i++) {
858
  commentObject = message[i];
859
  addCommentToTree(commentObject.comment_parent, commentObject.comment_html);
863
 
864
  $(document).delegate('.wc-update-on-click', 'click', function () {
865
  var data = new FormData();
866
+ data.append('action', 'wpdUpdateOnClick');
867
  var clickedButton = $(this);
868
  if (clickedButton.hasClass('wc_new_comment')) {
869
  data.append('newCommentIds', wpdiscuzCommentArray.join());
871
  data.append('newCommentIds', wpdiscuzReplyArray.join());
872
  }
873
 
874
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
875
+ ajax.done(function (response) {
876
  try {
877
+ var r = $.parseJSON(response);
878
+ liveUpdateImmediately(r);
879
  if (clickedButton.hasClass('wc_new_comment')) {
880
  wpdiscuzCommentArray = [];
881
  $('.wc_new_comment').hide();
895
  var uniqueId = getUniqueID($(this));
896
  var commentId = getCommentID(uniqueId);
897
  var data = new FormData();
898
+ data.append('action', 'wpdReadMore');
899
  data.append('commentId', commentId);
900
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
901
+ ajax.done(function (response) {
902
  try {
903
+ var r = $.parseJSON(response);
904
+ if (r.code) {
905
+ $('#comment-' + commentId + ' .wc-comment-text').html(' ' + r.message);
906
  $('#wpdiscuz-readmore-' + uniqueId).remove();
907
  }
908
  } catch (e) {
1161
  function wpdiscuzShowReplies(uniqueId) {
1162
  var commentId = getCommentID(uniqueId);
1163
  var data = new FormData();
1164
+ data.append('action', 'wpdShowReplies');
1165
  data.append('commentId', commentId);
1166
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
1167
  ajax.done(function (response) {
1168
  try {
1169
  var obj = $.parseJSON(response);
1198
  var data = new FormData();
1199
  data.append('action', 'wpdStickComment');
1200
  data.append('commentId', commentId);
1201
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
1202
  ajax.done(function (response) {
1203
  try {
1204
+ var r = $.parseJSON(response);
1205
+ if (r.code == 1) {
1206
+ $('.wc_stick_text', btn).text(r.data);
1207
  setTimeout(function () {
1208
  location.reload(true);
1209
  }, 1000);
1224
  var data = new FormData();
1225
  data.append('action', 'wpdCloseThread');
1226
  data.append('commentId', commentId);
1227
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(true, data) : getCustomAjaxObj(true, data);
1228
  ajax.done(function (response) {
1229
  try {
1230
+ var r = $.parseJSON(response);
1231
+ if (r.code == 1) {
1232
+ $('.wc_close_btn', btn).text(r.data);
1233
  setTimeout(function () {
1234
  location.reload(true);
1235
  }, 1000);
1261
  $('.fas', btn).addClass('fa-pulse fa-spinner');
1262
  var data = new FormData();
1263
  data.append('action', 'wpdMostReactedComment');
1264
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(false, data) : getCustomAjaxObj(false, data);
 
 
 
1265
  ajax.done(function (response) {
1266
  try {
1267
  $('.fas', btn).removeClass('fa-pulse fa-spinner');
1278
  scrollToSelector = '#comment-' + r.commentId;
1279
  }
1280
 
1281
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
1282
+ $.each(r.callbackFunctions, function (i) {
1283
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
1284
+ wpdiscuzAjaxObj[r.callbackFunctions[i]]();
1285
+ } else {
1286
+ console.log(r.callbackFunctions[i] + " is not a function");
1287
+ }
1288
+ });
1289
+ }
1290
+
1291
  $('html, body').animate({
1292
  scrollTop: $(scrollToSelector).offset().top - 32
1293
  }, 1000);
1306
  var btn = $(this);
1307
  $('.fab', btn).addClass('fas fa-pulse fa-spinner');
1308
  var data = new FormData();
1309
+ data.append('action', 'wpdHottestThread');
1310
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(false, data) : getCustomAjaxObj(false, data);
 
 
 
1311
  ajax.done(function (response) {
1312
  try {
1313
  $('.fab', btn).removeClass('fas fa-pulse fa-spinner');
1328
  toggle.trigger('click');
1329
  }
1330
 
1331
+ if (r.callbackFunctions != null && r.callbackFunctions != 'undefined' && r.callbackFunctions.length) {
1332
+ $.each(r.callbackFunctions, function (i) {
1333
+ if (typeof wpdiscuzAjaxObj[r.callbackFunctions[i]] === "function") {
1334
+ wpdiscuzAjaxObj[r.callbackFunctions[i]]();
1335
+ } else {
1336
+ console.log(r.callbackFunctions[i] + " is not a function");
1337
+ }
1338
+ });
1339
+ }
1340
+
1341
  $('html, body').animate({
1342
  scrollTop: $(scrollToSelector).offset().top - 32
1343
  }, 1000);
1380
  var data = new FormData();
1381
  data.append('action', 'wpdFollowUser');
1382
  data.append('commentId', commentId);
1383
+ var ajax = isNativeAjaxEnabled ? getAjaxObj(false, data) : getCustomAjaxObj(false, data);
1384
 
1385
  ajax.done(function (response) {
1386
  btn.addClass('wc_not_clicked');
class.WpdiscuzCore.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  * Plugin Name: wpDiscuz
5
  * Description: Better comment system. Wordpress post comments and discussion plugin. Allows your visitors discuss, vote for comments and share.
6
- * Version: 5.1.5
7
  * Author: gVectors Team (A. Chakhoyan, G. Zakaryan, H. Martirosyan)
8
  * Author URI: https://gvectors.com/
9
  * Plugin URI: http://wpdiscuz.com/
@@ -31,8 +31,6 @@ include_once 'forms/wpDiscuzForm.php';
31
  include_once 'utils/class.WpdiscuzCache.php';
32
  include_once 'utils/class.WpdiscuzHelperAjax.php';
33
 
34
- //include_once 'utils/ajax/most-active-thread.php';
35
-
36
  class WpdiscuzCore implements WpDiscuzConstants {
37
 
38
  public $dbManager;
@@ -72,9 +70,10 @@ class WpdiscuzCore implements WpDiscuzConstants {
72
  $this->requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
73
 
74
  if ($this->optionsSerialized->isLoadOnlyParentComments) {
75
- add_action('wp_ajax_wpdiscuzShowReplies', array(&$this, 'showReplies'));
76
- add_action('wp_ajax_nopriv_wpdiscuzShowReplies', array(&$this, 'showReplies'));
77
  }
 
78
  self::$CURRENT_BLOG_ID = get_current_blog_id();
79
  register_activation_hook(__FILE__, array(&$this, 'pluginActivation'));
80
  register_deactivation_hook(__FILE__, array(&$this->wpdiscuzForm, 'removeAllFiles'));
@@ -128,27 +127,27 @@ class WpdiscuzCore implements WpDiscuzConstants {
128
  //add_action('wp_ajax_dismiss_wpdiscuz_tip_note', array(&$this->options, 'dismissTipNote'));
129
  //add_action('admin_notices', array(&$this->options, 'tipNote'));
130
  //}
131
-
132
- add_action('wp_ajax_loadMoreComments', array(&$this, 'loadMoreComments'));
133
- add_action('wp_ajax_nopriv_loadMoreComments', array(&$this, 'loadMoreComments'));
134
- add_action('wp_ajax_voteOnComment', array(&$this, 'voteOnComment'));
135
- add_action('wp_ajax_nopriv_voteOnComment', array(&$this, 'voteOnComment'));
136
- add_action('wp_ajax_wpdiscuzSorting', array(&$this, 'wpdiscuzSorting'));
137
- add_action('wp_ajax_nopriv_wpdiscuzSorting', array(&$this, 'wpdiscuzSorting'));
138
- add_action('wp_ajax_addComment', array(&$this, 'addComment'));
139
- add_action('wp_ajax_nopriv_addComment', array(&$this, 'addComment'));
140
- add_action('wp_ajax_getSingleComment', array(&$this, 'getSingleComment'));
141
- add_action('wp_ajax_nopriv_getSingleComment', array(&$this, 'getSingleComment'));
142
  add_action('wp_ajax_addSubscription', array(&$this->helperEmail, 'addSubscription'));
143
  add_action('wp_ajax_nopriv_addSubscription', array(&$this->helperEmail, 'addSubscription'));
144
- add_action('wp_ajax_checkNotificationType', array(&$this->helperEmail, 'checkNotificationType'));
145
- add_action('wp_ajax_nopriv_checkNotificationType', array(&$this->helperEmail, 'checkNotificationType'));
146
- add_action('wp_ajax_redirect', array(&$this, 'redirect'));
147
- add_action('wp_ajax_nopriv_redirect', array(&$this, 'redirect'));
148
- add_action('wp_ajax_wpdMostReacted', array(&$this, 'mostReacted'));
149
- add_action('wp_ajax_nopriv_wpdMostReacted', array(&$this, 'mostReacted'));
150
- add_action('wp_ajax_wpdHottest', array(&$this, 'hottest'));
151
- add_action('wp_ajax_nopriv_wpdHottest', array(&$this, 'hottest'));
 
152
  add_action('admin_post_removeVoteData', array(&$this->helperOptimization, 'removeVoteData'));
153
  add_action('admin_post_resetPhrases', array(&$this->helperOptimization, 'resetPhrases'));
154
  add_action('admin_post_disableAddonsDemo', array(&$this->helper, 'disableAddonsDemo'));
@@ -156,23 +155,23 @@ class WpdiscuzCore implements WpDiscuzConstants {
156
  add_action('transition_comment_status', array(&$this->helperOptimization, 'statusEventHandler'), 10, 3);
157
  $plugin = plugin_basename(__FILE__);
158
  add_filter("plugin_action_links_$plugin", array(&$this, 'addPluginSettingsLink'));
159
- add_filter('comments_clauses', array(&$this, 'getCommentsArgs'));
160
  if ($this->optionsSerialized->commentEditableTime) {
161
- add_action('wp_ajax_editComment', array(&$this, 'editComment'));
162
- add_action('wp_ajax_nopriv_editComment', array(&$this, 'editComment'));
163
- add_action('wp_ajax_saveEditedComment', array(&$this, 'saveEditedComment'));
164
- add_action('wp_ajax_nopriv_saveEditedComment', array(&$this, 'saveEditedComment'));
165
  }
166
  if ($this->optionsSerialized->commentListUpdateType) {
167
- add_action('wp_ajax_updateAutomatically', array(&$this, 'updateAutomatically'));
168
- add_action('wp_ajax_nopriv_updateAutomatically', array(&$this, 'updateAutomatically'));
169
- add_action('wp_ajax_updateOnClick', array(&$this, 'updateOnClick'));
170
- add_action('wp_ajax_nopriv_updateOnClick', array(&$this, 'updateOnClick'));
171
  }
172
 
173
  if ($this->optionsSerialized->commentReadMoreLimit) {
174
- add_action('wp_ajax_readMore', array(&$this, 'readMore'));
175
- add_action('wp_ajax_nopriv_readMore', array(&$this, 'readMore'));
176
  }
177
 
178
  add_action('wp_loaded', array(&$this, 'addNewRoles'));
@@ -618,9 +617,13 @@ class WpdiscuzCore implements WpDiscuzConstants {
618
  $commentContent = $this->helper->getCommentExcerpt($commentContent, $uniqueId);
619
  }
620
 
621
- $commentContent = '<div class="wc-comment-text">' . $commentContent . '</div>';
622
- $form->renderFrontCommentMetaHtml($comment->comment_ID, $commentContent);
623
- $messageArray['message'] = $commentContent;
 
 
 
 
624
  }
625
  } else {
626
  $messageArray['code'] = 'wc_comment_edit_not_possible';
@@ -631,8 +634,11 @@ class WpdiscuzCore implements WpDiscuzConstants {
631
  wp_die(json_encode($messageArray));
632
  }
633
 
 
 
 
634
  public function getSingleComment() {
635
- $messageArray = array('code' => 0);
636
  $commentId = isset($_POST['commentId']) ? intval($_POST['commentId']) : 0;
637
  $comment = get_comment($commentId);
638
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
@@ -653,11 +659,13 @@ class WpdiscuzCore implements WpDiscuzConstants {
653
  $commentListArgs['current_user'] = $currentUser;
654
  $this->form = $this->wpdiscuzForm->getForm($postId);
655
  $commentListArgs['can_user_comment'] = $this->form ? $this->form->isUserCanComment($currentUser, $postId) : true;
656
- $messageArray['message'] = wp_list_comments($commentListArgs, $comments);
657
- $messageArray['parentCommentID'] = $parentComment->comment_ID;
 
 
658
  }
659
  }
660
- wp_die(json_encode($messageArray));
661
  }
662
 
663
  /**
@@ -775,7 +783,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
775
  wp_die(json_encode($messageArray));
776
  }
777
 
778
- public function wpdiscuzSorting() {
779
  $messageArray = array('code' => 0);
780
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
781
  $orderBy = isset($_POST['orderBy']) ? trim($_POST['orderBy']) : '';
@@ -854,7 +862,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
854
  return $commentData;
855
  }
856
 
857
- private function _getWPComments(&$commentListArgs, &$commentData) {
858
  $commentList = array();
859
  if ($this->optionsSerialized->wordpressIsPaginate) {// PAGINATION
860
  $page = get_query_var('cpage');
@@ -1054,7 +1062,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
1054
  * add comments clauses
1055
  * add new orderby clause when sort type is vote and wordpress commnts order is older (ASC)
1056
  */
1057
- public function getCommentsArgs($args) {
1058
  global $wpdb;
1059
  if ($this->commentsArgs['caller'] === 'wpdiscuz' && ($this->commentsArgs['comment__in'] || isset($this->commentsArgs['sticky']))) {
1060
  $orderby = '';
@@ -1069,7 +1077,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
1069
  return $args;
1070
  }
1071
 
1072
- private function getDefaultCommentsArgs($postId = 0) {
1073
  global $user_ID;
1074
  $commenter = wp_get_current_commenter();
1075
  $args = array(
@@ -1409,7 +1417,9 @@ class WpdiscuzCore implements WpDiscuzConstants {
1409
  'is_rtl' => is_rtl(),
1410
  'user_follows' => $userFollows,
1411
  'current_user_email' => $currentUserEmail,
1412
- 'is_user_logged_in' => $isUserLoggedIn
 
 
1413
  );
1414
  return apply_filters('wpdiscuz_comment_list_args', $args);
1415
  }
@@ -1470,7 +1480,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
1470
  wp_die(json_encode($response));
1471
  }
1472
 
1473
- public function mostReacted() {
1474
  $response = array('code' => 0);
1475
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
1476
  if ($postId) {
@@ -1495,12 +1505,14 @@ class WpdiscuzCore implements WpDiscuzConstants {
1495
  $response['message'] = wp_list_comments($commentListArgs, $comments);
1496
  $response['commentId'] = $commentId;
1497
  $response['parentCommentID'] = $parentComment->comment_ID;
 
 
1498
  }
1499
  }
1500
  wp_die(json_encode($response));
1501
  }
1502
 
1503
- public function hottest() {
1504
  $response = array('code' => 0);
1505
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
1506
  if ($postId) {
@@ -1538,6 +1550,8 @@ class WpdiscuzCore implements WpDiscuzConstants {
1538
  $response['code'] = 1;
1539
  $response['message'] = wp_list_comments($commentListArgs, $comments);
1540
  $response['commentId'] = $hottestCommentId;
 
 
1541
  }
1542
  }
1543
  wp_die(json_encode($response));
3
  /*
4
  * Plugin Name: wpDiscuz
5
  * Description: Better comment system. Wordpress post comments and discussion plugin. Allows your visitors discuss, vote for comments and share.
6
+ * Version: 5.1.6
7
  * Author: gVectors Team (A. Chakhoyan, G. Zakaryan, H. Martirosyan)
8
  * Author URI: https://gvectors.com/
9
  * Plugin URI: http://wpdiscuz.com/
31
  include_once 'utils/class.WpdiscuzCache.php';
32
  include_once 'utils/class.WpdiscuzHelperAjax.php';
33
 
 
 
34
  class WpdiscuzCore implements WpDiscuzConstants {
35
 
36
  public $dbManager;
70
  $this->requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
71
 
72
  if ($this->optionsSerialized->isLoadOnlyParentComments) {
73
+ add_action('wp_ajax_wpdShowReplies', array(&$this, 'showReplies'));
74
+ add_action('wp_ajax_nopriv_wpdShowReplies', array(&$this, 'showReplies'));
75
  }
76
+
77
  self::$CURRENT_BLOG_ID = get_current_blog_id();
78
  register_activation_hook(__FILE__, array(&$this, 'pluginActivation'));
79
  register_deactivation_hook(__FILE__, array(&$this->wpdiscuzForm, 'removeAllFiles'));
127
  //add_action('wp_ajax_dismiss_wpdiscuz_tip_note', array(&$this->options, 'dismissTipNote'));
128
  //add_action('admin_notices', array(&$this->options, 'tipNote'));
129
  //}
130
+ add_action('wp_ajax_wpdLoadMoreComments', array(&$this, 'loadMoreComments'));
131
+ add_action('wp_ajax_nopriv_wpdLoadMoreComments', array(&$this, 'loadMoreComments'));
132
+ add_action('wp_ajax_wpdVoteOnComment', array(&$this, 'voteOnComment'));
133
+ add_action('wp_ajax_nopriv_wpdVoteOnComment', array(&$this, 'voteOnComment'));
134
+ add_action('wp_ajax_wpdSorting', array(&$this, 'sorting'));
135
+ add_action('wp_ajax_nopriv_wpdSorting', array(&$this, 'sorting'));
136
+ add_action('wp_ajax_wpdAddComment', array(&$this, 'addComment'));
137
+ add_action('wp_ajax_nopriv_wpdAddComment', array(&$this, 'addComment'));
138
+ add_action('wp_ajax_wpdGetSingleComment', array(&$this, 'getSingleComment'));
139
+ add_action('wp_ajax_nopriv_wpdGetSingleComment', array(&$this, 'getSingleComment'));
 
140
  add_action('wp_ajax_addSubscription', array(&$this->helperEmail, 'addSubscription'));
141
  add_action('wp_ajax_nopriv_addSubscription', array(&$this->helperEmail, 'addSubscription'));
142
+ add_action('wp_ajax_wpdCheckNotificationType', array(&$this->helperEmail, 'checkNotificationType'));
143
+ add_action('wp_ajax_nopriv_wpdCheckNotificationType', array(&$this->helperEmail, 'checkNotificationType'));
144
+ add_action('wp_ajax_wpdRedirect', array(&$this, 'redirect'));
145
+ add_action('wp_ajax_nopriv_wpdRedirect', array(&$this, 'redirect'));
146
+ add_action('wp_ajax_wpdMostReactedComment', array(&$this, 'mostReactedComment'));
147
+ add_action('wp_ajax_nopriv_wpdMostReactedComment', array(&$this, 'mostReactedComment'));
148
+ add_action('wp_ajax_wpdHottestThread', array(&$this, 'hottestThread'));
149
+ add_action('wp_ajax_nopriv_wpdHottestThread', array(&$this, 'hottestThread'));
150
+
151
  add_action('admin_post_removeVoteData', array(&$this->helperOptimization, 'removeVoteData'));
152
  add_action('admin_post_resetPhrases', array(&$this->helperOptimization, 'resetPhrases'));
153
  add_action('admin_post_disableAddonsDemo', array(&$this->helper, 'disableAddonsDemo'));
155
  add_action('transition_comment_status', array(&$this->helperOptimization, 'statusEventHandler'), 10, 3);
156
  $plugin = plugin_basename(__FILE__);
157
  add_filter("plugin_action_links_$plugin", array(&$this, 'addPluginSettingsLink'));
158
+ add_filter('comments_clauses', array(&$this, 'commentsClauses'));
159
  if ($this->optionsSerialized->commentEditableTime) {
160
+ add_action('wp_ajax_wpdEditComment', array(&$this, 'editComment'));
161
+ add_action('wp_ajax_nopriv_wpdEditComment', array(&$this, 'editComment'));
162
+ add_action('wp_ajax_wpdSaveEditedComment', array(&$this, 'saveEditedComment'));
163
+ add_action('wp_ajax_nopriv_wpdSaveEditedComment', array(&$this, 'saveEditedComment'));
164
  }
165
  if ($this->optionsSerialized->commentListUpdateType) {
166
+ add_action('wp_ajax_wpdUpdateAutomatically', array(&$this, 'updateAutomatically'));
167
+ add_action('wp_ajax_nopriv_wpdUpdateAutomatically', array(&$this, 'updateAutomatically'));
168
+ add_action('wp_ajax_wpdUpdateOnClick', array(&$this, 'updateOnClick'));
169
+ add_action('wp_ajax_nopriv_wpdUpdateOnClick', array(&$this, 'updateOnClick'));
170
  }
171
 
172
  if ($this->optionsSerialized->commentReadMoreLimit) {
173
+ add_action('wp_ajax_wpdReadMore', array(&$this, 'readMore'));
174
+ add_action('wp_ajax_nopriv_wpdReadMore', array(&$this, 'readMore'));
175
  }
176
 
177
  add_action('wp_loaded', array(&$this, 'addNewRoles'));
617
  $commentContent = $this->helper->getCommentExcerpt($commentContent, $uniqueId);
618
  }
619
 
620
+ $commentHtml = '<div class="wc-comment-text">' . $commentContent;
621
+ if ($comment->comment_approved == 0) {
622
+ $commentHtml .= '<p class="wc_held_for_moderate">' . $this->optionsSerialized->phrases['wc_held_for_moderate'] . '</p>';
623
+ }
624
+ $commentHtml .= '</div>';
625
+ $form->renderFrontCommentMetaHtml($comment->comment_ID, $commentHtml);
626
+ $messageArray['message'] = $commentHtml;
627
  }
628
  } else {
629
  $messageArray['code'] = 'wc_comment_edit_not_possible';
634
  wp_die(json_encode($messageArray));
635
  }
636
 
637
+ /**
638
+ * Gets single comment with its full thread and displays in comment list
639
+ */
640
  public function getSingleComment() {
641
+ $response = array('code' => 0);
642
  $commentId = isset($_POST['commentId']) ? intval($_POST['commentId']) : 0;
643
  $comment = get_comment($commentId);
644
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
659
  $commentListArgs['current_user'] = $currentUser;
660
  $this->form = $this->wpdiscuzForm->getForm($postId);
661
  $commentListArgs['can_user_comment'] = $this->form ? $this->form->isUserCanComment($currentUser, $postId) : true;
662
+ $response['message'] = wp_list_comments($commentListArgs, $comments);
663
+ $response['parentCommentID'] = $parentComment->comment_ID;
664
+ $response['callbackFunctions'] = array();
665
+ $response = apply_filters('wpdiscuz_wmu_lightbox', $response);
666
  }
667
  }
668
+ wp_die(json_encode($response));
669
  }
670
 
671
  /**
783
  wp_die(json_encode($messageArray));
784
  }
785
 
786
+ public function sorting() {
787
  $messageArray = array('code' => 0);
788
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
789
  $orderBy = isset($_POST['orderBy']) ? trim($_POST['orderBy']) : '';
862
  return $commentData;
863
  }
864
 
865
+ public function _getWPComments(&$commentListArgs, &$commentData) {
866
  $commentList = array();
867
  if ($this->optionsSerialized->wordpressIsPaginate) {// PAGINATION
868
  $page = get_query_var('cpage');
1062
  * add comments clauses
1063
  * add new orderby clause when sort type is vote and wordpress commnts order is older (ASC)
1064
  */
1065
+ public function commentsClauses($args) {
1066
  global $wpdb;
1067
  if ($this->commentsArgs['caller'] === 'wpdiscuz' && ($this->commentsArgs['comment__in'] || isset($this->commentsArgs['sticky']))) {
1068
  $orderby = '';
1077
  return $args;
1078
  }
1079
 
1080
+ public function getDefaultCommentsArgs($postId = 0) {
1081
  global $user_ID;
1082
  $commenter = wp_get_current_commenter();
1083
  $args = array(
1417
  'is_rtl' => is_rtl(),
1418
  'user_follows' => $userFollows,
1419
  'current_user_email' => $currentUserEmail,
1420
+ 'comment_author_email' => $currentUserEmail,
1421
+ 'is_user_logged_in' => $isUserLoggedIn,
1422
+ 'is_share_enabled' => $this->optionsSerialized->isShareEnabled()
1423
  );
1424
  return apply_filters('wpdiscuz_comment_list_args', $args);
1425
  }
1480
  wp_die(json_encode($response));
1481
  }
1482
 
1483
+ public function mostReactedComment() {
1484
  $response = array('code' => 0);
1485
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
1486
  if ($postId) {
1505
  $response['message'] = wp_list_comments($commentListArgs, $comments);
1506
  $response['commentId'] = $commentId;
1507
  $response['parentCommentID'] = $parentComment->comment_ID;
1508
+ $response['callbackFunctions'] = array();
1509
+ $response = apply_filters('wpdiscuz_wmu_lightbox', $response);
1510
  }
1511
  }
1512
  wp_die(json_encode($response));
1513
  }
1514
 
1515
+ public function hottestThread() {
1516
  $response = array('code' => 0);
1517
  $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
1518
  if ($postId) {
1550
  $response['code'] = 1;
1551
  $response['message'] = wp_list_comments($commentListArgs, $comments);
1552
  $response['commentId'] = $hottestCommentId;
1553
+ $response['callbackFunctions'] = array();
1554
+ $response = apply_filters('wpdiscuz_wmu_lightbox', $response);
1555
  }
1556
  }
1557
  wp_die(json_encode($response));
forms/wpdFormAttr/Form.php CHANGED
@@ -185,7 +185,7 @@ class Form {
185
  $oldCommentRating = get_comment_meta($commentID, $mettaKey, true);
186
  if ($oldCommentRating && $commentApproved) {
187
  $postID = $comment->comment_post_ID;
188
- $postRatingMeta = get_post_meta($postID, wpdFormConst::WPDISCUZ_RATING_COUNT , true);
189
  $oldCommentRatingCount = $postRatingMeta[$mettaKey][$oldCommentRating] - 1;
190
  if ($oldCommentRatingCount > 0) {
191
  $postRatingMeta[$mettaKey][$oldCommentRating] = $oldCommentRatingCount;
@@ -303,8 +303,8 @@ class Form {
303
  $results = $wpdb->get_results($sql, ARRAY_A);
304
  if ($results) {
305
  foreach ($results as $result) {
306
- $rating = intval($result['rating']);
307
- if ($result['rcount'] > 0 && $rating >= 1 && $rating <= 5) {
308
  $ratingData[$key][$rating] = $result['rcount'];
309
  }
310
  }
@@ -830,21 +830,26 @@ class Form {
830
 
831
  public function isUserCanComment($currentUser, $postId = 0, &$message = '') {
832
  global $post;
 
 
 
833
  $user_can_comment = true;
834
  $this->initFormMeta();
835
- if ($currentUser && $currentUser->ID && $currentUser->roles && is_array($currentUser->roles)) {
836
- $postId = $post && isset($post->ID) ? $post->ID : $postId;
837
- $this->generalOptions['roles_cannot_comment'] = isset($this->generalOptions['roles_cannot_comment']) ? $this->generalOptions['roles_cannot_comment'] : array();
838
- foreach ($currentUser->roles as $role) {
839
- if (in_array($role, $this->generalOptions['roles_cannot_comment'])) {
840
- //Filter hook to add extra conditions in user role dependent restriction.
841
- $user_can_comment = apply_filters('wpdiscuz_user_role_can_comment', false, $role);
842
- $message = $this->wpdOptions->phrases['wc_roles_cannot_comment_message'];
843
- break;
 
 
844
  }
 
 
845
  }
846
- } else {
847
- $user_can_comment = $this->generalOptions['guest_can_comment'];
848
  }
849
  if ($user_can_comment && class_exists('WooCommerce') && get_post_type($postId) == 'product') {
850
  if (get_option('woocommerce_review_rating_verification_required') === 'no' || wc_customer_bought_product('', get_current_user_id(), $postId)) {
185
  $oldCommentRating = get_comment_meta($commentID, $mettaKey, true);
186
  if ($oldCommentRating && $commentApproved) {
187
  $postID = $comment->comment_post_ID;
188
+ $postRatingMeta = get_post_meta($postID, wpdFormConst::WPDISCUZ_RATING_COUNT, true);
189
  $oldCommentRatingCount = $postRatingMeta[$mettaKey][$oldCommentRating] - 1;
190
  if ($oldCommentRatingCount > 0) {
191
  $postRatingMeta[$mettaKey][$oldCommentRating] = $oldCommentRatingCount;
303
  $results = $wpdb->get_results($sql, ARRAY_A);
304
  if ($results) {
305
  foreach ($results as $result) {
306
+ $rating = intval($result['rating']);
307
+ if ($result['rcount'] > 0 && $rating >= 1 && $rating <= 5) {
308
  $ratingData[$key][$rating] = $result['rcount'];
309
  }
310
  }
830
 
831
  public function isUserCanComment($currentUser, $postId = 0, &$message = '') {
832
  global $post;
833
+ if (!$post) {
834
+ $post = get_post($postId);
835
+ }
836
  $user_can_comment = true;
837
  $this->initFormMeta();
838
+ if ($currentUser && $currentUser->ID && $post->post_author && $post->post_author != $currentUser->ID) {
839
+ if ($currentUser->roles && is_array($currentUser->roles)) {
840
+ $postId = $post && isset($post->ID) ? $post->ID : $postId;
841
+ $this->generalOptions['roles_cannot_comment'] = isset($this->generalOptions['roles_cannot_comment']) ? $this->generalOptions['roles_cannot_comment'] : array();
842
+ foreach ($currentUser->roles as $role) {
843
+ if (in_array($role, $this->generalOptions['roles_cannot_comment'])) {
844
+ //Filter hook to add extra conditions in user role dependent restriction.
845
+ $user_can_comment = apply_filters('wpdiscuz_user_role_can_comment', false, $role);
846
+ $message = $this->wpdOptions->phrases['wc_roles_cannot_comment_message'];
847
+ break;
848
+ }
849
  }
850
+ } else {
851
+ $user_can_comment = $this->generalOptions['guest_can_comment'];
852
  }
 
 
853
  }
854
  if ($user_can_comment && class_exists('WooCommerce') && get_post_type($postId) == 'product') {
855
  if (get_option('woocommerce_review_rating_verification_required') === 'no' || wc_customer_bought_product('', get_current_user_id(), $postId)) {
forms/wpdFormAttr/Login/SocialLogin.php CHANGED
@@ -438,7 +438,7 @@ class SocialLogin {
438
  $user = get_user_by('id', $userID);
439
  wp_set_current_user($userID, $user->user_login);
440
  wp_set_auth_cookie($userID);
441
- do_action('wp_login', $user->user_login);
442
  }
443
  }
444
 
438
  $user = get_user_by('id', $userID);
439
  wp_set_current_user($userID, $user->user_login);
440
  wp_set_auth_cookie($userID);
441
+ do_action('wp_login', $user->user_login, $user);
442
  }
443
  }
444
 
includes/class.WpdiscuzDBManager.php CHANGED
@@ -288,6 +288,9 @@ class WpdiscuzDBManager implements WpDiscuzConstants {
288
  }
289
 
290
  public function addEmailNotification($subsriptionId, $postId, $email, $subscriptionType, $confirm = 0) {
 
 
 
291
  if ($subscriptionType != self::SUBSCRIPTION_COMMENT) {
292
  $this->deleteCommentNotifications($subsriptionId, $email);
293
  }
@@ -789,17 +792,17 @@ class WpdiscuzDBManager implements WpDiscuzConstants {
789
  $result = $this->db->get_results($sql);
790
  return $result;
791
  }
792
-
793
  public function unfollowById($fId) {
794
  $sql = $this->db->prepare("DELETE FROM {$this->followUsers} WHERE `id` = %d;", intval($fId));
795
  $this->db->query($sql);
796
  }
797
-
798
  public function unfollowByEmail($email) {
799
  $sql = $this->db->prepare("DELETE FROM {$this->followUsers} WHERE `follower_email` = %s;", trim($email));
800
  $this->db->query($sql);
801
  }
802
-
803
  /**
804
  * remove user related follows
805
  * @param type $email the user email who other users following
@@ -879,6 +882,10 @@ class WpdiscuzDBManager implements WpDiscuzConstants {
879
  $followerName = isset($args['follower_name']) ? trim($args['follower_name']) : '';
880
  $confirm = isset($args['confirm']) ? intval($args['confirm']) : 0;
881
 
 
 
 
 
882
  if ($userEmail && $followerId && $followerEmail) {
883
  $currentDate = current_time('mysql');
884
  $currentTimestamp = strtotime($currentDate);
288
  }
289
 
290
  public function addEmailNotification($subsriptionId, $postId, $email, $subscriptionType, $confirm = 0) {
291
+ if (strpos($email, '@example.com') !== false) {
292
+ return false;
293
+ }
294
  if ($subscriptionType != self::SUBSCRIPTION_COMMENT) {
295
  $this->deleteCommentNotifications($subsriptionId, $email);
296
  }
792
  $result = $this->db->get_results($sql);
793
  return $result;
794
  }
795
+
796
  public function unfollowById($fId) {
797
  $sql = $this->db->prepare("DELETE FROM {$this->followUsers} WHERE `id` = %d;", intval($fId));
798
  $this->db->query($sql);
799
  }
800
+
801
  public function unfollowByEmail($email) {
802
  $sql = $this->db->prepare("DELETE FROM {$this->followUsers} WHERE `follower_email` = %s;", trim($email));
803
  $this->db->query($sql);
804
  }
805
+
806
  /**
807
  * remove user related follows
808
  * @param type $email the user email who other users following
882
  $followerName = isset($args['follower_name']) ? trim($args['follower_name']) : '';
883
  $confirm = isset($args['confirm']) ? intval($args['confirm']) : 0;
884
 
885
+ if (strpos($followerEmail, '@example.com') !== false) {
886
+ return false;
887
+ }
888
+
889
  if ($userEmail && $followerId && $followerEmail) {
890
  $currentDate = current_time('mysql');
891
  $currentTimestamp = strtotime($currentDate);
includes/interface.WpDiscuzConstants.php CHANGED
@@ -30,6 +30,7 @@ interface WpDiscuzConstants {
30
  const TRS_POSTS_AUTHORS = 'wpdiscuz_posts_authors';
31
  /* === COOKIES === */
32
  const COOKIE_LAST_VISIT = 'wordpress_last_visit';
 
33
  /* === CACHE === */
34
  const GRAVATARS_CACHE_DIR = '/wpdiscuz/cache/gravatars/';
35
  const GRAVATARS_CACHE_ADD_RECURRENCE = 3;
30
  const TRS_POSTS_AUTHORS = 'wpdiscuz_posts_authors';
31
  /* === COOKIES === */
32
  const COOKIE_LAST_VISIT = 'wordpress_last_visit';
33
+ const COOKIE_COMMENTS_SORTING = 'wpdiscuz_comments_sorting';
34
  /* === CACHE === */
35
  const GRAVATARS_CACHE_DIR = '/wpdiscuz/cache/gravatars/';
36
  const GRAVATARS_CACHE_ADD_RECURRENCE = 3;
languages/wpdiscuz.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: wpDiscuz\n"
6
- "POT-Creation-Date: 2018-08-06 17:50+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
@@ -21,85 +21,85 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "Language: "
23
 
24
- #: class.WpdiscuzCore.php:265
25
  msgid "Every 3 hours"
26
  msgstr ""
27
 
28
- #: class.WpdiscuzCore.php:269
29
  msgid "Every 48 hours"
30
  msgstr ""
31
 
32
- #: class.WpdiscuzCore.php:382
33
  msgid "We are sorry, but this comment cannot be posted. Please try later."
34
  msgstr ""
35
 
36
- #: class.WpdiscuzCore.php:391
37
  msgid "We are sorry, you are not allowed to comment more than one time!"
38
  msgstr ""
39
 
40
- #: class.WpdiscuzCore.php:452
41
  msgid "This is closed comment thread"
42
  msgstr ""
43
 
44
- #: class.WpdiscuzCore.php:1105 class.WpdiscuzCore.php:1337
45
  msgid "Settings"
46
  msgstr ""
47
 
48
- #: class.WpdiscuzCore.php:1107 class.WpdiscuzCore.php:1339
49
  msgid "Phrases"
50
  msgstr ""
51
 
52
- #: class.WpdiscuzCore.php:1109
53
  msgid "Tools"
54
  msgstr ""
55
 
56
- #: class.WpdiscuzCore.php:1110 options/html-options.php:22
57
  #: options/html-options.php:64 options/options-layouts/settings-addons.php:14
58
  msgid "Addons"
59
  msgstr ""
60
 
61
- #: class.WpdiscuzCore.php:1122
62
  msgid "Do you really want to reset all options?"
63
  msgstr ""
64
 
65
- #: class.WpdiscuzCore.php:1123
66
  msgid "Do you really want to remove voting data?"
67
  msgstr ""
68
 
69
- #: class.WpdiscuzCore.php:1124
70
  msgid "Do you really want to reset phrases?"
71
  msgstr ""
72
 
73
- #: class.WpdiscuzCore.php:1125
74
  msgid "Do you really want to delete gravatars cache?"
75
  msgstr ""
76
 
77
- #: class.WpdiscuzCore.php:1126
78
  msgid "Do you really want to delete statistics cache?"
79
  msgstr ""
80
 
81
- #: class.WpdiscuzCore.php:1163
82
  msgid "Please check one of reasons before sending feedback!"
83
  msgstr ""
84
 
85
- #: class.WpdiscuzCore.php:1164 utils/deactivation-reason-modal.php:58
86
  msgid "Please provide more information"
87
  msgstr ""
88
 
89
- #: class.WpdiscuzCore.php:1424 options/phrases-layouts/phrases-comment.php:56
90
  msgid "Admin"
91
  msgstr ""
92
 
93
- #: class.WpdiscuzCore.php:1426 class.WpdiscuzCore.php:1435
94
  #: options/phrases-layouts/phrases-comment.php:58
95
  msgid "Author"
96
  msgstr ""
97
 
98
- #: class.WpdiscuzCore.php:1430 options/phrases-layouts/phrases-comment.php:64
99
  msgid "Member"
100
  msgstr ""
101
 
102
- #: class.WpdiscuzCore.php:1436 options/phrases-layouts/phrases-comment.php:62
103
  msgid "Guest"
104
  msgstr ""
105
 
@@ -168,7 +168,7 @@ msgstr ""
168
  msgid "Add Field"
169
  msgstr ""
170
 
171
- #: forms/wpDiscuzForm.php:227 options/class.WpdiscuzOptionsSerialized.php:815
172
  #: options/phrases-layouts/phrases-comment.php:19
173
  #: forms/wpdFormAttr/Field/Field.php:63
174
  msgid "Edit"
@@ -205,7 +205,7 @@ msgstr ""
205
  msgid "Leave a Reply"
206
  msgstr ""
207
 
208
- #: forms/wpDiscuzForm.php:421 forms/wpdFormAttr/Form.php:873
209
  #: forms/wpdFormAttr/Field/AgreementCheckbox.php:12
210
  #: forms/wpdFormAttr/Field/CheckboxField.php:12
211
  #: forms/wpdFormAttr/Field/ColorField.php:12
@@ -228,8 +228,8 @@ msgstr ""
228
  msgid "Name"
229
  msgstr ""
230
 
231
- #: forms/wpDiscuzForm.php:423 options/class.WpdiscuzOptionsSerialized.php:801
232
- #: options/html-phrases.php:25 forms/wpdFormAttr/Form.php:880
233
  #: forms/wpdFormAttr/Field/DefaultField/Email.php:65
234
  msgid "Email"
235
  msgstr ""
@@ -238,7 +238,7 @@ msgstr ""
238
  msgid "WebSite URL"
239
  msgstr ""
240
 
241
- #: forms/wpDiscuzForm.php:428 forms/wpdFormAttr/Form.php:903
242
  #: forms/wpdFormAttr/Field/DefaultField/Submit.php:116
243
  msgid "Post Comment"
244
  msgstr ""
@@ -257,150 +257,150 @@ msgstr ""
257
  msgid "Add Comment Form"
258
  msgstr ""
259
 
260
- #: options/class.WpdiscuzOptions.php:22 options/class.WpdiscuzOptions.php:142
261
- #: options/class.WpdiscuzOptions.php:367
262
  msgid "Hacker?"
263
  msgstr ""
264
 
265
- #: options/class.WpdiscuzOptions.php:133
266
  msgid "Settings updated"
267
  msgstr ""
268
 
269
- #: options/class.WpdiscuzOptions.php:314
270
  msgid "Phrases updated"
271
  msgstr ""
272
 
273
- #: options/class.WpdiscuzOptions.php:341
274
  msgid "Options were backed up!"
275
  msgstr ""
276
 
277
- #: options/class.WpdiscuzOptions.php:343
278
  msgid "Cannot back up the options!"
279
  msgstr ""
280
 
281
- #: options/class.WpdiscuzOptions.php:354
282
  msgid "Options Imported Successfully!"
283
  msgstr ""
284
 
285
- #: options/class.WpdiscuzOptions.php:356
286
  msgid "Error occured! File content is empty or data is not valid!"
287
  msgstr ""
288
 
289
- #: options/class.WpdiscuzOptions.php:359
290
  msgid "Error occured! Can not get file content!"
291
  msgstr ""
292
 
293
- #: options/class.WpdiscuzOptions.php:362
294
  msgid "Error occured! Please choose file!"
295
  msgstr ""
296
 
297
- #: options/class.WpdiscuzOptions.php:378
298
  msgid ""
299
  "Brings an ocean of emotions to your comments. It comes with an awesome smile "
300
  "package."
301
  msgstr ""
302
 
303
- #: options/class.WpdiscuzOptions.php:379
304
  msgid ""
305
  "Extended information about comment author with Profile, Activity, Votes and "
306
  "Subscriptions Tabs on pop-up window."
307
  msgstr ""
308
 
309
- #: options/class.WpdiscuzOptions.php:380
310
  msgid ""
311
  "Real-time online user checking, pop-up notification of new online users and "
312
  "online/offline badges."
313
  msgstr ""
314
 
315
- #: options/class.WpdiscuzOptions.php:381
316
  msgid ""
317
  "Allows to create private comment threads. Rich management options in "
318
  "dashboard by user roles."
319
  msgstr ""
320
 
321
- #: options/class.WpdiscuzOptions.php:382
322
  msgid ""
323
  "Total control over comment subscriptions. Full list, monitor, manage, filter,"
324
  " unsubscribe, confirm..."
325
  msgstr ""
326
 
327
- #: options/class.WpdiscuzOptions.php:383
328
  msgid ""
329
  "A full-fledged tool-kit for advertising in comment section of your website. "
330
  "Separate banner and ad managment."
331
  msgstr ""
332
 
333
- #: options/class.WpdiscuzOptions.php:384
334
  msgid ""
335
  "Allows to mention comments and users in comment text using #comment-id and "
336
  "@username tags."
337
  msgstr ""
338
 
339
- #: options/class.WpdiscuzOptions.php:385
340
  msgid ""
341
  "See comment likers and voters of each comment. Adds user reputation and "
342
  "badges based on received likes."
343
  msgstr ""
344
 
345
- #: options/class.WpdiscuzOptions.php:386
346
  msgid ""
347
  "Comment reporting tools. Auto-moderates comments based on number of flags "
348
  "and dislikes."
349
  msgstr ""
350
 
351
- #: options/class.WpdiscuzOptions.php:387
352
  msgid ""
353
  "Adds a smart and intuitive AJAX \"Translate\" button with 60 language "
354
  "options. Uses free translation API."
355
  msgstr ""
356
 
357
- #: options/class.WpdiscuzOptions.php:388
358
  msgid ""
359
  "AJAX powered front-end comment search. It starts searching while you type "
360
  "search words. "
361
  msgstr ""
362
 
363
- #: options/class.WpdiscuzOptions.php:389
364
  msgid ""
365
  "Most voted comments, Active comment threads, Most commented posts, Active "
366
  "comment authors"
367
  msgstr ""
368
 
369
- #: options/class.WpdiscuzOptions.php:390
370
  msgid ""
371
  "All in one powerful yet simple admin toolkit to moderate comments on front-"
372
  "end."
373
  msgstr ""
374
 
375
- #: options/class.WpdiscuzOptions.php:391
376
  msgid ""
377
  "Extended comment attachment system. Allows to upload images, videos, audios "
378
  "and other file types."
379
  msgstr ""
380
 
381
- #: options/class.WpdiscuzOptions.php:392
382
  msgid ""
383
  "Adds No CAPTCHA on all comment forms. Stops spam and bot comments with "
384
  "Google reCAPTCHA"
385
  msgstr ""
386
 
387
- #: options/class.WpdiscuzOptions.php:393
388
  msgid ""
389
  "Integrates myCRED Badges and Ranks. Converts wpDiscuz comment votes/likes to "
390
  "myCRED points. "
391
  msgstr ""
392
 
393
- #: options/class.WpdiscuzOptions.php:394
394
  msgid ""
395
  "Allows censoring comment words. Filters comments and replaces those phrases "
396
  "with custom words."
397
  msgstr ""
398
 
399
- #: options/class.WpdiscuzOptions.php:400
400
  msgid "Custom Comment Forms"
401
  msgstr ""
402
 
403
- #: options/class.WpdiscuzOptions.php:401
404
  msgid ""
405
  "You can create custom comment forms with wpDiscuz. wpDiscuz 4 comes with "
406
  "custom comment forms and fields. You can create custom comment forms for "
@@ -408,63 +408,63 @@ msgid ""
408
  "eaxample: text, dropdown, rating, checkboxes, etc..."
409
  msgstr ""
410
 
411
- #: options/class.WpdiscuzOptions.php:404
412
  msgid "Emoticons"
413
  msgstr ""
414
 
415
- #: options/class.WpdiscuzOptions.php:405
416
  msgid ""
417
  "You can add more emotions to your comments using wpDiscuz Emoticons addon."
418
  msgstr ""
419
 
420
- #: options/class.WpdiscuzOptions.php:408
421
  msgid "Ads Manager"
422
  msgstr ""
423
 
424
- #: options/class.WpdiscuzOptions.php:409
425
  msgid ""
426
  "Increase your income using ad banners. Comment area is the most active "
427
  "sections for advertising. wpDiscuz Ads Manager addon is designed to help you "
428
  "add banners and control ads in this section."
429
  msgstr ""
430
 
431
- #: options/class.WpdiscuzOptions.php:412
432
  msgid "User and Comment Mentioning"
433
  msgstr ""
434
 
435
- #: options/class.WpdiscuzOptions.php:413
436
  msgid ""
437
  "Using wpDiscuz User &amp; Comment Mentioning addon you can allow commenters "
438
  "mention comments and users in comment text using #comment-id and @username "
439
  "tags."
440
  msgstr ""
441
 
442
- #: options/class.WpdiscuzOptions.php:416 options/addons/al/title.php:7
443
  msgid "Advanced Likers"
444
  msgstr ""
445
 
446
- #: options/class.WpdiscuzOptions.php:417
447
  msgid ""
448
  "wpDiscuz Advanced Likers addon displays likers and voters of each comment. "
449
  "Adds user reputation and badges based on received likes."
450
  msgstr ""
451
 
452
- #: options/class.WpdiscuzOptions.php:420 options/addons/raf/title.php:7
453
  msgid "Report and Flagging"
454
  msgstr ""
455
 
456
- #: options/class.WpdiscuzOptions.php:421
457
  msgid ""
458
  "Let your commenters help you to determine and remove spam comments. wpDiscuz "
459
  "Report and Flagging addon comes with comment reporting tools. Automaticaly "
460
  "auto-moderates comments based on number of flags and dislikes."
461
  msgstr ""
462
 
463
- #: options/class.WpdiscuzOptions.php:424
464
  msgid "Comment Translate"
465
  msgstr ""
466
 
467
- #: options/class.WpdiscuzOptions.php:425
468
  msgid ""
469
  "In most cases the big part of your visitors are not a native speakers of "
470
  "your language. Make your comments comprehensible for all visitors using "
@@ -473,11 +473,11 @@ msgid ""
473
  "translation API."
474
  msgstr ""
475
 
476
- #: options/class.WpdiscuzOptions.php:428
477
  msgid "Comment Search"
478
  msgstr ""
479
 
480
- #: options/class.WpdiscuzOptions.php:429
481
  msgid ""
482
  "You can let website visitor search in comments. It's always more attractive "
483
  "to find a comment about something that interest you. Using wpDiscuz Comment "
@@ -485,544 +485,563 @@ msgid ""
485
  "above comment list."
486
  msgstr ""
487
 
488
- #: options/class.WpdiscuzOptions.php:432
489
  msgid "wpDiscuz Widgets"
490
  msgstr ""
491
 
492
- #: options/class.WpdiscuzOptions.php:433
493
  msgid ""
494
  "More Comment Widgets! Most voted comments, Active comment threads, Most "
495
  "commented posts, Active comment authors widgets are available in wpDiscuz "
496
  "Widgets Addon"
497
  msgstr ""
498
 
499
- #: options/class.WpdiscuzOptions.php:436
500
  msgid "Front-end Moderation"
501
  msgstr ""
502
 
503
- #: options/class.WpdiscuzOptions.php:437
504
  msgid ""
505
  "You can moderate comments on front-end using all in one powerful yet simple "
506
  "wpDiscuz Frontend Moderation addon."
507
  msgstr ""
508
 
509
- #: options/class.WpdiscuzOptions.php:440 options/addons/mu/title.php:7
510
  msgid "Media Uploader"
511
  msgstr ""
512
 
513
- #: options/class.WpdiscuzOptions.php:441
514
  msgid ""
515
  "You can let website visitors attach images and files to comments and embed "
516
  "video/audio content using wpDiscuz Media Uploader addon."
517
  msgstr ""
518
 
519
- #: options/class.WpdiscuzOptions.php:444
520
  msgid "Google ReCaptcha"
521
  msgstr ""
522
 
523
- #: options/class.WpdiscuzOptions.php:445
524
  msgid ""
525
  "Advanced spam protection with wpDiscuz Google reCAPTCHA addon. This addon "
526
  "adds No-CAPTCHA reCAPTCHA on all comment forms. Stops spam and bot comments."
527
  msgstr ""
528
 
529
- #: options/class.WpdiscuzOptions.php:506
530
  msgid "Do you know?"
531
  msgstr ""
532
 
533
- #: options/class.WpdiscuzOptions.php:519
534
  msgid "More info"
535
  msgstr ""
536
 
537
- #: options/class.WpdiscuzOptionsSerialized.php:791
538
  msgid "Be the First to Comment!"
539
  msgstr ""
540
 
541
- #: options/class.WpdiscuzOptionsSerialized.php:792
542
  msgid "Start the discussion"
543
  msgstr ""
544
 
545
- #: options/class.WpdiscuzOptionsSerialized.php:793
546
  msgid "Join the discussion"
547
  msgstr ""
548
 
549
- #: options/class.WpdiscuzOptionsSerialized.php:794
550
  #: options/phrases-layouts/phrases-form.php:19
551
  msgid "Comment threads"
552
  msgstr ""
553
 
554
- #: options/class.WpdiscuzOptionsSerialized.php:795
555
  #: options/phrases-layouts/phrases-form.php:23
556
  msgid "Thread replies"
557
  msgstr ""
558
 
559
- #: options/class.WpdiscuzOptionsSerialized.php:796
560
  #: options/phrases-layouts/phrases-form.php:27
561
  msgid "Followers"
562
  msgstr ""
563
 
564
- #: options/class.WpdiscuzOptionsSerialized.php:797
565
  #: options/phrases-layouts/phrases-form.php:31
566
  msgid "Most reacted comment"
567
  msgstr ""
568
 
569
- #: options/class.WpdiscuzOptionsSerialized.php:798
570
  #: options/phrases-layouts/phrases-form.php:35
571
  msgid "Hottest comment thread"
572
  msgstr ""
573
 
574
- #: options/class.WpdiscuzOptionsSerialized.php:799
575
  #: options/phrases-layouts/phrases-form.php:39
576
  msgid "Comment authors"
577
  msgstr ""
578
 
579
- #: options/class.WpdiscuzOptionsSerialized.php:800
580
  #: options/phrases-layouts/phrases-form.php:43
581
  msgid "Recent comment authors"
582
  msgstr ""
583
 
584
- #: options/class.WpdiscuzOptionsSerialized.php:802
585
  #: options/phrases-layouts/phrases-form.php:51
586
  msgid "Subscribe"
587
  msgstr ""
588
 
589
- #: options/class.WpdiscuzOptionsSerialized.php:803
590
  #: options/phrases-layouts/phrases-form.php:55
591
  msgid "Notify of"
592
  msgstr ""
593
 
594
- #: options/class.WpdiscuzOptionsSerialized.php:804
595
  msgid "new follow-up comments"
596
  msgstr ""
597
 
598
- #: options/class.WpdiscuzOptionsSerialized.php:805
599
  msgid "new replies to my comments"
600
  msgstr ""
601
 
602
- #: options/class.WpdiscuzOptionsSerialized.php:806
603
  msgid "Notify of new replies to this comment"
604
  msgstr ""
605
 
606
- #: options/class.WpdiscuzOptionsSerialized.php:807
607
  #: options/phrases-layouts/phrases-form.php:71
608
  msgid "Sort by"
609
  msgstr ""
610
 
611
- #: options/class.WpdiscuzOptionsSerialized.php:808
612
  #: options/phrases-layouts/phrases-form.php:75
613
  msgid "newest"
614
  msgstr ""
615
 
616
- #: options/class.WpdiscuzOptionsSerialized.php:809
617
  #: options/phrases-layouts/phrases-form.php:79
618
  msgid "oldest"
619
  msgstr ""
620
 
621
- #: options/class.WpdiscuzOptionsSerialized.php:810
622
  #: options/phrases-layouts/phrases-form.php:83
623
  msgid "most voted"
624
  msgstr ""
625
 
626
- #: options/class.WpdiscuzOptionsSerialized.php:811
627
  msgid "Load More Comments"
628
  msgstr ""
629
 
630
- #: options/class.WpdiscuzOptionsSerialized.php:812
631
  #: options/phrases-layouts/phrases-general.php:19
632
  msgid "Load Rest of Comments"
633
  msgstr ""
634
 
635
- #: options/class.WpdiscuzOptionsSerialized.php:813
636
  #: options/phrases-layouts/phrases-comment.php:11
637
  msgid "Reply"
638
  msgstr ""
639
 
640
- #: options/class.WpdiscuzOptionsSerialized.php:814
641
  #: options/phrases-layouts/phrases-comment.php:15
642
  msgid "Share"
643
  msgstr ""
644
 
645
- #: options/class.WpdiscuzOptionsSerialized.php:816
646
  #: options/phrases-layouts/phrases-comment.php:23
647
  msgid "Share On Facebook"
648
  msgstr ""
649
 
650
- #: options/class.WpdiscuzOptionsSerialized.php:817
651
  #: options/phrases-layouts/phrases-comment.php:27
652
  msgid "Share On Twitter"
653
  msgstr ""
654
 
655
- #: options/class.WpdiscuzOptionsSerialized.php:818
656
  #: options/phrases-layouts/phrases-comment.php:31
657
  msgid "Share On Google"
658
  msgstr ""
659
 
660
- #: options/class.WpdiscuzOptionsSerialized.php:819
661
  #: options/phrases-layouts/phrases-comment.php:35
662
  msgid "Share On VKontakte"
663
  msgstr ""
664
 
665
- #: options/class.WpdiscuzOptionsSerialized.php:820
666
  #: options/phrases-layouts/phrases-comment.php:39
667
  msgid "Share On Odnoklassniki"
668
  msgstr ""
669
 
670
- #: options/class.WpdiscuzOptionsSerialized.php:821
671
  #: options/phrases-layouts/phrases-comment.php:43
672
  msgid "Hide Replies"
673
  msgstr ""
674
 
675
- #: options/class.WpdiscuzOptionsSerialized.php:822
676
  #: options/phrases-layouts/phrases-comment.php:47
677
  msgid "View Replies"
678
  msgstr ""
679
 
680
- #: options/class.WpdiscuzOptionsSerialized.php:823
681
- #: options/class.WpdiscuzOptionsSerialized.php:948
682
  msgid "New Comment"
683
  msgstr ""
684
 
685
- #: options/class.WpdiscuzOptionsSerialized.php:824
686
- #: options/class.WpdiscuzOptionsSerialized.php:826
687
- #: options/class.WpdiscuzOptionsSerialized.php:828
688
- #: options/class.WpdiscuzOptionsSerialized.php:839
689
- #: options/class.WpdiscuzOptionsSerialized.php:947
690
- #: options/class.WpdiscuzOptionsSerialized.php:949
691
- msgid "</a>"
692
  msgstr ""
693
 
694
- #: options/class.WpdiscuzOptionsSerialized.php:825
695
- #: options/class.WpdiscuzOptionsSerialized.php:827
696
  msgid "New Reply"
697
  msgstr ""
698
 
699
- #: options/class.WpdiscuzOptionsSerialized.php:829
 
 
 
 
 
 
 
 
 
700
  msgid "You're subscribed for new replies on this comment"
701
  msgstr ""
702
 
703
- #: options/class.WpdiscuzOptionsSerialized.php:830
704
  msgid "You're subscribed for new replies on all your comments"
705
  msgstr ""
706
 
707
- #: options/class.WpdiscuzOptionsSerialized.php:831
708
  msgid "You're subscribed for new follow-up comments on this post"
709
  msgstr ""
710
 
711
- #: options/class.WpdiscuzOptionsSerialized.php:832
712
- #: options/phrases-layouts/phrases-email.php:169
713
  msgid "Unsubscribe"
714
  msgstr ""
715
 
716
- #: options/class.WpdiscuzOptionsSerialized.php:833
717
  msgid "Cancel subscription"
718
  msgstr ""
719
 
720
- #: options/class.WpdiscuzOptionsSerialized.php:834
721
  #: options/phrases-layouts/phrases-notification.php:19
722
  msgid "You've successfully unsubscribed."
723
  msgstr ""
724
 
725
- #: options/class.WpdiscuzOptionsSerialized.php:835
726
  #: options/phrases-layouts/phrases-notification.php:15
727
  msgid "You've successfully subscribed."
728
  msgstr ""
729
 
730
- #: options/class.WpdiscuzOptionsSerialized.php:836
731
- #: options/phrases-layouts/phrases-email.php:177
732
  msgid "Confirm your subscription"
733
  msgstr ""
734
 
735
- #: options/class.WpdiscuzOptionsSerialized.php:837
736
- #: options/phrases-layouts/phrases-email.php:181
737
  msgid "You've successfully confirmed your subscription."
738
  msgstr ""
739
 
740
- #: options/class.WpdiscuzOptionsSerialized.php:838
741
  msgid "Subscription Confirmation"
742
  msgstr ""
743
 
744
- #: options/class.WpdiscuzOptionsSerialized.php:840
 
 
 
 
 
 
 
 
 
 
 
745
  msgid "please fill out this field to comment"
746
  msgstr ""
747
 
748
- #: options/class.WpdiscuzOptionsSerialized.php:841
749
  msgid "email address is invalid"
750
  msgstr ""
751
 
752
- #: options/class.WpdiscuzOptionsSerialized.php:842
753
  msgid "url is invalid"
754
  msgstr ""
755
 
756
- #: options/class.WpdiscuzOptionsSerialized.php:843
757
  msgid "year"
758
  msgstr ""
759
 
760
- #: options/class.WpdiscuzOptionsSerialized.php:844
761
  msgid "years"
762
  msgstr ""
763
 
764
- #: options/class.WpdiscuzOptionsSerialized.php:845
765
  msgid "month"
766
  msgstr ""
767
 
768
- #: options/class.WpdiscuzOptionsSerialized.php:846
769
  msgid "months"
770
  msgstr ""
771
 
772
- #: options/class.WpdiscuzOptionsSerialized.php:847
773
  msgid "day"
774
  msgstr ""
775
 
776
- #: options/class.WpdiscuzOptionsSerialized.php:848
777
  msgid "days"
778
  msgstr ""
779
 
780
- #: options/class.WpdiscuzOptionsSerialized.php:849
781
  msgid "hour"
782
  msgstr ""
783
 
784
- #: options/class.WpdiscuzOptionsSerialized.php:850
785
  msgid "hours"
786
  msgstr ""
787
 
788
- #: options/class.WpdiscuzOptionsSerialized.php:851
789
  msgid "minute"
790
  msgstr ""
791
 
792
- #: options/class.WpdiscuzOptionsSerialized.php:852
793
  msgid "minutes"
794
  msgstr ""
795
 
796
- #: options/class.WpdiscuzOptionsSerialized.php:853
797
  msgid "second"
798
  msgstr ""
799
 
800
- #: options/class.WpdiscuzOptionsSerialized.php:854
801
  msgid "seconds"
802
  msgstr ""
803
 
804
- #: options/class.WpdiscuzOptionsSerialized.php:855
805
  msgid "right now"
806
  msgstr ""
807
 
808
- #: options/class.WpdiscuzOptionsSerialized.php:856
809
  msgid "ago"
810
  msgstr ""
811
 
812
- #: options/class.WpdiscuzOptionsSerialized.php:857
813
  #: options/phrases-layouts/phrases-notification.php:38
814
  msgid "You must be"
815
  msgstr ""
816
 
817
- #: options/class.WpdiscuzOptionsSerialized.php:858
818
  msgid "You are logged in as"
819
  msgstr ""
820
 
821
- #: options/class.WpdiscuzOptionsSerialized.php:859
822
  #: options/phrases-layouts/phrases-notification.php:29
823
  msgid "Login"
824
  msgstr ""
825
 
826
- #: options/class.WpdiscuzOptionsSerialized.php:860
827
  #: options/phrases-layouts/phrases-notification.php:33
828
  #, php-format
829
  msgid "Please %s to comment"
830
  msgstr ""
831
 
832
- #: options/class.WpdiscuzOptionsSerialized.php:861
833
  #: options/phrases-layouts/phrases-notification.php:54
834
  msgid "Log out"
835
  msgstr ""
836
 
837
- #: options/class.WpdiscuzOptionsSerialized.php:862
838
  msgid "logged in"
839
  msgstr ""
840
 
841
- #: options/class.WpdiscuzOptionsSerialized.php:863
842
  msgid "to post a comment."
843
  msgstr ""
844
 
845
- #: options/class.WpdiscuzOptionsSerialized.php:864
846
  #: options/phrases-layouts/phrases-comment.php:75
847
  msgid "Vote Up"
848
  msgstr ""
849
 
850
- #: options/class.WpdiscuzOptionsSerialized.php:865
851
  #: options/phrases-layouts/phrases-comment.php:79
852
  msgid "Vote Down"
853
  msgstr ""
854
 
855
- #: options/class.WpdiscuzOptionsSerialized.php:866
856
  #: options/phrases-layouts/phrases-notification.php:58
857
  msgid "Vote Counted"
858
  msgstr ""
859
 
860
- #: options/class.WpdiscuzOptionsSerialized.php:867
861
  msgid "You've already voted for this comment"
862
  msgstr ""
863
 
864
- #: options/class.WpdiscuzOptionsSerialized.php:868
865
  #: options/phrases-layouts/phrases-error.php:27
866
  msgid "Voting Error"
867
  msgstr ""
868
 
869
- #: options/class.WpdiscuzOptionsSerialized.php:869
870
  msgid "You Must Be Logged In To Vote"
871
  msgstr ""
872
 
873
- #: options/class.WpdiscuzOptionsSerialized.php:870
874
  msgid "You cannot vote for your comment"
875
  msgstr ""
876
 
877
- #: options/class.WpdiscuzOptionsSerialized.php:871
878
  msgid "You are not allowed to vote for this comment"
879
  msgstr ""
880
 
881
- #: options/class.WpdiscuzOptionsSerialized.php:872
882
  #: options/phrases-layouts/phrases-error.php:39
883
  msgid "Invalid Captcha Code"
884
  msgstr ""
885
 
886
- #: options/class.WpdiscuzOptionsSerialized.php:873
887
  #: options/phrases-layouts/phrases-error.php:43
888
  msgid "Some of field value is invalid"
889
  msgstr ""
890
 
891
- #: options/class.WpdiscuzOptionsSerialized.php:874
892
  msgid "new comment"
893
  msgstr ""
894
 
895
- #: options/class.WpdiscuzOptionsSerialized.php:875
896
  msgid "new comments"
897
  msgstr ""
898
 
899
- #: options/class.WpdiscuzOptionsSerialized.php:876
900
  msgid "Comment awaiting moderation"
901
  msgstr ""
902
 
903
- #: options/class.WpdiscuzOptionsSerialized.php:877
904
  msgid "new reply on your comment"
905
  msgstr ""
906
 
907
- #: options/class.WpdiscuzOptionsSerialized.php:878
908
  msgid "new replies on your comments"
909
  msgstr ""
910
 
911
- #: options/class.WpdiscuzOptionsSerialized.php:879
912
  msgid "Sorry, the comment was not updated"
913
  msgstr ""
914
 
915
- #: options/class.WpdiscuzOptionsSerialized.php:880
916
  msgid "Sorry, this comment no longer possible to edit"
917
  msgstr ""
918
 
919
- #: options/class.WpdiscuzOptionsSerialized.php:881
920
  msgid "You've not made any changes"
921
  msgstr ""
922
 
923
- #: options/class.WpdiscuzOptionsSerialized.php:882
924
  msgid "Save"
925
  msgstr ""
926
 
927
- #: options/class.WpdiscuzOptionsSerialized.php:883
928
  msgid "Cancel"
929
  msgstr ""
930
 
931
- #: options/class.WpdiscuzOptionsSerialized.php:884
932
  msgid "Input is too short"
933
  msgstr ""
934
 
935
- #: options/class.WpdiscuzOptionsSerialized.php:885
936
  msgid "Input is too long"
937
  msgstr ""
938
 
939
- #: options/class.WpdiscuzOptionsSerialized.php:886
940
  msgid "Read more &raquo;"
941
  msgstr ""
942
 
943
- #: options/class.WpdiscuzOptionsSerialized.php:887
944
  msgid "Anonymous"
945
  msgstr ""
946
 
947
- #: options/class.WpdiscuzOptionsSerialized.php:888
948
  #: options/phrases-layouts/phrases-error.php:67
949
  msgid "Please fill out required fields"
950
  msgstr ""
951
 
952
- #: options/class.WpdiscuzOptionsSerialized.php:889
953
  #: options/phrases-layouts/phrases-social-login.php:11
954
  msgid "Connect with"
955
  msgstr ""
956
 
957
- #: options/class.WpdiscuzOptionsSerialized.php:890
958
  #: options/phrases-layouts/phrases-notification.php:11
959
  msgid "You're subscribed to"
960
  msgstr ""
961
 
962
- #: options/class.WpdiscuzOptionsSerialized.php:891
963
  msgid "Participate in this discussion via email"
964
  msgstr ""
965
 
966
- #: options/class.WpdiscuzOptionsSerialized.php:892
967
  #: utils/layouts/pagination.php:46
968
  msgid "&rsaquo;"
969
  msgstr ""
970
 
971
- #: options/class.WpdiscuzOptionsSerialized.php:893
972
  msgid "Your comment is approved!"
973
  msgstr ""
974
 
975
- #: options/class.WpdiscuzOptionsSerialized.php:894
976
  msgid ""
977
  "Hi [COMMENT_AUTHOR],<br/><br/>your comment was approved.<br/><br/><a "
978
  "href=\"[COMMENT_URL]\">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]"
979
  msgstr ""
980
 
981
- #: options/class.WpdiscuzOptionsSerialized.php:895
982
  msgid "Comments are closed."
983
  msgstr ""
984
 
985
- #: options/class.WpdiscuzOptionsSerialized.php:896
986
  msgid "Stick this comment"
987
  msgstr ""
988
 
989
- #: options/class.WpdiscuzOptionsSerialized.php:897
990
  #: options/phrases-layouts/phrases-comment.php:103
991
  msgid "Stick"
992
  msgstr ""
993
 
994
- #: options/class.WpdiscuzOptionsSerialized.php:898
995
  #: options/phrases-layouts/phrases-comment.php:107
996
  msgid "Unstick"
997
  msgstr ""
998
 
999
- #: options/class.WpdiscuzOptionsSerialized.php:899
1000
  msgid "Sticky comment thread"
1001
  msgstr ""
1002
 
1003
- #: options/class.WpdiscuzOptionsSerialized.php:900
1004
  msgid "Close this thread"
1005
  msgstr ""
1006
 
1007
- #: options/class.WpdiscuzOptionsSerialized.php:901
1008
  #: options/phrases-layouts/phrases-comment.php:119
1009
  msgid "Close"
1010
  msgstr ""
1011
 
1012
- #: options/class.WpdiscuzOptionsSerialized.php:902
1013
  #: options/phrases-layouts/phrases-comment.php:123
1014
  msgid "Open"
1015
  msgstr ""
1016
 
1017
- #: options/class.WpdiscuzOptionsSerialized.php:903
1018
  msgid "Closed comment thread"
1019
  msgstr ""
1020
 
1021
- #: options/class.WpdiscuzOptionsSerialized.php:904
1022
  msgid "I allow to create an account"
1023
  msgstr ""
1024
 
1025
- #: options/class.WpdiscuzOptionsSerialized.php:905
1026
  msgid ""
1027
  "When you login first time using a Social Login button, we collect your "
1028
  "account public profile information shared by Social Login provider, based on "
@@ -1031,93 +1050,93 @@ msgid ""
1031
  "you'll be logged-in to this account."
1032
  msgstr ""
1033
 
1034
- #: options/class.WpdiscuzOptionsSerialized.php:906
1035
  msgid "This comment form is under antispam protection"
1036
  msgstr ""
1037
 
1038
- #: options/class.WpdiscuzOptionsSerialized.php:907
1039
  #: options/phrases-layouts/phrases-social-login.php:23
1040
  msgid "Disagree"
1041
  msgstr ""
1042
 
1043
- #: options/class.WpdiscuzOptionsSerialized.php:908
1044
  #: options/phrases-layouts/phrases-social-login.php:27
1045
  msgid "Agree"
1046
  msgstr ""
1047
 
1048
- #: options/class.WpdiscuzOptionsSerialized.php:909
1049
  #: options/phrases-layouts/phrases-user-settings.php:11
1050
  msgid "My content and settings"
1051
  msgstr ""
1052
 
1053
- #: options/class.WpdiscuzOptionsSerialized.php:910
1054
  #: options/phrases-layouts/phrases-user-settings.php:15
1055
  msgid "Activity"
1056
  msgstr ""
1057
 
1058
- #: options/class.WpdiscuzOptionsSerialized.php:911
1059
  #: options/phrases-layouts/phrases-user-settings.php:19
1060
  msgid "Subscriptions"
1061
  msgstr ""
1062
 
1063
- #: options/class.WpdiscuzOptionsSerialized.php:912
1064
  #: options/phrases-layouts/phrases-user-settings.php:23
1065
  msgid "Follows"
1066
  msgstr ""
1067
 
1068
- #: options/class.WpdiscuzOptionsSerialized.php:913
1069
  #: options/phrases-layouts/phrases-user-settings.php:27
1070
  msgid "In response to:"
1071
  msgstr ""
1072
 
1073
- #: options/class.WpdiscuzOptionsSerialized.php:914
1074
- #: options/class.WpdiscuzOptionsSerialized.php:920
1075
  #: options/phrases-layouts/phrases-user-settings.php:31
1076
  #: options/phrases-layouts/phrases-user-settings.php:55
1077
  msgid "Bulk management via email"
1078
  msgstr ""
1079
 
1080
- #: options/class.WpdiscuzOptionsSerialized.php:915
1081
  msgid ""
1082
  "Click the button above to get an email with bulk delete and unsubscribe "
1083
  "links."
1084
  msgstr ""
1085
 
1086
- #: options/class.WpdiscuzOptionsSerialized.php:916
1087
  #: options/phrases-layouts/phrases-user-settings.php:39
1088
  msgid "No data found!"
1089
  msgstr ""
1090
 
1091
- #: options/class.WpdiscuzOptionsSerialized.php:917
1092
- #: options/class.WpdiscuzOptionsSerialized.php:921
1093
  #: options/phrases-layouts/phrases-user-settings.php:43
1094
  #: options/phrases-layouts/phrases-user-settings.php:60
1095
  msgid "Delete all my comments"
1096
  msgstr ""
1097
 
1098
- #: options/class.WpdiscuzOptionsSerialized.php:918
1099
  #: options/phrases-layouts/phrases-user-settings.php:47
1100
  msgid "Cancel all comment subscriptions"
1101
  msgstr ""
1102
 
1103
- #: options/class.WpdiscuzOptionsSerialized.php:919
1104
  #: options/phrases-layouts/phrases-user-settings.php:51
1105
  msgid "Clear cookies with my personal data"
1106
  msgstr ""
1107
 
1108
- #: options/class.WpdiscuzOptionsSerialized.php:922
1109
  msgid ""
1110
  "Please use this link to delete all your comments. Please note, that this "
1111
  "action cannot be undone.<br/><br/><a href=\"[DELETE_COMMENTS_URL]\" "
1112
  "target=\"_blank\">Delete all my comments</a><br/><br/>"
1113
  msgstr ""
1114
 
1115
- #: options/class.WpdiscuzOptionsSerialized.php:923
1116
  #: options/phrases-layouts/phrases-user-settings.php:85
1117
  msgid "Delete all my subscriptions"
1118
  msgstr ""
1119
 
1120
- #: options/class.WpdiscuzOptionsSerialized.php:924
1121
  msgid ""
1122
  "Please use this link to cancel all subscriptions for new comments. Please "
1123
  "note, that this action cannot be undone.<br/><br/><a "
@@ -1125,104 +1144,109 @@ msgid ""
1125
  "subscriptions</a><br/><br/>"
1126
  msgstr ""
1127
 
1128
- #: options/class.WpdiscuzOptionsSerialized.php:925
1129
  #: options/phrases-layouts/phrases-user-settings.php:110
1130
  msgid "Delete all my follows"
1131
  msgstr ""
1132
 
1133
- #: options/class.WpdiscuzOptionsSerialized.php:926
1134
  msgid ""
1135
  "Please use this link to cancel all follows for new comments. Please note, "
1136
  "that this action cannot be undone.<br/><br/><a href=\"[DELETE_FOLLOWS_URL]\" "
1137
  "target=\"_blank\">Delete all my follows</a><br/><br/>"
1138
  msgstr ""
1139
 
1140
- #: options/class.WpdiscuzOptionsSerialized.php:927
1141
  #: options/phrases-layouts/phrases-user-settings.php:134
1142
  msgid "subscribed to this comment"
1143
  msgstr ""
1144
 
1145
- #: options/class.WpdiscuzOptionsSerialized.php:928
1146
  #: options/phrases-layouts/phrases-user-settings.php:138
1147
  msgid "subscribed to my comments"
1148
  msgstr ""
1149
 
1150
- #: options/class.WpdiscuzOptionsSerialized.php:929
1151
  #: options/phrases-layouts/phrases-user-settings.php:142
1152
  msgid "subscribed to all follow-up comments of this post"
1153
  msgstr ""
1154
 
1155
- #: options/class.WpdiscuzOptionsSerialized.php:931
1156
  #: options/phrases-layouts/phrases-user-settings.php:150
1157
  msgid "Error : Can't send email."
1158
  msgstr ""
1159
 
1160
- #: options/class.WpdiscuzOptionsSerialized.php:932
1161
  #: options/phrases-layouts/phrases-user-settings.php:154
1162
  msgid "Are you sure you want to delete this comment?"
1163
  msgstr ""
1164
 
1165
- #: options/class.WpdiscuzOptionsSerialized.php:933
1166
  #: options/phrases-layouts/phrases-user-settings.php:158
1167
  msgid "Are you sure you want to cancel this subscription?"
1168
  msgstr ""
1169
 
1170
- #: options/class.WpdiscuzOptionsSerialized.php:934
1171
  #: options/phrases-layouts/phrases-user-settings.php:162
1172
  msgid "Are you sure you want to cancel this follow?"
1173
  msgstr ""
1174
 
1175
- #: options/class.WpdiscuzOptionsSerialized.php:935
1176
  #: options/phrases-layouts/phrases-follow.php:11
1177
  msgid "Follow this user"
1178
  msgstr ""
1179
 
1180
- #: options/class.WpdiscuzOptionsSerialized.php:936
1181
  #: options/phrases-layouts/phrases-follow.php:15
1182
  msgid "Unfollow this user"
1183
  msgstr ""
1184
 
1185
- #: options/class.WpdiscuzOptionsSerialized.php:937
1186
  #: options/phrases-layouts/phrases-follow.php:19
1187
  msgid "You started following this comment author"
1188
  msgstr ""
1189
 
1190
- #: options/class.WpdiscuzOptionsSerialized.php:938
1191
  msgid "You stopped following this comment author."
1192
  msgstr ""
1193
 
1194
- #: options/class.WpdiscuzOptionsSerialized.php:939
1195
  msgid "Please check your email and confirm the user following request."
1196
  msgstr ""
1197
 
1198
- #: options/class.WpdiscuzOptionsSerialized.php:940
1199
  msgid "Sorry, we couldn't send confirmation email."
1200
  msgstr ""
1201
 
1202
- #: options/class.WpdiscuzOptionsSerialized.php:941
1203
  msgid "Please login to follow users."
1204
  msgstr ""
1205
 
1206
- #: options/class.WpdiscuzOptionsSerialized.php:942
1207
  msgid "We are sorry, but you can't follow this user."
1208
  msgstr ""
1209
 
1210
- #: options/class.WpdiscuzOptionsSerialized.php:943
1211
  msgid "Following failed. Please try again later."
1212
  msgstr ""
1213
 
1214
- #: options/class.WpdiscuzOptionsSerialized.php:944
1215
  msgid "Confirm user following request"
1216
  msgstr ""
1217
 
1218
- #: options/class.WpdiscuzOptionsSerialized.php:945
1219
  msgid "Cancel user following request"
1220
  msgstr ""
1221
 
1222
- #: options/class.WpdiscuzOptionsSerialized.php:946
1223
  msgid "User Following Confirmation"
1224
  msgstr ""
1225
 
 
 
 
 
 
1226
  #: options/html-addons.php:11
1227
  msgid "wpDiscuz Addons"
1228
  msgstr ""
@@ -1386,15 +1410,15 @@ msgstr ""
1386
  msgid "Other"
1387
  msgstr ""
1388
 
1389
- #: utils/class.WpdiscuzHelper.php:224 utils/class.WpdiscuzHelper.php:227
1390
  msgid "Spoiler"
1391
  msgstr ""
1392
 
1393
- #: utils/class.WpdiscuzHelper.php:567
1394
  msgid "Go to update data"
1395
  msgstr ""
1396
 
1397
- #: utils/class.WpdiscuzHelperEmail.php:511
1398
  msgid "Cancel Follow"
1399
  msgstr ""
1400
 
@@ -1502,9 +1526,10 @@ msgstr ""
1502
  #: options/options-layouts/settings-form.php:220
1503
  #: options/options-layouts/settings-general.php:14
1504
  #: options/options-layouts/settings-general.php:26
1505
- #: options/options-layouts/settings-general.php:68
1506
- #: options/options-layouts/settings-general.php:82
1507
- #: options/options-layouts/settings-general.php:92
 
1508
  #: options/options-layouts/settings-list.php:20
1509
  #: options/options-layouts/settings-list.php:31
1510
  #: options/options-layouts/settings-list.php:41
@@ -1601,12 +1626,12 @@ msgstr ""
1601
  msgid "ADD ROW"
1602
  msgstr ""
1603
 
1604
- #: forms/wpdFormAttr/Form.php:887
1605
  #: forms/wpdFormAttr/Field/DefaultField/Website.php:84
1606
  msgid "Website"
1607
  msgstr ""
1608
 
1609
- #: forms/wpdFormAttr/Form.php:896
1610
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:117
1611
  msgid "Code"
1612
  msgstr ""
@@ -1884,67 +1909,75 @@ msgid "Enable wpdiscuz on home page"
1884
  msgstr ""
1885
 
1886
  #: options/options-layouts/settings-general.php:19
1887
- msgid "Use guest email to detect registered account"
1888
  msgstr ""
1889
 
1890
  #: options/options-layouts/settings-general.php:21
 
 
 
 
 
 
 
 
1891
  msgid ""
1892
  "Sometimes registered users comment as guest using the same email address. "
1893
  "wpDiscuz can detect the account role using guest email and display commenter "
1894
  "label correctly."
1895
  msgstr ""
1896
 
1897
- #: options/options-layouts/settings-general.php:31
1898
  msgid "Secure comment content in HTTPS protocol."
1899
  msgstr ""
1900
 
1901
- #: options/options-layouts/settings-general.php:33
1902
  msgid ""
1903
  "This option detects images and other contents with non-https source URLs and "
1904
  "fix according to your selected logic."
1905
  msgstr ""
1906
 
1907
- #: options/options-layouts/settings-general.php:41
1908
  msgid "Replace non-https content to simple link URLs"
1909
  msgstr ""
1910
 
1911
- #: options/options-layouts/settings-general.php:45
1912
  msgid ""
1913
  "Just replace http protocols to https (https may not be supported by content "
1914
  "provider)"
1915
  msgstr ""
1916
 
1917
- #: options/options-layouts/settings-general.php:49
1918
  msgid "Ignore non-https content"
1919
  msgstr ""
1920
 
1921
- #: options/options-layouts/settings-general.php:57
1922
  msgid "Redirect first commenter to"
1923
  msgstr ""
1924
 
1925
- #: options/options-layouts/settings-general.php:64
1926
  msgid "Do not redirect"
1927
  msgstr ""
1928
 
1929
- #: options/options-layouts/settings-general.php:73
1930
  msgid "Use WordPress Date/Time format"
1931
  msgstr ""
1932
 
1933
- #: options/options-layouts/settings-general.php:74
1934
  msgid ""
1935
  "wpDiscuz shows Human Readable date format. If you check this option it'll "
1936
  "show the date/time format set in WordPress General Settings."
1937
  msgstr ""
1938
 
1939
- #: options/options-layouts/settings-general.php:80
1940
  msgid "Current Wordpress date/time format"
1941
  msgstr ""
1942
 
1943
- #: options/options-layouts/settings-general.php:87
1944
  msgid "Use Plugin .PO/.MO files"
1945
  msgstr ""
1946
 
1947
- #: options/options-layouts/settings-general.php:88
1948
  msgid ""
1949
  "wpDiscuz phrase system allows you to translate all front-end phrases. "
1950
  "However if you have a multi-language website it'll not allow you to add more "
@@ -1954,13 +1987,13 @@ msgid ""
1954
  "translate all phrases based on language files according to current language."
1955
  msgstr ""
1956
 
1957
- #: options/options-layouts/settings-general.php:98
1958
  msgid ""
1959
  "Help wpDiscuz to grow allowing people to recognize which comment plugin you "
1960
  "use"
1961
  msgstr ""
1962
 
1963
- #: options/options-layouts/settings-general.php:100
1964
  msgid ""
1965
  "Please check this option on to help wpDiscuz get more popularity as your "
1966
  "thank to the hard work we do for you totally free. This option adds a very "
@@ -1968,7 +2001,7 @@ msgid ""
1968
  "visitors recognize the name of comment solution you use."
1969
  msgstr ""
1970
 
1971
- #: options/options-layouts/settings-general.php:105
1972
  msgid "Thank you!"
1973
  msgstr ""
1974
 
@@ -2725,14 +2758,14 @@ msgstr ""
2725
 
2726
  #: options/phrases-layouts/phrases-email.php:24
2727
  #: options/phrases-layouts/phrases-email.php:35
2728
- #: options/phrases-layouts/phrases-email.php:55
2729
- #: options/phrases-layouts/phrases-email.php:66
2730
- #: options/phrases-layouts/phrases-email.php:86
2731
- #: options/phrases-layouts/phrases-email.php:97
2732
- #: options/phrases-layouts/phrases-email.php:115
2733
- #: options/phrases-layouts/phrases-email.php:126
2734
- #: options/phrases-layouts/phrases-email.php:142
2735
- #: options/phrases-layouts/phrases-email.php:154
2736
  #: options/phrases-layouts/phrases-follow.php:57
2737
  #: options/phrases-layouts/phrases-follow.php:68
2738
  #: options/phrases-layouts/phrases-follow.php:84
@@ -2750,46 +2783,46 @@ msgstr ""
2750
  msgid "Post comment notification content"
2751
  msgstr ""
2752
 
2753
- #: options/phrases-layouts/phrases-email.php:43
2754
  #: options/phrases-layouts/phrases-email.php:74
2755
  msgid "Shortcode above will work for registered users only"
2756
  msgstr ""
2757
 
2758
- #: options/phrases-layouts/phrases-email.php:53
2759
  msgid "Subscription type: All my comments"
2760
  msgstr ""
2761
 
2762
- #: options/phrases-layouts/phrases-email.php:54
2763
- #: options/phrases-layouts/phrases-email.php:85
2764
  msgid "New reply notification subject"
2765
  msgstr ""
2766
 
2767
- #: options/phrases-layouts/phrases-email.php:65
2768
- #: options/phrases-layouts/phrases-email.php:96
2769
  msgid "New Reply notification content"
2770
  msgstr ""
2771
 
2772
- #: options/phrases-layouts/phrases-email.php:84
2773
  msgid "Subscription type: Single comment"
2774
  msgstr ""
2775
 
2776
- #: options/phrases-layouts/phrases-email.php:114
2777
  msgid "Subscription confirmation email subject"
2778
  msgstr ""
2779
 
2780
- #: options/phrases-layouts/phrases-email.php:125
2781
  msgid "Subscription confirmation email content"
2782
  msgstr ""
2783
 
2784
- #: options/phrases-layouts/phrases-email.php:141
2785
  msgid "Comment approved subject"
2786
  msgstr ""
2787
 
2788
- #: options/phrases-layouts/phrases-email.php:152
2789
  msgid "Comment approved message"
2790
  msgstr ""
2791
 
2792
- #: options/phrases-layouts/phrases-email.php:173
2793
  msgid "Ignore subscription"
2794
  msgstr ""
2795
 
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: wpDiscuz\n"
6
+ "POT-Creation-Date: 2018-09-06 11:45+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "Language: "
23
 
24
+ #: class.WpdiscuzCore.php:264
25
  msgid "Every 3 hours"
26
  msgstr ""
27
 
28
+ #: class.WpdiscuzCore.php:268
29
  msgid "Every 48 hours"
30
  msgstr ""
31
 
32
+ #: class.WpdiscuzCore.php:381
33
  msgid "We are sorry, but this comment cannot be posted. Please try later."
34
  msgstr ""
35
 
36
+ #: class.WpdiscuzCore.php:390
37
  msgid "We are sorry, you are not allowed to comment more than one time!"
38
  msgstr ""
39
 
40
+ #: class.WpdiscuzCore.php:451
41
  msgid "This is closed comment thread"
42
  msgstr ""
43
 
44
+ #: class.WpdiscuzCore.php:1113 class.WpdiscuzCore.php:1345
45
  msgid "Settings"
46
  msgstr ""
47
 
48
+ #: class.WpdiscuzCore.php:1115 class.WpdiscuzCore.php:1347
49
  msgid "Phrases"
50
  msgstr ""
51
 
52
+ #: class.WpdiscuzCore.php:1117
53
  msgid "Tools"
54
  msgstr ""
55
 
56
+ #: class.WpdiscuzCore.php:1118 options/html-options.php:22
57
  #: options/html-options.php:64 options/options-layouts/settings-addons.php:14
58
  msgid "Addons"
59
  msgstr ""
60
 
61
+ #: class.WpdiscuzCore.php:1130
62
  msgid "Do you really want to reset all options?"
63
  msgstr ""
64
 
65
+ #: class.WpdiscuzCore.php:1131
66
  msgid "Do you really want to remove voting data?"
67
  msgstr ""
68
 
69
+ #: class.WpdiscuzCore.php:1132
70
  msgid "Do you really want to reset phrases?"
71
  msgstr ""
72
 
73
+ #: class.WpdiscuzCore.php:1133
74
  msgid "Do you really want to delete gravatars cache?"
75
  msgstr ""
76
 
77
+ #: class.WpdiscuzCore.php:1134
78
  msgid "Do you really want to delete statistics cache?"
79
  msgstr ""
80
 
81
+ #: class.WpdiscuzCore.php:1171
82
  msgid "Please check one of reasons before sending feedback!"
83
  msgstr ""
84
 
85
+ #: class.WpdiscuzCore.php:1172 utils/deactivation-reason-modal.php:58
86
  msgid "Please provide more information"
87
  msgstr ""
88
 
89
+ #: class.WpdiscuzCore.php:1434 options/phrases-layouts/phrases-comment.php:56
90
  msgid "Admin"
91
  msgstr ""
92
 
93
+ #: class.WpdiscuzCore.php:1436 class.WpdiscuzCore.php:1445
94
  #: options/phrases-layouts/phrases-comment.php:58
95
  msgid "Author"
96
  msgstr ""
97
 
98
+ #: class.WpdiscuzCore.php:1440 options/phrases-layouts/phrases-comment.php:64
99
  msgid "Member"
100
  msgstr ""
101
 
102
+ #: class.WpdiscuzCore.php:1446 options/phrases-layouts/phrases-comment.php:62
103
  msgid "Guest"
104
  msgstr ""
105
 
168
  msgid "Add Field"
169
  msgstr ""
170
 
171
+ #: forms/wpDiscuzForm.php:227 options/class.WpdiscuzOptionsSerialized.php:820
172
  #: options/phrases-layouts/phrases-comment.php:19
173
  #: forms/wpdFormAttr/Field/Field.php:63
174
  msgid "Edit"
205
  msgid "Leave a Reply"
206
  msgstr ""
207
 
208
+ #: forms/wpDiscuzForm.php:421 forms/wpdFormAttr/Form.php:878
209
  #: forms/wpdFormAttr/Field/AgreementCheckbox.php:12
210
  #: forms/wpdFormAttr/Field/CheckboxField.php:12
211
  #: forms/wpdFormAttr/Field/ColorField.php:12
228
  msgid "Name"
229
  msgstr ""
230
 
231
+ #: forms/wpDiscuzForm.php:423 options/class.WpdiscuzOptionsSerialized.php:806
232
+ #: options/html-phrases.php:25 forms/wpdFormAttr/Form.php:885
233
  #: forms/wpdFormAttr/Field/DefaultField/Email.php:65
234
  msgid "Email"
235
  msgstr ""
238
  msgid "WebSite URL"
239
  msgstr ""
240
 
241
+ #: forms/wpDiscuzForm.php:428 forms/wpdFormAttr/Form.php:908
242
  #: forms/wpdFormAttr/Field/DefaultField/Submit.php:116
243
  msgid "Post Comment"
244
  msgstr ""
257
  msgid "Add Comment Form"
258
  msgstr ""
259
 
260
+ #: options/class.WpdiscuzOptions.php:22 options/class.WpdiscuzOptions.php:143
261
+ #: options/class.WpdiscuzOptions.php:368
262
  msgid "Hacker?"
263
  msgstr ""
264
 
265
+ #: options/class.WpdiscuzOptions.php:134
266
  msgid "Settings updated"
267
  msgstr ""
268
 
269
+ #: options/class.WpdiscuzOptions.php:315
270
  msgid "Phrases updated"
271
  msgstr ""
272
 
273
+ #: options/class.WpdiscuzOptions.php:342
274
  msgid "Options were backed up!"
275
  msgstr ""
276
 
277
+ #: options/class.WpdiscuzOptions.php:344
278
  msgid "Cannot back up the options!"
279
  msgstr ""
280
 
281
+ #: options/class.WpdiscuzOptions.php:355
282
  msgid "Options Imported Successfully!"
283
  msgstr ""
284
 
285
+ #: options/class.WpdiscuzOptions.php:357
286
  msgid "Error occured! File content is empty or data is not valid!"
287
  msgstr ""
288
 
289
+ #: options/class.WpdiscuzOptions.php:360
290
  msgid "Error occured! Can not get file content!"
291
  msgstr ""
292
 
293
+ #: options/class.WpdiscuzOptions.php:363
294
  msgid "Error occured! Please choose file!"
295
  msgstr ""
296
 
297
+ #: options/class.WpdiscuzOptions.php:379
298
  msgid ""
299
  "Brings an ocean of emotions to your comments. It comes with an awesome smile "
300
  "package."
301
  msgstr ""
302
 
303
+ #: options/class.WpdiscuzOptions.php:380
304
  msgid ""
305
  "Extended information about comment author with Profile, Activity, Votes and "
306
  "Subscriptions Tabs on pop-up window."
307
  msgstr ""
308
 
309
+ #: options/class.WpdiscuzOptions.php:381
310
  msgid ""
311
  "Real-time online user checking, pop-up notification of new online users and "
312
  "online/offline badges."
313
  msgstr ""
314
 
315
+ #: options/class.WpdiscuzOptions.php:382
316
  msgid ""
317
  "Allows to create private comment threads. Rich management options in "
318
  "dashboard by user roles."
319
  msgstr ""
320
 
321
+ #: options/class.WpdiscuzOptions.php:383
322
  msgid ""
323
  "Total control over comment subscriptions. Full list, monitor, manage, filter,"
324
  " unsubscribe, confirm..."
325
  msgstr ""
326
 
327
+ #: options/class.WpdiscuzOptions.php:384
328
  msgid ""
329
  "A full-fledged tool-kit for advertising in comment section of your website. "
330
  "Separate banner and ad managment."
331
  msgstr ""
332
 
333
+ #: options/class.WpdiscuzOptions.php:385
334
  msgid ""
335
  "Allows to mention comments and users in comment text using #comment-id and "
336
  "@username tags."
337
  msgstr ""
338
 
339
+ #: options/class.WpdiscuzOptions.php:386
340
  msgid ""
341
  "See comment likers and voters of each comment. Adds user reputation and "
342
  "badges based on received likes."
343
  msgstr ""
344
 
345
+ #: options/class.WpdiscuzOptions.php:387
346
  msgid ""
347
  "Comment reporting tools. Auto-moderates comments based on number of flags "
348
  "and dislikes."
349
  msgstr ""
350
 
351
+ #: options/class.WpdiscuzOptions.php:388
352
  msgid ""
353
  "Adds a smart and intuitive AJAX \"Translate\" button with 60 language "
354
  "options. Uses free translation API."
355
  msgstr ""
356
 
357
+ #: options/class.WpdiscuzOptions.php:389
358
  msgid ""
359
  "AJAX powered front-end comment search. It starts searching while you type "
360
  "search words. "
361
  msgstr ""
362
 
363
+ #: options/class.WpdiscuzOptions.php:390
364
  msgid ""
365
  "Most voted comments, Active comment threads, Most commented posts, Active "
366
  "comment authors"
367
  msgstr ""
368
 
369
+ #: options/class.WpdiscuzOptions.php:391
370
  msgid ""
371
  "All in one powerful yet simple admin toolkit to moderate comments on front-"
372
  "end."
373
  msgstr ""
374
 
375
+ #: options/class.WpdiscuzOptions.php:392
376
  msgid ""
377
  "Extended comment attachment system. Allows to upload images, videos, audios "
378
  "and other file types."
379
  msgstr ""
380
 
381
+ #: options/class.WpdiscuzOptions.php:393
382
  msgid ""
383
  "Adds No CAPTCHA on all comment forms. Stops spam and bot comments with "
384
  "Google reCAPTCHA"
385
  msgstr ""
386
 
387
+ #: options/class.WpdiscuzOptions.php:394
388
  msgid ""
389
  "Integrates myCRED Badges and Ranks. Converts wpDiscuz comment votes/likes to "
390
  "myCRED points. "
391
  msgstr ""
392
 
393
+ #: options/class.WpdiscuzOptions.php:395
394
  msgid ""
395
  "Allows censoring comment words. Filters comments and replaces those phrases "
396
  "with custom words."
397
  msgstr ""
398
 
399
+ #: options/class.WpdiscuzOptions.php:401
400
  msgid "Custom Comment Forms"
401
  msgstr ""
402
 
403
+ #: options/class.WpdiscuzOptions.php:402
404
  msgid ""
405
  "You can create custom comment forms with wpDiscuz. wpDiscuz 4 comes with "
406
  "custom comment forms and fields. You can create custom comment forms for "
408
  "eaxample: text, dropdown, rating, checkboxes, etc..."
409
  msgstr ""
410
 
411
+ #: options/class.WpdiscuzOptions.php:405
412
  msgid "Emoticons"
413
  msgstr ""
414
 
415
+ #: options/class.WpdiscuzOptions.php:406
416
  msgid ""
417
  "You can add more emotions to your comments using wpDiscuz Emoticons addon."
418
  msgstr ""
419
 
420
+ #: options/class.WpdiscuzOptions.php:409
421
  msgid "Ads Manager"
422
  msgstr ""
423
 
424
+ #: options/class.WpdiscuzOptions.php:410
425
  msgid ""
426
  "Increase your income using ad banners. Comment area is the most active "
427
  "sections for advertising. wpDiscuz Ads Manager addon is designed to help you "
428
  "add banners and control ads in this section."
429
  msgstr ""
430
 
431
+ #: options/class.WpdiscuzOptions.php:413
432
  msgid "User and Comment Mentioning"
433
  msgstr ""
434
 
435
+ #: options/class.WpdiscuzOptions.php:414
436
  msgid ""
437
  "Using wpDiscuz User &amp; Comment Mentioning addon you can allow commenters "
438
  "mention comments and users in comment text using #comment-id and @username "
439
  "tags."
440
  msgstr ""
441
 
442
+ #: options/class.WpdiscuzOptions.php:417 options/addons/al/title.php:7
443
  msgid "Advanced Likers"
444
  msgstr ""
445
 
446
+ #: options/class.WpdiscuzOptions.php:418
447
  msgid ""
448
  "wpDiscuz Advanced Likers addon displays likers and voters of each comment. "
449
  "Adds user reputation and badges based on received likes."
450
  msgstr ""
451
 
452
+ #: options/class.WpdiscuzOptions.php:421 options/addons/raf/title.php:7
453
  msgid "Report and Flagging"
454
  msgstr ""
455
 
456
+ #: options/class.WpdiscuzOptions.php:422
457
  msgid ""
458
  "Let your commenters help you to determine and remove spam comments. wpDiscuz "
459
  "Report and Flagging addon comes with comment reporting tools. Automaticaly "
460
  "auto-moderates comments based on number of flags and dislikes."
461
  msgstr ""
462
 
463
+ #: options/class.WpdiscuzOptions.php:425
464
  msgid "Comment Translate"
465
  msgstr ""
466
 
467
+ #: options/class.WpdiscuzOptions.php:426
468
  msgid ""
469
  "In most cases the big part of your visitors are not a native speakers of "
470
  "your language. Make your comments comprehensible for all visitors using "
473
  "translation API."
474
  msgstr ""
475
 
476
+ #: options/class.WpdiscuzOptions.php:429
477
  msgid "Comment Search"
478
  msgstr ""
479
 
480
+ #: options/class.WpdiscuzOptions.php:430
481
  msgid ""
482
  "You can let website visitor search in comments. It's always more attractive "
483
  "to find a comment about something that interest you. Using wpDiscuz Comment "
485
  "above comment list."
486
  msgstr ""
487
 
488
+ #: options/class.WpdiscuzOptions.php:433
489
  msgid "wpDiscuz Widgets"
490
  msgstr ""
491
 
492
+ #: options/class.WpdiscuzOptions.php:434
493
  msgid ""
494
  "More Comment Widgets! Most voted comments, Active comment threads, Most "
495
  "commented posts, Active comment authors widgets are available in wpDiscuz "
496
  "Widgets Addon"
497
  msgstr ""
498
 
499
+ #: options/class.WpdiscuzOptions.php:437
500
  msgid "Front-end Moderation"
501
  msgstr ""
502
 
503
+ #: options/class.WpdiscuzOptions.php:438
504
  msgid ""
505
  "You can moderate comments on front-end using all in one powerful yet simple "
506
  "wpDiscuz Frontend Moderation addon."
507
  msgstr ""
508
 
509
+ #: options/class.WpdiscuzOptions.php:441 options/addons/mu/title.php:7
510
  msgid "Media Uploader"
511
  msgstr ""
512
 
513
+ #: options/class.WpdiscuzOptions.php:442
514
  msgid ""
515
  "You can let website visitors attach images and files to comments and embed "
516
  "video/audio content using wpDiscuz Media Uploader addon."
517
  msgstr ""
518
 
519
+ #: options/class.WpdiscuzOptions.php:445
520
  msgid "Google ReCaptcha"
521
  msgstr ""
522
 
523
+ #: options/class.WpdiscuzOptions.php:446
524
  msgid ""
525
  "Advanced spam protection with wpDiscuz Google reCAPTCHA addon. This addon "
526
  "adds No-CAPTCHA reCAPTCHA on all comment forms. Stops spam and bot comments."
527
  msgstr ""
528
 
529
+ #: options/class.WpdiscuzOptions.php:507
530
  msgid "Do you know?"
531
  msgstr ""
532
 
533
+ #: options/class.WpdiscuzOptions.php:520
534
  msgid "More info"
535
  msgstr ""
536
 
537
+ #: options/class.WpdiscuzOptionsSerialized.php:796
538
  msgid "Be the First to Comment!"
539
  msgstr ""
540
 
541
+ #: options/class.WpdiscuzOptionsSerialized.php:797
542
  msgid "Start the discussion"
543
  msgstr ""
544
 
545
+ #: options/class.WpdiscuzOptionsSerialized.php:798
546
  msgid "Join the discussion"
547
  msgstr ""
548
 
549
+ #: options/class.WpdiscuzOptionsSerialized.php:799
550
  #: options/phrases-layouts/phrases-form.php:19
551
  msgid "Comment threads"
552
  msgstr ""
553
 
554
+ #: options/class.WpdiscuzOptionsSerialized.php:800
555
  #: options/phrases-layouts/phrases-form.php:23
556
  msgid "Thread replies"
557
  msgstr ""
558
 
559
+ #: options/class.WpdiscuzOptionsSerialized.php:801
560
  #: options/phrases-layouts/phrases-form.php:27
561
  msgid "Followers"
562
  msgstr ""
563
 
564
+ #: options/class.WpdiscuzOptionsSerialized.php:802
565
  #: options/phrases-layouts/phrases-form.php:31
566
  msgid "Most reacted comment"
567
  msgstr ""
568
 
569
+ #: options/class.WpdiscuzOptionsSerialized.php:803
570
  #: options/phrases-layouts/phrases-form.php:35
571
  msgid "Hottest comment thread"
572
  msgstr ""
573
 
574
+ #: options/class.WpdiscuzOptionsSerialized.php:804
575
  #: options/phrases-layouts/phrases-form.php:39
576
  msgid "Comment authors"
577
  msgstr ""
578
 
579
+ #: options/class.WpdiscuzOptionsSerialized.php:805
580
  #: options/phrases-layouts/phrases-form.php:43
581
  msgid "Recent comment authors"
582
  msgstr ""
583
 
584
+ #: options/class.WpdiscuzOptionsSerialized.php:807
585
  #: options/phrases-layouts/phrases-form.php:51
586
  msgid "Subscribe"
587
  msgstr ""
588
 
589
+ #: options/class.WpdiscuzOptionsSerialized.php:808
590
  #: options/phrases-layouts/phrases-form.php:55
591
  msgid "Notify of"
592
  msgstr ""
593
 
594
+ #: options/class.WpdiscuzOptionsSerialized.php:809
595
  msgid "new follow-up comments"
596
  msgstr ""
597
 
598
+ #: options/class.WpdiscuzOptionsSerialized.php:810
599
  msgid "new replies to my comments"
600
  msgstr ""
601
 
602
+ #: options/class.WpdiscuzOptionsSerialized.php:811
603
  msgid "Notify of new replies to this comment"
604
  msgstr ""
605
 
606
+ #: options/class.WpdiscuzOptionsSerialized.php:812
607
  #: options/phrases-layouts/phrases-form.php:71
608
  msgid "Sort by"
609
  msgstr ""
610
 
611
+ #: options/class.WpdiscuzOptionsSerialized.php:813
612
  #: options/phrases-layouts/phrases-form.php:75
613
  msgid "newest"
614
  msgstr ""
615
 
616
+ #: options/class.WpdiscuzOptionsSerialized.php:814
617
  #: options/phrases-layouts/phrases-form.php:79
618
  msgid "oldest"
619
  msgstr ""
620
 
621
+ #: options/class.WpdiscuzOptionsSerialized.php:815
622
  #: options/phrases-layouts/phrases-form.php:83
623
  msgid "most voted"
624
  msgstr ""
625
 
626
+ #: options/class.WpdiscuzOptionsSerialized.php:816
627
  msgid "Load More Comments"
628
  msgstr ""
629
 
630
+ #: options/class.WpdiscuzOptionsSerialized.php:817
631
  #: options/phrases-layouts/phrases-general.php:19
632
  msgid "Load Rest of Comments"
633
  msgstr ""
634
 
635
+ #: options/class.WpdiscuzOptionsSerialized.php:818
636
  #: options/phrases-layouts/phrases-comment.php:11
637
  msgid "Reply"
638
  msgstr ""
639
 
640
+ #: options/class.WpdiscuzOptionsSerialized.php:819
641
  #: options/phrases-layouts/phrases-comment.php:15
642
  msgid "Share"
643
  msgstr ""
644
 
645
+ #: options/class.WpdiscuzOptionsSerialized.php:821
646
  #: options/phrases-layouts/phrases-comment.php:23
647
  msgid "Share On Facebook"
648
  msgstr ""
649
 
650
+ #: options/class.WpdiscuzOptionsSerialized.php:822
651
  #: options/phrases-layouts/phrases-comment.php:27
652
  msgid "Share On Twitter"
653
  msgstr ""
654
 
655
+ #: options/class.WpdiscuzOptionsSerialized.php:823
656
  #: options/phrases-layouts/phrases-comment.php:31
657
  msgid "Share On Google"
658
  msgstr ""
659
 
660
+ #: options/class.WpdiscuzOptionsSerialized.php:824
661
  #: options/phrases-layouts/phrases-comment.php:35
662
  msgid "Share On VKontakte"
663
  msgstr ""
664
 
665
+ #: options/class.WpdiscuzOptionsSerialized.php:825
666
  #: options/phrases-layouts/phrases-comment.php:39
667
  msgid "Share On Odnoklassniki"
668
  msgstr ""
669
 
670
+ #: options/class.WpdiscuzOptionsSerialized.php:826
671
  #: options/phrases-layouts/phrases-comment.php:43
672
  msgid "Hide Replies"
673
  msgstr ""
674
 
675
+ #: options/class.WpdiscuzOptionsSerialized.php:827
676
  #: options/phrases-layouts/phrases-comment.php:47
677
  msgid "View Replies"
678
  msgstr ""
679
 
680
+ #: options/class.WpdiscuzOptionsSerialized.php:828
681
+ #: options/class.WpdiscuzOptionsSerialized.php:953
682
  msgid "New Comment"
683
  msgstr ""
684
 
685
+ #: options/class.WpdiscuzOptionsSerialized.php:829
686
+ msgid ""
687
+ "Hi [SUBSCRIBER_NAME],<br/><br/> new comment have been posted by the <em>"
688
+ "<strong>[COMMENT_AUTHOR]</em></strong> on the discussion section you've been "
689
+ "interested in<br/><br/><a href=\"[COMMENT_URL]\">[COMMENT_URL]</a><br/><br/>"
690
+ "[COMMENT_CONTENT]<br/><br/><a href=\"[UNSUBSCRIBE_URL]\">Unsubscribe</a>"
 
691
  msgstr ""
692
 
693
+ #: options/class.WpdiscuzOptionsSerialized.php:830
694
+ #: options/class.WpdiscuzOptionsSerialized.php:832
695
  msgid "New Reply"
696
  msgstr ""
697
 
698
+ #: options/class.WpdiscuzOptionsSerialized.php:831
699
+ #: options/class.WpdiscuzOptionsSerialized.php:833
700
+ msgid ""
701
+ "Hi [SUBSCRIBER_NAME],<br/><br/> new reply have been posted by the <em>"
702
+ "<strong>[COMMENT_AUTHOR]</em></strong> on the discussion section you've been "
703
+ "interested in<br/><br/><a href=\"[COMMENT_URL]\">[COMMENT_URL]</a><br/><br/>"
704
+ "[COMMENT_CONTENT]<br/><br/><a href=\"[UNSUBSCRIBE_URL]\">Unsubscribe</a>"
705
+ msgstr ""
706
+
707
+ #: options/class.WpdiscuzOptionsSerialized.php:834
708
  msgid "You're subscribed for new replies on this comment"
709
  msgstr ""
710
 
711
+ #: options/class.WpdiscuzOptionsSerialized.php:835
712
  msgid "You're subscribed for new replies on all your comments"
713
  msgstr ""
714
 
715
+ #: options/class.WpdiscuzOptionsSerialized.php:836
716
  msgid "You're subscribed for new follow-up comments on this post"
717
  msgstr ""
718
 
719
+ #: options/class.WpdiscuzOptionsSerialized.php:837
720
+ #: options/phrases-layouts/phrases-email.php:172
721
  msgid "Unsubscribe"
722
  msgstr ""
723
 
724
+ #: options/class.WpdiscuzOptionsSerialized.php:838
725
  msgid "Cancel subscription"
726
  msgstr ""
727
 
728
+ #: options/class.WpdiscuzOptionsSerialized.php:839
729
  #: options/phrases-layouts/phrases-notification.php:19
730
  msgid "You've successfully unsubscribed."
731
  msgstr ""
732
 
733
+ #: options/class.WpdiscuzOptionsSerialized.php:840
734
  #: options/phrases-layouts/phrases-notification.php:15
735
  msgid "You've successfully subscribed."
736
  msgstr ""
737
 
738
+ #: options/class.WpdiscuzOptionsSerialized.php:841
739
+ #: options/phrases-layouts/phrases-email.php:180
740
  msgid "Confirm your subscription"
741
  msgstr ""
742
 
743
+ #: options/class.WpdiscuzOptionsSerialized.php:842
744
+ #: options/phrases-layouts/phrases-email.php:184
745
  msgid "You've successfully confirmed your subscription."
746
  msgstr ""
747
 
748
+ #: options/class.WpdiscuzOptionsSerialized.php:843
749
  msgid "Subscription Confirmation"
750
  msgstr ""
751
 
752
+ #: options/class.WpdiscuzOptionsSerialized.php:844
753
+ msgid ""
754
+ "Hi, <br/> You just subscribed for new comments on our website. This means "
755
+ "you will receive an email when new comments are posted according to "
756
+ "subscription option you've chosen. <br/> To activate, click confirm below. "
757
+ "If you believe this is an error, ignore this message and we'll never bother "
758
+ "you again. <br/><br/><a href=\"[POST_URL]\">[POST_TITLE]</a><br/><br/><a "
759
+ "href=\"[CONFIRM_URL]\">Confirm Your Subscrption</a><br/><br/><a "
760
+ "href=\"[CANCEL_URL]\">Cancel Subscription</a>"
761
+ msgstr ""
762
+
763
+ #: options/class.WpdiscuzOptionsSerialized.php:845
764
  msgid "please fill out this field to comment"
765
  msgstr ""
766
 
767
+ #: options/class.WpdiscuzOptionsSerialized.php:846
768
  msgid "email address is invalid"
769
  msgstr ""
770
 
771
+ #: options/class.WpdiscuzOptionsSerialized.php:847
772
  msgid "url is invalid"
773
  msgstr ""
774
 
775
+ #: options/class.WpdiscuzOptionsSerialized.php:848
776
  msgid "year"
777
  msgstr ""
778
 
779
+ #: options/class.WpdiscuzOptionsSerialized.php:849
780
  msgid "years"
781
  msgstr ""
782
 
783
+ #: options/class.WpdiscuzOptionsSerialized.php:850
784
  msgid "month"
785
  msgstr ""
786
 
787
+ #: options/class.WpdiscuzOptionsSerialized.php:851
788
  msgid "months"
789
  msgstr ""
790
 
791
+ #: options/class.WpdiscuzOptionsSerialized.php:852
792
  msgid "day"
793
  msgstr ""
794
 
795
+ #: options/class.WpdiscuzOptionsSerialized.php:853
796
  msgid "days"
797
  msgstr ""
798
 
799
+ #: options/class.WpdiscuzOptionsSerialized.php:854
800
  msgid "hour"
801
  msgstr ""
802
 
803
+ #: options/class.WpdiscuzOptionsSerialized.php:855
804
  msgid "hours"
805
  msgstr ""
806
 
807
+ #: options/class.WpdiscuzOptionsSerialized.php:856
808
  msgid "minute"
809
  msgstr ""
810
 
811
+ #: options/class.WpdiscuzOptionsSerialized.php:857
812
  msgid "minutes"
813
  msgstr ""
814
 
815
+ #: options/class.WpdiscuzOptionsSerialized.php:858
816
  msgid "second"
817
  msgstr ""
818
 
819
+ #: options/class.WpdiscuzOptionsSerialized.php:859
820
  msgid "seconds"
821
  msgstr ""
822
 
823
+ #: options/class.WpdiscuzOptionsSerialized.php:860
824
  msgid "right now"
825
  msgstr ""
826
 
827
+ #: options/class.WpdiscuzOptionsSerialized.php:861
828
  msgid "ago"
829
  msgstr ""
830
 
831
+ #: options/class.WpdiscuzOptionsSerialized.php:862
832
  #: options/phrases-layouts/phrases-notification.php:38
833
  msgid "You must be"
834
  msgstr ""
835
 
836
+ #: options/class.WpdiscuzOptionsSerialized.php:863
837
  msgid "You are logged in as"
838
  msgstr ""
839
 
840
+ #: options/class.WpdiscuzOptionsSerialized.php:864
841
  #: options/phrases-layouts/phrases-notification.php:29
842
  msgid "Login"
843
  msgstr ""
844
 
845
+ #: options/class.WpdiscuzOptionsSerialized.php:865
846
  #: options/phrases-layouts/phrases-notification.php:33
847
  #, php-format
848
  msgid "Please %s to comment"
849
  msgstr ""
850
 
851
+ #: options/class.WpdiscuzOptionsSerialized.php:866
852
  #: options/phrases-layouts/phrases-notification.php:54
853
  msgid "Log out"
854
  msgstr ""
855
 
856
+ #: options/class.WpdiscuzOptionsSerialized.php:867
857
  msgid "logged in"
858
  msgstr ""
859
 
860
+ #: options/class.WpdiscuzOptionsSerialized.php:868
861
  msgid "to post a comment."
862
  msgstr ""
863
 
864
+ #: options/class.WpdiscuzOptionsSerialized.php:869
865
  #: options/phrases-layouts/phrases-comment.php:75
866
  msgid "Vote Up"
867
  msgstr ""
868
 
869
+ #: options/class.WpdiscuzOptionsSerialized.php:870
870
  #: options/phrases-layouts/phrases-comment.php:79
871
  msgid "Vote Down"
872
  msgstr ""
873
 
874
+ #: options/class.WpdiscuzOptionsSerialized.php:871
875
  #: options/phrases-layouts/phrases-notification.php:58
876
  msgid "Vote Counted"
877
  msgstr ""
878
 
879
+ #: options/class.WpdiscuzOptionsSerialized.php:872
880
  msgid "You've already voted for this comment"
881
  msgstr ""
882
 
883
+ #: options/class.WpdiscuzOptionsSerialized.php:873
884
  #: options/phrases-layouts/phrases-error.php:27
885
  msgid "Voting Error"
886
  msgstr ""
887
 
888
+ #: options/class.WpdiscuzOptionsSerialized.php:874
889
  msgid "You Must Be Logged In To Vote"
890
  msgstr ""
891
 
892
+ #: options/class.WpdiscuzOptionsSerialized.php:875
893
  msgid "You cannot vote for your comment"
894
  msgstr ""
895
 
896
+ #: options/class.WpdiscuzOptionsSerialized.php:876
897
  msgid "You are not allowed to vote for this comment"
898
  msgstr ""
899
 
900
+ #: options/class.WpdiscuzOptionsSerialized.php:877
901
  #: options/phrases-layouts/phrases-error.php:39
902
  msgid "Invalid Captcha Code"
903
  msgstr ""
904
 
905
+ #: options/class.WpdiscuzOptionsSerialized.php:878
906
  #: options/phrases-layouts/phrases-error.php:43
907
  msgid "Some of field value is invalid"
908
  msgstr ""
909
 
910
+ #: options/class.WpdiscuzOptionsSerialized.php:879
911
  msgid "new comment"
912
  msgstr ""
913
 
914
+ #: options/class.WpdiscuzOptionsSerialized.php:880
915
  msgid "new comments"
916
  msgstr ""
917
 
918
+ #: options/class.WpdiscuzOptionsSerialized.php:881
919
  msgid "Comment awaiting moderation"
920
  msgstr ""
921
 
922
+ #: options/class.WpdiscuzOptionsSerialized.php:882
923
  msgid "new reply on your comment"
924
  msgstr ""
925
 
926
+ #: options/class.WpdiscuzOptionsSerialized.php:883
927
  msgid "new replies on your comments"
928
  msgstr ""
929
 
930
+ #: options/class.WpdiscuzOptionsSerialized.php:884
931
  msgid "Sorry, the comment was not updated"
932
  msgstr ""
933
 
934
+ #: options/class.WpdiscuzOptionsSerialized.php:885
935
  msgid "Sorry, this comment no longer possible to edit"
936
  msgstr ""
937
 
938
+ #: options/class.WpdiscuzOptionsSerialized.php:886
939
  msgid "You've not made any changes"
940
  msgstr ""
941
 
942
+ #: options/class.WpdiscuzOptionsSerialized.php:887
943
  msgid "Save"
944
  msgstr ""
945
 
946
+ #: options/class.WpdiscuzOptionsSerialized.php:888
947
  msgid "Cancel"
948
  msgstr ""
949
 
950
+ #: options/class.WpdiscuzOptionsSerialized.php:889
951
  msgid "Input is too short"
952
  msgstr ""
953
 
954
+ #: options/class.WpdiscuzOptionsSerialized.php:890
955
  msgid "Input is too long"
956
  msgstr ""
957
 
958
+ #: options/class.WpdiscuzOptionsSerialized.php:891
959
  msgid "Read more &raquo;"
960
  msgstr ""
961
 
962
+ #: options/class.WpdiscuzOptionsSerialized.php:892
963
  msgid "Anonymous"
964
  msgstr ""
965
 
966
+ #: options/class.WpdiscuzOptionsSerialized.php:893
967
  #: options/phrases-layouts/phrases-error.php:67
968
  msgid "Please fill out required fields"
969
  msgstr ""
970
 
971
+ #: options/class.WpdiscuzOptionsSerialized.php:894
972
  #: options/phrases-layouts/phrases-social-login.php:11
973
  msgid "Connect with"
974
  msgstr ""
975
 
976
+ #: options/class.WpdiscuzOptionsSerialized.php:895
977
  #: options/phrases-layouts/phrases-notification.php:11
978
  msgid "You're subscribed to"
979
  msgstr ""
980
 
981
+ #: options/class.WpdiscuzOptionsSerialized.php:896
982
  msgid "Participate in this discussion via email"
983
  msgstr ""
984
 
985
+ #: options/class.WpdiscuzOptionsSerialized.php:897
986
  #: utils/layouts/pagination.php:46
987
  msgid "&rsaquo;"
988
  msgstr ""
989
 
990
+ #: options/class.WpdiscuzOptionsSerialized.php:898
991
  msgid "Your comment is approved!"
992
  msgstr ""
993
 
994
+ #: options/class.WpdiscuzOptionsSerialized.php:899
995
  msgid ""
996
  "Hi [COMMENT_AUTHOR],<br/><br/>your comment was approved.<br/><br/><a "
997
  "href=\"[COMMENT_URL]\">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]"
998
  msgstr ""
999
 
1000
+ #: options/class.WpdiscuzOptionsSerialized.php:900
1001
  msgid "Comments are closed."
1002
  msgstr ""
1003
 
1004
+ #: options/class.WpdiscuzOptionsSerialized.php:901
1005
  msgid "Stick this comment"
1006
  msgstr ""
1007
 
1008
+ #: options/class.WpdiscuzOptionsSerialized.php:902
1009
  #: options/phrases-layouts/phrases-comment.php:103
1010
  msgid "Stick"
1011
  msgstr ""
1012
 
1013
+ #: options/class.WpdiscuzOptionsSerialized.php:903
1014
  #: options/phrases-layouts/phrases-comment.php:107
1015
  msgid "Unstick"
1016
  msgstr ""
1017
 
1018
+ #: options/class.WpdiscuzOptionsSerialized.php:904
1019
  msgid "Sticky comment thread"
1020
  msgstr ""
1021
 
1022
+ #: options/class.WpdiscuzOptionsSerialized.php:905
1023
  msgid "Close this thread"
1024
  msgstr ""
1025
 
1026
+ #: options/class.WpdiscuzOptionsSerialized.php:906
1027
  #: options/phrases-layouts/phrases-comment.php:119
1028
  msgid "Close"
1029
  msgstr ""
1030
 
1031
+ #: options/class.WpdiscuzOptionsSerialized.php:907
1032
  #: options/phrases-layouts/phrases-comment.php:123
1033
  msgid "Open"
1034
  msgstr ""
1035
 
1036
+ #: options/class.WpdiscuzOptionsSerialized.php:908
1037
  msgid "Closed comment thread"
1038
  msgstr ""
1039
 
1040
+ #: options/class.WpdiscuzOptionsSerialized.php:909
1041
  msgid "I allow to create an account"
1042
  msgstr ""
1043
 
1044
+ #: options/class.WpdiscuzOptionsSerialized.php:910
1045
  msgid ""
1046
  "When you login first time using a Social Login button, we collect your "
1047
  "account public profile information shared by Social Login provider, based on "
1050
  "you'll be logged-in to this account."
1051
  msgstr ""
1052
 
1053
+ #: options/class.WpdiscuzOptionsSerialized.php:911
1054
  msgid "This comment form is under antispam protection"
1055
  msgstr ""
1056
 
1057
+ #: options/class.WpdiscuzOptionsSerialized.php:912
1058
  #: options/phrases-layouts/phrases-social-login.php:23
1059
  msgid "Disagree"
1060
  msgstr ""
1061
 
1062
+ #: options/class.WpdiscuzOptionsSerialized.php:913
1063
  #: options/phrases-layouts/phrases-social-login.php:27
1064
  msgid "Agree"
1065
  msgstr ""
1066
 
1067
+ #: options/class.WpdiscuzOptionsSerialized.php:914
1068
  #: options/phrases-layouts/phrases-user-settings.php:11
1069
  msgid "My content and settings"
1070
  msgstr ""
1071
 
1072
+ #: options/class.WpdiscuzOptionsSerialized.php:915
1073
  #: options/phrases-layouts/phrases-user-settings.php:15
1074
  msgid "Activity"
1075
  msgstr ""
1076
 
1077
+ #: options/class.WpdiscuzOptionsSerialized.php:916
1078
  #: options/phrases-layouts/phrases-user-settings.php:19
1079
  msgid "Subscriptions"
1080
  msgstr ""
1081
 
1082
+ #: options/class.WpdiscuzOptionsSerialized.php:917
1083
  #: options/phrases-layouts/phrases-user-settings.php:23
1084
  msgid "Follows"
1085
  msgstr ""
1086
 
1087
+ #: options/class.WpdiscuzOptionsSerialized.php:918
1088
  #: options/phrases-layouts/phrases-user-settings.php:27
1089
  msgid "In response to:"
1090
  msgstr ""
1091
 
1092
+ #: options/class.WpdiscuzOptionsSerialized.php:919
1093
+ #: options/class.WpdiscuzOptionsSerialized.php:925
1094
  #: options/phrases-layouts/phrases-user-settings.php:31
1095
  #: options/phrases-layouts/phrases-user-settings.php:55
1096
  msgid "Bulk management via email"
1097
  msgstr ""
1098
 
1099
+ #: options/class.WpdiscuzOptionsSerialized.php:920
1100
  msgid ""
1101
  "Click the button above to get an email with bulk delete and unsubscribe "
1102
  "links."
1103
  msgstr ""
1104
 
1105
+ #: options/class.WpdiscuzOptionsSerialized.php:921
1106
  #: options/phrases-layouts/phrases-user-settings.php:39
1107
  msgid "No data found!"
1108
  msgstr ""
1109
 
1110
+ #: options/class.WpdiscuzOptionsSerialized.php:922
1111
+ #: options/class.WpdiscuzOptionsSerialized.php:926
1112
  #: options/phrases-layouts/phrases-user-settings.php:43
1113
  #: options/phrases-layouts/phrases-user-settings.php:60
1114
  msgid "Delete all my comments"
1115
  msgstr ""
1116
 
1117
+ #: options/class.WpdiscuzOptionsSerialized.php:923
1118
  #: options/phrases-layouts/phrases-user-settings.php:47
1119
  msgid "Cancel all comment subscriptions"
1120
  msgstr ""
1121
 
1122
+ #: options/class.WpdiscuzOptionsSerialized.php:924
1123
  #: options/phrases-layouts/phrases-user-settings.php:51
1124
  msgid "Clear cookies with my personal data"
1125
  msgstr ""
1126
 
1127
+ #: options/class.WpdiscuzOptionsSerialized.php:927
1128
  msgid ""
1129
  "Please use this link to delete all your comments. Please note, that this "
1130
  "action cannot be undone.<br/><br/><a href=\"[DELETE_COMMENTS_URL]\" "
1131
  "target=\"_blank\">Delete all my comments</a><br/><br/>"
1132
  msgstr ""
1133
 
1134
+ #: options/class.WpdiscuzOptionsSerialized.php:928
1135
  #: options/phrases-layouts/phrases-user-settings.php:85
1136
  msgid "Delete all my subscriptions"
1137
  msgstr ""
1138
 
1139
+ #: options/class.WpdiscuzOptionsSerialized.php:929
1140
  msgid ""
1141
  "Please use this link to cancel all subscriptions for new comments. Please "
1142
  "note, that this action cannot be undone.<br/><br/><a "
1144
  "subscriptions</a><br/><br/>"
1145
  msgstr ""
1146
 
1147
+ #: options/class.WpdiscuzOptionsSerialized.php:930
1148
  #: options/phrases-layouts/phrases-user-settings.php:110
1149
  msgid "Delete all my follows"
1150
  msgstr ""
1151
 
1152
+ #: options/class.WpdiscuzOptionsSerialized.php:931
1153
  msgid ""
1154
  "Please use this link to cancel all follows for new comments. Please note, "
1155
  "that this action cannot be undone.<br/><br/><a href=\"[DELETE_FOLLOWS_URL]\" "
1156
  "target=\"_blank\">Delete all my follows</a><br/><br/>"
1157
  msgstr ""
1158
 
1159
+ #: options/class.WpdiscuzOptionsSerialized.php:932
1160
  #: options/phrases-layouts/phrases-user-settings.php:134
1161
  msgid "subscribed to this comment"
1162
  msgstr ""
1163
 
1164
+ #: options/class.WpdiscuzOptionsSerialized.php:933
1165
  #: options/phrases-layouts/phrases-user-settings.php:138
1166
  msgid "subscribed to my comments"
1167
  msgstr ""
1168
 
1169
+ #: options/class.WpdiscuzOptionsSerialized.php:934
1170
  #: options/phrases-layouts/phrases-user-settings.php:142
1171
  msgid "subscribed to all follow-up comments of this post"
1172
  msgstr ""
1173
 
1174
+ #: options/class.WpdiscuzOptionsSerialized.php:936
1175
  #: options/phrases-layouts/phrases-user-settings.php:150
1176
  msgid "Error : Can't send email."
1177
  msgstr ""
1178
 
1179
+ #: options/class.WpdiscuzOptionsSerialized.php:937
1180
  #: options/phrases-layouts/phrases-user-settings.php:154
1181
  msgid "Are you sure you want to delete this comment?"
1182
  msgstr ""
1183
 
1184
+ #: options/class.WpdiscuzOptionsSerialized.php:938
1185
  #: options/phrases-layouts/phrases-user-settings.php:158
1186
  msgid "Are you sure you want to cancel this subscription?"
1187
  msgstr ""
1188
 
1189
+ #: options/class.WpdiscuzOptionsSerialized.php:939
1190
  #: options/phrases-layouts/phrases-user-settings.php:162
1191
  msgid "Are you sure you want to cancel this follow?"
1192
  msgstr ""
1193
 
1194
+ #: options/class.WpdiscuzOptionsSerialized.php:940
1195
  #: options/phrases-layouts/phrases-follow.php:11
1196
  msgid "Follow this user"
1197
  msgstr ""
1198
 
1199
+ #: options/class.WpdiscuzOptionsSerialized.php:941
1200
  #: options/phrases-layouts/phrases-follow.php:15
1201
  msgid "Unfollow this user"
1202
  msgstr ""
1203
 
1204
+ #: options/class.WpdiscuzOptionsSerialized.php:942
1205
  #: options/phrases-layouts/phrases-follow.php:19
1206
  msgid "You started following this comment author"
1207
  msgstr ""
1208
 
1209
+ #: options/class.WpdiscuzOptionsSerialized.php:943
1210
  msgid "You stopped following this comment author."
1211
  msgstr ""
1212
 
1213
+ #: options/class.WpdiscuzOptionsSerialized.php:944
1214
  msgid "Please check your email and confirm the user following request."
1215
  msgstr ""
1216
 
1217
+ #: options/class.WpdiscuzOptionsSerialized.php:945
1218
  msgid "Sorry, we couldn't send confirmation email."
1219
  msgstr ""
1220
 
1221
+ #: options/class.WpdiscuzOptionsSerialized.php:946
1222
  msgid "Please login to follow users."
1223
  msgstr ""
1224
 
1225
+ #: options/class.WpdiscuzOptionsSerialized.php:947
1226
  msgid "We are sorry, but you can't follow this user."
1227
  msgstr ""
1228
 
1229
+ #: options/class.WpdiscuzOptionsSerialized.php:948
1230
  msgid "Following failed. Please try again later."
1231
  msgstr ""
1232
 
1233
+ #: options/class.WpdiscuzOptionsSerialized.php:949
1234
  msgid "Confirm user following request"
1235
  msgstr ""
1236
 
1237
+ #: options/class.WpdiscuzOptionsSerialized.php:950
1238
  msgid "Cancel user following request"
1239
  msgstr ""
1240
 
1241
+ #: options/class.WpdiscuzOptionsSerialized.php:951
1242
  msgid "User Following Confirmation"
1243
  msgstr ""
1244
 
1245
+ #: options/class.WpdiscuzOptionsSerialized.php:952
1246
+ #: options/class.WpdiscuzOptionsSerialized.php:954
1247
+ msgid "</a>"
1248
+ msgstr ""
1249
+
1250
  #: options/html-addons.php:11
1251
  msgid "wpDiscuz Addons"
1252
  msgstr ""
1410
  msgid "Other"
1411
  msgstr ""
1412
 
1413
+ #: utils/class.WpdiscuzHelper.php:225 utils/class.WpdiscuzHelper.php:228
1414
  msgid "Spoiler"
1415
  msgstr ""
1416
 
1417
+ #: utils/class.WpdiscuzHelper.php:568
1418
  msgid "Go to update data"
1419
  msgstr ""
1420
 
1421
+ #: utils/class.WpdiscuzHelperEmail.php:516
1422
  msgid "Cancel Follow"
1423
  msgstr ""
1424
 
1526
  #: options/options-layouts/settings-form.php:220
1527
  #: options/options-layouts/settings-general.php:14
1528
  #: options/options-layouts/settings-general.php:26
1529
+ #: options/options-layouts/settings-general.php:38
1530
+ #: options/options-layouts/settings-general.php:80
1531
+ #: options/options-layouts/settings-general.php:94
1532
+ #: options/options-layouts/settings-general.php:104
1533
  #: options/options-layouts/settings-list.php:20
1534
  #: options/options-layouts/settings-list.php:31
1535
  #: options/options-layouts/settings-list.php:41
1626
  msgid "ADD ROW"
1627
  msgstr ""
1628
 
1629
+ #: forms/wpdFormAttr/Form.php:892
1630
  #: forms/wpdFormAttr/Field/DefaultField/Website.php:84
1631
  msgid "Website"
1632
  msgstr ""
1633
 
1634
+ #: forms/wpdFormAttr/Form.php:901
1635
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:117
1636
  msgid "Code"
1637
  msgstr ""
1909
  msgstr ""
1910
 
1911
  #: options/options-layouts/settings-general.php:19
1912
+ msgid "Enable WordPress native ajax"
1913
  msgstr ""
1914
 
1915
  #: options/options-layouts/settings-general.php:21
1916
+ msgid "Enable Wordpress native ajax"
1917
+ msgstr ""
1918
+
1919
+ #: options/options-layouts/settings-general.php:31
1920
+ msgid "Use guest email to detect registered account"
1921
+ msgstr ""
1922
+
1923
+ #: options/options-layouts/settings-general.php:33
1924
  msgid ""
1925
  "Sometimes registered users comment as guest using the same email address. "
1926
  "wpDiscuz can detect the account role using guest email and display commenter "
1927
  "label correctly."
1928
  msgstr ""
1929
 
1930
+ #: options/options-layouts/settings-general.php:43
1931
  msgid "Secure comment content in HTTPS protocol."
1932
  msgstr ""
1933
 
1934
+ #: options/options-layouts/settings-general.php:45
1935
  msgid ""
1936
  "This option detects images and other contents with non-https source URLs and "
1937
  "fix according to your selected logic."
1938
  msgstr ""
1939
 
1940
+ #: options/options-layouts/settings-general.php:53
1941
  msgid "Replace non-https content to simple link URLs"
1942
  msgstr ""
1943
 
1944
+ #: options/options-layouts/settings-general.php:57
1945
  msgid ""
1946
  "Just replace http protocols to https (https may not be supported by content "
1947
  "provider)"
1948
  msgstr ""
1949
 
1950
+ #: options/options-layouts/settings-general.php:61
1951
  msgid "Ignore non-https content"
1952
  msgstr ""
1953
 
1954
+ #: options/options-layouts/settings-general.php:69
1955
  msgid "Redirect first commenter to"
1956
  msgstr ""
1957
 
1958
+ #: options/options-layouts/settings-general.php:76
1959
  msgid "Do not redirect"
1960
  msgstr ""
1961
 
1962
+ #: options/options-layouts/settings-general.php:85
1963
  msgid "Use WordPress Date/Time format"
1964
  msgstr ""
1965
 
1966
+ #: options/options-layouts/settings-general.php:86
1967
  msgid ""
1968
  "wpDiscuz shows Human Readable date format. If you check this option it'll "
1969
  "show the date/time format set in WordPress General Settings."
1970
  msgstr ""
1971
 
1972
+ #: options/options-layouts/settings-general.php:92
1973
  msgid "Current Wordpress date/time format"
1974
  msgstr ""
1975
 
1976
+ #: options/options-layouts/settings-general.php:99
1977
  msgid "Use Plugin .PO/.MO files"
1978
  msgstr ""
1979
 
1980
+ #: options/options-layouts/settings-general.php:100
1981
  msgid ""
1982
  "wpDiscuz phrase system allows you to translate all front-end phrases. "
1983
  "However if you have a multi-language website it'll not allow you to add more "
1987
  "translate all phrases based on language files according to current language."
1988
  msgstr ""
1989
 
1990
+ #: options/options-layouts/settings-general.php:110
1991
  msgid ""
1992
  "Help wpDiscuz to grow allowing people to recognize which comment plugin you "
1993
  "use"
1994
  msgstr ""
1995
 
1996
+ #: options/options-layouts/settings-general.php:112
1997
  msgid ""
1998
  "Please check this option on to help wpDiscuz get more popularity as your "
1999
  "thank to the hard work we do for you totally free. This option adds a very "
2001
  "visitors recognize the name of comment solution you use."
2002
  msgstr ""
2003
 
2004
+ #: options/options-layouts/settings-general.php:117
2005
  msgid "Thank you!"
2006
  msgstr ""
2007
 
2758
 
2759
  #: options/phrases-layouts/phrases-email.php:24
2760
  #: options/phrases-layouts/phrases-email.php:35
2761
+ #: options/phrases-layouts/phrases-email.php:56
2762
+ #: options/phrases-layouts/phrases-email.php:67
2763
+ #: options/phrases-layouts/phrases-email.php:88
2764
+ #: options/phrases-layouts/phrases-email.php:99
2765
+ #: options/phrases-layouts/phrases-email.php:118
2766
+ #: options/phrases-layouts/phrases-email.php:129
2767
+ #: options/phrases-layouts/phrases-email.php:145
2768
+ #: options/phrases-layouts/phrases-email.php:157
2769
  #: options/phrases-layouts/phrases-follow.php:57
2770
  #: options/phrases-layouts/phrases-follow.php:68
2771
  #: options/phrases-layouts/phrases-follow.php:84
2783
  msgid "Post comment notification content"
2784
  msgstr ""
2785
 
2786
+ #: options/phrases-layouts/phrases-email.php:42
2787
  #: options/phrases-layouts/phrases-email.php:74
2788
  msgid "Shortcode above will work for registered users only"
2789
  msgstr ""
2790
 
2791
+ #: options/phrases-layouts/phrases-email.php:54
2792
  msgid "Subscription type: All my comments"
2793
  msgstr ""
2794
 
2795
+ #: options/phrases-layouts/phrases-email.php:55
2796
+ #: options/phrases-layouts/phrases-email.php:87
2797
  msgid "New reply notification subject"
2798
  msgstr ""
2799
 
2800
+ #: options/phrases-layouts/phrases-email.php:66
2801
+ #: options/phrases-layouts/phrases-email.php:98
2802
  msgid "New Reply notification content"
2803
  msgstr ""
2804
 
2805
+ #: options/phrases-layouts/phrases-email.php:86
2806
  msgid "Subscription type: Single comment"
2807
  msgstr ""
2808
 
2809
+ #: options/phrases-layouts/phrases-email.php:117
2810
  msgid "Subscription confirmation email subject"
2811
  msgstr ""
2812
 
2813
+ #: options/phrases-layouts/phrases-email.php:128
2814
  msgid "Subscription confirmation email content"
2815
  msgstr ""
2816
 
2817
+ #: options/phrases-layouts/phrases-email.php:144
2818
  msgid "Comment approved subject"
2819
  msgstr ""
2820
 
2821
+ #: options/phrases-layouts/phrases-email.php:155
2822
  msgid "Comment approved message"
2823
  msgstr ""
2824
 
2825
+ #: options/phrases-layouts/phrases-email.php:176
2826
  msgid "Ignore subscription"
2827
  msgstr ""
2828
 
options/class.WpdiscuzOptions.php CHANGED
@@ -128,6 +128,7 @@ class WpdiscuzOptions implements WpDiscuzConstants {
128
  $this->optionsSerialized->enableStickButton = isset($_POST['enableStickButton']) ? intval($_POST['enableStickButton']) : 0;
129
  $this->optionsSerialized->enableCloseButton = isset($_POST['enableCloseButton']) ? intval($_POST['enableCloseButton']) : 0;
130
  $this->optionsSerialized->enableDropAnimation = isset($_POST['enableDropAnimation']) ? intval($_POST['enableDropAnimation']) : 0;
 
131
  do_action('wpdiscuz_save_options', $_POST);
132
  $this->optionsSerialized->updateOptions();
133
  add_settings_error('wpdiscuz', 'settings_updated', __('Settings updated', 'wpdiscuz'), 'updated');
128
  $this->optionsSerialized->enableStickButton = isset($_POST['enableStickButton']) ? intval($_POST['enableStickButton']) : 0;
129
  $this->optionsSerialized->enableCloseButton = isset($_POST['enableCloseButton']) ? intval($_POST['enableCloseButton']) : 0;
130
  $this->optionsSerialized->enableDropAnimation = isset($_POST['enableDropAnimation']) ? intval($_POST['enableDropAnimation']) : 0;
131
+ $this->optionsSerialized->isNativeAjaxEnabled = isset($_POST['isNativeAjaxEnabled']) ? intval($_POST['isNativeAjaxEnabled']) : 0;
132
  do_action('wpdiscuz_save_options', $_POST);
133
  $this->optionsSerialized->updateOptions();
134
  add_settings_error('wpdiscuz', 'settings_updated', __('Settings updated', 'wpdiscuz'), 'updated');
options/class.WpdiscuzOptionsSerialized.php CHANGED
@@ -639,6 +639,9 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
639
  public $isFollowActive;
640
  public $disableFollowConfirmForUsers;
641
 
 
 
 
642
  /**
643
  * wordpress options
644
  */
@@ -663,7 +666,8 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
663
  $this->wordpressThreadComments = get_option('thread_comments');
664
  $this->wordpressThreadCommentsDepth = get_option('thread_comments_depth');
665
  $this->wordpressIsPaginate = get_option('page_comments');
666
- $this->wordpressCommentOrder = get_option('comment_order');
 
667
  $this->wordpressCommentPerPage = get_option('comments_per_page');
668
  $this->wordpressShowAvatars = get_option('show_avatars');
669
  $this->wordpressDefaultCommentsPage = get_option('default_comments_page');
@@ -780,6 +784,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
780
  $this->enableStickButton = isset($options['enableStickButton']) ? $options['enableStickButton'] : 0;
781
  $this->enableCloseButton = isset($options['enableCloseButton']) ? $options['enableCloseButton'] : 0;
782
  $this->enableDropAnimation = isset($options['enableDropAnimation']) ? $options['enableDropAnimation'] : 0;
 
783
  do_action('wpdiscuz_init_options', $this);
784
  }
785
 
@@ -821,11 +826,11 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
821
  'wc_hide_replies_text' => __('Hide Replies', 'wpdiscuz'),
822
  'wc_show_replies_text' => __('View Replies', 'wpdiscuz'),
823
  'wc_email_subject' => __('New Comment', 'wpdiscuz'),
824
- 'wc_email_message' => __('Hi [SUBSCRIBER_NAME],<br/><br/>new comment on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">' . __('Unsubscribe', 'wpdiscuz') . '</a>', 'wpdiscuz'),
825
  'wc_all_comment_new_reply_subject' => __('New Reply', 'wpdiscuz'),
826
- 'wc_all_comment_new_reply_message' => __('Hi [SUBSCRIBER_NAME],<br/><br/>new reply on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">' . __('Unsubscribe', 'wpdiscuz') . '</a>', 'wpdiscuz'),
827
  'wc_new_reply_email_subject' => __('New Reply', 'wpdiscuz'),
828
- 'wc_new_reply_email_message' => __('Hi [COMMENT_AUTHOR],<br/><br/>new reply on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">' . __('Unsubscribe', 'wpdiscuz') . '</a>', 'wpdiscuz'),
829
  'wc_subscribed_on_comment' => __('You\'re subscribed for new replies on this comment', 'wpdiscuz'),
830
  'wc_subscribed_on_all_comment' => __('You\'re subscribed for new replies on all your comments', 'wpdiscuz'),
831
  'wc_subscribed_on_post' => __('You\'re subscribed for new follow-up comments on this post', 'wpdiscuz'),
@@ -836,7 +841,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
836
  'wc_confirm_email' => __('Confirm your subscription', 'wpdiscuz'),
837
  'wc_comfirm_success_message' => __('You\'ve successfully confirmed your subscription.', 'wpdiscuz'),
838
  'wc_confirm_email_subject' => __('Subscription Confirmation', 'wpdiscuz'),
839
- 'wc_confirm_email_message' => __('Hi, <br/> You just subscribed for new comments on our website. This means you will receive an email when new comments are posted according to subscription option you\'ve chosen. <br/> To activate, click confirm below. If you believe this is an error, ignore this message and we\'ll never bother you again. <br/><br/><a href="[POST_URL]">[POST_TITLE]</a><br/><br/><a href="[CONFIRM_URL]">' . __('Confirm Your Subscrption', 'wpdiscuz') . '</a><br/><br/><a href="[CANCEL_URL]">' . __('Cancel Subscription', 'wpdiscuz') . '</a>', 'wpdiscuz'),
840
  'wc_error_empty_text' => __('please fill out this field to comment', 'wpdiscuz'),
841
  'wc_error_email_text' => __('email address is invalid', 'wpdiscuz'),
842
  'wc_error_url_text' => __('url is invalid', 'wpdiscuz'),
@@ -946,7 +951,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
946
  'wc_follow_confirm_email_subject' => __('User Following Confirmation', 'wpdiscuz'),
947
  'wc_follow_confirm_email_message' => __('Hi, <br/> You just started following a new user. You\'ll get email notification once new comment is posted by this user. <br/> Please click on "user following confirmation" link to confirm your request. If you believe this is an error, ignore this message and we\'ll never bother you again. <br/><br/><a href="[POST_URL]">[POST_TITLE]</a><br/><br/><a href="[CONFIRM_URL]">' . __('Confirm Follow', 'wpdiscuz') . '</a><br/><br/><a href="[CANCEL_URL]">' . __('Cancel Follow', 'wpdiscuz') . '</a>', 'wpdiscuz'),
948
  'wc_follow_email_subject' => __('New Comment', 'wpdiscuz'),
949
- 'wc_follow_email_message' => __('Hi [FOLLOWER_NAME],<br/><br/>new comment have been posted by the user you are following<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[CANCEL_URL]">' . __('Cancel Follow', 'wpdiscuz') . '</a>', 'wpdiscuz'),
950
  );
951
  }
952
 
@@ -1055,6 +1060,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
1055
  'enableStickButton' => $this->enableStickButton,
1056
  'enableCloseButton' => $this->enableCloseButton,
1057
  'enableDropAnimation' => $this->enableDropAnimation,
 
1058
  );
1059
  return $options;
1060
  }
@@ -1174,6 +1180,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
1174
  'enableStickButton' => 1,
1175
  'enableCloseButton' => 1,
1176
  'enableDropAnimation' => 1,
 
1177
  );
1178
  add_option(self::OPTION_SLUG_OPTIONS, serialize($options));
1179
  }
@@ -1191,7 +1198,7 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
1191
  $this->formPostRel = get_option('wpdiscuz_form_post_rel', array());
1192
  }
1193
 
1194
- public function isEnabledShare() {
1195
  return ($this->enableFbShare || $this->enableTwitterShare || $this->enableGoogleShare || $this->enableVkShare || $this->enableOkShare);
1196
  }
1197
 
@@ -1238,7 +1245,12 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
1238
  $js_options['liveUpdateGuests'] = $this->liveUpdateGuests;
1239
  $js_options['wc_comment_bg_color'] = $this->commentBGColor;
1240
  $js_options['wc_reply_bg_color'] = $this->replyBGColor;
1241
- $js_options['wordpress_comment_order'] = $this->wordpressCommentOrder;
 
 
 
 
 
1242
  $js_options['commentsVoteOrder'] = $this->showSortingButtons && $this->mostVotedByDefault;
1243
  $js_options['wordpressThreadCommentsDepth'] = $this->wordpressThreadCommentsDepth;
1244
  $js_options['wordpressIsPaginate'] = $this->wordpressIsPaginate;
@@ -1267,6 +1279,8 @@ class WpdiscuzOptionsSerialized implements WpDiscuzConstants {
1267
  $js_options['isLoadOnlyParentComments'] = $this->isLoadOnlyParentComments;
1268
  $js_options['ahk'] = $this->antispamKey;
1269
  $js_options['enableDropAnimation'] = $this->enableDropAnimation;
 
 
1270
  return $js_options;
1271
  }
1272
 
639
  public $isFollowActive;
640
  public $disableFollowConfirmForUsers;
641
 
642
+ /** == == * */
643
+ public $isNativeAjaxEnabled;
644
+
645
  /**
646
  * wordpress options
647
  */
666
  $this->wordpressThreadComments = get_option('thread_comments');
667
  $this->wordpressThreadCommentsDepth = get_option('thread_comments_depth');
668
  $this->wordpressIsPaginate = get_option('page_comments');
669
+ $wordpressCommentOrder = strtolower(get_option('comment_order'));
670
+ $this->wordpressCommentOrder = in_array($wordpressCommentOrder, array('asc', 'desc')) ? $wordpressCommentOrder : 'desc';
671
  $this->wordpressCommentPerPage = get_option('comments_per_page');
672
  $this->wordpressShowAvatars = get_option('show_avatars');
673
  $this->wordpressDefaultCommentsPage = get_option('default_comments_page');
784
  $this->enableStickButton = isset($options['enableStickButton']) ? $options['enableStickButton'] : 0;
785
  $this->enableCloseButton = isset($options['enableCloseButton']) ? $options['enableCloseButton'] : 0;
786
  $this->enableDropAnimation = isset($options['enableDropAnimation']) ? $options['enableDropAnimation'] : 0;
787
+ $this->isNativeAjaxEnabled = isset($options['isNativeAjaxEnabled']) ? $options['isNativeAjaxEnabled'] : 0;
788
  do_action('wpdiscuz_init_options', $this);
789
  }
790
 
826
  'wc_hide_replies_text' => __('Hide Replies', 'wpdiscuz'),
827
  'wc_show_replies_text' => __('View Replies', 'wpdiscuz'),
828
  'wc_email_subject' => __('New Comment', 'wpdiscuz'),
829
+ 'wc_email_message' => __('Hi [SUBSCRIBER_NAME],<br/><br/> new comment have been posted by the <em><strong>[COMMENT_AUTHOR]</em></strong> on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">Unsubscribe</a>', 'wpdiscuz'),
830
  'wc_all_comment_new_reply_subject' => __('New Reply', 'wpdiscuz'),
831
+ 'wc_all_comment_new_reply_message' => __('Hi [SUBSCRIBER_NAME],<br/><br/> new reply have been posted by the <em><strong>[COMMENT_AUTHOR]</em></strong> on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">Unsubscribe</a>', 'wpdiscuz'),
832
  'wc_new_reply_email_subject' => __('New Reply', 'wpdiscuz'),
833
+ 'wc_new_reply_email_message' => __('Hi [SUBSCRIBER_NAME],<br/><br/> new reply have been posted by the <em><strong>[COMMENT_AUTHOR]</em></strong> on the discussion section you\'ve been interested in<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[UNSUBSCRIBE_URL]">Unsubscribe</a>', 'wpdiscuz'),
834
  'wc_subscribed_on_comment' => __('You\'re subscribed for new replies on this comment', 'wpdiscuz'),
835
  'wc_subscribed_on_all_comment' => __('You\'re subscribed for new replies on all your comments', 'wpdiscuz'),
836
  'wc_subscribed_on_post' => __('You\'re subscribed for new follow-up comments on this post', 'wpdiscuz'),
841
  'wc_confirm_email' => __('Confirm your subscription', 'wpdiscuz'),
842
  'wc_comfirm_success_message' => __('You\'ve successfully confirmed your subscription.', 'wpdiscuz'),
843
  'wc_confirm_email_subject' => __('Subscription Confirmation', 'wpdiscuz'),
844
+ 'wc_confirm_email_message' => __('Hi, <br/> You just subscribed for new comments on our website. This means you will receive an email when new comments are posted according to subscription option you\'ve chosen. <br/> To activate, click confirm below. If you believe this is an error, ignore this message and we\'ll never bother you again. <br/><br/><a href="[POST_URL]">[POST_TITLE]</a><br/><br/><a href="[CONFIRM_URL]">Confirm Your Subscrption</a><br/><br/><a href="[CANCEL_URL]">Cancel Subscription</a>', 'wpdiscuz'),
845
  'wc_error_empty_text' => __('please fill out this field to comment', 'wpdiscuz'),
846
  'wc_error_email_text' => __('email address is invalid', 'wpdiscuz'),
847
  'wc_error_url_text' => __('url is invalid', 'wpdiscuz'),
951
  'wc_follow_confirm_email_subject' => __('User Following Confirmation', 'wpdiscuz'),
952
  'wc_follow_confirm_email_message' => __('Hi, <br/> You just started following a new user. You\'ll get email notification once new comment is posted by this user. <br/> Please click on "user following confirmation" link to confirm your request. If you believe this is an error, ignore this message and we\'ll never bother you again. <br/><br/><a href="[POST_URL]">[POST_TITLE]</a><br/><br/><a href="[CONFIRM_URL]">' . __('Confirm Follow', 'wpdiscuz') . '</a><br/><br/><a href="[CANCEL_URL]">' . __('Cancel Follow', 'wpdiscuz') . '</a>', 'wpdiscuz'),
953
  'wc_follow_email_subject' => __('New Comment', 'wpdiscuz'),
954
+ 'wc_follow_email_message' => __('Hi [FOLLOWER_NAME],<br/><br/> new comment have been posted by the <em><strong>[COMMENT_AUTHOR]</em></strong> you are following<br/><br/><a href="[COMMENT_URL]">[COMMENT_URL]</a><br/><br/>[COMMENT_CONTENT]<br/><br/><a href="[CANCEL_URL]">' . __('Cancel Follow', 'wpdiscuz') . '</a>', 'wpdiscuz'),
955
  );
956
  }
957
 
1060
  'enableStickButton' => $this->enableStickButton,
1061
  'enableCloseButton' => $this->enableCloseButton,
1062
  'enableDropAnimation' => $this->enableDropAnimation,
1063
+ 'isNativeAjaxEnabled' => $this->isNativeAjaxEnabled,
1064
  );
1065
  return $options;
1066
  }
1180
  'enableStickButton' => 1,
1181
  'enableCloseButton' => 1,
1182
  'enableDropAnimation' => 1,
1183
+ 'isNativeAjaxEnabled' => 1,
1184
  );
1185
  add_option(self::OPTION_SLUG_OPTIONS, serialize($options));
1186
  }
1198
  $this->formPostRel = get_option('wpdiscuz_form_post_rel', array());
1199
  }
1200
 
1201
+ public function isShareEnabled() {
1202
  return ($this->enableFbShare || $this->enableTwitterShare || $this->enableGoogleShare || $this->enableVkShare || $this->enableOkShare);
1203
  }
1204
 
1245
  $js_options['liveUpdateGuests'] = $this->liveUpdateGuests;
1246
  $js_options['wc_comment_bg_color'] = $this->commentBGColor;
1247
  $js_options['wc_reply_bg_color'] = $this->replyBGColor;
1248
+ $js_options['wpdiscuzCommentsOrder'] = $this->wordpressCommentOrder;
1249
+ if (!$this->wordpressIsPaginate && $this->showSortingButtons && $this->mostVotedByDefault) {
1250
+ $js_options['wpdiscuzCommentOrderBy'] = 'by_vote';
1251
+ } else {
1252
+ $js_options['wpdiscuzCommentOrderBy'] = 'comment_date_gmt';
1253
+ }
1254
  $js_options['commentsVoteOrder'] = $this->showSortingButtons && $this->mostVotedByDefault;
1255
  $js_options['wordpressThreadCommentsDepth'] = $this->wordpressThreadCommentsDepth;
1256
  $js_options['wordpressIsPaginate'] = $this->wordpressIsPaginate;
1279
  $js_options['isLoadOnlyParentComments'] = $this->isLoadOnlyParentComments;
1280
  $js_options['ahk'] = $this->antispamKey;
1281
  $js_options['enableDropAnimation'] = $this->enableDropAnimation;
1282
+ $js_options['isNativeAjaxEnabled'] = $this->isNativeAjaxEnabled;
1283
+ $js_options['cookieCommentsSorting'] = self::COOKIE_COMMENTS_SORTING;
1284
  return $js_options;
1285
  }
1286
 
options/options-layouts/settings-general.php CHANGED
@@ -14,6 +14,18 @@ if (!defined('ABSPATH')) {
14
  <a href="https://wpdiscuz.com/docs/wpdiscuz-documentation/settings/general-settings/#wpdiscuz_on_home_page" title="<?php _e('Read the documentation', 'wpdiscuz') ?>" target="_blank"><i class="far fa-question-circle"></i></a>
15
  </td>
16
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
17
  <tr valign="top">
18
  <th scope="row">
19
  <label for="isUserByEmail"><?php _e('Use guest email to detect registered account', 'wpdiscuz'); ?> </label>
@@ -26,7 +38,7 @@ if (!defined('ABSPATH')) {
26
  <a href="https://wpdiscuz.com/docs/wpdiscuz-documentation/settings/general-settings/#guest_email_to_detect_account" title="<?php _e('Read the documentation', 'wpdiscuz') ?>" target="_blank"><i class="far fa-question-circle"></i></a>
27
  </td>
28
  </tr>
29
- <?php if(is_ssl()){?>
30
  <tr valign="top">
31
  <th scope="row"><?php _e('Secure comment content in HTTPS protocol.', 'wpdiscuz'); ?>
32
  <p class="wpd-desc">
14
  <a href="https://wpdiscuz.com/docs/wpdiscuz-documentation/settings/general-settings/#wpdiscuz_on_home_page" title="<?php _e('Read the documentation', 'wpdiscuz') ?>" target="_blank"><i class="far fa-question-circle"></i></a>
15
  </td>
16
  </tr>
17
+ <tr valign="top">
18
+ <th scope="row">
19
+ <label for="isNativeAjaxEnabled"><?php _e('Enable WordPress native ajax', 'wpdiscuz'); ?> </label>
20
+ <p class="wpd-desc">
21
+ <?php _e('Enable Wordpress native ajax', 'wpdiscuz'); ?>
22
+ </p>
23
+ </th>
24
+ <td>
25
+ <input type="checkbox" <?php checked($this->optionsSerialized->isNativeAjaxEnabled == 1) ?> value="1" name="isNativeAjaxEnabled" id="isNativeAjaxEnabled" /><label for="isNativeAjaxEnabled"></label>
26
+ <a href="https://wpdiscuz.com/docs/wpdiscuz-documentation/settings/general-settings/#use_wordpress_native_ajax" title="<?php _e('Read the documentation', 'wpdiscuz') ?>" target="_blank"><i class="far fa-question-circle"></i></a>
27
+ </td>
28
+ </tr>
29
  <tr valign="top">
30
  <th scope="row">
31
  <label for="isUserByEmail"><?php _e('Use guest email to detect registered account', 'wpdiscuz'); ?> </label>
38
  <a href="https://wpdiscuz.com/docs/wpdiscuz-documentation/settings/general-settings/#guest_email_to_detect_account" title="<?php _e('Read the documentation', 'wpdiscuz') ?>" target="_blank"><i class="far fa-question-circle"></i></a>
39
  </td>
40
  </tr>
41
+ <?php if(is_ssl()){?>
42
  <tr valign="top">
43
  <th scope="row"><?php _e('Secure comment content in HTTPS protocol.', 'wpdiscuz'); ?>
44
  <p class="wpd-desc">
options/options-layouts/settings-list.php CHANGED
@@ -115,7 +115,7 @@ if (!defined('ABSPATH')) {
115
  </tr>
116
  <tr valign="top">
117
  <th scope="row">
118
- <label><?php _e('Hide Voting buttons', 'wpdiscuz'); ?></label>
119
  </th>
120
  <td>
121
  <input type="checkbox" <?php checked($this->optionsSerialized->votingButtonsShowHide == 1) ?> value="1" name="wc_voting_buttons_show_hide" id="wc_voting_buttons_show_hide" /> <label for="wc_voting_buttons_show_hide"></label>
115
  </tr>
116
  <tr valign="top">
117
  <th scope="row">
118
+ <label for="wc_voting_buttons_show_hide"><?php _e('Hide Voting buttons', 'wpdiscuz'); ?></label>
119
  </th>
120
  <td>
121
  <input type="checkbox" <?php checked($this->optionsSerialized->votingButtonsShowHide == 1) ?> value="1" name="wc_voting_buttons_show_hide" id="wc_voting_buttons_show_hide" /> <label for="wc_voting_buttons_show_hide"></label>
options/phrases-layouts/phrases-email.php CHANGED
@@ -38,9 +38,10 @@ if (!defined('ABSPATH')) {
38
  <div class="wc_available_variable">[POST_URL]</div>
39
  <div class="wc_available_variable">[BLOG_TITLE]</div>
40
  <div class="wc_available_variable">[POST_TITLE]</div>
41
- <div class="wc_available_variable">[COMMENT_URL]</div>
42
  <div class="wc_available_variable">[SUBSCRIBER_NAME]</div>
43
  <p class="wpd-desc"><?php _e('Shortcode above will work for registered users only', 'wpdiscuz'); ?>
 
 
44
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
45
  <div class="wc_available_variable">[UNSUBSCRIBE_URL]</div>
46
  </div>
@@ -69,9 +70,10 @@ if (!defined('ABSPATH')) {
69
  <div class="wc_available_variable">[POST_URL]</div>
70
  <div class="wc_available_variable">[BLOG_TITLE]</div>
71
  <div class="wc_available_variable">[POST_TITLE]</div>
72
- <div class="wc_available_variable">[COMMENT_URL]</div>
73
  <div class="wc_available_variable">[SUBSCRIBER_NAME]</div>
74
  <p class="wpd-desc"><?php _e('Shortcode above will work for registered users only', 'wpdiscuz'); ?>
 
 
75
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
76
  <div class="wc_available_variable">[UNSUBSCRIBE_URL]</div>
77
  </div>
@@ -100,6 +102,7 @@ if (!defined('ABSPATH')) {
100
  <div class="wc_available_variable">[POST_URL]</div>
101
  <div class="wc_available_variable">[BLOG_TITLE]</div>
102
  <div class="wc_available_variable">[POST_TITLE]</div>
 
103
  <div class="wc_available_variable">[COMMENT_URL]</div>
104
  <div class="wc_available_variable">[COMMENT_AUTHOR]</div>
105
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
38
  <div class="wc_available_variable">[POST_URL]</div>
39
  <div class="wc_available_variable">[BLOG_TITLE]</div>
40
  <div class="wc_available_variable">[POST_TITLE]</div>
 
41
  <div class="wc_available_variable">[SUBSCRIBER_NAME]</div>
42
  <p class="wpd-desc"><?php _e('Shortcode above will work for registered users only', 'wpdiscuz'); ?>
43
+ <div class="wc_available_variable">[COMMENT_URL]</div>
44
+ <div class="wc_available_variable">[COMMENT_AUTHOR]</div>
45
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
46
  <div class="wc_available_variable">[UNSUBSCRIBE_URL]</div>
47
  </div>
70
  <div class="wc_available_variable">[POST_URL]</div>
71
  <div class="wc_available_variable">[BLOG_TITLE]</div>
72
  <div class="wc_available_variable">[POST_TITLE]</div>
 
73
  <div class="wc_available_variable">[SUBSCRIBER_NAME]</div>
74
  <p class="wpd-desc"><?php _e('Shortcode above will work for registered users only', 'wpdiscuz'); ?>
75
+ <div class="wc_available_variable">[COMMENT_URL]</div>
76
+ <div class="wc_available_variable">[COMMENT_AUTHOR]</div>
77
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
78
  <div class="wc_available_variable">[UNSUBSCRIBE_URL]</div>
79
  </div>
102
  <div class="wc_available_variable">[POST_URL]</div>
103
  <div class="wc_available_variable">[BLOG_TITLE]</div>
104
  <div class="wc_available_variable">[POST_TITLE]</div>
105
+ <div class="wc_available_variable">[SUBSCRIBER_NAME]</div>
106
  <div class="wc_available_variable">[COMMENT_URL]</div>
107
  <div class="wc_available_variable">[COMMENT_AUTHOR]</div>
108
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
options/phrases-layouts/phrases-follow.php CHANGED
@@ -98,8 +98,9 @@ if (!defined('ABSPATH')) {
98
  <div class="wc_available_variable">[POST_URL]</div>
99
  <div class="wc_available_variable">[BLOG_TITLE]</div>
100
  <div class="wc_available_variable">[POST_TITLE]</div>
101
- <div class="wc_available_variable">[COMMENT_URL]</div>
102
  <div class="wc_available_variable">[FOLLOWER_NAME]</div>
 
 
103
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
104
  <div class="wc_available_variable">[CANCEL_URL]</div>
105
  </div>
98
  <div class="wc_available_variable">[POST_URL]</div>
99
  <div class="wc_available_variable">[BLOG_TITLE]</div>
100
  <div class="wc_available_variable">[POST_TITLE]</div>
 
101
  <div class="wc_available_variable">[FOLLOWER_NAME]</div>
102
+ <div class="wc_available_variable">[COMMENT_URL]</div>
103
+ <div class="wc_available_variable">[COMMENT_AUTHOR]</div>
104
  <div class="wc_available_variable">[COMMENT_CONTENT]</div>
105
  <div class="wc_available_variable">[CANCEL_URL]</div>
106
  </div>
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: gVectors Team
3
  Tags: comment, comments, ajax comments, custom comment form, custom comment field
4
  Requires at least: 4.4
5
  Tested up to: 4.9
6
- Stable tag: 5.1.5
7
  Requires PHP: 5.4 and higher
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -171,13 +171,24 @@ Nothing will be lost! **Comments - wpDiscuz** will show all old comments.
171
 
172
  == Changelog ==
173
 
174
- = Comments - wpDiscuz v5.1.5 =
175
 
176
- * Added: Option to hide/show Stick comment button
177
- * Added: Option to hide/show Close comment button
178
- * Added: Option to disable Drop Animation on comment form and subscription bar
179
- * Fixed bug: Follow users table not created on <= MySQL 5.5 versions
180
- * Fixed bug: Edit comments issue
 
 
 
 
 
 
 
 
 
 
 
 
181
 
182
 
183
  IMPORTANT!
@@ -192,6 +203,15 @@ IMPORTANT!
192
  - If your server PHP version is lower than 5.4, [please change it to higher](https://wordpress.org/support/topic/wpdiscuz-4-requires-php-5-4-and-higher/)
193
 
194
 
 
 
 
 
 
 
 
 
 
195
  = Comments - wpDiscuz v5.1.4 =
196
 
197
  * Fixed bug : Fatal error on update
3
  Tags: comment, comments, ajax comments, custom comment form, custom comment field
4
  Requires at least: 4.4
5
  Tested up to: 4.9
6
+ Stable tag: 5.1.6
7
  Requires PHP: 5.4 and higher
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
171
 
172
  == Changelog ==
173
 
 
174
 
175
+ = Comments - wpDiscuz v5.1.6 =
176
+
177
+ * Added: More speed based on custom AJAX processor (30% faster).
178
+ * Added: Option to enable/disable WP native ajax processor (admin-ajax.php)
179
+ * Added: Remembers comment ordering type you've selected on your last visit.
180
+ * Added: Allows post authors to post comments in closed comment threads.
181
+ * Added: New shortcodes for email notification templates.
182
+ * Added: Unapproved comments are now editable for comment authors (owners).
183
+ * Added: Ignore subscriptions with @example.com email addresses.
184
+ * Fixed: Bug: Media uploader addon attached images are not displaying:
185
+ - on single comment load via ajax
186
+ - on most reacted comment thread
187
+ - on hottest comment thread
188
+ * Fixed Bug: CSS issue on subscription success action
189
+ * Fixed Bug: Hide comment subscription bar if commenting is closed.
190
+ * Fixed Bug: Facebook login issues
191
+ * Fixed Bug: Problem with Hide Header Text option
192
 
193
 
194
  IMPORTANT!
203
  - If your server PHP version is lower than 5.4, [please change it to higher](https://wordpress.org/support/topic/wpdiscuz-4-requires-php-5-4-and-higher/)
204
 
205
 
206
+ = Comments - wpDiscuz v5.1.5 =
207
+
208
+ * Added: Option to hide/show Stick comment button
209
+ * Added: Option to hide/show Close comment button
210
+ * Added: Option to disable Drop Animation on comment form and subscription bar
211
+ * Fixed bug: Follow users table not created on <= MySQL 5.5 versions
212
+ * Fixed bug: Edit comments issue
213
+
214
+
215
  = Comments - wpDiscuz v5.1.4 =
216
 
217
  * Fixed bug : Fatal error on update
templates/comment/class.WpdiscuzWalker.php CHANGED
@@ -55,14 +55,6 @@ class WpdiscuzWalker extends Walker_Comment implements WpDiscuzConstants {
55
  $commentContent = $this->helper->getCommentExcerpt($commentContent, $uniqueId);
56
  }
57
  $commentContent .= $comment->comment_approved == 0 ? '<p class="wc_held_for_moderate">' . $this->optionsSerialized->phrases['wc_held_for_moderate'] . '</p>' : '';
58
- $hideAvatarStyle = '';
59
- if (!$this->optionsSerialized->wordpressShowAvatars) {
60
- if ($args['is_rtl']) {
61
- $hideAvatarStyle = 'style = "margin-right : 0;"';
62
- } else {
63
- $hideAvatarStyle = 'style = "margin-left : 0;"';
64
- }
65
- }
66
 
67
  if ($this->optionsSerialized->wordpressIsPaginate && $comment->comment_parent) {
68
  $rootComment = $this->helperOptimization->getCommentRoot($comment->comment_parent);
@@ -145,17 +137,6 @@ class WpdiscuzWalker extends Walker_Comment implements WpDiscuzConstants {
145
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_guest'];
146
  }
147
 
148
- $postedDate = '';
149
- if (!$this->optionsSerialized->hideCommentDate) {
150
- if ($this->optionsSerialized->simpleCommentDate) {
151
- $dateFormat = $this->optionsSerialized->wordpressDateFormat;
152
- $timeFormat = $this->optionsSerialized->wordpressTimeFormat;
153
- $postedDate = get_comment_date($dateFormat . ' ' . $timeFormat, $comment->comment_ID);
154
- } else {
155
- $postedDate = $this->helper->dateDiff($comment->comment_date_gmt);
156
- }
157
- }
158
-
159
  $replyText = $this->optionsSerialized->phrases['wc_reply_text'];
160
  $shareText = $this->optionsSerialized->phrases['wc_share_text'];
161
  if (isset($rootComment) && $rootComment->comment_approved != 1) {
@@ -175,29 +156,33 @@ class WpdiscuzWalker extends Walker_Comment implements WpDiscuzConstants {
175
  'wpdiscuz_gravatar_user_id' => $gravatarUserId,
176
  'wpdiscuz_gravatar_user_email' => $gravatarUserEmail,
177
  );
178
- $authorAvatar = $this->optionsSerialized->wordpressShowAvatars ? get_avatar($authorAvatarField, $gravatarSize, '', $authorName, $gravatarArgs) : '';
179
- $trackOrPingback = $comment->comment_type == 'pingback' || $comment->comment_type == 'trackback' ? true : false;
180
- if ($trackOrPingback) {
181
- $authorAvatar = '<img class="avatar avatar-' . $gravatarSize . ' photo" width="' . $gravatarSize . '" height="' . $gravatarSize . '" src="' . $args['avatar_trackback'] . '" alt="trackback">';
 
 
 
 
182
  }
183
 
184
- if ($profileUrl && !$this->optionsSerialized->disableProfileURLs) {
185
- $attributes = apply_filters('wpdiscuz_avatar_link_attributes', array('href' => $profileUrl, 'target' => '_blank'));
186
- if ($attributes && is_array($attributes)) {
187
- $attributesHtml = "";
188
- foreach ($attributes as $attribute => $value) {
189
- $attributesHtml .= "$attribute='{$value}' ";
 
 
 
 
 
 
190
  }
191
- $attributesHtml = trim($attributesHtml);
192
- $commentAuthorAvatar = "<a $attributesHtml>$authorAvatar</a>";
193
  } else {
194
- $commentAuthorAvatar = "<a href='$profileUrl' target='_blank'>$authorAvatar</a>";
195
  }
196
- } else {
197
- $commentAuthorAvatar = $authorAvatar;
198
- }
199
 
200
- if (!$this->optionsSerialized->disableProfileURLs) {
201
  if ($commentAuthorUrl) {
202
  $attributes = apply_filters('wpdiscuz_author_link_attributes', array('href' => $commentAuthorUrl, 'rel' => 'nofollow', 'target' => '_blank'));
203
  if ($attributes && is_array($attributes)) {
@@ -293,11 +278,12 @@ class WpdiscuzWalker extends Walker_Comment implements WpDiscuzConstants {
293
 
294
  $output .= apply_filters('wpdiscuz_comment_type_icon', '', $comment, $user, $currentUser);
295
 
296
- if ($this->optionsSerialized->isEnabledShare()) {
297
  $output .= '<div class="wc-share-link wpf-cta wpd-tooltip-right"><i class="fas fa-share-alt" aria-hidden="true" title="' . esc_attr($shareText) . '" ></i>';
298
  $commentLinkLength = strlen($commentLink);
299
  if ($commentLinkLength < 110) {
300
- $twitt_content = mb_substr(esc_attr(strip_tags($commentContent)), 0, 135 - $commentLinkLength) . '... ';
 
301
  } else {
302
  $twitt_content = '';
303
  }
@@ -328,104 +314,105 @@ class WpdiscuzWalker extends Walker_Comment implements WpDiscuzConstants {
328
 
329
  $output .= apply_filters('wpdiscuz_comment_text', '<div class="wc-comment-text">' . $commentContent . '</div>', $comment, $args);
330
  $output = apply_filters('wpdiscuz_after_comment_text', $output, $comment);
331
- if (isset($args['comment_status']) && is_array($args['comment_status']) && in_array($comment->comment_approved, $args['comment_status'])) {
332
- $output .= '<div class="wc-comment-footer">';
333
- $output .= '<div class="wc-footer-left">';
334
- if (!$this->optionsSerialized->votingButtonsShowHide) {
335
- if ($this->optionsSerialized->votingButtonsStyle) {
336
- $votesArr = $this->dbManager->getVotes($comment->comment_ID);
337
- if ($votesArr && count($votesArr) == 1) {
338
- $like = 0;
339
- $dislike = 0;
340
- } else {
341
- $like = isset($votesArr[0]) ? intval($votesArr[0]) : 0;
342
- $dislike = isset($votesArr[1]) ? intval($votesArr[1]) : 0;
343
- }
344
- $output .= '<span class="wc-vote-link wc-up wc-separate ' . $voteClass . '">';
345
- $voteFaUpImg = '<i class="fas ' . $args['voting_icons']['like'] . ' wc-vote-img-up"></i><span>' . $voteUp . '</span>';
346
- $output .= apply_filters('wpdiscuz_vote_up_icon', $voteFaUpImg, $comment, $currentUser);
347
- $output .= '</span>';
348
- $output .= '<span class="wc-vote-result wc-vote-result-like' . (($like) ? ' wc-positive' : '') . '">' . $like . '</span>';
349
- $output .= '<span class="wc-vote-result wc-vote-result-dislike' . (($dislike) ? ' wc-negative' : '') . '">' . $dislike . '</span>';
350
- $output .= '<span class="wc-vote-link wc-down wc-separate' . $voteClass . '">';
351
- $voteFaDownImg = '<i class="fas ' . $args['voting_icons']['dislike'] . ' wc-vote-img-down"></i><span>' . $voteDown . '</span>';
352
- $output .= apply_filters('wpdiscuz_vote_down_icon', $voteFaDownImg, $comment, $currentUser);
353
- $output .= '</span>';
354
- $output = apply_filters('wpdiscuz_voters', $output, $uniqueId, $comment, $user, $currentUser);
355
  } else {
356
- $voteCount = get_comment_meta($comment->comment_ID, WpdiscuzCore::META_KEY_VOTES, true);
357
- $output = apply_filters('wpdiscuz_voters', $output, $uniqueId, $comment, $user, $currentUser);
358
- $output .= '<span class="wc-vote-link wc-up ' . $voteClass . '">';
359
- $voteFaUpImg = '<i class="fas ' . $args['voting_icons']['like'] . ' wc-vote-img-up"></i><span>' . $voteUp . '</span>';
360
- $output .= apply_filters('wpdiscuz_vote_up_icon', $voteFaUpImg, $comment, $currentUser);
361
- $output .= '</span>';
362
- $output .= '<span class="wc-vote-result">' . intval($voteCount) . '</span>';
363
- $output .= '<span class="wc-vote-link wc-down ' . $voteClass . '">';
364
- $voteFaDownImg = '<i class="fas ' . $args['voting_icons']['dislike'] . ' wc-vote-img-down"></i><span>' . $voteDown . '</span>';
365
- $output .= apply_filters('wpdiscuz_vote_down_icon', $voteFaDownImg, $comment, $currentUser);
366
- $output .= '</span>&nbsp;';
367
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
368
  }
 
369
 
370
- if (!$isClosed && isset($args['comments_open']) && $args['comments_open'] &&
371
- $this->optionsSerialized->wordpressThreadComments &&
372
- ((isset($args['can_user_comment']) && $args['can_user_comment']) ||
373
- (isset($args['high_level_user']) && $args['high_level_user']))
374
- ) {
375
- $output .= '<span class="wc-reply-button wc-cta-button" title="' . $replyText . '">' . '<i class="far fa-comments" aria-hidden="true"></i> ' . $replyText . '</span>';
376
- }
377
 
378
 
379
- if (!$isClosed && ((isset($args['high_level_user']) && $args['high_level_user']) || ($this->helper->isCommentEditable($comment) && $this->helper->canUserEditComment($comment, $currentUser, $args)) )) {
380
- $output .= '<span class="wc_editable_comment wc-cta-button"><i class="fas fa-pencil-alt" aria-hidden="true"></i> ' . $this->optionsSerialized->phrases['wc_edit_text'] . '</span>';
381
- $output .= '<span class="wc_cancel_edit wc-cta-button-x"><i class="fas fa-ban" aria-hidden="true"></i> ' . $this->optionsSerialized->phrases['wc_comment_edit_cancel_button'] . '</span>';
382
- }
383
 
384
- $output = apply_filters('wpdiscuz_comment_buttons', $output, $comment, $user, $currentUser);
385
 
386
- if (!$comment->comment_parent &&
387
- ((isset($args['high_level_user']) && $args['high_level_user']) ||
388
- (isset($args['can_stick_or_close']) && $args['can_stick_or_close']))) {
389
- if ($this->optionsSerialized->enableStickButton) {
390
- $stickText = $isSticky ? $this->optionsSerialized->phrases['wc_unstick_comment'] : $this->optionsSerialized->phrases['wc_stick_comment'];
391
- $output .= '<span class="wc_stick_btn wc-cta-button"><i class="fas fa-thumbtack"></i><span class="wc_stick_text">' . $stickText . '</span></span>';
392
- }
393
- if ($this->optionsSerialized->enableCloseButton) {
394
- $closeText = $isClosed ? $this->optionsSerialized->phrases['wc_open_comment'] : $this->optionsSerialized->phrases['wc_close_comment'];
395
- $output .= '<span class="wc_close_btn wc-cta-button"><i class="far fa-comments"></i><span class="wc_close_text">' . $closeText . '</span></span>';
396
- }
397
  }
398
- $output .= '</div>';
399
- $output .= '<div class="wc-footer-right">';
400
-
401
- if (!$this->optionsSerialized->hideCommentDate) {
402
- $output .= '<div class="wc-comment-date"><i class="far fa-clock" aria-hidden="true"></i>' . $postedDate . '</div>';
403
  }
404
- if ($depth < $this->optionsSerialized->wordpressThreadCommentsDepth && $this->optionsSerialized->wordpressThreadComments) {
405
- $chevron = '';
406
- $output .= '<div class="wc-toggle">';
407
- if ($hasChildren) {
408
- $countChildren = isset($args['wpdiscuz_child_count_' . $comment->comment_ID]) ? $args['wpdiscuz_child_count_' . $comment->comment_ID] : 0;
409
- $hideChildCountClass = isset($args['wpdiscuz_hide_child_count_' . $comment->comment_ID]) ? $args['wpdiscuz_hide_child_count_' . $comment->comment_ID] : '';
410
- if ($countChildren) {
411
- $chevron = '<a href="#" title="' . $this->optionsSerialized->phrases['wc_show_replies_text'] . '">';
412
- $chevron .= '<span class="wcsep">|</span> <span class="wpdiscuz-children ' . $hideChildCountClass . '"><span class="wpdiscuz-children-button-text">' . $this->optionsSerialized->phrases['wc_show_replies_text'] . '</span> (<span class="wpdiscuz-children-count">' . $countChildren . '</span>)</span> ';
413
- $chevron .= '<i class="fas fa-chevron-down wpdiscuz-show-replies"></i>';
414
- $chevron .= '</a>';
415
- } else {
416
- $chevron = '<i class="fas fa-chevron-up" title="' . $this->optionsSerialized->phrases['wc_hide_replies_text'] . '"></i>';
417
- }
 
 
 
 
 
418
  } else {
419
- $commentChildren = $comment->get_children();
420
- $chevron = $commentChildren ? '<i class="fas fa-chevron-up" title="' . $this->optionsSerialized->phrases['wc_hide_replies_text'] . '"></i>' : '';
421
  }
422
- $output .= $chevron;
423
- $output .= '</div>';
 
424
  }
425
- $output .= '</div>';
426
- $output .= '<div class="wpdiscuz_clear"></div>';
427
  $output .= '</div>';
428
  }
 
 
 
 
429
  $output .= '</div>';
430
  $output .= '<div class="wpdiscuz-comment-message"></div>';
431
  $output .= '<div id="wpdiscuz_form_anchor-' . $uniqueId . '" style="clear:both"></div>';
55
  $commentContent = $this->helper->getCommentExcerpt($commentContent, $uniqueId);
56
  }
57
  $commentContent .= $comment->comment_approved == 0 ? '<p class="wc_held_for_moderate">' . $this->optionsSerialized->phrases['wc_held_for_moderate'] . '</p>' : '';
 
 
 
 
 
 
 
 
58
 
59
  if ($this->optionsSerialized->wordpressIsPaginate && $comment->comment_parent) {
60
  $rootComment = $this->helperOptimization->getCommentRoot($comment->comment_parent);
137
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_guest'];
138
  }
139
 
 
 
 
 
 
 
 
 
 
 
 
140
  $replyText = $this->optionsSerialized->phrases['wc_reply_text'];
141
  $shareText = $this->optionsSerialized->phrases['wc_share_text'];
142
  if (isset($rootComment) && $rootComment->comment_approved != 1) {
156
  'wpdiscuz_gravatar_user_id' => $gravatarUserId,
157
  'wpdiscuz_gravatar_user_email' => $gravatarUserEmail,
158
  );
159
+
160
+ $trackOrPingback = $comment->comment_type == 'pingback' || $comment->comment_type == 'trackback';
161
+ if ($this->optionsSerialized->wordpressShowAvatars) {
162
+ $hideAvatarStyle = '';
163
+ $authorAvatar = $trackOrPingback ? '<img class="avatar avatar-' . $gravatarSize . ' photo" width="' . $gravatarSize . '" height="' . $gravatarSize . '" src="' . $args['avatar_trackback'] . '" alt="trackback">' : get_avatar($authorAvatarField, $gravatarSize, '', $authorName, $gravatarArgs);
164
+ } else {
165
+ $authorAvatar = '';
166
+ $hideAvatarStyle = $args['is_rtl'] ? 'style="margin-right:0;"' : 'style="margin-left:0;"';
167
  }
168
 
169
+ if (!$this->optionsSerialized->disableProfileURLs) {
170
+ if ($profileUrl) {
171
+ $attributes = apply_filters('wpdiscuz_avatar_link_attributes', array('href' => $profileUrl, 'target' => '_blank'));
172
+ if ($attributes && is_array($attributes)) {
173
+ $attributesHtml = "";
174
+ foreach ($attributes as $attribute => $value) {
175
+ $attributesHtml .= "$attribute='{$value}' ";
176
+ }
177
+ $attributesHtml = trim($attributesHtml);
178
+ $commentAuthorAvatar = "<a $attributesHtml>$authorAvatar</a>";
179
+ } else {
180
+ $commentAuthorAvatar = "<a href='$profileUrl' target='_blank'>$authorAvatar</a>";
181
  }
 
 
182
  } else {
183
+ $commentAuthorAvatar = $authorAvatar;
184
  }
 
 
 
185
 
 
186
  if ($commentAuthorUrl) {
187
  $attributes = apply_filters('wpdiscuz_author_link_attributes', array('href' => $commentAuthorUrl, 'rel' => 'nofollow', 'target' => '_blank'));
188
  if ($attributes && is_array($attributes)) {
278
 
279
  $output .= apply_filters('wpdiscuz_comment_type_icon', '', $comment, $user, $currentUser);
280
 
281
+ if (isset($args['is_share_enabled']) && $args['is_share_enabled']) {
282
  $output .= '<div class="wc-share-link wpf-cta wpd-tooltip-right"><i class="fas fa-share-alt" aria-hidden="true" title="' . esc_attr($shareText) . '" ></i>';
283
  $commentLinkLength = strlen($commentLink);
284
  if ($commentLinkLength < 110) {
285
+ $twitt_content = esc_attr(strip_tags($commentContent));
286
+ $twitt_content = function_exists('mb_substr') ? mb_substr($twitt_content, 0, 135 - $commentLinkLength) . '... ' : substr($twitt_content, 0, 135 - $commentLinkLength) . '... ';
287
  } else {
288
  $twitt_content = '';
289
  }
314
 
315
  $output .= apply_filters('wpdiscuz_comment_text', '<div class="wc-comment-text">' . $commentContent . '</div>', $comment, $args);
316
  $output = apply_filters('wpdiscuz_after_comment_text', $output, $comment);
317
+ // if (isset($args['comment_status']) && is_array($args['comment_status']) && in_array($comment->comment_approved, $args['comment_status'])) {
318
+ $output .= '<div class="wc-comment-footer">';
319
+ $output .= '<div class="wc-footer-left">';
320
+ if (!$this->optionsSerialized->votingButtonsShowHide) {
321
+ if ($this->optionsSerialized->votingButtonsStyle) {
322
+ $votesArr = $this->dbManager->getVotes($comment->comment_ID);
323
+ if ($votesArr && count($votesArr) == 1) {
324
+ $like = 0;
325
+ $dislike = 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  } else {
327
+ $like = isset($votesArr[0]) ? intval($votesArr[0]) : 0;
328
+ $dislike = isset($votesArr[1]) ? intval($votesArr[1]) : 0;
 
 
 
 
 
 
 
 
 
329
  }
330
+ $output .= '<span class="wc-vote-link wc-up wc-separate ' . $voteClass . '">';
331
+ $voteFaUpImg = '<i class="fas ' . $args['voting_icons']['like'] . ' wc-vote-img-up"></i><span>' . $voteUp . '</span>';
332
+ $output .= apply_filters('wpdiscuz_vote_up_icon', $voteFaUpImg, $comment, $currentUser);
333
+ $output .= '</span>';
334
+ $output .= '<span class="wc-vote-result wc-vote-result-like' . (($like) ? ' wc-positive' : '') . '">' . $like . '</span>';
335
+ $output .= '<span class="wc-vote-result wc-vote-result-dislike' . (($dislike) ? ' wc-negative' : '') . '">' . $dislike . '</span>';
336
+ $output .= '<span class="wc-vote-link wc-down wc-separate' . $voteClass . '">';
337
+ $voteFaDownImg = '<i class="fas ' . $args['voting_icons']['dislike'] . ' wc-vote-img-down"></i><span>' . $voteDown . '</span>';
338
+ $output .= apply_filters('wpdiscuz_vote_down_icon', $voteFaDownImg, $comment, $currentUser);
339
+ $output .= '</span>';
340
+ $output = apply_filters('wpdiscuz_voters', $output, $uniqueId, $comment, $user, $currentUser);
341
+ } else {
342
+ $voteCount = get_comment_meta($comment->comment_ID, WpdiscuzCore::META_KEY_VOTES, true);
343
+ $output = apply_filters('wpdiscuz_voters', $output, $uniqueId, $comment, $user, $currentUser);
344
+ $output .= '<span class="wc-vote-link wc-up ' . $voteClass . '">';
345
+ $voteFaUpImg = '<i class="fas ' . $args['voting_icons']['like'] . ' wc-vote-img-up"></i><span>' . $voteUp . '</span>';
346
+ $output .= apply_filters('wpdiscuz_vote_up_icon', $voteFaUpImg, $comment, $currentUser);
347
+ $output .= '</span>';
348
+ $output .= '<span class="wc-vote-result">' . intval($voteCount) . '</span>';
349
+ $output .= '<span class="wc-vote-link wc-down ' . $voteClass . '">';
350
+ $voteFaDownImg = '<i class="fas ' . $args['voting_icons']['dislike'] . ' wc-vote-img-down"></i><span>' . $voteDown . '</span>';
351
+ $output .= apply_filters('wpdiscuz_vote_down_icon', $voteFaDownImg, $comment, $currentUser);
352
+ $output .= '</span>&nbsp;';
353
  }
354
+ }
355
 
356
+ if (!$isClosed && isset($args['comments_open']) && $args['comments_open'] &&
357
+ $this->optionsSerialized->wordpressThreadComments &&
358
+ ((isset($args['can_user_comment']) && $args['can_user_comment']) ||
359
+ (isset($args['high_level_user']) && $args['high_level_user']))
360
+ ) {
361
+ $output .= '<span class="wc-reply-button wc-cta-button" title="' . $replyText . '">' . '<i class="far fa-comments" aria-hidden="true"></i> ' . $replyText . '</span>';
362
+ }
363
 
364
 
365
+ if (!$isClosed && ((isset($args['high_level_user']) && $args['high_level_user']) || ($this->helper->isCommentEditable($comment) && $this->helper->canUserEditComment($comment, $currentUser, $args)) )) {
366
+ $output .= '<span class="wc_editable_comment wc-cta-button"><i class="fas fa-pencil-alt" aria-hidden="true"></i> ' . $this->optionsSerialized->phrases['wc_edit_text'] . '</span>';
367
+ $output .= '<span class="wc_cancel_edit wc-cta-button-x"><i class="fas fa-ban" aria-hidden="true"></i> ' . $this->optionsSerialized->phrases['wc_comment_edit_cancel_button'] . '</span>';
368
+ }
369
 
370
+ $output = apply_filters('wpdiscuz_comment_buttons', $output, $comment, $user, $currentUser);
371
 
372
+ if (!$comment->comment_parent &&
373
+ ((isset($args['high_level_user']) && $args['high_level_user']) ||
374
+ (isset($args['can_stick_or_close']) && $args['can_stick_or_close']))) {
375
+ if ($this->optionsSerialized->enableStickButton) {
376
+ $stickText = $isSticky ? $this->optionsSerialized->phrases['wc_unstick_comment'] : $this->optionsSerialized->phrases['wc_stick_comment'];
377
+ $output .= '<span class="wc_stick_btn wc-cta-button"><i class="fas fa-thumbtack"></i><span class="wc_stick_text">' . $stickText . '</span></span>';
 
 
 
 
 
378
  }
379
+ if ($this->optionsSerialized->enableCloseButton) {
380
+ $closeText = $isClosed ? $this->optionsSerialized->phrases['wc_open_comment'] : $this->optionsSerialized->phrases['wc_close_comment'];
381
+ $output .= '<span class="wc_close_btn wc-cta-button"><i class="far fa-comments"></i><span class="wc_close_text">' . $closeText . '</span></span>';
 
 
382
  }
383
+ }
384
+ $output .= '</div>';
385
+ $output .= '<div class="wc-footer-right">';
386
+
387
+ if (!$this->optionsSerialized->hideCommentDate) {
388
+ $postedDate = $this->optionsSerialized->simpleCommentDate ? get_comment_date($this->optionsSerialized->wordpressDateFormat . ' ' . $this->optionsSerialized->wordpressTimeFormat, $comment->comment_ID) : $this->helper->dateDiff($comment->comment_date_gmt);
389
+ $output .= '<div class="wc-comment-date"><i class="far fa-clock" aria-hidden="true"></i>' . $postedDate . '</div>';
390
+ }
391
+ if ($depth < $this->optionsSerialized->wordpressThreadCommentsDepth && $this->optionsSerialized->wordpressThreadComments) {
392
+ $chevron = '';
393
+ $output .= '<div class="wc-toggle">';
394
+ if ($hasChildren) {
395
+ $countChildren = isset($args['wpdiscuz_child_count_' . $comment->comment_ID]) ? $args['wpdiscuz_child_count_' . $comment->comment_ID] : 0;
396
+ $hideChildCountClass = isset($args['wpdiscuz_hide_child_count_' . $comment->comment_ID]) ? $args['wpdiscuz_hide_child_count_' . $comment->comment_ID] : '';
397
+ if ($countChildren) {
398
+ $chevron = '<a href="#" title="' . $this->optionsSerialized->phrases['wc_show_replies_text'] . '">';
399
+ $chevron .= '<span class="wcsep">|</span> <span class="wpdiscuz-children ' . $hideChildCountClass . '"><span class="wpdiscuz-children-button-text">' . $this->optionsSerialized->phrases['wc_show_replies_text'] . '</span> (<span class="wpdiscuz-children-count">' . $countChildren . '</span>)</span> ';
400
+ $chevron .= '<i class="fas fa-chevron-down wpdiscuz-show-replies"></i>';
401
+ $chevron .= '</a>';
402
  } else {
403
+ $chevron = '<i class="fas fa-chevron-up" title="' . $this->optionsSerialized->phrases['wc_hide_replies_text'] . '"></i>';
 
404
  }
405
+ } else {
406
+ $commentChildren = $comment->get_children();
407
+ $chevron = $commentChildren ? '<i class="fas fa-chevron-up" title="' . $this->optionsSerialized->phrases['wc_hide_replies_text'] . '"></i>' : '';
408
  }
409
+ $output .= $chevron;
 
410
  $output .= '</div>';
411
  }
412
+ $output .= '</div>';
413
+ $output .= '<div class="wpdiscuz_clear"></div>';
414
+ $output .= '</div>';
415
+ // }
416
  $output .= '</div>';
417
  $output .= '<div class="wpdiscuz-comment-message"></div>';
418
  $output .= '<div id="wpdiscuz_form_anchor-' . $uniqueId . '" style="clear:both"></div>';
templates/comment/comment-form.php CHANGED
@@ -128,7 +128,8 @@ if (!post_password_required($post->ID)) {
128
  } elseif (!$_GET['subscriptionSuccess']) {
129
  $subscriptionMsg = __('Subscription Fault', 'wpdiscuz');
130
  } else {
131
- if (isset($_GET['subscriptionID']) && ($subscriptionID = trim($_GET['subscriptionID']))) {
 
132
  $noNeedMemberConfirm = ($currentUser->ID && $wpdiscuz->optionsSerialized->disableMemberConfirm);
133
  $noNeedGuestsConfirm = (!$currentUser->ID && $wpdiscuz->optionsSerialized->disableGuestsConfirm);
134
  if ($noNeedMemberConfirm || $noNeedGuestsConfirm) {
@@ -136,8 +137,6 @@ if (!post_password_required($post->ID)) {
136
  } else {
137
  $subscriptionMsg = $wpdiscuz->optionsSerialized->phrases['wc_confirm_email'];
138
  }
139
- } else {
140
- $errorClass = '';
141
  }
142
  }
143
  ?>
@@ -152,22 +151,48 @@ if (!post_password_required($post->ID)) {
152
  $form = $wpdiscuz->wpdiscuzForm->getForm($post->ID);
153
  $isShowSubscribeBar = $form->isShowSubscriptionBar();
154
  $isPostmaticActive = !class_exists('Prompt_Comment_Form_Handling') || (class_exists('Prompt_Comment_Form_Handling') && !$wpdiscuz->optionsSerialized->usePostmaticForCommentNotification);
155
- if (comments_open($post)) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  $wpdiscuz->helper->superSocializerFix();
157
  $formCustomCss = $form->getCustomCSS();
158
  if ($formCustomCss) {
159
  echo '<style type="text/css">' . $formCustomCss . '</style>';
160
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  ?>
162
- <h3 id="wc-comment-header">
163
- <?php if ($commentsCount) { ?>
164
- <div class="wpdiscuz-comment-count">
165
- <div class="wpd-cc-value"><?php echo $commentsCount; ?></div>
166
- <div class="wpd-cc-arrow"></div>
167
- </div>
168
- <?php } ?>
169
- <?php echo $form->getHeaderText(); ?>
170
- </h3>
171
  <div id="wpcomm" class="<?php echo $wpCommClasses; ?>">
172
  <div class="wpdiscuz-form-top-bar">
173
  <div class="wpdiscuz-ftb-left">
@@ -242,25 +267,26 @@ if (!post_password_required($post->ID)) {
242
  <?php } ?>
243
  <?php do_action('wpdiscuz_before_comments', $post, $currentUser, $commentsCount); ?>
244
 
245
- <div class="wpdiscuz-front-actions">
246
- <?php if ($isShowSubscribeBar && $isPostmaticActive) { ?>
247
- <div class="wpdiscuz-sbs-wrap">
248
- <span><i class="far fa-envelope" aria-hidden="true"></i>&nbsp; <?php echo $wpdiscuz->optionsSerialized->phrases['wc_subscribe_anchor']; ?> &nbsp;<i class="fas fa-caret-down" aria-hidden="true"></i></span>
249
- </div>
250
- <?php } ?>
251
- <?php if ($commentsCount && $wpdiscuz->optionsSerialized->showSortingButtons && !$wpdiscuz->optionsSerialized->wordpressIsPaginate) { ?>
252
- <div class="wpdiscuz-sort-buttons" style="font-size:14px; color: #777;">
253
- <i class="fas fa-caret-up" aria-hidden="true"></i>
254
- <span class="wpdiscuz-sort-button wpdiscuz-date-sort-desc"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_newest']; ?></span> <i class="fas fa-caret-up" aria-hidden="true"></i>
255
- <span class="wpdiscuz-sort-button wpdiscuz-date-sort-asc"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_oldest']; ?></span>
256
- <?php if (!$wpdiscuz->optionsSerialized->votingButtonsShowHide) { ?>
257
- <i class="fas fa-caret-up" aria-hidden="true"></i> <span class="wpdiscuz-sort-button wpdiscuz-vote-sort-up"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_most_voted']; ?></span>
258
- <?php } ?>
259
- </div>
260
- <?php } ?>
261
- <div class="clearfix"></div>
262
- </div>
263
-
 
264
  <?php
265
  if ($isShowSubscribeBar && $isPostmaticActive) {
266
  $wpdiscuz->subscriptionData = $wpdiscuz->dbManager->hasSubscription($post->ID, $currentUser->user_email);
@@ -333,17 +359,17 @@ if (!post_password_required($post->ID)) {
333
  <?php } ?>
334
  <div id="wcThreadWrapper" class="wc-thread-wrapper">
335
  <?php
336
- $args = array('first_load' => 1);
337
  $showLoadeMore = 1;
338
 
339
- if ($wpdiscuz->optionsSerialized->showSortingButtons && $wpdiscuz->optionsSerialized->mostVotedByDefault && !$wpdiscuz->optionsSerialized->votingButtonsShowHide) {
340
- $args['orderby'] = 'by_vote';
341
- }
342
-
343
  if (isset($_COOKIE[WpDiscuzCore::COOKIE_LAST_VISIT])) {
344
  $args[WpDiscuzCore::COOKIE_LAST_VISIT] = $_COOKIE[WpDiscuzCore::COOKIE_LAST_VISIT];
345
  }
346
 
 
 
 
 
347
  $commentData = $wpdiscuz->getWPComments($args);
348
  echo $commentData['comment_list'];
349
  ?>
@@ -373,7 +399,7 @@ if (!post_password_required($post->ID)) {
373
  <?php if ($wpdiscuz->optionsSerialized->showPluginPoweredByLink) { ?>
374
  <div class="by-wpdiscuz">
375
  <span id="awpdiscuz" onclick='javascript:document.getElementById("bywpdiscuz").style.display = "inline";
376
- document.getElementById("awpdiscuz").style.display = "none";'>
377
  <img alt="wpdiscuz" src="<?php echo plugins_url(WPDISCUZ_DIR_NAME . '/assets/img/plugin-icon/icon_info.png'); ?>" align="absmiddle" class="wpdimg"/>
378
  </span>&nbsp;
379
  <a href="http://wpdiscuz.com/" target="_blank" id="bywpdiscuz" title="wpDiscuz v<?php echo get_option(WpdiscuzCore::OPTION_SLUG_VERSION); ?> - Supercharged native comments">wpDiscuz</a>
128
  } elseif (!$_GET['subscriptionSuccess']) {
129
  $subscriptionMsg = __('Subscription Fault', 'wpdiscuz');
130
  } else {
131
+ $errorClass = '';
132
+ if (isset($_GET['subscriptionID']) && ($subscriptionID = intval($_GET['subscriptionID']))) {
133
  $noNeedMemberConfirm = ($currentUser->ID && $wpdiscuz->optionsSerialized->disableMemberConfirm);
134
  $noNeedGuestsConfirm = (!$currentUser->ID && $wpdiscuz->optionsSerialized->disableGuestsConfirm);
135
  if ($noNeedMemberConfirm || $noNeedGuestsConfirm) {
137
  } else {
138
  $subscriptionMsg = $wpdiscuz->optionsSerialized->phrases['wc_confirm_email'];
139
  }
 
 
140
  }
141
  }
142
  ?>
151
  $form = $wpdiscuz->wpdiscuzForm->getForm($post->ID);
152
  $isShowSubscribeBar = $form->isShowSubscriptionBar();
153
  $isPostmaticActive = !class_exists('Prompt_Comment_Form_Handling') || (class_exists('Prompt_Comment_Form_Handling') && !$wpdiscuz->optionsSerialized->usePostmaticForCommentNotification);
154
+ $wpdiscuzCommentsOrder = $wpdiscuz->optionsSerialized->wordpressCommentOrder;
155
+ if (!$wpdiscuz->optionsSerialized->wordpressIsPaginate && $wpdiscuz->optionsSerialized->showSortingButtons && $wpdiscuz->optionsSerialized->mostVotedByDefault) {
156
+ $wpdiscuzCommentsOrderBy = 'by_vote';
157
+ } else {
158
+ $wpdiscuzCommentsOrderBy = 'comment_date_gmt';
159
+ }
160
+
161
+
162
+ if (isset($_COOKIE[WpDiscuzCore::COOKIE_COMMENTS_SORTING . '_' . $post->ID]) && $_COOKIE[WpDiscuzCore::COOKIE_COMMENTS_SORTING . '_' . $post->ID] && !$wpdiscuz->optionsSerialized->wordpressIsPaginate) {
163
+ $cookieOrderData = json_decode(stripslashes(trim($_COOKIE[WpDiscuzCore::COOKIE_COMMENTS_SORTING . '_' . $post->ID])));
164
+ if ($cookieOrderData && isset($cookieOrderData->orderBy) && isset($cookieOrderData->order)) {
165
+ $cookieOrderBy = strtolower(trim($cookieOrderData->orderBy));
166
+ $cookieOrder = strtolower(trim($cookieOrderData->order));
167
+ if (in_array($cookieOrder, array('asc', 'desc'))) {
168
+ $wpdiscuzCommentsOrderBy = $cookieOrderBy;
169
+ $wpdiscuzCommentsOrder = $cookieOrder;
170
+ }
171
+ }
172
+ }
173
+
174
+ $commentsOpen = comments_open($post);
175
+
176
+ if ($commentsOpen) {
177
  $wpdiscuz->helper->superSocializerFix();
178
  $formCustomCss = $form->getCustomCSS();
179
  if ($formCustomCss) {
180
  echo '<style type="text/css">' . $formCustomCss . '</style>';
181
  }
182
+ if (!$wpdiscuz->optionsSerialized->headerTextShowHide) {
183
+ ?>
184
+ <h3 id="wc-comment-header">
185
+ <?php if ($commentsCount) { ?>
186
+ <div class="wpdiscuz-comment-count">
187
+ <div class="wpd-cc-value"><?php echo $commentsCount; ?></div>
188
+ <div class="wpd-cc-arrow"></div>
189
+ </div>
190
+ <?php } ?>
191
+ <?php echo $form->getHeaderText(); ?>
192
+ </h3>
193
+ <?php
194
+ }
195
  ?>
 
 
 
 
 
 
 
 
 
196
  <div id="wpcomm" class="<?php echo $wpCommClasses; ?>">
197
  <div class="wpdiscuz-form-top-bar">
198
  <div class="wpdiscuz-ftb-left">
267
  <?php } ?>
268
  <?php do_action('wpdiscuz_before_comments', $post, $currentUser, $commentsCount); ?>
269
 
270
+ <?php if ($isShowSubscribeBar || $wpdiscuz->optionsSerialized->showSortingButtons) { ?>
271
+ <div class="wpdiscuz-front-actions">
272
+ <?php if ($isShowSubscribeBar && $isPostmaticActive && $commentsOpen) { ?>
273
+ <div class="wpdiscuz-sbs-wrap">
274
+ <span><i class="far fa-envelope" aria-hidden="true"></i>&nbsp; <?php echo $wpdiscuz->optionsSerialized->phrases['wc_subscribe_anchor']; ?> &nbsp;<i class="fas fa-caret-down" aria-hidden="true"></i></span>
275
+ </div>
276
+ <?php } ?>
277
+ <?php if ($commentsCount && $wpdiscuz->optionsSerialized->showSortingButtons && !$wpdiscuz->optionsSerialized->wordpressIsPaginate) { ?>
278
+ <div class="wpdiscuz-sort-buttons" style="font-size:14px; color: #777;">
279
+ <i class="fas fa-caret-up" aria-hidden="true"></i>
280
+ <span class="wpdiscuz-sort-button wpdiscuz-date-sort-desc <?php print ($wpdiscuzCommentsOrderBy == 'comment_date_gmt' && $wpdiscuzCommentsOrder == 'desc') ? 'wpdiscuz-sort-button-active' : '' ?>"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_newest']; ?></span> <i class="fas fa-caret-up" aria-hidden="true"></i>
281
+ <span class="wpdiscuz-sort-button wpdiscuz-date-sort-asc <?php print ($wpdiscuzCommentsOrderBy == 'comment_date_gmt' && $wpdiscuzCommentsOrder == 'asc') ? 'wpdiscuz-sort-button-active' : '' ?>"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_oldest']; ?></span>
282
+ <?php if (!$wpdiscuz->optionsSerialized->votingButtonsShowHide) { ?>
283
+ <i class="fas fa-caret-up" aria-hidden="true"></i> <span class="wpdiscuz-sort-button wpdiscuz-vote-sort-up <?php print ($wpdiscuzCommentsOrderBy == 'by_vote') ? 'wpdiscuz-sort-button-active' : '' ?>"><?php echo $wpdiscuz->optionsSerialized->phrases['wc_most_voted']; ?></span>
284
+ <?php } ?>
285
+ </div>
286
+ <?php } ?>
287
+ <div class="clearfix"></div>
288
+ </div>
289
+ <?php } ?>
290
  <?php
291
  if ($isShowSubscribeBar && $isPostmaticActive) {
292
  $wpdiscuz->subscriptionData = $wpdiscuz->dbManager->hasSubscription($post->ID, $currentUser->user_email);
359
  <?php } ?>
360
  <div id="wcThreadWrapper" class="wc-thread-wrapper">
361
  <?php
362
+ $args = array('first_load' => 1, 'orderby' => $wpdiscuzCommentsOrderBy);
363
  $showLoadeMore = 1;
364
 
 
 
 
 
365
  if (isset($_COOKIE[WpDiscuzCore::COOKIE_LAST_VISIT])) {
366
  $args[WpDiscuzCore::COOKIE_LAST_VISIT] = $_COOKIE[WpDiscuzCore::COOKIE_LAST_VISIT];
367
  }
368
 
369
+ $args['orderby'] = $wpdiscuzCommentsOrderBy;
370
+ $args['order'] = $wpdiscuzCommentsOrder;
371
+
372
+
373
  $commentData = $wpdiscuz->getWPComments($args);
374
  echo $commentData['comment_list'];
375
  ?>
399
  <?php if ($wpdiscuz->optionsSerialized->showPluginPoweredByLink) { ?>
400
  <div class="by-wpdiscuz">
401
  <span id="awpdiscuz" onclick='javascript:document.getElementById("bywpdiscuz").style.display = "inline";
402
+ document.getElementById("awpdiscuz").style.display = "none";'>
403
  <img alt="wpdiscuz" src="<?php echo plugins_url(WPDISCUZ_DIR_NAME . '/assets/img/plugin-icon/icon_info.png'); ?>" align="absmiddle" class="wpdimg"/>
404
  </span>&nbsp;
405
  <a href="http://wpdiscuz.com/" target="_blank" id="bywpdiscuz" title="wpDiscuz v<?php echo get_option(WpdiscuzCore::OPTION_SLUG_VERSION); ?> - Supercharged native comments">wpDiscuz</a>
utils/ajax/index.html ADDED
File without changes
utils/ajax/wpdiscuz-ajax.php CHANGED
@@ -1,110 +1,135 @@
1
- <?php
2
-
3
- //mimic the actuall admin-ajax
4
- define('DOING_AJAX', true);
5
-
6
- if (!isset($_POST['action'])) {
7
- die('-1');
8
- }
9
-
10
- require_once('../../../../../wp-load.php');
11
-
12
- header('Content-Type: text/html');
13
- send_nosniff_header();
14
-
15
- header('Cache-Control: no-cache');
16
- header('Pragma: no-cache');
17
-
18
- $action = esc_attr(trim($_POST['action']));
19
- $allowedActions = array('mostActiveThread', '');
20
-
21
- add_action('wpdiscuz_wpdMostActiveThread', 'wpdMostActiveThread');
22
- add_action('wpdiscuz_nopriv_wpdMostActiveThread', 'wpdMostActiveThread');
23
-
24
- add_action('wpdiscuz_wpdMostReactedComment', 'wpdMostReactedComment');
25
- add_action('wpdiscuz_nopriv_wpdMostReactedComment', 'wpdMostReactedComment');
26
-
27
- if (in_array($ac, $allowedActions)) {
28
- if (is_user_logged_in()) {
29
- do_action('wpdiscuz_' . $action);
30
- } else {
31
- do_action('wpdiscuz_nopriv_' . $action);
32
- }
33
- } else {
34
- die('-1');
35
- }
36
-
37
- function wpdMostActiveThread() {
38
- $wpdiscuz = wpDiscuz();
39
- $response = array('code' => 0);
40
- $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
41
- if ($postId) {
42
- $parentCommentIds = $wpdiscuz->dbManager->getParentCommentsHavingReplies($postId);
43
- $childCount = 0;
44
- $hottestCommentId = 0;
45
- $hottestChildren = array();
46
- foreach ($parentCommentIds as $parentCommentId) {
47
- $tree = array();
48
- $children = $wpdiscuz->dbManager->getHottestTree($parentCommentId);
49
- $tmpCount = count($children);
50
- if ($childCount < $tmpCount) {
51
-
52
- $childCount = $tmpCount;
53
- $hottestCommentId = $parentCommentId;
54
- $hottestChildren = $children;
55
- }
56
- }
57
-
58
- if ($hottestCommentId && $hottestChildren) {
59
- $currentUser = WpdiscuzHelper::getCurrentUser();
60
- $parentComment = $wpdiscuz->helperOptimization->getCommentRoot($hottestCommentId);
61
- $tree = $parentComment->get_children(array(
62
- 'format' => 'flat',
63
- 'status' => $wpdiscuz->commentsArgs['status'],
64
- 'orderby' => $wpdiscuz->commentsArgs['orderby']
65
- ));
66
- $comments = array_merge(array($parentComment), $tree);
67
- $commentListArgs = $wpdiscuz->getCommentListArgs($postId);
68
- $commentListArgs['isSingle'] = true;
69
- $commentListArgs['new_loaded_class'] = 'wc-new-loaded-comment';
70
- $commentListArgs['current_user'] = $currentUser;
71
- $wpdiscuz->form = $wpdiscuz->wpdiscuzForm->getForm($postId);
72
- $commentListArgs['can_user_comment'] = $wpdiscuz->form ? $wpdiscuz->form->isUserCanComment($currentUser, $postId) : true;
73
- $response['code'] = 1;
74
- $response['message'] = wp_list_comments($commentListArgs, $comments);
75
- $response['commentId'] = $hottestCommentId;
76
- }
77
- }
78
- wp_die(json_encode($response));
79
- }
80
-
81
- function wpdMostReactedComment() {
82
- $wpdiscuz = wpDiscuz();
83
- $response = array('code' => 0);
84
- $postId = isset($_POST['postId']) ? intval($_POST['postId']) : 0;
85
- if ($postId) {
86
- $commentId = $wpdiscuz->dbManager->getMostReactedCommentId($postId);
87
- $comment = get_comment($commentId);
88
- if ($comment && $comment->comment_post_ID == $postId) {
89
- $currentUser = WpdiscuzHelper::getCurrentUser();
90
- $parentComment = $wpdiscuz->helperOptimization->getCommentRoot($commentId);
91
- $tree = $parentComment->get_children(array(
92
- 'format' => 'flat',
93
- 'status' => $wpdiscuz->commentsArgs['status'],
94
- 'orderby' => $wpdiscuz->commentsArgs['orderby']
95
- ));
96
- $comments = array_merge(array($parentComment), $tree);
97
- $commentListArgs = $wpdiscuz->getCommentListArgs($postId);
98
- $commentListArgs['isSingle'] = true;
99
- $commentListArgs['new_loaded_class'] = 'wc-new-loaded-comment';
100
- $commentListArgs['current_user'] = $currentUser;
101
- $wpdiscuz->form = $wpdiscuz->wpdiscuzForm->getForm($postId);
102
- $commentListArgs['can_user_comment'] = $wpdiscuz->form ? $wpdiscuz->form->isUserCanComment($currentUser, $postId) : true;
103
- $response['code'] = 1;
104
- $response['message'] = wp_list_comments($commentListArgs, $comments);
105
- $response['commentId'] = $commentId;
106
- $response['parentCommentID'] = $parentComment->comment_ID;
107
- }
108
- }
109
- wp_die(json_encode($response));
110
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ //mimic the actuall admin-ajax
4
+ define('DOING_AJAX', true);
5
+
6
+ if (!isset($_POST['action'])) {
7
+ die('-1');
8
+ }
9
+
10
+ require_once('../../../../../wp-load.php');
11
+
12
+ header('Content-Type: text/html');
13
+ send_nosniff_header();
14
+
15
+ header('Cache-Control: no-cache');
16
+ header('Pragma: no-cache');
17
+
18
+ $wpdiscuz = wpDiscuz();
19
+ $action = esc_attr(trim($_POST['action']));
20
+ $allowedActions = array(
21
+ 'wpdLoadMoreComments',
22
+ 'wpdVoteOnComment',
23
+ 'wpdSorting',
24
+ 'wpdAddComment',
25
+ 'wpdGetSingleComment',
26
+ 'wpdCheckNotificationType',
27
+ 'wpdRedirect',
28
+ 'wpdEditComment',
29
+ 'wpdSaveEditedComment',
30
+ 'wpdUpdateAutomatically',
31
+ 'wpdUpdateOnClick',
32
+ 'wpdReadMore',
33
+ 'wpdShowReplies',
34
+ 'wpdMostReactedComment',
35
+ 'wpdHottestThread',
36
+ 'wpdGetInfo',
37
+ 'wpdGetActivityPage',
38
+ 'wpdGetSubscriptionsPage',
39
+ 'wpdGetFollowsPage',
40
+ 'wpdDeleteComment',
41
+ 'wpdCancelSubscription',
42
+ 'wpdCancelFollow',
43
+ 'wpdEmailDeleteLinks',
44
+ 'wpdGuestAction',
45
+ 'wpdStickComment',
46
+ 'wpdCloseThread',
47
+ 'wpdFollowUser',
48
+ );
49
+
50
+ // Load more comments
51
+ add_action('wpdiscuz_wpdLoadMoreComments', array($wpdiscuz, 'loadMoreComments'));
52
+ add_action('wpdiscuz_nopriv_wpdLoadMoreComments', array($wpdiscuz, 'loadMoreComments'));
53
+ // Vote on comments
54
+ add_action('wpdiscuz_wpdVoteOnComment', array($wpdiscuz, 'voteOnComment'));
55
+ add_action('wpdiscuz_nopriv_wpdVoteOnComment', array($wpdiscuz, 'voteOnComment'));
56
+ // Sorting comments
57
+ add_action('wpdiscuz_wpdSorting', array($wpdiscuz, 'sorting'));
58
+ add_action('wpdiscuz_nopriv_wpdSorting', array($wpdiscuz, 'sorting'));
59
+ // Adding comment
60
+ add_action('wpdiscuz_wpdAddComment', array($wpdiscuz, 'addComment'));
61
+ add_action('wpdiscuz_nopriv_wpdAddComment', array($wpdiscuz, 'addComment'));
62
+ // Get single comment
63
+ add_action('wpdiscuz_wpdGetSingleComment', array($wpdiscuz, 'getSingleComment'));
64
+ add_action('wpdiscuz_nopriv_wpdGetSingleComment', array($wpdiscuz, 'getSingleComment'));
65
+ // Get single comment
66
+ add_action('wpdiscuz_wpdCheckNotificationType', array($wpdiscuz->helperEmail, 'checkNotificationType'));
67
+ add_action('wpdiscuz_nopriv_wpdCheckNotificationType', array($wpdiscuz->helperEmail, 'checkNotificationType'));
68
+ // Redirect first commenter
69
+ add_action('wpdiscuz_wpdRedirect', array($wpdiscuz, 'redirect'));
70
+ add_action('wpdiscuz_nopriv_wpdRedirect', array($wpdiscuz, 'redirect'));
71
+ // Edit comment
72
+ add_action('wpdiscuz_wpdEditComment', array($wpdiscuz, 'editComment'));
73
+ add_action('wpdiscuz_nopriv_wpdEditComment', array($wpdiscuz, 'editComment'));
74
+ // Save edited comment
75
+ add_action('wpdiscuz_wpdSaveEditedComment', array($wpdiscuz, 'saveEditedComment'));
76
+ add_action('wpdiscuz_nopriv_wpdSaveEditedComment', array($wpdiscuz, 'saveEditedComment'));
77
+ // Update comment list automatically
78
+ add_action('wpdiscuz_wpdUpdateAutomatically', array($wpdiscuz, 'updateAutomatically'));
79
+ add_action('wpdiscuz_nopriv_wpdUpdateAutomatically', array($wpdiscuz, 'updateAutomatically'));
80
+ // Update comment list manually
81
+ add_action('wpdiscuz_wpdUpdateOnClick', array($wpdiscuz, 'updateOnClick'));
82
+ add_action('wpdiscuz_nopriv_wpdUpdateOnClick', array($wpdiscuz, 'updateOnClick'));
83
+ // Read more comment
84
+ add_action('wpdiscuz_wpdReadMore', array($wpdiscuz, 'readMore'));
85
+ add_action('wpdiscuz_nopriv_wpdReadMore', array($wpdiscuz, 'readMore'));
86
+ // Show Comment Replies
87
+ add_action('wpdiscuz_wpdShowReplies', array($wpdiscuz, 'showReplies'));
88
+ add_action('wpdiscuz_nopriv_wpdShowReplies', array($wpdiscuz, 'showReplies'));
89
+ // Most Reacted Comment
90
+ add_action('wpdiscuz_wpdMostReactedComment', array($wpdiscuz, 'mostReactedComment'));
91
+ add_action('wpdiscuz_nopriv_wpdMostReactedComment', array($wpdiscuz, 'mostReactedComment'));
92
+ // Hottest Comment Thread
93
+ add_action('wpdiscuz_wpdHottestThread', array($wpdiscuz, 'hottestThread'));
94
+ add_action('wpdiscuz_nopriv_wpdHottestThread', array($wpdiscuz, 'hottestThread'));
95
+ // Get user content info
96
+ add_action('wpdiscuz_wpdGetInfo', array($wpdiscuz->helper, 'wpdGetInfo'));
97
+ add_action('wpdiscuz_nopriv_wpdGetInfo', array($wpdiscuz->helper, 'wpdGetInfo'));
98
+ // Get user activity page item
99
+ add_action('wpdiscuz_wpdGetActivityPage', array($wpdiscuz->helper, 'getActivityPage'));
100
+ add_action('wpdiscuz_nopriv_wpdGetActivityPage', array($wpdiscuz->helper, 'getActivityPage'));
101
+ // Get user subscription page item
102
+ add_action('wpdiscuz_wpdGetSubscriptionsPage', array($wpdiscuz->helper, 'getSubscriptionsPage'));
103
+ add_action('wpdiscuz_nopriv_wpdGetSubscriptionsPage', array($wpdiscuz->helper, 'getSubscriptionsPage'));
104
+ // Get user follow page item
105
+ add_action('wpdiscuz_wpdGetFollowsPage', array($wpdiscuz->helper, 'getFollowsPage'));
106
+ add_action('wpdiscuz_nopriv_wpdGetFollowsPage', array($wpdiscuz->helper, 'getFollowsPage'));
107
+ // Delete users' comment
108
+ add_action('wpdiscuz_wpdDeleteComment', array($wpdiscuz->helperAjax, 'deleteComment'));
109
+ add_action('wpdiscuz_nopriv_wpdDeleteComment', array($wpdiscuz->helperAjax, 'deleteComment'));
110
+ // Delete users' subscription
111
+ add_action('wpdiscuz_wpdCancelSubscription', array($wpdiscuz->helperAjax, 'deleteSubscription'));
112
+ add_action('wpdiscuz_nopriv_wpdCancelSubscription', array($wpdiscuz->helperAjax, 'deleteSubscription'));
113
+ // Delete users' follow
114
+ add_action('wpdiscuz_wpdCancelFollow', array($wpdiscuz->helperAjax, 'deleteFollow'));
115
+ add_action('wpdiscuz_nopriv_wpdCancelFollow', array($wpdiscuz->helperAjax, 'deleteFollow'));
116
+ // Email to user the delete links
117
+ add_action('wpdiscuz_wpdEmailDeleteLinks', array($wpdiscuz->helperAjax, 'emailDeleteLinks'));
118
+ // Guest action
119
+ add_action('wpdiscuz_wpdGuestAction', array($wpdiscuz->helperAjax, 'guestAction'));
120
+ // Stick comment
121
+ add_action('wpdiscuz_wpdStickComment', array($wpdiscuz->helperAjax, 'stickComment'));
122
+ // Close comment
123
+ add_action('wpdiscuz_wpdCloseThread', array($wpdiscuz->helperAjax, 'closeThread'));
124
+ // Follow user
125
+ add_action('wpdiscuz_wpdFollowUser', array($wpdiscuz->helperAjax, 'followUser'));
126
+
127
+ if (in_array($action, $allowedActions)) {
128
+ if (is_user_logged_in()) {
129
+ do_action('wpdiscuz_' . $action);
130
+ } else {
131
+ do_action('wpdiscuz_nopriv_' . $action);
132
+ }
133
+ } else {
134
+ die('-1');
135
+ }
utils/class.WpdiscuzHelperEmail.php CHANGED
@@ -149,21 +149,23 @@ class WpdiscuzHelperEmail implements WpDiscuzConstants {
149
  if (strpos($message, '[POST_TITLE]') !== false) {
150
  $message = str_replace('[POST_TITLE]', $postTitle, $message);
151
  }
 
 
 
 
 
 
 
 
 
 
152
  if (strpos($message, '[COMMENT_URL]') !== false) {
153
  $commentPermalink = get_comment_link($commentId);
154
  $message = str_replace('[COMMENT_URL]', $commentPermalink, $message);
155
  }
156
-
157
- if ((strpos($message, '[COMMENT_AUTHOR]') !== false) && ($subscriptionType == self::SUBSCRIPTION_COMMENT)) {
158
- $parentComment = get_comment($comment->comment_parent);
159
- $commentAuthor = $parentComment && $parentComment->comment_author ? $parentComment->comment_author : '';
160
  $message = str_replace('[COMMENT_AUTHOR]', $commentAuthor, $message);
161
- } else {
162
- if ((strpos($message, '[SUBSCRIBER_NAME]') !== false) && ($subscriptionType == self::SUBSCRIPTION_ALL_COMMENT || $subscriptionType == self::SUBSCRIPTION_POST)) {
163
- $user = get_user_by('email', $emailData['email']);
164
- $commentAuthor = $user && $user->display_name ? $user->display_name : '';
165
- $message = str_replace('[SUBSCRIBER_NAME]', $commentAuthor, $message);
166
- }
167
  }
168
  if (strpos($message, '[COMMENT_CONTENT]') !== false) {
169
  $message = str_replace('[COMMENT_CONTENT]', $comment->comment_content, $message);
@@ -495,6 +497,9 @@ class WpdiscuzHelperEmail implements WpDiscuzConstants {
495
  if (($followerData['follower_email'] == $postAuthor->user_email) && (($moderationNotify && !$comment->comment_approved) || ($commentsNotify && $comment->comment_approved))) {
496
  return;
497
  }
 
 
 
498
  if (strpos($message, '[FOLLOWER_NAME]') !== false) {
499
  $message = str_replace('[FOLLOWER_NAME]', $followerData['follower_name'], $message);
500
  }
@@ -520,7 +525,7 @@ class WpdiscuzHelperEmail implements WpDiscuzConstants {
520
  $headers[] = "From: " . $fromName . " <" . $fromEmail . "> \r\n";
521
  $subject = html_entity_decode($subject, ENT_QUOTES);
522
  $message = html_entity_decode($message, ENT_QUOTES);
523
- wp_mail($followerData['follower_email'], $subject, do_shortcode($message), $headers);
524
  }
525
  }
526
 
149
  if (strpos($message, '[POST_TITLE]') !== false) {
150
  $message = str_replace('[POST_TITLE]', $postTitle, $message);
151
  }
152
+ if (strpos($message, '[SUBSCRIBER_NAME]') !== false) {
153
+ if ($subscriptionType == self::SUBSCRIPTION_COMMENT) {
154
+ $parentComment = get_comment($comment->comment_parent);
155
+ $subscriber = $parentComment && $parentComment->comment_author ? $parentComment->comment_author : $this->optionsSerialized->phrases['wc_anonymous'];
156
+ } else {
157
+ $user = get_user_by('email', $emailData['email']);
158
+ $subscriber = $user && $user->display_name ? $user->display_name : '';
159
+ }
160
+ $message = str_replace('[SUBSCRIBER_NAME]', $subscriber, $message);
161
+ }
162
  if (strpos($message, '[COMMENT_URL]') !== false) {
163
  $commentPermalink = get_comment_link($commentId);
164
  $message = str_replace('[COMMENT_URL]', $commentPermalink, $message);
165
  }
166
+ if (strpos($message, '[COMMENT_AUTHOR]') !== false) {
167
+ $commentAuthor = $comment->comment_author ? $comment->comment_author : $this->optionsSerialized->phrases['wc_anonymous'];
 
 
168
  $message = str_replace('[COMMENT_AUTHOR]', $commentAuthor, $message);
 
 
 
 
 
 
169
  }
170
  if (strpos($message, '[COMMENT_CONTENT]') !== false) {
171
  $message = str_replace('[COMMENT_CONTENT]', $comment->comment_content, $message);
497
  if (($followerData['follower_email'] == $postAuthor->user_email) && (($moderationNotify && !$comment->comment_approved) || ($commentsNotify && $comment->comment_approved))) {
498
  return;
499
  }
500
+ if (strpos($message, '[COMMENT_AUTHOR]') !== false) {
501
+ $message = str_replace('[COMMENT_AUTHOR]', $followerData['user_name'], $message);
502
+ }
503
  if (strpos($message, '[FOLLOWER_NAME]') !== false) {
504
  $message = str_replace('[FOLLOWER_NAME]', $followerData['follower_name'], $message);
505
  }
525
  $headers[] = "From: " . $fromName . " <" . $fromEmail . "> \r\n";
526
  $subject = html_entity_decode($subject, ENT_QUOTES);
527
  $message = html_entity_decode($message, ENT_QUOTES);
528
+ wp_mail($followerData['follower_email'], $subject, do_shortcode($message), $headers);
529
  }
530
  }
531