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

by Your Name · github.com/yudtie/wp-testimonial-collector · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/yudtie/wp-testimonial-collector/archive/refs/heads/main.zip

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