/* 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":104403,"date":"2026-05-25T11:41:23","date_gmt":"2026-05-25T11:41:23","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=104403"},"modified":"2026-05-25T11:41:23","modified_gmt":"2026-05-25T11:41:23","slug":"the-newest-feature-length-varies-depending-on-how-of-many-scatters-was-basically-triggered","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-newest-feature-length-varies-depending-on-how-of-many-scatters-was-basically-triggered\/","title":{"rendered":"The newest feature-length varies depending on how of many scatters was basically triggered"},"content":{"rendered":"

S. players looking to enjoyable game play, punctual crypto payouts, and you will grand invited incentives<\/h2>\n

The new paytable suggests 10 practical along with twenty three superior symbols regarding Fortunate Duck on the internet slot the real deal money video game. Are you ready to try your chance regarding cool-lookin position game within the GAMEROOM?<\/p>\n

Obtaining 12+ scatters during you to definitely spin launches the main benefit bullet<\/h2>\n

Past one, Sweeps Royal enjoys a rich group of Seafood Games such Ocean Princess, Ka Seafood Huntsman, and you may Octopus Legend. You have a new collection of Buffalo ports, as well as Buffalo Stack’n’s YNC, Buffalo Huntsman, Ragin’ Buffalo, Buffalo unstoppable, Esoteric Buffalo \ufffd and many more. That is one of the better sign up even offers found in terms and conditions off South carolina, albeit the fresh new GC tally is a bit light total. Even when Jackpota primarily centers on ports, giving more 1,five-hundred headings, you will additionally see jackpots, modern ports and you may real time game reveals. Someplace else, you’ll find a proper-filled real time gambling establishment, specific very handy Jackpots, and some spare desk video game you could play feeling an effective piece closer to what an on-line gambling establishment is like. Once you subscribe, you may get the real Award Casino no deposit incentive, that it bonus can get you 2 Sweepstakes Gold coins upon signing up, and you may in addition to receive 100,000 Coins that can be used to play for fun.<\/p>\n

Respected company such Calm down Gambling and you may Hacksaw Playing tend to discharge the fresh new online game every week, towards best sweeps casinos immediately including them to their collection. Iron Bank drops your Wintopia<\/a> to your a great heist-determined caper place in Cuba’s underworld. The newest game’s RTP is at the % during the better sweepstakes gambling enterprises, which is more than mediocre, even when much less higher while the Currency Cart 2 or additional competing harbors.<\/p>\n

This tempting choices is made all the more appealing towards novel DuckyLuck Desired Incentive. provides you the finest gang of casino games – between electronic poker up on 12 reel and 5 reel ports. The experience in all the levels of customer service, experience-building, not to mention, the swiftness to get you the winnings!<\/p>\n

Most of the enjoys, like the MergeUp auto technician, tumbling reels, and bonus series, try available to the both apple’s ios and you may Android os products. Their compatibility across products and you will representative-amicable program then boost access to and you can thrills. Giovannis Jewels was an effective eight-reel games from the Betsoft which have coal modifying to help you expensive diamonds and you may satisfying large winnings and you can ft video game earnings when matching four or higher groups of icons. If you are using specific advertisement clogging software, please have a look at its configurations. You can discover a lot more about slots and how it works in our online slots guide. If you’re looking to register at the another local casino to play Fortunate Ducker, check out the local casino feedback area, in which you will find a range of invited bonuses.<\/p>\n

It’s best for both newcomers whom see lighthearted themes and experienced people looking for satisfying game play. The form was lively yet , expert, with cartoonish artwork you to definitely pop up against a calm liquid-themed backdrop. Click the switch lower than on condition that you want to remain here to read considerably more details. With respect to going for a bona fide currency local casino on line, DuckyLuck Casino stands out which have ample rewards, lightning-fast winnings, and you may exclusive video game. DuckyLuck Gambling enterprise is one of the best-ranked online casinos for You.<\/p>\n

Nolimit Town is just one of the most recent video game company during the sweepstakes casinos, however it is swiftly become among greatest labels to own ports which have real cash honours. Remember that sweeps casino that offer free online slots along with feature a good amount of Vacation-themed campaigns while in the festive attacks, therefore keep attention discover particularly round the social media avenues. Which have normally 1000+ slots within sweeps gambling enterprises, you can find a number of totally free slot online game available. However you can attempt everyone free-of-charge having fun with Silver Gold coins when enrolling in advance of playing with Sweeps Coins and you will trying to to help you win real money awards should you desire. When you find yourself there is currently viewed specific heavier hitters get rid of, there is lots a great deal more decreasing the brand new range.<\/p>\n

The new Free Revolves round uses an icon sales meter; landing scatters turns low-paying signs towards Mystery Bamboo, increasing the regularity of your Fantastic Bamboo leads to. Getting four to five scatters significantly escalates the carrying out crazy multiplier so you’re able to 10x otherwise 25x respectively. ELK’s signature X-iter get diet plan is available, giving four video game methods ranging from a straightforward bonus look to help you good \ufffdExtremely Bonus\ufffd which have guaranteed large signs and you can maximum grid height. NoLimit Area continues their extremely really-understood business that have an activity-packed six-reel configurations contained in this free online position launch. It\ufffds a Pet’s Lifetime of Knucklehead Syndicate try a free online slot constructed on a 5?3 or 5?four framework, and game have nuts modifiers and incentive-creating scatters that direct to the multiple-superimposed free twist series.<\/p>\n

Lucky Duck slots exists to try out to your one another desktop and you may mobiles, therefore it is easier to possess professionals to love the overall game at any place. That’s it; the fresh cellular type commonly load after that, and you’ll feel you were to play during the-application the complete big date. This is because simple – LuckyLand’s cellular adaptation excellent adequate, and all of you should do is manage a merchant account and you can enjoy for the portrait means. You will find a pc form of this site, however, despite all that, We preferred to relax and play to the cellular without even needing to download the newest app, and i also explore an android os unit. The fresh new online slots games is actually influenced because of the pre-developed arbitrary count generators.<\/p>\n

In the added bonus bullet, the newest multiplier hierarchy doesn’t reset anywhere between revolves, and you may a \ufffdComplete Websites\ufffd element can also be randomly bring about in order to brush every fish multipliers already for the the new reels for a single big payout Most notably, one twist can lead to the fresh Dream Get rid of Jackpot entryway, providing participants a trial within five progressive tiers, such as the Super Jackpot hence seeds in the \ufffd2 billion. Fish signs bring instant cash beliefs and they are amassed randomly within the the base games or automatically inside Totally free Revolves round when they get to the bottom of the grid. Calm down Playing delivers an effective 5?4 \ufffdWays\ufffd free online position slot which have a focus on large-regularity jackpot potential. Because the twenty-three,000x maximum winnings is old-fashioned than the its co-worker recently, the fresh % RTP and medium volatility ensure it is a great enough time-label slot readily available for prolonged training and you may milling South carolina\/GC.<\/p>\n

Now, with members getting completely at the mercy of the brand new whims of Lady Fortune, there isn’t any yes-flames game play form right here that can ensure gains. Well, regrettably, there is no Lucky Duck jackpot to be had, if modern if not. Here, players are required to take a-row regarding bobbing ducks to victory multiplier incentives or usage of the big Currency controls in which huge multiplier bonuses is actually up for grabs. The newest duck capturing scatter symbol causes an even more enjoyable Happy Duck extra that can generate professionals nearly believe he’s during the a state fair. The overall appearance and feel is Western, and therefore impression try bolstered by the kind of signs seen inside on the internet slot, and also the tunes, that’s vibrant and you can chirpy enough to dancing in order to. All of it is decided less than a very clear sky and also you is nearly smelling sunlight glowing on the turf.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. players looking to enjoyable game play, punctual crypto payouts, and you will grand invited incentives The new paytable suggests 10 practical along with twenty three superior symbols regarding Fortunate Duck on the internet slot the real deal money video game. Are you ready to try your chance regarding cool-lookin\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-104403","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104403","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=104403"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104403\/revisions"}],"predecessor-version":[{"id":104405,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104403\/revisions\/104405"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=104403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=104403"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=104403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}