/* 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":19001,"date":"2026-05-13T07:50:16","date_gmt":"2026-05-13T07:50:16","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=19001"},"modified":"2026-05-13T07:50:19","modified_gmt":"2026-05-13T07:50:19","slug":"once-your-membership-could-have-been-confirmed-your-own-benefits-is-going-to-be-instantaneously-added-to-your-bank-account","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/once-your-membership-could-have-been-confirmed-your-own-benefits-is-going-to-be-instantaneously-added-to-your-bank-account\/","title":{"rendered":"Once your membership could have been confirmed, your own benefits is going to be instantaneously added to your bank account"},"content":{"rendered":"

Even with making a tiny put, of numerous casinos on the internet promote a welcome added bonus including extra spins and other advantages to your chose video game. It enjoys rewarding campaigns including greeting incentives, cashback even offers, put bonuses, and you may an important totally free revolves incentive to make use of along side platform’s variety of slot titles. Free 10 lb no deposit incentives give a good possible opportunity to was online casinos as opposed to expenses your own money.<\/p>\n

The brand new T&Cs regarding no deposit incentives provides probably a impact on the worth of the newest campaign compared to any other type from gambling enterprise bring. Take a look at listing of required bonuses on the the web site to see the only you desire.<\/p>\n

It is vital for all of us your gambling enterprises towards our very own number are really easy to have fun with. Actually talking, i’ve a whole set of facets to be checked out just before the new gambling enterprise will get all of our desire. You could with confidence prefer the networks over and play they free of charge with a given extra.<\/p>\n

The maximum cashout lies in earnings in the 100 % free spins. Here, you will find whether you’re a champ of your day-after-day totally free spins by just opening the qualified gambling enterprise games. Just join, choose during the through the offers loss, and you can open one qualified position. Lots of Uk casinos on the internet now promote this type of incentives – constantly since the possibly a tiny amount out of incentive money or good group away from 100 % free revolves on the chosen slots. If you’ve ever stepped past a stands giving out 100 % free delicacies, otherwise become passed a freebie in the a football meets, you currently comprehend the appeal of a no-put gambling enterprise bonus. Fortunate VIP adds an everyday spin-the-wheel prize near the top of its put incentives.<\/p>\n

I thoroughly see the brand new user interface and you will complete consumer experience, examining switch position and you may webpages efficiency<\/h2>\n

While some are suspicious of these reasonable minimum dumps, it’s worthy of listing you to people can benefit greatly away from a good ? Roy Spins app<\/a> 5 deposit incentive. New casinos on the internet promote incentives to have minimum dumps while the reasonable because the ?5 to attract the brand new professionals to their brand and video game. You’ll find various other commission strategies in the provide, allowing folks to determine the preferred you to. Members can choose from harbors which have 12 reels, 5 reels, or put ?5 get ?20 free slots. ?5 put Bingo is a fantastic chance during the best online casinos.<\/p>\n

Very ?5 put gambling enterprises Uk give such preferred titles having reasonable minimal bets, making them perfect for people whom love its funds. Forgotten such work deadlines setting losing the bonus and you can one associated earnings ?5 put local casino bonuses might require achievement within a month, when you find yourself 100 % free revolves have a tendency to expire in the day in order to 1 week. Limitless cashouts provide even more flexibility to keep that which you win Very ?5 deposit local casino bonuses cap cashouts around ?100 or ?2 hundred.<\/p>\n

When you find yourself playing with extra finance, you may possibly have a max number you could potentially wager on a form of video game. It’s easy to skip as a consequence of fine print however when they relates to offers during the casinos, you need to understand what you’re deciding on. 20 lb no-deposit extra offers are often easy so that as a lot of time as you have fun with one of the best website and study the latest T&Cs, you will not end up in one traps. When you are happy regardless if, you’re going to get a totally free 20 lbs extra with no put required and many totally free revolves above! Since there are too many web based casinos immediately, internet try aggressive and want to draw in new customers.<\/p>\n

Debit cards would be the easiest choice within good ?5 minimum put gambling establishment in britain – these include easy and usually qualified to receive invited bonuses. Need to know which ones are worth downloading? We find deposit limitations, facts monitors, losings limitations, big date outs, plus the substitute for mind-prohibit. We see stream minutes, how simple the new reception should be to navigate, and if or not online game release versus points. Very easy to play, zero experience requisite, plus the perks will likely be grand.<\/p>\n

This site spends SSL encoding to guard private and economic pointers, a standard habit having secure online casinos. Doing work because 2020, the platform concentrates on bringing a professional and you will available services, which have features built to suit various other member choices. Subscribed because of the reliable regulators, it provides an easy gaming sense for those seeking gamble classic and modern headings. Latest Casino Video game No-deposit Incentives 2026, all new no deposit gambling establishment bonuses which can be found having Gambling establishment Video game. Local casino Game is not providing any welcome incentives, check out this type of great local casino bonuses rather<\/p>\n

The fresh application provides the majority of a comparable games and you will campaigns because the newest desktop computer site, as well as Sky Vegas’ exclusive live specialist titles. Sure, of a lot gambling enterprises bring a free 5 pound no deposit mobile gambling establishment incentive restricted to starting the new software. Nonetheless, according to the local casino products, professionals can see them indexed included in a free of charge ?5 no deposit casino added bonus. Finally, we favor every 5 lb 100 % free bonus no deposit centered on exactly how clear the platform is through all the info. 2nd, i see perhaps the detachment restrict helps to make the incentive value stating. Incentives are only practical whether they have realistic laws and regulations that can cause withdrawable money.<\/p>\n

We have noted an educated PayPal gambling enterprise websites in order to make sure you get the new cellular casinos’ desired incentives for those who make use of this approach to put. Remember that the maximum cell phone statement deposits are ?thirty every day, and you will must prefer an alternative financial method of withdraw your incentive payouts. You can pick from several payment methods whenever playing for the mobile casinos. There are some different types of on the web slot online game that you can play on cellular gambling enterprises, and you will a huge selection of templates available.<\/p>\n

Such online game are derived from fortune and are totally subject to the fresh new RNG (Arbitrary Count Creator)<\/h2>\n

Yes, we remain all of our listing upgraded so when we find the brand new no-deposit free revolves, i put these to all of our page so you have usually got availability to your current now offers. Payouts will likely be paid off since cash or you can always receive even more 100 % free wagers or wager credit. 100 % free choice no deposit incentives is even offers where you can explore totally free wagers otherwise totally free revolves, without having to deposit any very own financing. Our very own recommendations stress search terms and you will requirements, very you might be fully informed whenever joining otherwise saying has the benefit of, assisting you to choice sensibly.<\/p>\n","protected":false},"excerpt":{"rendered":"

Even with making a tiny put, of numerous casinos on the internet promote a welcome added bonus including extra spins and other advantages to your chose video game. It enjoys rewarding campaigns including greeting incentives, cashback even offers, put bonuses, and you may an important totally free revolves incentive to\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-19001","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/19001","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=19001"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/19001\/revisions"}],"predecessor-version":[{"id":19002,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/19001\/revisions\/19002"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=19001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=19001"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=19001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}