Description
Farahabadi Staff Attendance adds a front-end attendance form for logged-in WordPress users and an administration area for attendance records.
Features include:
- Entry and exit registration from a shortcode.
- A secure self-service attendance report for each logged-in user.
- Date-range totals for both employee and administrator reports.
- Browser geolocation and configurable workplace radius validation.
- Jalali date pickers for logs and report filters.
- Manual entry and exit records for administrators.
- Daily work-time summaries with multiple entry and exit pairs.
- CSV export with UTF-8 Persian text support.
- Optional storage of coordinates, IP address, device type, and browser information; these storage options are disabled by default.
- WordPress personal data export integration.
- No remote API calls, telemetry, advertisements, or external asset loading.
Use the [farastat_attendance] shortcode on a published page for attendance registration. Use [farastat_my_attendance_report] on another published page to show each logged-in user only their own records, daily work time, and selected-range total.
Browser geolocation normally requires HTTPS or localhost. The plugin checks the submitted coordinates against the workplace coordinates stored in WordPress settings.
Privacy
The plugin always stores the WordPress user ID, event type, and event time for each attendance record.
Depending on administrator settings, it can also store:
- Latitude and longitude.
- IP address.
- Device type.
- Browser user-agent string.
All records are stored in the site’s own WordPress database. The plugin does not transmit attendance data to an external service. Suggested privacy-policy text is added to WordPress under Settings > Privacy. Site administrators are responsible for informing users and applying any local employment, privacy, and retention requirements.
Source code
The deployed plugin contains its readable PHP, JavaScript, and CSS source. The Jalali date picker is implemented locally without a remote service or bundled third-party JavaScript library.
Installation
- Upload the plugin ZIP from Plugins > Add New > Upload Plugin, or place the plugin directory in
/wp-content/plugins/. - Activate Farahabadi Staff Attendance.
- Open Attendance > Settings.
- Enter the workplace latitude, longitude, and allowed radius.
- Add
[farastat_attendance]to a published page. - Add
[farastat_my_attendance_report]to another published page for employee self-service reports. - Ensure the site uses HTTPS so browsers can provide geolocation.
Existing records from private versions 1.0.x are copied into the new prefixed database table, and the old location settings are migrated. The legacy table is retained as a non-destructive backup.
FAQ
-
Does the plugin send location data to another server?
-
No. The browser sends the position only to the site’s own WordPress AJAX endpoint. The plugin does not call a mapping or analytics service.
-
Why does the browser refuse to provide a location?
-
Geolocation normally requires HTTPS, browser permission, and an available GPS or network location provider.
-
Who can use the attendance form?
-
Any logged-in WordPress user who can view the page containing the shortcode. Administration pages require the
manage_farastat_attendancecapability, which is added to administrators on activation. -
Is browser geolocation tamper-proof?
-
No. The validation uses coordinates submitted by the user’s browser. It is useful as a workplace-radius check, but it should not be treated as fraud-proof identity or location verification.
-
Can an administrator correct a forgotten record?
-
Yes. Open Attendance > Logs and Manual Entry. The plugin validates the daily entry and exit sequence before saving a manual record.
-
Does uninstalling remove records?
-
Not by default. Enable “Delete all data on uninstall” in the plugin settings before uninstalling if the table and settings should be permanently deleted.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Farahabadi Staff Attendance” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Farahabadi Staff Attendance” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.2
- Added the Jalali calendar picker to the front-end employee report date fields.
- Removed report form font shorthand so typography is controlled by the active theme.
- Normalized inherited letter spacing inside the Persian report interface.
1.2.1
- Restored migration support for records stored in the intermediate
pamgr_attendance_recordstable. - Forced the database migration to run after updating from 1.1.x or 1.2.0.
- Prevented data loss when old and new tables contain overlapping primary-key IDs.
- Made migration idempotent by skipping records already present with the same user, event type, and timestamp.
1.2.0
- Added
[farastat_my_attendance_report]so logged-in users can view only their own attendance records. - Added Jalali date filters, daily entry and exit times, daily work duration, and a selected-range total to the employee report.
- Added total work duration and report statistics to the administrator report dashboard.
- Corrected internal PHP, JavaScript, and CSS filenames to match the FARASTAT bootstrap references.
- Corrected the WordPress
Tested up tovalue.
1.1.1
- Renamed the plugin to Farahabadi Staff Attendance for a distinctive WordPress.org directory identity.
- Updated the plugin text domain and directory slug references to
farahabadi-staff-attendance. - Corrected the WordPress.org contributor username.
1.1.0
- Prepared the plugin for WordPress.org directory submission.
- Added unique prefixes, plugin capabilities, nonces, validation, sanitization, and late escaping.
- Moved inline scripts and styles into enqueued local files.
- Replaced the deprecated jQuery date-picker dependency with a readable, dependency-free Jalali picker.
- Added privacy-policy text and personal data export support.
- Added configurable storage of coordinates and technical metadata, disabled by default for new installations.
- Changed destructive record deletion to a nonce-protected POST action.
- Added pagination to the raw logs screen.
- Added formula-injection protection to CSV exports.
- Removed automatic modification of the Subscriber role.
- Removed external map links and all external runtime requests.
- Migrated records and settings from private 1.0.x releases into uniquely prefixed storage.
- Removed the generic legacy
[attendance]shortcode to prevent collisions; use[farastat_attendance].