Файловый менеджер - Редактировать - /home/avadvi5/public_html/fcolliver.com/wp-content/plugins/wpforms/src/Pro/LicenseApi/PluginUpdateCache.php
Ðазад
<?php namespace WPForms\Pro\LicenseApi; /** * License api plugin update cache. * * @see LicenseApiCache * * @since 1.8.7 */ class PluginUpdateCache extends LicenseApiCache { /** * Encrypt cached file. * * @since 1.8.7 */ protected const ENCRYPT = true; /** * Expirable URL key. * * @since 1.8.7 * * @var string|bool */ protected $expirable_url_key = 'package'; /** * Constructor. * * @since 1.8.7 */ public function __construct() { $this->plugin_slug = 'wpforms-pro'; /** * Filter to unify updates or not. * * This filter allows customization of the unification behavior of updates. * By default, updates are unified. * * @since 1.9.4 * * @param bool $unify_updates Whether to unify updates or not. Default is true. */ $this->type = apply_filters( 'wpforms_pro_license_api_update_cache_unify_updates', true ) ? 'plugin-updates' : 'plugin-update'; } /** * Get data from cache or from API call by slug. * * @since 1.9.4 * * @param string $slug Plugin/addon slug. * * @return array */ public function get_by_slug( string $slug ): array { $result = $this->get(); if ( $this->type === 'plugin-updates' ) { return $result[ $slug ] ?? []; } return $slug === 'wpforms' ? $result : []; } /** * Setup the query arguments for the updater plugins. * * This method extends the parent setup method and adds the list of installed plugins * to the query arguments for the TGM updater. * * @since 1.9.4 * * @return array The setup array with the added query arguments. */ protected function setup(): array { $setup = parent::setup(); if ( $this->type === 'plugin-updates' ) { $setup['query_args']['tgm-updater-plugins'] = $this->get_installed_plugins_list(); unset( $setup['query_args']['tgm-updater-plugin'] ); } return $setup; } /** * Retrieve updates for WPForms and its add-ons. * * Checks if updates are already fetched, * or if a valid license exists, fetches them from the remote server. * * @since 1.9.4 * * @return object|false An object with update details, or an empty array if no updates are found. */ private function get_installed_plugins_list(): string { if ( ! function_exists( 'get_plugins' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $plugins = array_keys( get_plugins() ); $plugins = array_filter( $plugins, [ $this, 'is_wpforms_addon' ] ); $plugin_slugs = array_map( function ( $plugin_file ) { return explode( '/', $plugin_file, 2 )[0]; }, $plugins ); $plugin_slugs[] = 'wpforms'; return implode( ',', $plugin_slugs ); } /** * Check whether a plugin is a wpforms addon. * * @since 1.9.4 * * @param string $plugin Path to the plugin file relative to the plugins' directory. * * @return bool */ private function is_wpforms_addon( string $plugin ): bool { if ( strpos( $plugin, 'wpforms-' ) !== 0 ) { // No more actions for general plugin. return false; } if ( ! function_exists( 'get_plugin_data' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } /** * There are some forks of our plugins having the 'wpforms-' prefix. * We have to check the Author name in the plugin header. */ $plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); $plugin_author = isset( $plugin_data['Author'] ) ? strtolower( $plugin_data['AuthorName'] ) : ''; // No more actions on forks. return $plugin_author === 'wpforms'; } /** * Initialize. * * @since 1.8.7 */ public function init() { parent::init(); // If this is GET force-check=1 set, then invalidate the cache. // We do not check nonce here, as this GET request should be available from the frontend by design. // This request is needed for support purposes also and does not lead to any security issues. // phpcs:ignore WordPress.Security.NonceVerification.Recommended $force_check = isset( $_GET['force-check'] ) ? absint( $_GET['force-check'] ) : 0; if ( $force_check === 1 && current_user_can( 'update_plugins' ) ) { $this->invalidate_cache(); } } }
| ver. 1.1 | |
.
| PHP 8.3.30 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка