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
/
admin-columns-pro
/
classes
:
api.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Admin Columns Pro website connection API * * @since 3.0 */ class ACP_API { /** * API url * * @since 3.1.2 * @var type string */ public $url; /** * Request args * * @since 3.1.2 * @var type array */ public $request_args; /** * Constructor * * @since 3.1.2 */ public function __construct() { $this->request_args = array( 'timeout' => 15, 'sslverify' => false, 'body' => array( 'wc-api' => 'software-licence-api', ), ); } /** * Set url * * @since 3.1.2 * @return ACP_API */ public function set_url( $api_url ) { $this->url = $api_url; return $this; } /** * Get url * * @since 3.1.2 * @return string */ public function get_url() { return $this->url; } /** * Set request arg * * @since 3.1.2 * @return ACP_API */ public function set_request_arg( $key, $value ) { $this->request_args[ $key ] = $value; return $this; } /** * Get request args * * @since 3.1.2 * @return array */ public function get_request_args() { return $this->request_args; } /** * Activate a license by its license key * * @since 3.0 * * @param string $licence_key Licence Key * @return mixed API Response */ public function activate_licence( $licence_key ) { $response = $this->request( array( 'request' => 'activation', 'licence_key' => $licence_key, 'site_url' => site_url() ) ); return $response; } /** * Activate a license by its license key * * @since 3.0 * * @return mixed API Response */ public function deactivate_licence( $licence_key ) { $response = $this->request( array( 'request' => 'deactivation', 'licence_key' => $licence_key, 'site_url' => site_url() // identifying ) ); return $response; } /** * Plugin HTML changelog * * @since 3.0 * * @return mixed API Response */ public function get_plugin_changelog( $plugin_basename ) { $response = $this->request( array( 'request' => 'pluginchangelog', 'plugin_name' => $plugin_basename, ), 'html' ); return $response; } /** * Get remote plugin update data in the WP format: url, slug, package, new_version, id * * @since 1.1 * * @param string $licence_key Licence Key * @param string $plugin_basename Plugin basename * @return mixed API Response */ public function get_plugin_install_data( $licence_key, $plugin_basename ) { $response = $this->request( array( 'request' => 'plugininstall', 'licence_key' => $licence_key, 'plugin_name' => $plugin_basename )); return $response; } /** * Get remote plugin update data in the WP format: name, slug, download_link, version * * @since 1.1 * * @param string $licence_key Licence Key * @param string $plugin_basename Plugin basename * @param string $current_version Plugin's current version * @return mixed API Response */ public function get_plugin_update_data( $licence_key, $plugin_basename, $current_version ) { $response = $this->request( array( 'request' => 'pluginupdate', 'licence_key' => $licence_key, 'plugin_name' => $plugin_basename, 'version' => $current_version )); return $response; } /** * Get remote plugin update data in the WP format: ... * * @since 1.1 * @param string $plugin_basename * @return mixed API Response */ public function get_plugin_details( $plugin_basename ) { $response = $this->request( array( 'request' => 'plugindetails', 'plugin_name' => $plugin_basename, )); return $response; } /** * Get license details * * @since 3.4.3 * @param string $license_key * @return mixed API Response */ public function get_license_details( $license_key ) { $response = $this->request( array( 'request' => 'licensedetails', 'license_key' => $license_key, )); return $response; } /** * Test request * * @since 3.1.2 * @param string $plugin_basename * @return mixed API response */ public function test_request( $plugin_basename ) { $response = $this->get_plugin_details( $plugin_basename ); return is_wp_error( $response ) && 'http_request_failed' == $response->get_error_code() ? false : true; } /** * API Request * * @since 1.1 * * @param array $body * @return mixed API Response */ protected function request( $body, $format = 'json' ) { $this->request_args['body'] = array_merge( $this->request_args['body'], $body ); $result = wp_remote_post( $this->url, $this->request_args ); if ( is_wp_error( $result ) ) { return $result; } $response = wp_remote_retrieve_body( $result ); if ( 'json' == $format ) { $response = json_decode( $response ); } if ( isset( $response->error ) ) { return new WP_Error( $response->code, $response->message ); } elseif ( empty( $response ) ) { return new WP_Error( 'empty_response', __( 'Empty response from API.', 'codepress-admin-columns' ) ); } return $response; } }