=== AumNexCart ===
Contributors: aumcreate
Tags: rfq, quote request, product catalogue, enquiry form, b2b
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.4.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A product catalogue with real specification fields, where visitors collect items and send one structured enquiry instead of checking out.

== Description ==

AumNexCart provides a clean product catalog system for WordPress sites that need to showcase products with rich media, dynamic specifications, and contact actions instead of a shopping cart. It is part of the AumViso GEO suite by AumCreate.

Features:

* Custom post type for products with hierarchical categories
* Multi-image and video gallery per product (local uploads + remote URLs)
* Three price modes: range, custom text, hidden
* Dynamic key-value attributes per product
* Contact actions (email / WhatsApp / custom URL) replace "Add to Cart"
* Theme-overridable templates
* Theme-aware CSS that adapts to host theme variables
* Frontend filter bar with category / attribute / price filters
* URL or AJAX filter modes
* CSV import / export for bulk product management
* Duplicate product action
* Rebuild attribute filter index after configuration changes
* One-click WooCommerce migration when ready to enable online sales
* WPML and Polylang compatibility

= More from AumCreate =

What this plugin publishes, the specification fields it supports, and how enquiries are collected: [aumcreate.com/plugins/aumnexcart](https://aumcreate.com/plugins/aumnexcart)

Also free from AumCreate: llms.txt and schema for AI search, AI crawler control, AI translation for WordPress, digital-goods checkout for WooCommerce, and a hosted chat widget: [aumcreate.com/plugins](https://aumcreate.com/plugins)

== Installation ==

1. Upload the `aumnexcart` folder to `/wp-content/plugins/`
2. Activate the plugin through the Plugins screen in WordPress
3. Visit Settings > Permalinks and save (to refresh rewrite rules)
4. Visit `AumNexCart > Add New` to create your first product
5. Configure AumNexCart > Settings to your liking (or, when the AumCreate theme is active, under the AumCreate menu)

== Changelog ==

The full history, including older releases, is in `changelog.txt` inside the plugin folder.

= 1.4.4 =
* Added: a "Manual" link next to Deactivate on the Plugins screen, pointing at the manual in the
  administrator's own language (English, Simplified Chinese, Traditional Chinese, Japanese).
  Until now the plugin shipped only inside a template kit, where the manual arrived through that
  channel; installed from the directory there was nothing in the admin saying where to find it.
* Changed: the changelog in this file now carries only recent releases. wordpress.org truncates
  that section at 5000 bytes without saying so, and the full history is longer. All of it is kept
  in `changelog.txt` inside the plugin folder.

= 1.4.3 =
* Fixed: on the settings screen, the Product and Category URL slug fields could run past the
  right edge of their card at browser widths just above 782 pixels. The fields carry core's
  `regular-text` class, which sets a fixed width and no maximum; core only clamps it below that
  breakpoint. They now fill their column instead.

= 1.4.2 =
* Every name the plugin declares is now prefixed `aumnexcart`. WordPress.org requires a prefix of
  at least four characters and its analyser reads the token before the first underscore, so the
  previous `aum_` counted as three:

      post type        aum_nexcart_product          -> aumnexcart_product
      taxonomy         aum_nexcart_category         -> aumnexcart_category
      options          aum_nexcart_settings         -> aumnexcart_settings (and two more)
      post meta        _aum_nexcart_price_min       -> _aumnexcart_price_min (and eight more)
      shortcodes       [aum_nexcart_enquiry]        -> [aumnexcart_enquiry] (and one more)
      URL parameters   ?aum_enquiry_add=            -> ?aumnexcart_enquiry_add= (and two more)
      classes          AUM_NexCart_Product          -> AumNexCart_Product (eighteen)
      constants        AUM_NEXCART_PATH             -> AUMNEXCART_PATH (four)
      hooks            aum_nexcart_card_after_title -> aumnexcart_card_after_title (nine)
      REST namespace   aum-nexcart/v1               -> aumnexcart/v1

  This is a breaking change for stored data and for links or shortcodes written by hand. No
  migration routine is included: the plugin has not been distributed, so products and settings
  saved by a pre-release build must be re-created. Each name is now defined once, as a class
  constant.
* CSV import filters the imported file's own HTML. `wp_insert_post()` applies kses only for users
  without the `unfiltered_html` capability, which a single-site administrator has, so markup in an
  imported CSV reached `post_content` unfiltered and was rendered by `the_content`. The person
  running an import is not the author of the file being imported. Descriptions now pass through
  `wp_kses_post()` and titles through `sanitize_text_field()`: script, style and event-handler
  attributes are removed, while paragraphs, emphasis, links, lists, images, shortcodes and
  non-Latin text are unchanged apart from a bare `&` being encoded as `&amp;`.
* The Enquiry settings page no longer writes a shortcode or URL parameter name inside a
  translatable sentence; both arrive as placeholders taken from the constants. A name inside a
  translatable string turns its existing translations into fuzzy entries when it changes, and
  fuzzy entries are excluded from the compiled catalogue, so the sentence silently falls back to
  English. `zh_CN` covers 207 of 207 strings with no fuzzy entries.
* The settings hint and three code comments still used Aumframe's old shortcode name
  (`[aum_form]` -> `[aumframe_form]`, renamed in Aumframe 1.31.0 for the same reason). They now
  name the current one.
* CSS class names (`.aum-nexcart-*`) are unchanged. They are not in the PHP or JavaScript global
  namespace and nothing outside the plugin references them.

