/* 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":33952,"date":"2026-05-17T23:58:57","date_gmt":"2026-05-17T23:58:57","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=33952"},"modified":"2026-05-17T23:58:58","modified_gmt":"2026-05-17T23:58:58","slug":"valideaza-i-contul-i-tocmac-catigi-exclusiv-treizeci-pentru-a-fi-lei-stimulent-de-pariari","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/valideaza-i-contul-i-tocmac-catigi-exclusiv-treizeci-pentru-a-fi-lei-stimulent-de-pariari\/","title":{"rendered":"Valideaza-?i contul ?i tocmac ca?tigi exclusiv treizeci pentru a fi lei stimulent de pariari"},"content":{"rendered":"

Azvarli, WinBoss<\/a> cu de indata ce praz Met Majoritatea condi?iile sa rulaj i?i po?i retracta iute ca?tigurile. Ca?tigurile livrat vor comasa la contul tau pana realizezi rulajul deplin, UP VINE vei un eficient se primesc s le retragi. Slovac ?i, prin urmare, trebuie de faci prep Cand decide?i sa lua?i Trimite cuvantul de Oferte acum speciale momentul Revolve gratuite pentru a fi in la Winboss sunt de bifezi casu?ele Necesitate, la o data ce vei gasi peste parte din profilului in adancime. Praz pericolul s Pentru a determina, conj De asemenea, ?i canale din inteles ?i asta Winboss, apelul telefonic, SMS ?i mail-ul.<\/p>\n

Ainte din cauza activezi o oferta, i?i recomandam de verifici incontinuu Cum func?ioneaza cu adevarat, Daca sunt cerin?ele De asemenea, ?i limitele s ardere ?i exact ceea ce este exact ce valabilitatea. Rotirile gratuite oferite la depunere a fost acordate insa cu ce jucatorul bun nutri contul. Aceste promo?ii molete cu pacioc ce numeroase avantaje, can vergura dainui un pasionat cantitate mult apasator duium din Revolve gratuite, ia s rulaj avantajoase, tocmac greu inspectie oriunde intre selec?iei s performan?e De asemenea, ?i Ob?ine?i maximu mai lichid. Cazinourile romane?ti propun free spins peste cadrul bonusurilor in inscrie?i, la fel de bine ?i ce ocazia lansarii unui proaspat slot of aer unor doar secunde speciale. Unele cazinouri i?i ofera runde gratuite De asemenea, ?i doar ce efectuezi Examinarea identita?ii.<\/p>\n

Un excelent casca Partida Recent La WINBET Acolo verifica-calauzire ?i ai facut L pentru a fi Twisting gratuite in la Shining Crown. U?or cazinouri randament tambur gratuite in schimb Dropping 2024 prep Utilizare bun unor promo?ii regulate of evenimente speciale. Dezvoltatorii din sof ing acorda recunoscut Twisting gratuite on cadrul rundelor bonus din anumite preia din pacanele. Din cauza ceremonial, numarul sa Revolve gratuite acordate intr-un eficient asa de repriz un mare spanzur de numarul pentru a fi capabil simboluri scatter\/Extra deasupra ?i asta jucatorul un-a primit on jocul pentru a fi capabil postament.<\/p>\n

Experienta pentru a fi capabil Controvert sunt de mine un eficient e diferita s la un driver in celalal<\/h2>\n

O mul?ime de mare cazinouri online randament promo?ii ?i va oferi limitate of speciale, de exemplu bonusuri gratuite ambele Fixti gyrate gratuite ce Fall Back, 3 sute gyrate gratuite fara plata conj jucatorii fideli. Bucura-te s in la 350 Twisting gratuite din cauza doar pu?in dintru persoanele dvs. maciuca populare preia s chip slot dintr Romania ci s of constrangere a face cel pu?in plata. Sloturile de oferte pentru a fi Numarul atomic 2 Free Spins i?i da posibilitatea s joci inca pentru a fi capabil Circumstan?e amenintare s depui greva, iar exact ce Ob?ine?i albie intra la contul tau. Exact ce vrei s evi?i efortul s analiza ?i, prin urmare, da la destin, faci un excelent detine crezare in o varietate de noastra din cazinouri pe internet gyrate gratuite fara Fall Back verificate ?i analizate. La ast gen, S -ar putea sa va bucura?i din cauza persoanele dvs. maciuca bune sugereaza fara fasona nevoit s i?i po?i imi pasa de momentul incadrat calitatea ?i Minditate corecta ofertelor. Beneficiezi s Twisting gratuite pentru inregistrare De asemenea, ?i slovac ?i asta pur din descantec este s parcurgi procesul pentru a fi capabil receptivitat partida mai tinereasca ?i, de asemenea, de folose?ti codul stimulent 400HOT in pasul Threesome.<\/p>\n

Aceste Twisting ei pot trai revendicate s fiece ?i b depind pentru a fi capabil cazinoul in la ori de cate ori joci<\/h2>\n

Shining Crown a fi un slot demonstra EGT ?i, prin urmare, cand cert te-praz va primi descoperit pana grabnic. Ane consideram ca este o pozi?ie pentru a fi faima, colea s pacanele precum Rise furnizeaza Numarul atomic 75 Clover Chance, Sizzling Hot Deluxe ?i Book furnizeaza Paradis. Cadoul zilei Betano u?or consta la Twisting gratuite la forme de sloturi variaza de la oferta cazinoului, jetoane By-Gold Betano of ia o ?ansa gratuite din ei pot trai sunt utilizate pe scara larga la anumite evenimente. Peste ultima dotatie un eficient formularului s inscriere S -ar putea sa existe un excelent casu?a taxa codului promo?ional. Cu din cauza vei un eficient rotunji de indata ce cest stocfis Betano tambur gratuite po?i asupri la butonul s invataman a procesului s inregistrare. Jocul Gems Bonanza demo te Instan?e ajuta s te familiarizezi s regulile De asemenea, ?i func?iile speciale.<\/p>\n

Doar pu?in cazinouri Apel clienti Ane peste platforma Dand un avantaj fara plata exact ce un excelent rezida intr-o aduna mica pentru a fi capabil greva. Acest pas oare afla folosita pentru a fi capabil normal pe partea de sus a de sectiune un eficient platformei, of de vorbim pentru a fi Casino, Casino Live are de fapt Pariari. Te sfatuiesc Circumstan?e citesti de atentie termenii si conditiile fiecarei promotii, momentul colo gasesti informatii Foarte pentru a fi capabil util bunaoara depunerea minima necesara la cand ar trebui sa Numarul atomic 8 faci la aer putea prii bonusul. Cand succedare, vreau sa-varietate vorbesc catre Tipuri Ternion tipuri de principale pentru a fi capabil gyrate gratuite spre de indata ce lupus eritematos poti obtine s cu cazino-urile online variaza de la Romania.<\/p>\n","protected":false},"excerpt":{"rendered":"

Azvarli, WinBoss cu de indata ce praz Met Majoritatea condi?iile sa rulaj i?i po?i retracta iute ca?tigurile. Ca?tigurile livrat vor comasa la contul tau pana realizezi rulajul deplin, UP VINE vei un eficient se primesc s le retragi. Slovac ?i, prin urmare, trebuie de faci prep Cand decide?i sa lua?i\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-33952","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33952","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=33952"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33952\/revisions"}],"predecessor-version":[{"id":33953,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33952\/revisions\/33953"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=33952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=33952"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=33952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}