HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
File: //opt/plugins/countdown-builder/classes/YcdWidget.php
<?php
use ycd\Countdown;
use ycd\HelperFunctions;

// Creating the widget
class ycd_countdown_widget extends WP_Widget {

	function __construct() {
		parent::__construct(
// Base ID of your widget
			YCD_COUNTDOWN_WIDGET,
// Widget name will appear in UI
			YCD_COUNTDOWN_MENU_TITLE,
// Widget description
			array('description' => __('Countdown Builder widget', YCD_TEXT_DOMAIN),)
		);
	}

// Creating widget front-end
	public function widget($args, $instance) {
	    $cdId = (int)@$instance['ycdOption'];

	    echo do_shortcode('[ycd_countdown id='.$cdId.']');
	}

// Widget Backend
	public function form($instance) {
		$popups = Countdown::getCountdownsObj();
        $idTitle = Countdown::shapeIdTitleData($popups);
        // Widget admin form
        $optionSaved = @$this->get_field_name('ycdOption');
        $optionName = @$instance['ycdOption'];
		?>
		<p>
			<label><?php _e('Select countdown', YCD_TEXT_DOMAIN); ?>:</label>
			<?php echo HelperFunctions::createSelectBox($idTitle, $optionName, array('name' => $optionSaved)); ?>
		</p>
		<?php
	}

// Updating widget replacing old instances with new
	public function update($new_instance, $old_instance = array()) {
		
		$instance = array();

		$instance['ycdOption'] = $new_instance['ycdOption'];
		return $instance;
	}
} // Class wpb_widget ends here