settings = $settings; $data = wp_parse_args( $this->get_template_args( $data['id'] ), $data ); $data = apply_filters( 'rtsb/general/progress_bar/args/' . $data['unique_name'], $data ); $data['content'] = Fns::load_template( $data['template'], $data, true ); return $this->addon_view( $data, $settings ); } /** * Retrieves template arguments based on widget settings. * * @return array */ private function get_template_args( $id ) { return [ 'has_label' => ! empty( $this->settings['display_progress_label'] ) && ! empty( $this->settings['progress_label'] ), 'wrapper_class' => $this->generate_wrapper_class(), 'rtsb_progress_bar_html' => $this->render_progress_bar(), ]; } /** * Function to render progressbar. * * @return string */ public function render_progress_bar() { $layout = $this->settings['layout_style'] ?? 'rtsb-countdown-layout1'; $progress_count = $this->settings['progress_count'] ?? 80; $animation_duration = $this->settings['progress_bar_transition'] ?? 1500; $has_label = ! empty( $this->settings['display_progress_label'] ) && ! empty( $this->settings['progress_label'] ); $has_count = ! empty( $this->settings['display_progress_count'] ) && ! empty( $this->settings['progress_count'] ); ob_start(); ?>

settings['progress_label'] ); ?>

0 % settings['progress_count'] ); ?> %

settings['progress_label'] ); ?>

settings['progress_count'] ); ?> %
settings['progress_count'] ); ?> %
settings['progress_count'] ); ?> %

settings['progress_label'] ); ?>

settings['progress_label'] ); ?>

settings['layout_style'] ) ) { if ( self::progress_bar_style_line_layout( $this->settings['layout_style'] ) ) { $layout_class .= ' rtsb-pb-line'; } elseif ( 'rtsb-progress-bar-layout2' === $this->settings['layout_style'] ) { $layout_class .= ' rtsb-pb-circle'; $data_layout = 'circle'; } elseif ( 'rtsb-progress-bar-layout3' === $this->settings['layout_style'] ) { $layout_class .= ' rtsb-pb-half_circle'; $data_layout = 'half_circle'; } if ( $this->settings['display_progress_stripe'] ) { $layout_class .= ' rtsb-pb-line-stripe'; } if ( $data_attribute ) { return $data_layout; } } return $layout_class; } /** * Function to generate wrapper class. * * @return string */ public function generate_wrapper_class() { $wrapper_class = ''; if ( ! empty( $this->settings['layout_style'] ) ) { if ( self::progress_bar_style_line_layout( $this->settings['layout_style'] ) ) { $wrapper_class = 'rtsb-prgressbar-style-line'; } elseif ( 'rtsb-progress-bar-layout2' === $this->settings['layout_style'] ) { $wrapper_class = 'rtsb-prgressbar-style-circle'; } elseif ( 'rtsb-progress-bar-layout3' === $this->settings['layout_style'] ) { $wrapper_class = 'rtsb-prgressbar-style-half_circle'; } } return $wrapper_class; } public static function progress_bar_style_line_layout( $layout ) { $line_layouts = [ 'rtsb-progress-bar-layout1','rtsb-progress-bar-layout4','rtsb-progress-bar-layout5' ]; if ( in_array( $layout, $line_layouts, true ) ) { return true; } return false; } }