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
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.zipA 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
- Download the plugin files
- Upload the
testimonial-collectorfolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu in WordPress
- 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
- Go to Testimonials in your WordPress admin menu
- View all submitted testimonials in a table format
- 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:
- Go to Testimonials > Settings
- Check/uncheck "Enable Email Notifications"
- Set the admin email address
- 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
- User submits testimonial via
[testimonial_form] - Testimonial saved as "Pending" in the database
- Admin receives email notification
- Admin reviews and clicks "Approve" or "Reject"
- 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:
- Check the documentation above
- Review existing issues on GitHub
- 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