{"id":384860,"date":"2026-10-16T10:17:22","date_gmt":"2026-10-16T10:17:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mrn-forms\/"},"modified":"2026-10-16T10:17:06","modified_gmt":"2026-10-16T10:17:06","slug":"mrn-forms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mrn-forms\/","author":23568833,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.3","stable_tag":"1.4.3","tested":"7.1.3","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"MRN Forms","header_author":"Mehran Marandi","header_description":"Lightweight bilingual form builder with drag and drop, conditional logic, entries, and email notifications.","assets_banners_color":"fefefc","last_updated":"2026-10-16 10:17:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mrnwp.ir\/mrnforms","header_author_uri":"https:\/\/mehranmarandi.ir","rating":0,"author_block_rating":0,"active_installs":0,"downloads":78,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.3":{"tag":"1.4.3","author":"mrnwp","date":"2026-10-16 10:17:06","revision":3750144}},"upgrade_notice":{"1.4.0":"<p>Attribution and analytics events are now off by default. Enable the features you need under Forms &gt; Settings after configuring privacy notices and consent.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3750144,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3750144,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3750144,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3750144,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"mrn\/form":{"name":"mrn\/form","title":"Mrn Form"}},"tagged_versions":["1.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3750144,"resolution":"1","location":"assets","locale":"","width":1420,"height":1624},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3750144,"resolution":"2","location":"assets","locale":"","width":1420,"height":869},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3750144,"resolution":"3","location":"assets","locale":"","width":1420,"height":1542}},"screenshots":{"1":"Visual form builder with live preview and configurable fields.","2":"Entry inbox with traffic source, status, and export controls.","3":"Email settings and optional attribution and analytics controls."}},"plugin_section":[],"plugin_tags":[130308,358,1203,2253,5811],"plugin_category":[],"plugin_contributors":[287060],"plugin_business_model":[],"class_list":["post-384860","plugin","type-plugin","status-publish","hentry","plugin_tags-conditional-logic","plugin_tags-contact-form","plugin_tags-email-notifications","plugin_tags-form-builder","plugin_tags-rtl","plugin_contributors-mrnwp","plugin_committers-mrnwp"],"banners":{"banner":"https:\/\/ps.w.org\/mrn-forms\/assets\/banner-772x250.png?rev=3750144","banner_2x":"https:\/\/ps.w.org\/mrn-forms\/assets\/banner-1544x500.png?rev=3750144","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mrn-forms\/assets\/icon-128x128.png?rev=3750144","icon_2x":"https:\/\/ps.w.org\/mrn-forms\/assets\/icon-256x256.png?rev=3750144","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mrn-forms\/assets\/screenshot-1.png?rev=3750144","caption":"Visual form builder with live preview and configurable fields."},{"src":"https:\/\/ps.w.org\/mrn-forms\/assets\/screenshot-2.png?rev=3750144","caption":"Entry inbox with traffic source, status, and export controls."},{"src":"https:\/\/ps.w.org\/mrn-forms\/assets\/screenshot-3.png?rev=3750144","caption":"Email settings and optional attribution and analytics controls."}],"raw_content":"<!--section=description-->\n<p>MRN Forms lets you build and style WordPress forms without a page builder. It includes a visual editor, an entry inbox, configurable email notifications, and Persian\/English interfaces with automatic RTL\/LTR layouts.<\/p>\n\n<p><a href=\"https:\/\/mrnwp.ir\/mrnforms\">Product website<\/a> | <a href=\"https:\/\/mrnwp.ir\">MRNWP<\/a> | <a href=\"https:\/\/github.com\/mehran-mrn\/mrn-wp-form\">Source and issue tracker<\/a><\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Drag-and-drop form builder with live preview and fourteen field types.<\/li>\n<li>Conditional visibility and fields required when another field is empty.<\/li>\n<li>Client and server validation, honeypot protection, form nonces, and rate limits.<\/li>\n<li>Configurable field widths, labels, colors, spacing, and custom CSS classes.<\/li>\n<li>Entry inbox, read\/spam statuses, and CSV exports.<\/li>\n<li>Administrator notifications and respondent receipts with HTML templates and merge tags.<\/li>\n<li>Conditional notification recipients.<\/li>\n<li>Shortcodes, a dynamic Gutenberg block, and a theme function.<\/li>\n<li>JavaScript submission with a standard POST fallback.<\/li>\n<li>Optional traffic attribution and events for an existing Google Analytics installation. Both are off by default.<\/li>\n<li>No paid license, external account, or external runtime library is required for the form builder.<\/li>\n<\/ul>\n\n<p>MRN Forms is developed by <a href=\"https:\/\/mehranmarandi.ir\">Mehran Marandi<\/a> as a product of MRNWP.<\/p>\n\n<h4>\u0641\u0627\u0631\u0633\u06cc<\/h4>\n\n<p>MRN Forms \u0628\u0631\u0627\u06cc \u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u06cc\u06cc \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u06a9\u0647 \u06cc\u06a9 \u0641\u0631\u0645\u200c\u0633\u0627\u0632 \u062d\u0631\u0641\u0647\u200c\u0627\u06cc \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0646\u062f\u060c \u0627\u0645\u0627 \u0646\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0648 \u0627\u0633\u062a\u0627\u06cc\u0644 \u0641\u0631\u0645 \u0628\u0647 \u0635\u0641\u062d\u0647\u200c\u0633\u0627\u0632 \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 JavaScript \u0633\u0646\u06af\u06cc\u0646 \u0648\u0627\u0628\u0633\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n\n<h4>\u0627\u0645\u06a9\u0627\u0646\u0627\u062a<\/h4>\n\n<ul>\n<li>\u0641\u0631\u0645\u200c\u0633\u0627\u0632 Drag &amp; Drop \u0628\u0627 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u0632\u0646\u062f\u0647<\/li>\n<li>\u0631\u0627\u0628\u0637 \u06a9\u0627\u0645\u0644 \u0641\u0627\u0631\u0633\u06cc \u0648 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627 \u062a\u0634\u062e\u06cc\u0635 \u062e\u0648\u062f\u06a9\u0627\u0631 RTL\/LTR \u0628\u0631 \u0627\u0633\u0627\u0633 \u0632\u0628\u0627\u0646 \u0648\u0631\u062f\u067e\u0631\u0633<\/li>\n<li>\u06f1\u06f4 \u0646\u0648\u0639 \u0641\u06cc\u0644\u062f: \u0645\u062a\u0646\u060c \u0627\u06cc\u0645\u06cc\u0644\u060c \u062a\u0644\u0641\u0646\u060c \u0639\u062f\u062f\u060c \u0645\u062a\u0646 \u0628\u0644\u0646\u062f\u060c \u0627\u0646\u062a\u062e\u0627\u0628\u06cc\u060c \u0631\u0627\u062f\u06cc\u0648\u06cc\u06cc\u060c \u0686\u06a9\u200c\u0628\u0627\u06a9\u0633\u060c \u062a\u0627\u0631\u06cc\u062e\u060c \u0641\u0627\u06cc\u0644\u060c \u0631\u0636\u0627\u06cc\u062a\u060c \u067e\u0646\u0647\u0627\u0646\u060c \u0639\u0646\u0648\u0627\u0646 \u0648 HTML<\/li>\n<li>\u0639\u0631\u0636\u200c\u0647\u0627\u06cc \u0648\u0627\u06a9\u0646\u0634\u200c\u06af\u0631\u0627\u060c \u0631\u0646\u06af\u060c \u0641\u0627\u0635\u0644\u0647\u060c \u06af\u0631\u062f\u06cc \u06af\u0648\u0634\u0647\u060c \u0645\u062d\u0644 \u0628\u0631\u0686\u0633\u0628 \u0648 \u06a9\u0644\u0627\u0633 CSS \u0627\u062e\u062a\u0635\u0627\u0635\u06cc<\/li>\n<li>\u0645\u0646\u0637\u0642 \u0634\u0631\u0637\u06cc \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0641\u06cc\u0644\u062f\u0647\u0627<\/li>\n<li>\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648 \u0633\u0631\u0648\u0631<\/li>\n<li>\u0622\u067e\u0644\u0648\u062f \u0627\u0645\u0646 \u0628\u0627 \u06a9\u0646\u062a\u0631\u0644 \u067e\u0633\u0648\u0646\u062f \u0648 \u062d\u062c\u0645<\/li>\n<li>\u062b\u0628\u062a \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0645\u0646\u0628\u0639 \u0648\u0631\u0648\u062f\u060c \u06a9\u0645\u067e\u06cc\u0646\u060c \u0635\u0641\u062d\u0647 \u0641\u0631\u0648\u062f \u0648 \u0627\u0631\u062c\u0627\u0639\u200c\u062f\u0647\u0646\u062f\u0647 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0627\u0631\u0633\u0627\u0644\u061b \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062e\u0627\u0645\u0648\u0634<\/li>\n<li>\u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc GA4 \u0628\u0631\u0627\u06cc \u06a9\u0644\u06cc\u06a9 \u062a\u0645\u0627\u0633\u060c \u0648\u0627\u062a\u0633\u0627\u067e \u0648 \u0627\u0631\u0633\u0627\u0644 \u0645\u0648\u0641\u0642 \u0641\u0631\u0645\u061b \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062e\u0627\u0645\u0648\u0634<\/li>\n<li>\u0630\u062e\u06cc\u0631\u0647 \u0627\u0631\u0633\u0627\u0644\u200c\u0647\u0627\u060c \u0648\u0636\u0639\u06cc\u062a \u062e\u0648\u0627\u0646\u062f\u0647\u200c\u0634\u062f\u0647\/\u0647\u0631\u0632\u0646\u0627\u0645\u0647 \u0648 \u062e\u0631\u0648\u062c\u06cc CSV<\/li>\n<li>\u062f\u0648 \u0627\u0639\u0644\u0627\u0646 \u0622\u0645\u0627\u062f\u0647: \u0627\u06cc\u0645\u06cc\u0644 \u0645\u062f\u06cc\u0631 \u0648 \u0631\u0633\u06cc\u062f \u062a\u06a9\u0645\u06cc\u0644\u200c\u06a9\u0646\u0646\u062f\u0647<\/li>\n<li>\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u0634\u0631\u0637\u06cc \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u067e\u0627\u0633\u062e \u0647\u0631 \u0641\u06cc\u0644\u062f<\/li>\n<li>\u0642\u0627\u0644\u0628 HTML \u0648\u0627\u06a9\u0646\u0634\u200c\u06af\u0631\u0627 \u0628\u0627 \u0631\u0646\u06af \u0648 \u0644\u0648\u06af\u0648\u06cc \u0628\u0631\u0646\u062f<\/li>\n<li>Merge Tag \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0641\u0631\u0645 \u0648 \u0641\u06cc\u0644\u062f\u0647\u0627<\/li>\n<li>\u0627\u0631\u0633\u0627\u0644 AJAX \u0628\u0627 fallback \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 JavaScript<\/li>\n<li>Honeypot\u060c nonce\u060c \u0645\u062d\u062f\u0648\u062f\u0633\u0627\u0632\u06cc \u0646\u0631\u062e \u0648 \u0647\u0634 \u06a9\u0631\u062f\u0646 IP<\/li>\n<li>\u0634\u0648\u0631\u062a\u200c\u06a9\u062f\u060c \u0628\u0644\u0648\u06a9 \u06af\u0648\u062a\u0646\u0628\u0631\u06af \u0648 \u062a\u0627\u0628\u0639 \u0642\u0627\u0644\u0628<\/li>\n<li>RTL\/LTR \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u062f\u0633\u062a\u0631\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u067e\u0627\u06cc\u0647<\/li>\n<li>\u0628\u062f\u0648\u0646 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc runtime \u062e\u0627\u0631\u062c\u06cc<\/li>\n<\/ul>\n\n<h3>Display without a page builder<\/h3>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[mrn_form id=\"1\"]\n<\/code><\/pre>\n\n<p>\u06cc\u0627:<\/p>\n\n<pre><code>[mrn_form slug=\"contact-us\"]\n<\/code><\/pre>\n\n<h4>Theme template<\/h4>\n\n<pre><code>&lt;?php mrn_form( 1 ); ?&gt;\n<\/code><\/pre>\n\n<p>\u06cc\u0627 \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0646\u0645\u0627\u06cc\u0634\u06cc:<\/p>\n\n<pre><code>&lt;?php mrn_form( 'contact-us', array( 'showTitle' =&gt; false ) ); ?&gt;\n<\/code><\/pre>\n\n<h4>Gutenberg<\/h4>\n\n<p>\u0628\u0644\u0648\u06a9 \u00abMRN Forms\u00bb \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0648 \u0641\u0631\u0645 \u0645\u0646\u062a\u0634\u0631\u0634\u062f\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n\n<h3>Merge Tags<\/h3>\n\n<ul>\n<li><code>{form_title}<\/code> \u0639\u0646\u0648\u0627\u0646 \u0641\u0631\u0645<\/li>\n<li><code>{form_id}<\/code> \u0634\u0646\u0627\u0633\u0647 \u0641\u0631\u0645<\/li>\n<li><code>{entry_id}<\/code> \u0634\u0646\u0627\u0633\u0647 \u0627\u0631\u0633\u0627\u0644<\/li>\n<li><code>{site_name}<\/code> \u0646\u0627\u0645 \u0633\u0627\u06cc\u062a<\/li>\n<li><code>{site_url}<\/code> \u0646\u0634\u0627\u0646\u06cc \u0633\u0627\u06cc\u062a<\/li>\n<li><code>{admin_email}<\/code> \u0627\u06cc\u0645\u06cc\u0644 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u062f\u06cc\u0631<\/li>\n<li><code>{all_fields}<\/code> \u062c\u062f\u0648\u0644 \u0632\u06cc\u0628\u0627\u06cc \u0647\u0645\u0647 \u067e\u0627\u0633\u062e\u200c\u0647\u0627<\/li>\n<li><code>{field:email}<\/code> \u0645\u0642\u062f\u0627\u0631 \u0641\u06cc\u0644\u062f\u06cc \u0628\u0627 \u06a9\u0644\u06cc\u062f <code>email<\/code><\/li>\n<\/ul>\n\n<p>\u0686\u0646\u062f \u06af\u06cc\u0631\u0646\u062f\u0647 \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0648\u06cc\u0631\u06af\u0648\u0644 \u06cc\u0627 <code>;<\/code> \u062c\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n\n<h3>Theme customization<\/h3>\n\n<p>\u0647\u0631 \u0641\u0631\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0635\u0631\u06cc \u0645\u0633\u062a\u0642\u0644 \u062f\u0627\u0631\u062f. \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644\u200c\u062a\u0631\u060c \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc CSS \u0632\u06cc\u0631 \u0631\u0648\u06cc <code>.mrnf-shell<\/code> \u0642\u0627\u0628\u0644 override \u0647\u0633\u062a\u0646\u062f:<\/p>\n\n<pre><code>--mrnf-primary, `--mrnf-accent`, `--mrnf-bg`, `--mrnf-text`, `--mrnf-gap`, `--mrnf-radius`\n<\/code><\/pre>\n\n<p>\u0646\u0645\u0648\u0646\u0647:<\/p>\n\n<pre><code>.my-form { --mrnf-primary: #222; --mrnf-radius: 4px; }\n<\/code><\/pre>\n\n<p>\u06a9\u0644\u0627\u0633 <code>my-form<\/code> \u0631\u0627 \u062f\u0631 \u0628\u062e\u0634 \u00ab\u0638\u0627\u0647\u0631 \u0648 \u0631\u0641\u062a\u0627\u0631 \u2190 \u06a9\u0644\u0627\u0633 CSS \u0633\u0641\u0627\u0631\u0634\u06cc\u00bb \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n\n<h3>Developer API<\/h3>\n\n<p>\u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u0648 \u0627\u06a9\u0634\u0646\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc:<\/p>\n\n<ul>\n<li><code>mrnf_submission_values<\/code> \u2014 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc\u200c\u0634\u062f\u0647 \u067e\u06cc\u0634 \u0627\u0632 \u0630\u062e\u06cc\u0631\u0647<\/li>\n<li><code>mrnf_after_entry_created<\/code> \u2014 \u067e\u0633 \u0627\u0632 \u062b\u0628\u062a \u0627\u0631\u0633\u0627\u0644<\/li>\n<li><code>mrnf_after_submission<\/code> \u2014 \u067e\u0633 \u0627\u0632 \u062a\u0644\u0627\u0634 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627<\/li>\n<li><code>mrnf_after_notification<\/code> \u2014 \u067e\u0633 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0647\u0631 \u0627\u0639\u0644\u0627\u0646<\/li>\n<li><code>mrnf_notification_results<\/code> \u2014 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062a\u06cc\u062c\u0647 \u06a9\u0627\u0646\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0639\u0644\u0627\u0646<\/li>\n<li><code>mrnf_rendered_form<\/code> \u2014 \u062a\u063a\u06cc\u06cc\u0631 HTML \u0646\u0647\u0627\u06cc\u06cc \u0641\u0631\u0645<\/li>\n<\/ul>\n\n<p>\u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627 \u0637\u0648\u0631\u06cc \u062c\u062f\u0627 \u0634\u062f\u0647 \u06a9\u0647 \u06a9\u0627\u0646\u0627\u0644 SMS \u062f\u0631 \u0646\u0633\u062e\u0647 \u0628\u0639\u062f \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0631\u0645\u200c\u0647\u0627 \u0642\u0627\u0628\u0644 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u0628\u0627\u0634\u062f.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Form definitions, submitted values, and delivery logs are stored in this site's database. Entry metadata includes submission time, the logged-in user ID when present, browser user agent, referring URL, and a keyed one-way IP hash. Raw IP addresses are not saved with entries; the hash is used for abuse control. Notifications use WordPress <code>wp_mail()<\/code> and the site's configured mail transport, and are sent to configured recipients. The plugin does not send entries or usage statistics to MRNWP or the developer.<\/p>\n\n<p>Traffic attribution and analytics events are separate opt-in settings under Forms &gt; Settings, and are off by default. Configure privacy notices and any required visitor consent before enabling them.<\/p>\n\n<p>When attribution is enabled, source, medium, campaign, term, content, landing page, referrer, and capture time are saved in browser session storage and with submissions on this site. Attribution page URLs omit query strings and fragments. These are browser-supplied reporting values, not trusted identity information.<\/p>\n\n<p>When analytics events are enabled and the site already provides a <code>gtag<\/code> function, phone-click, WhatsApp-click, and successful-submission events are passed to that function. Events include the interaction type, page URL without query parameters, form ID for a submission, and traffic source\/medium when attribution is enabled. Form answers, phone numbers, email addresses, and clicked-link text are not included. MRN Forms does not install Google scripts. The site's existing analytics configuration controls delivery and consent, and Google may collect additional information under that configuration.<\/p>\n\n<p>Optional service: <a href=\"https:\/\/marketingplatform.google.com\/about\/analytics\/\">Google Analytics<\/a>, <a href=\"https:\/\/marketingplatform.google.com\/about\/analytics\/terms\/us\/\">Terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy policy<\/a>.<\/p>\n\n<p>\u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0648\u06cc \u0633\u0627\u06cc\u062a \u0634\u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u062b\u0628\u062a \u0645\u0646\u0628\u0639 \u0628\u0627\u0632\u062f\u06cc\u062f \u0648 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u06af\u0648\u06af\u0644 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0648 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062e\u0627\u0645\u0648\u0634 \u0647\u0633\u062a\u0646\u062f. \u067e\u06cc\u0634 \u0627\u0632 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u060c \u0627\u0637\u0644\u0627\u0639\u200c\u0631\u0633\u0627\u0646\u06cc \u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc \u0648 \u0631\u0636\u0627\u06cc\u062a \u0644\u0627\u0632\u0645 \u0631\u0627 \u062f\u0631 \u0633\u0627\u06cc\u062a \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u062d\u0630\u0641 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0647\u0646\u06af\u0627\u0645 uninstall \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP through Plugins &gt; Add New &gt; Upload Plugin, or copy the <code>mrn-forms<\/code> folder into <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate MRN Forms.<\/li>\n<li>Open Forms &gt; New Form, add fields, and publish the form.<\/li>\n<li>Add the MRN Forms block to a page, or use <code>[mrn_form id=\"1\"]<\/code> with your form ID.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20support%20persian%20and%20english%3F\"><h3>Does it support Persian and English?<\/h3><\/dt>\n<dd><p>Yes. The plugin includes both interfaces and follows the WordPress locale for RTL\/LTR layouts. Other languages can use WordPress translations.<\/p><\/dd>\n<dt id=\"will%20the%20rename%20change%20my%20existing%20forms%3F\"><h3>Will the rename change my existing forms?<\/h3><\/dt>\n<dd><p>Database tables, settings keys, shortcodes, REST routes, and the block name are retained. If you previously installed the development plugin in a <code>mrn-form<\/code> folder, deactivate that copy before activating the new <code>mrn-forms<\/code> package. Do not uninstall the old copy with its delete-data option enabled when you want to keep your forms.<\/p><\/dd>\n<dt id=\"how%20are%20uploads%20stored%3F\"><h3>How are uploads stored?<\/h3><\/dt>\n<dd><p>Allowed files are stored through the WordPress upload system and registered as private attachments. A private attachment does not make its underlying file URL private: anyone who knows that URL may be able to access it. Avoid collecting confidential documents unless your site also protects uploaded files.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Data is retained by default. Enable the delete-data setting before uninstalling only when you want to permanently remove forms, entries, email logs, and settings. Media attachments and uploaded files are not removed by that setting.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%3F\"><h3>Where is the source code?<\/h3><\/dt>\n<dd><p>PHP, JavaScript, and CSS sources are included in the plugin. No build step is required. The development repository is linked above. Code and artwork are distributed under GPLv2 or later.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Correct the WordPress.org contributor username to mrnwp.<\/li>\n<li>Use WordPress's default bottom placement for the top-level Forms menu.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Prevent spreadsheet formula injection in CSV exports, including submitted answers and attribution fields.<\/li>\n<li>Keep database error details out of public submission responses.<\/li>\n<li>Include the complete GPL version 2 license text with the installation package.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Add the <code>mrnf_submission_response<\/code> filter so an integration can send one submission to its own next step, such as payment.<\/li>\n<li>Add the <code>mrnf_entry_detail_aside<\/code> action for integration panels on the entry screen.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Update the plugin name to MRN Forms and add the product logo.<\/li>\n<li>Add product, MRNWP, and developer links.<\/li>\n<li>Match the translation domain and release folder to mrn-forms while retaining stored forms and public APIs.<\/li>\n<li>Make attribution and existing-GA analytics events opt-in and off by default.<\/li>\n<li>Exclude contact numbers and link text from analytics events.<\/li>\n<li>Improve directory documentation and prepare a clean installation package.<\/li>\n<li>Fix fresh submission nonces when WordPress uses plain permalinks.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Capture first-touch source, medium, campaign, landing page, and external referrer with each new entry.<\/li>\n<li>Show attribution in the inbox, entry details, and CSV exports.<\/li>\n<li>Send GA4 events for phone clicks, WhatsApp clicks, and successful MRN Forms submissions.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Add a requirement-mode control to the form builder: optional, always required, or required when another field is empty.<\/li>\n<li>Add an alternative-field selector with safe reference cleanup when fields are renamed or deleted.<\/li>\n<li>Show conditional required indicators dynamically on frontend forms.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Add cross-field required-without validation for text and upload alternatives.<\/li>\n<li>Display successful frontend submissions as accessible, dismissible toast notifications.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Preserve a form's stable slug when editing fields, appearance, or notification settings.<\/li>\n<li>Keep all plugin administration screens inside the standard WordPress content area.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>\u0627\u0641\u0632\u0648\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0645\u0644 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u060c \u0641\u0631\u0645\u200c\u0633\u0627\u0632\u060c \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f\u060c \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0648 \u0627\u06cc\u0645\u06cc\u0644\u200c\u0647\u0627.<\/li>\n<li>\u0627\u0641\u0632\u0648\u062f\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u06a9\u0627\u0645\u0644 LTR \u062f\u0631 \u06a9\u0646\u0627\u0631 RTL.<\/li>\n<li>\u062b\u0628\u062a Mehran Marandi \u0648 mehranmarandi.ir \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u0641\u0632\u0648\u0646\u0647.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>\u062f\u0631\u06cc\u0627\u0641\u062a nonce \u062a\u0627\u0632\u0647 \u0648 \u063a\u06cc\u0631\u0642\u0627\u0628\u0644\u200c\u06a9\u0634 \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0641\u0631\u0645 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0646\u0634\u0633\u062a \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u06a9\u0634\u200c\u0634\u062f\u0647.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>\u0627\u0635\u0644\u0627\u062d \u0641\u0627\u0635\u0644\u0647 \u0627\u0632 \u0633\u0627\u06cc\u062f\u0628\u0627\u0631 \u0648 \u062d\u0630\u0641 \u0627\u0633\u06a9\u0631\u0648\u0644 \u0627\u0641\u0642\u06cc \u067e\u0646\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631 \u0686\u06cc\u062f\u0645\u0627\u0646\u200c\u0647\u0627\u06cc RTL \u0648 LTR.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>\u0627\u0646\u062a\u0634\u0627\u0631 \u0627\u0648\u0644\u06cc\u0647 \u0641\u0631\u0645\u200c\u0633\u0627\u0632\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0631\u0633\u0627\u0644\u200c\u0647\u0627\u060c \u0627\u0639\u0644\u0627\u0646 \u0627\u06cc\u0645\u06cc\u0644\u060c \u0645\u0646\u0637\u0642 \u0634\u0631\u0637\u06cc \u0648 \u0627\u0645\u06a9\u0627\u0646\u0627\u062a \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647.<\/li>\n<\/ul>","raw_excerpt":"A lightweight bilingual form builder with drag and drop, conditional logic, entries, file uploads, and email notifications.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384860"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mrnwp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384860"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384860"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384860"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384860"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384860"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}