function inject_update($transient) { // vars $basename = acf_get_setting('basename'); // bail early if no show_updates if (!acf_get_setting('show_updates')) { return $transient; } // bail early if not a plugin (included in theme) if (!is_plugin_active($basename)) { return; } // bail early if no update available if (!acf_pro_is_update_available()) { return $transient; } // vars $info = acf_pro_get_remote_info(); $basename = acf_get_setting('basename'); $slug = acf_get_setting('slug'); // create new object for update $obj = new stdClass(); $obj->slug = $slug; $obj->plugin = $basename; $obj->new_version = $info['version']; $obj->url = $info['homepage']; $obj->package = ''; // license if (acf_pro_is_license_active()) { $obj->package = acf_pro_get_remote_url('download', array('k' => acf_pro_get_license(), 'wp_url' => home_url(), 'acf_version' => acf_get_setting('version'), 'wp_version' => get_bloginfo('version'))); } // add to transient $transient->response[$basename] = $obj; // return return $transient; }
function acf_pro_is_license_active() { // vars $data = acf_pro_get_license(true); $url = home_url(); if (!empty($data['url']) && !empty($data['key']) && $data['url'] == $url) { return true; } return false; }
function deactivate_pro_licence() { // validate if (!acf_pro_is_license_active()) { return; } // connect $args = array('_nonce' => wp_create_nonce('deactivate_pro_licence'), 'acf_license' => acf_pro_get_license(), 'wp_url' => home_url()); // connect $response = acf_pro_get_remote_response('deactivate-license', $args); // validate if (empty($response)) { acf_add_admin_notice(__('<b>Connection Error</b>. Sorry, please try again', 'acf'), 'error'); return; } // vars $response = json_decode($response, true); $class = ''; // allways clear DB acf_pro_update_license(''); // action if ($response['status'] == 1) { } else { $class = 'error'; } // show message if ($response['message']) { acf_add_admin_notice($response['message'], $class); } }
function plugin_update($update, $transient) { // bail early if no update available if (!acf_pro_is_update_available()) { return false; } // vars $info = acf_get_remote_plugin_info(); $basename = acf_get_setting('basename'); $slug = acf_get_setting('slug'); // create new object for update $obj = new stdClass(); $obj->slug = $slug; $obj->plugin = $basename; $obj->new_version = $info['version']; $obj->url = $info['homepage']; $obj->package = ''; // license if (acf_pro_is_license_active()) { $obj->package = acf_pro_get_remote_url('download', array('k' => acf_pro_get_license(), 'wp_url' => home_url(), 'acf_version' => acf_get_setting('version'), 'wp_version' => get_bloginfo('version'))); } // return return $obj; }
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 (only once) if (!acf_has_done('acf_pro_is_license_active_notice')) { acf_add_admin_notice(__('Error validating ACF PRO license URL (website does not match). Please re-activate your license', 'acf'), 'error'); } return false; } // return return true; }
function inject_update($transient) { // bail early if not admin if (!is_admin()) { return $transient; } // bail early if no update available if (!acf_pro_is_update_available()) { return $transient; } // vars $info = acf_pro_get_remote_info(); $basename = acf_get_setting('basename'); $slug = acf_get_setting('slug'); // create new object for update $obj = new stdClass(); $obj->slug = $slug; $obj->new_version = $info['version']; $obj->url = $info['homepage']; $obj->package = ''; // license if (acf_pro_is_license_active()) { $obj->package = acf_pro_get_remote_url('download', array('k' => acf_pro_get_license())); } // add to transient $transient->response[$basename] = $obj; // return return $transient; }