{"id":363154,"date":"2026-10-10T20:04:19","date_gmt":"2026-10-10T20:04:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/stedica-surveys\/"},"modified":"2026-10-10T20:03:47","modified_gmt":"2026-10-10T20:03:47","slug":"stedica-surveys","status":"publish","type":"plugin","link":"https:\/\/am.wordpress.org\/plugins\/stedica-surveys\/","author":18317600,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.16.5","stable_tag":"5.16.5","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Stedica Surveys","header_author":"Stedica","header_description":"Drag-and-drop survey builder: 17 question types including photo upload, conditional logic, offline answer queueing, a results dashboard, and CSV and Excel export.","assets_banners_color":"120e22","last_updated":"2026-10-10 20:03:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/stedica.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":53,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"5.16.5":{"tag":"5.16.5","author":"stedica","date":"2026-10-10 20:03:47","revision":3738618}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3738617,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3738617,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3738617,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3738617,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"stedica\/survey":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"stedica\/survey","title":"Stedica Survey","category":"widgets","icon":"clipboard","description":"Embed a Stedica survey. The survey itself is rendered when the page loads, so edits to the survey appear everywhere it is embedded.","keywords":["survey","questionnaire","form","feedback"],"textdomain":"stedica-surveys","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":false}},"attributes":{"surveyId":{"type":"number","default":0}},"editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css"}},"tagged_versions":["5.16.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3738617,"resolution":"1","location":"assets","locale":"","width":1280,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3738617,"resolution":"2","location":"assets","locale":"","width":1280,"height":846},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3738617,"resolution":"3","location":"assets","locale":"","width":1280,"height":960},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3738617,"resolution":"4","location":"assets","locale":"","width":1280,"height":960},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3738617,"resolution":"5","location":"assets","locale":"","width":1280,"height":960},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3738617,"resolution":"6","location":"assets","locale":"","width":1280,"height":960}},"screenshots":{"1":"The drag-and-drop builder: question types on the left, the survey canvas in the middle, branching and logic rules on the right.","2":"The same survey as respondents see it, on desktop and on a phone, with the offline sync status and a progress bar.","3":"The results dashboard: filters, CSV and XLSX export, cross-tabs, and completion statistics.","4":"The Offline Sync Monitor, showing which devices still hold responses that have not reached the server.","5":"The Question Library: save a question once and reuse it across surveys.","6":"Drop-off analysis: how far respondents get, and the question they abandon."}},"plugin_section":[262246],"plugin_tags":[108,601,2323,16919,364],"plugin_category":[42,59],"plugin_contributors":[278380],"plugin_business_model":[],"class_list":["post-363154","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-feedback","plugin_tags-forms","plugin_tags-offline","plugin_tags-questionnaire","plugin_tags-survey","plugin_category-contact-forms","plugin_category-utilities-and-tools","plugin_contributors-stedica","plugin_committers-stedica"],"banners":{"banner":"https:\/\/ps.w.org\/stedica-surveys\/assets\/banner-772x250.png?rev=3738617","banner_2x":"https:\/\/ps.w.org\/stedica-surveys\/assets\/banner-1544x500.png?rev=3738617","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/stedica-surveys\/assets\/icon-128x128.png?rev=3738617","icon_2x":"https:\/\/ps.w.org\/stedica-surveys\/assets\/icon-256x256.png?rev=3738617","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-1.png?rev=3738617","caption":"The drag-and-drop builder: question types on the left, the survey canvas in the middle, branching and logic rules on the right."},{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-2.png?rev=3738617","caption":"The same survey as respondents see it, on desktop and on a phone, with the offline sync status and a progress bar."},{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-3.png?rev=3738617","caption":"The results dashboard: filters, CSV and XLSX export, cross-tabs, and completion statistics."},{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-4.png?rev=3738617","caption":"The Offline Sync Monitor, showing which devices still hold responses that have not reached the server."},{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-5.png?rev=3738617","caption":"The Question Library: save a question once and reuse it across surveys."},{"src":"https:\/\/ps.w.org\/stedica-surveys\/assets\/screenshot-6.png?rev=3738617","caption":"Drop-off analysis: how far respondents get, and the question they abandon."}],"raw_content":"<!--section=description-->\n<p>Stedica Surveys is a survey and questionnaire builder for WordPress. Build a\nsurvey by dragging questions into sections, publish it with a shortcode, and\nread the results in your own dashboard. Responses are stored in your\nown database.<\/p>\n\n<p>Everything listed below works in this plugin. Nothing is time-limited, capped,\nor switched off pending a purchase.<\/p>\n\n<h4>Building<\/h4>\n\n<ul>\n<li>Drag-and-drop builder \u2014 reorder sections and questions by dragging<\/li>\n<li>Unlimited surveys, unlimited questions per survey<\/li>\n<li><strong>17 question types<\/strong> \u2014 surveyor, open ended, closed ended, multiple choice,\nLikert scale, dichotomous (yes\/no), rating, number, dropdown, matrix,\nranking, image choice, demographic, calculated field, photo upload, date,\nsignature<\/li>\n<li>Conditional logic \u2014 show or hide questions based on earlier answers<\/li>\n<li><strong>Answer piping<\/strong> \u2014 put an earlier answer into a later question's wording:\n\"How was your visit to {answer:q1}?\"<\/li>\n<li><p><strong>Option randomisation<\/strong> \u2014 shuffle a question's answer options per respondent\nto cancel order bias, with \"Other\" and \"None of the above\" pinned in place<\/p><\/li>\n<li><p><strong>Starter templates<\/strong> \u2014 NPS, customer satisfaction, employee engagement,\nevent feedback, product feedback and a store\/field audit<\/p><\/li>\n<li>Question Library \u2014 save a question once, reuse it across surveys<\/li>\n<li>Survey versioning, with a Go-Live mode that locks schema changes<\/li>\n<\/ul>\n\n<h4>Keeping responses trustworthy<\/h4>\n\n<ul>\n<li><strong>Spam protection<\/strong> \u2014 a hidden decoy field, a submission-timing check and a\nper-connection rate limit. No CAPTCHA, nothing sent to any third party, and\nnothing for the respondent to do<\/li>\n<li><strong>One response per person<\/strong> \u2014 by WordPress account, by browser, or by network\naddress, with the limits of each stated where you choose it<\/li>\n<li><strong>Response cap<\/strong> \u2014 close the survey automatically once it reaches a set number<\/li>\n<li><strong>Anonymous responses<\/strong> \u2014 do not record which account submitted a response<\/li>\n<\/ul>\n\n<h4>Collecting<\/h4>\n\n<ul>\n<li>Shortcode <code>[stedica_survey id=\"123\"]<\/code>, a <strong>Gutenberg block<\/strong>, and an\nElementor widget<\/li>\n<li><strong>Offline capture, switchable per survey<\/strong> \u2014 a progressive web app queues\nanswers on the respondent's device with no connection and syncs them when the\nsignal returns. Turn it off per survey for anything only ever taken online<\/li>\n<li>Offline Sync Monitor showing what is queued and what has landed<\/li>\n<li>Progress bar, and save-and-resume for long surveys<\/li>\n<li>Photo upload for image evidence, with server-side validation<\/li>\n<\/ul>\n\n<h4>Notifying<\/h4>\n\n<ul>\n<li><strong>Email notification<\/strong> when a response is submitted, to any list of recipients<\/li>\n<li><strong>Confirmation email<\/strong> back to the respondent, when the response contains an\naddress<\/li>\n<li>Merge tags for the survey name, the respondent, any individual answer, or the\nwhole response<\/li>\n<li>Set defaults once for every survey, then override them per survey<\/li>\n<li>Optional Reply-To the respondent, so replying reaches the person<\/li>\n<li>Responses collected offline notify when they sync, not silently<\/li>\n<li><strong>Webhooks<\/strong> \u2014 POST each response to a URL you enter, so another system can\nreact to it. Automatic retry if the endpoint is down, and a Send test button\nso you can prove it works before going live<\/li>\n<\/ul>\n\n<h4>Reading<\/h4>\n\n<ul>\n<li>Results dashboard \u2014 response counts, completion rate, per-question breakdowns,\nsection metrics and a submission timeline<\/li>\n<li><strong>Charts<\/strong> \u2014 doughnut, bar, stacked bar and a response-over-time line, chosen\nautomatically to suit each question type. Every chart carries a matching data\ntable, so the figures are readable by screen readers and copyable<\/li>\n<li><strong>Net Promoter Score<\/strong> \u2014 promoters, passives and detractors, with the score\nand the base<\/li>\n<li><strong>Cross-tabulation<\/strong> \u2014 break one question down by another (satisfaction by\nregion), with row, column or total percentages<\/li>\n<li><strong>Individual response viewer<\/strong> \u2014 open one response and read it as a document,\nevery question in order, with the wording that was on screen when it was\nanswered<\/li>\n<li>Question drill-down<\/li>\n<li><strong>CSV and Excel (XLSX) export<\/strong> of every response<\/li>\n<li>REST API for external reporting tools<\/li>\n<li>Per-survey backup, restore, and clear-data<\/li>\n<\/ul>\n\n<h4>Running it safely<\/h4>\n\n<ul>\n<li>A Survey Editor role, so people can build surveys without full admin rights<\/li>\n<li>Admin audit log<\/li>\n<li>GDPR personal-data exporter and eraser, wired into WordPress's own privacy tools<\/li>\n<li>Plugin Health screen that checks tables, capabilities and scheduled jobs<\/li>\n<\/ul>\n\n<h4>Extensions, sold separately<\/h4>\n\n<p>These are separate products and are not required. This plugin is complete\nwithout them.<\/p>\n\n<ul>\n<li><strong>Stedica Surveys Premium<\/strong> \u2014 GPS capture, a geo intelligence map, territory\nand KPI dashboards, risk alerts, and Power BI integration<\/li>\n<li><strong>Data Sources add-on<\/strong> \u2014 question options populated from an imported CSV or\nXLSX file, with dependent filtering<\/li>\n<li><strong>AI Images add-on<\/strong> \u2014 product recognition, image recognition and image\ncomparison question types<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p><strong>Nothing is sent anywhere by default.<\/strong> Out of the box this plugin makes no\noutbound requests: surveys, responses and uploads stay in your own WordPress\ndatabase and on your own server.<\/p>\n\n<p>Two things can send data out, and both are off until you switch them on.<\/p>\n\n<h4>Webhooks (optional, off by default)<\/h4>\n\n<p>If you enter a webhook URL under Stedica Surveys \u2192 Notifications, each completed\nresponse is POSTed to <strong>that URL \u2014 one you choose<\/strong>, not a service we run. The\nrequest contains the survey id and name, the response id and submission time, and\nthe answers. It does not include IP or device hashes, WordPress user ids, or\ninternal version ids.<\/p>\n\n<p>Requests go out through WordPress's own <code>wp_safe_remote_post()<\/code>, which refuses\nprivate and reserved network addresses. If you set a signing secret, each request\ncarries an <code>X-Stedica-Signature<\/code> header \u2014 HMAC-SHA256 of the request body \u2014 so\nyour endpoint can verify it. The secret itself is never transmitted.<\/p>\n\n<p>Because the destination is yours, its terms and privacy policy are whatever\napplies to the endpoint you point it at.<\/p>\n\n<h4>Licensing and updates (Freemius)<\/h4>\n\n<p>The plugin bundles the Freemius SDK. It runs in <strong>anonymous mode<\/strong>: everything\ndescribed above works without connecting, and no account, opt-in or consent is\nrequired for any feature of this plugin. Nothing is sent until you choose to\nstart a trial or activate a licence.<\/p>\n\n<p>The SDK is used for three things, all optional:<\/p>\n\n<ul>\n<li>the 7-day free trial of Stedica Surveys Premium, a separate paid plugin;<\/li>\n<li>licensing for the optional paid add-ons, and delivering their updates;<\/li>\n<li>delivering updates to Premium itself, which is not distributed here.<\/li>\n<\/ul>\n\n<p>If you start a trial or activate a licence, the plugin then contacts\n    api.freemius.com periodically to validate it and to check for updates. What is\nsent is set out on screen before you agree: your WordPress name and email, the\nsite's URL, title and language, the WordPress, PHP and plugin versions it runs,\nand whether the plugin is still active. Your surveys and their responses are\nnever sent. The list of other plugins and themes installed on the site, which\nthe SDK can collect by default, is switched off in this plugin and never\ntransmitted.<\/p>\n\n<p>The Premium Version menu item opens <code>checkout.freemius.com<\/code> in a new tab. That\nis a link you click, not a background request.<\/p>\n\n<ul>\n<li>Terms: https:\/\/freemius.com\/terms\/<\/li>\n<li>Privacy: https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install through <strong>Plugins \u2192 Add New<\/strong>, or upload the ZIP via\n<strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate it.<\/li>\n<li>Open <strong>Stedica Surveys<\/strong> in the admin menu and create your first survey.<\/li>\n<li>Publish it with the <strong>Stedica Survey<\/strong> block, or the\n   [stedica_survey id=\"123\"] shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%20anywhere%3F\"><h3>Do I need an account anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin does not require registration, does not contact any external\nservice, and works entirely on your own site.<\/p><\/dd>\n<dt id=\"where%20are%20responses%20stored%3F\"><h3>Where are responses stored?<\/h3><\/dt>\n<dd><p>In your own WordPress database. Nothing is sent anywhere else.<\/p><\/dd>\n<dt id=\"does%20the%20spam%20protection%20use%20google%20recaptcha%3F\"><h3>Does the spam protection use Google reCAPTCHA?<\/h3><\/dt>\n<dd><p>No. It uses a hidden decoy field, a submission-timing check and a rate limit,\nall handled on your own server. Nothing is sent to any third party, so there is\nno external service to disclose and no consent banner to add.<\/p><\/dd>\n<dt id=\"what%20does%20%22one%20response%20per%20person%22%20actually%20record%3F\"><h3>What does \"one response per person\" actually record?<\/h3><\/dt>\n<dd><p>By WordPress account, it records the account id. By browser, a random value in\na first-party cookie that means nothing outside your site. By network address,\na salted one-way hash \u2014 <strong>the address itself is never stored<\/strong> and the hash\ncannot be turned back into one. Surveys set to anonymous record none of these.<\/p><\/dd>\n<dt id=\"can%20respondents%20answer%20without%20an%20internet%20connection%3F\"><h3>Can respondents answer without an internet connection?<\/h3><\/dt>\n<dd><p>Yes, and it is switchable per survey. Open the survey in the builder and look\nunder Survey Settings for \"Collect responses offline\". When it is on, answers\nare stored on the respondent's device and sync when the connection returns; the\nOffline Sync Monitor shows what is still queued. When it is off, nothing is\nstored on the device and no connectivity banner is shown.<\/p>\n\n<p>Surveys created before version 5.0.0 have it on.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20the%20paid%20extensions%3F\"><h3>Does the plugin work without the paid extensions?<\/h3><\/dt>\n<dd><p>Yes. Everything documented above is in this plugin and is not gated. The\nextensions add separate features; they do not unlock anything here.<\/p><\/dd>\n<dt id=\"do%20notification%20emails%20work%20with%20my%20smtp%20plugin%3F\"><h3>Do notification emails work with my SMTP plugin?<\/h3><\/dt>\n<dd><p>Yes. The plugin sends through <code>wp_mail()<\/code>, which any SMTP plugin overrides in\nthe normal way. If notifications are not arriving, that is almost always the\nsite's mail delivery rather than the survey: send failures are written to the\nplugin's error log, visible on Stedica Surveys \u2192 Plugin Health.<\/p><\/dd>\n<dt id=\"can%20i%20let%20someone%20build%20surveys%20without%20making%20them%20an%20administrator%3F\"><h3>Can I let someone build surveys without making them an administrator?<\/h3><\/dt>\n<dd><p>Yes \u2014 the plugin adds a Survey Editor role with the survey capabilities and\nnothing else.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.16.5<\/h4>\n\n<p>Sanitization fix from the plugin review.<\/p>\n\n<p>Structured answers saved by the autosave path were decoded from JSON and stored\nwithout being sanitized. The same answers arriving on final submit were already\ncleaned, so the two paths disagreed; both now run through the same sanitizer.\nPlain-text and malformed-JSON values on that path are sanitized too, as is a\nvalue that arrives as an array rather than a string.<\/p>","raw_excerpt":"Drag-and-drop survey builder with 17 question types, conditional logic, offline capture, email notifications, and CSV and Excel export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=363154"}],"author":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/stedica"}],"wp:attachment":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363154"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363154"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363154"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363154"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363154"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}