Description
Ravanix is a free, dynamic engine for building, managing, and running
psychological questionnaires in WordPress. Site admins can design any kind
of test (personality, clinical, screening, satisfaction surveys, etc.) with
custom dimensions (subscales), multiple question types (5- and 7-point
Likert, yes/no, custom multiple-choice), reverse scoring, and custom
interpretation ranges. Once a user completes a test, they see their
psychological profile along with a bar chart and an interpretive
description for each dimension, and the admin can view every participant’s
results in the admin panel.
Key features (free, in this plugin)
- A fully dynamic test builder: any number of tests, each with custom dimensions and questions
- Question types: 5- and 7-point Likert, yes/no, custom multiple-choice with any numeric value
- Reverse scoring and an importance weight for each question
- Definable interpretation ranges per dimension, with a custom description
- Branching / skip logic: show a question only if an earlier one was answered a specific way
- Informed consent: a site-wide or per-test notice the participant must expand and agree to before starting
- Save & Resume: answers always autosave in-browser; an optional button also lets a logged-in participant resume on another device
- Display a test via shortcode, or as its own custom-post-type page with an SEO-friendly slug, tags, and categories
- The WordPress classic editor for test, dimension, and consent-notice text
- Bulk paste-import of questions and answer options; pagination with a progress bar for long questionnaires
- Configurable participant fields (name, education, mobile, email, age, gender)
- A Material Design 3-inspired look on the front-end, with an adjustable brand color and automatic light/dark appearance
- Bar chart for results with Chart.js (bundled locally, no external CDN)
- An admin panel to review every participant’s results
- Anti-spam protection (honeypot field, minimum completion time, rate limiting)
- Displays correctly in RTL (e.g. Persian/Arabic) or LTR, automatically following the site’s language; fully translation-ready (i18n)
- WordPress Erase Personal Data integration, plus an opt-in “delete all data on uninstall” setting
Ravanix Pro
A separate, paid companion plugin, Ravanix Pro, is available from
psykey.ir and adds: T/Z scores and percentile rank from
norm tables, composite (higher-order) factor scores, validity scales,
forced-choice/ipsative questions, PDF and CSV/Excel export, full JSON
import/export, execution limits and access codes, WooCommerce integration,
and a “My Results” dashboard with a timeline chart. Ravanix Pro requires
this plugin to be installed and active; it is not hosted on WordPress.org.
See the “Upgrade to Pro” page in the plugin’s own menu for a full comparison.
Important note about standardized instruments (NEO, Millon, Beck, MMPI, etc.)
The items, official scoring keys, and norms of standardized, copyrighted
instruments (NEO-PI-R, MMPI, Millon CMI, the original Beck inventories,
etc.) belong to their publishers and are not included in this plugin. With
legitimate, licensed access to such an instrument, you can enter its items,
scoring, and interpretive keys yourself; the plugin only provides the
technical infrastructure.
Privacy
For a guest participant: a ravanix_guest_token cookie (random ID, 3-year
lifetime) and the submitting IP are stored with each result, solely for
anti-spam rate-limiting and letting that guest resume an in-progress test.
Nothing is sent to any external server. A logged-in participant using
“Save my progress” (if enabled for that test) also has in-progress answers
stored server-side until the test is completed or restarted.
Participant info fields (name, email, etc.) are only collected if the
admin turns them on. See the FAQ for uninstall data deletion and
WordPress’s Erase Personal Data tool for logged-in users.
Technical Note
Chart.js is bundled locally (no external CDN). The source translation
file is at languages/ravanix.pot; use Poedit or Loco Translate to build
.po/.mo files for your language from it.
Screenshots





Blocks
This plugin provides 1 block.
- Ravanix – Questionnaire
Installation
- Upload the plugin folder to wp-content/plugins, or from the WordPress dashboard, go to Plugins > Add New > Upload Plugin and upload the zip file.
- Activate the plugin.
- A short sample questionnaire is created automatically so you can see how it works; create your own test from the “Ravanix” menu.
FAQ
-
Does the plugin include items from standardized tests like the NEO or the Beck inventory?
-
No. These instruments are copyrighted. The plugin only provides the
technical infrastructure (scoring engine, display, and interpretation), and
you enter the items yourself from your own official, licensed source. -
Can a test be displayed on its own dedicated page with its own URL?
-
Yes. In the plugin settings you can enable “Display as a custom post type”
so that, in addition to the shortcode, each test also gets its own URL. -
Can I build a right-to-left (e.g. Persian or Arabic) questionnaire?
-
Yes. A test’s display direction (RTL or LTR) automatically follows the
site’s active language (WordPress’s own is_rtl()) — for example, a test
displays RTL on a site running in Persian or Arabic, and LTR on a site
running in English. This is site-wide, not a per-test choice. The plugin’s
own interface strings are in English and fully translation-ready (a .pot
file is included; community translations can be contributed via
translate.wordpress.org once the plugin is published). -
Can I require participants to agree to a consent notice before starting?
-
Yes. Set a default notice in Ravanix Settings, or a custom one per test (or
turn it off) in that test’s settings. Shown collapsed with an “I agree”
checkbox required before “Start Test”, verified server-side too. -
Can a long questionnaire be saved and finished later?
-
Yes. Answers always autosave in the browser. For long tests, you can also
turn on a visible “Save my progress” button per test, letting a logged-in
participant resume on a different device. -
Can a question be shown only if an earlier question was answered a certain way?
-
Yes, via each question’s “show this question only if” setting: pick an
earlier question and the required answer value. A hidden question isn’t
required and is excluded from its dimension’s score, like any unanswered one. -
What happens to my data if I delete the plugin?
-
By default, nothing is deleted; your questionnaires, results, and settings
stay in the database and come back if you reinstall Ravanix later. To
permanently delete everything instead, enable “Delete data on uninstall” in
the Danger zone section of Ravanix Settings before removing the plugin —
this cannot be undone, and never deletes Media Library images. -
Can a logged-in participant ask for their data to be removed?
-
Yes, via WordPress’s own Tools -> Erase Personal Data for any request tied
to a registered user’s email. Ravanix removes that user’s identifying
details (name, contact info, individual answers) while keeping the
resulting dimension scores as anonymous data points, so site-wide
statistics aren’t affected. This only covers logged-in users, since a guest
submission has no account/email for WordPress’s privacy tools to look up. -
What’s the difference between Ravanix and Ravanix Pro?
-
Ravanix (this plugin) is fully functional on its own. Ravanix Pro is a
separate, paid add-on for professional/research use (norm-based scoring,
composite factors, validity scales, PDF/CSV export, data portability,
access control, selling access to tests). See “Upgrade to Pro” in the
plugin’s menu for a full comparison.
Reviews
Contributors & Developers
“Ravanix – Smart Psychological Assessment” is open source software. The following people have contributed to this plugin.
Contributors“Ravanix – Smart Psychological Assessment” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Ravanix – Smart Psychological Assessment” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
Full history (every release before 1.3.0) is in changelog.txt.
1.3.10
- Fixed: the actual root cause of the Settings page tabs not working under an RTL/Persian admin language (1.3.9’s fix was a real, worthwhile improvement, but not the cause on the reporting site): WordPress derives a top-level menu page’s hook-name component from sanitize_title() of its translatable menu title, not from the literal slug passed to add_menu_page() — so when a Persian translation for “Ravanix” is active, the Settings page’s actual hook was something other than the hardcoded “ravanix_page_ravanix-settings” this plugin was comparing against, and its CSS/JS silently never loaded at all (confirmed via the reporting user’s own document.styleSheets/document.scripts console output). The hook is now captured from add_submenu_page()’s own return value instead of guessed
1.3.9
- Fixed: on the redesigned Settings page (1.3.8), the tabs could fail to switch at all under an RTL admin language (worked fine under LTR) — on the reporting site, this traced back to a host/security-plugin Content Security Policy blocking eval(), which broke the rich-text editor’s RTL-specific code and, because that failure wasn’t isolated, took tab-switching down with it too. Tab switching no longer depends on the rich-text editor succeeding at all; if it fails for any reason, the affected field just stays a plain text box instead of breaking the rest of the page
1.3.8
- New: redesigned Settings page — 4 tabs (General, Notifications, Roles & Permissions, Tools) with card-grouped sections, replacing the previous single long-scrolling page. All existing fields kept exactly as before (same names/values); only the layout changed
- Fixed: the “Copy” buttons next to each shortcode, previously plain text, are now actual buttons that copy the shortcode to the clipboard
- Accessibility: the new toggle switches have a visible focus indicator for keyboard navigation (WCAG 2.4.7), and the tab bar uses proper ARIA roles (role=”tablist”/”tab”, aria-selected)
1.3.7
- Fixed: the “Ravanix Manager” role (added in 1.3.6) had only the read capability besides its Ravanix-specific ones, which is indistinguishable from a mere site visitor/customer to plugins like WooCommerce that redirect anyone without edit_posts away from wp-admin to the frontend account page. Adding edit_posts (the same baseline capability WordPress’s own Contributor role has, for the same reason) fixes wp-admin access on any site where such a plugin is active, on both new and already-created “Ravanix Manager” roles
- Improved: notification messages (Settings Email notifications) now use the Classic Editor (rich text: bold, links, paragraphs) instead of a plain textarea, and are sent as formatted HTML email instead of plain text. Every placeholder value that can come from a participant’s own submitted text ({participant_name}) is escaped before being placed into the formatted message, since that message is now HTML
1.3.6
- New: role-based permissions. Six capabilities (manage tests, view results, delete results, export results, import/export test structure, manage settings) can each be granted to any WordPress role from Settings Roles & Permissions, so e.g. a counselor can manage tests and view results without full site administration. A ready-made “Ravanix Manager” role is available under Users Add New as a quick start. A site administrator always keeps every capability regardless of this table — enforced at the WordPress capability-resolution level (a ‘user_has_cap’ filter), not just in this plugin’s own code, so this can never turn into a lockout
- Improved: the “Participant Results” list only shows bulk-select checkboxes and the “Delete” action to a user who actually has the new delete-results capability
1.3.5
- New: two extension points in the email-notification system (added in 1.3.4) for Ravanix Pro to use — ‘ravanix_notification_settings’ (per-test recipient/subject/body/on-off overrides) and ‘ravanix_notification_placeholders’ (extra {tokens}, such as Pro’s opt-in {scores_summary}). No effect on Lite-only sites; Lite itself never adds a callback to either
- New: 8 new columns on the tests table (notify_admin_mode and related, notify_participant_mode and related) — inert placeholders unless Ravanix Pro 1.2.4+ is active; existing tests default to “use the site-wide setting”, identical behavior to before this update
1.3.4
- New: optional email notifications after a test is submitted — to the site admin (with a link to the result in wp-admin) and/or to the participant (a simple thank-you), configurable under Settings. Neither email ever includes scores or answers, since email isn’t encrypted and this data is treated as sensitive; the participant email is only sent if that submission actually collected an email address
1.3.3
- Improved: the gap between the “Add New…” form and its list/table (Dimensions, Questions, Interpretation Ranges tabs) is narrower (15px, was 30px), and there’s now a dedicated in-between layout (45%/55%) for tablet/small-laptop widths (783–1100px), between the desktop 40%/60% split and the single-column mobile view
1.3.2
- Improved: loading a test’s full structure (dimensions, questions, options, interpretations, norms, composites) now uses a fixed, small number of batched database queries instead of one query per dimension/question/composite, and the result is cached — noticeably faster on large questionnaires (200+ items), with no change to stored data or behavior
- Improved: activating/updating the plugin on a site with many existing questionnaires no longer risks a timeout re-syncing the custom-post-type mirror for every one of them in a single request; on larger sites this now finishes in the background instead
- Security: the anonymous-participant token (used to let a guest view their own result later) is now generated with PHP’s cryptographic random-number source rather than a general-purpose password generator; a token issued before this update keeps working unchanged
- Fixed: an admin-chosen interpretation-range color that was light could make the fixed white badge text (result page, admin result view, PDF/CSV reports) hard to read; it now gets the same automatic WCAG-AA contrast check already applied to the brand color, computed fresh each time rather than stored
- Fixed: the “Add New…” / list two-column layout shared by the Dimensions, Questions, and Interpretation Ranges tabs used a fixed-pixel form column next to a flex-grow list column, which became visibly unbalanced on wide screens (the form column stayed a small fixed width while the list column claimed all the rest); it’s now a CSS Grid with a fixed 40%/60% split that holds steady at any screen width
- Fixed: the Questions and Interpretation Ranges tables could overflow their column and the page instead of scrolling internally, the same issue already fixed on the Dimensions tab in a previous release; now consistent across all three tabs
- Fixed: two colors used on the “Upgrade to Pro” admin screen (the button, and the ✓/✕ icons in the comparison table) measured below WCAG AA contrast against their background
- Fixed: a database error while saving a test was shown to the admin with the raw SQL error text; it’s now a generic message, with the real error going to the debug log instead
1.3.1
- Fixed: several admin tabs (Dimensions, Questions, Interpretation Ranges, and Ravanix Pro’s Norms and Composite Factors) needed horizontal scrolling on their main table; the “Add New…” form column next to it is now 20% narrower and no longer expands to steal that space
1.3.0
- New: test intro now shows question count, estimated time, and total participants so far, each with its own icon (replaces the old plain “Number of questions” text)
- Improved: “Start Test” and “Submit answers” buttons are noticeably larger and more prominent
