Create your own elementor widget is quite piece of cake. There is a example code from official Elementor. Which you can easily to edit it depend on your purpose.
Source: https://developers.elementor.com/creating-a-new-widget/
/** * Elementor oEmbed Widget. * * Elementor widget that inserts an embbedable content into the page, from any given URL. * * @since 1.0.0 */ class Elementor_oEmbed_Widget extends \Elementor\Widget_Base { /** * Get widget name. * * Retrieve oEmbed widget name. * * @since 1.0.0 * @access public * * @return string Widget name. */ public function get_name() { return 'oembed'; } /** * Get widget title. * * Retrieve oEmbed widget title. * * @since 1.0.0 * @access public * * @return string Widget title. */ public function get_title() { return __( 'oEmbed', 'plugin-name' ); } /** * Get widget icon. * * Retrieve oEmbed widget icon. * * @since 1.0.0 * @access public * * @return string Widget icon. */ public function get_icon() { return 'fa fa-code'; } /** * Get widget categories. * * Retrieve the list of categories the oEmbed widget belongs to. * * @since 1.0.0 * @access public * * @return array Widget categories. */ public function get_categories() { return [ 'general' ]; } /** * Register oEmbed widget controls. * * Adds different input fields to allow the user to change and customize the widget settings. * * @since 1.0.0 * @access protected */ protected function _register_controls() { $this->start_controls_section( 'content_section', [ 'label' => __( 'Content', 'plugin-name' ), 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'url', [ 'label' => __( 'URL to embed', 'plugin-name' ), 'type' => \Elementor\Controls_Manager::TEXT, 'input_type' => 'url', 'placeholder' => __( 'https://your-link.com', 'plugin-name' ), ] ); $this->end_controls_section(); } /** * Render oEmbed widget output on the frontend. * * Written in PHP and used to generate the final HTML. * * @since 1.0.0 * @access protected */ protected function render() { $settings = $this->get_settings_for_display(); $html = wp_oembed_get( $settings['url'] ); echo '<div class="oembed-elementor-widget">'; echo ( $html ) ? $html : $settings['url']; echo '</div>'; } }