Title: Farahabadi Staff Attendance
Author: Hamed Farahabadi
Published: <strong>September 15, 2026</strong>
Last modified: September 15, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/farahabadi-staff-attendance.svg)

# Farahabadi Staff Attendance

 By [Hamed Farahabadi](https://profiles.wordpress.org/hamedfarahabady/)

[Download](https://downloads.wordpress.org/plugin/farahabadi-staff-attendance.zip)

 * [Details](https://wordpress.org/plugins/farahabadi-staff-attendance/#description)
 * [Reviews](https://wordpress.org/plugins/farahabadi-staff-attendance/#reviews)
 *  [Installation](https://wordpress.org/plugins/farahabadi-staff-attendance/#installation)
 * [Development](https://wordpress.org/plugins/farahabadi-staff-attendance/#developers)

 [Support](https://wordpress.org/support/plugin/farahabadi-staff-attendance/)

## 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

 1. Upload the plugin ZIP from Plugins > Add New > Upload Plugin, or place the plugin
    directory in `/wp-content/plugins/`.
 2. Activate Farahabadi Staff Attendance.
 3. Open Attendance > Settings.
 4. Enter the workplace latitude, longitude, and allowed radius.
 5. Add `[farastat_attendance]` to a published page.
 6. Add `[farastat_my_attendance_report]` to another published page for employee self-
    service reports.
 7. 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_attendance` capability, 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.

Contributors

 *   [ Hamed Farahabadi ](https://profiles.wordpress.org/hamedfarahabady/)

[Translate “Farahabadi Staff Attendance” into your language.](https://translate.wordpress.org/projects/wp-plugins/farahabadi-staff-attendance)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/farahabadi-staff-attendance/),
check out the [SVN repository](https://plugins.svn.wordpress.org/farahabadi-staff-attendance/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/farahabadi-staff-attendance/)
by [RSS](https://plugins.trac.wordpress.org/log/farahabadi-staff-attendance/?limit=100&mode=stop_on_copy&format=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_records`
   table.
 * 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 to` value.

#### 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]`.

## Meta

 *  Version **1.2.2**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [attendance](https://wordpress.org/plugins/tags/attendance/)[employee](https://wordpress.org/plugins/tags/employee/)
   [gps](https://wordpress.org/plugins/tags/gps/)[Jalali](https://wordpress.org/plugins/tags/jalali/)
   [persian](https://wordpress.org/plugins/tags/persian/)
 *  [Advanced View](https://wordpress.org/plugins/farahabadi-staff-attendance/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/farahabadi-staff-attendance/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/farahabadi-staff-attendance/reviews/)

## Contributors

 *   [ Hamed Farahabadi ](https://profiles.wordpress.org/hamedfarahabady/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/farahabadi-staff-attendance/)