WC_Background_Emailer::close_http_connection()protectedWC 1.0

Finishes replying to the client, but keeps the process running for further (async) code execution.

Method of the class: WC_Background_Emailer{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->close_http_connection();

Notes

WC_Background_Emailer::close_http_connection() code WC 9.4.2

protected function close_http_connection() {
	// Only 1 PHP process can access a session object at a time, close this so the next request isn't kept waiting.
	// @codingStandardsIgnoreStart
	if ( session_id() ) {
		session_write_close();
	}
	// @codingStandardsIgnoreEnd

	wc_set_time_limit( 0 );

	// fastcgi_finish_request is the cleanest way to send the response and keep the script running, but not every server has it.
	if ( is_callable( 'fastcgi_finish_request' ) ) {
		fastcgi_finish_request();
	} else {
		// Fallback: send headers and flush buffers.
		if ( ! headers_sent() ) {
			header( 'Connection: close' );
		}
		@ob_end_flush(); // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
		flush();
	}
}