admin_form_before(); $output .= $this->admin_form_start(); $output .= $this->default_fields(); $widget_saved_values = $this->get_settings(); $output .= Select::get([ 'name' => 'order_by', 'label' => __('Order By'), 'options' => [ 'id' => __('ID'), 'created_at' => __('Date'), ], 'value' => $widget_saved_values['order_by'] ?? null, 'info' => __('set order by') ]); $output .= Select::get([ 'name' => 'order', 'label' => __('Order'), 'options' => [ 'asc' => __('Accessing'), 'desc' => __('Decreasing'), ], 'value' => $widget_saved_values['order'] ?? null, 'info' => __('set order') ]); $output .= Number::get([ 'name' => 'items', 'label' => __('Items'), 'value' => $widget_saved_values['items'] ?? null, 'info' => __('enter how many item you want to show in frontend'), ]); $output .= Image::get([ 'name' => 'background_image', 'label' => __('Background Image'), 'value' => $widget_saved_values['background_image'] ?? null, 'dimensions' => '1920x600' ]); $output .= Slider::get([ 'name' => 'margin_top_minus', 'label' => __('Margin Top Minus'), 'value' => $widget_saved_values['margin_top_minus'] ?? 0, 'max' => 500, ]); $output .= Slider::get([ 'name' => 'padding_top', 'label' => __('Padding Top'), 'value' => $widget_saved_values['padding_top'] ?? 120, 'max' => 500, ]); $output .= Slider::get([ 'name' => 'padding_bottom', 'label' => __('Padding Bottom'), 'value' => $widget_saved_values['padding_bottom'] ?? 120, 'max' => 500, ]); // add padding option $output .= $this->admin_form_submit_button(); $output .= $this->admin_form_end(); $output .= $this->admin_form_after(); return $output; } /** * @inheritDoc */ public function frontend_render() { $settings = $this->get_settings(); $current_lang = LanguageHelper::user_lang_slug(); $order_by = SanitizeInput::esc_html($settings['order_by']); $order = SanitizeInput::esc_html($settings['order']); $items = SanitizeInput::esc_html($settings['items']); $padding_top = SanitizeInput::esc_html($settings['padding_top']); $padding_bottom = SanitizeInput::esc_html($settings['padding_bottom']); $margin_top_minus = SanitizeInput::esc_html($settings['margin_top_minus']); $background_image = SanitizeInput::esc_html($settings['background_image']); $background_image = render_background_image_markup_by_attachment_id($background_image); $counterup = Counterup::query()->where(['lang' => $current_lang])->orderBy($order_by,$order)->get(); if(!empty($items)){ $counterup = $counterup->take($items); } $counterup_item_markup = ''; foreach ($counterup as $item){ $icon = $item->icon; $number = $item->number; $extra_text = $item->extra_text; $title = $item->title; $counterup_item_markup .= <<