REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 3.57 KB
Close
//home/nshryvcy/blissfulnepal.com/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Request.php
Text
Base64
<?php namespace WPForms\Integrations\AI\API\Http; use WPForms\Integrations\AI\Helpers; use WPForms\Integrations\LiteConnect\LiteConnect; use WPForms\Integrations\LiteConnect\Integration; /** * Request class. * * @since 1.9.1 */ class Request { /** * API URL. * * @since 1.9.1 */ private const URL = 'https://wpformsapi.com/api/v1'; /** * Request timeout. * * @since 1.9.1 */ private const TIMEOUT = 60; /** * Send a POST request. * * @since 1.9.1 * * @param string $endpoint Endpoint to request. * @param array $args Request arguments. * @param array $headers Additional request headers. * * @return Response Response from the API. */ public function post( string $endpoint, array $args = [], array $headers = [] ): Response { return $this->request( 'POST', $endpoint, $args, $headers ); } /** * Make a request to the API. * * @since 1.9.1 * * @param string $method Request method. * @param string $endpoint Endpoint to request. * @param array $args Arguments to send. * @param array $headers Additional request headers. * * @return Response Response from the API. * @noinspection PhpSameParameterValueInspection */ private function request( string $method, string $endpoint, array $args, array $headers = [] ): Response { // Once mark AI features as used when making a first request. Helpers::set_ai_used(); // Add domain to the request. $args['domain'] = preg_replace( '/(https?:\/\/)?(www\.)?(.*)\/?/', '$3', home_url() ); $args = $this->maybe_add_lite_connect_credentials( $args ); $options = [ 'method' => $method, 'headers' => $this->get_headers( $headers ), 'timeout' => $this->get_timeout(), 'body' => wp_json_encode( $args ), ]; $url = $this->get_request_url( $endpoint ); return new Response( wp_safe_remote_request( $url, $options ) ); } /** * Get AI API request URL. * * @since 1.9.3 * * @param string $endpoint Endpoint to request. * * @return string */ private function get_request_url( string $endpoint ): string { /** * Filter AI API request URL. * * @since 1.9.3 * * @param string $url API request URL. * @param string $endpoint Endpoint to request. */ return (string) apply_filters( 'wpforms_integrations_aiapi_http_request_url', self::URL . $endpoint, $endpoint ); } /** * Maybe add Lite Connect credentials to the request. * * @since 1.9.1 * * @param array $args Arguments to send. * * @return array */ private function maybe_add_lite_connect_credentials( array $args ): array { if ( wpforms()->is_pro() ) { return $args; } if ( ! LiteConnect::is_allowed() || ! LiteConnect::is_enabled() ) { return $args; } return array_merge( $args, Integration::get_site_credentials() ); } /** * Retrieve request headers. * * @since 1.9.1 * * @param array $additional Additional request headers. * * @return array */ private function get_headers( array $additional = [] ): array { $headers = [ 'Content-Type' => 'application/json', ]; if ( wpforms()->is_pro() ) { $headers['x-wpforms-licensekey'] = wpforms_get_license_key(); } return array_merge( $headers, $additional ); } /** * Retrieve request timeout. * * @since 1.9.1 * * @return int */ private function get_timeout(): int { /** * Filter the API request timeout. * * @since 1.9.1 * * @param int $timeout Request timeout. */ return (int) apply_filters( 'wpforms_integrations_ai_api_http_request_timeout', self::TIMEOUT ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 2
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Request.php
3.57 KB
lrw-r--r--
2026-06-03 14:57:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Response.php
2.47 KB
lrw-r--r--
2026-06-03 14:57:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).