PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.0.3
Jetpack – WP Security, Backup, Speed, & Growth v12.0.3
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 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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-stats-dashboard-widget.php
jetpack Last commit date
3rd-party 3 years ago _inc 3 years ago css 3 years ago extensions 3 years ago images 3 years ago jetpack_vendor 1 day ago json-endpoints 3 years ago modules 1 year ago sal 3 years ago src 3 years ago vendor 3 years ago views 3 years ago CHANGELOG.md 3 years ago LICENSE.txt 5 years ago SECURITY.md 5 years ago class-jetpack-connection-status.php 5 years ago class-jetpack-connection-widget.php 3 years ago class-jetpack-gallery-settings.php 3 years ago class-jetpack-pre-connection-jitms.php 4 years ago class-jetpack-recommendations-banner.php 3 years ago class-jetpack-stats-dashboard-widget.php 3 years ago class-jetpack-wizard-banner.php 5 years ago class-jetpack-xmlrpc-methods.php 3 years ago class.frame-nonce-preview.php 4 years ago class.jetpack-admin.php 3 years ago class.jetpack-affiliate.php 4 years ago class.jetpack-autoupdate.php 3 years ago class.jetpack-bbpress-json-api.compat.php 5 years ago class.jetpack-cli.php 3 years ago class.jetpack-client-server.php 4 years ago class.jetpack-connection-banner.php 3 years ago class.jetpack-data.php 5 years ago class.jetpack-gutenberg.php 3 years ago class.jetpack-heartbeat.php 4 years ago class.jetpack-idc.php 5 years ago class.jetpack-modules-list-table.php 3 years ago class.jetpack-network-sites-list-table.php 4 years ago class.jetpack-network.php 3 years ago class.jetpack-plan.php 3 years ago class.jetpack-post-images.php 3 years ago class.jetpack-twitter-cards.php 3 years ago class.jetpack-user-agent.php 3 years ago class.jetpack.php 3 years ago class.json-api-endpoints.php 3 years ago class.json-api.php 3 years ago class.photon.php 3 years ago composer.json 3 years ago enhanced-open-graph.php 3 years ago functions.compat.php 4 years ago functions.cookies.php 5 years ago functions.global.php 3 years ago functions.is-mobile.php 3 years ago functions.opengraph.php 3 years ago functions.photon.php 3 years ago jetpack.php 1 day ago json-api-config.php 3 years ago json-endpoints.php 3 years ago load-jetpack.php 3 years ago locales.php 4 years ago readme.txt 1 day ago uninstall.php 5 years ago wpml-config.xml 4 years ago
class-jetpack-stats-dashboard-widget.php
239 lines
1 <?php
2 /**
3 * Adds the Jetpack stats widget to the WordPress admin dashboard.
4 *
5 * @package jetpack
6 */
7
8 use Automattic\Jetpack\Assets;
9 use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
10 use Automattic\Jetpack\Redirect;
11 use Automattic\Jetpack\Status;
12
13 /**
14 * Class that adds the Jetpack stats widget to the WordPress admin dashboard.
15 *
16 * Note that this widget renders whether or not the stats module is active because it currently
17 * displays information about Akismet and Protect.
18 */
19 class Jetpack_Stats_Dashboard_Widget {
20
21 /**
22 * Indicates whether the class initialized or not.
23 *
24 * @var bool
25 */
26 private static $initialized = false;
27
28 /**
29 * Initialize the class by calling the setup static function.
30 *
31 * @return void
32 */
33 public static function init() {
34 if ( ! self::$initialized ) {
35 self::$initialized = true;
36 self::wp_dashboard_setup();
37 }
38 }
39
40 /**
41 * Sets up the Jetpack Stats widget in the WordPress admin dashboard.
42 */
43 public static function wp_dashboard_setup() {
44
45 /**
46 * Filter whether the Jetpack Stats dashboard widget should be shown to the current user.
47 * By default, the dashboard widget is shown to users who can view_stats.
48 *
49 * @module stats
50 * @since 11.9
51 *
52 * @param bool Whether to show the widget to the current user.
53 */
54 if ( ! apply_filters( 'jetpack_stats_dashboard_widget_show_to_user', current_user_can( 'view_stats' ) ) ) {
55 return;
56 }
57
58 if ( Jetpack::is_connection_ready() ) {
59 add_action( 'admin_head', array( static::class, 'admin_head' ) );
60
61 $widget_title = sprintf(
62 __( 'Jetpack Stats', 'jetpack' )
63 );
64
65 wp_add_dashboard_widget(
66 'jetpack_summary_widget',
67 $widget_title,
68 array( __CLASS__, 'render_widget' )
69 );
70 wp_enqueue_style(
71 'jetpack-dashboard-widget',
72 Assets::get_file_url_for_environment(
73 'css/dashboard-widget.min.css',
74 'css/dashboard-widget.css'
75 ),
76 array(),
77 JETPACK__VERSION
78 );
79 wp_style_add_data( 'jetpack-dashboard-widget', 'rtl', 'replace' );
80 }
81 }
82
83 /**
84 * JavaScript and CSS for dashboard widget.
85 *
86 * @access public
87 * @return void
88 */
89 public static function admin_head() {
90 ?>
91 <script type="text/javascript">
92 /* <![CDATA[ */
93 jQuery( function($) {
94 var dashStats = jQuery( '#dashboard_stats div.inside' );
95
96 if ( dashStats.find( '.dashboard-widget-control-form' ).length ) {
97 return;
98 }
99
100 if ( ! dashStats.length ) {
101 dashStats = jQuery( '#dashboard_stats div.dashboard-widget-content' );
102 var h = parseInt( dashStats.parent().height() ) - parseInt( dashStats.prev().height() );
103 var args = 'width=' + dashStats.width() + '&height=' + h.toString();
104 } else {
105 if ( jQuery('#dashboard_stats' ).hasClass('postbox') ) {
106 var args = 'width=' + ( dashStats.prev().width() * 2 ).toString();
107 } else {
108 var args = 'width=' + ( dashStats.width() * 2 ).toString();
109 }
110 }
111
112 dashStats
113 .not( '.dashboard-widget-control' )
114 .load( 'admin.php?page=stats&noheader&dashboard&' + args, function() {
115 jQuery( '#dashboard_stats' ).removeClass( 'is-loading' );
116 jQuery( '#stat-chart' ).css( 'width', 'auto' );
117 } );
118
119 // Widget settings toggle container.
120 var toggle = $( '.js-toggle-stats_dashboard_widget_control' );
121
122 // Move the toggle in the widget header.
123 toggle.appendTo( '#jetpack_summary_widget .handle-actions' );
124
125 // Toggle settings when clicking on it.
126 toggle.show().click( function( e ) {
127 e.preventDefault();
128 e.stopImmediatePropagation();
129 $( this ).parent().toggleClass( 'controlVisible' );
130 $( '#stats_dashboard_widget_control' ).slideToggle();
131 } );
132 } );
133 /* ]]> */
134 </script>
135 <?php
136 }
137
138 /**
139 * Renders the widget and fires a dashboard widget action.
140 */
141 public static function render_widget() {
142 // This function won't exist if the stats module is disabled.
143 if ( function_exists( 'stats_jetpack_dashboard_widget' ) ) {
144 stats_jetpack_dashboard_widget();
145 }
146
147 /**
148 * Fires when the dashboard is loaded, but no longer used anywhere in the Jetpack plugin.
149 * The action is still available for backward compatibility.
150 *
151 * @since 3.4.0
152 */
153 do_action( 'jetpack_dashboard_widget' );
154
155 self::render_footer();
156 }
157
158 /**
159 * Load the widget footer showing brute force protection and Akismet stats.
160 */
161 public static function render_footer() {
162 ?>
163 <footer>
164 <div class="blocked-container">
165 <div class="protect">
166 <h3><?php esc_html_e( 'Brute force attack protection', 'jetpack' ); ?></h3>
167 <?php if ( Jetpack::is_module_active( 'protect' ) ) : ?>
168 <p class="blocked-count">
169 <?php echo esc_html( number_format_i18n( get_site_option( 'jetpack_protect_blocked_attempts', 0 ) ) ); ?>
170 </p>
171 <p><?php echo esc_html_x( 'Blocked malicious login attempts', '{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
172 <?php elseif ( current_user_can( 'jetpack_activate_modules' ) && ! ( new Status() )->is_offline_mode() ) : ?>
173 <a href="
174 <?php
175 echo esc_url(
176 wp_nonce_url(
177 Jetpack::admin_url(
178 array(
179 'action' => 'activate',
180 'module' => 'protect',
181 )
182 ),
183 'jetpack_activate-protect'
184 )
185 );
186 ?>
187 " class="button button-jetpack" title="<?php esc_attr_e( 'Protect helps to keep you secure from brute-force login attacks.', 'jetpack' ); ?>">
188 <?php esc_html_e( 'Activate brute force attack protection', 'jetpack' ); ?>
189 </a>
190 <?php else : ?>
191 <?php esc_html_e( 'Brute force attack protection is inactive.', 'jetpack' ); ?>
192 <?php endif; ?>
193 </div>
194
195 <div class="akismet">
196 <h3><?php esc_html_e( 'Akismet Anti-spam', 'jetpack' ); ?></h3>
197 <?php if ( is_plugin_active( 'akismet/akismet.php' ) ) : ?>
198 <p class="blocked-count">
199 <?php echo esc_html( number_format_i18n( get_option( 'akismet_spam_count', 0 ) ) ); ?>
200 </p>
201 <p><?php echo esc_html_x( 'Blocked spam comments', '{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
202 <?php elseif ( current_user_can( 'activate_plugins' ) && ! is_wp_error( validate_plugin( 'akismet/akismet.php' ) ) ) : ?>
203 <a href="
204 <?php
205 echo esc_url(
206 wp_nonce_url(
207 add_query_arg(
208 array(
209 'action' => 'activate',
210 'plugin' => 'akismet/akismet.php',
211 ),
212 admin_url( 'plugins.php' )
213 ),
214 'activate-plugin_akismet/akismet.php'
215 )
216 );
217 ?>
218 " class="button button-jetpack">
219 <?php esc_html_e( 'Activate Anti-spam', 'jetpack' ); ?>
220 </a>
221 <?php else : ?>
222 <p><a href="<?php echo esc_url( 'https://akismet.com/?utm_source=jetpack&utm_medium=link&utm_campaign=Jetpack%20Dashboard%20Widget%20Footer%20Link' ); ?>"><?php esc_html_e( 'Anti-spam can help to keep your blog safe from spam!', 'jetpack' ); ?></a></p>
223 <?php endif; ?>
224 </div>
225 </div>
226 <div class="footer-links">
227 <a href="<?php echo esc_url( Redirect::get_url( 'jetpack-support-wordpress-com-stats' ) ); ?>" target="_blank">
228 <?php
229 $jetpack_logo = new Jetpack_Logo();
230 echo $jetpack_logo->get_jp_emblem( true );// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
231 ?>
232 </a>
233 </div>
234 </footer>
235
236 <?php
237 }
238 }
239