Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
woocommerce-multilingual
/
vendor
/
otgs
/
installer
/
src
/
Api
/
Endpoint
:
Subscription.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace OTGS\Installer\Api\Endpoint; use OTGS\Installer\Api\Exception\InvalidResponseException; use OTGS\Installer\Api\Exception\InvalidSubscription; use OTGS\Installer\Api\Exception\InvalidSubscriptionResponseException; use OTGS\Installer\Api\SiteUrl; use OTGS_Installer_Plugin_Finder; class Subscription { /** * @var SiteUrl */ private $siteUrl; /** * @var OTGS_Installer_Plugin_Finder */ private $plugin_finder; /** * @var string */ private $repositoryId; /** * @param string $repositoryId * @param SiteUrl $siteUrl * @param OTGS_Installer_Plugin_Finder $plugin_finder */ public function __construct( $repositoryId, SiteUrl $siteUrl, OTGS_Installer_Plugin_Finder $plugin_finder ) { $this->siteUrl = $siteUrl; $this->plugin_finder = $plugin_finder; $this->repositoryId = $repositoryId; } /** * @param string $siteKey * @param int $source * * @return array */ public function prepareRequest( $siteKey, $source ) { $requestParameters = [ 'action' => 'site_key_validation', 'site_key' => $siteKey, 'site_url' => $this->siteUrl->get( $this->repositoryId ), 'source' => $source, 'installer_version' => WP_INSTALLER_VERSION, 'theme' => wp_get_theme()->get( 'Name' ), 'site_name' => get_bloginfo( 'name' ), 'wp_version' => get_bloginfo( 'version' ), 'phpversion' => phpversion(), 'repository_id' => $this->repositoryId, 'versions' => $this->plugin_finder->getLocalPluginVersions(), ]; if ( $this->repositoryId === 'wpml' ) { $requestParameters['using_icl'] = function_exists( 'wpml_site_uses_icl' ) && wpml_site_uses_icl(); $requestParameters['wpml_version'] = defined( 'ICL_SITEPRESS_VERSION' ) ? ICL_SITEPRESS_VERSION : ''; } return apply_filters( 'installer_fetch_subscription_data_request', $requestParameters ); } /** * @throws \Exception * @return \stdClass * @param array $response */ public function parseResponse( $response ) { $body = wp_remote_retrieve_body( $response ); if ( ! $body || ! is_serialized( $body ) || ! ( $apiResponse = @unserialize( $body ) ) ) { throw new InvalidResponseException(); } if ( isset( $apiResponse->error ) ) { throw new InvalidSubscription( $apiResponse->error ); } if ( isset( $apiResponse->subscription_data ) && isset( $apiResponse->site_key )) { return $apiResponse; } throw new InvalidSubscriptionResponseException(); } }