Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

Get next event

class Custom_Widget_Next_Event extends WP_Widget {

	public function __construct() {

		parent::__construct(
			'Next_Event',
			__( 'Next Event', 'text_domain' ),
			array(
				'description' => __( 'Show the next event', 'text_domain' ),
				'classname'   => 'event',
			)
		);

	}

	public function widget( $args, $instance ) {

		echo "this is next event widget"

	}

	public function form( $instance ) {

		// Set default values
		$instance = wp_parse_args( (array) $instance, array( 
			'next_event' => 'default',
		) );

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

		// Form fields
		echo '<p>';
		echo '	<label for="' . $this->get_field_id( 'next_event' ) . '" class="next_event_label">' . __( 'text', 'text_domain' ) . '</label>';
		echo '	<input type="text" id="' . $this->get_field_id( 'next_event' ) . '" name="' . $this->get_field_name( 'next_event' ) . '" class="widefat" placeholder="' . esc_attr__( 'placeholder', 'text_domain' ) . '" value="' . esc_attr( $next_event ) . '">';
		echo '	<span class="description">' . __( 'the event', 'text_domain' ) . '</span>';
		echo '</p>';

	}

	public function update( $new_instance, $old_instance ) {

		$instance = $old_instance;

		$instance['next_event'] = !empty( $new_instance['next_event'] ) ? strip_tags( $new_instance['next_event'] ) : '';

		return $instance;

	}

}

function next_eventregister_widgets() {
	register_widget( 'Custom_Widget_Next_Event' );
}
add_action( 'widgets_init', 'next_eventregister_widgets' );