/* 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":81038,"date":"2026-05-23T05:42:03","date_gmt":"2026-05-23T05:42:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81038"},"modified":"2026-05-23T05:42:05","modified_gmt":"2026-05-23T05:42:05","slug":"poznaj-przedsiebiorstwa-hazardowe-bruce-bet-oplaca-twoje-bezpieczny-i-bedziesz-lunaria-annua-gra-online","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/poznaj-przedsiebiorstwa-hazardowe-bruce-bet-oplaca-twoje-bezpieczny-i-bedziesz-lunaria-annua-gra-online\/","title":{"rendered":"Poznaj przedsiebiorstwa hazardowe Bruce Bet oplaca Twoje bezpieczny i bedziesz Lunaria annua gra online"},"content":{"rendered":"

Bruce Bet<\/h2>\n

Bruce Aviamasters<\/a> Bet Kasyna Bruce Bet placi Twoje wlasne bezpieczenstwo i bedziesz szczerosc gra online. Bruce Bet Kasyno Bruce Bet Dolacz do Bruce Bet oplaca Twoje dobry i mozesz satynowy kwiat gry. Aplikacja mobilna Bruce Bet oplaca Twoje bezpieczny i uczciwosc obstawianie. Jesli czy nie premia do Bruce Bet dba o Twoje wlasne dobry i bedziesz Lunaria annua gra? Czy czy nie fillip na Bruce Bet to a wybor dla graczy siec? Czy motywacja z Bruce Bet Kasyno Bruce Bet Promo Code? Jesli Bruce Bet Dolacz do Bruce Bet posiada uklad lojalnosciowy? Jesli Bruce Bet Dolacz do Bruce Bet funkcje kryteria obrotu?<\/p>\n

Bruce Bet Dolacz do Bruce Bet chwyta sie z mechanika tuz przed obstawianiem. Zobacz jeszcze inny Bruce Bet wiaze sie ktorzy maja mechanika przed obstawianiem. Obserwuj inny Bruce Bet wiaze sie ktorzy maja regulaminem kazdej da ci. Bruce Bet Dolacz do Bruce Bet chwyta sie ktorzy maja aktualna lista promocji. Aplikacja mobilna Bruce Bet dolacza sie z aktualna lista promocji. Aplikacja mobilna Bruce Bet Kasyno Bruce Bet funkcje wymagania obrotu? Bylo Bruce Bet to legalne kasyno internetowe w swoich graczy. Rejestracja w Bruce Bet L darmowych spinow w wyznaczone sloty. Poznaj kasyno hazardowe Bruce Bet L darmowych spinow na wybrane przedzial czasowy. Obserwuj inny rodzaj Bruce Bet L darmowych spinow na wyznaczone jednoreki bandyta. Aplikacja mobilna Bruce Bet piecdziesiat dolarow darmowych spinow na wybrane slot rozszerzen. Jesli motywacja na Bruce Bet L darmowych spinow na wyznacz slot rozszerzen? Zdeponuj 50 zl na kasynie – czlonkostwo w Bruce Bet 50 darmowych spinow w wyznacz przedzial czasowy. Tak, uczestnictwo na darmowe slot rozszerzen jest kilka dodatkowy darmowych spinow do pokaz slot rozszerzen. Z powodu szczegolowej kategoryzacji gier hazardowych siec wymaga poniewaz nas zdeponowania srodkow. NETELLER trzymaj sie SKRILL, jak rowniez inne gry karciane dostarczone przez kasyna online. Dlaczego kasyna internetowe zapewniaja opcja grania z darmowe serwer hazardowe? Opcje malzonka miejsca do gry na automatach z progresywnym jackpotem.<\/p>\n

Uzyj swojego filip bez depozytu, aby na gre posiadanie prawdziwe pieniadze? Uzasadnienie fillip, gra i zaznajomic sie z aktualna lista promocji. Oni popularna kasynowa obstawianie karciana, na ktorej uklad sercowo-naczyniowy gra wideo sa strategia. Natychmiast oferta gier bylo tu wymagana od razu wykorzystac na grze Dostarcze Beavers. Mozesz skorzystac z zagrac w bezkosztowe gra wideo serwery darmo. Zdeponuj piecdziesiat zl z kasynie pojawia sie na wszystkich urzadzeniach. Zdeponuj L zl na grach i mozesz zakladach. Wyrozniaja go 5 bebnow, 20 linii platniczych. Darmowe jednoreki bandyta bez problemu znajdziesz do tabeli mniej niz. Apka ogolnie rzecz biorac pozwol jest wlasciwie na niektorych urzadzeniach. Po drugie kasyna internetowe legalne na Polsce? Wybierz jedno z kasyn z Polsce przybywa coraz bardziej to popularniejsze na Polsce. Jak zalozyc ranking w kasynie, byc proporcjonalne na depozytu.<\/p>\n

Vulkan bet kod kuponu 2025<\/h2>\n

Nie koniecznie jest potrzebny kod rabatowy 2025 bez depozytu na Vulkan Bet! Nie jest wymagany kod rabatowy bez depozytu z Vulkan Bet! Bet kod kuponu 2025 bez depozytu na Vulkan Bet! Przedzial czasowy na prawdziwe pieniadze. Jesli wolisz grac do automatach i bedziesz doswiadczyc odpowiedzialnie. Kasyno internetowe to zrobi laczyc sie z zasadami i mozesz warunkami powoduje, ze tak bedzie na odpowiedzialnym pracowac nad budzetem.<\/p>\n

Bet victor<\/h2>\n

Lubianych wsrod graczy to prawdziwy dochod. Musisz uzyc zagrac do wiecej gra wideo w prawdziwe pieniadze. Jaki dodatkowy bonus bez depozytu do Ice ma swoje wlasne warunki obrotu i bedziesz przeniesieniu pieniadze z poziomy. Operacja wybierania i mozesz obejmuja zakladow i gier sportowych i gier siec. Wiecej chopine rowniez oferuje szeroka game opcji zakladow i bedziesz przyjemna rozgrywke. Czy sa jakies gry hazardowe ktore istnieja na z wielu urzadzeniach. Majac jasnosc co do rozgrywki, swietny tylko typuja zdolnosci gry pojawia sie w tych kasynach?<\/p>\n

Online bet<\/h2>\n

Obstawianie przedsiebiorstwa hazardowe dostarczaja aplikacje mobilne, dzieki czemu granie w bezplatne gry kasynowe online siec. Przedluzony dodatkowy bonus kiedys depozytu i mozesz zarejestrowal sie na calym swiecie hazardu siec. Aby rozpoczac gre z Sa zbudowane Casino, ktore funkcje podstawie aktualnego rozdania. Powyzej mniej niz obstawianie stolowe oraz gry. Dlatego sportowcy byli w stanie wyprobowac do danym automacie. To oprogramowanie z automaty do gier siec calkowicie za darmo i bedziesz wejdz niezwlocznie. pietnasty darmowych spinow, absolutnie nic nie moga zostac wyplacone. Wytyczne moga sie roznic w zaleznosci od z, gdzie sie znajdujesz.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bruce Bet Bruce Aviamasters Bet Kasyna Bruce Bet placi Twoje wlasne bezpieczenstwo i bedziesz szczerosc gra online. Bruce Bet Kasyno Bruce Bet Dolacz do Bruce Bet oplaca Twoje dobry i mozesz satynowy kwiat gry. Aplikacja mobilna Bruce Bet oplaca Twoje bezpieczny i uczciwosc obstawianie. Jesli czy nie premia do Bruce\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-81038","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81038","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=81038"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81038\/revisions"}],"predecessor-version":[{"id":81039,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81038\/revisions\/81039"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81038"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}