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

S. professionals seeking pleasing gameplay, fast crypto payouts, and you can grand acceptance incentives<\/h2>\n

The newest paytable shows ten important plus twenty three advanced signs in the Lucky Duck online position for real money games. Do you want to test your fortune from the chill-looking position games in the GAMEROOM?<\/p>\n

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

Past you to definitely, Sweeps Regal provides a rich band of Seafood Online game like Water Princess, Ka Fish Hunter, and you will Octopus Legend. Your have an alternative type of Buffalo ports, together with Buffalo Stack’n’s YNC, Buffalo Huntsman, Ragin’ Buffalo, Buffalo unstoppable, Esoteric Buffalo \ufffd and others. That is one of the better sign-up also provides obtainable in terms and conditions away from South carolina, albeit the new GC tally is a little light full. Even if Jackpota mostly concentrates on slots, giving more 1,500 headings, you’ll also pick jackpots, modern harbors and you can live online game reveals. In other places, there are a proper-stocked live gambling enterprise, particular dead handy Jackpots, and several spare dining table online game you could play to feel an effective part closer to just what an online gambling enterprise is like. Once you subscribe, you can acquire the actual Award Local casino no deposit added bonus, that it extra will get you 2 Sweepstakes Gold coins through to joining, and you may in addition to found 100,000 Gold coins which can be used playing enjoyment.<\/p>\n

Respected organization such as Calm down Gambling and you will Hacksaw Betting commonly launch the newest online game each week, to your best sweeps casinos instantly including these to their collection. Metal Bank falls you into the a heist-determined caper devote Cuba’s underworld. The fresh game’s RTP consist at % at the top sweepstakes gambling enterprises, that’s higher than average, even though much less higher while the Money Cart 2 or some other fighting ports.<\/p>\n

It appealing options is done much more enticing for the unique DuckyLuck Invited Added bonus. brings the greatest band of online casino games – between video poker on 12 reel and you can 5 reel ports. All of our knowledge of all amounts of customer service, experience-building, not to mention, our swiftness to truly get you their earnings!<\/p>\n

The features, like the MergeUp auto technician, tumbling reels, and you can bonus rounds, is actually accessible to the one another ios and you will Android os equipment. Their compatibility around the products and you http:\/\/simba-slots.co.uk\/en-gb<\/a> may user-friendly user interface then augment entry to and you can pleasure. Giovannis Gems is actually good 7-reel video game by the Betsoft which have coal changing to diamonds and you can fulfilling highest profits and you will feet game earnings when coordinating five or higher groups from symbols. If you utilize specific offer clogging software, excite take a look at the settings. You can learn a little more about slots and exactly how it works within our online slots guide. If you are looking to sign up at an alternative gambling enterprise to help you play Lucky Ducker, here are a few the gambling establishment feedback area, where we have various acceptance bonuses.<\/p>\n

It\ufffds good for both beginners just who delight in lighthearted templates and you may experienced members seeking fulfilling game play. The design was playful yet expert, which have cartoonish visuals that pop facing a serene drinking water-styled backdrop. Click on the option lower than only if you wish to remain here to read through details. With respect to choosing a real currency gambling establishment on line, DuckyLuck Gambling establishment stands out that have good rewards, lightning-quick winnings, and you can personal game. DuckyLuck Casino is just one of the greatest-rated online casinos getting You.<\/p>\n

Nolimit City is among the most recent games company during the sweepstakes casinos, however it is swiftly become one of the top brands having harbors which have real money honors. Just remember that , sweeps casino offering online harbors together with ability loads of Getaway-inspired offers while in the joyful periods, thus keep eyes unlock particularly all over social network streams. Having on average 1000+ ports at the sweeps casinos, there are a number of 100 % free slot games to pick from. Obviously you can try everyone for free having fun with Gold Coins whenever registering just before using Sweeps Coins and you can trying to so you can win real cash prizes should you desire. While you are we’ve got currently seen certain hefty hitters miss, there’s a lot more decreasing the fresh new range.<\/p>\n

The fresh new 100 % free Revolves bullet uses a symbol sales meter; getting scatters converts low-investing icons to your Mystery Flannel, raising the regularity of one’s Wonderful Flannel causes. Obtaining 4 or 5 scatters rather escalates the carrying out wild multiplier to help you 10x otherwise 25x correspondingly. ELK’s signature X-iter get diet plan exists, giving four online game modes between an easy added bonus check in order to a \ufffdSuper Incentive\ufffd that have secured large icons and you can limitation grid level. NoLimit Area continues its extremely better-identified franchise that have a task-manufactured 6-reel setup inside online position release. It is good Dog’s Lifestyle of Knucklehead Syndicate try a free online position constructed on a great 5?3 or 5?four structure, plus the online game possess insane modifiers and you can incentive-causing scatters that will direct on the multiple-layered totally free spin series.<\/p>\n

Happy Duck slots can be obtained to try out to the both pc and mobiles, so it’s convenient to possess professionals to enjoy the overall game at any place. That’s all; the brand new mobile version will stream from that point, and you will probably feel you used to be to relax and play for the-software the whole day. The reason is effortless – LuckyLand’s mobile type excellent sufficient, as well as you should do is would a merchant account and you will gamble in the portrait means. There can be a desktop computer form of this site, however, regardless of all of that, I enjoyed to tackle to your mobile without even having to install the fresh new software, and i play with an android os tool. The fresh new online slots try ruled of the pre-developed random count machines.<\/p>\n

Inside added bonus round, the newest multiplier ladder will not reset between spins, and you can a great \ufffdFull Online\ufffd feature is also at random cause so you’re able to brush all of the fish multipliers currently on the the newest reels for one massive payment Such as, any spin can be end in the new Fantasy Miss Jackpot admission, providing participants a try from the five modern tiers, for instance the Super Jackpot hence vegetables at the \ufffd2 million. Fish symbols bring immediate cash viewpoints and are also collected at random inside the beds base games or immediately inside Totally free Revolves bullet whenever they achieve the bottom of grid. Calm down Playing brings a good 5?four \ufffdWays\ufffd free online position slot with a focus on high-regularity jackpot potential. While the twenty-three,000x maximum victory is actually conservative as compared to the co-workers recently, the brand new % RTP and you will average volatility enable it to be a great long-term position readily available for stretched classes and milling South carolina\/GC.<\/p>\n

Today, that have members getting wholly subject to the newest whims regarding Woman Luck, there isn’t any sure-fire gameplay form right here that will guarantee victories. Really, sadly, there’s absolutely no Fortunate Duck jackpot available, whether modern otherwise. Right here, users have to shoot a-row out of bobbing ducks so you’re able to winnings multiplier bonuses or use of the major Currency controls where massive multiplier incentives is available. The newest duck firing spread symbol triggers an even more fun Lucky Duck added bonus that generate members nearly faith they are inside a county reasonable. The entire appearance and feel try Asian, hence effect is actually reinforced because of the type of symbols viewed contained in this on the internet position, and songs, that is vibrant and you can chirpy enough to moving to. All of it is determined below an obvious heavens while is almost smelling sunlight shining into the lawn.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. professionals seeking pleasing gameplay, fast crypto payouts, and you can grand acceptance incentives The newest paytable shows ten important plus twenty three advanced signs in the Lucky Duck online position for real money games. Do you want to test your fortune from the chill-looking position games in the GAMEROOM?\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-111405","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111405","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=111405"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111405\/revisions"}],"predecessor-version":[{"id":111408,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111405\/revisions\/111408"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=111405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=111405"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=111405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}