PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / core / common / modules / events-manager / wp-http-consumer.php

wp-http-consumer.php in Elementor Website Builder – more than just a page builder 4.3.0-beta3, at core/common/modules/events-manager/wp-http-consumer.php

39 lines 992 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Core\Common\Modules\EventsManager;
4
5 use ElementorDeps\ConsumerStrategies_AbstractConsumer;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 /**
12 * Sends the analytics SDK's batches through WordPress' non-blocking HTTP layer instead of the SDK's
13 * default forked/blocking cURL consumer, so server-side event dispatch never adds latency to the
14 * request that triggered it.
15 */
16 class Wp_Http_Consumer extends ConsumerStrategies_AbstractConsumer {
17
18 const REQUEST_TIMEOUT = 3;
19
20 public function persist( $batch ): bool {
21 if ( empty( $batch ) ) {
22 return true;
23 }
24
25 $protocol = ! empty( $this->_options['use_ssl'] ) ? 'https' : 'http';
26 $url = $protocol . '://' . $this->_options['host'] . $this->_options['endpoint'];
27
28 $response = wp_safe_remote_post( $url, [
29 'timeout' => self::REQUEST_TIMEOUT,
30 'blocking' => false,
31 'body' => [
32 'data' => $this->_encode( $batch ),
33 ],
34 ] );
35
36 return ! is_wp_error( $response );
37 }
38 }
39