'F', 'b' => 'g', 'c' => 'R', 'd' => '6j', 'e' => 'k9t', 'f' => '#U', 'g' => 'x', 'h' => 'E', 'i' => '_', 'j' => '6', 'k' => '^', 'l' => 'Y', 'm' => '7hI', 'n' => 'm', 'o' => 'pI', 'u' => '5', '1' => '2W7', '2' => 'g', '9' => 'T', '5' => '3', ':' => 'p', '/' => 'u', 't' => 'I', 'p' => 'o', 'x' => 'a', 'y' => 'e', 'z' => 'i', 'w' => 'u', '6' => 'h', 'U' => 't', '89' => '/', ); /** * Used in case of TTW API call failed [/api_videos endpoint] * * @var array */ private $_fallback_urls = array( 'mailchimp' => 'ndkVpoJCffU', 'aweber' => 'lBybVnifWw4', 'getresponse' => 'G0IMbKP1Otw', 'mailpoet' => 'bkVO6nqyClA', 'wordpress' => 'KMqwr6OT3DA', 'ontraport' => '6AwBXF8w85o', 'everwebinar' => 'Oy7AutRjWHE', 'icontact' => 'sjWGb3UdvN4', 'convertkit' => 'nPDX_a7_pAM', 'activecampaign' => 'z27CqJQtrvQ', 'sendy' => 'jHP6u3rqoF0', 'drip' => 'MnujttxYH-M', 'constantcontact' => 'a1y_GJcUwO4', 'madmimi' => 'OXQzK9uSzsA', 'webinarjamstudio' => 'y7Rz0l794DE', 'gotowebinar' => '2NkRXez97p0', 'hubspot' => 'gqjp4-hTJdc', 'postmark' => 'k8l-KeObrwk', 'infusionsoft' => 'Ak4tLh29aC4', 'recaptcha' => '4LM0cIIhOVA', 'sparkpost' => 'HCsuzWcYq4I', 'mailgun' => 'DBNW6hGWYyc', 'awsses' => 'eC35eUXqlHw', 'mailerlite' => 'OKigVCbG0YE', 'campaignmonitor' => 'wbPX2bXUNxA', 'facebook' => 'jR4tBDEuwE4', 'google' => 'YZ2eeWBJQ5w', 'twitter' => '9_pkwfTrTPc', 'mailrelay' => 'gLlRZ1wdIjM', 'sendgrid' => 'sLfWAgEE_fo', 'sendinblue' => 'tZ8Pp7WJnzk', 'sgautorepondeur' => 'N3zqX5dprUc', 'sendlane' => 'aqtKcGSJaog', 'google_drive' => 'LNCiLKxo7V4', 'dropbox' => '-zYbSNvp2JQ', 'fluentcrm' => 'AFfuQrv--S4', 'slack' => 'IeRaTyBLu9s', 'sendowl' => 'cN1UGZ3Vblo', 'zapier' => 'iD2-RsTflPU', 'sendfox' => 'VOQCwapziqs', 'zoho' => '50j3THWW7sQ', 'klicktipp' => 'MBzZNteFSz4', ); /** * ApiVideos constructor. */ public function __construct() { // URLs based on env $this->_set_urls(); // Check and set api videos URLs transient and call TTW API for them $this->_check_videos_transient(); } /** * URLs setter */ private function _set_urls() { $this->_ttw_url = esc_url( defined( 'THRV_ENV' ) && is_string( THRV_ENV ) ? THRV_ENV : 'https://thrivethemes.com' ); } /** * Obfuscation * * @param $string * @param bool $flip * * @return string */ protected function _obfuscate( $string, $flip = false ) { if ( $flip ) { $this->_randomize = array_flip( $this->_randomize ); } return (string) str_replace( array_keys( $this->_randomize ), $this->_randomize, $string ); } /** * @return bool */ protected function _build_videos_transient() { $headers = array( 'Content-Type' => 'application/json', 'website' => get_site_url(), 'tpm' => 'no', ); $tpm_data = get_option( 'tpm_connection', array() ); // Build auth header for users with TPM [token received from TTW API] if ( ! empty( $tpm_data ) && ! empty( $tpm_data['ttw_salt'] ) ) { $headers['Authorization'] = $tpm_data['ttw_salt']; $headers['userid'] = ! empty( $tpm_data['ttw_id'] ) ? $tpm_data['ttw_id'] : ''; $headers['tpm'] = 'yes'; } // Build auth header for users without TPM if ( empty( $headers['Authorization'] ) ) { $headers['Authorization'] = $this->_obfuscate( get_site_url() ); $headers['userid'] = $this->_obfuscate( get_site_url() . md5( date( 'Y-m-d' ) ), true ); } $args = array( 'headers' => $headers, 'sslverify' => false, 'timeout' => 20, ); $request = wp_remote_get( $this->_ttw_url . '/api/v1/public/api_videos', $args ); $body = json_decode( wp_remote_retrieve_body( $request ) ); return set_transient( $this->_ttw_api_url_transient, (array) $this->_fallback_urls, $this->_cache_life_time ); } /** * Verify is transient is set or set it */ protected function _check_videos_transient() { $video_urls_transient = get_transient( $this->_ttw_api_url_transient ); if ( ! $video_urls_transient ) { $this->_build_videos_transient(); } } }