WC_Tracks_Client::send_with_requests_multiple
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() 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' ) );
}
}
}