| 开发者 | MessengerOS |
|---|---|
| 更新时间 | 2026年10月13日 19:12 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/wp-content/plugins/messengeros-for-woocommerce or install it directly from the WordPress Plugins screen.messengerOSTracker configuration object, so when scripts were delayed the page tracker's configuration overwrote the heartbeat settings and no heartbeats were sent.messengerOSIdentify() / messengerOSTracker.identify()) that sets the messos_email cookie. It is used by the newsletter form, the checkout tracker and the MessengerOS popup / embedded forms (which only set the cookie themselves when the API is missing), and only accepts valid email addresses. The page tracker's configuration moved to its own messengerOSPageTracker object so it no longer replaces this API.Secure flag.page-tracker.js) that sends the product view and the Live View heartbeats. Both now share one session ID, so page views and heartbeats from the same visit are linked.product-tracker.js and inc/class-product-tracker.php (including the unused track_event() method). After updating, clear any page/asset cache (e.g. WP Rocket) so cached pages pick up the new scripts.messos_email cookie) are now correctly included in cart webhook payloads. Previously, cart events for these guests were discarded because the plugin only checked the WooCommerce billing email and the now-removed messengeros_guest_email cookie.product_view event on the subsequent WooCommerce page reload. A short-lived messengeros_skip_track cookie (30 seconds) is now set by PHP on cart add; the page tracker reads and immediately expires it on the next load, preventing a browse-abandonment restart race condition.messengeros_guest_email cookie — it is no longer set on newsletter subscription and is no longer read in the cart formatter. The messos_email cookie is the single source of truth for guest identity across both tracking and cart events.sessionStorage), subsequent events are silently dropped. This prevents rapid refreshes from flooding the automation queue with duplicate events and causing race conditions in automation processing.wc_get_orders() was returning WC_Order_Refund objects alongside regular orders, causing a crash when calling get_order_number() which does not exist on refund objects. All order queries now explicitly filter by type => shop_order. Affected files: initial-sync-handler.php, product-sync.php, admin-product-sync.php.$product variable to a string before WooCommerce initialises it as an object — replaced global $product with wc_get_product( get_the_ID() ) and an instanceof WC_Product check.invalid_schedule: sixhours) caused by the cron_schedules filter being registered after wp_schedule_event() in the constructor — filter is now registered first. Existing installs must deactivate and reactivate the plugin to apply this fix.\Throwable) — any unexpected PHP error is caught, logged to the MessengerOS debug log, and the WordPress request continues normally instead of crashing the page.feature_off signal from the heartbeat and automatically backs off for a configurable period, then retries. No unnecessary requests are made while the feature is off.localStorage so it is preserved across page refreshes and shared across browser tabs on the same origin.messos_email identity cookie — setcookie() encodes values automatically, so the manual rawurlencode() call that was wrapping the email address was removed. This caused visitor emails to fail server-side validation and be stored as null in the live viewers table.decrypt_token() now returns empty safely if wp_salt is unavailable, treating the store as not connected until WordPress finishes bootstrapping.limit => -1 order/customer count queries on the Data Sync page with paginated count queries.