=== SKT Forms ===
Contributors: sonalsinha21
Plugin URI: https://www.sktthemes.org/shop/skt-forms/
Tags: form builder, contact form, payment form, custom form, WordPress form plugin
Requires at least: 6.1
Tested up to: 7.1
Requires PHP: 7.2
Stable tag: 1.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Powerful WordPress form builder for contact, enquiry, order, payment and custom forms with conditional logic, CAPTCHA and multiple payment gateways.

== Description ==

**SKT Forms is a powerful WordPress form builder for creating secure, flexible and conversion-focused forms without coding.**

Create everything from simple **contact and enquiry forms** to advanced **order, payment, booking, survey, feedback, lead generation and custom forms**. Use the intuitive drag-and-drop form builder to reorder fields and customise your form layout in seconds.

SKT Forms combines **form building, payment collection, spam protection, email notifications, transaction management and form analytics** in one powerful WordPress plugin.

Whether you need a simple contact form or a complete payment and data collection solution, SKT Forms gives you the tools to build, manage, secure and analyze your forms from your WordPress dashboard.

### Powerful WordPress Form Builder

Build professional forms using a flexible field builder with **20+ field types**, including:

* Text
* Email
* Phone
* Number
* Textarea
* Dropdown
* Radio Buttons
* Checkboxes
* Date Picker
* Time Picker
* File Upload
* Address
* Rating
* Range Slider
* Amount Selection
* Custom Amount
* Calculation
* Product Item
* Section Divider

Arrange fields using **drag-and-drop ordering** and control the layout with flexible column widths such as Full, One Half, One Third, Two Thirds, One Fourth and Three Fourths.

### Conditional Logic

Create smarter dynamic forms with powerful **conditional logic**.

Show, hide, enable or disable fields based on visitor selections and form values. SKT Forms supports multiple rule groups, AND/OR conditions and a wide range of comparison operators.

Conditional logic is validated both in the browser and on the server to help prevent rules from being bypassed.

### Advanced Form Validation

Keep submitted data accurate with built-in and customizable validation rules.

Supported validation includes:

* Email validation
* URL validation
* Phone validation
* Minimum and maximum length
* Minimum and maximum value
* Regular expression validation
* File type validation
* File size validation
* Required field dependencies
* Custom validation messages

### Secure CAPTCHA and Spam Protection

Protect your forms from spam, bots and unwanted submissions with multiple CAPTCHA and spam-protection options.

SKT Forms supports:

* **Google reCAPTCHA**
* **hCaptcha**
* **Cloudflare Turnstile**
* **Math CAPTCHA**

Choose the CAPTCHA method you prefer for each form. Math CAPTCHA is built directly into SKT Forms, while Google reCAPTCHA, hCaptcha and Cloudflare Turnstile can be configured through the integration settings.

### Online Payment Forms

Turn any form into a powerful **payment form** and collect payments directly through supported payment gateways.

SKT Forms supports:

* **Razorpay**
* **PayU**
* **PayPal**
* **PhonePe**
* **Instamojo**
* **Cash on Delivery**

Create payment forms for products, services, donations, registrations, tickets, bookings, deposits, custom orders and more.

Payment forms support fixed amounts, selectable amounts, custom amounts, product quantities and calculated totals.

### Product and Payment Calculations

Build advanced order and payment forms with:

* Fixed payment amounts
* Amount selection
* Custom payment amounts
* Product items
* Quantity × price calculations
* Automatic grand totals
* Custom calculations
* Tax and delivery calculations
* Multiple currency options

The calculation field can reference other form fields and perform mathematical operations to create dynamic totals.

### Built-in Form Analytics

Understand how visitors interact with your forms with the **built-in Form Analytics dashboard**.

Track important form performance metrics including:

* Form Views
* Form Starts
* Form Completions
* Form Abandonment
* Field Interactions
* Validation Errors
* Form Submissions
* Payment Starts
* Payment Completions
* Payment Failures

Filter analytics by form, date range and event type, then export your analytics data as needed.

Use form analytics to identify where visitors drop off, understand field-level engagement and improve your form conversion rate.

### Transaction Management

Manage all payment and data-collection submissions from the **SKT Forms → Transactions** dashboard.

View and manage:

* Pending payments
* Successful payments
* Failed payments
* Data-collection submissions
* Transaction details
* Payment gateway information
* Submitted form data

Filter transactions by status, payment gateway and date range. Export transaction data in **CSV, JSON or Excel** formats.

### Email Notifications

Send professional email notifications automatically when forms are submitted or payments are processed.

SKT Forms supports notifications for:

* Successful payments
* Failed payments
* New form submissions
* Customer submission confirmations
* Admin notifications

Customize email subjects, messages, sender information and notification recipients.

Use dynamic placeholders to include transaction details, customer information and submitted form fields in your emails.

### Flexible Form Layout

Create professional multi-column forms without writing CSS.

Choose from:

* Full Width
* One Half
* One Third
* Two Thirds
* One Fourth
* Three Fourths

Fields automatically flow into rows and wrap when the available row width is filled.

### Accessibility Features

SKT Forms includes optional accessibility-focused settings to improve usability:

* High Contrast Mode
* Large Text Mode
* Screen Reader Optimized

These options help make forms more accessible for visitors using assistive technologies.

### Easy Form Embedding

Every saved form receives a unique shortcode.

Add your form to any WordPress page, post or widget that supports shortcodes:

`[skt_forms id="1"]`

No complicated configuration is required. Form behaviour is managed directly from the SKT Forms form builder.

### Key Features

* Powerful WordPress Form Builder
* Drag-and-drop form builder
* Contact forms
* Registration forms
* Payment forms
* Order forms
* Lead generation forms
* Enquiry forms
* Survey and feedback forms
* Custom forms
* 20+ form field types
* Conditional logic
* Advanced validation
* Cross-field validation
* Dynamic calculations
* Product and quantity fields
* Multiple payment gateways
* Razorpay integration
* PayU integration
* PayPal integration
* PhonePe integration
* Instamojo integration
* Cash on Delivery
* Google reCAPTCHA
* hCaptcha
* Cloudflare Turnstile
* Math CAPTCHA
* Spam and bot protection
* Built-in Form Analytics
* Form views and starts tracking
* Form completion tracking
* Form abandonment tracking
* Field interaction tracking
* Validation error tracking
* Payment tracking
* Transaction management
* CSV export
* JSON export
* Excel export
* Email notifications
* Customer confirmation emails
* Admin notifications
* Custom email templates
* Dynamic email placeholders
* Responsive multi-column layouts
* File upload fields
* Date and time fields
* Rating fields
* Range Slider fields
* Address fields
* Accessibility options
* Test mode for payment gateways
* Success, failure and cancel page handling
* Secure server-side validation

SKT Forms is designed for businesses, agencies, freelancers, online stores, service providers, organizations and anyone who needs a reliable **WordPress form builder with payment collection, security and analytics**.

**Build smarter forms. Accept payments. Stop spam. Manage submissions. Track performance — all with SKT Forms.**

== Installation ==

= Method 1: WordPress Admin (Recommended) =

1. Download the SKT Forms plugin ZIP file.
2. Go to **WordPress Admin → Plugins → Add New**.
3. Click **Upload Plugin**.
4. Select the SKT Forms ZIP file.
5. Click **Install Now**.
6. Click **Activate Plugin**.

= Method 2: Manual Installation =

1. Download and extract the SKT Forms plugin.
2. Upload the `skt-forms` folder to `/wp-content/plugins/`.
3. Go to **WordPress Admin → Plugins**.
4. Find **SKT Forms**.
5. Click **Activate**.

= Requirements =

* WordPress 6.1 or higher
* PHP 7.2 or higher
* MySQL 5.6 or higher
* SSL certificate recommended for live payment processing

== Frequently Asked Questions ==

= How do I create my first form? =

1. Go to **SKT Forms → Forms → Add New**.
2. Enter a form title and description.
3. Start with a template or build the form from scratch.
4. Add the fields you need.
5. Configure validation and conditional logic if required.
6. Configure email notifications or payment collection.
7. Save the form.
8. Copy the generated shortcode.
9. Add the shortcode to any WordPress page or post.

Example:

`[skt_forms id="1"]`

= How do I create my first payment form? =

1. Go to **SKT Forms → Forms → Add New**.
2. Enter the form title and description.
3. Add a **Name** field and an **Email** field.
4. Enable **Payment Collection**.
5. Select your preferred payment gateway.
6. Configure the currency and payment amount.
7. Add payment or product fields if required.
8. Save the form.
9. Copy the generated shortcode and add it to your page or post.

= Which payment gateways are supported? =

SKT Forms currently supports:

* Razorpay
* PayU
* PayPal
* PhonePe
* Instamojo
* Cash on Delivery

Payment gateway availability and supported currencies may vary by gateway.

= Does SKT Forms support multiple payment gateways on one form? =

Yes. You can enable multiple payment gateways and allow visitors to choose their preferred payment method during checkout.

= Does SKT Forms support CAPTCHA? =

Yes. SKT Forms provides multiple spam-protection options:

* Google reCAPTCHA
* hCaptcha
* Cloudflare Turnstile
* Math CAPTCHA

Only one CAPTCHA method is used on a form at a time.

= How do I configure Google reCAPTCHA, hCaptcha or Cloudflare Turnstile? =

1. Go to **SKT Forms → Integration**.
2. Select the CAPTCHA provider you want to use.
3. Enter the required Site Key and Secret Key.
4. Save the security settings.
5. Open the form you want to protect.
6. Select the configured CAPTCHA under **Spam Protection**.

= What is Math CAPTCHA? =

Math CAPTCHA is a built-in spam-protection option that does not require an external service.

You can configure the operation and difficulty directly from the form settings.

= Does SKT Forms have form analytics? =

Yes. SKT Forms includes a built-in **Form Analytics dashboard**.

You can track:

* Form views
* Form starts
* Form completions
* Field interactions
* Validation errors
* Form submissions
* Payment starts
* Payment completions
* Payment failures
* Form abandonment

Analytics can be filtered by form, date range and event type.

= Can I export form submissions? =

Yes. SKT Forms supports exporting submissions and transaction data in:

* CSV
* JSON
* Excel

= Can I customize the form appearance? =

Yes. SKT Forms provides predictable CSS classes that can be customized through your theme stylesheet.

Common classes include:

* `.skt-forms-form-wrapper` - Form container
* `.skt-forms-field` - Individual field
* `.skt-forms-field-label` - Field labels
* `.skt-forms-field-input` - Field inputs
* `.skt-forms-submit-btn` - Submit button

= Does SKT Forms support conditional logic? =

Yes. Conditional logic can show, hide, enable or disable fields based on the values of other fields.

SKT Forms supports multiple rule groups and AND/OR conditions with a wide range of comparison operators.

= Does conditional logic work without JavaScript? =

SKT Forms validates conditional logic on the server as well as in the browser to help prevent client-side rules from being bypassed.

= Can I upload files through a form? =

Yes. SKT Forms includes a File Upload field.

You can configure allowed file types and maximum file size. Additional file validation rules can also be applied.

= Can I create product order forms? =

Yes. Use the **Product Item** field to create order forms with quantity, unit price and automatically calculated line totals.

= Can I create custom payment amounts? =

Yes. The **Custom Amount** field allows visitors to enter the amount they want to pay, making it useful for donations, deposits and custom quotes.

= Can I create calculations inside a form? =

Yes. The Calculation field can automatically calculate values using other fields and mathematical operators.

For example, you can calculate:

* Taxes
* Delivery charges
* Order totals
* Scores
* BMI
* Custom pricing

= Does SKT Forms send email notifications? =

Yes. SKT Forms supports customer and admin email notifications for payments and form submissions.

You can customize email subjects, messages, sender information and recipients.

= How do I test payments before going live? =

Payment gateways provide test or sandbox modes.

1. Enable Test Mode in the required payment gateway.
2. Enter the test credentials provided by your payment gateway.
3. Use the gateway's test environment.
4. Complete a test transaction.
5. Verify the transaction status and email notifications.
6. Switch to live credentials only after successful testing.

Test credentials and test cards are provided by the respective payment gateway and may change over time. Please use the current test credentials from your gateway's official documentation.

= What if I need help? =

Please refer to the **[SKT Forms documentation](https://blazingthemes.com/skt-forms/documentation/)** for detailed setup instructions, troubleshooting information and feature documentation.

== Demo & Documentation ==

Please check Demo here : **[View Demo](https://blazingthemes.com/skt-forms/)**
Please check the full documentation here : **[click here](https://blazingthemes.com/skt-forms/documentation/)**

== Screenshots ==

1. Dashboard Interface
2. Get Started with SKT Forms      
3. Create New Form
4. Edit Form
5. Pre-built Templates
6. Manage Forms
7. Payments Integration
8. Payment Transaction and Data Collection
9. Analytics Dashboard
10. Captcha Integration
11. Email Notifications
12. Email Template

== External Services ==

SKT Forms connects to third-party services when specific integrations or payment gateways are enabled and used. These services may receive information required to process payments, protect forms from spam, or provide their respective services.

= Razorpay =

* **What it is**: Payment gateway service for processing online payments.
* **When data is sent**: When a visitor submits a payment form using Razorpay.
* **Data sent**: Customer name, email, mobile number, payment amount, currency and order details.
* **Purpose**: To create payment orders and process payments.
* **Service URL**: https://razorpay.com/
* **Terms of Service**: https://razorpay.com/terms/
* **Privacy Policy**: https://razorpay.com/privacy/
* **Documentation**: https://razorpay.com/docs/

= PayU =

* **What it is**: Payment gateway service for processing online payments.
* **When data is sent**: When a visitor submits a payment form using PayU.
* **Data sent**: Customer name, email, mobile number, payment amount, currency and order details.
* **Purpose**: To create payment orders and process payments.
* **Service URL**: https://payu.in/
* **Terms of Service**: https://payu.in/online-pa-tncs/
* **Privacy Policy**: https://payu.in/privacy-policy
* **Documentation**: https://docs.payu.in/

= PayPal =

* **What it is**: Global payment gateway service for processing online payments.
* **When data is sent**: When a visitor submits a payment form using PayPal.
* **Data sent**: Customer name, email, payment amount, currency and order details.
* **Purpose**: To create payment orders and process payments.
* **Service URL**: https://www.paypal.com/
* **Terms of Service**: https://www.paypal.com/us/legalhub/useragreement-full
* **Privacy Policy**: https://www.paypal.com/us/legalhub/privacy-full
* **Documentation**: https://developer.paypal.com/

= PhonePe =

* **What it is**: Digital payment platform for processing UPI and other payments.
* **When data is sent**: When a visitor submits a payment form using PhonePe.
* **Data sent**: Customer name, email, mobile number, payment amount, currency and order details.
* **Purpose**: To create payment orders and process payments.
* **Service URL**: https://phonepe.com/
* **Terms of Service**: https://www.phonepe.com/terms-conditions/
* **Privacy Policy**: https://www.phonepe.com/privacy-policy/
* **Documentation**: https://developer.phonepe.com/

= Instamojo =

* **What it is**: Payment gateway service for processing online payments.
* **When data is sent**: When a visitor submits a payment form using Instamojo.
* **Data sent**: Customer name, email, mobile number, payment amount, currency and order details.
* **Purpose**: To create payment orders and process payments.
* **Service URL**: https://instamojo.com/
* **Terms of Service**: https://instamojo.com/terms/
* **Privacy Policy**: https://instamojo.com/privacy/
* **Documentation**: https://docs.instamojo.com/

= Google reCAPTCHA =

* **What it is**: Google's CAPTCHA service used to help protect forms from automated spam and abuse.
* **When data is sent**: When Google reCAPTCHA is enabled and a visitor interacts with a protected form.
* **Data sent**: Information required by Google reCAPTCHA to assess whether the visitor is human.
* **Purpose**: Spam and automated submission protection.
* **Service URL**: https://www.google.com/recaptcha/
* **Terms of Service**: https://policies.google.com/terms
* **Privacy Policy**: https://policies.google.com/privacy

= Cloudflare Turnstile =

* **What it is**: Cloudflare's CAPTCHA alternative for protecting websites and forms from automated traffic.
* **When data is sent**: When Cloudflare Turnstile is enabled on a form.
* **Data sent**: Information required by Turnstile to verify the visitor.
* **Purpose**: Spam and bot protection.
* **Service URL**: https://www.cloudflare.com/products/turnstile/
* **Terms of Service**: https://www.cloudflare.com/terms/
* **Privacy Policy**: https://www.cloudflare.com/privacypolicy/

= hCaptcha =

* **What it is**: CAPTCHA service used to protect websites and forms against automated abuse.
* **When data is sent**: When hCaptcha is enabled and a visitor interacts with a protected form.
* **Data sent**: Information required by hCaptcha to verify the visitor.
* **Purpose**: Spam and bot protection.
* **Service URL**: https://www.hcaptcha.com/
* **Terms of Service**: https://www.hcaptcha.com/terms
* **Privacy Policy**: https://www.hcaptcha.com/privacy

= Math CAPTCHA =

* **What it is**: Built-in mathematical CAPTCHA functionality provided by SKT Forms.
* **When data is sent**: No external service is contacted for Math CAPTCHA.
* **Data sent**: No data is sent to a third-party CAPTCHA provider.
* **Purpose**: Basic protection against automated form submissions.

**Data Security**: Payment and external-service data is transmitted through the respective service using their supported secure connection methods. Payment card information is handled by the relevant payment gateway and is not intended to be stored by SKT Forms.

**User Consent**: Website owners are responsible for informing their visitors about the third-party services used on their website and obtaining any consent required by applicable privacy and data-protection laws.

== Configuration ==

= 1. Gateway Setup =

1. Go to **SKT Forms → Payments**.
2. Enable the payment gateway you want to use.
3. Enter the credentials provided by your payment provider.
4. Configure Test Mode or Live Mode as required.
5. Save the payment settings.

Supported gateway credentials vary by provider.

= 2. CAPTCHA Setup =

For Google reCAPTCHA, Cloudflare Turnstile or hCaptcha:

1. Go to **SKT Forms → Integration**.
2. Enable the CAPTCHA provider.
3. Enter the required Site Key and Secret Key.
4. Save the security settings.
5. Open the form.
6. Select the configured CAPTCHA under **Spam Protection**.

For Math CAPTCHA, open the form settings and select **Math CAPTCHA** under Spam Protection.

= 3. Configure Email Notifications =

1. Go to **SKT Forms → Email Notifications**.
2. Select the form you want to configure.
3. Customize the required notification templates.
4. Configure the admin email, sender name and sender email.
5. Add dynamic placeholders where required.
6. Save the email settings.

= 4. Embed the Form =

Use the generated shortcode in any WordPress post, page or widget that supports shortcodes:

`[skt_forms id="1"]`

Replace `1` with the ID of your form.

== Changelog ==

= 1.3 =

* Add the demo link to the readme.txt file.

= 1.2 =

* Fixed all issues identified in the reviewer feedback.
* Verified the plugin with Plugin Check and PHPCS.
* Tested on a clean WordPress installation with `WP_DEBUG` enabled and no errors or warnings were found.

= 1.1 =

* Security: Added nonce verification and capability checks before processing form submission and admin AJAX requests.
* Security: Added permission_callback to all REST API routes.
* Security: Escaped all dynamic output returned from function/method calls before rendering.
* Fix: Prefixed all function declarations, global variables, and stored option/meta keys with `skt_forms_` to avoid naming collisions.
* Fix: Corrected "Requires at least" version in plugin header to a properly tested WordPress version.
* Fix: Corrected file and directory path handling using proper WordPress path functions.
* Removed unnecessary load_plugin_textdomain() call (not required since WP 4.6 for WordPress.org hosted plugins).
* Fixed all issues pointed out by the reviewer.

= 1.0 =

* Initial release.

== License ==

This plugin is licensed under the GPL v2 or later (https://www.gnu.org/licenses/gpl-2.0.html).

== Acknowledgments ==

* WordPress community for the amazing platform.
* Razorpay for its payment APIs.
* PayU for its payment APIs.
* PayPal for its payment platform.
* PhonePe for its payment platform.
* Instamojo for its payment APIs.
* Google reCAPTCHA for its spam-protection service.
* Cloudflare Turnstile for its spam-protection service.
* hCaptcha for its spam-protection service.
* All contributors and beta testers.

---

**SKT Forms** - Build powerful forms, collect payments, prevent spam and understand your form performance.