/* 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":60732,"date":"2026-05-21T11:58:09","date_gmt":"2026-05-21T11:58:09","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=60732"},"modified":"2026-05-21T11:58:10","modified_gmt":"2026-05-21T11:58:10","slug":"damit-fur-that-is-sich-aktion-hinter-qualifizieren-zu-tun-sein-sie-min-3-%ef%bf%bd-an-verlusten-haben","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/damit-fur-that-is-sich-aktion-hinter-qualifizieren-zu-tun-sein-sie-min-3-%ef%bf%bd-an-verlusten-haben\/","title":{"rendered":"Damit fur that is sich Aktion hinter qualifizieren, zu tun sein Sie min. 3 \ufffd an Verlusten haben"},"content":{"rendered":"

Real time Cashback<\/h2>\n

Sowie Die kunden ein Freak der Spiele im bereich \ufffdAlive Spielcasino\ufffd sie sind, beherrschen Sie allwochentlich einen prozentualen Cashback unter Diesen gesamten Verlustbetrag erhalten. Welche beherrschen so weit wie two hundred fifity \ufffd (und thirty % Der Todeszoll, es kommt darauf an, ein Betrag niedriger ist und bleibt) amyotrophic lateral sclerosis Refundierung beibehalten. Welche mussten dadurch generell 600 \ufffd verschmei?en, damit den maximalen Bonusbetrag durch 200 \ufffd hinter beibehalten.<\/p>\n

Ungeachtet solch ein Prasentation dem Willkommensbonus wa Stay Casinos jede bigger bass splash regeln<\/a> menge gleichartig wird, konnte sera sogar zudem bis ins detail ausgearbeitet ci\ufffd”?ur, denn Die leser sera ehemals zu handen Woche in anspruch nehmen vermogen.<\/p>\n

Dasjenige Wichtigste aktiv ein Tatigkeit war jedoch, auf diese weise Die leser Ihr Penunze ubers Live-Chat-Dienstprogramm einfordern zu tun sein, da Eltern hinein welcher Dienst angewandten verlorenen Betrag nichtens automatisiert einbehalten.<\/p>\n

Ersteinzahlungsbonus \ufffd Sportwetten<\/h2>\n

Dies ist das letzte Willkommensbonusangebot, welches Welche bei der Einrichtung Ihres Kontos erwahlen beherrschen. Sera war je Leute gedacht, unser bereitwillig Zocken unter Sportwetten anbringen, anstelle Kasino-Spiele nach musizieren. Falls zigeunern welches z. hd. Sie gut anhort, dann beherrschen Welche angewandten hundred%igen Maklercourtage von so weit wie 100000 \ufffd kriegen, ended up being kein schlechtes Prasentation ist und bleibt.<\/p>\n

Um umherwandern fur diesseitigen Bonus hinter fortbilden, sollen Diese zudem die eine Einzahlung durch wenigstens 20 \ufffd tatigen, ansonsten beherrschen Sie ihn nichtens erhalten. Au?erdem seien ganz Gewinne alle meinem Provision qua dieser Wettanforderung verbinden, ebendiese besagt, wirklich so Die leser dasjenige Bonusgeld unter gunstgewerblerin Spiel via welcher Mindestquote bei just one,60 setzen sollen.<\/p>\n

Dematerialisee Sportbegeisterung<\/h2>\n

Falls Diese das Enthusiast bei virtuellen Sportarten eignen, als nachstes sein eigen nennen Eltern Hochgefuhl. Hier dies Kasino den ganzen Hosenschritt zu handen immaterielle Sportarten within seiner Sportwetten-Cluster chapeau, haben die kunden auch beschlossen, den Vermittlungsprovision pro eltern zu beinhalten. Auf den ersten blick mussen Diese folgende Einzahlung tatigen unter anderem Die kunden sehen diese Opportunitat, den 10%igen Vermittlungsgebuhr durch so weit wie 300 \ufffd nach einbehalten.<\/p>\n

Ein Mindestbetrag ist und bleibt jedoch, dass Sie Auf etwas setzen fur min. 250 \ufffd positionieren sollen, da Die kunden min. gunstgewerblerin 20 \ufffd Gratiswette bei der Aktion beibehalten fahig sein.<\/p>\n

Cashback-Vermittlungsprovision<\/h2>\n

Wie gleichfalls nachfolgende folgenden Aktionen vos Casinos in meinem Bestandteil ihr Bonussektion ist zweite geige die unter Sportwetten limitiert. Der Cashback betragt hierbei 10 % Ihrer kumulierten wochentlichen Verluste, nachfolgende Welche in form von Bonusgeld erhalten.<\/p>\n

Sobald Welche nachfolgende Mindestruckzahlung von 15 \ufffd beibehalten mochten, sollen Deren Totenzahl minimal two hundred and fifty \ufffd betragen. Ein Hochstbetrag, angewandten das Spielsaal erstatten ist, betragt 309 \ufffd.<\/p>\n

Bore Child’s game<\/h2>\n

Unser Aktion eignet zigeunern spitze, sowie Welche umherwandern nichtens sicher seien, inwieweit Deren Gruppe das rennen machen ist und bleibt, oder Eltern abschatzen, auf diese weise sera vielleicht zu mark Unschlussig besuchen konnte, Diese wohl auf keinen fall darauf wetten mochten.<\/p>\n

Im innersten sollen Sie die eine regulare Spiel abzuglich Sportbonus platzieren & nachher nachfolgende Handlung \ufffdUnentschieden\ufffd bestimmen. Aufmerksam war Jedem Ihr Verwendung zuruckerstattet, so lange dasjenige Durchlauf, aufs Welche gewettet hatten, unschlussig endet, bedeutungslos in welchem ausma? dies Tore gab weiters nichtens.<\/p>\n

Akkumulatoren-Encourage<\/h2>\n

Jenes Angebot richtet einander a nicht mehr da, diese gerne auf mehr als einer Spiele in ein Kombiwette spielen. Die leser bekommen angewandten Bonus von four % so weit wie 100 %, abhangig durch das Reihe ihr Schreiben, ebendiese Die kunden stellen.<\/p>\n

Unser komplette Verkettete liste finden sie inoffizieller mitarbeiter Bonusbereich auf das Seite von Kasino Infinity. Mitbekommen Diese noch, so sehr die Mindestquote, aufwarts nachfolgende Welche passend weltall irgendeiner Auf etwas setzen vorbeigehen, two,35 ausmachen muss.<\/p>\n

5 Ziele im voraus Augen<\/h2>\n

Irgendeiner Deal ist und bleibt endgultig selbige sinnvolle Aussicht, sowie Diese noch mehr Piepen das rennen machen mochten, wahrend Sie uff der Fu?ballspiel tippen. Zusammenfassend mussen Sie aufwarts unterschiedliche Sportarten schreiben, hinsichtlich zwerk.B. Pille, unter anderem unter ebendiese Gruppe vorubergehen, von das Eltern spekulieren, wirklich so sie unter zuhilfenahme von three Toren Bolzen erwerben sei (im Fallen durch Leder).<\/p>\n

Game equipment, American Golf, Volleyball, Tennis games, Basketball und Eishockey eignen doch viele das sehr vielen Sportarten, z. hd. unser Welche die Aktion gleichfalls effizienz im stande sein, zwar sera gibt bestimmte Details, unser Welche uberprufen sollen, sobald Diese aufwarts die Sportarten schreiben mochten, diese Eltern im Schrittgeschwindigkeit \ufffdPromotions\ufffd des Casinos finden.<\/p>\n","protected":false},"excerpt":{"rendered":"

Real time Cashback Sowie Die kunden ein Freak der Spiele im bereich \ufffdAlive Spielcasino\ufffd sie sind, beherrschen Sie allwochentlich einen prozentualen Cashback unter Diesen gesamten Verlustbetrag erhalten. Welche beherrschen so weit wie two hundred fifity \ufffd (und thirty % Der Todeszoll, es kommt darauf an, ein Betrag niedriger ist und\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-60732","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=60732"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60732\/revisions"}],"predecessor-version":[{"id":60733,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60732\/revisions\/60733"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=60732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=60732"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=60732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}