enqueue_scan(); } } /** * Scan-progress script, seeded with the scan as it is now so the first paint is never empty (§5.4). * * @return void */ private function enqueue_scan() { wp_enqueue_script( 'consiva-consent-scan', CONSIVA_CONSENT_URL . 'assets/scan.js', array( 'wp-api-fetch', 'wp-i18n' ), CONSIVA_CONSENT_VERSION, true ); wp_set_script_translations( 'consiva-consent-scan', 'consiva-ai', CONSIVA_CONSENT_DIR . 'languages' ); $initial = ScanProgress::current(); $error = null; if ( is_wp_error( $initial ) ) { $data = $initial->get_error_data(); $status = is_array( $data ) && isset( $data['status'] ) ? (int) $data['status'] : 0; $error = array( 'message' => $initial->get_error_message(), 'request_id' => is_array( $data ) && isset( $data['request_id'] ) ? (string) $data['request_id'] : '', 'retryable' => ! in_array( $status, array( 401, 403, 404, 422 ), true ), ); $initial = null; } wp_localize_script( 'consiva-consent-scan', 'consivaConsentScan', array( 'path' => '/' . Controller::NAMESPACE_V1 . '/scan', 'initial' => $initial, 'error' => $error, // Offered once the scan is done, until consent controls are activated (§5.4 → §5.5). 'setupUrl' => SetupScreen::is_activated() || ! Capabilities::can_configure() ? '' : SetupScreen::url(), 'canScan' => Capabilities::can_configure(), ) ); } }