/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":9537,"date":"2026-04-26T07:20:33","date_gmt":"2026-04-26T07:20:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=9537"},"modified":"2026-04-26T07:20:35","modified_gmt":"2026-04-26T07:20:35","slug":"bei-betonred-steht-der-kundensupport-den-spielern-jederzeit-zur-verfugung","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/bei-betonred-steht-der-kundensupport-den-spielern-jederzeit-zur-verfugung\/","title":{"rendered":"Bei BetOnRed steht der Kundensupport den Spielern jederzeit zur Verfugung"},"content":{"rendered":"

Spieler<\/h2>\n

Die Plattform gewahrleistet Die Plattform ist und bleibt rund um die Uhr verfugbar, so dass die Spieler jederzeit Hilfe anfordern konnen. Das engagierte Support-Team ist und bleibt sehr reaktionsschnell und bietet schnelle Losungen fur Fragen und auch und verbessert so das gesamte Spielerlebnis.<\/p>\n

Unterstutzungskanale: BetOnRed bietet eine Reihe von Support-Kanalen an, um den verschiedenen Vorlieben gerecht zu werden. Dazu gehoren Populat-Chat, E-Mail-Support und eine Helpline fur die direkte Kommunikation. Der Populat-Chat ermoglicht Hilfe pe partea de sus a Echtzeit, wahrend der E-Mail-Support den Spielern ihre Anliegen zu schildern und eine umfassende Antwort zu erhalten. Die Helpline bietet sofortige sprachbasierte Unterstutzung fur dringende Angelegenheiten.<\/p>\n

Wissen und auch Erfahrung der Supportmitarbeiter: Das Support-Team von BetOnRed besteht aus sachkundigen und erfahrenen Mitarbeitern. Sie sind Concep?ie gre?ita den Angeboten der Plattform bestens vertraut, und auch Verfahren der Plattform vertraut, so dass sie den Spielern genaue und hilfreiche Unterstutzung bieten konnen. Ihr Fachwissen tragt zu einem reibungsloseren Spielerlebnis bei und starkt das Vertrauen prin die on die Plattform.<\/p>\n

Mehrsprachige Unterstutzung: Cand Anbetracht der globalen Gamdom site oficial<\/a> Spielerbasis bietet BetOnRed Kundensupport cand mehreren Sprachen in varsta de an. Dadurch wird sichergestellt, dass Spieler aus verschiedenen Regionen in ihrer bevorzugten Sprache kommunizieren konnen, was Sprachbarrieren beseitigt und eine effektive Kommunikation zwischen dem Support-Team und auch den Spielern zu gewahrleisten.<\/p>\n

Umfassende FAQs und auch Hilfe-Center: BetOnRed bietet einen umfassenden FAQ Abschnitt und ein detailliertes Hilfe-Center auf ihrer Website. Diese Ressourcen decken eine breite Palette haufige Fragen und auch Anliegen ab und bieten Selbstbedienungsoptionen fur Spieler, die es vorziehen Antworten selbstandig zu finden. Die FAQs und das Hilfe-Center tragen zu einer besser informierten Spielergemeinschaft bei.<\/p>\n

Feedback und auch Verbesserung: BetOnRed schatzt das Feedback der Spieler und ermutigt die Benutzer aktiv dazu uber ihre Erfahrungen mit der Plattform zu berichten. Feedback-Mechanismen, wie Umfragen und auch Vorschlagsboxen, sind vorhanden, um wertvolle Anregungen von den Spielern zu erhalten. Die Plattform nutzt dieses Feedback, um kontinuierliche Verbesserungen vorzunehmen und das Spielvergnugen insgesamt zu verbessern.<\/p>\n

Engagement on den sozialen Medien: BetOnRed unterhalt eine aktive Prasenz auf verschiedenen sozialen Medienplattformen. Sie interagieren Concep?ie gre?ita ihrem Publikum, indem sie Aktualisierungen und auch Werbeaktionen teilen und auch auf Anfragen antworten. Soziale Medien bieten eine zusatzliche Moglichkeit fur Spieler, sich Concep?ie gre?ita der Plattform mit der Plattform in timpul Verbindung zu treten, was das Gemeinschaftsgefuhl fordert und das Spielerlebnis insgesamt Erlebnis.<\/p>\n

Mobiles Spielen bei BetOnRed<\/h2>\n

BetOnRed sorgt fur ein nahtloses Spielerlebnis auf mobilen Geraten durch die Optimierung seiner Plattform fur mobile Kompatibilitat optimiert. Die Website ist so konzipiert, dass sie sich in varsta de an verschiedene Bildschirmgro?en anpasst verschiedenen Bildschirmgro?en in varsta de an, ohne die Leistung zu beeintrachtigen. Die Spieler konnen ihre Lieblingsspiele Spieler konnen ihre Lieblingsspiele auch unterwegs genie?en, suficient ob sie ein Smartphone oder ein Tablet benutzen, Concep?ie gre?ita einem reibungslosen und auch Spielverlauf.<\/p>\n

Dedizierte mobile App: Fur Spieler, die ein noch individuelleres mobiles Erlebnis suchen, BetOnRed bietet eine eigene mobile App. Die App ist benutzerfreundlich und auch bietet eine einfache Navigation, einen schnelleren Zugang zu den Spielen und auch zusatzliche, fur die mobile Nutzung optimierte Funktionen. Sie ermoglicht es den Spielern, Concep?ie gre?ita nur einem Fingertipp auf ihre Lieblingsspiele zuzugreifen, was den Komfort und auch die Mobilitat erhoht. und Mobilitat.<\/p>\n

Kontofuhrung auf dem Handy: Die mobile Plattform von BetOnRed bietet umfassende Kontoverwaltungs Verwaltungsfunktionen. Spieler konnen Konten erstellen, Ein- und Auszahlungen vornehmen, Boni Einzahlungen und auch Auszahlungen vornehmen, Boni beantragen und ihre Profile direkt von ihren mobilen Geraten aus verwalten. Diese Funktion bietet ein nahtloses und vollstandiges Spielerlebnis, unabhangig vom verwendeten Gerat.<\/p>\n

Optimierte Benutzeroberflache: Die mobile Schnittstelle von BetOnRed ist und bleibt intuitiv und und benutzerfreundlich gestaltet. Das Layout ist fur Touchscreens optimiert und auch ermoglicht eine einfache Navigation und auch ein visuell ansprechendes Erlebnis. Das intuitive Organizat stellt sicher, dass die Spieler schnell ihre bevorzugten Spiele finden und auch auf wichtige Funktionen zugreifen konnen, wahrend sie auf ihren mobilen Gerate zugreifen konnen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Spieler Die Plattform gewahrleistet Die Plattform ist und bleibt rund um die Uhr verfugbar, so dass die Spieler jederzeit Hilfe anfordern konnen. Das engagierte Support-Team ist und bleibt sehr reaktionsschnell und bietet schnelle Losungen fur Fragen und auch und verbessert so das gesamte Spielerlebnis. Unterstutzungskanale: BetOnRed bietet eine Reihe von\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9537","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=9537"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9537\/revisions"}],"predecessor-version":[{"id":9538,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9537\/revisions\/9538"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=9537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=9537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=9537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}