WP Manifestindependent plugin directory
manifest / security / wp-testimonial-collector

Testimonial Collector

Custom WordPress plugin for collecting, approving, and displaying customer testimonials with a carousel display

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/yudtie/wp-testimonial-collector/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A WordPress plugin that allows users to submit testimonials via a frontend form. Admins can review, approve, and manage testimonials in the dashboard. Display approved testimonials using a shortcode with a beautiful slider/carousel layout.

Features

Frontend Features

  • 📝 Submission Form - Users can submit testimonials with name, email, rating (1-5 stars), and testimonial text
  • 🎠 Carousel Display - Display approved testimonials in an elegant slider/carousel
  • ⭐ Rating System - 5-star rating system with both visual stars and numbers
  • 🔒 Spam Protection - Built-in honeypot field and nonce verification
  • 📱 Responsive Design - Mobile-friendly on all devices

Admin Features

  • 👥 Testimonial Management - View all testimonials in an organized table
  • ✅ Approval System - Approve, reject, or delete testimonials
  • 🔍 Status Filters - Filter by All, Pending, Approved, or Rejected
  • ✏️ Edit Testimonials - Edit any testimonial details
  • 📧 Email Notifications - Get notified when new testimonials are submitted
  • ⚙️ Settings Page - Configure email notifications, display options, and carousel behavior

Installation

  1. Download the plugin files
  2. Upload the testimonial-collector folder to /wp-content/plugins/
  3. Activate the plugin through the 'Plugins' menu in WordPress
  4. Go to Testimonials > Settings to configure your preferences

Usage

Display Submission Form

Use the [testimonial_form] shortcode in any post or page where you want users to submit testimonials:

[testimonial_form]

Display Testimonials Carousel

Use the [testimonials] shortcode to display approved testimonials:

[testimonials]

With limit:

[testimonials limit="5"]

This will display only 5 testimonials.

Shortcode Reference

Shortcode Description Attributes
[testimonial_form] Display the submission form None
[testimonials] Display approved testimonials limit - Number of testimonials to show (default: all)

Admin Guide

Managing Testimonials

  1. Go to Testimonials in your WordPress admin menu
  2. View all submitted testimonials in a table format
  3. Filter by status using the tabs at the top:
    • All - Show all testimonials
    • Pending - Show testimonials awaiting review
    • Approved - Show published testimonials
    • Rejected - Show rejected testimonials

Actions Available

For each testimonial, you can:

  • Approve - Publish the testimonial (makes it visible on the frontend)
  • Reject - Mark as rejected (hidden from frontend)
  • Edit - Modify the testimonial details
  • Delete - Permanently remove the testimonial

Email Notifications

When a new testimonial is submitted, you'll receive an email notification with:

  • Submitter's name and email
  • Rating
  • Testimonial text
  • Quick action buttons to approve or edit

Configure email notifications:

  1. Go to Testimonials > Settings
  2. Check/uncheck "Enable Email Notifications"
  3. Set the admin email address
  4. Save changes

Settings

Email Notifications

  • Enable Email Notifications - Toggle email alerts on/off
  • Admin Email - Email address to receive notifications

Display Settings

  • Show Rating - Display or hide star ratings on the frontend

Carousel Settings

  • Autoplay - Enable automatic carousel scrolling
  • Autoplay Speed - How fast the carousel scrolls (milliseconds)
  • Items to Show - Number of testimonials visible at once (1-5)

Workflow Example

  1. User submits testimonial via [testimonial_form]
  2. Testimonial saved as "Pending" in the database
  3. Admin receives email notification
  4. Admin reviews and clicks "Approve" or "Reject"
  5. Approved testimonials appear in the [testimonials] carousel

Technical Details

Custom Post Type

The plugin uses a custom post type called testimonial:

  • Title - Submitter's name
  • Content - Testimonial text
  • Status - Pending (awaiting review), Publish (approved), Draft (rejected)

Post Meta

Each testimonial stores:

  • _testimonial_email - Submitter's email (not displayed publicly)
  • _testimonial_rating - Rating value (1-5)
  • _testimonial_date_submitted - Submission timestamp

Security Features

  • ✅ Nonce verification on all forms
  • ✅ Capability checks (only admins can manage)
  • ✅ Input sanitization and validation
  • ✅ Output escaping
  • ✅ Honeypot spam protection
  • ✅ AJAX security

Requirements

  • WordPress: 5.8 or higher
  • PHP: 7.4 or higher
  • jQuery: Included with WordPress

External Dependencies

The plugin uses the following external library for the carousel:

  • Slick Carousel (v1.8.1) - Loaded from CDN only when the [testimonials] shortcode is used

Browser Compatibility

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Mobile browsers (iOS Safari, Chrome Mobile)

Customization

Styling

You can override the plugin's CSS by adding custom styles to your theme:

/* Custom testimonial card styling */
.testimonial-content {
    background: #f9f9f9;
    border-left: 4px solid #your-color;
}

/* Custom submit button */
.testimonial-submit-btn {
    background-color: #your-color;
}

Carousel Settings

Adjust carousel behavior in Settings > Carousel Settings or by modifying the settings in the admin panel.

Troubleshooting

Testimonials not displaying

  • Make sure you've approved at least one testimonial
  • Check that the shortcode [testimonials] is correctly placed
  • Verify the plugin is activated

Form not submitting

  • Check browser console for JavaScript errors
  • Ensure jQuery is loaded (included by default in WordPress)
  • Verify AJAX URL is correct

Email notifications not working

  • Check Settings > Email Notifications is enabled
  • Verify the admin email address is correct
  • Check your spam folder
  • Test with an SMTP plugin if using shared hosting

Carousel not working

  • Ensure the Slick Carousel library is loading (check browser console)
  • Clear your browser cache
  • Check for JavaScript conflicts with other plugins

Support

For issues, questions, or feature requests:

  1. Check the documentation above
  2. Review existing issues on GitHub
  3. Create a new issue with detailed information

Changelog

Version 1.0.0

  • Initial release
  • Testimonial submission form
  • Admin approval workflow
  • Email notifications
  • Carousel display with Slick Carousel
  • Settings page
  • Responsive design

Credits

  • Developed by [Your Name]
  • Uses Slick Carousel by Ken Wheeler

License

GPL v2 or later


Made with ❤️ for WordPress