Software : Apache/2.4.6 (CentOS) PHP/7.4.33 Widgets
*/
add_action( 'widgets_init', 'jetpack_facebook_likebox_init' );
function jetpack_facebook_likebox_init() {
register_widget( 'WPCOM_Widget_Facebook_LikeBox' );
}
/**
* Facebook Page Plugin (formerly known as the Like Box)
* Display a Facebook Page Plugin as a widget (replaces the old like box plugin)
* https://developers.facebook.com/docs/plugins/page-plugin
*/
class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
private $default_height = 580;
private $default_width = 340;
private $max_width = 500;
private $min_width = 180;
private $max_height = 9999;
private $min_height = 130;
function __construct() {
parent::__construct(
'facebook-likebox',
/**
* Filter the name of a widget included in the Extra Sidebar Widgets module.
*
* @module widgets
*
* @since 2.1.2
*
* @param string $widget_name Widget title.
*/
apply_filters( 'jetpack_widget_name', __( 'Facebook Page Plugin', 'jetpack' ) ),
array(
'classname' => 'widget_facebook_likebox',
'description' => __( 'Use the Facebook Page Plugin to connect visitors to your Facebook Page', 'jetpack' ),
'customize_selective_refresh' => true,
)
);
if ( is_active_widget( false, false, $this->id_base ) || is_active_widget( false, false, 'monster' ) || is_customize_preview() ) {
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
}
}
/**
* Enqueue scripts.
*/
public function enqueue_scripts() {
wp_enqueue_script( 'jetpack-facebook-embed' );
wp_enqueue_style( 'jetpack_facebook_likebox', plugins_url( 'facebook-likebox/style.css', __FILE__ ) );
wp_style_add_data( 'jetpack_facebook_likebox', 'jetpack-inline', true );
}
function widget( $args, $instance ) {
extract( $args );
$like_args = $this->normalize_facebook_args( $instance['like_args'] );
if ( empty( $like_args['href'] ) || ! $this->is_valid_facebook_url( $like_args['href'] ) ) {
if ( current_user_can( 'edit_theme_options' ) ) {
echo $before_widget;
echo '
' . sprintf( __( 'It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.', 'jetpack' ), admin_url( 'widgets.php' ) ) . '
';
echo $after_widget;
}
echo '';
return;
}
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $instance['title'] );
$page_url = set_url_scheme( $like_args['href'], 'https' );
$like_args['show_faces'] = (bool) $like_args['show_faces'] ? 'true' : 'false';
$like_args['stream'] = (bool) $like_args['stream'] ? 'timeline' : 'false';
$like_args['cover'] = (bool) $like_args['cover'] ? 'false' : 'true';
echo $before_widget;
if ( ! empty( $title ) ) :
echo $before_title;
$likebox_widget_title = '' . esc_html( $title ) . '';
/**
* Filter Facebook Likebox's widget title.
*
* @module widgets
*
* @since 3.3.0
*
* @param string $likebox_widget_title Likebox Widget title (including a link to the Page URL).
* @param string $title Widget title as set in the widget settings.
* @param string $page_url Facebook Page URL.
*/
echo apply_filters( 'jetpack_facebook_likebox_title', $likebox_widget_title, $title, $page_url );
echo $after_title;
endif;
?>