PluginProbe
Extendify / 3.2.2
Extendify v3.2.2
3.2.2 3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 All 128 releases
← All changes | extendify.php +22 -33 3.0.5 → 3.2.2 View file →
@@ -6,9 +6,9 @@
6 6 * Description: AI-powered WordPress assistant for onboarding and ongoing editing offered exclusively through select WordPress hosting providers.
7 7 * Plugin URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash
8 8 * Author: Extendify
9 9 * Author URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash
10 - * Version: 3.0.5
10 + * Version: 3.2.2
11 11 * Requires at least: 6.5
12 12 * Requires PHP: 7.0
13 13 * License: GPL-2.0-or-later
14 14 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -28,10 +28,8 @@
28 28 // phpcs:enable Generic.Files.LineLength.TooLong
29 29
30 30 defined('ABSPATH') || exit;
31 31
32 -use Extendify\PartnerData;
33 -
34 32 /** ExtendifySdk is the previous class name used */
35 33 if (!class_exists('ExtendifySdk') && !class_exists('Extendify')) :
36 34
37 35 /**
@@ -64,8 +62,11 @@
64 62 }
65 63
66 64 if (!self::$loaded) {
67 65 self::$loaded = true;
66 + if (!defined('EXTENDIFY_PLUGIN_BASENAME')) {
67 + define('EXTENDIFY_PLUGIN_BASENAME', plugin_basename(__FILE__));
68 + }
68 69 require dirname(__FILE__) . '/bootstrap.php';
69 70 if (!defined('EXTENDIFY_BASE_URL')) {
70 71 define('EXTENDIFY_BASE_URL', plugin_dir_url(__FILE__));
71 72 }
@@ -77,31 +78,28 @@
77 78 $extendify = new Extendify();
78 79 $extendify();
79 80 });
80 81
81 - add_action('update_option', function ($option) {
82 - if (in_array($option, ['WPLANG', 'blogname'], true)) {
83 - \delete_transient('extendify_recommendations');
84 - \delete_transient('extendify_domains');
85 - \delete_transient('extendify_supportArticles');
86 - }
82 + // Autoloaded options load on every request, even while the plugin is inactive.
83 + // Before 6.6 there is no 'auto' value, so older sites are left alone.
84 + if (function_exists('wp_autoload_values_to_autoload')) {
85 + register_deactivation_hook(__FILE__, function () {
86 + $names = preg_grep('/^extendify_/', array_keys(wp_load_alloptions()));
87 + update_option('extendify_autoload_restore', $names, false);
88 + wp_set_option_autoload_values(array_fill_keys($names, false));
89 + });
87 90
88 - // Delete the partner transient so we can fetch new data when the locale is switched.
89 - if (($option === 'WPLANG') && get_transient('extendify_partner_data_cache_check')) {
90 - delete_transient('extendify_partner_data_cache_check');
91 - PartnerData::getPartnerData();
92 - }
93 - });
91 + register_activation_hook(__FILE__, function () {
92 + global $wpdb;
93 + // Passing true writes 'on', which skips WordPress's 150KB autoload size check.
94 + foreach (get_option('extendify_autoload_restore', []) as $name) {
95 + $wpdb->update($wpdb->options, ['autoload' => 'auto'], ['option_name' => $name]);
96 + }
97 + wp_cache_delete('alloptions', 'options');
98 + delete_option('extendify_autoload_restore');
99 + });
100 + }
94 101
95 - // Delete the partner transient so we can fetch new data when the locale is switched via WP-CLI.
96 - add_action('cli_init', function () {
97 - $command = sanitize_text_field(wp_unslash(($_SERVER['argv'][1] ?? '')));
98 - if ($command === 'language' && get_transient('extendify_partner_data_cache_check')) {
99 - delete_transient('extendify_partner_data_cache_check');
100 - PartnerData::getPartnerData();
101 - }
102 - });
103 -
104 102 // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
105 103 add_action('upgrader_process_complete', function ($upgrader, $options) {
106 104 $updatedExtendify = isset($options['plugins']) && array_filter($options['plugins'], function ($plugin) {
107 105 return strpos($plugin, 'extendify') !== false;
@@ -143,17 +141,8 @@
143 141 wp_safe_redirect(admin_url());
144 142 exit;
145 143 }
146 144 });
147 -
148 - // Allow Extendify requests to have a longer timeout.
149 - add_filter('http_request_args', function ($args, $url) {
150 - if (strpos($url, 'extendify') !== false) {
151 - $args['timeout'] = 45;
152 - }
153 -
154 - return $args;
155 - }, 100, 2);
156 145
157 146 // Clean up the site profile if being accessed
158 147 add_filter('option_extendify_site_profile', function ($value) {
159 148 $profile = is_string($value) ? json_decode($value, true) : $value;