=== Omusubi ===
Contributors: kanedashinya
Donate link: https://uuuu.to/
Tags: forms, contact form, form builder, drag and drop, submissions
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.2.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Drag-and-drop mail form builder for WordPress. Build pro-grade forms — contact, lead capture, surveys, prize entries — with just clicks and drags.

== Description ==

**Omusubi** is a powerful WordPress form plugin with a visual builder right in the admin screen.

With just clicks and drag-and-drop, you can build the variety of forms a business actually needs: contact forms, lead capture forms, surveys, prize entries, recruitment applications and more. Submissions are managed from a tabular view in the admin and can be exported as CSV. Slack notifications, Google Sheets integration, reCAPTCHA, time-limited acceptance windows — everything you need for day-to-day operation is bundled in a single plugin.

= Key features =

**Form building**

* **Drag-and-drop visual builder** — 15+ field types (text, email, phone, postal code, textarea, select, radio, checkbox, number, date, time, URL, file, heading, separator, hidden)
* **12 templates** — contact / lead capture / survey / event signup / recruitment / reservation / prize entry / quote request / free consultation / trial lesson / product order / press inquiry
* **2-column layout** — place two fields on the same row
* **Conditional display** — show/hide fields based on the value of other fields
* **Shortcode support** — paste `[omusubi id="1"]` into any post or page

**Notifications & integrations**

* **Admin notification + auto-reply emails** — customizable subject and body
* **Slack notification** — push submissions to a specified channel in real time via Incoming Webhooks (v1.1)
* **Google Sheets integration** — append each submission as a new row via Apps Script Web App, just like Google Forms (v1.1)
* **SMTP support** — reliable delivery via Gmail / SendGrid / any SMTP server
* **Google reCAPTCHA v2 / v3** — spam protection built in, with score thresholds adjustable from the admin

**Operation**

* **Tabular submission management** — status workflow (Unread / Read / Replied / Archived), CSV download (opt-in, disabled by default)
* **Time-limited acceptance** — for campaigns like prize giveaways, reject submissions outside a configured window
* **Auto-generated preview page** — verify the actual layout before publishing
* **Privacy policy consent** — custom text, URL link, or inline body accordion

**Japanese form optimizations**

* **Half-width input enforcement** — automatically convert full-width to half-width on email, phone and postal-code fields
* **Postal-code → address autofill** — enter a 7-digit postal code and click to populate the address (uses the Zipcloud API; see "External services" below)
* **Full Japanese support** — UI, templates, and error messages all available in Japanese via the bundled `omusubi-ja.mo`

**Design customization**

* **Design tokens** — 9 structured tokens for radius / field style / label position / button shape / spacing / font / required marker etc. (v1.2)
* **Theme color picker** — 8 presets plus a freeform color picker
* **`omusubi_form_inline_css` filter** — extend CSS dynamically from your theme or a site-specific plugin (developer-oriented)

= Simple workflow =

1. Click "Create new form" from the Omusubi menu
2. Pick a template or start from blank
3. Drag and drop fields into place
4. Configure mail notifications and design
5. Save, copy the shortcode, and paste it into any page

= Browser support =

All modern browsers (latest Chrome, Firefox, Safari, Edge). Internet Explorer is not supported.

== Installation ==

= Automatic install =

1. In the WordPress admin, open **Plugins → Add New**
2. Search for "Omusubi"
3. Click **Install Now**, then **Activate**

= Manual install =

1. Download the plugin zip
2. In the admin, open **Plugins → Add New → Upload Plugin** and select the zip
3. Click **Install Now**, then **Activate Plugin**

= After activation =

An **Omusubi** menu appears in the left sidebar. From there, create your first form.

== Frequently Asked Questions ==

= How do I display a form on a page? =

Each row in the form list shows a shortcode like `[omusubi id="1"]`. Copy it and paste it into a page, post, or the Block Editor's "Shortcode" block.

= Where are forms stored? =

Form definitions are stored in the `{prefix}omusubi_forms` table and submissions in `{prefix}omusubi_submissions` (where `{prefix}` is your site's table prefix, typically `wp_`).

= My auto-reply emails are not being delivered =

1. Make sure the form contains an `email` type field
2. In the **Mail Settings** tab, verify "Send auto-reply to submitter" is enabled
3. WordPress's `wp_mail()` must be working. Depending on your server, also consider using an SMTP plugin (e.g. WP Mail SMTP)

= How does postal-code lookup work? =

Pressing the "Look up address" button next to a postal-code field sends the 7-digit postal code to the third-party Zipcloud API from the browser and receives the matching address. See the "External services" section for details. This feature only activates when a "Target address field" has been configured in the form editor.

= Can I make a limited-time entry form? =

Yes. In the **Mail Settings** tab, the "Acceptance period" section lets you set a start and end date/time. Outside that window, the form is hidden and a notice message is shown instead. Validation also runs on the server side, so direct submissions that bypass the frontend JS are blocked too.

= What happens to my data if I uninstall the plugin? =

By default, uninstalling Omusubi drops the database tables, options, and the preview page. To keep the data, set the option `omusubi_keep_data_on_uninstall` to `1` **before** deleting the plugin (e.g. `wp option update omusubi_keep_data_on_uninstall 1` via WP-CLI).

= How does the plugin handle spam? =

Out of the box, Omusubi uses WordPress nonces and required-field validation. To better protect against automated submissions, enable the bundled reCAPTCHA integration or use the time-limited acceptance window to narrow the entry window.

= Is Omusubi translatable? =

Yes. The plugin's source strings are in English, and a Japanese translation (`omusubi-ja.mo`) is bundled. Translations for other locales can be contributed via translate.wordpress.org.

== Screenshots ==

1. Form list — drag to reorder, copy the shortcode in one click
2. Visual builder — drag-and-drop field placement with a detail panel on the right
3. Submission list — tabular view with status workflow and CSV download

== Changelog ==

= 1.2.5 =
* All translatable source strings switched from Japanese to English to follow WordPress.org translation conventions. Japanese display is provided via the bundled `omusubi-ja.mo` translation file.
* Plugin description and readme converted to English.

= 1.2.4 =
* Confirmed compatibility with WordPress 7.0.

= 1.2.3 =
* Added an "Official Site" link to the plugin row on the Plugins admin page (https://omusubi.uuuu.to/).
* Also added an "Official Site" link to the license-purchase banner.
* Moved the "Create new form" button on the form-list page to right below the license banner, left-aligned (better flow).

= 1.2.2 =
* Added a "Buy License" link to the plugin row on the Plugins admin page.
* Show a license-purchase notice banner at the top of Omusubi admin screens (Omusubi-related screens only, dismissible per user, re-shown after 30 days).
* Selecting "Already purchased" hides the banner permanently (honor-system shareware model).
* No functional changes — display only.

= 1.2.1 =
* Updated plugin metadata — Author changed to "foryou, inc." and Plugin URI to https://omusubi.uuuu.to/.
* Refreshed the description to clearly position Omusubi as a mail form plugin and reorganized the feature list to include Slack notification / Google Sheets integration / design tokens (new in v1.2).

= 1.2.0 =
* Reworked the Design tab — 9 structured tokens (radius, field style, label position, button shape, spacing, font, required marker, icon visibility) for visual customization.
* All token values are whitelisted (no arbitrary CSS / JS / PHP is stored — fully compliant with WordPress.org review guidelines).
* CSS variables + data attributes (e.g. `data-field-style`) are emitted via `wp_add_inline_style` (form-scoped).
* Public `omusubi_form_inline_css` filter — themes and site-specific plugins can extend CSS dynamically (developer extension point).
* Existing theme-color switching continues to work as before.

= 1.1.1 =
* Removed the per-form Custom CSS field (to comply with WordPress.org plugin review guidelines).
* Cleaned up the associated admin UI, JavaScript and frontend `wp_add_inline_style` output, and removed the `custom_css` field from the settings save path.

= 1.1.0 =
* Added Slack notification — push submissions to a specified channel via Slack Incoming Webhooks.
* Added Google Sheets integration — append submissions row-by-row through a Google Apps Script Web App (Google Forms-equivalent operation).
* Webhook URLs are validated against a host-name whitelist (checked both on save and on send).
* Both integrations can be toggled per form (disabled by default).

= 1.0.0 =
* Initial release.
* Visual form builder (15+ field types).
* 12 form templates.
* Admin notification and auto-reply mail.
* Tabular submission management with CSV export (opt-in, disabled by default).
* Time-limited acceptance (for prize-entry campaigns and similar).
* Postal-code → address autofill (Zipcloud API integration).
* Half-width input enforcement (email / phone / postal code).
* 2-column layout.
* Conditional display.
* Auto-generated preview page.
* Privacy policy URL / inline accordion display.
* Google reCAPTCHA v2 / v3 integration (toggled in global settings).
* Theme color switching (preset + color picker).
* Local bundling of Font Awesome Free 6.5.1 (no external CDN).
* Multisite-aware uninstall.

== Upgrade Notice ==

= 1.2.5 =
Source strings switched to English to follow WordPress.org translation conventions. Japanese display is provided via the bundled translation file. No functional changes.

= 1.2.4 =
Confirmed compatibility with WordPress 7.0.

= 1.2.3 =
Added Official Site link and improved the new-form flow. No functional changes.

= 1.2.2 =
Added a dismissible license-purchase notice banner on Omusubi admin screens. No functional changes.

= 1.2.1 =
Updated plugin metadata and description. No functional changes (same feature set as 1.2.0).

= 1.2.0 =
Reworked the Design tab. 9 structured tokens (radius, field style, spacing, etc.) for visual customization. New `omusubi_form_inline_css` filter.

= 1.1.1 =
Per the WordPress.org plugin review policy (no arbitrary CSS / JS / PHP storage), the per-form Custom CSS feature has been removed. Theme color switching continues to be available.
