PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 9.3.3
Jetpack – WP Security, Backup, Speed, & Growth v9.3.3
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / class-jetpack-wizard-banner.php
jetpack Last commit date
3rd-party 5 years ago _inc 5 years ago bin 5 years ago css 5 years ago extensions 5 years ago images 5 years ago json-endpoints 5 years ago modules 5 years ago sal 5 years ago src 6 years ago vendor 5 years ago views 6 years ago .svnignore 12 years ago CODE-OF-CONDUCT.md 9 years ago SECURITY.md 5 years ago changelog.txt 5 years ago class-jetpack-wizard-banner.php 6 years ago class.frame-nonce-preview.php 6 years ago class.jetpack-admin.php 5 years ago class.jetpack-affiliate.php 6 years ago class.jetpack-autoupdate.php 5 years ago class.jetpack-bbpress-json-api.compat.php 6 years ago class.jetpack-cli.php 5 years ago class.jetpack-client-server.php 5 years ago class.jetpack-connection-banner.php 5 years ago class.jetpack-data.php 6 years ago class.jetpack-debugger.php 7 years ago class.jetpack-error.php 5 years ago class.jetpack-gutenberg.php 5 years ago class.jetpack-heartbeat.php 5 years ago class.jetpack-idc.php 6 years ago class.jetpack-ixr-client.php 6 years ago class.jetpack-modules-list-table.php 5 years ago class.jetpack-network-sites-list-table.php 6 years ago class.jetpack-network.php 5 years ago class.jetpack-plan.php 5 years ago class.jetpack-post-images.php 5 years ago class.jetpack-twitter-cards.php 5 years ago class.jetpack-user-agent.php 5 years ago class.jetpack-xmlrpc-server.php 6 years ago class.jetpack.php 5 years ago class.json-api-endpoints.php 5 years ago class.json-api.php 5 years ago class.photon.php 5 years ago composer.json 5 years ago functions.compat.php 5 years ago functions.cookies.php 6 years ago functions.gallery.php 6 years ago functions.global.php 5 years ago functions.opengraph.php 5 years ago functions.photon.php 5 years ago jest.config.js 5 years ago jetpack.php 5 years ago json-api-config.php 10 years ago json-endpoints.php 7 years ago load-jetpack.php 5 years ago locales.php 7 years ago readme.txt 5 years ago require-lib.php 6 years ago uninstall.php 6 years ago wpml-config.xml 10 years ago
class-jetpack-wizard-banner.php
240 lines
1 <?php
2 /**
3 * Displays the first page of the Wizard in a banner form
4 *
5 * @package Jetpack
6 */
7
8 use Automattic\Jetpack\Assets;
9 use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
10 use Automattic\Jetpack\Tracking;
11
12 /**
13 * Jetpack_Wizard_Banner
14 **/
15 class Jetpack_Wizard_Banner {
16 /**
17 * Jetpack_Wizard_Banner
18 *
19 * @var Jetpack_Wizard_Banner
20 **/
21 private static $instance = null;
22
23 /**
24 * Factory method
25 */
26 public static function init() {
27 if ( is_null( self::$instance ) ) {
28 self::$instance = new Jetpack_Wizard_Banner();
29 }
30
31 return self::$instance;
32 }
33
34 /**
35 * Jetpack_Wizard_Banner constructor.
36 */
37 private function __construct() {
38 add_action( 'current_screen', array( $this, 'maybe_initialize_hooks' ) );
39 }
40
41 /**
42 * Initialize hooks to display the banner
43 */
44 public function maybe_initialize_hooks() {
45 if ( ! $this->can_be_displayed() ) {
46 return;
47 }
48
49 add_action( 'admin_print_styles', array( $this, 'admin_banner_styles' ) );
50 add_action( 'admin_notices', array( $this, 'render_banner' ) );
51 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_banner_scripts' ) );
52 }
53
54 /**
55 * Can we display the banner?
56 */
57 private function can_be_displayed() {
58 if ( ! Jetpack_Wizard::can_be_displayed() ) {
59 return false;
60 }
61
62 // Only the dashboard and plugins pages should see the banner.
63 if ( ! in_array( get_current_screen()->id, array( 'dashboard', 'plugins' ), true ) ) {
64 return false;
65 }
66
67 if ( ! current_user_can( 'jetpack_manage_modules' ) ) {
68 return false;
69 }
70
71 // Kill if banner has been dismissed.
72 if ( Jetpack_Options::get_option( 'dismissed_wizard_banner' ) ) {
73 return false;
74 }
75
76 if ( ! in_array( Jetpack_Options::get_option( 'setup_wizard_status', 'not-started' ), array( 'not-started', 'intro-page' ), true ) ) {
77 return false;
78 }
79
80 return true;
81 }
82
83 /**
84 * Enqueue JavaScript files.
85 */
86 public function enqueue_banner_scripts() {
87 wp_enqueue_script(
88 'jetpack-wizard-banner-js',
89 Assets::get_file_url_for_environment(
90 '_inc/build/jetpack-wizard-banner.min.js',
91 '_inc/jetpack-wizard-banner.js'
92 ),
93 array( 'jquery' ),
94 JETPACK__VERSION,
95 true
96 );
97
98 wp_localize_script(
99 'jetpack-wizard-banner-js',
100 'jp_banner',
101 array(
102 'ajax_url' => admin_url( 'admin-ajax.php' ),
103 'wizardBannerNonce' => wp_create_nonce( 'jp-wizard-banner-nonce' ),
104 )
105 );
106 }
107
108 /**
109 * Include the needed styles
110 */
111 public function admin_banner_styles() {
112 wp_enqueue_style(
113 'jetpack-wizard-banner',
114 Assets::get_file_url_for_environment(
115 'css/jetpack-wizard-banner.min.css',
116 'css/jetpack-wizard-banner.css'
117 ),
118 array(),
119 JETPACK__VERSION
120 );
121 }
122
123 /**
124 * AJAX callback
125 */
126 public static function ajax_callback() {
127 check_ajax_referer( 'jp-wizard-banner-nonce', 'nonce' );
128
129 $tracking = new Tracking();
130
131 if ( isset( $_REQUEST['personal'] ) ) {
132 $tracking->record_user_event( 'setup_wizard_banner_click', array( 'button' => 'personal' ) );
133 }
134
135 if ( isset( $_REQUEST['business'] ) ) {
136 $tracking->record_user_event( 'setup_wizard_banner_click', array( 'button' => 'business' ) );
137 }
138
139 if ( isset( $_REQUEST['skip'] ) ) {
140 $tracking->record_user_event( 'setup_wizard_banner_click', array( 'button' => 'skip' ) );
141 }
142
143 if (
144 current_user_can( 'jetpack_manage_modules' )
145 && isset( $_REQUEST['dismissBanner'] )
146 ) {
147 Jetpack_Options::update_option( 'dismissed_wizard_banner', 1 );
148 $tracking->record_user_event( 'setup_wizard_banner_dismiss' );
149 wp_send_json_success();
150 }
151
152 wp_die();
153 }
154
155 /**
156 * Renders the Wizard Banner
157 *
158 * Since this HTML replicates the contents of _inc/client/setup-wizard/intro-page/index.jsx,
159 * every time one is changed, the other should also be.
160 */
161 public function render_banner() {
162 $jetpack_logo = new Jetpack_Logo();
163 $powering_up_logo = plugins_url( 'images/jetpack-powering-up.svg', JETPACK__PLUGIN_FILE );
164
165 ?>
166 <div id="jp-wizard-banner" class="jp-wizard-banner">
167 <div class="jp-wizard-banner-grid">
168 <div class="jp-wizard-banner-grid-a">
169 <div class="jp-emblem">
170 <?php
171 echo $jetpack_logo->get_jp_emblem_larger(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
172 ?>
173 </div>
174 <h2 class="jp-wizard-banner-wizard-header">
175 <?php esc_html_e( 'Set up Jetpack for better site security, performance, and more.', 'jetpack' ); ?>
176 </h2>
177 <p class="jp-wizard-banner-wizard-paragraph">
178 <?php esc_html_e( 'Jetpack is a cloud-powered tool built by Automattic.', 'jetpack' ); ?>
179 </p>
180 <p class="jp-wizard-banner-wizard-paragraph">
181 <?php esc_html_e( 'Answer a few questions and we’ll help you secure, speed up, customize, and grow your WordPress website.', 'jetpack' ); ?>
182 </p>
183 <div class="jp-wizard-banner-wizard-intro-question">
184 <h2>
185 <?php
186 printf(
187 /* translators: %s is the site name */
188 esc_html__( 'What will %s be used for?', 'jetpack' ),
189 esc_html( get_bloginfo( 'name' ) )
190 );
191 ?>
192 </h2>
193 <div class="jp-wizard-banner-wizard-answer-buttons">
194 <a
195 id="jp-wizard-banner-personal-button"
196 class="button button-primary jp-wizard-banner-wizard-button"
197 href="<?php echo esc_url( Jetpack::admin_url( 'page=jetpack#/setup/income?use=personal' ) ); ?>"
198 >
199 <?php esc_html_e( 'Personal Use', 'jetpack' ); ?>
200 </a>
201 <a
202 id="jp-wizard-banner-business-button"
203 class="button button-primary jp-wizard-banner-wizard-button"
204 href="<?php echo esc_url( Jetpack::admin_url( 'page=jetpack#/setup/income?use=business' ) ); ?>"
205 >
206 <?php esc_html_e( 'Business Use', 'jetpack' ); ?>
207 </a>
208 </div>
209 <a
210 class="jp-wizard-banner-wizard-skip-link"
211 href="<?php echo esc_url( Jetpack::admin_url( 'page=jetpack#/setup/features' ) ); ?>"
212 >
213 <?php esc_html_e( 'Skip to recommended features', 'jetpack' ); ?>
214 </a>
215 </div>
216 </div>
217
218
219 <div class="jp-wizard-banner-grid-b">
220 <img
221 class="powering-up-img"
222 width="200px"
223 height="200px"
224 src="<?php echo esc_url( $powering_up_logo ); ?>"
225 alt="<?php esc_attr_e( 'A jetpack site powering up', 'jetpack' ); ?>"
226 />
227 </div>
228
229 <span
230 class="notice-dismiss"
231 title="<?php esc_attr_e( 'Dismiss this notice', 'jetpack' ); ?>">
232 </span>
233
234 </div>
235
236 </div>
237 <?php
238 }
239 }
240