$post )); // error if( is_wp_error($request) ) { // loop foreach( $request->errors as $k => $v ) { // bail early if no error if( empty($v[0]) ) continue; // save acf_update_setting('remote_response_error', $k . ': ' . $v[0]); // only run once break; } // success } elseif( wp_remote_retrieve_response_code($request) === 200) { return $request['body']; } // return return 0; } /* * acf_pro_is_update_available * * This function will return true if an update is available * * @type function * @date 14/05/2014 * @since 5.0.0 * * @param n/a * @return (boolean) */ function acf_pro_is_update_available() { // vars $info = acf_get_remote_plugin_info(); $version = acf_get_setting('version'); // return false if no info if( empty($info['version']) ) return false; // return false if the external version is '<=' the current version if( version_compare($info['version'], $version, '<=') ) { return false; } // return return true; } /* * acf_pro_get_remote_info * * This function will return remote plugin data * * @type function * @date 16/01/2014 * @since 5.0.0 * * @param n/a * @return (mixed) */ function acf_pro_get_remote_info() { // clear transient if force check is enabled if( !empty($_GET['force-check']) ) { // only allow transient to be deleted once per page load if( empty($_GET['acf-ignore-force-check']) ) { delete_transient( 'acf_pro_get_remote_info' ); } // update $_GET $_GET['acf-ignore-force-check'] = true; } // get transient $transient = get_transient( 'acf_pro_get_remote_info' ); if( $transient !== false ) { return $transient; } // vars $info = acf_pro_get_remote_response('get-info'); $timeout = 12 * HOUR_IN_SECONDS; // decode if( !empty($info) ) { $info = json_decode($info, true); // fake info version //$info['version'] = '6.0.0'; } else { $info = 0; // allow transient to be returned, but empty to validate $timeout = 2 * HOUR_IN_SECONDS; } // update transient set_transient('acf_pro_get_remote_info', $info, $timeout ); // return return $info; } /* * acf_pro_get_license * * This function will return the license * * @type function * @date 20/09/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_pro_get_license() { // get option $license = get_option('acf_pro_license'); // bail early if no value if( !$license ) return false; // decode $license = maybe_unserialize(base64_decode($license)); // bail early if corrupt if( !$license ) return false; // return return $license; } /* * acf_pro_get_license_key * * This function will return the license key * * @type function * @date 20/09/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_pro_get_license_key() { // vars $license = acf_pro_get_license(); // bail early if empty if( !$license ) return false; // return return $license['key']; } /* * acf_pro_is_license_active * * This function will return true if the current license is active * * @type function * @date 20/09/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_pro_is_license_active() { // vars $license = acf_pro_get_license(); $url = home_url(); // bail early if empty if( !$license ) return false; // bail early if no key if( !$license['key'] ) return false; // bail early if url does not match if( $license['url'] !== $url ) { // add notice acf_add_admin_notice( __('Error validating license URL (website does not match). Please re-activate your license','acf'), 'error' ); return false; } // return return true; } /* * acf_pro_update_license * * This function will update the DB license * * @type function * @date 20/09/2016 * @since 5.4.0 * * @param $key (string) * @return n/a */ function acf_pro_update_license( $key = '' ) { // vars $save = array( 'key' => $key, 'url' => home_url() ); // encode $save = base64_encode(maybe_serialize($save)); // update return update_option('acf_pro_license', $save); } ?>