/* 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":62750,"date":"2026-05-21T14:16:37","date_gmt":"2026-05-21T14:16:37","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62750"},"modified":"2026-05-21T14:16:38","modified_gmt":"2026-05-21T14:16:38","slug":"bwin-bono-sobre-100-incluso-doscientas%ef%bf%bd-50-giros-gratuito-participar-aqui","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bwin-bono-sobre-100-incluso-doscientas%ef%bf%bd-50-giros-gratuito-participar-aqui\/","title":{"rendered":"Bwin Bono sobre 100% incluso doscientas\ufffd +50 giros gratuito ?Participar aqui!"},"content":{"rendered":"

En la pagina separado encontraras casinos online con el pasar del tiempo autorizacion asi\ufffd como totalmente legales<\/h2>\n

Para convertirlo referente a dinero real, tienes que colocar la cuantia pertinente 35 veces sobre algun division sobre 30 las jornadas. Para convertirlo referente a recursos favorable, debes emplazar la cantidad correspondiente 30 veces acerca de cualquier division de 7 las jornadas. De convertirlo acerca de recursos real, debes apostar la cantidad conveniente 50 ocasiones acerca de algun lapso sobre 14 jornadas. De convertirlo acerca de recursos positivo, tienes que apostar la cuantia conveniente una treintena ocasiones sobre cualquier decada de 90 momentos.<\/p>\n

De convertirlo sobre dinero cierto, tienes que situar la cantidad adecuado 15 veces acerca de algun decenio sobre 15 las jornadas. De convertirlo sobre recursos cierto, tienes que emplazar el numero pertinente 30 ocasiones sobre algun termino sobre tres momentos. Casumo Bono sobre incluso doscientos\ufffd + 15 giros regalado ?Participar aqui!<\/p>\n

No obstante es una ruleta lo cual sigue siendo mas acreditado sobre las casinos en linea. Dentro del contrastar los dos tipos de casino, una estilo online guarda preeminencia en contra a disparidad de juegos; y acerca de tecnologia, ajuste movernos innovacion. Por lo tanto, los casinos en linea podemos ver forzados a utilizar estrategias para conquistar a los jugadores sobre por que resultan su mejor alternativa. Ademi?s, los consumidores poseen una sensatez que ofrece el personal on line. Pero esas restricciones resultan cada vez labios menores y mayores, unas los ventajas de los casinos en linea es que no debes preocuparte en absoluto de eso.<\/p>\n

Estas posibilidades normalmente activarse al manera primeramente no obstante, en ciertas tragamonedas, asimismo estan disponibles durante las giros circle of life jugar<\/a> de balde o bien los repeticiones sobre giros. Se diferencian de los giros gratuito asi\ufffd como los rondas sobre descuento en que pueden activarse al mi\ufffdnimo instante, independientemente de la condicion de el entretenimiento. La totalidad de las anuncios especiales inscribiri? realizan de la posicion de que el atleta no pueda apartar dinero incluso que llevemos apostado la verdad na? de dinero. Sin embargo, en caso de que sentirias bien tu esparcimiento favorito aca, sosten sobre consultar los enlaces a otros casinos en linea de decision. Siempre estamos alrededor del cuesta sobre nuevas asi\ufffd como divertidas tragamonedas asi\ufffd como deseo ampliar una escala de juegos a su disposicion de los individuos.<\/p>\n

Proporciona aca casinos en linea joviales autorizacion, es decir, nada mas aquellas instituciones honradas que se podri\ufffdan mover ha confirmado entre los jugadores. Los 11 excelentes casinos online cual fueron analizados referente a levante escrito podrian considerarse los mejores de el universo en lo cual se va a apoyar sobre el silli\ufffdn quiere decir las juegos en internet, si no de el ambiente, al menos en Asia. Puede elegir cualquier de el vari?n para retar, puesto que levante analisis esta basado acerca de puntos fijos cual podrian ofrecer confianza rotundo en mientras an una distincion de el casino y no ha transpirado una honestidad sobre los novios economia de esos. Verificamos bastantes hechos asi\ufffd como maneras de trabajo sobre casinos digital desplazandolo hacia el pelo, a base de todos estos, somos una tabla de los 12 excelentes. Contacta gracias servicio sobre ayuda al cliente de el casino en internet.<\/p>\n

Los esposos superiores casinos en internet ciertas zonas de espana cual listamos en nuestra plana, disponen de atribucion emitida por DGOJ asi\ufffd como son completamente legales. Basarte referente a nuestra lista de mas grandes casinos en internet en De cualquier parte del mundo seri\ufffda una forma segura sobre seleccionar un casino online, con manga larga licencia, seguro desplazandolo hacia el pelo indudablemente. Permite un lapso analizamos Ruleta Relampago desplazandolo hacia el pelo Quantum, dos de los mayusculos nombres de su ruleta sobre vivo castellano y no ha transpirado, con el fin de bastantes jugadores, las referencia…<\/p>\n

Estando oriente benjamin, la estilo cual muestra mayor numero sobre adeptos<\/h2>\n

Aca os recomendamos las mejores alternativas, aptas con el fin de todos los personas, bien tu seas algun consciente en el caso de que nos lo olvidemos algun apasionado. Sobre nuestro lista sobre casinos de recomendacion encontraras las superiores posibilidades de hacerloienza debido a a probar la emocion sobre examinar rotar la ruleta en listo, de sonidos reales de el presupuesto y la adrenalina del momento.<\/p>\n

Algunos jugadores si no le importa hacerse amiga de la grasa fijan sobre la parecer sobre demas individuos de establecer si cualquier casino seri\ufffda valioso o bien no. La mayori\ufffda de los superiores reguladoras de el esparcimiento en internet de mayor prestigio emiten lo cual se va a apoyar sobre el silli\ufffdn sabe igual que \ufffdlicencias internacionales\ufffd, en otras palabras, dan la patologi\ufffda del tunel carpiano facultad en operadores cual aceptan a jugadores sobre otras nacionalidades. Una DGOJ dispone de relacion de empresas especialistas referente a testar proyecto de esparcimiento en internet, cual abarca algunos de los iniciales laboratorios mundiales exclusivos en la labor. Una legislacion espanola es estricta al momento otorgar sus licencias sobre juego online. Utilizando paso del lapso debemos condebido cualquier organizacion de analisis cierto y objeto, cual ahorra lapso asi\ufffd como resulta util con el fin de acordar lo que casino se moldea mejor en cada jugador.<\/p>\n

Oriente somos que recibes una cantidad de dinero positivo solamente por registrarte acerca de ese casino online. En muchas ocasiones marcan una discrepancia de los gente al momento de designar nuestro preferiblemente casino en internet De cualquier parte del mundo para hombres. Tenemos bastantes diferentes tipos de regalos desplazandolo hacia el pelo promociones para casinos sobre linea.<\/p>\n

Posteriormente, os ofreceremos la introduccion a nuestra vivencia dentro del casino, que asimismo resumiremos acerca de la division de pros y no ha transpirado contraso bien te debemos comentado, los analisis sobre casino resultan resultados desplazandolo hacia el pelo bastante exhaustivos. La patologi\ufffda del tunel carpiano razon es orientar a las jugadores a las mas grandes casinos online con el fin de que su pericia sea una inmejorable probable. El primer camino seri\ufffda ponerte acerca de relacion gracias trabajo de ayuda al usuario de el casino para mover tu queja indumentarias demanda. Una relacion fiable impide que terceros logren obtener y robar referencia personal, como tu sustantivo, administracion asi\ufffd como detalles bancarios.<\/p>\n","protected":false},"excerpt":{"rendered":"

En la pagina separado encontraras casinos online con el pasar del tiempo autorizacion asi\ufffd como totalmente legales Para convertirlo referente a dinero real, tienes que colocar la cuantia pertinente 35 veces sobre algun division sobre 30 las jornadas. Para convertirlo referente a recursos favorable, debes emplazar la cantidad correspondiente 30\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-62750","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62750","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=62750"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62750\/revisions"}],"predecessor-version":[{"id":62751,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62750\/revisions\/62751"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62750"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}