Event Interaction Rating
Participation, liking and rating system for WordPress events.
by Mehmet Gökmen · github.com/mgokmen20/event-interaction-rating · 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/mgokmen20/event-interaction-rating/archive/refs/heads/main.zipEvent Interaction & Rating Plugin
A WordPress plugin that adds interactive voting, rating, and attendance tracking features to your posts and custom post types.
Features
-
Event Attendance Tracking
- "Attend" and "Not Attend" buttons with counters
- Configurable end date for attendance voting
- Real-time counter updates
-
Like/Dislike System
- Simple like/dislike buttons with counters
- Real-time updates
- One vote per user (based on IP + User Agent)
-
5-Star Rating System
- Interactive star rating interface
- Average rating display
- Total votes counter
- Real-time updates
-
Multi-Language Support
- Built-in support for English, Turkish, German, French, and Spanish
- Automatic language detection based on WordPress locale
- Browser language fallback
- Easy language switching
-
Admin Features
- Enable/disable features per post type
- Customize button labels
- Export voting data
- View statistics
- Custom CSS support
-
Security
- IP + User Agent based vote tracking
- Nonce verification
- Rate limiting
- XSS/CSRF protection
Installation
- Upload the
event-interaction-ratingfolder to the/wp-content/plugins/directory - Activate the plugin through the 'Plugins' menu in WordPress
- Go to Settings > Event Interaction to configure the plugin
Usage
For Users
The voting interface will automatically appear on enabled post types. Users can:
- Click "Attend" or "Not Attend" for events
- Like or dislike content
- Rate content using the 5-star system
Language Support
The plugin automatically detects and displays content in the user's preferred language:
- WordPress Locale: Primary language detection from WordPress settings
- Browser Language: Fallback to user's browser language
- Supported Languages: English (en), Turkish (tr), German (de), French (fr), Spanish (es)
- Default Language: English if no supported language is detected
Language Files Location: /wp-content/plugins/event-interaction-rating/languages/
Available Language Files:
event-interaction-rating-tr_TR.po/.mo- Turkishevent-interaction-rating-de_DE.po/.mo- Germanevent-interaction-rating-fr_FR.po/.mo- Frenchevent-interaction-rating-es_ES.po/.mo- Spanish
For Administrators
-
Configure Post Types
- Go to Settings > Event Interaction
- Select which post types should show the voting interface
-
Set Event End Dates
- When editing a post, find the "Event Settings" meta box
- Set the end date for attendance voting
-
Customize Appearance
- Use the Custom CSS field to style the voting interface
- Change button labels in the settings
-
Export Data
- Export voting data to CSV
- Choose between all data or specific vote types
Requirements
- WordPress 5.0 or higher
- PHP 7.2 or higher
- MySQL 5.6 or higher
Language Configuration
For Developers
To add new languages or modify existing translations:
- Create PO File: Use a tool like Poedit to create/edit
.pofiles - Generate MO File: Convert
.poto.mousingmsgfmtcommand - Update JavaScript: Add new language codes to
assets/js/public.js - Update CSS: Add new language styles to
assets/css/public.css
JavaScript Language Detection:
// Supported languages array
var supportedLanguages = ['en', 'tr', 'de', 'fr', 'es'];
// Language switching function
window.changeEIRLanguage = function(lang) {
if (supportedLanguages.indexOf(lang) !== -1) {
$('.eir-voting-container').removeClass('eir-lang-en eir-lang-tr eir-lang-de eir-lang-fr eir-lang-es');
$('.eir-voting-container').addClass('eir-lang-' + lang);
}
};
CSS Language Classes:
/* Language-specific visibility */
.eir-lang-tr [lang-text="tr"] { display: inline-block; }
.eir-lang-de [lang-text="de"] { display: inline-block; }
/* Add more languages as needed */
Troubleshooting
Language Not Changing:
- Check if
.mofiles exist in/languages/directory - Verify WordPress locale settings
- Clear browser cache and WordPress cache
- Check browser console for JavaScript errors
Multiple Languages Visible:
- Ensure CSS properly hides unused language elements
- Check for conflicting CSS rules
- Verify JavaScript language class assignment
Support
For support, feature requests, or bug reports, please visit our GitHub repository.
License
This plugin is licensed under the GPL v2 or later.