Releases: madeburo/GEO-AI-Woo
Releases · madeburo/GEO-AI-Woo
0.7.1
0.7.0
Changed — Plugin Rename
- Plugin display name changed from "GEO AI for WooCommerce" to "GEO AI Search Optimization" across all user-facing surfaces
- Updated Plugin Name header, settings page title, menu label, meta box title, dashboard widget title, admin notices, CLI status output, Quick Edit section title
- Slug, text domain, CSS classes, option keys, meta keys, REST namespace, and WP-CLI command remain unchanged for backward compatibility
Fixed — UTF-8 / Cyrillic Encoding
decode_text()now detects and repairs mojibake from double UTF-8 encoding (latin1 DB connection → UTF-8 → UTF-8) viamb_convert_encodingfrom Windows-1252write_file()validates UTF-8 integrity viamb_check_encodingbefore writing static files- Excerpt descriptions (
wp_trim_wordsoutput) now passed throughdecode_text()to prevent HTML entities in plain text - Full content in llms-full.txt now passed through
decode_text()afterwp_trim_words - Taxonomy term descriptions now passed through
decode_text()afterwp_trim_words
0.6.0
Changed — Plugin Rename (WordPress Plugin Review)
- Plugin renamed from "GEO AI Woo" to "GEO AI for WooCommerce"
- Slug changed from
geo-ai-wootogeo-ai-for-woocommerce - Text domain changed from
geo-ai-wootogeo-ai-for-woocommerce - Main plugin file renamed from
geo-ai-woo.phptogeo-ai-for-woocommerce.php - REST API namespace changed from
geo-ai-woo/v1togeo-ai-for-woocommerce/v1 - WP-CLI command changed from
wp geo-ai-wootowp geo-ai-for-woocommerce - All asset handles, CSS classes, HTML IDs, and admin page slugs updated
- Language files renamed from
geo-ai-woo-*.po/motogeo-ai-for-woocommerce-*.po/mo - Internal prefixes (
geo_ai_woo_,_geo_ai_woo_,Geo_Ai_Woo_) intentionally preserved for backward compatibility with existing installations
Added — WordPress Plugin Review Compliance
- Added
Requires Plugins: woocommerceheader to main plugin file - CLI export now writes to
wp_upload_dir()/geo-ai-for-woocommerce/instead of arbitrary paths
Fixed — Security
- Removed
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINTflags fromwp_json_encode()in JSON-LD output (class-seo-headers.php) - Fixed unescaped API key field output in settings page (
class-settings.php)
Fixed — UTF-8 Encoding
- Fixed Cyrillic and multibyte character corruption (mojibake) in static llms.txt and llms-full.txt files
- Replaced
WP_Filesystem::put_contents()with directfile_put_contents()— FTP transport was corrupting multibyte characters during file write - Added
decode_text()helper — decodes HTML entities to UTF-8 per-field (titles, descriptions, keywords, taxonomy names) instead of relying on a single pass at the end
Improved — Duplicate Plugin Protection
- Added
defined('GEO_AI_WOO_VERSION')guard in main plugin file — prevents fatal error when two copies of the plugin are installed - Added admin notice that detects and warns about duplicate plugin copies
Added — Localization
- German (de_DE) translation
- French (fr_FR) translation
v0.5.5
0.5.4.1
0.5.4
0.5.4 – content sanitization pipeline
Added:
- New
Geo_Ai_Woo_Content_Sanitizerclass — centralized content cleaning pipeline for all AI-facing output - Removes page builder markup: WP Bakery (
vc_*,mk_*), Divi (et_pb_*), Beaver Builder (fl_builder_*), Elementor/Gutenberg HTML comments - Removes registered and unregistered WordPress shortcodes (paired and self-closing)
- Strips
<script>and<style>tags with their contents - Removes inline base64-encoded data (embedded images, fonts, etc.)
- Fixes mojibake artifacts from double UTF-8 encoding (curly quotes, em/en dashes, ellipsis, primes)
- Decodes HTML entities to proper UTF-8 characters
- Normalizes whitespace (collapses multiple spaces/tabs/newlines, trims)
- Filter
geo_ai_woo_pre_sanitize— modify content before sanitization - Filter
geo_ai_woo_sanitized_content— modify final sanitized output - Filter
geo_ai_woo_sanitize_patterns— add custom regex patterns
for third-party page builders
Fixed: Raw page builder markup (WP Bakery, Elementor, etc.) appearing in AI crawler output. Thanks @tommcg for reporting!
0.5.3
- Minimum WordPress version raised from 6.0 to 6.2 (required for
%iidentifier placeholder support in$wpdb->prepare()) - Replaced interpolated
$table_namein SQL queries with%iidentifier placeholder via$wpdb->prepare()inclass-crawl-tracker.php(drop_table,get_recent_activity,get_total_visits,cleanup_old_records) - Replaced interpolated
$table_nameinDROP TABLEquery with%iplaceholder inuninstall.php - Fixed phpcs:ignore placement for postmeta
DELETEquery inuninstall.php
0.5.2
0.5.1
Fixed — WordPress Plugin Check Compliance
- Fixed unescaped URL output in SEO meta tags (
class-seo-headers.php) —esc_url()now applied at echo, not at assignment - Fixed
translators:comment placement inclass-admin-notices.phpandclass-settings.php— moved directly above__()/esc_html__()calls - Fixed unsanitized nonce input in
class-meta-box.php,class-bulk-edit.php, andclass-woocommerce.php— addedsanitize_text_field()beforewp_verify_nonce() - Fixed unprefixed global variables in
uninstall.php— wrapped cleanup logic ingeo_ai_woo_uninstall()function