PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 14.1.1
Jetpack – WP Security, Backup, Speed, & Growth v14.1.1
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 / modules / sharedaddy / sharedaddy.php
jetpack / modules / sharedaddy Last commit date
images 2 years ago services 2 years ago admin-sharing-rtl.css 2 years ago admin-sharing-rtl.min.css 2 years ago admin-sharing.css 2 years ago admin-sharing.js 2 years ago admin-sharing.min.css 2 years ago amp-sharing.css 2 years ago recaptcha.php 4 years ago sharedaddy.php 2 years ago sharing-service.php 1 year ago sharing-sources.php 2 years ago sharing.css 2 years ago sharing.js 3 years ago sharing.php 1 year ago
sharedaddy.php
230 lines
1 <?php
2 /**
3 * Jetpack's Sharing feature, nee Sharedaddy.
4 * The most super duper sharing tool on the interwebs.
5 *
6 * @package automattic/jetpack
7 */
8
9 // Set up Sharing in wp-admin.
10 require_once plugin_dir_path( __FILE__ ) . 'sharing.php';
11
12 /**
13 * Add a meta box to the post editing screen for sharing.
14 *
15 * @return void
16 */
17 function sharing_add_meta_box() {
18 global $post;
19 if ( empty( $post ) ) { // If a current post is not defined, such as when editing a comment.
20 return;
21 }
22
23 /**
24 * Filter whether to display the Sharing Meta Box or not.
25 *
26 * @module sharedaddy
27 *
28 * @since 3.8.0
29 *
30 * @param bool true Display Sharing Meta Box.
31 * @param $post Post.
32 */
33 if ( ! apply_filters( 'sharing_meta_box_show', true, $post ) ) {
34 return;
35 }
36
37 $post_types = get_post_types( array( 'public' => true ) );
38 /**
39 * Filter the Sharing Meta Box title.
40 *
41 * @module sharedaddy
42 *
43 * @since 2.2.0
44 *
45 * @param string $var Sharing Meta Box title. Default is "Sharing".
46 */
47 $title = apply_filters( 'sharing_meta_box_title', __( 'Sharing', 'jetpack' ) );
48 if ( $post->ID !== get_option( 'page_for_posts' ) ) {
49 foreach ( $post_types as $post_type ) {
50 add_meta_box( 'sharing_meta', $title, 'sharing_meta_box_content', $post_type, 'side', 'default', array( '__back_compat_meta_box' => true ) );
51 }
52 }
53 }
54
55 /**
56 * Content of the meta box.
57 *
58 * @param WP_Post $post The post to share.
59 *
60 * @return void
61 */
62 function sharing_meta_box_content( $post ) {
63 /**
64 * Fires before the sharing meta box content.
65 *
66 * @module sharedaddy
67 *
68 * @since 2.2.0
69 *
70 * @param WP_Post $post The post to share.
71 */
72 do_action( 'start_sharing_meta_box_content', $post );
73
74 $disabled = get_post_meta( $post->ID, 'sharing_disabled', true ); ?>
75
76 <p>
77 <label for="enable_post_sharing">
78 <input type="checkbox" name="enable_post_sharing" id="enable_post_sharing" value="1" <?php checked( ! $disabled ); ?>>
79 <?php esc_html_e( 'Show sharing buttons.', 'jetpack' ); ?>
80 </label>
81 <input type="hidden" name="sharing_status_hidden" value="1" />
82 </p>
83
84 <?php
85 /**
86 * Fires after the sharing meta box content.
87 *
88 * @module sharedaddy
89 *
90 * @since 2.2.0
91 *
92 * @param WP_Post $post The post to share.
93 */
94 do_action( 'end_sharing_meta_box_content', $post );
95 }
96
97 /**
98 * Save new sharing status in post meta in the meta box.
99 *
100 * @param int $post_id Post ID.
101 *
102 * @return int
103 */
104 function sharing_meta_box_save( $post_id ) {
105 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
106 return $post_id;
107 }
108
109 if ( ! isset( $_POST['post_type'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Core takes care of the validation.
110 return $post_id;
111 }
112
113 $post_type_object = get_post_type_object( sanitize_key( $_POST['post_type'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Core takes care of the validation.
114
115 // Record sharing disable.
116 if (
117 $post_type_object->public
118 && current_user_can( 'edit_post', $post_id )
119 && isset( $_POST['sharing_status_hidden'] ) // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Core takes care of the validation.
120 ) {
121 if ( ! isset( $_POST['enable_post_sharing'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Core takes care of the validation.
122 update_post_meta( $post_id, 'sharing_disabled', 1 );
123 } else {
124 delete_post_meta( $post_id, 'sharing_disabled' );
125 }
126 }
127
128 return $post_id;
129 }
130
131 /**
132 * If Sharing is disabled, disable the meta box.
133 *
134 * @param bool $protected Whether the key is considered protected.
135 * @param string $meta_key Metadata key.
136 *
137 * @return bool
138 */
139 function sharing_meta_box_protected( $protected, $meta_key ) {
140 if ( 'sharing_disabled' === $meta_key ) {
141 $protected = true;
142 }
143
144 return $protected;
145 }
146 add_filter( 'is_protected_meta', 'sharing_meta_box_protected', 10, 2 );
147
148 /**
149 * Add link to sharing settings in the Plugins screen.
150 *
151 * @param array $links An array of plugin action links.
152 *
153 * @return array
154 */
155 function sharing_plugin_settings( $links ) {
156 $settings_link = '<a href="options-general.php?page=sharing.php">' . __( 'Settings', 'jetpack' ) . '</a>';
157 array_unshift( $links, $settings_link );
158 return $links;
159 }
160
161 /**
162 * Add links to settings and support in the plugin row.
163 *
164 * @param array $links An array of the plugin's metadata, including the version, author, author URI, and plugin URI.
165 * @param string $file Path to the plugin file relative to the plugins directory.
166 *
167 * @return array
168 */
169 function sharing_add_plugin_settings( $links, $file ) {
170 if ( $file === basename( __DIR__ ) . '/' . basename( __FILE__ ) ) {
171 $links[] = '<a href="options-general.php?page=sharing.php">' . __( 'Settings', 'jetpack' ) . '</a>';
172 $links[] = '<a href="https://support.wordpress.com/sharing/" rel="noopener noreferrer" target="_blank">' . __( 'Support', 'jetpack' ) . '</a>';
173 }
174
175 return $links;
176 }
177
178 /**
179 * Disable sharing on the frontend if disabled in the admin.
180 *
181 * @return void
182 */
183 function sharing_init() {
184 if ( Jetpack_Options::get_option_and_ensure_autoload( 'sharedaddy_disable_resources', '0' ) ) {
185 add_filter( 'sharing_js', '__return_false' );
186 remove_action( 'wp_head', 'sharing_add_header', 1 );
187 }
188 }
189
190 /**
191 * Add settings to disable CSS and JS normally enqueued by our feature.
192 *
193 * @return void
194 */
195 function sharing_global_resources() {
196 $disable = get_option( 'sharedaddy_disable_resources' );
197 ?>
198 <tr valign="top">
199 <th scope="row"><label for="disable_css"><?php esc_html_e( 'Disable CSS and JS', 'jetpack' ); ?></label></th>
200 <td>
201 <?php
202 printf(
203 '<input id="disable_css" type="checkbox" name="disable_resources"%1$s /> <small><em>%2$s</em></small>',
204 ( 1 == $disable ) ? ' checked="checked"' : '', // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual
205 esc_html__( 'Advanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.', 'jetpack' )
206 );
207 ?>
208 </td>
209 </tr>
210 <?php
211 }
212
213 /**
214 * Save settings to disable CSS and JS normally enqueued by our feature.
215 *
216 * @return void
217 */
218 function sharing_global_resources_save() {
219 update_option( 'sharedaddy_disable_resources', isset( $_POST['disable_resources'] ) ? 1 : 0 ); // phpcs:ignore WordPress.Security.NonceVerification.Missing -- nonce handling is handled for all elements at once.
220 }
221
222 add_action( 'init', 'sharing_init' );
223 add_action( 'add_meta_boxes', 'sharing_add_meta_box' );
224 add_action( 'save_post', 'sharing_meta_box_save' );
225 add_action( 'edit_attachment', 'sharing_meta_box_save' );
226 add_action( 'sharing_global_options', 'sharing_global_resources', 30 );
227 add_action( 'sharing_admin_update', 'sharing_global_resources_save' );
228 add_action( 'plugin_action_links_' . basename( __DIR__ ) . '/' . basename( __FILE__ ), 'sharing_plugin_settings', 10, 4 );
229 add_filter( 'plugin_row_meta', 'sharing_add_plugin_settings', 10, 2 );
230