=== Vextor Quick Form JS ===
Contributors: vext0r
Tags: form, form-js, js, antispam
Requires PHP: 8.0
Requires at least: 6.3
Tested up to: 7.0
Stable tag: 1.0.3
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

== Description ==

This plugin allows you to make your email forms simpler and easier to use
Form processing is done via JavaScript, protecting them from unnecessary spam from bots

== Installation ==

1. Upload the ` vextor-quick-form-js ` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. In the file wp-config.php add variables:

`
define('VEXTOR_RECIPIENT_EMAIL', 'recipient-email@example.com');
define('VEXTOR_SENDER_NAME', 'Sender');
define('VEXTOR_SENDER_EMAIL', 'sender-email@example.com');
`

== Frequently Asked Questions ==

= How to use ? =

1. Instead of the standard form tag, you can use a div with the class `vextor-form-js`
2. Add a button with the `data-vextor-send-button` attribute inside this div, which will act as a trigger for submitting the form

Example:

`
<div class="vextor-form-js">
    <input type="text" name="name" required>
    <input type="hidden" name="subject" value="My Subject">
    <input type="file" name="files[]">
    <button data-vextor-send-button>Send</button>
</div>
`

= Are there any hooks or filters? =

Yes, there are several filters and hooks

Filters:
* add_filter('vextor_form_recipient_email', $email) // Use it to redefine the recipient's Email address
* add_filter('vextor_form_translations', $translations) // Use it to replace keys from the form with clear names

Example:

`
add_filter('vextor_form_translations', 'my_theme_custom_translations');

function my_theme_custom_translations(array $translations): array
{
	$translations['subject'] = 'My subject';

	return $translations;
}
`

Actions:
* add_action('vextor_before_form_send', $data)
* add_action('vextor_form_sent', $data)
* add_action('vextor_form_error', $data)

There are also JS events:
* vextorformjs:prevalidation, {form, button}
* vextorformjs:postvalidation, {form, button}
* vextorformjs:sending, {form, button}
* vextorformjs:error, {form, button, response}
* vextorformjs:sent, {form, button, response}

Example:

`
document.addEventListener('vextorformjs:prevalidation', (event) => {
    const { form, button } = event.detail;

    console.log('Form:', form);
    console.log('Button:', button);
});
`

== Changelog ==

= 1.0.3 (23.05.2025) =
* Added data cleaning
= 1.0.2 (22.05.2025) =
* Change name
= 1.0.1 (22.05.2025) =
* Change slug
= 1.0.0 (22.05.2025) =
* Init plugin

== Donations ==

= Donate link =

https://boosty.to/vextor/donate