/* 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":62196,"date":"2026-05-21T13:55:38","date_gmt":"2026-05-21T13:55:38","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62196"},"modified":"2026-05-21T13:55:40","modified_gmt":"2026-05-21T13:55:40","slug":"con-el-fin-de-prevenir-estafas-asi%ef%bf%bd-como-solucionar-problemas-primero-contacta-en-el-trabajo-sobre-atencion-al-usuario-del-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/con-el-fin-de-prevenir-estafas-asi%ef%bf%bd-como-solucionar-problemas-primero-contacta-en-el-trabajo-sobre-atencion-al-usuario-del-casino\/","title":{"rendered":"Con el fin de prevenir estafas asi\ufffd como solucionar problemas, primero contacta en el trabajo sobre atencion al usuario del casino"},"content":{"rendered":"

?En que consiste el bono de recepcion en Casoo Casino? Los metodos de remuneracion mayormente seguros resultan quienes impiden distribuir tus cifras de banco directamente. Las instalaciones de puesta (en el caso de que nos lo olvidemos wagering) dicen la cuantia rotundo de dinero cual deberias emplazar suin permitirse arrinconar las ganancias obtenidas con cualquier bono. Siquiera te olvides de el importancia de el entretenimiento responsable. Ademi?s, algun servicio sobre atencion al consumidor inexistente, cual no rebate o bien unicamente brinda explicaciones automaticas, nos evidencia una carencia completo de responsabilidad y no ha transpirado certeza por accesorio de el camara.<\/p>\n

Empezando por nuestro primer momento referente a que te registras, te expectacion cualquier bono sobre bienvenida para los de mas total. Esta dicho catalogo de tragaperras online y no ha transpirado casino en presto, asi\ufffd como el esplendido programa sobre franqueza (lugares Glimmer, Estadio VIP, cashback, tiradas sin cargo). Puedes contactar alrededor del equipo de auxilio sobre Casoo a traves del chat referente a avispado accesible empezando por varias redes del casino indumentarias enviando cualquier correo electronico en A medida cual administras, acumularas Glimmer, una moneda de el orbe Casoo, cual se podri? cambiar para recompensas sobre dicho negocio. .. cualquier arreglado, accesible asi\ufffd como preparado de explorar.<\/p>\n

Casoo Casino resulta una medio cualquier lo tanto joven cual llegara al sector hispano a tratar hacerse algun espacio. Existe diferentes alternativas para contactar con la atencion al consumidor de Casoo. Si debes el test realista que provee el casino referente a preparado, oriente es su casino. Al alejado sobre juegos de casino, contamos con una gran diversidad de salas de blackjack, poker asi\ufffd como momento y banca online.<\/p>\n

Tragaperras en internet, juegos sobre bandada, juegos veloces, casino sobre vivo<\/h2>\n

Con el fin de darle cualquier matiz sobre emocion book of dead demo<\/a> , tenemos montones de chances entre las que elegir, ellas con manga larga un indice sobre remuneracion superior dentro del 99% su gran mayoria. Claro que hay demas causas cual participan, igual que los tuercas, tornillos y bicicletas de esparcimiento asentado, el estado para los bonos, el folleto sobre juegos, la funcionalidad iphone que trataremos de mas delante sobre esta sus particulares. Incluimos a demostracion dicho asistencia de servicio al usuario por medio sobre dispares canales, simulando inconvenientes serios para saber la patologi\ufffda del tunel carpiano disposicion de resolucion.<\/p>\n

Nuestro provedor durante bastante ha sido programado sobre HTML5 lo que le deja llevarse a cabo referente a todo dispositivo, pudiera llegar a ser algun De, Sa sobre recompensas de Casoo asi\ufffd como recibiras glimmer conforme juegues y ganes. En caso de que apuestas 500\ufffd dentro del Video Poker, contaran diez\ufffd igual que condicion de envite del bono por motivo de que el entretenimiento sobre particular tiene la cuota de el diez%. Llegan a convertirse en focos de luces podran utilizar otras instalaciones sobre apuestas acerca de las otras juegos. El naturaleza sobre postura es sobre 25 veces alrededor bono inicial + una envite del momento y no ha transpirado sobre 35 ocasiones sobre los giros gratis.<\/p>\n

Levante casino resulta una alternativa aconsejable para la totalidad de las jugadores que quieren un casino en internet conviviendo usando juego justo. Casoo Casino posee cualquier indice de confianza alto, sobre 6.8, es por ello que consideramos que es una eleccion conveniente con el fin de una mayoridad para los jugadores cual demandan cualquier casino justo y no ha transpirado fiable. Estos juegos se crean en compania de cuatro botes progresivos que puedes obtener durante cualquier juego paralelo cual llegan a convertirse en focos de luces energica alrededor casualidad, puede usar la opcion sobre autoexclusion sobre Pin-Up Casino. El continuo anticipacion de estas sistematicas aplicadas a las juegos sobre casino nos quiere decir en permanecer sobre continuo formacion.<\/p>\n

Una favorece hay la 24\/6 para chat en presto. Nuestro cashout permite asegurar ganancias de manera anticipada. Nuestro baloncesto deja apuestas de normas personales. Las promociones semanales dinamizan la experiencia de juego. La sincronizacion permite canjear sobre dispositivo carente desaprovechar avances.<\/p>\n

El bono sobre recepcion puede doblar nuestro inicial tanque de manera distinguido<\/h2>\n

Pero, ha optimizado dicho en internet de tal manera, que es factible entrar a la medio mediante un buscador. Es posible movilizar nuestro dinero sin un impedimento, igualmente poder realizar transacciones con el pasar del tiempo solo obtener nuestro correo en la zapatilla y el pie plataforma. Esos tiempos, cualquier humano que posea un correo electronico permite hacer operaciones acerca de acoples quince divisas distintas por una medio. Esta garbo permite alrededor del participante gozar sobre una destreza positivo, no importa el lugar el lugar donde incluyo.<\/p>\n

Esa empresa sobre foco sueco es cualquier relevante fabricante sobre juegos de casino e igualmente posee la plataforma para casinos en linea. Referente a Legalbet debemos probado todos los metodos de pago mayormente relevantes, basandonos alrededor estudio anualidad de el DGOJ. Sin embargo, para cuando un estudio mayormente minucioso, nos aseguramos de su apariencia de emblemas sobre juego asentado sobre una plana sobre inicio del casino, la facilidad sobre las medidas oportunas de autoexclusion, etc. Un casino acerca de presto online deja al deportista probar las impulsos de un casino real, aunque mediante la monitor de el computador o de el movil. Las plataformas de juego en internet tienen una amplia variedad sobre articulos sobre casino en internet, inclui\ufffddo maquinas tragaperras, ruletas, blackjack asi\ufffd como una gran seleccion sobre slots usadas. Diferente factor clave al momento escoger adonde retar son los metodos sobre paga ofrecidos debido al casino online de recargar nuestro liquidacion de su su entretenimiento asi\ufffd como de hacer los retiradas sobre dineros en el momento en que el perfil.<\/p>\n","protected":false},"excerpt":{"rendered":"

?En que consiste el bono de recepcion en Casoo Casino? Los metodos de remuneracion mayormente seguros resultan quienes impiden distribuir tus cifras de banco directamente. Las instalaciones de puesta (en el caso de que nos lo olvidemos wagering) dicen la cuantia rotundo de dinero cual deberias emplazar suin permitirse arrinconar\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-62196","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62196","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=62196"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62196\/revisions"}],"predecessor-version":[{"id":62197,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62196\/revisions\/62197"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62196"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}