/* 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":77112,"date":"2026-05-22T22:28:48","date_gmt":"2026-05-22T22:28:48","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=77112"},"modified":"2026-05-22T22:28:49","modified_gmt":"2026-05-22T22:28:49","slug":"este-valor-acostumbran-a-se-situa-dentro-de-diez%ef%bf%bd-y-15%ef%bf%bd-pero-suele-diferir-segun-nuestro-cirujano","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/este-valor-acostumbran-a-se-situa-dentro-de-diez%ef%bf%bd-y-15%ef%bf%bd-pero-suele-diferir-segun-nuestro-cirujano\/","title":{"rendered":"Este valor acostumbran a se situa dentro de diez\ufffd y 15\ufffd, pero suele diferir segun nuestro cirujano"},"content":{"rendered":"

Los tragaperras normalmente relatar dentro del 500% de el capacidad sobre apuesta del bono, mientras cual otras juegos podran efectuarlo solo parcialmente indumentarias no contabilizar en absoluto. Con mayoridad sobre promociones, los giros unicamente pueden darse en la tragaperras concreta indumentarias en una pequena eleccion sobre juegos elegidos debido al casino, igual que los superiores ruletas acerca de listo.<\/p>\n

Por el momento, entre las superiores operadores en Latinoamerica no estan quienes funcionan que usan leyes de bonos falto deposito. Ahora en caso de que detras de GreatWin aplicaci\u00f3n<\/a> experimentar las bonos desprovisto inscripcion, deseas aspirar para mas grandes bonos, nunca os es posible desaprovechar los bonos con el pasar del tiempo tanque. Las bonos carente deposito nos podrian regalar para registrarnos empezando por 5, diez, quince, 20 y no ha transpirado hasta 100 Euros. El bankroll indumentarias naturaleza de apuesta desprovisto tanque suele acontecer sobre insignificante x20, teniendo la posibilidad de regresar inclusive x100.<\/p>\n

Sobre los subsiguientes secciones te presento desplazandolo hacia el pelo analizo las ventajas desplazandolo hacia el pelo desventajas sobre los dos las publicaciones para los superiores bonos de casino en internet de ayudarte a elegir el mas profusamente correcto para usted. Las casinos joviales bonos de bienvenida deben ser para sobra potenciales por las jugadores espanoles, pues permiten obtener prerrogativas alrededor del elaborar nuestro primer deposito. Generalmente, unicamente se puede elegir la rebaja de sometimiento, como en LeoVegas, donde escoges dentro de nuestro bono de casino o casino sobre listo.<\/p>\n

Los giros gratuitos normalmente haber la vigencia corta, suelen de 7 a 15 jornadas. Tambien su bono de admision, cual debido a incluye 12 tiradas, Platincasino brinda 50 giros regalado referente a Jumanji por comprobar tu cuenta. El bono sobre admision brinda 88 tiradas gratuitas referente a bicicletas 300 tragaperras, inclui\ufffddo Megaways desplazandolo hacia el pelo botes, falto urgencia sobre aprovisionar casi nada na? y no ha transpirado con manga larga algun rollover extremadamente asumible de x20. Resultan varios las discernimiento en aquellos que os debes precisar de incrementar algun bono de recibimiento carente tanque.<\/p>\n

Unico una conduce a conseguir usar sobre la slot sobre Hot Spin Retrigger, en compania de un ai\ufffdadido sobre 0,08\ufffd por cada tiro, y a lo largo de algun division extremo de 24 situaciones. Los premios de las slots contribuyen en algun 500% sobre la liberacion de el bono y no ha transpirado los demas juegos (ruleta asi\ufffd como blackjack) desplazandolo hacia el pelo de casino referente a presto (ruleta sobre vivo) lo realizan acerca de algun 12%. Es necesario registrarse y confirmar la cuenta con el fin de coger oriente bono de 88 tiradas de balde a las slots. Nunca, invariablemente debemos seguir de campos sobre postura del decenio indicado. Algun bono sobre casino es una promocion que te brinda traspaso extra, giros regalado u diferentes ventajas alrededor registrarte, aprovisionar o en la barra cooperar acerca de ciertas tareas. Esto es sin duda trascendente tanto al siguiente esparcimiento asentado para una defensa sobre hacen de bienes y hechos de toda la vida.<\/p>\n

Asesoramiento nuestra relacion del momento para excelentes bonos con el pasar del tiempo tiradas gratuitas<\/h2>\n

Es algun bono de admision carente deposito cual las casas sobre apuestas y no ha transpirado Casinos en linea deben de darte de superior referente a alguna publicidad de saque. Para terminar, nuestro Casino Betsson igualmente hallaras algun bono falto tanque sobre hasta 20 eurillos, estando necesario apostar hasta 40 veces el numero de el bono, y no ha transpirado con el pasar del tiempo un reintegro extremo sobre hasta 500 eurillos. Nuestro deposito diminuto tiene que ser sobre 10 euros, no obstante en algunos como varios sucesos tendra lugar obligatorio jugar inclusive 30 ocasiones la cantidad del deposito. En la misma camino, nuestro Casino Gran Madrid en el caso de que nos lo olvidemos la pagina sobre 888casino te brinda ademi?s un bono sobre treinta eurillos falto deposito para apostar referente a los juegos de casino, sin embargo los instalaciones traspasan para juguetear incluso 25 ocasiones el prestigio de el apuesta. Los operadores se reservan nuestro derecho de terminar, convertir indumentarias descontinuar la publicidad, los terminos y los requisitos de su propaganda acerca de cuestion, no obstante resulta una practica comun cual las Casinos En internet ofrezcan 10 euros de balde sin tanque sobre Portugal. Ten en cuenta los consejos al momento pedir hacen de bonos de casino, asi como todo lo que tiene que ver acalculos de impuestos, para alcanzar aprovecharlos alrededor extremo.<\/p>\n

Sin embargo, es posible a como es medio os pida documentos extras para asegurarse<\/h2>\n

Como llevando resto de bonos de casino, los codigos de bono las sentirias bien en la plana primeramente en el caso de que nos lo olvidemos con plana de bonus. Ciertos bonos falto deposito te piden cual insertes un fuero especial indumentarias cual uses algun cupon para desbloquearlos. En la estilo de esparcimiento regalado, ni ni tienes que fabricar un perfil en el caso de que nos lo olvidemos ser usuario sobre la medio.<\/p>\n

Por lo tanto, suin fortalecer cualquier bono diez\ufffd gratuito sin deposito, revisa invariablemente los Palabras desplazandolo hacia el pelo Condiciones del camara. Nuestro belleza de el casino 12 eurillos regalado carente tanque Chile se encuentre sobre que te deja juguetear desprovisto emplear siquiera un centimo. Las parejas operadores que ofrecen esa promocion deben contar con licencia de el DGOJ, lo que asegura empuje y entretenimiento importante. Una vez contrastada tu personalidad, nuestro casino os acredita cualquier cesion promocional de 12\ufffd cual es posible utilizar en sus juegos a tu disposicion.<\/p>\n","protected":false},"excerpt":{"rendered":"

Los tragaperras normalmente relatar dentro del 500% de el capacidad sobre apuesta del bono, mientras cual otras juegos podran efectuarlo solo parcialmente indumentarias no contabilizar en absoluto. Con mayoridad sobre promociones, los giros unicamente pueden darse en la tragaperras concreta indumentarias en una pequena eleccion sobre juegos elegidos debido al\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-77112","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77112","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=77112"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77112\/revisions"}],"predecessor-version":[{"id":77113,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77112\/revisions\/77113"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=77112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=77112"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=77112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}