Gwolle Guestbook - Version 2.6.1

Version Description

  • 2018-07-09
  • Add screen-reader-text to frontend metabox.
  • Hide 'hide this form' button when form was visible on page load.
  • Add a filter for button class 'gwolle_gb_button_class'.
  • Add 'no_email' parameter to 'gwolle_gb_get_entries' function.
  • Add second parameter $entry to filter for mail body notifications.
  • Admin entries page, change label to ID column.
  • Fix compatibility with Add-On version 1.0.0 till 1.1.2.
  • Updates for Add-On 1.2.1.
Download this release

Release Info

Developer mpol
Plugin Icon 128x128 Gwolle Guestbook
Version 2.6.1
Comparing to
See all releases

Code changes from version 2.6.0 to 2.6.1

add-on/gb-add-on.php CHANGED
@@ -158,6 +158,16 @@ Entry content:
158
  esc_html_e('Show delete link in Metabox for author.', 'gwolle-gb');
159
  /* translators: Commercial Add-On */
160
  esc_html_e('A link to delete the entry will be added to the metabox. Only visible for moderators and the author.', 'gwolle-gb');
 
 
 
 
 
 
 
 
 
 
161
  /* translators: Commercial Add-On */
162
  esc_html_e('Auto Delete', 'gwolle-gb');
163
  /* translators: Commercial Add-On */
@@ -165,8 +175,6 @@ Entry content:
165
  /* translators: Commercial Add-On */
166
  esc_html_e('This setting will enable automatic deletion of entries older than a certain date.', 'gwolle-gb');
167
  /* translators: Commercial Add-On */
168
- esc_html_e('Be very carefull with this option.', 'gwolle-gb');
169
- /* translators: Commercial Add-On */
170
  esc_html_e('Auto Delete entries older than:', 'gwolle-gb');
171
  /* translators: Commercial Add-On */
172
  esc_html_e('1 Day','gwolle-gb');
@@ -243,4 +251,8 @@ Entry content:
243
  /* translators: Commercial Add-On. %s is the value/number of votes. */
244
  __( 'Average Rating: <strong>%s out of %s</strong> (%s votes)', 'gwolle-gb' );
245
 
 
 
 
 
246
  }
158
  esc_html_e('Show delete link in Metabox for author.', 'gwolle-gb');
159
  /* translators: Commercial Add-On */
160
  esc_html_e('A link to delete the entry will be added to the metabox. Only visible for moderators and the author.', 'gwolle-gb');
161
+
162
+ /* translators: Commercial Add-On, option for auto anonymize */
163
+ esc_html_e('Auto Anonymize', 'gwolle-gb');
164
+ /* translators: Commercial Add-On, option for auto anonymize */
165
+ esc_html_e('Auto Anonymize entries after a certain time.', 'gwolle-gb');
166
+ /* translators: Commercial Add-On, option for auto anonymize */
167
+ esc_html_e('This setting will enable automatic anonymization of entries older than a certain date.', 'gwolle-gb');
168
+ /* translators: Commercial Add-On, option for auto anonymize */
169
+ esc_html_e('Be very carefull with this option.', 'gwolle-gb');
170
+
171
  /* translators: Commercial Add-On */
172
  esc_html_e('Auto Delete', 'gwolle-gb');
173
  /* translators: Commercial Add-On */
175
  /* translators: Commercial Add-On */
176
  esc_html_e('This setting will enable automatic deletion of entries older than a certain date.', 'gwolle-gb');
177
  /* translators: Commercial Add-On */
 
 
178
  esc_html_e('Auto Delete entries older than:', 'gwolle-gb');
179
  /* translators: Commercial Add-On */
180
  esc_html_e('1 Day','gwolle-gb');
251
  /* translators: Commercial Add-On. %s is the value/number of votes. */
252
  __( 'Average Rating: <strong>%s out of %s</strong> (%s votes)', 'gwolle-gb' );
253
 
254
+ // function gwolle_gb_addon_add_privacy_policy_content() {
255
+ /* translators: Commercial Add-On. Text for privacy policy. */
256
+ __( 'When visitors report an entry as abusive, the entry ID will be stored in a cookie in the browser. For fallback, the IP address will be saved temporarily as a transient in the database together with the number of reports.', 'gwolle-gb' );
257
+
258
  }
admin/gb-page-add-on.php CHANGED
@@ -90,6 +90,7 @@ function gwolle_gb_addon_features() {
90
  <li>' . esc_html__('Permalink button in each entry for easy access (optional).','gwolle-gb').'</li>
91
  <li>' . esc_html__('Email button to contact each author (optional).','gwolle-gb').'</li>
92
  <li>' . esc_html__('Sitemap support for popular SEO/Sitemap plugins.','gwolle-gb').'</li>
 
93
  <li>' . esc_html__('Auto Delete timer (optional).','gwolle-gb').'</li>
94
  </ul>';
95
  }
90
  <li>' . esc_html__('Permalink button in each entry for easy access (optional).','gwolle-gb').'</li>
91
  <li>' . esc_html__('Email button to contact each author (optional).','gwolle-gb').'</li>
92
  <li>' . esc_html__('Sitemap support for popular SEO/Sitemap plugins.','gwolle-gb').'</li>
93
+ <li>' . esc_html__('Auto Anonymize timer (optional).','gwolle-gb').'</li>
94
  <li>' . esc_html__('Auto Delete timer (optional).','gwolle-gb').'</li>
95
  </ul>';
96
  }
admin/gb-page-entries.php CHANGED
@@ -697,7 +697,11 @@ function gwolle_gb_page_entries() {
697
  </a>
698
  </span>
699
  </td>
700
- <td class="id">' . $entry->get_id() . '</td>';
 
 
 
 
701
 
702
  // Optional Icon column where CSS is being used to show them or not
703
  if ( get_option('gwolle_gb-showEntryIcons', 'true') === 'true' ) {
@@ -726,19 +730,20 @@ function gwolle_gb_page_entries() {
726
  // Author column
727
  $author_name_html = gwolle_gb_get_author_name_html($entry);
728
  $html_output .= '
729
- <td class="entry-author-name"><span class="author-name">' . $author_name_html . '</span><br />' .
730
- '<span class="author-email">' . $entry->get_author_email() . '</span>' .
731
- '</td>';
 
732
 
733
  // Excerpt column
734
  $html_output .= '
735
  <td class="entry-content">
736
- <label for="check-' . $entry->get_id() . '">';
737
  $entry_content = gwolle_gb_get_excerpt( $entry->get_content(), 17 );
738
  if ( get_option('gwolle_gb-showSmilies', 'true') === 'true' ) {
739
  $entry_content = convert_smilies($entry_content);
740
  }
741
- $html_output .= $entry_content . '</label>
742
  </td>';
743
 
744
  // Actions column
697
  </a>
698
  </span>
699
  </td>
700
+ <td class="id">
701
+ <label for="check-' . $entry->get_id() . '">
702
+ ' . $entry->get_id() . '
703
+ </label>
704
+ </td>';
705
 
706
  // Optional Icon column where CSS is being used to show them or not
707
  if ( get_option('gwolle_gb-showEntryIcons', 'true') === 'true' ) {
730
  // Author column
731
  $author_name_html = gwolle_gb_get_author_name_html($entry);
732
  $html_output .= '
733
+ <td class="entry-author-name">
734
+ <span class="author-name">' . $author_name_html . '</span><br />
735
+ <span class="author-email">' . $entry->get_author_email() . '</span>
736
+ </td>';
737
 
738
  // Excerpt column
739
  $html_output .= '
740
  <td class="entry-content">
741
+ ';
742
  $entry_content = gwolle_gb_get_excerpt( $entry->get_content(), 17 );
743
  if ( get_option('gwolle_gb-showSmilies', 'true') === 'true' ) {
744
  $entry_content = convert_smilies($entry_content);
745
  }
746
+ $html_output .= $entry_content . '
747
  </td>';
748
 
749
  // Actions column
docs/filters/gwolle_gb_button_class.txt ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ ==Description==
4
+
5
+ The <b>"gwolle_gb_button_class"</b> filter is used to change the class attribute of buttons in the frontend form.
6
+
7
+ You can use this filter as:
8
+
9
+ <code><?php add_filter( 'gwolle_gb_button_class', 'filter_function_name' ) ?></code>
10
+
11
+ Where 'filter_function_name' is the function WordPress should call when the filter is being used.
12
+
13
+ '''filter_function_name''' should be a unique function name. It cannot match any other function name already declared.
14
+
15
+
16
+ ==Examples==
17
+
18
+
19
+ function my_gwolle_gb_button_class( $classes ) {
20
+ // $classes is a string
21
+ $classes .= ' grid-item'; // Add to it or use str_replace. Mind the space.
22
+ return $classes;
23
+ }
24
+ add_filter( 'gwolle_gb_button_class', 'my_gwolle_gb_button_class', 10, 1 );
25
+
docs/filters/gwolle_gb_privacy_label.txt CHANGED
@@ -18,7 +18,7 @@ Where 'filter_function_name' is the function WordPress should call when the filt
18
 
19
  function my_gwolle_gb_privacy_label( $label ) {
20
  // $label is a string
21
- $label = 'test';
22
  return $label;
23
  }
24
  add_filter( 'gwolle_gb_privacy_label', 'my_gwolle_gb_privacy_label', 10, 1 );
18
 
19
  function my_gwolle_gb_privacy_label( $label ) {
20
  // $label is a string
21
+ $label = 'Accept %sPrivacy Policy%s'; // default text, with placeholders that become a link.
22
  return $label;
23
  }
24
  add_filter( 'gwolle_gb_privacy_label', 'my_gwolle_gb_privacy_label', 10, 1 );
frontend/gb-form.php CHANGED
@@ -24,7 +24,7 @@ function gwolle_gb_frontend_write( $shortcode_atts, $shortcode ) {
24
 
25
  $html5 = current_theme_supports( 'html5' );
26
  $output = '';
27
-
28
 
29
  // Set data up for prefilling an already submitted form that had errors.
30
  $name = '';
@@ -124,7 +124,7 @@ function gwolle_gb_frontend_write( $shortcode_atts, $shortcode ) {
124
  if ( ( $shortcode_atts['button'] == 'true' ) && ( ! $gwolle_gb_errors ) ) {
125
  $button = '
126
  <div id="gwolle_gb_write_button">
127
- <input type="button" class="button btn btn-default" value="&raquo; ' . /* translators: Button text */ esc_attr__('Write a new entry.', 'gwolle-gb') . '" />
128
  </div>';
129
  $output .= apply_filters( 'gwolle_gb_button', $button);
130
 
@@ -151,11 +151,13 @@ function gwolle_gb_frontend_write( $shortcode_atts, $shortcode ) {
151
  $header = esc_html__('Write a new entry for the Guestbook', 'gwolle-gb');
152
  }
153
 
154
- $output .= '
155
- <form id="gwolle_gb_new_entry" action="#" method="POST" class="' . $formclass . '">
156
- <h3>' . $header . '</h3>
157
- <button type="button" class="gb-notice-dismiss"><span class="screen-reader-text">' . esc_html__('Hide this form.', 'gwolle-gb') . '</span></button>
158
- <input type="hidden" name="gwolle_gb_function" id="gwolle_gb_function" value="add_entry" />';
 
 
159
 
160
  // The book_id from the shortcode, to be used by the posthandling function again.
161
  $output .= '<input type="hidden" name="gwolle_gb_book_id" id="gwolle_gb_book_id" value="' . $shortcode_atts['book_id'] . '" />';
@@ -515,7 +517,7 @@ function gwolle_gb_frontend_write( $shortcode_atts, $shortcode ) {
515
  <div class="gwolle_gb_submit">
516
  <div class="label gwolle_gb_invisible text-muted">&nbsp;</div>
517
  <div class="input">
518
- <input type="submit" name="gwolle_gb_submit" id="gwolle_gb_submit" class="button btn btn-primary" value="' . esc_attr__('Submit', 'gwolle-gb') . '" />
519
  <span class="gwolle_gb_submit_ajax_icon"></span>
520
  ';
521
 
24
 
25
  $html5 = current_theme_supports( 'html5' );
26
  $output = '';
27
+ $button_class = (string) apply_filters( 'gwolle_gb_button_class', '' );
28
 
29
  // Set data up for prefilling an already submitted form that had errors.
30
  $name = '';
124
  if ( ( $shortcode_atts['button'] == 'true' ) && ( ! $gwolle_gb_errors ) ) {
125
  $button = '
126
  <div id="gwolle_gb_write_button">
127
+ <input type="button" class="button btn btn-default ' . $button_class . '" value="&raquo; ' . /* translators: Button text */ esc_attr__('Write a new entry.', 'gwolle-gb') . '" />
128
  </div>';
129
  $output .= apply_filters( 'gwolle_gb_button', $button);
130
 
151
  $header = esc_html__('Write a new entry for the Guestbook', 'gwolle-gb');
152
  }
153
 
154
+ if ( ( $shortcode_atts['button'] == 'true' ) ) {
155
+ $output .= '
156
+ <form id="gwolle_gb_new_entry" action="#" method="POST" class="' . $formclass . '">
157
+ <h3>' . $header . '</h3>
158
+ <button type="button" class="gb-notice-dismiss"><span class="screen-reader-text">' . esc_html__('Hide this form.', 'gwolle-gb') . '</span></button>
159
+ <input type="hidden" name="gwolle_gb_function" id="gwolle_gb_function" value="add_entry" />';
160
+ }
161
 
162
  // The book_id from the shortcode, to be used by the posthandling function again.
163
  $output .= '<input type="hidden" name="gwolle_gb_book_id" id="gwolle_gb_book_id" value="' . $shortcode_atts['book_id'] . '" />';
517
  <div class="gwolle_gb_submit">
518
  <div class="label gwolle_gb_invisible text-muted">&nbsp;</div>
519
  <div class="input">
520
+ <input type="submit" name="gwolle_gb_submit" id="gwolle_gb_submit" class="button btn btn-primary ' . $button_class . '" value="' . esc_attr__('Submit', 'gwolle-gb') . '" />
521
  <span class="gwolle_gb_submit_ajax_icon"></span>
522
  ';
523
 
frontend/gb-widget.php CHANGED
@@ -82,7 +82,8 @@ if (function_exists('register_sidebar') && class_exists('WP_Widget')) {
82
  if ( (int) $postid > 0 ) {
83
  $permalink = get_permalink( $postid );
84
  $raquo = '
85
- <a href="' . $permalink . '" title="' . esc_attr__('Click here to get to the guestbook.', 'gwolle-gb') . '">&raquo;</a>';
 
86
  }
87
 
88
  $widget_html .= '
@@ -90,7 +91,7 @@ if (function_exists('register_sidebar') && class_exists('WP_Widget')) {
90
  $counter = 0;
91
 
92
  // Get the best entries first
93
- if ( is_array( $best ) && !empty( $best ) ) {
94
  foreach ($best as $entry_id) {
95
  if ( $counter == $num_entries) { break; } // we have enough
96
  $entry = new gwolle_gb_entry();
82
  if ( (int) $postid > 0 ) {
83
  $permalink = get_permalink( $postid );
84
  $raquo = '
85
+ <a href="' . $permalink . '" title="' . esc_attr__('Click here to get to the guestbook.', 'gwolle-gb') . '">&raquo;</a>
86
+ ';
87
  }
88
 
89
  $widget_html .= '
91
  $counter = 0;
92
 
93
  // Get the best entries first
94
+ if ( is_array( $best ) && ! empty( $best ) ) {
95
  foreach ($best as $entry_id) {
96
  if ( $counter == $num_entries) { break; } // we have enough
97
  $entry = new gwolle_gb_entry();
frontend/gwolle_gb-entry.php CHANGED
@@ -223,7 +223,7 @@ if ( ! function_exists('gwolle_gb_entry_template') ) {
223
  $gb_metabox = apply_filters( 'gwolle_gb_entry_metabox_lines', '', $entry );
224
  if ( $gb_metabox ) {
225
  $entry_output .= '
226
- <div class="gb-metabox-handle">' . esc_html__('...', 'gwolle-gb' ) . '</div>
227
  <div class="gb-metabox gwolle_gb_invisible gwolle-gb-invisible">' .
228
  $gb_metabox . '
229
  </div>';
223
  $gb_metabox = apply_filters( 'gwolle_gb_entry_metabox_lines', '', $entry );
224
  if ( $gb_metabox ) {
225
  $entry_output .= '
226
+ <div class="gb-metabox-handle">' . esc_html__('...', 'gwolle-gb' ) . '<span class="screen-reader-text"> ' . esc_html__('Toggle this metabox.', 'gwolle-gb') . '</span></div>
227
  <div class="gb-metabox gwolle_gb_invisible gwolle-gb-invisible">' .
228
  $gb_metabox . '
229
  </div>';
frontend/js/gwolle-gb-frontend.js CHANGED
@@ -188,6 +188,12 @@ function gwolle_gb_timout_clock() {
188
  * AJAX Submit for Gwolle Guestbook Frontend.
189
  */
190
  var gwolle_gb_ajax_callback = jQuery.Callbacks(); // Callback function to be fired after AJAX request.
 
 
 
 
 
 
191
  jQuery(document).ready(function($) {
192
  jQuery( '.gwolle_gb_form_ajax #gwolle_gb_submit' ).click( function( submit_button ) {
193
 
188
  * AJAX Submit for Gwolle Guestbook Frontend.
189
  */
190
  var gwolle_gb_ajax_callback = jQuery.Callbacks(); // Callback function to be fired after AJAX request.
191
+ // Use an object, arrays are only indexed by integers.
192
+ var gwolle_gb_ajax_data = {
193
+ permalink: window.location.href,
194
+ action: 'gwolle_gb_form_ajax'
195
+ };
196
+
197
  jQuery(document).ready(function($) {
198
  jQuery( '.gwolle_gb_form_ajax #gwolle_gb_submit' ).click( function( submit_button ) {
199
 
functions/gb-get_entries.php CHANGED
@@ -17,8 +17,9 @@ if ( strpos($_SERVER['PHP_SELF'], basename(__FILE__) )) {
17
  * - checked string: 'checked' or 'unchecked', List the entries that are checked or unchecked.
18
  * - trash string: 'trash' or 'notrash', List the entries that are in trash or not in trash.
19
  * - spam string: 'spam' or 'nospam', List the entries marked as spam or as no spam.
20
- * - author_id string: All entries associated with this author_id (since 1.5.0).
21
- * - email string: All entries associated with this emailaddress.
 
22
  * - no_moderators string: 'true', Only entries not written by a moderator (might be expensive with many users) (since 1.5.0).
23
  * - book_id int: Only entries from this book. Default in the shortcode is 1 (since 1.5.1).
24
  * - date_query array:
@@ -88,6 +89,12 @@ function gwolle_gb_get_entries($args = array()) {
88
  author_email = %s";
89
  $values[] = $args['email'];
90
  }
 
 
 
 
 
 
91
  if ( isset($args['no_moderators']) ) {
92
  $no_moderators = $args['no_moderators'];
93
  if ( $no_moderators === 'true' ) {
17
  * - checked string: 'checked' or 'unchecked', List the entries that are checked or unchecked.
18
  * - trash string: 'trash' or 'notrash', List the entries that are in trash or not in trash.
19
  * - spam string: 'spam' or 'nospam', List the entries marked as spam or as no spam.
20
+ * - author_id string: Entries associated with this author_id (since 1.5.0).
21
+ * - email string: Entries associated with this emailaddress.
22
+ * - no_email string: Entries not associated with this emailaddress (since 2.6.1).
23
  * - no_moderators string: 'true', Only entries not written by a moderator (might be expensive with many users) (since 1.5.0).
24
  * - book_id int: Only entries from this book. Default in the shortcode is 1 (since 1.5.1).
25
  * - date_query array:
89
  author_email = %s";
90
  $values[] = $args['email'];
91
  }
92
+ if ( isset($args['no_email']) ) {
93
+ $where .= "
94
+ AND
95
+ author_email != %s";
96
+ $values[] = $args['no_email'];
97
+ }
98
  if ( isset($args['no_moderators']) ) {
99
  $no_moderators = $args['no_moderators'];
100
  if ( $no_moderators === 'true' ) {
functions/gb-mail.php CHANGED
@@ -61,7 +61,7 @@ Entry content:
61
  "
62
  , 'gwolle-gb');
63
  }
64
- $mail_body = apply_filters( 'gwolle_gb_mail_moderators_body', $mail_body );
65
 
66
  // Set the Mail Headers
67
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('New Guestbook Entry', 'gwolle-gb');
@@ -171,7 +171,7 @@ Entry content:
171
  "
172
  , 'gwolle-gb');
173
  }
174
- $mail_body = apply_filters( 'gwolle_gb_mail_author_body', $mail_body );
175
 
176
  // Set the Mail Headers
177
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('New Guestbook Entry', 'gwolle-gb');
@@ -248,7 +248,7 @@ Original entry posted on %date%:
248
  "
249
  , 'gwolle-gb');
250
  }
251
- $mail_body = apply_filters( 'gwolle_gb_mail_author_on_admin_reply_body', $mail_body );
252
 
253
  // Set the Mail Headers
254
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('Admin Reply', 'gwolle-gb');
61
  "
62
  , 'gwolle-gb');
63
  }
64
+ $mail_body = apply_filters( 'gwolle_gb_mail_moderators_body', $mail_body, $entry );
65
 
66
  // Set the Mail Headers
67
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('New Guestbook Entry', 'gwolle-gb');
171
  "
172
  , 'gwolle-gb');
173
  }
174
+ $mail_body = apply_filters( 'gwolle_gb_mail_author_body', $mail_body, $entry );
175
 
176
  // Set the Mail Headers
177
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('New Guestbook Entry', 'gwolle-gb');
248
  "
249
  , 'gwolle-gb');
250
  }
251
+ $mail_body = apply_filters( 'gwolle_gb_mail_author_on_admin_reply_body', $mail_body, $entry );
252
 
253
  // Set the Mail Headers
254
  $subject = '[' . gwolle_gb_format_values_for_mail(get_bloginfo('name')) . '] ' . esc_html__('Admin Reply', 'gwolle-gb');
gwolle-gb.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Gwolle Guestbook
4
  Plugin URI: http://zenoweb.nl
5
  Description: Gwolle Guestbook is not just another guestbook for WordPress. The goal is to provide an easy and slim way to integrate a guestbook into your WordPress powered site. Don't use your 'comment' section the wrong way - install Gwolle Guestbook and have a real guestbook.
6
- Version: 2.6.0
7
  Author: Marcel Pol
8
  Author URI: http://zenoweb.nl
9
  License: GPLv2 or later
@@ -32,7 +32,7 @@ Domain Path: /lang/
32
 
33
 
34
  // Plugin Version
35
- define('GWOLLE_GB_VER', '2.6.0');
36
 
37
 
38
  /*
@@ -61,6 +61,7 @@ define('GWOLLE_GB_VER', '2.6.0');
61
  * - Consider adding a checkbox to honeypot.
62
  * - Emoji: Sinterklaas and Zwarte Piet.
63
  * - Someday, do something with the REST API. Someday.
 
64
  *
65
  */
66
 
3
  Plugin Name: Gwolle Guestbook
4
  Plugin URI: http://zenoweb.nl
5
  Description: Gwolle Guestbook is not just another guestbook for WordPress. The goal is to provide an easy and slim way to integrate a guestbook into your WordPress powered site. Don't use your 'comment' section the wrong way - install Gwolle Guestbook and have a real guestbook.
6
+ Version: 2.6.1
7
  Author: Marcel Pol
8
  Author URI: http://zenoweb.nl
9
  License: GPLv2 or later
32
 
33
 
34
  // Plugin Version
35
+ define('GWOLLE_GB_VER', '2.6.1');
36
 
37
 
38
  /*
61
  * - Consider adding a checkbox to honeypot.
62
  * - Emoji: Sinterklaas and Zwarte Piet.
63
  * - Someday, do something with the REST API. Someday.
64
+ * - Test and possibly add support for Gutenberg editor.
65
  *
66
  */
67
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: Gwolle, mpol
3
  Tags: guestbook, guest book, livre d'or, Gästebuch, review
4
  Requires at least: 3.7
5
  Tested up to: 4.9
6
- Stable tag: 2.6.0
7
  License: GPLv2 or later
8
 
9
  Gwolle Guestbook is the WordPress guestbook you've just been looking for. Beautiful and easy.
@@ -87,6 +87,7 @@ Current features include:
87
  * Permalink button in each entry for easy access (optional).
88
  * Email button to contact each author (optional).
89
  * Sitemap support for popular SEO/Sitemap plugins.
 
90
  * Auto Delete timer (optional).
91
 
92
  You can buy the Add-On at [Mojo Marketplace](http://www.mojomarketplace.com/item/gwolle-gb-add-on) for only $ 9.
@@ -189,8 +190,7 @@ The next lines are made up of the content.
189
 
190
  There are some gotchas:
191
 
192
- * Date needs to be a UNIX timestamp. For manually creating a timestamp, look at
193
- the [timestamp generator](http://www.timestampgenerator.com/). When using a formatted date, the plugin will try to read it correctly. If it fails it will use today's date.
194
  * Use commas for field separators. If you use Office software like Excel (which is hell) or LibreOffice Calc, set this correctly.
195
  * Use double quotes around each field. When no quotes are used the import process can break when having quotes or commas inside the content of the entry.
196
  * The file should be encoded as UTF-8 without BOM to correctly enter special characters.
@@ -198,7 +198,8 @@ the [timestamp generator](http://www.timestampgenerator.com/). When using a form
198
 
199
  With version 1.4.1 and older, the field datetime was called date.
200
 
201
- You could make a test-entry, export that, and look to see what the importer expects from the CSV. There is also an example CSV file included in the zipfile of the plugin under '/docs/import_example/'.
 
202
 
203
 
204
  == Frequently Asked Questions ==
@@ -226,9 +227,9 @@ Before that, in 0.9.7, all the 'checked' entries were visible.
226
  = I want to translate this plugin =
227
 
228
  Translations can be added very easily through [GlotPress](https://translate.wordpress.org/projects/wp-plugins/gwolle-gb).
229
- You can start translating strings there for your locale. They need to be validated though, so if there's no validator yet,
230
- and you want to apply for being validator (PTE), please post it on the support forum. I will make a request on make/polyglots to
231
- have you added as validator for this plugin/locale.
232
 
233
  = What about Spam? =
234
 
@@ -238,6 +239,7 @@ If you still have problems there are more options:
238
 
239
  * Honeypot feature: Hidden input field that only spambots would fill in.
240
  * Nonce: Will verify if you really loaded the page with the form first, before posting an entry. Spambots will just submit the form without having a Nonce.
 
241
  * Akismet: Third party spamfilter by Automattic. Works really well, but not everybody likes to use a third party service.
242
  * Stop Forum Spam: Third party spamfilter. Again, works really well, but not everybody likes to use a third party service.
243
  * Custom Anti-Spam question: Use a simple quiz question to test if you are human.
@@ -271,8 +273,8 @@ If you use the template function, you can use it like this:
271
 
272
  = With multiple guestbooks, how do I keep track? =
273
 
274
- There is no need to use id's that are incrementing. If you have a lot of guestbooks on lots of pages,
275
- you can just use the id of the post as the id of the guestbook. That way you won't have double id's.
276
  You can set the book_id automatically to the post_id with this shortcode:
277
 
278
  [gwolle_gb book_id="post_id"]
@@ -302,10 +304,11 @@ If it still doesn't work, request the maillog at your hosting provider, or ask i
302
 
303
  = I want to show the form and the list on different pages =
304
 
305
- There are different shortcodes that you can use. Instead of the '[gwolle_gb]' shortcode, you can use '[gwolle_gb_write]' for just the form,
306
- and '[gwolle_gb_read]' for the list of entries.
307
 
308
- There is also a widget that can display the latest entries in a widget area, that has many options. Alternatively you can use the shortcode '[gwolle_gb_widget]' to display the latest entries in widget layout. Parameters are:
 
309
 
310
  * book_id, int with an ID.
311
  * num_entries, int with the shown number of messages.
@@ -313,7 +316,8 @@ There is also a widget that can display the latest entries in a widget area, tha
313
 
314
  = I want to show the form immediately, without the button =
315
 
316
- The shortcodes '[gwolle_gb]' and '[gwolle_gb_write]' have a parameter for the button. You can use them as '[gwolle_gb button="false"]' or '[gwolle_gb_write button="true"]', to deviate from the default.
 
317
 
318
  = Moderation is enabled, but my entry is marked as checked =
319
 
@@ -321,8 +325,13 @@ If a user with capability of 'moderate_comments' posts an entry, it will be mark
321
 
322
  = Moderation is disabled, but some entries are still unchecked =
323
 
324
- There is validation of the length of words in the content and author name. If the words are too long and it looks
325
- abusive, it will be marked as unchecked. A moderator will still be needed to manually edit and check these entries.
 
 
 
 
 
326
 
327
  = When opening the RSS Feed, I get a Error 404 =
328
 
@@ -331,8 +340,8 @@ This will most likely add the rewrite rule for the RSS Feed.
331
 
332
  = I use a caching plugin, and my entries are not visible after posting =
333
 
334
- When you have moderation disabled, Gwolle Guestbook will try to refresh the cache. If it doesn't on your setup,
335
- please let me know which caching plugin you use, and support for it might be added.
336
 
337
  You can also refresh or delete your cache manually. Most caching plugins offer support for that.
338
 
@@ -376,7 +385,8 @@ Make sure you keep track of changes in the default templatefile though.
376
 
377
  = What hooks are available for customization? =
378
 
379
- There are many hooks available in this plugin. Documentation is included in the zip file in /docs/actions and /docs/filters. Examples are included. If you have a need for an additional hook, please request this in the support forum.
 
380
 
381
  = I want to change the word Guestbook into something else. =
382
 
@@ -406,6 +416,17 @@ But if you don't use standard comments, you can just as easily use the comment s
406
 
407
  == Changelog ==
408
 
 
 
 
 
 
 
 
 
 
 
 
409
  = 2.6.0 =
410
  * 2018-06-11
411
  * Add option to permanently remove IP address and hostname from entries.
3
  Tags: guestbook, guest book, livre d'or, Gästebuch, review
4
  Requires at least: 3.7
5
  Tested up to: 4.9
6
+ Stable tag: 2.6.1
7
  License: GPLv2 or later
8
 
9
  Gwolle Guestbook is the WordPress guestbook you've just been looking for. Beautiful and easy.
87
  * Permalink button in each entry for easy access (optional).
88
  * Email button to contact each author (optional).
89
  * Sitemap support for popular SEO/Sitemap plugins.
90
+ * Auto Anonymize timer (optional).
91
  * Auto Delete timer (optional).
92
 
93
  You can buy the Add-On at [Mojo Marketplace](http://www.mojomarketplace.com/item/gwolle-gb-add-on) for only $ 9.
190
 
191
  There are some gotchas:
192
 
193
+ * Date needs to be a UNIX timestamp. For manually creating a timestamp, look at the [timestamp generator](http://www.timestampgenerator.com/). When using a formatted date, the plugin will try to read it correctly. If it fails it will use today's date.
 
194
  * Use commas for field separators. If you use Office software like Excel (which is hell) or LibreOffice Calc, set this correctly.
195
  * Use double quotes around each field. When no quotes are used the import process can break when having quotes or commas inside the content of the entry.
196
  * The file should be encoded as UTF-8 without BOM to correctly enter special characters.
198
 
199
  With version 1.4.1 and older, the field datetime was called date.
200
 
201
+ You could make a test-entry, export that, and look to see what the importer expects from the CSV.
202
+ There is also an example CSV file included in the zipfile of the plugin under '/docs/import_example/'.
203
 
204
 
205
  == Frequently Asked Questions ==
227
  = I want to translate this plugin =
228
 
229
  Translations can be added very easily through [GlotPress](https://translate.wordpress.org/projects/wp-plugins/gwolle-gb).
230
+ You can start translating strings there for your locale.
231
+ They need to be validated though, so if there's no validator yet, and you want to apply for being validator (PTE), please post it on the support forum.
232
+ I will make a request on make/polyglots to have you added as validator for this plugin/locale.
233
 
234
  = What about Spam? =
235
 
239
 
240
  * Honeypot feature: Hidden input field that only spambots would fill in.
241
  * Nonce: Will verify if you really loaded the page with the form first, before posting an entry. Spambots will just submit the form without having a Nonce.
242
+ * Form Timeout: If the form was sent in too fast after loading the page, the entry will be marked as spam.
243
  * Akismet: Third party spamfilter by Automattic. Works really well, but not everybody likes to use a third party service.
244
  * Stop Forum Spam: Third party spamfilter. Again, works really well, but not everybody likes to use a third party service.
245
  * Custom Anti-Spam question: Use a simple quiz question to test if you are human.
273
 
274
  = With multiple guestbooks, how do I keep track? =
275
 
276
+ There is no need to use id's that are incrementing.
277
+ If you have a lot of guestbooks on lots of pages, you can just use the id of the post as the id of the guestbook. That way you won't have double id's.
278
  You can set the book_id automatically to the post_id with this shortcode:
279
 
280
  [gwolle_gb book_id="post_id"]
304
 
305
  = I want to show the form and the list on different pages =
306
 
307
+ There are different shortcodes that you can use.
308
+ Instead of the '[gwolle_gb]' shortcode, you can use '[gwolle_gb_write]' for just the form, and '[gwolle_gb_read]' for the list of entries.
309
 
310
+ There is also a widget that can display the latest entries in a widget area, that has many options.
311
+ Alternatively you can use the shortcode '[gwolle_gb_widget]' to display the latest entries in widget layout. Parameters are:
312
 
313
  * book_id, int with an ID.
314
  * num_entries, int with the shown number of messages.
316
 
317
  = I want to show the form immediately, without the button =
318
 
319
+ The shortcodes '[gwolle_gb]' and '[gwolle_gb_write]' have a parameter for the button.
320
+ You can use them as '[gwolle_gb button="false"]' or '[gwolle_gb_write button="true"]', to deviate from the default.
321
 
322
  = Moderation is enabled, but my entry is marked as checked =
323
 
325
 
326
  = Moderation is disabled, but some entries are still unchecked =
327
 
328
+ There is validation of the length of words in the content and author name.
329
+ If the words are too long and it looks abusive, it will be marked as unchecked. A moderator will still be needed to manually edit and check these entries.
330
+
331
+ = On the form I see text meant for screen-readers. =
332
+
333
+ Your theme is missing some necessary CSS for '.screen-reader-text'. Please contact the maker of your theme.
334
+ More information can be found in the [Handbook](https://make.wordpress.org/accessibility/handbook/markup/the-css-class-screen-reader-text/) about Accessibility.
335
 
336
  = When opening the RSS Feed, I get a Error 404 =
337
 
340
 
341
  = I use a caching plugin, and my entries are not visible after posting =
342
 
343
+ When you have moderation disabled, Gwolle Guestbook will try to refresh the cache.
344
+ If it doesn't on your setup, please let me know which caching plugin you use, and support for it might be added.
345
 
346
  You can also refresh or delete your cache manually. Most caching plugins offer support for that.
347
 
385
 
386
  = What hooks are available for customization? =
387
 
388
+ There are many hooks available in this plugin. Documentation is included in the zip file in /docs/actions and /docs/filters. Examples are included.
389
+ If you have a need for an additional hook, please request this in the support forum.
390
 
391
  = I want to change the word Guestbook into something else. =
392
 
416
 
417
  == Changelog ==
418
 
419
+ = 2.6.1 =
420
+ * 2018-07-09
421
+ * Add screen-reader-text to frontend metabox.
422
+ * Hide 'hide this form' button when form was visible on page load.
423
+ * Add a filter for button class 'gwolle_gb_button_class'.
424
+ * Add 'no_email' parameter to 'gwolle_gb_get_entries' function.
425
+ * Add second parameter $entry to filter for mail body notifications.
426
+ * Admin entries page, change label to ID column.
427
+ * Fix compatibility with Add-On version 1.0.0 till 1.1.2.
428
+ * Updates for Add-On 1.2.1.
429
+
430
  = 2.6.0 =
431
  * 2018-06-11
432
  * Add option to permanently remove IP address and hostname from entries.