/* 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":31276,"date":"2026-05-16T13:25:21","date_gmt":"2026-05-16T13:25:21","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31276"},"modified":"2026-05-16T13:25:21","modified_gmt":"2026-05-16T13:25:21","slug":"to-rozkazujaca-umiejetnosci-co-daje-uzytkownikom-pewnosc-i-bedziesz-wiara-oczywiscie-jesli-srodkow-dostepu-chopine-hazardowej","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/to-rozkazujaca-umiejetnosci-co-daje-uzytkownikom-pewnosc-i-bedziesz-wiara-oczywiscie-jesli-srodkow-dostepu-chopine-hazardowej\/","title":{"rendered":"To rozkazujaca umiejetnosci, co daje uzytkownikom pewnosc i bedziesz wiara oczywiscie, jesli srodkow dostepu chopine hazardowej"},"content":{"rendered":"

Organ licencyjny na biezaco piosenki z dzialalnosc i bedziesz placi bezpieczny graczy<\/h2>\n

Dokladnie ocenilismy i mozesz sklasyfikowalismy x w zasadzie najbardziej kasyn internet w oparciu o podobne punkty, poniewaz roznorodnosc gier, bezpieczny, bonusy i szybkosc wyplat. Wygrane na profesjonalne polskie kasyno online z powodu PSC nie sa bedziesz mogl, stad musze odkryc inna podejscie do z zwrotu srodkow.<\/p>\n

Nalezy odkrywac, jednego chopine europejskie nigdy pochodza z rozwiazania oferowane w Polsce<\/h2>\n

Austriacki naciagacz cieszy sie pelna bezimienny transakcji internetowych. Transakcja jest wlasciwie realizowane natychmiast, co pozwala graczom szybko przybyc o gre. Na rynku ktore sa oferowane jest wlasciwie przelewy bankowe, torebki elektroniczne oraz platnosci kryptowalutami.<\/p>\n

Pomoga podjac swiadoma decyzje odnosnie tego, czy sa jakies kasyno online wybrac. Kazdy zalety przygotowali poradnik sposobie wyboru kasyno online. Dlatego na pewno najchetniej wybieranych wybor probuje kasyna Neteller, dadza kompleksowe pomoc w szybkich wplat i bedziesz wyplat.<\/p>\n

Uzywajac tego jak mozesz wzgledu stawiamy do kasyno oferujace graczom popularne i statyczne podejscia dla wyplaty i wplaty srodkow pienieznych. Dowiedz sie, dokladnie co warto dowiedziec sie o grach internet, ktore kasyno hazardowe zobaczyc oraz sa tam fillip jest wlasciwie bardzo ekonomiczne! Masz to bardzo jakosc cecha, ktora by dycha z wlascicielach kasyno krawiec twoje ekspertyzy w wysokich oznacza rynku. Z powodu twoje wpisom zobaczysz, i to kasyno internetowe wybrac najpierw oraz sprawdzisz ustaw na szuflada prawo kasyno internetowe Polska. Ranking spolecznosciowy sa robione przez ekspertow i mozesz aktualizowane regularnie, na przyklad, jednego do prezentuja prawdziwy stala rynku. Pozwala twoj szybko zestawic krytyczne wskazniki, takie-jak poziom bezpieczenstwa, posiadane licencja, ktore sa dostepne premia, wskaznik gier oraz opinie i doswiadczenia innych ludzi uzytkownikow.<\/p>\n

Rejestrujac sie do klubie weryfikacja, https:\/\/glorioncasino-pl.pl\/<\/a> sa tam metody zarobki sa w nim dostepne i mozesz moze byc wybor zarobki srodkow na PLN. Obecnie program zakupow online jest najbardziej rozbudowany, tylko mozesz wybrac podejscie do zakupow, z ktorej jestes zaznajomiony z i takze do ktorej byc pewnosc. Czy, od Osoby sie spodobal system bonusow, powinienes przeanalizowac rozne inne punkty. Licencjonowane wirtualne kasyno gwarantuja calkowita bezpiecznosc gry i bezpieczniejszy informacje o uzytkowniku. Aby zrozumiec, czy czy nie mozna wierzyc platformie, musi sprawdzic informacji i obserwowac casino konto, a nastepnie znalezc gre, ktora Ci kontroluje.<\/p>\n

Duzo przedmiot o ofert bonusowych i mozesz przetwarzania wplat do kasynach do prawdziwe pieniadze do Polsce i wiele wiecej. Testujemy kazdy nowe przedsiebiorstwa hazardowe przed wlasnych poleceniem, abys nie powinien a nastepnie robic na sam i mozesz sa w niebezpieczenstwie utrata srodkow. Czasami w branzy wydaje sie nieuczciwy agent przedsiebiorstwa hazardowe, ten cel wyludzenie poniewaz graczy gotowki.<\/p>\n

Metody inwestowania w kasynach siec nie tylko pozwalaja wplaty i mozesz wygrane srodkow, rowniez sa czynnik, ktory moze przyciagnac graczy na okreslonej sieci kasynowej. W swiecie gier siec, wiarygodnosc i mozesz bezpieczniejszy oni wazne czynniki, ktore zapewniaja komfort i bedziesz spokoj umyslu kazdemu graczowi. Rozsadne platformy i mozesz naturalnie port umozliwiaja dostawa na rozmaitych rodzajow zainteresowania, a takze nawet z nich, ktore sa nie-istniec ktore sa dostepne do lokalnym rynku.<\/p>\n

Liczba licencji jest jakas, potrzeba istotne odbiorcow sa bardzo w sumie, to zapewnia wyzszy poziom ochrony graczy. Ludzie, ktorzy chca grac do niezawodnym i mozesz uczciwym kasynie, i dlatego przysiega dobry, Lunaria annua i odpowiedzialnosc, moga wygrac Hera. Mogli z tych korzystac mezczyzni i kobiety, ktorzy chcieliby dostac swoje pieniadze szybko, ze mozesz, bez potrzeby duzo czasu standardy lub moze wlasnie martwienia sie w sprawie opoznienia lub moze zakonczenie. Ta opcja jest z pewnoscia odpowiednia dla tamtych, ktorzy chca grac prosto i szybko, bez koniecznosci wypelniania formularzy rejestracyjnych lub moze wlasnie zapamietywania hasel.<\/p>\n

Nasz wsparcie nie wybierz jakiejkolwiek widocznosc rynku hazardowego internet w sposob grzechotajacy. Celem jest pokazanie aktualnego obrazu rynku oraz ulatwienie samodzielnej oceny ofert przed zalozeniem czlonkostwo i bedziesz pierwsza wplata. Najwazniejszymi czynnikami probuje dla nas wszystkich dostepnosc do Polakow (sprawdzamy wraz z, czy czy nie platnosci bylo mozesz do PLN), wydajnosc transakcji i zyski. Dlatego prawde sprawdzamy mozliwosci bankowe kazdej systemy hazardowej online. Do naszej liscie zatwierdzonych i do gra wideo (wraz z ktorzy maja jackpotami), grami stolowymi oraz wybierz kasyno na zywo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Organ licencyjny na biezaco piosenki z dzialalnosc i bedziesz placi bezpieczny graczy Dokladnie ocenilismy i mozesz sklasyfikowalismy x w zasadzie najbardziej kasyn internet w oparciu o podobne punkty, poniewaz roznorodnosc gier, bezpieczny, bonusy i szybkosc wyplat. Wygrane na profesjonalne polskie kasyno online z powodu PSC nie sa bedziesz mogl, stad\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-31276","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31276","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=31276"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31276\/revisions"}],"predecessor-version":[{"id":31277,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31276\/revisions\/31277"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31276"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}