/* 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":48899,"date":"2026-05-20T12:28:30","date_gmt":"2026-05-20T12:28:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=48899"},"modified":"2026-05-20T12:28:31","modified_gmt":"2026-05-20T12:28:31","slug":"bringing-extended-potential-to-own-wins-since-the-wilds-stick-to-the-fresh-reels-having-multiple-spins","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bringing-extended-potential-to-own-wins-since-the-wilds-stick-to-the-fresh-reels-having-multiple-spins\/","title":{"rendered":"Bringing extended potential to own wins since the wilds stick to the fresh reels having multiple spins"},"content":{"rendered":"

From the Why don’t we Enjoy Slots, searching toward no-deposit position games, which means your ports might be appreciated in the 100 % free enjoy mode, very you certainly do not need to even contemplate paying their wages. This is needless to say very a lot of and you can unpleasant, especially when their mailbox gets spammed which have insignificant promotional adverts and you can worthless desired has the benefit of. The leading app builders, such as NetEnt, Yggdrasil, and Microgaming have begun developing the slot game as a result of HTML5 tech. And then make some thing since much easier that you could, you’ll be able to observe that all 100 % free slot video game i have for the our web site are going to be utilized out of just about any internet browser you could remember.<\/p>\n

Practical Enjoy harbors is famous to have appointment high standards, giving a varied and you can engaging collection liked by bettors all over the world. Playing totally free slots on the internet offers the chance to select the game’s unique procedures and you may special features without any economic chance. Therefore in reality, might nevertheless be depositing and withdrawing real value, although not, the latest gameplay makes use of the fresh digital gold coins instead. You still never be to tackle personally with your own transferred money, as an alternative you will purchase virtual gold coins and rehearse these rather. You could play near to most other players, however, you happen to be playing and you will winning an online currency, instead of real money.<\/p>\n

All of it began which have “Huge Trout Bonanza”, in which players subscribe a cheerful fisherman for the a quest so you can reel for the large gains. Boosting the opportunity of bigger wins by allowing more symbol suits compared to amount of reels. Staying game play erratic and you will interesting, with unexpected bonuses which can significantly improve gains.<\/p>\n

The reduced the brand new volatility, more sometimes it will pay and decrease the wins<\/h2>\n

You will have full use of our entire library from free ports trial into the both apple’s ios and you may Android equipment, which means that your favourite headings will always be close at hand. All duck duck bingo<\/a> of our platform is made which have cellular pages in mind, to see smooth game play whether you are playing with a smart device or a capsule. Additionally access private bonuses, loyalty benefits, and tournaments one to in free enjoy means. Real-currency enjoy form real victories-be it a moderate commission otherwise a lives-altering jackpot. Fast-paced betting that have instantaneous deposits and quickest detachment moments inside the.<\/p>\n

“An enthusiastic evocative and altogether lovely conjuring of one’s consuming nature off more youthful love…” An early woman have the opportunity to conserve the new passion for her lifetime when she learns that combine-tape they made together can be transport their particular back in its history. A young woman enjoys an opportunity to cut the new passion for their lifestyle whenever she learns your mix-recording it… The fresh different try modern jackpot extra rounds, that you could not be able to cause. With these bonus even offers, there can be a financial partnership even though there is not an initial cost. Up to 3 hundred revolves over twenty three big date several months of very first put & purchase off ?ten.<\/p>\n

That have preferred progressive jackpot game, make a funds put to face so you can victory the newest jackpot honors! Have fun with local casino bonus currency to try out no deposit ports for free yet win a real income. Shot the features as opposed to risking their dollars – gamble at the most well-known 100 % free slots. ?? Gold & eco-friendly colour strategies ?? Horseshoes, pots away from gold, & happy clover signs App organization keep starting games predicated on these types of themes that have enhanced features and you may graphics.<\/p>\n

Whammy Cash showcases credit signs on base online game when you’re Whammy Wilds provides users chasing after around 4X multipliers. Both templates element a forward thinking hold-and-respin extra and you can a chance to open more whammy awards from the completing the whole monitor. Realize you into the social network \ufffd Each day listings, no-deposit incentives, the fresh slots, and Show their victories on the Practical Gamble harbors, score a different window of opportunity for winning having Gambling establishment Master! Gambling establishment.guru is actually an independent supply of details about online casinos and you will gambling games, perhaps not subject to any gambling user.<\/p>\n

Maximize such gambling establishment bonus also offers while playing on the web to extend their gameplay and you can boost your chances of effective as opposed to spending most. Never ever spend more than you can afford to get rid of, actually at the best ?one deposit online casinos. For each icon rotates another type of amount just in case your drive your own chance off to the right that, it could very pay back.<\/p>\n

Five Force Your Fortune symbols pays from next higher earnings, twelve,five hundred coinsbined for the extra features, this is an excellent online game just in case you like the newest thrill of having the opportunity to bet it-all to the a happy spin of your own reels. You will go through the new thrill from hitting they larger from the ports when you find yourself avoiding landing to the good Whammy and you can dropping all of your winnings. The latest Why don’t we Play Harbors Site provides the latest launches to be certain that you will be constantly agreeable that have interesting the fresh releases or the latest successful streak.<\/p>\n

Just before gaming that have real money, enjoy totally free ports to familiarise your self having the games works<\/h2>\n

This may are very different sometime with regards to the slot, but it’s not all one complicated. One which just force the latest spin key into the a slot machine, you have to lay the amount of your choice. When you’re all harbors can also be lead to one another big and small gains, volatility is usually a better sign of how the slot have a tendency to getting than RTP.<\/p>\n

People who achieve the greatest twenty three metropolitan areas earn 100 % free coins, and you will towns 1 to help you 20 qualify for the fresh Competition out of Champions, which awards a whole lot larger awards! Come to a serious milestone and be eligible for 100 % free gold coins, bingo golf balls, Honey Bucks, plus pleasing shocks! Profit more totally free gold coins, private ports, party prizes, expensive diamonds and a whole lot. SciPlay’s mobile playing technology produces this gambling enterprise feel easy and extra fun. Never be happy with below an informed 100 % free casino ports. Jackpot Class is actually loaded with bonuses, totally free spins, free coins, and lots of snacks.<\/p>\n

A slot’s repay rates, otherwise return to player (RTP), is where much a player can expect to keep of the money in accordance with the mediocre net gains. One or two, you may have to enjoy max bet so you’re able to qualify for certain honours, for instance the progressive jackpot. You ought to simply use not far you’ll be able to lose. Oftentimes, it’s just at random awarded at the conclusion of a chance, and you can need certainly to \ufffdBet Maximum\ufffd so you’re able to meet the requirements. An excellent slot’s biggest selling point aside from the jackpot, becoming one of several best position online game for the high RTP and you can complete theme, will be bonus features. And if you are playing a position with twenty five paylines as well as your total bet is actually $5.00, for every payline might have a value of $0.20.<\/p>\n","protected":false},"excerpt":{"rendered":"

From the Why don’t we Enjoy Slots, searching toward no-deposit position games, which means your ports might be appreciated in the 100 % free enjoy mode, very you certainly do not need to even contemplate paying their wages. This is needless to say very a lot of and you can\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-48899","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/48899","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=48899"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/48899\/revisions"}],"predecessor-version":[{"id":48900,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/48899\/revisions\/48900"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=48899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=48899"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=48899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}