| 开发者 | piezak |
|---|---|
| 更新时间 | 2026年8月1日 22:37 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
Yes. Photos are transmitted over encrypted connections, processed by AI, and automatically deleted from the server within 5 minutes. They are not used to train AI models.
The system creates an entirely new image using generative AI. This is a complex computational process that ensures a unique, personalized result.
Best results come from full-body photos with good lighting on a plain background.
The plugin stores only its WooCommerce configuration options (API key, button style, size advisor mode, etc.) and a small amount of WooCommerce order metadata for conversion attribution. No customer photos and no analytics tables are persisted on the merchant site — all AI processing and analytics are handled by the AnyTry cloud service.
Only when the merchant has enabled analytics consent (default OFF). When enabled, anytry_session and anytry_tried cookies persist for 90 days on visitor browsers — both store a random session ID and a list of product IDs the visitor has tried on, used to attribute purchases to try-on sessions. See the "External services" section for full disclosure.
Yes. The plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS).
ini_set() overrides (max_execution_time / default_socket_timeout) that could push a host out of its configured limits — the request timeout is set on the HTTP call itself, and the live-status stream now restores its output settings on shutdown.anytry/v1/lang-bundle); the two-letter language code is validated against an on-disk allowlist. The switcher is wrapped in its own error boundary so it can never interfere with the core Try-On flow, and the Try-On / status / download behaviour is unchanged.…/piezak/24May26/T1): the entire development & build tooling directory (tools/) is now excluded from the distribution ZIP per WordPress.org packaging guidance — the prior package leaked build/test scripts (minify_wp.cjs, smoke/matrix .sh, .py, .mjs, .yml, .log) that are not plugin runtime files. The unminified src/ sources still ship and the build process stays documented under "Source code & build", so the minified assets remain fully reproducible.https://github.com/alexcorvi/heic2any); the stale fork URL that returned 404 is gone from every shipped file, not just readme.txt.…/piezak/24May26/T1): the prior 1.0.2 upgrade migration that auto-enabled analytics + conversion-attribution for existing installs has been removed. Analytics consent now defaults OFF for ALL installs (new + upgraded). Self-hosted operators upgrading from a pre-1.0.4 release must re-enable at WooCommerce → AnyTry AI → "Send analytics & conversion events" if they want the conversion dashboards to keep populating.ajax_stream_status) was rewritten to use native PHP streams (fopen + stream_context_create) instead of cURL. wp_remote_*() cannot stream chunks back live as they arrive (it buffers the entire response); PHP streams are the documented escape hatch for streaming use cases. SSRF + timeout + nonce + rate-limit defenses preserved.load_plugin_textdomain() call. Since WordPress 4.6 translations are auto-loaded by WP core for plugins hosted on WordPress.org, and our Requires at least: 5.8 covers this entirely.at_* prefix to the canonical 6-char anytry_* prefix (at_burst_*, at_daily_*, at_burst_sse_*, at_swbeacon_*, at_burst_default_*). Transients have explicit TTLs so no DB migration is needed — existing keys expire naturally.tools/minify_wp.cjs was renamed to tools/minify_wp.js. CommonJS semantics are unchanged (tools/package.json has no "type": "module").{prefix}anytry_cancellations, UNIQUE on (order_id, product_id)) gates track_cancelled_event so admin status thrash (Cancelled → revert → Cancelled) cannot inflate the portal "Cancelled orders" KPI by N × tried products. Mirrors the PrestaShop module's parallel fix. Idempotent migration via dbDelta — no-op when the table already exists.ON CONFLICT DO NOTHING semantics, this closes a silent event-loss path under transient API outages.anytry_session cookie is now only set after analytics consent is granted.increment_daily_stat, record_local_conversion, maybe_create_tables) that had been kept as no-ops since v2.5; all analytics is centralised at api.anytry.ai.<script> echoes converted to wp_register_script + wp_add_inline_script (canonical WP enqueue pattern). The post-install / post-upgrade redirect now uses server-side wp_safe_redirect at admin_init.sanitize_session_array helper). Cookie key debug logging now wraps with sanitize_key. The anytry_vip_secret register_setting callback uses sanitize_text_field (was sanitize_key, which mutated secrets).src/ directory and tools/minify_wp.js build script are now included in the plugin ZIP (per WP.org source-visibility guideline). See the new "Source code & build" section.assets/js/anytry-admin-packshot.min.js from assets/js/anytry-admin-packshot.js (was previously hand-maintained alongside its source; the .min is now reproducible from the .js).anytry_api_url wp_option now goes through AnyTry_API::get_api_base_url() (HTTPS-only allowlist, blocks private / reserved IPs). Previously the SSE proxy, tracking, public localization, and admin tracking-token fetch read the option raw, so a direct DB write of a malicious URL would have been honoured. Tightens defense-in-depth around SSRF.anytry_start_trial, anytry_send_magic_link, anytry_fetch_key_by_email, anytry_get_status) lowered from manage_options to manage_woocommerce so they match the Settings-page capability. Shop Manager users could see the buttons but the AJAX returned 403 on click — now the menu item and the action are gated by the same capability.get_sites() + switch_to_blog()) so subsite options, log tables, post meta, HPOS order meta, transients, and uploads/anytry/* files are removed across the whole network instead of just the primary blog.$ is not a function, addEventListener on null, etc.).woocommerce_after_add_to_cart_button PHP hook is unavailable (Twenty Twenty-Four / Twenty Twenty-Five and other block themes).anytry-script-js-before + anytry-script-js-extra) carry data-no-optimize="1" to prevent base64 data: URI rewrite from breaking init order..anytry-button class + data-anytry="trigger" attribute so third-party quickview modules (IQIT, TvCMS) don't double-open their own modals.display: inline-flex !important to beat [class*="anytry-"]{display:none!important} rules from hostile theme bundles.MutationObserver now uses a WeakMap registry + target.isConnected self-disconnect so observers clean up when product cards leave the DOM.:root block always emits all 8 CSS variables (was: empty when defaults matched, leaving 21 of 47 var(--at-*) refs undefined and rendering as initial). Settings always reflect on the storefront, even when other values match defaults.empty('0') returned true in PHP, silently rejecting operator-set 0px radius and stuck on default 2px. Now uses explicit absint() so 0 wins.#000 (3-digit) and #000000 (6-digit) are now treated as the same color, so the button-background override fires correctly regardless of which hex form the operator picks._fileConverting flag prevents a double-click during HEIC convert from kicking off two generations.