Plugin Documentation

SKT Forms

A complete guide to building payment and data-collection forms in WordPress with SKT Forms every form field, validation rule, payment gateway, notification and analytics feature explained.

Overview

SKT Forms is a WordPress form builder built for two jobs at once: collecting information and collecting payments. Build a simple contact or survey form, or a full payment form with amount selection, product line items, conditional logic and a checkout flow — all from one drag-and-drop builder, with no code required.

Installation

Method 1 — WordPress Admin (recommended)

Method 2 — Manual installation

Requirements WordPress 6.1 or higher, PHP 7.2 or higher, MySQL 5.6 or higher, and an SSL certificate (recommended for live payment processing).

Admin Menu

Once activated, SKT Forms adds its own top-level menu to the WordPress admin sidebar. Every feature in this documentation is reached from one of these eight screens.

Menu ItemWhat it's for
DashboardAt-a-glance stats (active forms, submissions, successful payments, revenue) and recent transactions.
FormsCreate, edit, duplicate, preview and delete every form see field count, status and shortcode for each.
TransactionsEvery payment and data-collection submission, with filters, exports and manual approval.
AnalyticsForm views, starts, completions and field-level interaction tracking per form.
Email NotificationsGlobal and per-form email templates for payment and submission events.
PaymentsEnable and configure payment gateways, and set success/failure/cancel page handling.
IntegrationConnect external spam-protection services: Google reCAPTCHA, Cloudflare Turnstile, hCaptcha.
HelpSystem information for support and troubleshooting.

Dashboard

The Dashboard is the home screen of SKT Forms. It gives you a quick read on how your forms are performing without opening the Transactions or Analytics screens.

SKT Forms Dashboard overview
The Dashboard summarizes active forms, submissions, successful payments, total revenue, and recent transactions.
Stat cardWhat it shows
Active FormsNumber of forms currently set to Active status.
Form SubmissionTotal number of transactions recorded across all forms (payments and data-collection submissions).
Successful PaymentsCount of transactions with a Success payment status.
Total RevenueSum of all successful payment amounts, formatted to two decimal places.

Below the stat cards, Quick Actions gives one-click shortcuts to Create New Form, Manage Forms, View Transactions and Payment Gateway Settings, and a Recent Transactions table lists the latest submissions with their status, gateway and amount.

Creating a Form

To create a new form, go to SKT Forms → Forms → Add New. You can start from a ready-made template or build entirely from scratch.

SKT Forms Create New Form screen
Choose a pre-built template to get started quickly, or start from scratch for full control.
Tip You don't have to decide on payment collection right away — every form starts as a data-collection-only form until you enable Payment Collection in Form Settings.

Form Settings

The left-hand sidebar of the form builder controls how the form behaves — independent of which fields you add. These settings are grouped into five sections.

General settings

SettingDescription
Form TitleThe internal and public name of the form.
DescriptionOptional text describing the form's purpose.
Submit Button TextCustom text for the submit button. Leave empty to use the default — "Proceed to Payment" for payment forms, "Submit Form" otherwise.
StatusActive forms render on the front end Inactive forms are hidden even if the shortcode is still on a page.

Validation & spam protection

SettingOptionsDescription
Validation ModeReal-time / On Field Blur / On Form SubmitControls when field errors first appear to the visitor as they fill out the form.
Validation StyleInline Messages / Tooltip Messages / Summary at TopControls how validation errors are displayed.
Spam Protection (Captcha)None / Math Captcha / Google reCAPTCHA / Cloudflare Turnstile / hCaptchaOnly one captcha runs per form. External providers must first be configured on the Integration page — see Spam Protection.

Form type & payment settings

SettingDescription
Payment CollectionDisabled keeps the form as data collection only Enabled turns it into a payment form and reveals the Payment Settings section (gateways, currency, amount).
Payment GatewaysSelect one or more enabled gateways. If you select more than one, visitors choose their preferred gateway at checkout, the same way a WooCommerce store lets shoppers pick a payment method.
CurrencyFiltered automatically to only the currencies supported by the gateway(s) you've selected.
Fixed AmountThe amount charged when the form doesn't use an Amount Selection or Product Item field to determine the price.
Note Every payment gateway in SKT Forms requires a Name and an Email field to be present somewhere on the form — add these using the Quick Add buttons in the field editor so the gateway always has a customer to bill.

Data collection notifications

Shown only when Payment Collection is Disabled — controls whether an email is sent for every submission of a non-payment form.

SettingDescription
Send Email NotificationYes/No — sends an email every time this form is submitted.
Send Email Notification ToThe recipient address. Leave empty to use the site's admin email.

Analytics & export

SettingDescription
Enable AnalyticsTurns on view/start/completion/field-interaction tracking for this form. See Analytics Dashboard.
Export FormatsChoose which formats (CSV, JSON, Excel) are available when exporting this form's submissions.

Accessibility features

Three optional toggles improve the form's usability for visitors using assistive technology:

Field Layout

Every field has a Field Width (Column) setting that controls how much horizontal space it takes up: Full (100%), One Half (1/2), One Third (1/3), Two Thirds (2/3), One Fourth (1/4), or Three Fourths (3/4). Fields with partial widths are placed side-by-side in the same row and automatically wrap to a new line once the row is full — so a Full Name field at One Half and an Email field at One Half will sit next to each other, for example.

Fields can also be reordered by dragging them using the drag handle on each field row — the form builder supports full drag-and-drop reordering, including keyboard navigation for accessibility.

Using the Shortcode

Every saved form gets a unique shortcode shown in the Shortcode section of the form builder and on the Forms list. Paste it into any post, page, or widget area that supports shortcodes:

[skt_forms id="1"]

The shortcode accepts a single attribute, id — the numeric ID of the form to display. There is no other configuration available through the shortcode itself; all form behavior is controlled from the form builder.

Field Types

SKT Forms includes 20 field types, covering everything from a simple text box to a fully calculated order line item. Add a field with the Add Field button in the form builder, or use one of the four Quick Add shortcuts (Name, Email, Phone, Message) for the fields you'll need on almost every form.

SKT Forms field builder showing a list of added fields
The Form Fields panel lists every field on the form with its type, and lets you edit, remove, or drag to reorder.
Field TypeBest used for
TextShort single-line answers — names, company, job title, subject line.
EmailEmail addresses, with built-in format validation.
PhonePhone or mobile numbers.
NumberAny numeric-only value — age, quantity, a reference number.
TextareaLonger free-text answers — messages, comments, project briefs.
DropdownA single choice from a longer list of options, shown as a select box.
Radio ButtonsA single choice from a short list, with every option visible at once.
CheckboxesOne or more choices from a list — interests, services, add-ons.
Date PickerCalendar-based date entry — appointment date, date of birth, event date.
Time PickerTime-of-day entry — booking slots, preferred call time.
File UploadAttachments — resumes, ID proof, images, documents.
AddressA structured street/city/state/ZIP/country block for shipping or billing.
RatingA star rating for feedback, reviews or satisfaction surveys.
Section DividerVisually breaks a long form into labeled sections — no input, organization only.
Amount SelectionA fixed list of payable amounts to choose from — ticket tiers, donation levels.
Custom AmountA free-entry payable amount — "pay what you want" donations, custom quotes.
CalculationA value automatically computed from other fields — tax, totals, BMI, scores.
Product Item (Qty × Price)An order line item with quantity, unit price and an auto-calculated total.
SliderA range input for picking a numeric value between a minimum and maximum.
HTML / Custom ContentCustom HTML content or instructions inserted between fields — not an input.

Every field, regardless of type, shares four common settings:

SettingDescription
Field LabelThe visible question or field name. Also used to auto-generate the Field ID.
Field IDA unique, auto-generated identifier used internally and in email placeholders (e.g. full_name). Read-only.
Placeholder TextFaint hint text shown inside an empty field.
Required FieldWhen checked, the form cannot be submitted until this field has a value.
Field Width (Column)How much row width the field occupies — see Field Layout.
SKT Forms field editor modal
The field editor: set the label, placeholder, required status, column width and validation rules for any field.

Basic input fields

text

Text

Used for any short, single-line answer — full name, company name, subject line, reference number.

Renders as a standard text input. No type-specific options beyond the common field settings.

email

Email

Used to collect an email address. Combine with Payment Gateways — every gateway needs an email field on the form.

Adds automatic email-format validation in the browser and on the server, on top of the common field settings.

tel

Phone

Used to collect a phone or mobile number, e.g. for order confirmations or gateway checkout prefill.

Renders as a telephone-type input. Pair with the phone validation rule (see Validation Rules) to enforce a valid phone format.

number

Number

Used for any numeric-only value that isn't a payment amount — age, headcount, a quantity, a reference number.

The server rejects any non-numeric submission. Pair with the min_value / max_value validation rules to enforce a numeric range.

textarea

Textarea

Used for longer free-text answers — a message, comments, a project brief, special instructions.

Renders as a multi-line text box. No type-specific options beyond the common field settings.

Choice fields

select

Dropdown

Used when a visitor should pick exactly one option from a longer list, without taking up much vertical space — country, department, service type.

Options: an editable list of choices; any option can be marked Selected to pre-select it as the default value.

radio

Radio Buttons

Used when a visitor should pick exactly one option from a short list, and you want every option visible at a glance — plan tier, yes/no/maybe.

Options: same editable option list as Dropdown, with one option markable as the default selection.

checkbox

Checkboxes

Used when a visitor can pick more than one option — interests, add-on services, newsletter opt-ins.

Options: same editable option list; submits as an array of every option the visitor checked, so it can be referenced in conditional logic and exports.

Specialized fields

date

Date Picker

Used for any date input — appointment date, date of birth, event date, deadline.

Date Format: DD-MM-YYYY. The date picker displays dates in day-month-year format.

time

Time Picker

Used for time-of-day input — a booking slot, a preferred call-back time.

Time Format: 24-hour format with minute by minute selection.

file

File Upload

Used to collect attachments — a resume, ID proof, a reference image, a signed document.

Allowed File Types: a comma-separated list of extensions (e.g. jpg,png,pdf,doc). Max File Size: 1–100 MB (default 10 MB).

Note For stricter enforcement, add file_type / file_size rules under Validation Rules on the field — these take priority over the basic Allowed File Types / Max File Size settings.
address

Address

Used to collect a structured mailing or billing address instead of one free-text field.

Sub-fields: choose which of Street Address, City, State/Province, ZIP/Postal Code, and Country to include (all five are included by default). Each selected sub-field renders as its own input; ZIP codes are format-validated on the server.

rating

Rating

Used for feedback and review forms — "How would you rate our service?"

Maximum Rating: 5 Stars or 10 Stars. Renders as a row of clickable stars.

slider

Slider

Used to pick a numeric value visually within a defined range — a budget range, a satisfaction score, a percentage.

Options: Minimum Value, Maximum Value, Step Value. Renders as a draggable range control with a live numeric readout.

Payment & calculation fields

amount

Amount Selection

Used to offer a fixed menu of payable amounts on a payment form — ticket price tiers, donation levels, package pricing.

Options: a repeatable list of Label + Amount pairs (e.g. "Bronze — 500", "Gold — 1500"). The visitor picks one, and it becomes part of the total charged.

custom_amount

Custom Amount

Used when the visitor should choose their own amount to pay — "pay what you want" donations, custom deposits or quotes.

Renders as a plain numeric input (minimum 0.01) that feeds directly into the payment total. No additional options.

calculation

Calculation

Used to show a value automatically derived from other fields on the form — a tax amount, a shipping fee, a BMI or age calculator, a weighted score.

Formula: reference any other field with {field_id} tokens and standard math operators — + − × ÷ % ^ ( ). Use the Insert Field button to browse and insert field tokens without typing IDs by hand, and the live Formula Preview to check the result as you build it.

Other options: Decimal Places (0–4), Prefix (e.g. a currency code), Suffix (e.g. "%"), custom Help Text, and Add this value to the form's Total Amount.

Example Leave "Add to Total Amount" off for an informational calculation like BMI or a quiz score. Turn it on for a calculation that should actually be charged, like tax or a delivery fee.
product_item

Product Item (Qty × Price)

Used to build an order form — each Product Item field is one line item with a quantity, a unit price, and an automatically calculated line total.

Options: Default Unit Price (0 lets the visitor enter their own price), Default Quantity, whether the Price is Editable by the visitor, Currency (around 55 currencies supported), Calculation Type (Quantity × Price or Quantity + Price), and Add to Grand Total (on by default).

Layout & content fields

section

Section Divider

Used to visually break a long form into labeled sections — not an input, purely organizational.

Section Style: Simple Divider, Boxed Section (shows a title and description in a bordered box), or Card Style (shows a title and description in a card-style block).

html

HTML / Custom Content

Used to insert custom formatting, instructions, or embedded content between fields — a paragraph of instructions, a disclaimer, an embedded video or image.

HTML Content: a raw HTML text box, rendered safely (scripts and unsafe tags are stripped) between the surrounding fields.

Validation Rules

Validation rules help make sure visitors enter valid, accurate information before they can submit the form. Add one or more rules to any field from its editor.

SKT Forms validation rules panel
Add validation rules to a field, including cross-field rules that compare it against another field on the same form.

How to add a validation rule

Note Leave the custom validation message empty to use SKT Forms' default error message for that rule.
RuleApplies toWhat it checks
emailAny text fieldThe value must be a valid email address.
urlAny text fieldThe value must be a valid URL.
phoneAny text fieldThe value must be a valid phone number.
min_lengthText-based fieldsThe value must contain at least the specified number of characters.
max_lengthText-based fieldsThe value must not exceed the specified number of characters.
min_valueNumber fieldsThe numeric value must be greater than or equal to the specified minimum.
max_valueNumber fieldsThe numeric value must be less than or equal to the specified maximum.
patternAny text fieldThe value must match a custom regular expression you provide.
file_typeFile Upload fieldsRestricts uploads to a comma-separated list of file extensions.
file_sizeFile Upload fieldsRestricts the maximum upload size, in MB.

Cross-field validation

SKT Forms also supports validation rules that compare a field's value to another field on the same form — useful whenever one field's correctness depends on another.

RulePurpose
equals_fieldThe field's value must match the value of another field — e.g. Confirm Email must equal Email.
not_equals_fieldThe field's value must be different from the value of another field.
greater_than_fieldThe field's value must be numerically greater than another field's value — e.g. an End Date after a Start Date.
less_than_fieldThe field's value must be numerically less than another field's value.
depends_on_fieldThe field only becomes required if another field currently has a specific value.
Example Use equals_field on a Confirm Email or Confirm Password field to make sure both entries match before the form can be submitted.

Conditional Logic

Conditional logic shows, hides, enables or disables a field based on the value of another field — for example, revealing a "Company Name" field only when the visitor selects "Business" as their account type. Rules are organized into Rule Groups in the form builder, below the field list.

Actions

ActionEffect on the target field
Show FieldReveals a hidden field when the condition is met.
Hide FieldHides the field when the condition is met.
Field EditableEnables (unlocks) the field for editing.
Field Read-onlyDisables the field so it can't be edited.

Operators

SKT Forms supports 21 comparison operators, giving you fine control over exactly when a rule fires:

OperatorTrue when…
equalsthe field's value exactly matches the comparison value.
not_equalsthe field's value does not match the comparison value.
containsthe field's value contains the comparison text.
not_containsthe field's value does not contain the comparison text.
greater_thanthe field's numeric value is greater than the comparison value.
greater_than_or_equalthe field's numeric value is greater than or equal to the comparison value.
less_thanthe field's numeric value is less than the comparison value.
less_than_or_equalthe field's numeric value is less than or equal to the comparison value.
betweenthe field's numeric value falls between two comparison values.
not_betweenthe field's numeric value falls outside two comparison values.
starts_withthe field's value starts with the comparison text.
ends_withthe field's value ends with the comparison text.
regex_matchthe field's value matches a regular expression.
in_listthe field's value matches one item in a comma-separated list.
not_in_listthe field's value matches none of the items in a comma-separated list.
is_emptythe field currently has no value.
is_not_emptythe field currently has a value.
is_nullthe field has never been set.
before_datethe field's date value is before the comparison date.
after_datethe field's date value is after the comparison date.
within_daysthe field's date value falls within a number of days from today.
Note Conditional logic is enforced on both sides — instantly in the browser as the visitor fills out the form, and again on the server when the form is submitted, so rules can't be bypassed by disabling JavaScript.

Payment Gateways

SKT Forms connects to six payment options, configured under SKT Forms → Payments. Enable the gateways you want to accept, add your credentials, then select them on any form with Payment Collection turned on.

SKT Forms Payments gateway list
Each gateway has its own enable toggle and credential fields. Cash on Delivery is available for orders that don't need an online charge.
GatewayCurrenciesCredentials neededNotes
RazorpayINR, USDKey ID + Key Secret (test & live), optional Webhook SecretChoose Flash (instant payment link) or Normal (redirect to Razorpay Checkout) checkout method.
PayUINR, USDMerchant Key + Salt Key (test & live), optional Auth HeaderGenerates a secure, hash-signed payment form for checkout.
PayPal~90 currencies incl. USD, EUR, GBP, INRClient ID + Client Secret (test & live)Renders PayPal's own Buttons widget on the form for checkout.
PhonePeINROAuth Client ID + Client Secret + Client Version (test & live)Uses PhonePe's SDK v2 OAuth token flow.
InstamojoINRAPI Key + Auth Token (test & live)Popular for Indian merchants; supports cards, UPI, netbanking and wallets.
Cash on DeliveryINR, USD, EURNone required for useAn always-offline option for collecting orders without an online charge — supports a ₹0/$0 amount.
Every gateway needs the same two fields Whichever gateway you use, the form must include a field with a Name and a field with an Email — use the Quick Add "Name" and "Email" buttons in the field editor so the gateway always has a customer to bill.
Testing payments Every gateway supports a Test Mode using sandbox credentials from your gateway account, so you can walk through a full checkout without moving real money before going live.

Common Payment Settings

Below the gateway list on the Payments screen, Common Settings controls what happens after a payment attempt finishes, and where global payment email notifications are sent.

Success / Failure / Cancel page handling

Pick a WordPress page to redirect customers to for each outcome. Use the Create Default Payment Pages button to auto-generate sample pages with working placeholders already inserted.

PageAvailable placeholders
Success Page[TRANSACTION_ID], [AMOUNT], [DATE], [CUSTOMER_NAME], [CUSTOMER_EMAIL], [PAYMENT_STATUS]
Failure Page[TRANSACTION_ID], [AMOUNT], [DATE], [FAILURE_REASON]
Cancel Page[TRANSACTION_ID], [AMOUNT], [DATE]
Different placeholder style Success/Failure/Cancel pages use square-bracket placeholders like [AMOUNT], which is different from the curly-brace {amount} placeholders used in email templates — see Placeholders.

Payment notifications

Set a global Admin Email for payment alerts and toggle Enable email notifications for payments on or off for the whole site.

Transactions

Every payment attempt and every data-collection submission is logged under SKT Forms → Transactions, whether or not money changed hands.

SKT Forms Transactions list
Filter transactions by status, gateway or date range, export selected rows, or open a transaction to see the full submitted data.
StatusMeaning
PendingA payment was started but the gateway hasn't confirmed the outcome yet.
SuccessThe payment completed successfully.
FailedThe payment attempt was declined or errored.
Data CollectionThe form has no payment attached — this is a plain form submission.

Stat tiles at the top show Total Form Submissions, Successful Payments and Pending Payments. Filters let you narrow the list by status, gateway and date range. Bulk actions include Delete, Export Selected, and Approve (to manually mark a pending or Cash on Delivery order as paid). Click View on any row to see the full submitted data and gateway response for that transaction. Export the list as CSV, JSON, or Excel.

Spam Protection

SKT Forms offers four ways to keep bots from submitting your forms, configured under SKT Forms → Integration for the three external services, and directly on each form for Math Captcha.

SKT Forms Integration with External API page
Configure each captcha provider once here, enable it, then select it as a form's Spam Protection option.
ProviderWhat you need
Math CaptchaNothing external — built in. Choose an Operation (Addition, Subtraction, Multiplication, or Mixed) and a Difficulty (Easy, Medium, Hard) directly on the form.
Google reCAPTCHASite Key and Secret Key from the Google reCAPTCHA admin console (v2 "I'm not a robot" checkbox).
Cloudflare TurnstileSite Key and Secret Key from the Cloudflare Turnstile dashboard.
hCaptchaSite Key and Secret Key from the hCaptcha dashboard.
Note Only one captcha runs per form, and a provider only appears in a form's Spam Protection dropdown once it's been enabled and configured here.

Email Notifications

SKT Forms sends up to six kinds of email, depending on whether a form collects payment. Manage the four payment emails globally, and customize any of the six per form.

SKT Forms Email Notifications forms list
Every form is listed with whether it's using the site defaults or has been customized.
NotificationSent toTrigger
Payment SuccessCustomerA payment completes successfully.
Payment SuccessAdminA payment completes successfully.
Payment FailedCustomerA payment attempt fails.
Payment FailedAdminA payment attempt fails.
New Submission NotificationAdminA non-payment (data collection) form is submitted, if that form's "Send Email Notification" is on.
Submission ConfirmationCustomerA non-payment form is submitted. Off by default — enable it per form.
SKT Forms per-form email notification editor
Each form has its own sender settings and editable subject/message for all six notification templates, plus a list of that form's field placeholders.

Sender settings

SettingDescription
Admin EmailWhere admin-facing notifications are delivered.
From NameThe sender name shown to recipients.
From EmailThe sender address used to send the email.

Settings follow a fallback order: a per-form setting always wins if you've set one; otherwise the global Email Notifications setting is used; otherwise SKT Forms falls back to your site's default admin email and name.

Placeholders

Type these directly into any notification Subject or Message field — they're replaced with real values when the email is sent.

PlaceholderDisplays
{transaction_id}The transaction ID.
{amount}The payment amount, formatted with the transaction's currency.
{customer_name}The customer's name.
{customer_email}The customer's email address.
{payment_date}The date and time of the payment.
{payment_method}The gateway used, shown by its display name (e.g. "Cash on Delivery").
{form_title}The title of the submitted form.
{site_name}Your WordPress site's name.
{all_fields}An automatically formatted table of every field submitted on the form.
Per-field placeholders Every field on a form also gets its own placeholder, in the form {field_<field id>} — for example {field_full_name} or {field_estimated_budget} — so you can insert one specific answer into the email instead of the full {all_fields} table. The full list for each form is shown at the bottom of that form's email editor.

Analytics Dashboard

The Analytics Dashboard shows how visitors actually interact with a form — not just whether they submitted it, but where they dropped off along the way.

SKT Forms Analytics Dashboard
Filter by form, date range and event type; view the metric cards; export or drill into individual tracked events.

Metrics

MetricDescription
Total EventsEvery tracked event for the selected form and filters, of any type.
Field InteractionHow many times visitors interacted with individual fields.
Form ViewsHow many times the form was displayed to a visitor.
Form StartsHow many visitors began filling the form out.
Form CompletionsHow many visitors successfully completed and submitted the form.

Tracked event types

EventCaptured when…
form_viewThe form is rendered on the page.
form_startA visitor first interacts with the form.
field_interactionA visitor interacts with any individual field.
validation_errorA field fails validation.
form_submitThe form is submitted (before payment/validation completes).
payment_startA payment flow begins.
payment_completeA payment succeeds.
payment_failedA payment fails.
form_completeThe submission finishes successfully end-to-end.
form_abandonA visitor leaves the page without completing the form.

Use the Select Form, From/To Date and Event Type filters to narrow the data, then Apply Filters. The events table below shows every matching event with its type, data, visitor IP, session ID, referrer and timestamp — click View Details on any row for the full event payload. Export the filtered data as CSV, JSON, or Excel.

Frequently Asked Questions

How do I create my first payment form?

Go to SKT Forms → Forms → Add New, fill in the form title and description, add the fields you need (including a Name and Email field), turn on Payment Collection, select a gateway, and save. Then paste the generated shortcode onto any page or post.

Which payment gateways are supported?

Razorpay, PayU, PayPal, PhonePe, Instamojo, and Cash on Delivery — see Payment Gateways for details on each.

Can I customize the form's appearance?

Yes. SKT Forms outputs a set of predictable CSS classes you can target with your own theme's stylesheet:

ClassTargets
.skt-forms-form-wrapperThe overall form container.
.skt-forms-fieldAn individual field wrapper.
.skt-forms-field-labelField labels.
.skt-forms-field-inputField inputs.
.skt-forms-submit-btnThe submit button.

How do I test payments before going live?

Enable Test Mode in the gateway's settings and use its sandbox credentials. Common test cards:

GatewayTest cardResult
Razorpay4111 1111 1111 1111Success
4000 0000 0000 0002Failure
PayU4012 0000 0000 0000Success
4000 0000 0000 0002Failure

Troubleshooting

Payments not processing

Form not displaying

Webhook issues

Enable debug logging Add the following to wp-config.php for detailed error logging while troubleshooting:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);