/* 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":127422,"date":"2026-05-25T13:29:14","date_gmt":"2026-05-25T13:29:14","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=127422"},"modified":"2026-05-25T13:29:15","modified_gmt":"2026-05-25T13:29:15","slug":"the-newest-grand-jackpot-will-pay-2000x-your-stake-and-you-will-multipliers-can-boost-complete-gains-further","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-newest-grand-jackpot-will-pay-2000x-your-stake-and-you-will-multipliers-can-boost-complete-gains-further\/","title":{"rendered":"The newest Grand Jackpot will pay 2,000x your stake, and you will multipliers can boost complete gains further"},"content":{"rendered":"

It is Live agent games is full Hd, have many alteration choices and you will gamification points<\/h2>\n

Every the fresh landing feels like a small step of progress, as well as the reset have the fresh ability alive extended, very there’s always one to -another symbol-minute. She tries to give the fresh new gambling world better within the a straightforward, enjoyable means, while you are nevertheless providing helpful hints and honest advice. Gamzix is certainly one of the developing online game studios to watch, since it also offers balanced and superbly tailored ports. Really, Gamzix now offers a variety of modifiers, including random wilds, profit multipliers, increasing wilds, and many others.<\/p>\n

Even with getting an earlier iGaming providers, Gamzix made severe strides ahead this kind of an initial place of time. Quite a few of its early headings is vintage fruit themes with unique enjoys. Its game optimised to work well with Bitcoin, Doge, Ethereum, and Litecoin can assist the organization to help you appeal to the fresh increase of Bitcoin gambling enterprises that have have the fresh parece assistance dozens out of currencies and so are obtainable in the fresh English, Spanish, Italian, Russian, and you may Romanian dialects. Another positive ‘s the stamps made available to Gamzix of the a prominent iGaming testing organization.<\/p>\n

As well as controlling to send everytime when starting an excellent online game, nonetheless they assistance cellular players. That is because they appeal difficult for the getting high-stop image and you will framework. They is like he could be already heading down a fairly \ufffdsafe’ highway of slot games innovation and it’s involved in the newest sight of a lot community honor organizers. There can be all kinds of possibilities that Gamzix provides integrated within its slots, and within the-video game competitions and you will success which help to deliver the fresh gamification you to European position professionals came you may anticipate. Its increased exposure of show optimisation, bold visual name, and you may studies-informed math models gives Gamzix a definite character among newer studios.<\/p>\n

With that straightened out, we would like to point out that we actually enjoyed the basic impressions with forty Chilli Good fresh fruit Premium, since game’s design, stunning colour, and soundtrack merely meshed very well together, however, we know many people are keen on the new gameplay, very why don’t we circulate off to you to definitely. For the a great neon market at a distance, there are a gaming grid full of racy fresh fruit and spicy chilli. Fruity revolves with good tinge off spice loose time waiting for your inside the 40 Chilli Fruit Premium, where simple revolves and hot wins hide amongst the Spread Signs. Provide it organization’s game a try and take pleasure in their of good use and funny gambling enterprise experience within a world-class performing peak.<\/p>\n

Afterwards it expanded their studios towards Eastern European countries, such Kiev inside the Ukraine<\/h2>\n

Merkur Gambling is actually a casino app veteran team with many years from experience with creating gambling enterprise harbors both for stone-and-mortar an internet-based gambling enterprises. Super Field Game are a gambling establishment application creativity providers one is situated into the state-of-the-art mathematics and you will stunning graphics and tunes effects in order to make finest slot video game. Kalamba Games try an on-line games vendor which provides an extensive kind of gambling enterprise titles to possess online gambling platforms, paying attention generally on the online slots games.<\/p>\n

You https:\/\/betgoodwincasino.uk.net\/<\/a> to away, these along with show the new fruits ports distinct points on team. Quality mathematics, detail by detail picture and you can animations will be the about three pillars of fuel you to the majority of Gamzix online slots believe in. More thanks for you to definitely obviously goes toward its advanced online slots games. A huge selection of partners, together with one another online casinos and you will casino system suppliers, provides invariably produced the business a surfacing start amongst gamblers as well. At the same time the company reached the brand new heights over the casino industry, inside a little magnificent trends.<\/p>\n

Whenever in addition to the game’s multiplier aspects, the entire victory possible can arrive at an impressive 10,000x the latest risk. When this type of homes to your a-row that is after that filled and you will cleaned, it raise a major international multiplier you to definitely applies to all the upcoming victories contained in this that incentive training. People discover about three first respins into the a modified grid in which merely certified symbols can also be home.<\/p>\n

This iGaming provider provider is recognized for the progressive position video game that comes for the with exceptional graphics and fun sounds. AdoptIT is actually a gambling establishment software innovation business based in the Island of Guy and you may subscribed by UKGC to create exciting ports and you can desk online game to help you participants global. Understand how to enhance your casino’s offering due to 777gaming’s exceptional casino video game readily available due to SoftGamings’ punctual and you may secure API consolidation. twenty three Oaks Playing is actually a growing supplier and you can developer away from high-high quality slot games which have fun position online game offering Keep & Winnings, Megaways \ufffd, and other fun during the-video game bonus enjoys.<\/p>\n

Bottom line, these types of online slots games normally have half a dozen reels having up to seven symbols for each (it may be only a couple), and you will an impressive 117,649 ways to earn. These types of games are not probably the most glamorous otherwise featureful, however, they have been very easy to gamble and will getting just as fulfilling because the some other online slots games. The standard gimmicks try right here – wild icons, scatters, incentive rounds, and you can (perhaps) a number of the new aspects which you have not witnessed before. We have a free-gamble means inside all of our harbors, letting you speak about their features ahead of having fun with actual money. Not all of them are built specifically for crypto people, but at Metaspins Casino, our very own video game shall be played with Bitcoin, Ethereum, Tether, Dogecoin, and you can such much more.<\/p>\n

Distinguished because of its inlessly integrates user-amicable activities that have exceptional gamble Gamzix ports so you’re able to appeal to an effective worldwide listeners. Gamzix ports emerged since the a dynamic push regarding on line playing industry, offering an innovative new profile from reducing-border casino games. On the web Position Bonanza Donut Xmas was an enjoyable electronic game one brings the fresh festivity from Xmas to the world regarding online slots games. Online Slot Bright Coin 2 Secure the Spin try a vibrant digital games that offers players a new betting feel. Gamzix are ??a buddies which is noted for years of development and you will starting some other video game for everybody the professionals, and several ones provides endured aside one of them very quickly. Gamzix are ??a buddies that aims getting high criteria and you may visibility in the playing industry.<\/p>\n

SA Gambling try the leading Real time Video game Provider provider providing superior on line entertainment for over 15 years. RTG Slots is actually a far eastern division of your own notable Live Betting app seller organization which have a definite focus on promoting better-top quality gambling games. Revolver Gambling was good London area-depending business that delivers personal unique high-high quality and you may ines into the online casino globe. Calm down Gaming is just one of the top B2B service providers from the on the internet betting world that leverages a complete possible of their multiple-skilled team and you may strives to deliver just the finest gambling enterprise possibilities.<\/p>\n","protected":false},"excerpt":{"rendered":"

It is Live agent games is full Hd, have many alteration choices and you will gamification points Every the fresh landing feels like a small step of progress, as well as the reset have the fresh ability alive extended, very there’s always one to -another symbol-minute. She tries to give\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-127422","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127422","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=127422"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127422\/revisions"}],"predecessor-version":[{"id":127428,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127422\/revisions\/127428"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=127422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=127422"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=127422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}