Tanzeel Order Forms & Payments

Description

Tanzeel Order Forms & Payments is an order form plugin for service businesses, agencies and freelancers who sell packages, not products. It is not a general purpose contact form builder and it is not a shop. It covers the part in between: taking an order, getting it paid, and following up when it is not.

What makes it different

  • Unpaid order recovery, built in. When a customer clicks “Proceed to Checkout” the order is saved as Pending with its Order ID. If it is still unpaid after the delay you choose, you and the customer each get one email. The customer’s email carries a signed link that reopens their own order on the payment step, with every field and the chosen package already filled in, so the Order ID never changes and nothing is typed twice.
  • No duplicate orders. Repeated clicks, retries and slow connections update the same pending order instead of creating new ones. The link between a visitor and their order is a server side signed key.
  • Sequential Order IDs per form with your own format (for example Order [ID2326]) and a start number, shown in emails, exports and the payment description at Stripe and PayPal.
  • Package cards with deep links. Priced options render as selectable package cards, and a link like ?package=gold opens the form with that package already selected.
  • Safe test page. Every form has a private, unindexed preview page. With PayPal sandbox keys saved, orders placed there pay through the sandbox while the live form keeps the live keys.
  • Optional orders portal. A noindexed front end dashboard where a team member can follow and manage orders without a WordPress account.

Form builder

  • Drag and drop builder with 17 field types: text, email, phone, URL, number, date, paragraph text, dropdown, radio, checkboxes, file upload, image upload, full address block, hidden field, heading, paragraph and notes.
  • Full width or half width fields, side by side.
  • Required fields, placeholders, default values and help text.
  • Copy fields from one form and paste them into another.
  • Preview any form on a private, unindexed test page before it goes live.

Payments

  • Stripe Checkout and PayPal (PayPal button plus debit or credit card).
  • Priced options shown as package cards, or a fixed price per form.
  • Two step checkout: details first, then an order summary with the payment buttons.
  • Prices are always computed on the server from the saved form, never trusted from the browser.
  • Every payment is confirmed with the gateway (and the Stripe webhook) before an order is marked paid.
  • Separate PayPal sandbox keys for the preview page, so test orders never move real money.
  • Package links: ?package=gold preselects an option.

Orders

  • Sequential Order IDs with your own format, for example Order [ID2326], and a per form start number.
  • Entries screen with search, filters, charts and CSV export.
  • Unpaid order reminders: if an order is still pending after a delay you choose, you and the customer each get one email. The customer’s email carries a secure link that reopens their order on the payment step.

Emails

  • Branded HTML emails for the admin and the customer, editable in a template editor with live preview and a test send.
  • Placeholders such as {order_id}, {customer_name}, {amount}, {fields_table} and {payment_summary}.

Orders portal (optional)

An optional, noindexed front end page where a team member can follow orders without a WordPress account: dashboard, order list, order details, resend emails and CSV export. It is off by default; turn it on and choose its address and login in Settings.

Elementor

A “Tanzeel Order Form” widget with detailed style controls for the form box, labels, fields, buttons, the total box and errors. The shortcode works everywhere else:

[tanzeel_order_form id="1"]

Security

  • Nonces and capability checks on every admin action.
  • Rate limiting and a honeypot against spam submissions.
  • Uploads restricted by type and size, stored with unguessable file names.
  • Prepared SQL statements throughout.

External services

This plugin connects to the payment services below only when you add their API keys in Tanzeel Order Forms > Settings and enable them on a form. Without keys, no data is sent anywhere.

Stripe

Used to take card payments through Stripe Checkout.

  • When a customer pays, the plugin sends the order amount, currency, a description (form title, chosen package and Order ID), the internal order number as metadata, the customer’s email address and the return and cancel URLs to the Stripe API (api.stripe.com) to create a Checkout Session. The customer is then sent to Stripe’s hosted payment page.
  • When the customer returns, and when Stripe sends a webhook request to your site (only if you set a webhook signing secret), the plugin asks the Stripe API for the session status to confirm the payment.
  • Service provided by Stripe, Inc. Terms of service, Privacy policy.

PayPal

Used to take PayPal and card payments through PayPal Checkout.

  • On pages with a payment form, the PayPal JavaScript SDK is loaded from www.paypal.com with your public client ID and currency. The SDK runs in the visitor’s browser and connects to PayPal directly, so PayPal receives the visitor’s IP address and browser details.
  • When a customer pays, the plugin sends the order amount, currency, order description, the internal order number, the return and cancel URLs and your site name to the PayPal REST API (api-m.paypal.com, or api-m.sandbox.paypal.com in sandbox mode) to create and capture the order.
  • Service provided by PayPal. User agreement, Privacy statement.

Credits

  • Sora font by the Sora Project Authors, bundled in fonts/ under the SIL Open Font License 1.1 (see fonts/OFL.txt).

Installation

  1. Upload the tanzeel-order-forms-payments folder to /wp-content/plugins/, or install the plugin from the Plugins screen.
  2. Activate the plugin.
  3. Go to Tanzeel Order Forms > Settings and add your Stripe secret key and/or PayPal client ID and secret.
  4. For Stripe, add a webhook for the checkout.session.completed event pointing to the URL shown in Settings.
  5. Go to Tanzeel Order Forms > Add New, build a form and save it.
  6. Add the form to a page with the shortcode [tanzeel_order_form id="1"] or the Elementor widget.

FAQ

Do I need Stripe and PayPal both?

No. Use either one, both, or neither. A form without payment works as a normal form.

Can I test payments without real money?

Yes. Add PayPal sandbox keys in Settings, then open the form’s Preview page. Orders placed there use the sandbox. For Stripe, use your test secret key (sk_test_).

Where are uploaded files stored?

In the submitflow folder inside your WordPress uploads directory, with a random prefix on every file name.

What happens to my data if I delete the plugin?

Nothing, unless you check “Delete all data on uninstall” in Settings first. Then deleting the plugin removes all forms, entries and settings.

Does it work with page caching?

Yes. The form refreshes its security token before submitting, so it works on cached pages.

Reviews

October 15, 2026
Finding a suitable order management solution for a service-based website can be challenging. This plugin brings several useful features together, including customizable forms, payment processing, and order tracking. The abandoned-order recovery feature is particularly interesting. It looks like a useful option for freelancers and small businesses.
October 15, 2026
A useful addition to the WordPress ecosystem for anyone managing service orders online. Having form customization, payment integrations, and order management in one place can simplify the process for both website owners and customers. I would like to see the plugin continue growing with more integrations and improvements.
Read all 2 reviews

Contributors & Developers

“Tanzeel Order Forms & Payments” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • Review fixes: input sanitizing and output escaping throughout.
  • Order numbers now work on every database, including SQLite.
  • Refreshed admin, settings and email designs.

1.0.0

  • First public release.