PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 All 502 releases
jetpack / 3rd-party / jetpack-boost.php

jetpack-boost.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at 3rd-party/jetpack-boost.php

113 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Compatibility functions for the Jetpack Boost plugin.
4 * https://wordpress.org/plugins/jetpack-boost/
5 *
6 * @since 10.4
7 *
8 * @package automattic/jetpack
9 */
10
11 namespace Automattic\Jetpack\Jetpack_Boost;
12
13 use Automattic\Jetpack\Plugins_Installer;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit( 0 );
17 }
18
19 const PLUGIN_SLUG = 'jetpack-boost';
20 const PLUGIN_FILE = 'jetpack-boost/jetpack-boost.php';
21
22 if ( isset( $_GET['jetpack-boost-install-error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
23 add_action( 'admin_notices', __NAMESPACE__ . '\error_notice' );
24 }
25
26 if ( isset( $_GET['jetpack-boost-action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
27 add_action( 'admin_init', __NAMESPACE__ . '\try_install' );
28 }
29
30 /**
31 * Verify the intent to install Jetpack Boost, and kick off installation.
32 *
33 * This works in tandem with a JITM set up in the JITM package.
34 */
35 function try_install() {
36 if ( ! isset( $_GET['jetpack-boost-action'] ) ) {
37 return;
38 }
39
40 check_admin_referer( 'jetpack-boost-install' );
41
42 $result = false;
43 // If the plugin install fails, redirect to plugin install page pre-populated with jetpack-boost search term.
44 $redirect_on_error = admin_url( 'plugin-install.php?s=jetpack-boost&tab=search&type=term' );
45
46 // Attempt to install and activate the plugin.
47 if ( current_user_can( 'activate_plugins' ) ) {
48 switch ( $_GET['jetpack-boost-action'] ) {
49 case 'install':
50 $result = install_and_activate();
51 break;
52 case 'activate':
53 $result = activate();
54 break;
55 }
56 }
57
58 if ( $result ) {
59 /** This action is already documented in _inc/lib/class.core-rest-api-endpoints.php */
60 do_action( 'jetpack_activated_plugin', PLUGIN_FILE, 'jitm' );
61 $redirect = admin_url( 'admin.php?page=jetpack-boost' );
62 } else {
63 $redirect = add_query_arg( 'jetpack-boost-install-error', true, $redirect_on_error );
64 }
65
66 wp_safe_redirect( $redirect );
67
68 exit( 0 );
69 }
70
71 /**
72 * Install and activate the Jetpack Boost plugin.
73 *
74 * @return bool result of installation
75 */
76 function install_and_activate() {
77 $result = Plugins_Installer::install_and_activate_plugin( PLUGIN_SLUG );
78
79 if ( is_wp_error( $result ) ) {
80 return false;
81 } else {
82 return true;
83 }
84 }
85
86 /**
87 * Activate the Jetpack Boost plugin.
88 *
89 * @return bool result of activation
90 */
91 function activate() {
92 $result = activate_plugin( PLUGIN_FILE );
93
94 // Activate_plugin() returns null on success.
95 return $result === null;
96 }
97
98 /**
99 * Notify the user that the installation of Jetpack Boost failed.
100 */
101 function error_notice() {
102 if ( empty( $_GET['jetpack-boost-install-error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
103 return;
104 }
105 wp_admin_notice(
106 esc_html__( 'There was an error installing Jetpack Boost. Please try again.', 'jetpack' ),
107 array(
108 'type' => 'error',
109 'dismissible' => true,
110 )
111 );
112 }
113