$order->get_id(), 'cookie_name' => $cookieName, ]); return; } $contactId = absint($raw); if ($contactId <= 0) { Logger::error('Tracking contact cookie value was invalid.', [ 'order_id' => $order->get_id(), 'cookie_name' => $cookieName, ]); return; } $order->update_meta_data(self::META_KEY, $contactId); $order->save_meta_data(); $customerId = (int) $order->get_customer_id(); if ($customerId > 0) { update_user_meta($customerId, self::META_KEY, $contactId); } Logger::debug("Captured tracking contact ID {$contactId} for order {$order->get_id()}."); } /** * Read mode — runs at sync time (no browser context assumed). * Returns the contact ID or 0 if not found / invalid. */ public function read(\WC_Order $order): int { if (! Options::getBool(Options::USE_TRACKING_CONTACT_ID)) { return 0; } $fromOrder = absint($order->get_meta(self::META_KEY)); if ($fromOrder > 0) { Logger::debug('Using contact ID from order meta.', [ 'order_id' => $order->get_id(), ]); return $fromOrder; } $customerId = (int) $order->get_customer_id(); if ($customerId > 0) { $fromUser = absint(get_user_meta($customerId, self::META_KEY, true)); if ($fromUser > 0) { Logger::debug('Using contact ID from user meta.', [ 'order_id' => $order->get_id(), 'customer_id' => $customerId, ]); return $fromUser; } } Logger::debug('No tracking contact ID found for order sync.', [ 'order_id' => $order->get_id(), ]); return 0; } }