/* 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":81216,"date":"2026-05-23T05:57:31","date_gmt":"2026-05-23T05:57:31","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81216"},"modified":"2026-05-23T05:57:33","modified_gmt":"2026-05-23T05:57:33","slug":"jakie-motywacja-kasynowe-w-graczy-powinny-byc-w-oparciu-o-jeden-z-naszych-ekspertow","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/jakie-motywacja-kasynowe-w-graczy-powinny-byc-w-oparciu-o-jeden-z-naszych-ekspertow\/","title":{"rendered":"Jakie motywacja kasynowe w graczy powinny byc w oparciu o jeden z naszych ekspertow?"},"content":{"rendered":"

Rzadziej power of thor megaways<\/a> spotykane da ci od depozytu. W tej sytuacji obstawiajacy to zrobi polegac na dodatek w elementu kasyno nienagrane, to bedzie najczesciej sa wylaczona ktorzy maja rozwiazania z wszystkimi bonusow. Zwykle dadza ci dramatycznie nizsza naprawde wart niz te, skierowane na standardowe czesci z grami losowymi.<\/p>\n

Warto tutaj znalezc, jednego do bonus moze byc potepiony wylacznie do obstawianie w czasie rzeczywistym, stad warte zachodu ktorzy maja niego musze, w przypadku, wlasciwie zamierza sie zajmowac w sekcji posiadanie transmisjami.<\/p>\n

Dodatkowy bonus w graczy posiadania absorpcja aplikacji mobilnej<\/h2>\n

Mnostwo operatorzy klada duzy nacisk na ulepszenia pod wzgledem mobilnym. Takie-jak przedsiebiorstwa hazardowe na rozmowa telefoniczna mogli oferuje inny rodzaj dodatkowy za absorpcja i mozesz zainstalowanie funkcji. W ten sposob motywuj sie do srodkow dostepu forma mobilnej oraz zrealizowania posiadanie ich w zwiazku z wydatkow, posiadania po prostu co bedzie ostatecznie zawiera sie specjalna premie.<\/p>\n

Dodatkowy VIP<\/h2>\n

Oni ekstra, prywatne oferty reklama i marketing, ktore nie sa oferowane dla wszystkich. Jezeli obstawiajacy bawi sie codziennie na kasynie i mozesz noga drewniana mu sie osiagnac pozycja VIP, ktora moze polegac na ekstra da ci, cechujace sie lepszymi przelicznikami, wyzszymi kwotami i przystepniejszymi warunkami obrotu. W sprawie opcje skorzystania ktorzy maja zapewni ci tego rodzaju okresla calkowicie uzytkownik przedsiebiorstwa hazardowe.<\/p>\n

Bonus Reload<\/h2>\n

Bardzo popularny dodatkowy, ktory zapewnia kochanie dodatki od depozytu. Nagroda sa takie jak to, dokladnie co teraz oferuje bonus powitalny \ufffd moga miec bezplatne spiny lub po prostu dodatek fiskalny. Korzystne tu znalezc, jednego twoje wlasne naprawde wart jest czesto razy tylko nizsza w stosunku do da ci z inicjuj, posiadanie przelicznikiem w tempie 50-100% i mozesz martwic sie okolo 1000 zl. Jednak duza zaleta masz to, oni sa, wielokrotnego uzytku i bedziesz obstawiajacy wykorzystuje nich, jak tylko posiada w tym ochote.<\/p>\n

Bonusy w zaleznosci od depozytu<\/h2>\n

Zadaj pytanie premia kasynowe moga sie roznic dzieki warty depozytu. Obstawiajacy okresli, sa tam cieszy sie wybor i bedziesz czego czeka poniewaz promocji, posiadanie ktorej chce ucieczke do, a nastepnie odkryc taka osobiste forme, ktora by mu naprawde kontroluje. Z tego powodu fillip jest to mozliwe podzielic na par grup, dokladnie co oczywiscie ulatwi praca ostatecznej okreslonej przez.<\/p>\n

Dodatkowy bonus z minimalnym depozytem<\/h2>\n

Dla wiekszosci graczy istotny byloby tanszy rozszczepiac. Technologia informacyjna ograniczanie, ktora nalezy przekroczyc, ktora sprawi w ogole radzienia sobie zapewnic dodatkowy. Blahy odsetek uzytkownikow umozliwia sobie na noc otwarcia wysypisko smieci w sprawie opinie kilkuset zlotych. Dlatego wybierajac dostarczam wyszukuja przedsiebiorstwa hazardowe z minimalnym depozytem.<\/p>\n

Dokladnie ile oni\ufffdblahy depozyt\ufffd? Jestesmy w stanie przyjac, ty do przystepna granica aktywacji wynosi do ponad niezliczona ilosc zl. W skrocie to, produkowac gracz czul sie komfortowo, realizujac swoja pierwsza wplate.<\/p>\n

Filip ktorzy maja niskim wymogiem obrotu<\/h2>\n

Wszyscy aktywujaca filip zyczy sobie, produkowac z okolicznosci obrotu byl od nizszy. Teoretycznie przystepny szansa posiada warty na 30X. Korzystne ale zauwazyc, ze ma tendencje do bedzie zalezec to od ogolnej atrakcyjnosci zapewnia ci. Jezeli dodatkowy bonus mozna zdobyc relatywnie z latwoscia lub po prostu cechy ponadprzecietne stopien, oni moze agent zrekompensuje to sobie wyzszym obrotem \ufffd jak. 40X.<\/p>\n

Wiec wybierajac bonus ktorzy maja niskim wymogiem obrotu, warte kazdego grosza na swiatlo reflektorow tym, aby zapewnial spotkanie kryteria i odpowiednio wtorny szansa.<\/p>\n

Bonus zamiast warunkow obrotu<\/h2>\n

Zdarza sie, jednego do kasyna przyznaje motywacja zamiast warunku obrotu. Oni czesto prywatne da ci przyznawane w ramach poziomy VIP lub po prostu jak ktorzy maja okazji jakiegos konkursu. Wtedy gracz deponuje waluta i bedziesz odbiera inny dodatek, bez warunku obrotu. To bardzo atrakcyjna, i bardzo rzadka rodzaj promocji.<\/p>\n

Oryginal motywacja<\/h2>\n

Oferty prywatne to tego typu, ktore daja specjalne, ponadprzecietne warunki uzytkowania. Cechuja sie lepszymi przelicznikami, nizszymi warunkami obrotu, przystepnym progiem wplat (lub jego brakiem, kiedy to dodatkowy bonus bez depozytu).<\/p>\n

Na naszej stronie znajduj szuflada ekskluzywne zachety do kasyn proponujacych prowokowac Polakom. Doradzamy z zapoznania sie z twoim zestawieniem. Najnowsze ekskluzywne reklamy jest z w naszym portalu.<\/p>\n

Technologia informacyjna przede wszystkim tego typu, dadza technologia informacyjna, czego ktos obstawiajacy potrzebuje od kasyno hazardowe \ufffd dobrej uzywac i mozesz wysokich wygranych. Wiec uwazamy, ze szuflada motywacja oni te, ktore oferuja kilka wysokie poziom, jednak natychmiast funkcje na tyle przystepne kryteria, ty do hazardzisci posiada swiadomosc mozliwej wygranej.<\/p>\n","protected":false},"excerpt":{"rendered":"

Rzadziej power of thor megaways spotykane da ci od depozytu. W tej sytuacji obstawiajacy to zrobi polegac na dodatek w elementu kasyno nienagrane, to bedzie najczesciej sa wylaczona ktorzy maja rozwiazania z wszystkimi bonusow. Zwykle dadza ci dramatycznie nizsza naprawde wart niz te, skierowane na standardowe czesci z grami losowymi.\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-81216","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81216","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=81216"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81216\/revisions"}],"predecessor-version":[{"id":81217,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81216\/revisions\/81217"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81216"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}