WordPress.org

Plugin Directory

Gwolle-GB

Gwolle-GB is the WordPress guestbook you've just been looking for. Beautiful and easy.

Installation

  • Install the plugin through the admin page "Plugins".
  • Alternatively, unpack and upload the contents of the zipfile to your '/wp-content/plugins/' directory.
  • Activate the plugin through the 'Plugins' menu in WordPress.
  • Place '[gwolle_gb]' in a page. That's it.
  • You may disable comments in this post or page, because it may look confusing when there's the possibility to write a guestbook entry.

As an alternative for the shortcode, you can use the function show_gwolle_gb(); to show the guestbook in your templates. It couldn't be easier.

Updating from an old version

With version 1.0 there have been some changes:

  • Gwolle-GB uses the Shortcode API now. Make sure your Guestbook page uses [gwolle_gb] instead of the old one.
  • The entries that are visible to visitors have changed. Make sure to check if you have everything visible that you want and nothing more.
  • CSS has changed somewhat. If you have custom CSS, you want to check if it still applies.

If you have a feature request please use the forum on WordPress.org.

Licence

The plugin itself is released under the GNU General Public License; a copy of this licence can be found at the licence homepage or in the gwolle-gb.php file at the top.

For the licences regarding the use of reCAPTCHA you may ask the authors.

Coming Soon

These features are planned. There is no particular timeframe or order for when it will be added. If you do have a feature request, please post it on the support forum.

  • More translations (send them in).
  • Frontend: Add option to show only one entry with $_GET entry_id (use no-follow links).
  • Frontend: Add pagination link for all entries (optional).
  • Frontend: Make it possible for an admin to reply to an entry (extra db field).
  • Widget: Add option to not show admin entries.
  • Widget: Add option to select number of words.
  • Settings: Have button disabled with certain options, untill checkbox is clicked.
  • Settings: Save all tabs when saving.
  • Admin pages: Make them more Responsive.
  • SEO: Add title and desc of first entry to SEO meta in html (probably with javascript).
  • Posting: Trigger most cache plugins to update their cache.

API, add an entry

It is not hard to add an entry in PHP code.

<?php
    $entry = new gwolle_gb_entry();

    // Set the data in the instance, returns true
    $set_data = $entry->set_data( $args );

    // Save entry, returns the id of the entry
    $save = $entry->save();
?>

The Array $args can have the following key/values:

  • id, int with the id, leave empty for a new entry.
  • author_name, string with the name of the autor.
  • author_id, id with the WordPress user ID of the author.
  • author_email, string with the email address of the author.
  • author_origin, string with the city of origin of the author.
  • author_website, string with the website of the author.
  • author_ip, string with the ipaddress of the author.
  • author_host, string with the hostname of that ip.
  • content, string with content of the message.
  • datetime, timestamp of the entry.
  • ischecked, bool if it is checked by a moderator.
  • checkedby, int with the WordPress ID of that moderator.
  • istrash, bool if it is in trash or not.
  • isspam, bool if it is spam or not.

Filter an entry on the frontend

On the frontend you can filter each entry. You can use a function like:

<?php
function your_custom_function($entry) {
    // $entry is a string
    $entry = $entry . " Hi There. ";
    return $entry;
}
add_filter( 'gwolle_gb_entry_read', 'your_custom_function');
?>

Filter all the entries on the frontend

You can also filter the complete list of entries.

<?php
function your_custom_function($entries) {
    // $entries is a string
    $entries = $entries . " Hello my friend. ";
    return $entries;
}
add_filter( 'gwolle_gb_entries_read', 'your_custom_function');
?>

Filter the form

The form can be filtered as well:

<?php
function your_custom_function($form) {
    // $form is a string
    $form = $form . " Please fill this in. ";
    return $form;
}
add_filter( 'gwolle_gb_write', 'your_custom_function');
?>

Filter an entry before saving

When saving an entry you can filter it like this.

<?php
function your_custom_function($entry) {
    // $entry is an array.
    // Example where every entry that gets saved gets the current time
    $entry['datetime'] = current_time( 'timestamp' );
    return $entry;
}
add_filter( 'gwolle_gb_entry_save', 'your_custom_function');
?>

Format for importing through CSV-file

The importer expects a certain format of the CSV-file. If you need to import from a custom solution, your CSV needs to conform. The header needs to look like this:

<?php
array(
    'id',
    'author_name',
    'author_email',
    'author_origin',
    'author_website',
    'author_ip',
    'author_host',
    'content',
    'datetime',
    'isspam',
    'ischecked',
    'istrash'
)
?>

The next lines are made up of the content. Date needs to be a UNIX timestamp. For manually creating a timestamp, look at the timestamp generator. With version 1.4.1 and older, the field datetime was called date. You could make a test-entry, export that, and look to see what the importer expects from the CSV. Make sure you use UNIX line-endings. Any decent text-editor can transform a textdocument to UNIX line-endings.

Requires: 3.4 or higher
Compatible up to: 4.3
Last Updated: 2015-7-29
Active Installs: 10,000+

Ratings

4.9 out of 5 stars

Support

22 of 25 support threads in the last two months have been resolved.

Got something to say? Need help?

Compatibility

+
=
Not enough data

0 people say it works.
0 people say it's broken.

0,1,0
60,5,3
100,1,1 100,1,1
100,1,1 25,4,1
100,2,2
80,5,4
100,1,1
50,4,2
67,3,2
100,2,2
0,1,0
100,1,1
100,1,1
50,2,1
100,1,1
83,6,5
100,2,2
100,2,2
100,1,1
100,1,1
50,2,1
100,1,1 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,3,3 100,1,1
100,2,2 100,1,1 100,1,1 100,2,2 100,3,3 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1
100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,3,3 100,1,1 100,1,1 100,1,1