=== CustomFields.com – Custom Fields & Custom Post Types ===
Contributors: pluginsshop
Tags: custom fields, custom post types, custom taxonomies, repeater, gutenberg
Requires at least: 6.5
Tested up to: 7.1.4
Requires PHP: 7.4
Stable tag: 1.2.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build custom fields, repeaters, custom post types, taxonomies and options pages. Display content with blocks and shortcodes. Free.

== Description ==

CustomFields.com is a **WordPress custom fields plugin and visual content builder**. Create field groups, custom post types and taxonomies, then enter and display structured content from your WordPress site.

**Free includes all 26 field types**, including repeater fields, flexible content, galleries, relationships and reusable groups. Custom post types and options pages are also included. No account or licence is required for Free.

= Custom fields, repeaters and conditional logic =

* Build field groups visually with starter kits, drag-and-drop ordering and previews.
* Add text, rich text, numbers, dates, images, files, galleries and choice fields.
* Use repeaters for rows of content and flexible layouts for different row structures.
* Show fields conditionally and validate entries. Hidden fields retain their saved values.
* Add editing controls to posts, pages, custom post types, user profiles and existing taxonomy terms.

= Custom post types, taxonomies and options pages =

Organize team members, projects or other records with a custom post type (CPT). Group content with custom taxonomies, connect records using relationship fields, and keep shared settings on named options pages. Configure these structures in the admin interface.

For example, give each team member a role and portrait, add project details to a portfolio, or store a repeatable list of specifications. Choose where each field group appears before entering values.

= Display fields with blocks, shortcodes or PHP =

Use the **Custom field block** in the WordPress block editor (Gutenberg) for saved text and media. The **Custom field repeater block** displays selected direct children as a list or table. Create named blocks with their own controls and values.

The Use your fields guide provides a field picker and Copy shortcode action. Add `format="html"` to render images, file links and galleries; existing plain shortcodes keep their original output. PHP helpers, block bindings and authenticated REST integration are included for developers. Nested collections and more complex layouts need an appropriate template.

= Review and maintain your content =

Free also includes read-only CSV comparisons, content checks, JSON definition imports, schema history and compatible field revisions. Review supported migrations from ACF, Secure Custom Fields or Meta Box while preserving source values. Templates and arbitrary third-party structures are not automatically converted.

= When you need Pro =

The separate Pro add-on adds the directory/listing builder, visitor search, reviewed CSV updates, submission approvals, bulk editing, deployment, content transfers and scheduled checks with report history. Existing saved listings render in Free; creating or changing listing definitions requires activated Pro.

Pro requires Free and one successful licence activation on the site. Optional marketing choices are separate.

[Documentation](https://customfields.com/docs/) | [Compare Free and Pro](https://customfields.com/pricing/) | [Free support](https://wordpress.org/support/plugin/customfields-com/)

= Related plugins from Plugins.shop =

Optional tools from our team, installed separately. They are not required by CustomFields.com and do not automatically connect to its fields.

* [CatalogFAQ – FAQ accordions and reusable answers](https://wordpress.org/plugins/catalogfaq-product-answers/) — Reuse answers across content pages. WooCommerce is required only for product FAQ features.
* [KillerConversions – WordPress contact form builder](https://wordpress.org/plugins/killerconversions/) — Collect enquiries and project briefs in local WordPress entries.
* [Logged.ai – WordPress activity log](https://wordpress.org/plugins/logged-ai/) — Review supported content and settings changes when investigating site edits.

== Installation ==

1. Install and activate CustomFields.com – Custom Fields & Custom Post Types.
2. Create a field group, choose where it appears and save.
3. Choose Enter values, complete the fields in the matching WordPress editor and save the content.
4. Preview saved values, then follow the group-specific block, shortcode or template instructions to display them.

Back up before updating. Update Free to 1.2.4 first; the existing Pro 1.2.2 add-on remains compatible. Do not uninstall to upgrade. For the earlier customfields folder, deactivate that Free copy before activating customfields-com and keep it inactive. Saved data retains its identifiers.

== Screenshots ==

1. Review an explicit saved storage-key change in the Free field builder. Fictional project example.
2. Preview saved values and choose a field shortcode in Use your fields. Fictional project example.
3. Explore the bundled Plugins.shop collection, with the Free Pro previews switch and More Plugins navigation.

== Frequently Asked Questions ==

= Are repeater fields and custom post types free? =

Yes. All 26 field types, repeaters, flexible content, relationships, custom post types, taxonomies and options pages are included in Free. No account or licence is required. Pro adds the separate workflows listed above.

= How do I display a custom field on a page? =

Save a value, then insert the Custom field block or copy its shortcode from Use your fields. For example, `[customfield name="job_title"]` displays a saved scalar value. The field group must match the current content. Developers can also use the bundled PHP helpers.

= Why does an image shortcode show an attachment ID? =

Plain shortcodes preserve their original text or ID output. Use `[customfield name="portrait" format="html"]` for an image field; the same format supports file links and galleries. Uppercase HTML and surrounding spaces are accepted. Other format values, including "url", are unsupported and retain the original output. Media output respects attachment access.

= How do I display repeater rows? =

Insert the Custom field repeater block, choose a matching repeater and select the direct child fields to display as a list or table. You can choose fields before saving a new post or page, but the preview uses saved values. Nested groups and flexible layouts need templates; a plain repeater shortcode does not render a collection.

= Does it work with Elementor? =

Elementor Free supports the field-value and saved-listing widgets. Creating or changing a listing requires CustomFields.com Pro. The dynamic tag requires Elementor's own supported edition, normally Elementor Pro; no Elementor licence is included.

= Can I import existing fields and values? =

JSON definition imports and supported value migrations are separate, reviewed workflows. Source values are preserved. Existing theme templates and arbitrary third-party structures are not automatically converted. Check the bundled developer guide for adapter limits and test on staging. SCF 6.9.8 can deny source metadata access by default; see docs/SCF-CONVERSION.md for the explicit authorization requirement.

= What happens when I deactivate the plugin or Pro expires? =

Stored definitions and content are retained; plugin-powered tools require the relevant plugin to run. Activated local Pro tools continue through ordinary expiry or temporary outages. Explicit disconnection locks new Pro work and pauses workers. Active entitlement governs private downloads and support.

= What limits should I check before a larger project? =

Schemas allow 100 groups, 200 fields per group, three composite levels and 1 MB JSON imports. Hosting limits can be smaller. Comment, menu and network-settings targets are not supported. See README.md and docs/FEATURE-REFERENCE.md for permissions, storage, rendering and migration limits.

== Changelog ==

= 1.2.4 =
* Restore relationship settings for newly added and saved fields in the main builder.
* Explain migration source-access failures and preserve source and destination permission checks.
* Show completed and restored migration states without idle automatic-run controls.
* Warn early about unsupported options storage and clarify relationship, display and Free/Pro documentation.

= 1.2.3 =
* Recheck attachment access when rendering media and authored blocks.
* Isolate broken linked definitions so unrelated field groups remain writable.
* Add personal-data handling for registered user fields and saved Free CSV checks; contain malformed welcome choices.

= 1.2.2 =
* Accept uppercase and whitespace around the formatted shortcode option, preserving legacy output.
* Keep image, file and gallery shortcodes valid inside paragraphs.
* Make deliberate field opening easier to leave and clarify saved-value previews.

= 1.2.1 =
* Display images, files and galleries with an opt-in formatted shortcode. Existing shortcodes keep their output.
* Add the Free Custom field repeater block with chosen child fields and list or table layouts.
* Open matching fields deliberately from the WordPress editor and use field-specific display guidance.


= 1.2.0 =
* Add native Plugins.shop attribution and a bundled More Plugins collection.
* Add a per-account Pro previews switch in Free; installed Pro keeps its own tools and licence navigation.
* Align numeric conditional comparison text between PHP and the browser without rewriting saved rules or values.
* Require explicit confirmation in the field builder before changing a saved storage key. Existing values are retained, not moved.
* Add a field picker and Copy shortcode action to Use your fields, and link onboarding goals to explicit starter-kit choices.

Earlier release notes are included in changelog.txt.

== Upgrade Notice ==

= 1.2.4 =
Restores relationship settings and improves migration and database guidance. Existing stored values and shortcode output are retained. Update without uninstalling.

= 1.2.3 =
Update for media access checks, linked-definition isolation and privacy-tool fixes. Back up first, then update Free without uninstalling; existing Pro 1.2.2 remains compatible.

== Privacy ==

Free content tools need no account or external service. Goals, display preferences, private CSV comparisons, content checks and optional workflow counts remain on your WordPress site. Optional counts are off by default. A deliberately selected Pro workflow is remembered locally for seven days; preview visits are not tracked. Optional welcome choices are described separately below. WordPress personal-data tools include current registered profile values for the matching WordPress account and matching email tokens in saved Free CSV checks. CSV erasure clears derived comparisons; unrelated source cells remain. Retained or damaged data is reported for administrator review. Removed definitions, other content, historical storage, backups and separate Pro workflow history may require manual review; see README.md for scope.

== Source code and development ==

The complete, readable PHP, JavaScript and CSS source is included in this plugin. The files under assets/ (including nested directories) are the editable source and are loaded directly by WordPress; there are no separate minified bundles or missing build inputs. No compilation, npm or Composer installation is required. See the bundled SOURCE.txt for source locations, editing and packaging steps, optional syntax checks, translation commands and dependency attribution.

Self-hosted DM Sans fonts are licensed under SIL OFL 1.1; see assets/fonts/OFL.txt. Font project source: https://github.com/googlefonts/dm-fonts


== Optional welcome service ==

After a meaningful save, CustomFields offers two independent, initially unchecked choices. You can continue without sharing and use every Free tool. Reopen Welcome choices from the plugin workspace at any time.

Domain registration sends only the displayed public hostname to https://customfields.com/newsletter-api/v1/customfields-welcome/ with a random connection identifier, authentication token, consent version and request timestamp. It does not send the full URL, WordPress/PHP versions, language, edition, field definitions or content. The registration expires after 90 days unless you explicitly refresh it. No background registration or status requests run. The server sees ordinary network connection information such as the source IP.

Email signup independently sends your entered email address and the same kind of consent/connection metadata to that service. Email-only signup does not attach the site domain in its payload or User-Agent. Inbox confirmation is required before new marketing email eligibility. An existing subscriber keeps their preferences; a submitted request does not guarantee a new confirmation email.

Use the separate Remove site registration and Stop these emails actions to withdraw a linked choice. Email withdrawal stops this connection's own confirmed signup; independently existing subscriptions remain managed through their email preference/unsubscribe links. Failed withdrawals retain a local retry option and do not silently resubmit enrollment. Deactivating or removing the plugin is not a remote unsubscribe request.

Local saved choices, the selected domain/email and protected request credentials remain in this WordPress database until you remove that choice. A matching WordPress personal-data erasure request can also remove the email choice; domain registration is independent. Remote expiry does not automatically erase the local record. A removal attempt immediately clears its local domain/email payload; a protected request credential and, for email retry matching, a keyed email reference can remain until remote removal is confirmed.

Domain records are retained for up to 90 days. Pending newsletter requests expire after 48 hours; confirmed subscriptions follow the newsletter retention policy. Withdrawal markers prevent delayed requests from reinstating withdrawn choices. These choices are independent of Pro licence activation and optional update checks.

Privacy: https://customfields.com/privacy/
Newsletter choices and retention: https://customfields.com/newsletter/privacy
Terms: https://customfields.com/terms/
