ACF_Admin_Updates::load()publicACF 5.0.0

load

Runs when loading the submenu page.

Метод класса: ACF_Admin_Updates{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$ACF_Admin_Updates = new ACF_Admin_Updates();
$ACF_Admin_Updates->load();

Список изменений

С версии 5.0.0 Введена.

Код ACF_Admin_Updates::load() ACF 6.0.4

function load() {
	// Check activate.
	if ( acf_verify_nonce( 'activate_pro_license' ) ) {
		acf_pro_activate_license( sanitize_text_field( $_POST['acf_pro_license'] ) );

		// Check deactivate.
	} elseif ( acf_verify_nonce( 'deactivate_pro_license' ) ) {
		acf_pro_deactivate_license();
	}

	// vars
	$license    = acf_pro_get_license_key();
	$this->view = array(
		'license'            => $license,
		'active'             => $license ? 1 : 0,
		'current_version'    => acf_get_setting( 'version' ),
		'remote_version'     => '',
		'update_available'   => false,
		'changelog'          => '',
		'upgrade_notice'     => '',
		'is_defined_license' => defined( 'ACF_PRO_LICENSE' ) && ! empty( ACF_PRO_LICENSE ) && is_string( ACF_PRO_LICENSE ),
		'license_error'      => false,
	);

	// get plugin updates
	$force_check = ! empty( $_GET['force-check'] );
	$info        = acf_updates()->get_plugin_info( 'pro', $force_check );

	// Display error.
	if ( is_wp_error( $info ) ) {
		return $this->display_wp_error( $info );
	}

	// add info to view
	$this->view['remote_version'] = $info['version'];

	// add changelog if the remote version is '>' than the current version
	$version = acf_get_setting( 'version' );

	// check if remote version is higher than current version
	if ( version_compare( $info['version'], $version, '>' ) ) {

		// update view
		$this->view['update_available'] = true;
		$this->view['changelog']        = $this->get_changelog_changes( $info['changelog'], $info['version'] );
		$this->view['upgrade_notice']   = $this->get_changelog_changes( $info['upgrade_notice'], $info['version'] );

		// perform update checks if license is active
		$basename = acf_get_setting( 'basename' );
		$update   = acf_updates()->get_plugin_update( $basename );
		if ( $license ) {

			if ( isset( $update['license_valid'] ) && ! $update['license_valid'] ) {

				$this->view['license_error'] = true;
				acf_new_admin_notice(
					array(
						'text' => __( '<b>Error</b>. Your license for this site has expired or been deactivated. Please reactivate your ACF PRO license.', 'acf' ),
						'type' => 'error',
					)
				);

			} else {

				// display error if no package url
				// - possible if license key has been modified
				if ( $update && ! $update['package'] ) {
					$this->view['license_error'] = true;
					acf_new_admin_notice(
						array(
							'text' => __( '<b>Error</b>. Could not authenticate update package. Please check again or deactivate and reactivate your ACF PRO license.', 'acf' ),
							'type' => 'error',
						)
					);
				}
			}

			// refresh transient
			// - if no update exists in the transient
			// - or if the transient 'new_version' is stale
			if ( ! $update || $update['new_version'] !== $info['version'] ) {
				acf_updates()->refresh_plugins_transient();
			}
		}
	}
}