WordPress User Feedback - ZuFusion

WordPress User Feedback

Thank you for purchasing my plugin. If you have any questions that are beyond the scope of this documentation, please feel free to email via my user page contact form here. Thanks so much!

1. Introduction

WordPress User Feedback plugin is a great tool to increase the interaction between users and your site.

This plugin empowers users to voice out their opinions to help site admin to improve site content magnificently.

The admin can create / edit / delete / approve / reject feedback.

Also, easy-to-use feedback features that help users manage their feedback easily.

Additionally, statistic widget helps promote the site by highlighting total views, total votes, and total feedback

Main features:

  • Increase the interaction between users and your site by feedback and responses

  • Allow users to manage their feedback and share permission

  • Allow other users can edit the feedback

  • Unlimited feedback for users

  • Allow guest to post feedback to the site

  • Allow Administrators to manage feedback

  • Allow Administrators to manage statuses

  • Allow Administrators to manage severities

  • The Administrators can create / edit / delete / approve / reject feedback

  • Allow automatically approve the feedback created by role

  • View feedback detail and the response from admin

  • Like comment, share, vote feedback

  • Feedback view/download/vote counter

  • Widgets: Top Viewed Feedback, Most Discussed Feedback, Statistic, Mot Voted Feedback, Categories, Feedback, Feedback search

  • Many configurations in Admin Control Panel: Roles, Settings, Email, etc

  • Searching and Sorting Option

  • Email notification

  • Support BuddyPress group

  • Administrators can add feedback to users

  • Secure feedback under login for each user

  • Email editor to customize all emails

  • WordPress capabilities and roles integration to limit who can do what

  • Custom templates.

  • Template type: Plugin or Theme

  • Widget support

  • Responsive layout

  • Cross Browser (IE11+, Chrome, Safari, Firefox, Opera, Edge, CentBrowser)

  • Translation Ready

  • Documentation included

2. Installation

Download the zipped package from Codecanyon and extract to your desktop. Before processing the installation, you need to upgrade WordPress to WordPress 4.9 or later.

You can use FTP or WordPress to install

2.1 Using WordPress

  • Log into your WP dashboard

  • Go to Plugins > Add New > Upload

  • Click Choose File .

  • Navigate to find the "wordpress-user-feedback.zip" file in the extracted package.

  • Click "Install Now" button.

  • Click Active plugin to activate WordPress User Feedback

2.2 Using FTP

  • Log into your site via FTP

  • Find the "wordpress-user-feedback" folder in the extracted package. Then upload this folder to the wp-content/plugins folder in your WordPress directory on your server

  • Log Into WordPress and go to Plugins > Installed Plugins. Find WordPress User Feedback in the list

  • Active "WordPress User Feedback" plugins

3. Create category

Click on the Manage Feedback -> Categories menu item. You will see a welcome screen like this:

4. Create status

Click on the Manage Feedback -> Statuses menu item. You will see a welcome screen like this:

5. Create severity

Click on the Manage Feedback -> Severities menu item. You will see a welcome screen like this:

6. Manage feedback

After the users submitted the their feedback to your site, the feedback displayed all here to you review the their feedback.

Click on the Manage Feedback -> All Feedback menu item. You will see a welcome screen like this:

Here, Administrators can toggle Approved/Featured/Allow vote status for the feedback without going to edit the detail feedback.

6.1 Reject a feedback

If you want to reject a the feedback and send the email notification for reason reject to user, you edit the detail feedback then select reject in Privacy box.

6.2 Approve a feedback

After you reviewed a the feedback and you want to approved the feedback, you edit the detail feedback then select approved in Privacy box. An approved notification will be sent to user

6.3 Answer a feedback

If you want to answer a the feedback to user, you can view feedback detail or go to Manage Feedback -> All Feedback and click on Answer button

An answer box will be displayed here, now if you have any changes to answer message or status of feedback then an email notification will be sent to user

7. Users to manage their feedback

You need to create a My Feedback page to users can manage their feedback, Default the plugin will create this page automatically

In which the content of My Feedback page will includes the [wuf_my_feedback] shortcode to display manage feedback for user

With shortcode you can display anywhere. you can display them in a post/page like this

Finally, you need to set my feedback page for the plugin, Go to Manage Feedback -> Settings -> Feedback

7.1 All Feedback

All feedback of user will be displayed here, includes the both pending and approved feedback

7.2 Pending

All feedback which need to wait administrator review feedback

7.3 Approved

All feedback which approved by administrator will be displayed here

7.4 Create a feedback

You can allow users to create feedback as guest or require logged in, you can setting this in settings page. To create a new feedback you go to my feedback page at frontend.

Now click on Create Guest Feedback button or Click here to create new a feedback

You fill all required fields in feedback form then click on Submit button to submit the feedback to server, an email notification will be sent to administrators for reviewing the feedback .

7.5 Update a feedback

Go to My Feedback to find out any feedback you want to edit , click on Edit button.

Administrator can allow/disable the ability of Edit/Delete their own feedback in the settings page

8. Feedback Home Page

This page will list out all feedback created by all users, You need to create a Feedback page to display feedback, Default the plugin will create this page automatically

Now, you need to set Feedback page for the plugin, Go to Manage Feedback -> Settings -> Feedback

Set Feedback page such as

You can use [wuf_feedback] shortcode to display list feedback on any pages

9. Template type

The plugin allow you load template of plugin or your theme with template type is Plugin or Theme.

  • Plugin: Load template base on the plugin

  • Theme: Load template base on your theme

When you use Plugin it will load template base on the plugin, in this case, the layout structure will not be exactly the same as the layout of the theme

When you use Theme it will load template base on your theme to display but you need to set overwrite sidebar to replace with Feedback sidebar. of source, it only replace when you view list feedback or single feedback, ...

10. Roles

Go to Manage Feedback > Settings -> Roles.

The plugin use WordPress capabilities and roles integration to limit who can do what

11. Settings

Go to Manage Feedback > Settings. the plugin allows to configure feedback, roles, template, email, ...

12. The Plugin Template

12.1 Default Templates

The plugins allow use template for display layout, so you can custom template easily

You can see in the folder {root}/wp-content/plugins/wordpress-user-feedback/templates/

12.2 Custom Template

The plugin support overwrite, custom template from default template. You only create a wordpress-user-feedback in the root of activating theme. Copy the template of the plugin you need to custom to here and change what you want to

12.3 Hook template

The plugin use action hook to render template, here is some basic actions, you can view some template of the plugin to know more actions

12.3.1 Single template

<?php
get_header( 'feed' );
/**
* Hook: wuf_before_container.
*
*/
do_action( 'wuf_before_container' );
/**
* Hook: wuf_sidebar_left.
*
*/
do_action( 'wuf_sidebar_left' );
/**
* Hook: wuf_before_main_content.
*/
do_action( 'wuf_before_main_content' );
while ( have_posts() ) : the_post();
wuf_get_template( 'single/single' );
endwhile;
/**
* Hook: wuf_after_main_content.
*
*/
do_action( 'wuf_after_main_content' );
/**
* Hook: wuf_sidebar_right.
*
*/
do_action( 'wuf_sidebar_right' );
/**
* Hook: wuf_after_container.
*
*/
do_action( 'wuf_after_container' );
?>
<?php get_footer( 'feed' ); ?>

12.3.2 Archive template

<?php
get_header( 'feed' );
/**
* Hook: wuf_before_container.
*
*/
do_action( 'wuf_before_container' );
/**
* Hook: wuf_sidebar_left.
*
*/
do_action( 'wuf_sidebar_left' );
/**
* Hook: wuf_before_main_content.
*/
do_action( 'wuf_before_main_content' );
if ( have_posts() ) {
/**
* Hook: wuf_before_feedback_loop.
*/
do_action( 'wuf_before_feedback_loop' );
wuf_feedback_loop_start();
if ( wuf_get_loop_prop( 'total' ) ) {
while ( have_posts() ) {
the_post();
do_action( 'wuf_feedback_in_loop' );
wuf_get_template_part( 'single/content', 'feedback' );
}
}
wuf_feedback_loop_end();
/**
* Hook: wuf_after_feedback_loop.
*/
do_action( 'wuf_after_feedback_loop' );
} else {
/**
* Hook: wuf_no_feedback_found.
*/
do_action( 'wuf_no_feedback_found' );
}
/**
* Hook: wuf_after_main_content.
*
*/
do_action( 'wuf_after_main_content' );
/**
* Hook: wuf_sidebar_right.
*
*/
do_action( 'wuf_sidebar_right' );
/**
* Hook: wuf_after_container.
*
*/
do_action( 'wuf_after_container' );
?>
<?php get_footer( 'feed' ); ?>

13. Hooks: Actions and filters

Introduction: What are hooks?

Hooks in WordPress essentially allow you to change or add code without editing core files. They are used extensively throughout WordPress and WordPress User Feedback and are very useful for developers.

There are two types of hook: actions and filters.

  • Action Hooks allow you to insert custom code at various points (wherever the hook is run).

  • Filter Hooks allow you to manipulate and return a variable which it passes

Using hooks

If you use a hook to add or manipulate code, you can add your custom code in a variety of ways:

Using action hooks

To execute your own code, you hook in by using the action hook do_action('action_name');. Here is where to place your code:

add_action( 'action_name', 'your_function_name' );
function your_function_name() {
// Your code
}

Using filter hooks

Filter hooks are called throughout are code using apply_filter( 'filter_name', $variable );. To manipulate the passed variable, you can do something like the following:

add_filter( 'filter_name', 'your_function_name' );
function your_function_name( $variable ) {
// Your code
return $variable;
}

With filters, you must return a value.

14. Hooks: The plugin supported

The developer can use these hooks function to customize display, fields, build query, ....

Actions:

  • do_action( 'wuf_before_container' )

  • do_action( 'wuf_sidebar_left' )

  • do_action( 'wuf_before_main_content' )

  • do_action( 'wuf_before_feedback_loop' )

  • do_action( 'wuf_feedback_in_loop' )

  • do_action( 'wuf_after_feedback_loop' )

  • do_action( 'wuf_no_feedback_found' )

  • do_action( 'wuf_after_main_content' )

  • do_action( 'wuf_sidebar_right' )

  • do_action( 'wuf_after_container' )

  • do_action('wuf_save_settings');

  • do_action( 'wuf_query', $q, $this )

  • do_action( "wuf_feedback_shortcode_before_{$this->type}_wrapper", $this->attributes );

  • do_action( "wuf_feedback_shortcode_before_{$this->type}_loop", $this->attributes );

  • do_action( 'wuf_feedback_before_loop' );

  • do_action( 'wuf_feedback_after_loop' );

  • do_action( "wuf_feedback_shortcode_after_{$this->type}_loop", $this->attributes );

  • do_action( "wuf_feedback_shortcode_{$this->type}_loop_no_results", $this->attributes );

  • do_action( "wuf_feedback_shortcode_after_{$this->type}_wrapper", $this->attributes );

  • do_action( 'wuf_archive_main_header' );

  • do_action( 'wuf_archive_description' );

  • do_action( 'wuf_feedback_navigation' );

  • do_action( 'wuf_feedback_content' );

  • do_action( 'wuf_feedback_home_start' );

  • do_action( 'wuf_feedback_home_end' );

Filters:

  • apply_filters( 'wuf_default_options', $defaults )

  • apply_filters('wuf_enable_theme_support', $is_template_plugin)

  • apply_filters( 'wuf_get_template_part', $template, $slug, $name )

  • apply_filters( 'wuf_template_path', 'wordpress-user-feedback/' )

  • apply_filters( 'wuf_get_template', $file, $template )

  • apply_filters( 'wuf_visited_url', $url )

  • apply_filters( 'wuf_message_notice', $messagewrapstart . $message . $messagewrapend, $action, $message, $messagewrapstart, $messagewrapend )

  • apply_filters( 'wuf_main_class', $class, $sidebar )

  • apply_filters( 'wuf_sidebar_class', $class )

  • apply_filters( 'wuf_sidebar_main', $wuf_settings->get_input_value( 'sidebar', 'sidebar' ) )

  • apply_filters( 'wuf_sidebar_single', $wuf_settings->get_input_value( 'sidebar_single', 'sidebar' ) )

  • apply_filters( 'wuf_sidebar_value', $sidebar, $sidebar_main, $sidebar_single )

  • apply_filters( 'wuf_page_title', $page_title )

  • apply_filters( 'wuf_is_feedback', wuf_is_feedback_post_type() || wuf_is_feedback_taxonomy() || wuf_is_single_feedback() || wuf_is_author_feedback())

  • apply_filters( 'wuf_is_search', isset($_GET['wuf_search']) )

  • apply_filters( 'wuf_get_' . $page . '_page_id', $page_id )

  • apply_filters( 'wuf_feedback_loop_start', ob_get_clean() )

  • apply_filters( 'wuf_feedback_loop_end', ob_get_clean() )

  • apply_filters( 'post_class', $post_classes, $class, $feedback->get_id() )

  • apply_filters( 'wuf_feedback_post_class', $classes, $feedback )

  • apply_filters( 'wuf_loop_feedback_rows', $rows )

  • apply_filters( 'wuf_loop_feedback_columns', $columns )

  • apply_filters( 'wuf_get_' . $page . '_page_permalink', $permalink )

  • apply_filters( 'wuf_get_endpoint_url', $url, $endpoint, $value, $permalink )

  • apply_filters( 'wuf_sortby_options', $sor_options )

  • apply_filters( 'wuf_range_date_options', $range_date_options )

  • apply_filters( 'wuf_reject_feed_message', $mail_body, $feed['ID'] )

  • apply_filters( 'wuf_approved_feed_message', $mail_body, $feed['ID'] )

  • apply_filters( 'wuf_answer_feed_message', $mail_body, $feed['ID'] )

  • apply_filters( 'wuf_admin_new_feed_message', $mail_body, $feed['ID'] )

  • apply_filters( 'wuf_admin_update_feed_message', $mail_body, $feed['ID'] )

  • apply_filters( 'wuf_get_query_vars', $this->query_vars )

  • apply_filters( 'wuf_default_feedback_orderby', $wuf_settings->get_input_value( 'default_feedback_sortby', 'latest' ) )

  • apply_filters( 'wuf_get_catalog_ordering_args', $args, $orderby, $order )

  • apply_filters( 'wuf_feedback_query_meta_query', $meta_query, $this )

  • apply_filters( 'wuf_feedback_query_tax_query', $tax_query, $this )

  • apply_filters( 'wuf_feedback_query_comment_tax_query', $tax_query, $this )

  • apply_filters( 'wuf_feedback_query_comment_tax_query', $tax_query, $this )

  • apply_filters( 'wuf_default_range_date', $wuf_settings->get_input_value( 'default_range_date', 'all' ) )

  • apply_filters( 'wuf_feedback_query_date_query', $date_query, $this )

  • apply_filters( 'wuf_shortcode_feedback_query', $query_args, $this->attributes, $this->type )

  • apply_filters( 'wuf_feedback_query_max_rand_cache_count', 5 )

  • apply_filters( 'wuf_feedback_filters', $output )

  • apply_filters( 'wuf_load_font_awesome', $wuf_settings->get_input_value( 'load_fontawesome', 'yes' ), $wuf, $wuf_settings )

  • apply_filters( 'wuf_load_grid', $wuf_settings->get_input_value( 'load_bootstrap_grid', 'yes' ), $wuf, $wuf_settings )

  • apply_filters( 'wuf_delete_redirect', wuf_get_page_permalink( 'my-feedback' ) )

  • apply_filters( 'wuf_show_page_title', true )

  • apply_filters( 'wuf_table_rows_per_page', 15 )

15. Credits & resources

  1. jQuery

  2. jQuery UI

  3. Select 2