{"id":317469,"date":"2026-05-25T07:17:02","date_gmt":"2026-05-25T07:17:02","guid":{"rendered":"https:\/\/ru.wordpress.org\/plugins\/quick-form-js\/"},"modified":"2026-05-25T09:51:42","modified_gmt":"2026-05-25T09:51:42","slug":"vextor-quick-form-js","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vextor-quick-form-js\/","author":23504906,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0","requires":"6.3","requires_php":"8.0","requires_plugins":null,"header_name":"Vextor Quick Form JS","header_author":"vext0r","header_description":"A plugin for easy form submission with spam protection","assets_banners_color":"504fec","last_updated":"2026-05-25 09:51:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"vext0r","date":"2026-05-25 09:51:42"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3547079,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3547079,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3547079,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3547079,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[109,361,264265,1731],"plugin_category":[42,54],"plugin_contributors":[264276],"plugin_business_model":[],"class_list":["post-317469","plugin","type-plugin","status-publish","hentry","plugin_tags-antispam","plugin_tags-form","plugin_tags-form-js","plugin_tags-js","plugin_category-contact-forms","plugin_category-security-and-spam-protection","plugin_contributors-vext0r","plugin_committers-vext0r"],"banners":{"banner":"https:\/\/ps.w.org\/vextor-quick-form-js\/assets\/banner-772x250-rtl.png?rev=3547079","banner_2x":"https:\/\/ps.w.org\/vextor-quick-form-js\/assets\/banner-1544x500-rtl.png?rev=3547079","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vextor-quick-form-js\/assets\/icon-128x128.png?rev=3547079","icon_2x":"https:\/\/ps.w.org\/vextor-quick-form-js\/assets\/icon-256x256.png?rev=3547079","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin allows you to make your email forms simpler and easier to use\nForm processing is done via JavaScript, protecting them from unnecessary spam from bots<\/p>\n\n<h3>Donations<\/h3>\n\n<h4>Donate link<\/h4>\n\n<p>https:\/\/boosty.to\/vextor\/donate<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>vextor-quick-form-js<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li><p>In the file wp-config.php add variables:<\/p>\n\n<p>define('VEXTOR_RECIPIENT_EMAIL', 'recipient-email@example.com');\ndefine('VEXTOR_SENDER_NAME', 'Sender');\ndefine('VEXTOR_SENDER_EMAIL', 'sender-email@example.com');<\/p><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20to%20use%20%3F\"><h3>How to use ?<\/h3><\/dt>\n<dd><ol>\n<li>Instead of the standard form tag, you can use a div with the class <code>vextor-form-js<\/code><\/li>\n<li>Add a button with the <code>data-vextor-send-button<\/code> attribute inside this div, which will act as a trigger for submitting the form<\/li>\n<\/ol>\n\n<p>Example:<\/p>\n\n<pre><code>&lt;div class=\"vextor-form-js\"&gt;\n    &lt;input type=\"text\" name=\"name\" required&gt;\n    &lt;input type=\"hidden\" name=\"subject\" value=\"My Subject\"&gt;\n    &lt;input type=\"file\" name=\"files[]\"&gt;\n    &lt;button data-vextor-send-button&gt;Send&lt;\/button&gt;\n&lt;\/div&gt;\n<\/code><\/pre><\/dd>\n<dt id=\"are%20there%20any%20hooks%20or%20filters%3F\"><h3>Are there any hooks or filters?<\/h3><\/dt>\n<dd><p>Yes, there are several filters and hooks<\/p>\n\n<p>Filters:\n* add_filter('vextor_form_recipient_email', $email) \/\/ Use it to redefine the recipient's Email address\n* add_filter('vextor_form_translations', $translations) \/\/ Use it to replace keys from the form with clear names<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>add_filter('vextor_form_translations', 'my_theme_custom_translations');\n\nfunction my_theme_custom_translations(array $translations): array\n{\n    $translations['subject'] = 'My subject';\n\n    return $translations;\n}\n<\/code><\/pre>\n\n<p>Actions:\n* add_action('vextor_before_form_send', $data)\n* add_action('vextor_form_sent', $data)\n* add_action('vextor_form_error', $data)<\/p>\n\n<p>There are also JS events:\n* vextorformjs:prevalidation, {form, button}\n* vextorformjs:postvalidation, {form, button}\n* vextorformjs:sending, {form, button}\n* vextorformjs:error, {form, button, response}\n* vextorformjs:sent, {form, button, response}<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>document.addEventListener('vextorformjs:prevalidation', (event) =&gt; {\n    const { form, button } = event.detail;\n\n    console.log('Form:', form);\n    console.log('Button:', button);\n});\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3 (23.05.2025)<\/h4>\n\n<ul>\n<li>Added data cleaning<\/li>\n<\/ul>\n\n<h4>1.0.2 (22.05.2025)<\/h4>\n\n<ul>\n<li>Change name<\/li>\n<\/ul>\n\n<h4>1.0.1 (22.05.2025)<\/h4>\n\n<ul>\n<li>Change slug<\/li>\n<\/ul>\n\n<h4>1.0.0 (22.05.2025)<\/h4>\n\n<ul>\n<li>Init plugin<\/li>\n<\/ul>","raw_excerpt":"This plugin allows you to make your email forms simpler and easier to use","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/317469","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=317469"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vext0r"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=317469"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=317469"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=317469"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=317469"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=317469"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=317469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}