/* 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":127949,"date":"2026-05-25T13:29:50","date_gmt":"2026-05-25T13:29:50","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=127949"},"modified":"2026-05-25T13:29:50","modified_gmt":"2026-05-25T13:29:50","slug":"the-new-feature-length-may-vary-depending-on-how-of-many-scatters-have-been-caused","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-new-feature-length-may-vary-depending-on-how-of-many-scatters-have-been-caused\/","title":{"rendered":"The new feature-length may vary depending on how of many scatters have been caused"},"content":{"rendered":"

S. participants looking to enjoyable game play, quick crypto profits, and you will grand greeting incentives<\/h2>\n

The latest paytable suggests 10 standard and 12 premium symbols from the Lucky Duck online slot the real deal currency online game. Are you ready to test your own chance regarding the cool-searching position video game inside the GAMEROOM?<\/p>\n

Getting 3+ scatters while in the one twist releases the benefit round<\/h2>\n

Past one, Sweeps Regal provides a rich selection of Fish Video game like Sea Princess, Ka Seafood Hunter, and you will Octopus Legend. You even have a different collection of Buffalo ports, and Buffalo Stack’n’s YNC, Buffalo Huntsman, Ragin’ Buffalo, Buffalo on fire, Mystical Buffalo \ufffd and many others. That’s one of the best subscribe also offers found in terminology regarding South carolina, albeit the latest GC tally is a little light overall. Although Jackpota generally concentrates on slots, offering more 1,500 headings, additionally discover jackpots, progressive ports and you will alive video game shows. Elsewhere, discover a proper-stocked alive local casino, some really handy Jackpots, and several free table games you could play feeling a section closer to what an internet gambling enterprise feels as though. Once you signup, you can acquire the actual Prize Local casino no deposit extra, it bonus will get you 2 Sweepstakes Coins upon joining, and you can and discover 100,000 Coins that can be used to play enjoyment.<\/p>\n

Prolific company like Relax Betting and you may Hacksaw Playing usually release the newest online game weekly, on the ideal sweeps gambling enterprises immediately adding them to its library. Iron Lender falls your for the a great heist-driven caper devote Cuba’s underworld. The fresh game’s RTP lies in the % at the ideal sweepstakes gambling enterprises, which is higher than mediocre, even when not as higher while the Currency Cart 2 or different fighting harbors.<\/p>\n

So it tempting choices is generated all the more enticing on the unique DuckyLuck Acceptance Extra. will bring you the best number of online casino games – between electronic poker upon twenty three reel and you will 5 reel ports. All of our experience in all the levels of support service, experience-strengthening, and additionally, our very own swiftness to truly get you your winnings!<\/p>\n

Every features, for instance https:\/\/thepools.uk.com\/<\/a> the MergeUp auto mechanic, tumbling reels, and you will added bonus rounds, was accessible towards one another apple’s ios and Android os gadgets. Their compatibility around the gizmos and you will affiliate-friendly program further augment access to and you may pleasure. Giovannis Treasures are an effective 7-reel games of the Betsoft that have coal switching to help you diamonds and you can fulfilling high profits and you may ft game winnings when matching four or more clusters off symbols. When you use specific advertisement blocking app, excite look at its options. You can discover about slot machines and exactly how they work inside our online slots games publication. If you’re looking to sign up within an alternative casino to enjoy Fortunate Ducker, listed below are some our very own local casino opinion part, in which i’ve a range of invited bonuses.<\/p>\n

It\ufffds ideal for each other newcomers whom see lighthearted templates and you may seasoned participants searching for fulfilling gameplay. The shape try playful but really higher level, having cartoonish design one to pop facing a serene h2o-inspired backdrop. Click on the option below as long as you intend to remain right here to learn details. With regards to opting for a bona-fide money gambling establishment on the internet, DuckyLuck Local casino shines that have ample rewards, lightning-fast payouts, and you will exclusive online game. DuckyLuck Gambling establishment is amongst the ideal-rated web based casinos having U.<\/p>\n

Nolimit Town is amongst the most recent game organization at the sweepstakes gambling enterprises, however it is quickly become one of many finest labels to own ports having real money honors. Keep in mind that sweeps casino that offer online ports together with ability lots of Vacation-themed offers during the festive symptoms, very maintain your eyes open specifically around the social media channels. Which have typically 1000+ harbors during the sweeps gambling enterprises, you will find a number of free slot online game to choose from. However you can attempt them 100% free playing with Gold Coins whenever joining before playing with Sweeps Coins and you may trying so you’re able to win real money honours should you desire. While you are we have already seen some hefty hitters miss, there’s a lot even more coming down the newest range.<\/p>\n

The fresh Free Revolves bullet uses an icon conversion meter; getting scatters transforms lower-using icons for the Mystery Bamboo, increasing the regularity of your Golden Bamboo produces. Getting four or five scatters somewhat boosts the starting nuts multiplier so you can 10x otherwise 25x respectively. ELK’s signature X-iter buy eating plan can be obtained, providing four games settings ranging from a straightforward bonus search so you can an excellent \ufffdVery Added bonus\ufffd with guaranteed larger symbols and you can restriction grid height. NoLimit Urban area goes on the extremely really-known team having an activity-packaged 6-reel settings within free online position launch. It’s a great Dog’s Life away from Knucklehead Syndicate try a free online position built on a 5?12 or 5?four structure, and game features wild modifiers and you will bonus-creating scatters that may lead on the multi-layered 100 % free spin cycles.<\/p>\n

Lucky Duck ports can be obtained to tackle into the each other pc and you can mobile devices, it is therefore simpler getting players to love the game at any place. That’s all; the new mobile version will stream following that, and you will probably feel you were to tackle within the-application the entire day. This is because effortless – LuckyLand’s cellular version is great enough, and all of you have to do was would an account and you may play in the portrait function. You will find a desktop style of the site, however, aside from all that, I enjoyed to try out to your cellular without even being forced to down load the fresh application, and that i fool around with an android os device. The fresh online slots games are governed by the pre-set random number turbines.<\/p>\n

In the incentive round, the brand new multiplier steps will not reset between revolves, and you may an excellent \ufffdComplete Online\ufffd function can randomly bring about to brush the fish multipliers currently towards the newest reels to possess one massive payout Most notably, people spin normally bring about the latest Dream Miss Jackpot entry, offering players a try at five modern levels, such as the Super Jackpot which seeds in the \ufffd2 million. Fish signs hold immediate cash viewpoints and are collected randomly within the the beds base online game otherwise automatically inside Totally free Spins bullet whenever they get to the base of grid. Calm down Betting provides a good 5?four \ufffdWays\ufffd free online slot slot having a watch highest-frequency jackpot possible. Since the 12,000x maximum profit try conservative than the their colleagues this week, the brand new % RTP and typical volatility ensure it is good a lot of time-identity slot designed for lengthened training and you may milling South carolina\/GC.<\/p>\n

Today, which have players getting completely at the mercy of the fresh whims off Woman Luck, there’s absolutely no sure-fire game play function here that may be sure wins. Well, regrettably, there is no Fortunate Duck jackpot to be had, if progressive otherwise. Here, users have to capture a row of bobbing ducks so you’re able to win multiplier bonuses or entry to the top Currency controls where substantial multiplier bonuses are shared. The latest duck firing spread symbol causes an even more fun Happy Duck extra which can build participants almost faith he or she is within the a district reasonable. The entire appearance and feel is actually Far eastern, hence impression is bolstered by style of symbols seen within this online position, and sounds, that is bright and you can chirpy sufficient to dance to help you. Everything is determined lower than a definite heavens and you also is nearly smelling the sun’s rays glowing towards yard.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. participants looking to enjoyable game play, quick crypto profits, and you will grand greeting incentives The latest paytable suggests 10 standard and 12 premium symbols from the Lucky Duck online slot the real deal currency online game. Are you ready to test your own chance regarding the cool-searching position\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-127949","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127949","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=127949"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127949\/revisions"}],"predecessor-version":[{"id":127950,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127949\/revisions\/127950"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=127949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=127949"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=127949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}