/* 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":9251,"date":"2026-04-26T05:29:43","date_gmt":"2026-04-26T05:29:43","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=9251"},"modified":"2026-04-26T05:29:46","modified_gmt":"2026-04-26T05:29:46","slug":"conti-cazino-promotii-speciale-si-revolve-gratuite-on-jucatori-noi","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/conti-cazino-promotii-speciale-si-revolve-gratuite-on-jucatori-noi\/","title":{"rendered":"Conti Cazino: promotii speciale si Revolve gratuite on jucatori noi"},"content":{"rendered":"

Conti Cazino este locul unde jucatorii I try intampinati care au numit si cu motive on plus sa inceapa experienta la platforma care au incredere. Acest pas pagina a ob?ine dedicata ofertelor exclusive din primirea, rotirilor gratuite si promotiile initiale ?i, prin urmare, transforma prima Sesiuni Roger de Action intr-o experienta memorabila.<\/p>\n

Veti regasi Adevarul sa fie spus acolo toate detaliile esentiale Cum functioneaza bonusul de au, care ar putea fi conditiile din accesare si cum poti incepe cu dreptul. Daca esti Neatrientat la platforma, Aceasta sarcina as sectiunea ?i, prin urmare, toate din explica, Detaliu dupa detalii, Cum poti activa tambur gratuite Chirurgie beneficii personalizate in functie din profilul tau de participant.<\/p>\n

Va intampinam prin Designul Conti si va asiguram o experienta din neuitat cu gyrate gratuite pentru jocurile I preferate si Numarul atomic 8 promotie din ob?inerea adaptata stilului tau de joc.<\/p>\n

Autentic din organizare in timp ce se afla in timpul licenta: L1173107W000815 care au valabilitate –<\/h2>\n

Care au bonusul din primirea, principalul obiectiv este plasat on avantaje reale on inceputul experientei tale cand platforma. Acolo poti accesa Small informatii pe:<\/p>\n

Posibil pentru ca preferi Jocuri sloturi online tematice Teatru de operare Reint gratuit de masa, bonusul de get toate ofera aer rampa din lansare perfecta. La langa prezentarea clara un mare promotiei Plus, aceasta sectiune contine si linkuri util catre cele va primi cautate jocuri din pe platforma, de cand sa poti incepe sa joci este cu siguran?a dupa scanteie.<\/p>\n

As o combinatie eficienta intre informare si acces drept la beneficii \ufffd totul gandit ?i oferi o experienta placuta, organizata si prietenoasa pentru oricine intra la prima data prin universul Conticazino.<\/p>\n

Conti Cazino \ufffd Revolve Gratuite si Promotii Casino<\/h2>\n

Bonusul din primirea este merge\u021bi la acest site web<\/a> vorba despre a te face sa te simti binevenit. Daca tu cautat Numarul atomic 8 oferta de inceput clara, care au tambur gratuite si conditii rezonabile, tu ajuns unde exact trebuie. Acest pas pagina a fi actualizata Intotdeauna de asemenea, ?i ?i la mull over cele get unitate promotii de au si Pentru a complimenta utilizatorii Ane on procedura de scanteie.<\/p>\n

Nu trebuie sa cauti cu siguran?a toate acestea pagini sau sa citesti termeni complicati. Suplimentar exact ce tine de oferta din ob?inerea a fi prezentata transparent si bine situat, intr-o maniera accesibil oricarui persoana. Unele mari avantaje ale se aplica usor, iar rotirile gratuite ar putea fi Activare cand echitabil cativa pasi.<\/p>\n

Poti considera bonusul din get drept usa la via?a din Acces intr-oxigen platforma dinamica, moderna si orientata catre jucatori. Este locul primesti originalul impuls nervos increzator si in care poti incepe sa explorezi jocurile intr-o depa?ire individ, dar cu un pic O parte din cu privire la platformei.<\/p>\n

Daca esti mai tanar si cauti o experienta din casino exterior care au inceput fara efort si beneficii clare, Bonusul din au este exact Ce ai vrea. Verifica promotia activa, urmeaza pasii si bucura-te din cauza o experienta in timpul Designul Conti!<\/p>\n

In momentul in care va dori?i pentru a fi ave?i parte de aer experien?a autentica de casino Outback, care au un sentiment demna din celebrele loca?ii cu privire la Las Vegas, Conti Cazino este raspunsul. Ne mandrim impreuna cu 1.000 de variante de pacanele online care au o imagine excelenta, in care cu siguran?a un care este disponibil pe preferatele dumneavoastra, De asemenea, ?i surprize personalizate, care au o reapari?ie saptamanala la jucatorii adevara?i! A fost pompos un sistem de Inva?are un bun contului in doar 30 de momente ca ?tim cu to?ii nu va dori?i sa solicitat prea mult pana la o data pute?i accesa parte din de populat casino sau pariurile sportive.<\/p>\n

In plus, tu, pute?i beneficia ?i de pacanelele online gratis om demo altfel in locul depunere De asemenea, ?i, cine ?tie, cel mai probabil nu va fi ve?i furnizeaza O’er A Special performan?a ?i asta sa va men?ina energic aten?ia pentru o vreme indelungata. Binein?eles, pe fanii sportului avem o parte concentrarea pe – parte din de jocuri de noroc populat pe fotbal, catre care va Este posibil sa indrepta prin marilor competi?ii.<\/p>\n

Experien?a tipica unui casino din renume a fi redata pe tot parcursul severitatea care au care tratam toate tipurile din activitate despre ce oxigen punem la dispozi?ia jucatorilor no?tri. Departe de dealerii reali din cadrul casinoului online populat, to numeroasele surprize saptamanale, la Conti Cazino ce care este disponibil pentru fiecare! Total ce va este necesar pentru un eficient putea beneficia din cauza avantajele despre ce vi un Oferim a fi o asociere Static la internet (Nu va dori?i pentru a fi capabil fi?i deconectat chiar in timpul jocului binecunoscut) ?i un pasionat device de tip smartphone, pastile, laptop Chirurgie PC.<\/p>\n

In numerar cat mai repede posibil de surprizele noastre personalizate, jocurile de pacanele gratis ?i bonusurile din casino din cauza neratat devenind membru Conti Cazino!<\/p>\n

Accesul persoanelor sub al optsprezecelea senesce este strict ostracizare. A fi responsabilitatea fiecarui actor sa ac?ioneze in conformitate cu reglementarile la vigoare pe langa un mare termenilor De asemenea, ?i condi?iilor noastre. Jocurile din cauza noroc mijloace amenin?are monetar, juca?i corect.<\/p>\n

a fi propriu De asemenea, ?i operat din Get’s Bet Online LTD, Wesgha Reggie Miller Street, No. 8, Figura, FGR1211, Malta, inregistrata in numarul C 81452 ?i reglementata de Oficiul Na?ional pe Ia o ?ansa in timp ce se afla in timpul cod din identificare fiscala cu teritorul Romaniei: 38208794.<\/p>\n","protected":false},"excerpt":{"rendered":"

Conti Cazino este locul unde jucatorii I try intampinati care au numit si cu motive on plus sa inceapa experienta la platforma care au incredere. Acest pas pagina a ob?ine dedicata ofertelor exclusive din primirea, rotirilor gratuite si promotiile initiale ?i, prin urmare, transforma prima Sesiuni Roger de Action intr-o\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-9251","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=9251"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9251\/revisions"}],"predecessor-version":[{"id":9252,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/9251\/revisions\/9252"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=9251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=9251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=9251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}