PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
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 / modules / widgets / mailchimp.php
jetpack / modules / widgets Last commit date
authors 7 months ago contact-info 7 months ago eu-cookie-law 7 months ago facebook-likebox 11 years ago flickr 7 months ago gallery 7 months ago goodreads 7 months ago google-translate 1 year ago image-widget 7 months ago instagram 4 months ago internet-defense-league 1 year ago milestone 4 months ago my-community 7 months ago social-icons 4 months ago social-media-icons 7 months ago top-posts 7 months ago wordpress-post-widget 2 weeks ago authors.php 7 months ago blog-stats.php 7 months ago class-jetpack-eu-cookie-law-widget.php 1 month ago class-jetpack-instagram-widget.php 6 months ago contact-info.php 1 month ago customizer-controls.css 7 months ago customizer-utils.js 1 year ago facebook-likebox.php 1 month ago flickr.php 7 months ago gallery.php 1 month ago goodreads.php 1 month ago google-translate.php 1 month ago gravatar-profile.css 7 months ago gravatar-profile.php 1 month ago image-widget.php 7 months ago internet-defense-league.php 7 months ago mailchimp.php 7 months ago milestone.php 7 months ago my-community.php 1 month ago rsslinks-widget.php 2 weeks ago simple-payments.php 7 months ago social-icons.php 1 month ago social-media-icons.php 7 months ago top-posts.php 1 month ago twitter-timeline-admin.js 1 year ago twitter-timeline.php 2 weeks ago upcoming-events.php 7 months ago wordpress-post-widget.php 7 months ago
mailchimp.php
139 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * MailChimp popup widget.
4 * It acts as a wrapper for the mailchimp_subscriber_popup shortcode.
5 *
6 * @package automattic/jetpack
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit( 0 );
11 }
12
13 // phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- TODO: Move classes to appropriately-named class files.
14
15 if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
16
17 if ( ! class_exists( 'MailChimp_Subscriber_Popup' ) ) {
18 include_once JETPACK__PLUGIN_DIR . 'modules/shortcodes/mailchimp.php';
19 }
20
21 /**
22 * Register MailChimp Subscriber Popup widget.
23 */
24 function jetpack_mailchimp_subscriber_popup_widget_init() {
25 register_widget( 'Jetpack_MailChimp_Subscriber_Popup_Widget' );
26 }
27
28 add_action( 'widgets_init', 'jetpack_mailchimp_subscriber_popup_widget_init' );
29
30 /**
31 * Add a MailChimp subscription form.
32 */
33 class Jetpack_MailChimp_Subscriber_Popup_Widget extends WP_Widget {
34
35 /**
36 * Constructor
37 */
38 public function __construct() {
39 parent::__construct(
40 'widget_mailchimp_subscriber_popup',
41 /** This filter is documented in modules/widgets/facebook-likebox.php */
42 apply_filters( 'jetpack_widget_name', __( 'MailChimp Subscriber Popup', 'jetpack' ) ),
43 array(
44 'classname' => 'widget_mailchimp_subscriber_popup',
45 'description' => __( 'Allows displaying a popup subscription form to visitors.', 'jetpack' ),
46 'customize_selective_refresh' => true,
47 )
48 );
49
50 add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
51 }
52
53 /**
54 * Remove the "Mailchimp Subscriber Popup" widget from the Legacy Widget block
55 *
56 * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
57 * @return array $widget_types New list of widgets that will be removed.
58 */
59 public function hide_widget_in_block_editor( $widget_types ) {
60 $widget_types[] = 'widget_mailchimp_subscriber_popup';
61 return $widget_types;
62 }
63
64 /**
65 * Outputs the HTML for this widget.
66 *
67 * @param array $args An array of standard parameters for widgets in this theme.
68 * @param array $instance An array of settings for this widget instance.
69 *
70 * @return void Echoes it's output
71 */
72 public function widget( $args, $instance ) {
73 $instance = wp_parse_args( $instance, array( 'code' => '' ) );
74
75 // Regular expresion that will match maichimp shortcode.
76 $regex = '(\[mailchimp_subscriber_popup[^\]]+\])';
77
78 // Check if the shortcode exists.
79 preg_match( $regex, $instance['code'], $matches );
80
81 // Process the shortcode only, if exists.
82 if ( ! empty( $matches[0] ) ) {
83 echo do_shortcode( $matches[0] );
84 }
85
86 /** This action is documented in modules/widgets/gravatar-profile.php */
87 do_action( 'jetpack_stats_extra', 'widget_view', 'mailchimp_subscriber_popup' );
88 }
89
90 /**
91 * Deals with the settings when they are saved by the admin.
92 *
93 * @param array $new_instance New configuration values.
94 * @param array $old_instance Old configuration values.
95 *
96 * @return array
97 */
98 public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
99 $instance = array();
100 $instance['code'] = MailChimp_Subscriber_Popup::reversal( $new_instance['code'] );
101
102 return $instance;
103 }
104
105 /**
106 * Displays the form for this widget on the Widgets page of the WP Admin area.
107 *
108 * @param array $instance Instance configuration.
109 *
110 * @return string|void
111 */
112 public function form( $instance ) {
113 $instance = wp_parse_args( $instance, array( 'code' => '' ) );
114
115 $label = sprintf(
116 wp_kses(
117 /* Translators: %s is a link to the MailChimp support docs. */
118 __( 'Code: <a href="%s" target="_blank">( ? )</a>', 'jetpack' ),
119 array(
120 'a' => array(
121 'href' => array(),
122 'target' => array(),
123 ),
124 )
125 ),
126 'https://en.support.wordpress.com/mailchimp/'
127 );
128
129 printf(
130 '<p><label for="%1$s">%4$s</label><textarea class="widefat" id="%1$s" name="%2$s" rows="3">%3$s</textarea></p>',
131 esc_attr( $this->get_field_id( 'code' ) ),
132 esc_attr( $this->get_field_name( 'code' ) ),
133 esc_textarea( $instance['code'] ),
134 $label // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped above.
135 );
136 }
137 }
138 }
139