/* 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":192172,"date":"2026-06-22T17:53:13","date_gmt":"2026-06-22T17:53:13","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=192172"},"modified":"2026-06-22T17:53:13","modified_gmt":"2026-06-22T17:53:13","slug":"woruber-erkenne-ich-einen-kontrast-auf-zugelassen-illegal-3","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/woruber-erkenne-ich-einen-kontrast-auf-zugelassen-illegal-3\/","title":{"rendered":"Woruber erkenne ich einen Kontrast auf zugelassen & illegal?"},"content":{"rendered":"

Wer SpinBetter<\/a> zugelassen inoffizieller mitarbeiter M\u00f6glich Casino geben mochte, muss geboten auf diese gultige deutsche Glucksspiellizenz berucksichtigen. \u00dcber ein Genehmigung und dem Vorschlag in diese offizielle Whitelist ein GGL aus Handelstadt ist hohe Sicherheit und Datenschutz auf deutschem Relativ behutet.<\/p>\n

Die Erreichbar Casinos sind as part of Deutschland legal?<\/h2>\n

Jedoch diese Casinos, eine gultige Erlaubnis ein Gemeinsamen Glucksspielbehorde das Lander (GGL) haben. Diese offizielle Liste aller lizenzierten Versorger (“Whitelist”) findest du auf ein Blog ein GGL \ufffd das ist ein sicherste Verloren zur Kontrolle.<\/p>\n

Achte auf diese Angabe ein GGL-Erlaubnis (oft inoffizieller mitarbeiter Footer ein Seite, gelegentlich \u00fcber Koharent), prufe diese offizielle Whitelist ein GGL, schau dir das Spielangebot angeschaltet (in GGL-Erlaubnis jedoch Slots?) und achte auf Hinweise nach einen verpflichtenden Limits (1\ufffd\/Spin, gerade one.000\ufffd\/Monat) und Spielerschutz-Apparatus (OASIS, Panik-Button). Fehlende und abweichende Informationen sind Warnsignale.<\/p>\n

Was bedeutet diese 4-Sekunden-Tage?<\/h2>\n

Zwischen zwei Spins (Spielrunden) a dem virtuellen Automaten nach tun sein in legalen europaischen Gemeinsam Casinos wenigstens funf Sekunden ablaufen. Diese Tage soll verhindern, so du auf schnell und gefrustet spielst und unterstutzt intensiv, bewusstere Spielentscheidungen auf treffen.<\/p>\n

Das sind OASIS und LUGAS?<\/h2>\n

OASIS programmiert fur “Moglich Bitte Spielerstatus” und ist diese hauptburo, bundesweite Spielersperrdatei. Ganz legalen Versorger mussen daran umsetzbar sind, dar\u00fcber Spielersperren (Selbst- und Fremdsperren zum Schutz inoffizieller mitarbeiter vorne Spielsucht) effektiv umzusetzen. LUGAS (“Grenze Uberwachung Wette Anbieterubergreifend”) ist das technische System, diese dein monatliches Einzahlungslimit (im normalfall gerade one.100000 \ufffd) \u00fcber ganz legalen Versorger hinweg kontrolliert, dar\u00fcber dieses nicht umgangen sind kann.<\/p>\n

Ist PayPal ein Zeichen nach handen das legales Casino?<\/h2>\n

Ja, das ist oft ein sehr gutes und verlassliches Zeichen. Ein Zahlungsdienstleister PayPal arbeitet inwendig Online-Runde in Deutschland auf diesen Informationen nur \u00fcber Anbietern gemeinsam, diese \u00fcber diese gultige GGL-Erlaubnis haben. Wenn ein Casino deshalb PayPal wie Zahlungsmethode anbietet, ist das das starkes Vorschlag fur jedes dessen Rechtma?igkeit.<\/p>\n

Muss ich Gewinne aus legalen Umsetzbar Casinos versteuern?<\/h2>\n

Fur reine Hobbyspielerinnen und -spieler sind Glucksspielgewinne in Grund ein dichter und denker in das Tage steuerfrei. eine Steuerpflicht kann noch entstehen, wenn das Auffuhren berufsma?ige Zuge annimmt (z. H. von dauerhafte, hohe Gewinne, diese zur Nichtanerkennung des Lebensunterhalts sind). Inoffizieller mitarbeiter Skepsis solltest du immer einen Steuerberater fragen.<\/p>\n

Was passiert, wenn ein legales Casino rund Beherrschen versto?t?<\/h2>\n

Diese GGL als Aufsichtsbehorde kann in Regelversto?en Sanktionen verhangen. Das konnen Bu?gelder und Auflagen ci\ufffd”?our, im schlimmsten fall zwar nebensachlich das Verlust ein Erlaubnis. Du ubereilung dann eine staatliche Instanz, diese diese Zustimmung ein K\u00f6nnen uberwacht und deine Interessen wie Spieler schutzt.<\/p>\n

Kann ich Tischspiele wie Roulette und Blackjack zugelassen moglich spielen?<\/h2>\n

Das ist kompliziert. Versorger \u00fcber ein bundesweiten GGL-Erlaubnis d\u00fcrfen jedoch virtuelle Slots angebot. Einige Bundeslander (wie z.S. SH und Bayern, Stand: ) vergeben zwar nachtr\u00e4glich getrennt Lizenzen f\u00fcr Erreichbar-Tischspiele und Reside-Casinos. Diese Angebote sind dann zwar zugelassen, zwar riesig selten, nicht Teil ein Norm-GGL-Erlaubnis und oft jedoch \u00f6rtlich verfugbar. Diese allermeisten legalen Casinos as part of Deutschland angebot darum keine Tisch- und Nat\u00fcrlich time-Spiele angeschaltet.<\/p>\n

Fazit: Auf jeden fall und legal geben \ufffd Jedoch uber deutscher Erlaubnis!<\/h2>\n

Insgesamt lasst sich erlautern: Ein deutsche Erreichbar-Wette & ein Beruf ein GGL deutlich sicherer und transparenter geworden. Beilaufig wenn diese Beherrschen wie es 1\ufffd-Einsatzlimit, das 1.000\ufffd-Einzahlungslimit und diese 4-Sekunden-Tage nach handen viele Glucksspieler einschrankend einwirken mogen, vorschlag sie noch einen unschatzbaren Nutzlichkeit angeschaltet Sicherheit, Fairness und Spielerschutz.<\/p>\n

Wenn du zugelassen und ohne ubel Uberraschungen spielen mochtest, achte notwendig auf diese offizielle deutsche Erlaubnis ein GGL. Prufe inoffizieller mitarbeiter Skepsis immer diese Whitelist das Institut. Jedoch so kannst du sicher sein, so deine Informationen behutet sind, diese Spiele lassig ablaufen, Gewinne zuverl\u00e4ssig ausgezahlt sind und effektive Werkzeuge zum verantwortungsvollen Spielen zur Verfugung stehen. Verzichte in Versorger ohne diese Erlaubnis \ufffd sekundar wenn ihre Angebote auf einen ersten Chance verlockender scheinen bevorzugen. Deine Vertrauen ist immer Pr\u00e4ferenz haben!<\/p>\n","protected":false},"excerpt":{"rendered":"

Wer SpinBetter zugelassen inoffizieller mitarbeiter M\u00f6glich Casino geben mochte, muss geboten auf diese gultige deutsche Glucksspiellizenz berucksichtigen. \u00dcber ein Genehmigung und dem Vorschlag in diese offizielle Whitelist ein GGL aus Handelstadt ist hohe Sicherheit und Datenschutz auf deutschem Relativ behutet. Die Erreichbar Casinos sind as part of Deutschland legal? Jedoch\u2026<\/p>\n

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