PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 11.1.1
Jetpack – WP Security, Backup, Speed, & Growth v11.1.1
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-pre-connection-jitms.php
jetpack Last commit date
3rd-party 4 years ago _inc 3 years ago css 3 years ago extensions 3 years ago images 3 years ago jetpack_vendor 3 years ago json-endpoints 3 years ago modules 3 years ago sal 4 years ago src 4 years ago vendor 3 years ago views 4 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-gallery-settings.php 4 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 4 years ago class-jetpack-wizard-banner.php 5 years ago class-jetpack-xmlrpc-methods.php 4 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 4 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 4 years ago class.jetpack-modules-list-table.php 4 years ago class.jetpack-network-sites-list-table.php 4 years ago class.jetpack-network.php 4 years ago class.jetpack-plan.php 3 years ago class.jetpack-post-images.php 3 years ago class.jetpack-twitter-cards.php 4 years ago class.jetpack-user-agent.php 4 years ago class.jetpack.php 3 years ago class.json-api-endpoints.php 4 years ago class.json-api.php 3 years ago class.photon.php 3 years ago composer.json 3 years ago enhanced-open-graph.php 4 years ago functions.compat.php 4 years ago functions.cookies.php 5 years ago functions.global.php 4 years ago functions.opengraph.php 4 years ago functions.photon.php 4 years ago jetpack.php 3 years ago json-api-config.php 5 years ago json-endpoints.php 4 years ago load-jetpack.php 4 years ago locales.php 4 years ago readme.txt 3 years ago require-lib.php 4 years ago uninstall.php 5 years ago wpml-config.xml 3 years ago
class-jetpack-pre-connection-jitms.php
164 lines
1 <?php
2 /**
3 * Jetpack's Pre-Connection JITMs class.
4 *
5 * @package jetpack
6 */
7
8 use Automattic\Jetpack\Partner_Coupon as Jetpack_Partner_Coupon;
9 use Automattic\Jetpack\Redirect;
10
11 /**
12 * Jetpack's Pre-Connection JITMs. These can be displayed with the JITM package.
13 */
14 class Jetpack_Pre_Connection_JITMs {
15
16 /**
17 * Returns all the pre-connection messages.
18 *
19 * @return array An array containing the pre-connection JITM messages.
20 */
21 private function get_raw_messages() {
22 $button_caption = __( 'Set up Jetpack', 'jetpack' );
23 /* Translators: placeholders are links. */
24 $media_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to Site Accelerator.', 'jetpack' );
25 /* Translators: placeholders are links. */
26 $widgets_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to great additional widgets.', 'jetpack' );
27 /* Translators: placeholders are links. */
28 $posts_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to in-depth stats about your site.', 'jetpack' );
29
30 $messages = array(
31 array(
32 'id' => 'jpsetup-upload',
33 'message_path' => '/wp:upload:admin_notices/',
34 'message' => __( 'Do you want lightning-fast images?', 'jetpack' ),
35 'description' => $this->generate_description_with_tos( $media_description ),
36 'button_caption' => $button_caption,
37 ),
38 array(
39 'id' => 'jpsetup-widgets',
40 'message_path' => '/wp:widgets:admin_notices/',
41 'message' => __( 'Looking for even more widgets?', 'jetpack' ),
42 'description' => $this->generate_description_with_tos( $widgets_description ),
43 'button_caption' => $button_caption,
44 ),
45 );
46
47 if ( wp_count_posts()->publish >= 5 ) {
48 $messages[] = array(
49 'id' => 'jpsetup-posts',
50 'message_path' => '/wp:edit-post:admin_notices/',
51 'message' => __( 'Do you know which of these posts gets the most traffic?', 'jetpack' ),
52 'description' => $this->generate_description_with_tos( $posts_description ),
53 'button_caption' => $button_caption,
54 );
55 }
56
57 foreach ( $messages as $key => $message ) {
58 /*
59 * Add Connect URL to each message, with from including jitm id.
60 */
61 $jetpack_setup_url = $this->generate_admin_url(
62 array(
63 'page' => 'jetpack#/setup',
64 'from' => sprintf( 'pre-connection-jitm-%s', $message['id'] ),
65 )
66 );
67 $messages[ $key ]['button_link'] = $jetpack_setup_url;
68 }
69
70 return $messages;
71 }
72
73 /**
74 * Generate a description text with links to ToS documents.
75 *
76 * Those messages must mention the ToS agreement message,
77 * but do not use the standard message defined in jetpack_render_tos_blurb.
78 * Instead, they use their own custom messages.
79 *
80 * @param string $description Description string with placeholders.
81 *
82 * @return string
83 */
84 private function generate_description_with_tos( $description ) {
85 return sprintf(
86 wp_kses(
87 $description,
88 array(
89 'a' => array(
90 'href' => array(),
91 'target' => array(),
92 'rel' => array(),
93 ),
94 'strong' => true,
95 )
96 ),
97 esc_url( Redirect::get_url( 'wpcom-tos' ) ),
98 esc_url( Redirect::get_url( 'jetpack-support-what-data-does-jetpack-sync' ) )
99 );
100 }
101
102 /**
103 * Returns partnership related pre-connection messages.
104 *
105 * @since 10.4
106 *
107 * @return array An array containing the pre-connection JITM messages.
108 */
109 private function maybe_get_raw_partnership_messages() {
110 $partner_coupon = Jetpack_Partner_Coupon::get_coupon();
111
112 if ( ! $partner_coupon ) {
113 return array();
114 }
115
116 return array(
117 array(
118 'id' => 'jpsetup-partner-coupon',
119 'message_path' => '/wp:(plugin-install|themes|update-core|upload|users|tools|options-general):admin_notices/',
120 /* Translators: 1: Product name, 2: Partner name. */
121 'message' => sprintf( esc_html__( 'Get %1$s with your %2$s account', 'jetpack' ), $partner_coupon['product']['title'], $partner_coupon['partner']['name'] ),
122 'description' => $partner_coupon['product']['description'],
123 'button_caption' => esc_html__( 'Redeem coupon', 'jetpack' ),
124 'button_link' => $this->generate_admin_url(
125 array(
126 'page' => 'jetpack#/dashboard',
127 'from' => 'pre-connection-jitm--jpsetup-partner-coupon',
128 )
129 ),
130 ),
131 );
132 }
133
134 /**
135 * Adds the input query arguments to the admin url.
136 *
137 * @param array $args The query arguments.
138 *
139 * @return string The admin url.
140 */
141 private function generate_admin_url( $args ) {
142 $url = add_query_arg( $args, admin_url( 'admin.php' ) );
143 return $url;
144 }
145
146 /**
147 * Add the Jetpack pre-connection JITMs to the list of pre-connection JITM messages.
148 *
149 * @param array $pre_connection_messages An array of pre-connection JITMs.
150 *
151 * @return array The array of pre-connection JITMs.
152 */
153 public function add_pre_connection_jitms( $pre_connection_messages ) {
154 $jetpack_messages = array_merge( $this->get_raw_messages(), $this->maybe_get_raw_partnership_messages() );
155
156 if ( ! is_array( $pre_connection_messages ) ) {
157 // The incoming messages aren't an array, so just return Jetpack's messages.
158 return $jetpack_messages;
159 }
160
161 return array_merge( $pre_connection_messages, $jetpack_messages );
162 }
163 }
164