WP Manifestindependent plugin directory
manifest / integrations / ferestaa-wordpress-plugin

Feresta - Automatic Gateway Setup releases

by Ariya Sarrafzadeh · github.com/ariyasrfz/ferestaa-wordpress-plugin · website

0stars
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/ariyasrfz/ferestaa-wordpress-plugin/releases/download/v1.5.2/Ferestaa-v1.5.2.zip

Readme

Feresta - Automatic Gateway Setup

Author: Ariya Sarrafzadeh Version: 1.4.1

A WordPress plugin that automatically registers the Feresta SMS gateway (PersiaFava) inside popular Iranian SMS-sending plugins, so site owners don't have to hand-build an integration for each one.

Supported plugins

Plugin Integration mechanism
WP SMS (WSMS) Registers via the wpsms_gateway_registry filter (v7.x+ registry architecture). Also copies a gateway class file into wp-sms/includes/gateways/. Auto-selects Feresta as the active gateway on first activation (only if no gateway is already configured).
Digits Registers via the digits_sms_gateways filter directly - no file copy needed. Wired to the real send hook digits_send_sms_hook_{ID}, with a fallback path for older Digits versions via unitedover_send_sms.
Persian WooCommerce SMS Two paths depending on which architecture is installed:
New (v7.x+, PW\PWSMS\Gateways namespace): copies a real gateway class (Feresta.php) into persian-woocommerce-sms/src/Gateways/, refreshed on every load so stale copies never linger.
Old (procedural WoocommerceIR_Gateways_SMS class): no extension point exists in that architecture, so the plugin overrides the existing tjp gateway slot via a Reflection-based singleton swap and relabels it "Feresta (PersiaFava)" in the dropdown.
Gravity Forms - OTP Verification No custom integration needed. That plugin delegates SMS sending to wp_sms_send() / PWSMS()->send_sms(), so it picks up Feresta automatically once WP SMS or Persian WooCommerce SMS is configured. See the in-app guidance card on the dashboard.

Project structure

feresta-gateway.php              Main plugin file - dashboard menu, gateway hooks, activation/deactivation
includes/
  dashboard/
    dashboard.php                Main dashboard UI (tabbed: account settings / supported plugins)
    supported-plugins.php        Per-plugin install/setup status table + troubleshooting guide
  gateways/
    wp-sms/
      class-wpsms-gateway-feresta.php   Gateway class copied into the WP SMS plugin folder
      integrator.php                     Copy helper
    digits/
      app.js                             Admin-side helper script for the Digits settings screen
    wooCommerce-sms/
      Feresta.php                        Gateway class for the new PW\PWSMS\Gateways architecture
      ws-class-integrator.php            Copies Feresta.php into Persian WooCommerce SMS, always refreshed
      ws-bridge.php                      Reflection-based tjp-slot override for the old plugin architecture
                                          + admin notice diagnostics for whichever architecture is detected
  utils/
    api-handler.php              Shared Feresta API request helper
    helpers.php                  Plugin-detection / normalization utilities
assets/
  dashboard.css                  Dark, translucent dashboard theme (CSS custom properties / design tokens)
  dashboard.js                   Dashboard interactivity (edit/cancel account info, retry connection)

Known limitations

  • Auto-select on activation is currently only implemented for WP SMS. Digits and Persian WooCommerce SMS don't have a verified, safe-to-guess option key for "currently active gateway" - guessing wrong here risks silently doing nothing rather than crashing, but it's still not implemented until the real option key is confirmed from source.
  • The tjp-slot override (old Persian WooCommerce SMS architecture) permanently repurposes that gateway slot while Feresta is active. If a site was genuinely using the real tjp.ir service through that slot, it becomes unavailable.
  • Digits' credential-reading logic in feresta-gateway.php (feresta_digits_get_credentials() / related helpers) uses a "search every plausible option name" fallback approach, since Digits' exact settings-storage schema isn't publicly documented and varies between installs.

Development notes

  • All source comments are in English; user-facing admin UI strings are in Persian (the target audience is Iranian WordPress site owners).
  • Every gateway-copy operation is guarded against crashing the host site: files check for the existence of required parent classes/interfaces before declaring anything, and integrations fail silently (with an error_log entry and/or admin notice) rather than fataling.
  • Version numbers in feresta-gateway.php (Version: header + FERESTA_VERSION constant) should be bumped together on every release.

Repository version history

This repository was assembled from 12 release zips — one commit per version in chronological order, each tagged with its release number. Tagged trees are byte-identical to the original zips (line endings normalized to LF in git).

Tag Plugin header version Highlight
v0.3 3.5.8 Initial import (PIXEELL Studio baseline)
v0.4 0.09 Rebranded to Ariya Sarrafzadeh; PWS architecture diagnostics
v1.0.0 0.09 Persian WooCommerce SMS v7.x+ support
v1.1 1.0.1 WooCommerce SMS gateway auth switched to username/password
v1.1.1 1.1 Branding pass (menu icon, footer credit)
v1.2 1.2 Dashboard redesign (design tokens, no emoji)
v1.3 1.3 Filter-based Digits registration; WP SMS auto-select
v1.4 1.4 Supported-plugins table refinements
v1.4.1 1.4.1 Documentation pass, this README added
v1.5 1.5 JAY Login & Register integration
v1.5.1 1.5.1 JAY bridge survives provider whitelist sanitizer
v1.5.2 1.5.2 JAY integration removed

Full details: CHANGELOG.md.

Packaging a release zip

The installable zip must contain the plugin files inside a top-level Ferestaa/ folder. Build it straight from a tag (.gitignore, .gitattributes and CHANGELOG.md are marked export-ignore, so they stay out of the archive):

git archive --format=zip --prefix=Ferestaa/ -o Ferestaa-v1.5.2.zip v1.5.2

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
v1.5.2 Sep 7, 2026 Ferestaa-v1.5.2.zip 0
v1.5.1 Sep 7, 2026 Ferestaa-v1.5.1.zip 0
v1.5 Sep 7, 2026 Ferestaa-v1.5.zip 0
v1.4.1 Sep 7, 2026 Ferestaa-v1.4.1.zip 0
v1.4 Sep 7, 2026 Ferestaa-v1.4.zip 0
v1.3 Sep 7, 2026 Ferestaa-v1.3.zip 0
v1.2 Sep 7, 2026 Ferestaa-v1.2.zip 0
v1.1.1 Sep 7, 2026 Ferestaa-Ariya.1.1.1.zip 0
v1.1 Sep 7, 2026 Ferestaa-v1.1.zip 0
v1.0.0 Sep 7, 2026 Ferestaa-v1.0.0.zip 0
v0.4 Sep 7, 2026 Ferestaa-v0.4.zip 0
v0.3 Sep 7, 2026 Ferestaa-v0.3.zip 0