{"id":377763,"date":"2026-10-02T18:25:19","date_gmt":"2026-10-02T18:25:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custom-meta-fields-for-fluentcart\/"},"modified":"2026-10-03T17:26:26","modified_gmt":"2026-10-03T17:26:26","slug":"custom-meta-fields-for-fluentcart","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/custom-meta-fields-for-fluentcart\/","author":7757791,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.2","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Custom Meta Fields for FluentCart","header_author":"upfluent.io","header_description":"Unlimited custom product fields for FluentCart, rendered with shortcodes and emitted as Product JSON-LD, plus GTIN, MPN and brand per variation.","assets_banners_color":"161616","last_updated":"2026-10-03 17:26:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/upfluent.io\/fluentcart-custom-meta-fields\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":98,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"projectaaron","date":"2026-10-03 03:37:12","revision":3725731},"1.0.1":{"tag":"1.0.1","author":"projectaaron","date":"2026-10-03 17:26:26","revision":3726540}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3725259,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3725259,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3725259,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3725259,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3725259,"resolution":"1","location":"assets","locale":"","width":1104,"height":1062},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3725259,"resolution":"2","location":"assets","locale":"","width":1400,"height":847},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3725259,"resolution":"3","location":"assets","locale":"","width":970,"height":604},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3725259,"resolution":"4","location":"assets","locale":"","width":1400,"height":952}},"screenshots":{"1":"Add custom fields to FluentCart products on the Custom Fields screen and copy each field's shortcode.","2":"Fill in custom field values in the Custom Meta Fields card in the FluentCart product editor sidebar.","3":"Add a GTIN and MPN to every FluentCart variation, next to the SKU, for Google Shopping structured data.","4":"Custom field values and the selected variation's GTIN on a FluentCart product page, through shortcodes."}},"plugin_section":[],"plugin_tags":[2010,274189,250438,148700,1121],"plugin_category":[],"plugin_contributors":[284057],"plugin_business_model":[],"class_list":["post-377763","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-fields","plugin_tags-fluent-cart","plugin_tags-fluentcart","plugin_tags-gtin","plugin_tags-structured-data","plugin_contributors-projectaaron","plugin_committers-projectaaron"],"banners":{"banner":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/banner-772x250.png?rev=3725259","banner_2x":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/banner-1544x500.png?rev=3725259","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/icon-128x128.png?rev=3725259","icon_2x":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/icon-256x256.png?rev=3725259","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/screenshot-1.png?rev=3725259","caption":"Add custom fields to FluentCart products on the Custom Fields screen and copy each field's shortcode."},{"src":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/screenshot-2.png?rev=3725259","caption":"Fill in custom field values in the Custom Meta Fields card in the FluentCart product editor sidebar."},{"src":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/screenshot-3.png?rev=3725259","caption":"Add a GTIN and MPN to every FluentCart variation, next to the SKU, for Google Shopping structured data."},{"src":"https:\/\/ps.w.org\/custom-meta-fields-for-fluentcart\/assets\/screenshot-4.png?rev=3725259","caption":"Custom field values and the selected variation's GTIN on a FluentCart product page, through shortcodes."}],"raw_content":"<!--section=description-->\n<p>Custom Meta Fields for FluentCart adds custom product fields to FluentCart (also written Fluent Cart), the WordPress eCommerce plugin, plus GTIN, EAN, UPC, ISBN and MPN per variation and a brand per product for Google Shopping. Define a field once and it appears on every FluentCart product edit page, in a Custom Meta Fields card in the editor sidebar, saved with FluentCart's own Update button.<\/p>\n\n<p>Values are stored as real WordPress post meta and registered with <code>register_post_meta()<\/code>, so they are typed, exposed in the REST API, copied when a product is duplicated, and readable by page builders' custom-field dynamic tags.<\/p>\n\n<h4>Who it is for<\/h4>\n\n<ul>\n<li>FluentCart stores that need extra product data: specs, materials, ingredients, sizes, author or ISBN.<\/li>\n<li>Stores selling on Google Shopping or Merchant Center that need a GTIN and MPN on every variation and a brand on every product.<\/li>\n<li>Stores moving from WooCommerce to FluentCart that want to keep their GTINs (Pro import).<\/li>\n<li>Book sellers: products with fields using the IDs <code>spec_isbn13<\/code>, <code>spec_pages<\/code> or <code>spec_authors<\/code> (and similar <code>spec_<\/code> book fields) are marked up as a Book.<\/li>\n<\/ul>\n\n<h4>Free features<\/h4>\n\n<ul>\n<li><strong>Unlimited product fields:<\/strong> text, textarea, number, select, checkbox, URL, email, date and color.<\/li>\n<li><strong>Shortcodes:<\/strong> <code>[upfluent_cmf_field key=\"FIELD_ID\"]<\/code> prints a field anywhere, with the shortcode shown and copyable next to each field.<\/li>\n<li><strong>Product structured data:<\/strong> Product, BreadcrumbList and Organization JSON-LD built live from FluentCart prices, stock, images, store address, return policy and shipping rates.<\/li>\n<li><strong>GTIN, EAN, UPC, ISBN and MPN per variation:<\/strong> FluentCart has a SKU per variation but no GTIN. Add one to every variation, plus a brand per product, with check-digit validation and duplicate detection. They go into Google structured data (as a ProductGroup with one variant per variation), and <code>[upfluent_cmf_gtin]<\/code> shows the selected variation's code.<\/li>\n<li><strong>Fluent look:<\/strong> the settings screen matches the Fluent suite, supports dark mode and loads inside the FluentHub portal.<\/li>\n<li><strong>REST API and WordPress Abilities (MCP):<\/strong> let AI agents and integrations manage your fields.<\/li>\n<li><strong>Permissions:<\/strong> follows FluentCart's own roles for who can define fields and edit values.<\/li>\n<\/ul>\n\n<h4>Pro plugin<\/h4>\n\n<p><a href=\"https:\/\/upfluent.io\/fluentcart-custom-meta-fields\/\">Custom Meta Fields for FluentCart Pro<\/a> is a separate plugin, sold on upfluent.io, that replaces this one and adds:<\/p>\n\n<ul>\n<li><strong>Media fields:<\/strong> images, video, audio or files from the media library, rendered responsively.<\/li>\n<li><strong>Repeater fields:<\/strong> rows of sub-fields with drag-and-drop ordering, and <code>[upfluent_cmf_repeater]<\/code> in list, grid or scrolling-row layouts.<\/li>\n<li><strong>Elementor widgets<\/strong> for media and repeater fields.<\/li>\n<li><strong>Checkout fields:<\/strong> add your own questions to the FluentCart checkout with placement, required and conditional logic. Answers are saved on the order and shown on the order screen, the thank-you page and in emails.<\/li>\n<li><strong>File uploads at checkout,<\/strong> stored through FluentCart's own storage driver (local, S3 or R2).<\/li>\n<li><strong>Identifier import:<\/strong> bring GTINs and MPNs over from WooCommerce (its own GTIN field and the common GTIN plugins), matched on SKU, or import a CSV. Every row is previewed before anything is saved.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate FluentCart.<\/li>\n<li>In Plugins \u2192 Add New, search for \"Custom Meta Fields for FluentCart\", then install and activate it.<\/li>\n<li>Go to FluentCart \u2192 More \u2192 Custom Fields (or Custom Fields in the FluentHub portal).<\/li>\n<li>Add a field, then open any product to fill it in.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20custom%20fields%20to%20fluentcart%20products%3F\"><h3>How do I add custom fields to FluentCart products?<\/h3><\/dt>\n<dd><p>Install this plugin, go to FluentCart \u2192 More \u2192 Custom Fields, and add a field with a title, a field ID and a type (text, textarea, number, select, checkbox, URL, email, date or color). The field then appears in a Custom Meta Fields card in the sidebar of every FluentCart product, saved with FluentCart's Update button.<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20a%20custom%20field%20on%20a%20fluentcart%20product%20page%3F\"><h3>How do I show a custom field on a FluentCart product page?<\/h3><\/dt>\n<dd><p>Use the shortcode <code>[upfluent_cmf_field key=\"FIELD_ID\"]<\/code> in the product description, a page or a widget. Each field shows its ready-to-copy shortcode on the Custom Fields screen. Outside a product, add <code>product_id=\"123\"<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20fluentcart%20custom%20fields%20in%20elementor%20or%20other%20page%20builders%3F\"><h3>Can I use FluentCart custom fields in Elementor or other page builders?<\/h3><\/dt>\n<dd><p>Yes. Values are stored as WordPress post meta under the field ID, so custom-field dynamic tags (such as Elementor Pro's Post Custom Field) can read them. Pro adds Elementor widgets for media and repeater fields.<\/p><\/dd>\n<dt id=\"does%20it%20add%20google%20shopping%20structured%20data%20to%20fluentcart%3F\"><h3>Does it add Google Shopping structured data to FluentCart?<\/h3><\/dt>\n<dd><p>Yes. Every product page gets Product, BreadcrumbList and Organization JSON-LD with price, stock, images, brand, GTIN, MPN, seller, shipping and return information. Products whose variations have GTINs are marked up as a ProductGroup with one variant per variation, the format Google uses for product variants.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20support%3F\"><h3>Where do I get support?<\/h3><\/dt>\n<dd><p>At <a href=\"https:\/\/upfluent.io\/support\/\">upfluent.io\/support<\/a>. Free and Pro users are both welcome.<\/p><\/dd>\n<dt id=\"where%20are%20product%20values%20stored%3F\"><h3>Where are product values stored?<\/h3><\/dt>\n<dd><p>As WordPress post meta on the product, keyed by the field ID.<\/p><\/dd>\n<dt id=\"where%20are%20checkout%20answers%20stored%3F\"><h3>Where are checkout answers stored?<\/h3><\/dt>\n<dd><p>On the order, in FluentCart's order meta, with a snapshot of the field label so old orders never change.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20gtin%2C%20ean%20or%20upc%20to%20fluentcart%20variations%3F\"><h3>How do I add a GTIN, EAN or UPC to FluentCart variations?<\/h3><\/dt>\n<dd><p>In the free version, with no setup. Open a product: GTIN and MPN are columns right next to SKU in FluentCart's Inventory Management table, and save as you leave the field. The brand is set in the Custom Meta Fields card. A 10-digit ISBN is converted to its 13-digit GTIN automatically.<\/p><\/dd>\n<dt id=\"i%20am%20moving%20from%20woocommerce.%20can%20i%20keep%20my%20gtins%3F\"><h3>I am moving from WooCommerce. Can I keep my GTINs?<\/h3><\/dt>\n<dd><p>Yes, with Pro. If the WooCommerce data is still in the same database, Custom Fields \u2192 Identifiers \u2192 Import from WooCommerce matches every GTIN to its FluentCart variation by SKU. Otherwise export a CSV of SKU and GTIN and import that.<\/p><\/dd>\n<dt id=\"does%20it%20need%20fluent%20forms%3F\"><h3>Does it need Fluent Forms?<\/h3><\/dt>\n<dd><p>No. Checkout fields (Pro) render directly into FluentCart's checkout form.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20anywhere%3F\"><h3>Does this plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. This plugin makes no outside requests and collects no data. The separate Pro plugin contacts upfluent.io only to activate its licence and check for updates.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20pro%3F\"><h3>How do I get Pro?<\/h3><\/dt>\n<dd><p>Buy Pro or start the 14-day free trial at <a href=\"https:\/\/upfluent.io\/fluentcart-custom-meta-fields\/\">upfluent.io<\/a>. Download the Pro plugin from your account and upload it under Plugins \u2192 Add New. It replaces this plugin and keeps all your fields and values.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>A one-time invitation to review the plugin on WordPress.org, shown on the Custom Fields screen after a week of use. Either button hides it for good.<\/li>\n<li>No more admin notice about FluentCart's own product schema: the plugin already adds its data to FluentCart's schema, so there is nothing to do.<\/li>\n<li>Clearer plugin description and FAQ.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Custom product fields (text, textarea, number, select, checkbox, email, URL, date, color) in a card in the FluentCart product editor sidebar, saved with FluentCart's Update button.<\/li>\n<li>[upfluent_cmf_field] and [upfluent_cmf_gtin] shortcodes.<\/li>\n<li>GTIN and MPN per variation and a brand per product, with check-digit validation and duplicate detection.<\/li>\n<li>Product structured data: brand, identifiers, book details, seller, shipping and return info, added to FluentCart's own product schema on FluentCart 1.7+.<\/li>\n<li>Pro (separate plugin): Media and Repeater fields, [upfluent_cmf_repeater], Elementor widgets, checkout fields and uploads, and GTIN\/MPN import from WooCommerce or CSV.<\/li>\n<\/ul>","raw_excerpt":"Custom fields for FluentCart (Fluent Cart) products, shown anywhere with a shortcode, plus GTIN and MPN per variation and a brand for Google.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377763"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/projectaaron"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377763"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377763"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377763"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377763"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377763"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}