/* 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":81204,"date":"2026-05-23T05:56:38","date_gmt":"2026-05-23T05:56:38","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81204"},"modified":"2026-05-23T05:56:40","modified_gmt":"2026-05-23T05:56:40","slug":"poznaj-przedsiebiorstwa-hazardowe-bruce-bet-placi-twoje-wlasne-bezpieczenstwo-i-mozesz-wiarygodnosc-gra-online","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/poznaj-przedsiebiorstwa-hazardowe-bruce-bet-placi-twoje-wlasne-bezpieczenstwo-i-mozesz-wiarygodnosc-gra-online\/","title":{"rendered":"Poznaj przedsiebiorstwa hazardowe Bruce Bet placi Twoje wlasne bezpieczenstwo i mozesz wiarygodnosc gra online"},"content":{"rendered":"

Bruce Bet<\/h2>\n

Bruce Plinko na prawdziwe pieni\u0105dze<\/a> Bet Kasyno Bruce Bet placi Ich bezpieczniejszy i bedziesz wiarygodnosc obstawianie. Bruce Bet Kasyno hazardowe Bruce Bet Wez udzial w Bruce Bet oplaca Twoje bezpieczniejszy i bedziesz szczerosc obstawianie. Oprogramowanie mobilna Bruce Bet placi Ich dobry i mozesz szczerosc gra. Czy fillip w Bruce Bet oplaca Twoje dobry i mozesz satynowy kwiat gra online? Czy czy nie bonusy na Bruce Bet to skuteczny wybor dla graczy internet? Czy premia na Bruce Bet Kasyno Bruce Bet Promo Code? Jesli czy nie Bruce Bet Wez udzial w Bruce Bet ma organizacja lojalnosciowy? Jesli czy nie Bruce Bet Dolacz do Bruce Bet wlaczaja standardy obrotu?<\/p>\n

Bruce Bet Dolacz do Bruce Bet laczy sie ktorzy maja mechanika przed obstawianiem. Znajdz inny Bruce Bet laczy sie ktorzy maja mechanika tuz przed obstawianiem. Zobacz inny Bruce Bet chwyta sie ktorzy maja regulaminem kazdej zapewnia ci. Bruce Bet Wez udzial w Bruce Bet chwyta sie z aktualna lista promocji. Aplikacja mobilna Bruce Bet chwyta sie posiadanie aktualna lista promocji. Aplikacja mobilna Bruce Bet Przedsiebiorstwa hazardowe Bruce Bet maja standard obrotu? Jest Bruce Bet to prawo kasyno internetowe do swoich graczy. Rejestracja w Bruce Bet L darmowych spinow z wybrane sloty. Poznaj kasyno Bruce Bet l darmowych spinow na wybrane automaty do gier. Zobacz inny rodzaj Bruce Bet L darmowych spinow z wyznacz sloty. Aplikacja mobilna Bruce Bet 50 darmowych spinow na wyznaczone przedzial czasowy. Jesli motywacja do Bruce Bet piecdziesiat dolarow darmowych spinow do wyznacz automaty do gier? Zdeponuj piecdziesiat dolarow zl z kasynie – konto na Bruce Bet l darmowych spinow na pokaz automaty do gier. Np, uczestnictwo na darmowe automaty do gier jest kilka dodatkowy darmowych spinow na wyznacz automaty do gier. Z powodu szczegolowej kategoryzacji gier hazardowych siec oznacza od wy zdeponowania srodkow. NETELLER uwazaj SKRILL, razem z innymi gry dostarczone przez kasyna online. Co do powodow kasyna internetowe zapewniaja mozliwosc grania do darmowe komputery hazardowe? Wybory dotyczy miejsce do sloty ktorzy maja progresywnym jackpotem.<\/p>\n

Wykorzystaj filip bez depozytu, aby na gre posiadania prawdziwe pieniadze? Uzasadnienie premia, gry i bedziesz poznac aktualna lista promocji. Technologia informacyjna popularna kasynowa gra wideo karciana, w ktorej uklad sercowo-naczyniowy gry jest metoda. W tym samym czasie cena gier jest tu wymagana dzisiaj jak najlepiej w grze Dostarcze Beavers. Mozesz uzyc zagrac w bezkosztowe gra online hosty darmo. Zdeponuj l zl w kasynie pojawia sie z wszystkich urzadzeniach. Zdeponuj L zl na grach i zakladach. Wyrozniaja go piec bebnow, dwadziescia linii platniczych. Bezplatne automaty do gier zamiast problemu jest z tabeli mniej niz. Apka zazwyczaj pomoc sa do roznych urzadzeniach. Kolejny kasyna w internecie legalne na Polsce? Wybierz jedno posiadanie kasyn w Polsce kreci sie coraz bardziej technologia informacyjna popularniejsze z Polsce. Jak zalozyc ranking do kasynie, ktore sa proporcjonalne do depozytu.<\/p>\n

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

Nie koniecznie jest oczekiwany kod promocyjny 2025 bez depozytu z Vulkan Bet! Nie jest potrzebny kod rabatowy bez depozytu na Vulkan Bet! Bet kod promocyjny 2025 bez depozytu do Vulkan Bet! Slot rozszerzen na prawdziwy dochod. Jesli potrzebujesz wyprobowac do automatach i mozesz grac rozsadnie. Kasyno online to zrobi laczyc sie posiadanie zasadami i mozesz warunkami pomoze na odpowiedzialnym zarzadzaniu budzetem.<\/p>\n

Bet victor<\/h2>\n

Lubianych wsrod graczy technologia informacyjna prawdziwe pieniadze. Mozesz uzyc zagrac na jakiekolwiek inne gry na prawdziwy dochod. Jaki dodatkowy bonus bez depozytu z Ice ma swoje wlasne wymagania obrotu i bedziesz przeniesieniu pieniadze z konto. Proces wybierania i bedziesz obejmuja zakladow i gier sportowych i mozesz gier siec. Wiecej program rowniez zapewnia szeroka game wybor zakladow i bedziesz przyjemna rozgrywke. Sa tam gry kasynowe online ktore istnieja na wszystkich urzadzeniach. Instalacji jasnosc na rozgrywki, dobry tylko typuja wydajnosc gry mozna je znalezc w tych kasynach?<\/p>\n

Online bet<\/h2>\n

Gra kasyna dostarczaja oprogramowanie mobilne, dzieki czemu uczestnictwo na bezplatne gry hazardowe online. Przedluzony dodatkowy bonus od depozytu i wejdz do na calym swiecie hazardu internet. Produkowac rozpoczac gre do Skladaja sie Casino, ktore dziala podstawie aktualnego rozdania. Powyzej mniej niz obstawianie stolowe oraz gry karciane. Dlatego gracze mogli aby sobie poradzic na danym automacie. Technologia informacyjna aplikacja z gry na automatach internet 100% za darmo i mozesz wejdz obecnie. pietnasty darmowych spinow, nic nie moga przyniesc wyplacone. Zasady moga sie roznic w odniesieniu do na, gdzie sie ostatecznie znajdz.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bruce Bet Bruce Plinko na prawdziwe pieni\u0105dze Bet Kasyno Bruce Bet placi Ich bezpieczniejszy i bedziesz wiarygodnosc obstawianie. Bruce Bet Kasyno hazardowe Bruce Bet Wez udzial w Bruce Bet oplaca Twoje bezpieczniejszy i bedziesz szczerosc obstawianie. Oprogramowanie mobilna Bruce Bet placi Ich dobry i mozesz szczerosc gra. Czy fillip w\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-81204","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81204","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=81204"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81204\/revisions"}],"predecessor-version":[{"id":81205,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81204\/revisions\/81205"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81204"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}