settings = new Jetpack_Likes_Settings(); $this->blog_id = Jetpack_Options::get_option( 'id' ); $this->url = home_url(); $this->url_parts = parse_url( $this->url ); $this->domain = $this->url_parts['host']; add_action( 'init', array( $this, 'frontend_init' ) ); add_action( 'admin_init', array( $this, 'admin_init' ) ); if ( ! Jetpack::is_module_active( 'likes' ) ) { $active = Jetpack::get_active_modules(); if ( ! in_array( 'sharedaddy', $active ) && ! in_array( 'publicize', $active ) ) { // we don't have a sharing page yet add_action( 'admin_menu', array( $this->settings, 'sharing_menu' ) ); } if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) { // we have a sharing page but not the global options area add_action( 'pre_admin_screen_sharing', array( $this->settings, 'sharing_block' ), 20 ); add_action( 'pre_admin_screen_sharing', array( $this->settings, 'updated_message' ), -10 ); } if( ! in_array( 'sharedaddy', $active ) ) { add_action( 'admin_init', array( $this->settings, 'process_update_requests_if_sharedaddy_not_loaded' ) ); add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_showbuttonon_init' ), 19 ); add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_showbuttonon_callback' ), 19 ); add_action( 'admin_init', array( $this->settings, 'add_meta_box' ) ); } else { add_filter( 'sharing_meta_box_title', array( $this->settings, 'add_likes_to_sharing_meta_box_title' ) ); add_action( 'start_sharing_meta_box_content', array( $this->settings, 'meta_box_content' ) ); } add_action( 'save_post', array( $this->settings, 'meta_box_save' ) ); add_action( 'edit_attachment', array( $this->settings, 'meta_box_save' ) ); add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_init' ), 20 ); add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 ); } } public function admin_init() { add_filter( 'manage_edit-comments_columns', array( $this, 'add_like_count_column' ) ); add_action( 'manage_comments_custom_column', array( $this, 'comment_likes_edit_column' ), 10, 2 ); add_action( 'admin_print_styles-edit-comments.php', array( $this, 'enqueue_admin_styles_scripts' ) ); } public function comment_likes_edit_column( $column_name, $comment_id ) { if ( 'comment_likes' !== $column_name ) { return; } $permalink = get_permalink( get_the_ID() ); ?> 0 '; return $columns; } public function frontend_init() { if ( is_admin() ) { return; } if ( Jetpack_AMP_Support::is_amp_request() ) { return; } add_action( 'wp_enqueue_scripts', array( $this, 'load_styles_register_scripts' ) ); add_filter( 'comment_text', array( $this, 'comment_likes' ), 10, 2 ); } public function load_styles_register_scripts() { if ( ! wp_style_is( 'open-sans', 'registered' ) ) { wp_register_style( 'open-sans', 'https://fonts.googleapis.com/css?family=Open+Sans', array(), JETPACK__VERSION ); } wp_enqueue_style( 'jetpack_likes', plugins_url( 'likes/style.css', __FILE__ ), array( 'open-sans' ), JETPACK__VERSION ); wp_enqueue_script( 'postmessage', Jetpack::get_file_url_for_environment( '_inc/build/postmessage.min.js', '_inc/postmessage.js' ), array( 'jquery' ), JETPACK__VERSION, false ); wp_enqueue_script( 'jetpack_resize', Jetpack::get_file_url_for_environment( '_inc/build/jquery.jetpack-resize.min.js', '_inc/jquery.jetpack-resize.js' ), array( 'jquery' ), JETPACK__VERSION, false ); wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'likes/queuehandler.js' , __FILE__ ), array( 'jquery', 'postmessage', 'jetpack_resize' ), JETPACK__VERSION, true ); } public function comment_likes( $content, $comment = null ) { if ( empty( $comment ) ) { return $content; } if ( ! $this->settings->is_likes_visible() ) { return $content; } $comment_id = get_comment_ID(); if ( empty( $comment_id ) && ! empty( $comment->comment_ID ) ) { $comment_id = $comment->comment_ID; } if ( empty( $content ) || empty( $comment_id ) ) { return $content; } // In case master iframe hasn't been loaded. This could be the case when Post Likes module is disabled, // or on pages on which we have comments but post likes are disabled. if ( false === has_action( 'wp_footer', 'jetpack_likes_master_iframe' ) ) { add_action( 'wp_footer', 'jetpack_likes_master_iframe', 21 ); } $uniqid = uniqid(); $src = sprintf( 'https://widgets.wp.com/likes/#blog_id=%1$d&comment_id=%2$d&origin=%3$s&obj_id=%1$d-%2$d-%4$s', $this->blog_id, $comment_id, $this->domain, $uniqid ); $name = sprintf( 'like-comment-frame-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid ); $wrapper = sprintf( 'like-comment-wrapper-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid ); $html = ''; $html .= "
"; $html .= "
" . esc_html__( 'Loading...', 'jetpack' ) . "
"; $html .= "
"; $html .= ""; $html .= '
'; /** * Filters the Comment Likes button content. * * @module comment-likes * * @since 5.1.0 * * @param string $html Comment Likes button content. */ $like_button = apply_filters( 'comment_like_button', $html ); return $content . $like_button; } } Jetpack_Comment_Likes::init();