WC_Tracks_Client::send_with_requests_multipleprivate staticWC 10.5.0

Send pixels using Requests::request_multiple() for parallel non-blocking execution. Uses blocking => false for true non-blocking behavior via curl_multi.

Method of the class: WC_Tracks_Client{}

No Hooks.

Returns

null. Nothing (null).

Usage

$result = WC_Tracks_Client::send_with_requests_multiple( $pixels ): void;
$pixels(array) (required)
Array of pixel URLs to send.

Changelog

Since 10.5.0 Introduced.

WC_Tracks_Client::send_with_requests_multiple() code WC 10.5.0

private static function send_with_requests_multiple( array $pixels ): void {
	$requests = array();
	$options  = array(
		'blocking' => false, // Non-blocking mode - returns immediately.
		'timeout'  => 1,
	);

	foreach ( $pixels as $pixel ) {
		$requests[] = array(
			'url'     => $pixel,
			'headers' => array(),
			'data'    => array(),
			'type'    => 'GET',
		);
	}

	try {
		// Try modern namespaced version first.
		if ( class_exists( 'WpOrg\Requests\Requests' ) ) {
			\WpOrg\Requests\Requests::request_multiple( $requests, $options );
		} elseif ( class_exists( 'Requests' ) ) {
			\Requests::request_multiple( $requests, $options ); // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.requestsDeprecated
		}
	} catch ( \Exception $e ) {
		// Log error but don't break the site - tracking pixels should fail gracefully.
		if ( function_exists( 'wc_get_logger' ) ) {
			wc_get_logger()->error( 'WC_Tracks_Client: Batch pixel request failed - ' . $e->getMessage(), array( 'source' => 'wc-tracks' ) );
		}
	}
}