PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 7.0.3
Jetpack – WP Security, Backup, Speed, & Growth v7.0.3
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 / comment-likes.php
jetpack / modules Last commit date
after-the-deadline 7 years ago calypsoify 7 years ago carousel 5 years ago comment-likes 8 years ago comments 7 years ago contact-form 6 years ago custom-css 7 years ago custom-post-types 7 years ago geo-location 7 years ago google-analytics 7 years ago gplus-authorship 6 years ago infinite-scroll 7 years ago lazy-images 7 years ago likes 7 years ago manage 8 years ago markdown 7 years ago masterbar 7 years ago minileven 7 years ago photon 10 years ago photon-cdn 7 years ago post-by-email 9 years ago protect 7 years ago publicize 7 years ago pwa 8 years ago related-posts 7 years ago search 6 years ago seo-tools 7 years ago sharedaddy 7 years ago shortcodes 6 years ago simple-payments 7 years ago site-icon 6 years ago sitemaps 7 years ago sso 7 years ago subscriptions 7 years ago theme-tools 7 years ago tiled-gallery 7 years ago verification-tools 7 years ago videopress 7 years ago widget-visibility 7 years ago widgets 6 years ago woocommerce-analytics 7 years ago wordads 7 years ago after-the-deadline.php 8 years ago blocks.php 7 years ago carousel.php 9 years ago comment-likes.php 7 years ago comments.php 9 years ago contact-form.php 7 years ago copy-post.php 7 years ago custom-content-types.php 9 years ago custom-css.php 7 years ago debug.php 10 years ago enhanced-distribution.php 9 years ago geo-location.php 7 years ago google-analytics.php 8 years ago gplus-authorship.php 11 years ago gravatar-hovercards.php 8 years ago holiday-snow.php 8 years ago infinite-scroll.php 7 years ago json-api.php 9 years ago latex.php 9 years ago lazy-images.php 7 years ago likes.php 7 years ago manage.php 9 years ago markdown.php 9 years ago masterbar.php 7 years ago minileven.php 8 years ago mobile-push.php 10 years ago module-extras.php 7 years ago module-headings.php 7 years ago module-info.php 7 years ago monitor.php 8 years ago notes.php 9 years ago omnisearch.php 8 years ago photon-cdn.php 7 years ago photon.php 8 years ago post-by-email.php 7 years ago protect.php 7 years ago publicize.php 7 years ago pwa.php 8 years ago random-redirect.php 10 years ago related-posts.php 9 years ago search.php 8 years ago seo-tools.php 7 years ago sharedaddy.php 7 years ago shortcodes.php 7 years ago shortlinks.php 7 years ago site-icon.php 9 years ago sitemaps.php 7 years ago social-links.php 10 years ago sso.php 7 years ago stats.php 7 years ago subscriptions.php 7 years ago theme-tools.php 7 years ago tiled-gallery.php 7 years ago tonesque.php 10 years ago vaultpress.php 9 years ago verification-tools.php 9 years ago videopress.php 8 years ago widget-visibility.php 9 years ago widgets.php 7 years ago wordads.php 8 years ago wpcc.php 10 years ago wpgroho.js 10 years ago
comment-likes.php
206 lines
1 <?php
2 /**
3 * Module Name: Comment Likes
4 * Module Description: Increase visitor engagement by adding a Like button to comments.
5 * Sort Order: 39
6 * Recommendation Order: 17
7 * First Introduced: 5.1
8 * Requires Connection: Yes
9 * Auto Activate: No
10 * Module Tags: Social
11 * Additional Search Queries: like widget, like button, like, likes
12 */
13
14 Jetpack::dns_prefetch(
15 array(
16 '//widgets.wp.com',
17 )
18 );
19
20 require_once dirname( __FILE__ ) . '/likes/jetpack-likes-master-iframe.php';
21 require_once dirname( __FILE__ ) . '/likes/jetpack-likes-settings.php';
22
23 class Jetpack_Comment_Likes {
24 public static function init() {
25 static $instance = NULL;
26
27 if ( ! $instance ) {
28 $instance = new Jetpack_Comment_Likes;
29 }
30
31 return $instance;
32 }
33
34 private function __construct() {
35 $this->settings = new Jetpack_Likes_Settings();
36 $this->blog_id = Jetpack_Options::get_option( 'id' );
37 $this->url = home_url();
38 $this->url_parts = parse_url( $this->url );
39 $this->domain = $this->url_parts['host'];
40
41 add_action( 'template_redirect', array( $this, 'frontend_init' ) );
42 add_action( 'admin_init', array( $this, 'admin_init' ) );
43
44 if ( ! Jetpack::is_module_active( 'likes' ) ) {
45 $active = Jetpack::get_active_modules();
46
47 if ( ! in_array( 'sharedaddy', $active ) && ! in_array( 'publicize', $active ) ) {
48 // we don't have a sharing page yet
49 add_action( 'admin_menu', array( $this->settings, 'sharing_menu' ) );
50 }
51
52 if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) {
53 // we have a sharing page but not the global options area
54 add_action( 'pre_admin_screen_sharing', array( $this->settings, 'sharing_block' ), 20 );
55 add_action( 'pre_admin_screen_sharing', array( $this->settings, 'updated_message' ), -10 );
56 }
57
58 if( ! in_array( 'sharedaddy', $active ) ) {
59 add_action( 'admin_init', array( $this->settings, 'process_update_requests_if_sharedaddy_not_loaded' ) );
60 add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_showbuttonon_init' ), 19 );
61 add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_showbuttonon_callback' ), 19 );
62 add_action( 'admin_init', array( $this->settings, 'add_meta_box' ) );
63 } else {
64 add_filter( 'sharing_meta_box_title', array( $this->settings, 'add_likes_to_sharing_meta_box_title' ) );
65 add_action( 'start_sharing_meta_box_content', array( $this->settings, 'meta_box_content' ) );
66 }
67
68 add_action( 'save_post', array( $this->settings, 'meta_box_save' ) );
69 add_action( 'edit_attachment', array( $this->settings, 'meta_box_save' ) );
70 add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_init' ), 20 );
71 add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 );
72 }
73 }
74
75 public function admin_init() {
76 add_filter( 'manage_edit-comments_columns', array( $this, 'add_like_count_column' ) );
77 add_action( 'manage_comments_custom_column', array( $this, 'comment_likes_edit_column' ), 10, 2 );
78 add_action( 'admin_print_styles-edit-comments.php', array( $this, 'enqueue_admin_styles_scripts' ) );
79 }
80
81 public function comment_likes_edit_column( $column_name, $comment_id ) {
82 if ( 'comment_likes' !== $column_name ) {
83 return;
84 }
85
86 $permalink = get_permalink( get_the_ID() );
87 ?>
88 <a
89 data-comment-id="<?php echo absint( $comment_id ); ?>"
90 data-blog-id="<?php echo absint( $this->blog_id ); ?>"
91 class="comment-like-count"
92 id="comment-like-count-<?php echo absint( $comment_id ); ?>"
93 href="<?php echo esc_url( $permalink ); ?>#comment-<?php echo absint( $comment_id ); ?>"
94 >
95 <span class="like-count">0</span>
96 </a>
97 <?php
98 }
99
100 function enqueue_admin_styles_scripts() {
101 wp_enqueue_style( 'comment-like-count', plugins_url( 'comment-likes/admin-style.css', __FILE__ ), array(), JETPACK__VERSION );
102 wp_enqueue_script(
103 'comment-like-count',
104 Jetpack::get_file_url_for_environment(
105 '_inc/build/comment-likes/comment-like-count.min.js',
106 'modules/comment-likes/comment-like-count.js'
107 ),
108 array( 'jquery' ),
109 JETPACK__VERSION
110 );
111 }
112
113 public function add_like_count_column( $columns ) {
114 $columns['comment_likes'] = '<span class="vers"></span>';
115
116 return $columns;
117 }
118
119 public function frontend_init() {
120 if ( Jetpack_AMP_Support::is_amp_request() ) {
121 return;
122 }
123
124 add_action( 'wp_enqueue_scripts', array( $this, 'load_styles_register_scripts' ) );
125 add_filter( 'comment_text', array( $this, 'comment_likes' ), 10, 2 );
126 }
127
128 public function load_styles_register_scripts() {
129 if ( ! wp_style_is( 'open-sans', 'registered' ) ) {
130 wp_register_style( 'open-sans', 'https://fonts.googleapis.com/css?family=Open+Sans', array(), JETPACK__VERSION );
131 }
132 wp_enqueue_style( 'jetpack_likes', plugins_url( 'likes/style.css', __FILE__ ), array( 'open-sans' ), JETPACK__VERSION );
133 wp_enqueue_script(
134 'postmessage',
135 Jetpack::get_file_url_for_environment( '_inc/build/postmessage.min.js', '_inc/postmessage.js' ),
136 array( 'jquery' ),
137 JETPACK__VERSION,
138 false
139 );
140 wp_enqueue_script(
141 'jetpack_resize',
142 Jetpack::get_file_url_for_environment(
143 '_inc/build/jquery.jetpack-resize.min.js',
144 '_inc/jquery.jetpack-resize.js'
145 ),
146 array( 'jquery' ),
147 JETPACK__VERSION,
148 false
149 );
150 wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'likes/queuehandler.js' , __FILE__ ), array( 'jquery', 'postmessage', 'jetpack_resize' ), JETPACK__VERSION, true );
151 }
152
153 public function comment_likes( $content, $comment = null ) {
154 if ( empty( $comment ) ) {
155 return $content;
156 }
157
158 if ( ! $this->settings->is_likes_visible() ) {
159 return $content;
160 }
161
162 $comment_id = get_comment_ID();
163 if ( empty( $comment_id ) && ! empty( $comment->comment_ID ) ) {
164 $comment_id = $comment->comment_ID;
165 }
166
167 if ( empty( $content ) || empty( $comment_id ) ) {
168 return $content;
169 }
170
171 // In case master iframe hasn't been loaded. This could be the case when Post Likes module is disabled,
172 // or on pages on which we have comments but post likes are disabled.
173 if ( false === has_action( 'wp_footer', 'jetpack_likes_master_iframe' ) ) {
174 add_action( 'wp_footer', 'jetpack_likes_master_iframe', 21 );
175 }
176
177 $uniqid = uniqid();
178
179 $src = sprintf( 'https://widgets.wp.com/likes/#blog_id=%1$d&amp;comment_id=%2$d&amp;origin=%3$s&amp;obj_id=%1$d-%2$d-%4$s', $this->blog_id, $comment_id, $this->domain, $uniqid );
180 $name = sprintf( 'like-comment-frame-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid );
181 $wrapper = sprintf( 'like-comment-wrapper-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid );
182
183 $html = '';
184 $html .= "<div class='jetpack-comment-likes-widget-wrapper jetpack-likes-widget-unloaded' id='$wrapper' data-src='$src' data-name='$name'>";
185 $html .= "<div class='likes-widget-placeholder comment-likes-widget-placeholder comment-likes'><span class='loading'>" . esc_html__( 'Loading...', 'jetpack' ) . "</span></div>";
186 $html .= "<div class='comment-likes-widget jetpack-likes-widget comment-likes'><span class='comment-like-feedback'></span>";
187 $html .= "<span class='sd-text-color'></span><a class='sd-link-color'></a>";
188 $html .= '</div></div>';
189
190 /**
191 * Filters the Comment Likes button content.
192 *
193 * @module comment-likes
194 *
195 * @since 5.1.0
196 *
197 * @param string $html Comment Likes button content.
198 */
199 $like_button = apply_filters( 'comment_like_button', $html );
200
201 return $content . $like_button;
202 }
203 }
204
205 Jetpack_Comment_Likes::init();
206