/* 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":123522,"date":"2026-05-25T13:22:14","date_gmt":"2026-05-25T13:22:14","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=123522"},"modified":"2026-05-25T13:22:14","modified_gmt":"2026-05-25T13:22:14","slug":"the-fresh-new-feature-length-varies-based-on-how-many-scatters-was-in-fact-triggered","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-fresh-new-feature-length-varies-based-on-how-many-scatters-was-in-fact-triggered\/","title":{"rendered":"The fresh new feature-length varies based on how many scatters was in fact triggered"},"content":{"rendered":"

S. professionals seeking to fascinating game play, punctual crypto payouts, and you will huge allowed incentives<\/h2>\n

The brand new paytable suggests ten practical together with 12 premium icons in the Happy Duck online position the real deal money game. Do you want to use your luck regarding the chill-searching slot video game during the GAMEROOM?<\/p>\n

Obtaining twenty-three+ scatters while in the one twist releases the advantage bullet<\/h2>\n

Past you to, Sweeps Royal features a wealthy selection of Fish Online game including Sea Princess, Ka Seafood Huntsman, and you may Octopus Legend. You have even another type of collection of Buffalo ports, together with Buffalo Stack’n’s YNC https:\/\/winmasters-casino.gr.com\/<\/a> , Buffalo Hunter, Ragin’ Buffalo, Buffalo on fire, Mystic Buffalo \ufffd and many others. That is one of the best join even offers found in terms and conditions of Sc, albeit the latest GC tally is a bit white full. Even if Jackpota mostly concentrates on ports, offering over one,five-hundred titles, you will also find jackpots, modern harbors and real time video game reveals. In other places, there are a highly-stocked real time casino, particular dead handy Jackpots, and many free desk game you could gamble to feel a bit nearer to what an internet local casino is like. After you join, you will get the real Award Casino no deposit bonus, which bonus will bring you 2 Sweepstakes Gold coins through to registering, and along with discover 100,000 Gold coins which you can use playing enjoyment.<\/p>\n

Respected business including Settle down Betting and Hacksaw Gaming often discharge the fresh new game weekly, on the best sweeps casinos instantly including these to its library. Iron Financial drops you into the an effective heist-motivated caper set in Cuba’s underworld. The brand new game’s RTP lies at % from the greatest sweepstakes casinos, that is higher than average, even though significantly less higher as the Money Cart 2 or some other fighting slots.<\/p>\n

That it tempting solutions is made increasingly enticing towards novel DuckyLuck Invited Added bonus. provides you the better band of online casino games – between video poker abreast of twenty-three reel and you may 5 reel slots. Our experience with all the amounts of customer service, experience-building, and of course, the swiftness to help you get the winnings!<\/p>\n

The has, for instance the MergeUp auto mechanic, tumbling reels, and you can extra cycles, is available to the both apple’s ios and you can Android devices. Its being compatible across the equipment and you can representative-amicable user interface further enhance entry to and thrills. Giovannis Jewels is a good eight-reel games of the Betsoft that have coal changing so you’re able to expensive diamonds and you may fulfilling high payouts and you can ft online game profits when coordinating four or higher clusters regarding icons. When you use specific advertisement blocking software, delight view the options. You can study a little more about slots and how they work within our online slots book. If you are looking to join up at another type of local casino in order to play Happy Ducker, listed below are some the gambling enterprise opinion point, in which you will find a range of invited bonuses.<\/p>\n

It\ufffds good for each other newbies exactly who enjoy lighthearted templates and you may experienced people looking fulfilling gameplay. The proper execution is actually lively yet expert, that have cartoonish design one pop music up against a serene water-inspired background. Click the switch below on condition that you intend to sit right here to read more info. With respect to going for a bona-fide money gambling enterprise on the web, DuckyLuck Gambling establishment stands out with nice advantages, lightning-timely winnings, and you will private online game. DuckyLuck Casino is among the finest-rated web based casinos to have You.<\/p>\n

Nolimit City is among the newest game organization during the sweepstakes casinos, but it is swiftly become among the many best labels to possess slots which have real money honours. Keep in mind that sweeps gambling enterprise that provide online harbors plus function lots of Getaway-themed advertisements through the festive symptoms, thus keep attention discover specifically all over social networking avenues. That have on average 1000+ slots from the sweeps casinos, there are many totally free slot video game to choose from. Naturally you can try everyone 100% free having fun with Gold Coins when signing up ahead of having fun with Sweeps Coins and seeking to so you can win a real income awards should you desire. If you are we now have already viewed specific big hitters miss, there is lots even more coming down the fresh line.<\/p>\n

The brand new Free Spins round uses a symbol conversion meter; getting scatters transforms reduced-using symbols for the Puzzle Flannel, improving the volume of Wonderful Bamboo triggers. Obtaining 4 or 5 scatters significantly increases the undertaking nuts multiplier to 10x or 25x correspondingly. ELK’s trademark X-iter buy eating plan can be acquired, giving five video game settings between an easy added bonus appear so you can good \ufffdVery Bonus\ufffd that have protected larger icons and you will restriction grid peak. NoLimit City continues the most well-understood team with a hobby-manufactured six-reel setup within online position discharge. It’s an effective Pet’s Lifetime off Knucklehead Syndicate is a free online slot constructed on a good 5?twenty-three or 5?4 construction, as well as the online game has wild modifiers and you will extra-leading to scatters that will lead to your multi-superimposed 100 % free spin series.<\/p>\n

Happy Duck ports can be obtained playing for the both pc and cellphones, therefore it is convenient to possess people to love the game from anywhere. That’s all; the new cellular adaptation often stream following that, and you’ll feel you were to try out inside-app the complete day. The reason is effortless – LuckyLand’s cellular variation excellent adequate, and all of you have to do try carry out a merchant account and you may play inside the portrait form. There is a desktop type of your website, however, no matter all of that, I liked to play to your mobile without having to down load the new software, and that i have fun with an android os equipment. The newest online slots games is actually ruled of the pre-set random matter turbines.<\/p>\n

In the incentive round, the new multiplier ladder doesn’t reset between spins, and you may good \ufffdFull Websites\ufffd element can be at random cause in order to sweep every seafood multipliers currently to the the latest reels having a single substantial payment Such as, one spin can also be result in the fresh Fantasy Lose Jackpot entry, giving users a try in the four progressive tiers, including the Super Jackpot and this seed products within \ufffd2 million. Fish symbols bring instant cash viewpoints and therefore are amassed at random within the the beds base video game otherwise instantly within the Totally free Spins bullet when it get to the base of one’s grid. Settle down Gambling brings a good 5?4 \ufffdWays\ufffd free online slot slot with a watch large-volume jackpot potential. Because the 12,000x max earn is conservative as compared to the colleagues this week, the fresh % RTP and you can average volatility allow a good long-name position available for extended instruction and you will milling South carolina\/GC.<\/p>\n

Today, that have users are wholly subject to the fresh new whims out of Lady Luck, there is no sure-flames game play mode right here that be sure victories. Really, unfortunately, there is no Happy Duck jackpot to be had, whether modern if not. Here, professionals must take a-row out of bobbing ducks in order to profit multiplier incentives or access to the major Currency controls where huge multiplier bonuses try available. The fresh duck capturing scatter symbol causes an even more enjoyable Fortunate Duck bonus which can make people almost faith he could be inside the a state reasonable. The general feel and look are Asian, hence impression try bolstered by form of symbols seen inside on the internet position, while the musical, that’s vibrant and you may chirpy sufficient to dancing so you can. Everything is decided less than an obvious air and you also is also almost smell the sun’s rays shining on the grass.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. professionals seeking to fascinating game play, punctual crypto payouts, and you will huge allowed incentives The brand new paytable suggests ten practical together with 12 premium icons in the Happy Duck online position the real deal money game. Do you want to use your luck regarding the chill-searching slot\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-123522","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123522","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=123522"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123522\/revisions"}],"predecessor-version":[{"id":123524,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123522\/revisions\/123524"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=123522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=123522"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=123522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}