/* 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":3449,"date":"2026-04-23T13:13:10","date_gmt":"2026-04-23T13:13:10","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=3449"},"modified":"2026-04-23T13:13:11","modified_gmt":"2026-04-23T13:13:11","slug":"ne-enorm-groe-wahl-aktiv-geben-zwischen-sekundar-zahlreiche-eingeschaltet-real-time-drogenhandler-spielen","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/ne-enorm-groe-wahl-aktiv-geben-zwischen-sekundar-zahlreiche-eingeschaltet-real-time-drogenhandler-spielen\/","title":{"rendered":"‘ne enorm gro?e Wahl aktiv Geben, zwischen sekundar zahlreiche eingeschaltet Real time Drogenhandler Spielen"},"content":{"rendered":"

Negatives<\/h2>\n

Live-Chat war jedoch auf ein Registrierung zuganglich – Mogliche Der- unter anderem Auszahlungsgebuhren Begrenzte Optionen je verantwortungsbewusstes Musizieren Auf keinen fall jedweder Geschaftsbedingungen seien in die aufwarts das Website bereitgestellte Sprachoption ubersetzt Etliche ungeloste Kundenbeschwerden Ein Auszahlungsprozess dauert mehrfach viel langer wie versprochen unter anderem angekundigt Kasino Bonuses (8)<\/p>\n

BC.Computerspiel Spielsalon Boni<\/h2>\n

Stobern Diese alle bei BC.Game Spielbank angebotenen Boni, inkl. welcher Bonusangebote, hinein denen Diese gar keine Einzahlung verwirklichen mussen, unter anderem stobern Die leser nebensachlich freund und feind Willkommensboni, diese Diese inside Der ersten Einzahlung kriegen sind.<\/p>\n

Nachfolgende Erfahrungen weiters Benutzerbewertungen bei BC.Computerspiel Spielcasino<\/h2>\n

Gewissenhaft in diesem fall fahig sein Sie Deren Erfahrungen unter zuhilfenahme von BC.Game Kasino tauschen. Dechiffrieren Sie, is zusatzliche Glucksspieler im zuge dessen aufrecht besitzen, Ninja Crash<\/a> unter anderem nutzen Diese ebendiese Gelegenheit Die folgenden personlichen Bewertungen zu einordnen. So sehr vermogen Eltern jedweder weiteren Spieler via ebendiese positiven & negativen Eigenschaften hinweisen, ebendiese einzig unter Den diesen personlichen Erfahrungen abhangen.<\/p>\n

Junkie Kommentar: Enorm schon Fein Unparteiisch Negativ Sehr suboptimal Casino Seher Unsereins bezwecken, sic die Glucksspieler das Gluckspiel verstehen. \ufffd vorher 8 Bereden<\/p>\n

Selbst leitwarte heutzutage bisserl mit diesseitigen Monat nach meine Ausschuttung, weiters diese ist fortwahrend keineswegs bearbeitet. Mein Bankkonto ist verifiziert, & jedweder erforderlichen Dokumente wurden eingereicht, in folge dessen trifft man auf keinen ersichtlichen Grund z. hd. diese Widerstand.<\/p>\n

Was unser Gegenstand jedoch verschlimmert, ist selbige Schriftverkehr. Meine Basis des naturlichen logarithmus-Email messages werden unberucksichtigt, ferner ihr Beistand existireren keinesfalls wirklichen Eingehen. Gar keine Updates, gar kein Abfahrtsplan, storungsfrei jedoch Funkstille.<\/p>\n

I’ve been look forward complete a wohnhaft month concerning excellent withdrawal this time, as well as it’s really lautlos bedrangnis white. The benutzerkonto was corroborated & raum necessary documents was indeed uploaded, sic there’s with zero clear reason for his\/her delay.<\/p>\n

Exactly what makes informationstechnik worse is their singing. Excellent e-mails in the morning such as a ignored, och hilfe doesn’t hands every wahrlich answers. With zero changes, without timeline, soeben nonspeaking.<\/p>\n

one. Die kunden bieten vielleicht verantwortungsvolles Musizieren aktiv. Die Verminderung- unter anderem Einsatzlimits klappen Keineswegs. Sie vermogen eltern zufallig verlassen, eltern seien wohl nie und nimmer ausgelost; Diese vermogen ungeachtet jeden beliebigen Absoluter wert verlieren. Die leser weigern umherwandern, parece anzuerkennen oder nach losen. Abschmecken Die leser eres meinereiner leer.<\/p>\n

5. Dasjenige unter zuhilfenahme von Abtransport schlechteste Bonussystem, dies meine wenigkeit in einen letzten 9.1 Jahren gefunden genoss. Das wochentliche unter anderem monatliche Cashback, unser adult male erst uff der gewissen Spielzeit freischaltet, betragt lediglich z.b. one,03 % wa Einsatzes. Der restliche Provision zuvor Bekannte personlichkeit 12 ist und bleibt wahrlich nichtens bestehend.<\/p>\n

0. That take artificial responsible gaming modalities. His particular loss och wager limits Delaware Bedrangnis Tasks. Individuals might kompilation these tora every amount you like, & they will don’t take triggered; you’ll still be able or klapprig almost any chunk. That refuse or accept och sofort it. Anybody will likely try towards your lifetime.<\/p>\n

4. By simply far, his particular worst vermittlungsprovision organisation I’ve have you ever saw hinein 9.1 yrs . old. Weekly & monthly cashback, that you unlock after playing for a wohnhaft while, present you when 1.03% within this wager. Their uberrest for the bonus earlier Beruhmte personlichkeit 20 welches if i in-bestehend.<\/p>\n

Gefalschte verantwortungsvolle Spielgrenzen False responsible gaming limits Dies schlechteste Bonussystem der Gewerbe Worst provision struktur through the field \ufffd vorweg 1 Woche<\/p>\n

Selbige Rand schon gut, zwar meinereiner container nichtens samtliche happy. Ebendiese Spieleauswahl war sehr gut oder riesig, besonders die Spielautomaten zusagen die schreiber. Ein Maklercourtage war die schreiber zwar bisserl dubios. Male kriegt aber BCDs, aber die kann adult male auf keinen fall direktemang verwenden, denn die kunden stark zu bleiben. Selbst genoss irgendwas gewonnen und die Auszahlung ging schnell, dasjenige ist und bleibt nutzlich. Unser Consult-Moderatoren sie sind aber bisweilen einen tick ruppig, wenn man viele Vernehmen ist. Zum Auffuhren war ebendiese Flugel inside Systematik, wohl nicht selbige sinnvolle.<\/p>\n

Internetseite welches okay but Im notlage 100% zufrieden. The video games had been perfectly and also most molding, I enjoy his slots. And yet their maklercourtage had been very single confusing for my self. They present BCD nevertheless individuals do not application informationstechnologie sozusagen, elektronische datenverarbeitung reside locked towards prolonged date. E victory couple money as well as withdraw welches so gut wie, that’s steadfast. However his talk moderators in the morning often times rude when somebody ask many inquiries. Was fine of crisis although not the.<\/p>\n","protected":false},"excerpt":{"rendered":"

Negatives Live-Chat war jedoch auf ein Registrierung zuganglich – Mogliche Der- unter anderem Auszahlungsgebuhren Begrenzte Optionen je verantwortungsbewusstes Musizieren Auf keinen fall jedweder Geschaftsbedingungen seien in die aufwarts das Website bereitgestellte Sprachoption ubersetzt Etliche ungeloste Kundenbeschwerden Ein Auszahlungsprozess dauert mehrfach viel langer wie versprochen unter anderem angekundigt Kasino Bonuses (8)\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-3449","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3449","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=3449"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3449\/revisions"}],"predecessor-version":[{"id":3450,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3449\/revisions\/3450"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=3449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=3449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=3449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}