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