Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

Block_Widget

Sidebar block widget.

class Block_Widget extends WP_Widget {

	public function __construct() {

		parent::__construct(
			'sidebar-block',
			__( 'Sidebar block', 'text_domain' ),
			array(
				'description' => __( 'Sidebar block widget.', 'text_domain' ),
				'classname'   => 'block_widget',
			)
		);

	}

	public function widget( $args, $instance ) {

		$icon = ( ! empty( $instance['block_icon'] ) ) ? $instance['block_icon'] : '';
		$title = ( ! empty( $instance['block_title'] ) ) ? $instance['block_title'] : '';
		$link = ( ! empty( $instance['block_link'] ) ) ? $instance['block_link'] : '';
		$description = ( ! empty( $instance['block_description'] ) ) ? $instance['block_description'] : '';

		// Before widget tag
		echo $args['before_widget'];

		// Code
		echo '<div class="text-center">';
		echo '<i class="fa fa-' . $icon . '"></i>';
		echo '<p><strong><a href="' . $link . '">' . $title . '</a></strong></p>';
		echo '<p>' . $description . '</p>';
		echo '</div>';

		// After widget tag
		echo $args['after_widget'];

	}

	public function form( $instance ) {

		// Set default values
		$instance = wp_parse_args( (array) $instance, array( 
			'block_icon' => '',
			'block_title' => '',
			'block_link' => '',
			'block_description' => '',
		) );

		// Retrieve an existing value from the database
		$block_icon = !empty( $instance['block_icon'] ) ? $instance['block_icon'] : '';
		$block_title = !empty( $instance['block_title'] ) ? $instance['block_title'] : '';
		$block_link = !empty( $instance['block_link'] ) ? $instance['block_link'] : '';
		$block_description = !empty( $instance['block_description'] ) ? $instance['block_description'] : '';

		// Form fields
		echo '<p>';
		echo '	<label for="' . $this->get_field_id( 'block_icon' ) . '" class="block_icon_label">' . __( 'Icon', 'text_domain' ) . '</label>';
		echo '	<input type="text" id="' . $this->get_field_id( 'block_icon' ) . '" name="' . $this->get_field_name( 'block_icon' ) . '" class="widefat" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $block_icon ) . '">';
		echo '	<span class="description">' . __( 'Icon from <a href="blank" href="http://fontawesome.io/icons/">Font Awesome</a>.', 'text_domain' ) . '</span>';
		echo '</p>';

		echo '<p>';
		echo '	<label for="' . $this->get_field_id( 'block_title' ) . '" class="block_title_label">' . __( 'Title', 'text_domain' ) . '</label>';
		echo '	<input type="text" id="' . $this->get_field_id( 'block_title' ) . '" name="' . $this->get_field_name( 'block_title' ) . '" class="widefat" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $block_title ) . '">';
		echo '	<span class="description">' . __( 'Widget title.', 'text_domain' ) . '</span>';
		echo '</p>';

		echo '<p>';
		echo '	<label for="' . $this->get_field_id( 'block_link' ) . '" class="block_link_label">' . __( 'link', 'text_domain' ) . '</label>';
		echo '	<input type="url" id="' . $this->get_field_id( 'block_link' ) . '" name="' . $this->get_field_name( 'block_link' ) . '" class="widefat" placeholder="' . esc_attr__( 'http://...', 'text_domain' ) . '" value="' . esc_attr( $block_link ) . '">';
		echo '	<span class="description">' . __( 'Link URL.', 'text_domain' ) . '</span>';
		echo '</p>';

		echo '<p>';
		echo '	<label for="' . $this->get_field_id( 'block_description' ) . '" class="block_description_label">' . __( 'Description', 'text_domain' ) . '</label>';
		echo '	<textarea id="' . $this->get_field_id( 'block_description' ) . '" name="' . $this->get_field_name( 'block_description' ) . '" class="widefat" placeholder="' . esc_attr__( '', 'text_domain' ) . '">' . $block_description . '</textarea>';
		echo '</p>';

	}

	public function update( $new_instance, $old_instance ) {

		$instance = $old_instance;

		$instance['block_icon'] = !empty( $new_instance['block_icon'] ) ? strip_tags( $new_instance['block_icon'] ) : '';
		$instance['block_title'] = !empty( $new_instance['block_title'] ) ? strip_tags( $new_instance['block_title'] ) : '';
		$instance['block_link'] = !empty( $new_instance['block_link'] ) ? strip_tags( $new_instance['block_link'] ) : '';
		$instance['block_description'] = !empty( $new_instance['block_description'] ) ? strip_tags( $new_instance['block_description'] ) : '';

		return $instance;

	}

}

function block_register_widgets() {
	register_widget( 'Block_Widget' );
}
add_action( 'widgets_init', 'block_register_widgets' );