/* 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":120368,"date":"2026-05-25T13:11:58","date_gmt":"2026-05-25T13:11:58","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=120368"},"modified":"2026-05-25T13:11:59","modified_gmt":"2026-05-25T13:11:59","slug":"canadian-members-rating-bonuses-on-the-birthdays-particularly-totally-free-revolves-put-suits-and-you-will-commitment-points","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/canadian-members-rating-bonuses-on-the-birthdays-particularly-totally-free-revolves-put-suits-and-you-will-commitment-points\/","title":{"rendered":"Canadian members rating bonuses on the birthdays, particularly totally free revolves, put suits, and you will commitment points"},"content":{"rendered":"

Countess Cash\ufffd is one of the most recent a real income on the internet pokies discover!<\/h2>\n

After you visit and enjoy video game most of the a day, Jackpot Area local casino offers individualized benefits predicated on your wagering habits. The latest prize is going to be 100 % free spins or in initial deposit added bonus to help you enhance your payouts at this on-line casino for the Canada. As part of Jackpot City’s welcome added bonus, Canadian players receive a 100% deposit meets as much as C$400 to their first four places, totalling C$1,600. The website layout is one thing one to pages understand in the event that it constant iGaming systems.<\/p>\n

Each style of baccarat on the web delivers an exciting playing sense by the providing to different to try out styles and private tastes. Having said that, the assistance is good, the fresh assortment and quality of video game are great and they have enough currencies and dialects and make any athlete from all over the country happier. It is a pity by using highest betting to your added bonus has the benefit of, the new advertisements is actually little more than additional money to reduce, in place of people actual danger of getting any payouts. There might not be as much slot game as much away from the fresh new gambling enterprises available while they simply have you to app vendor, although video game is actually of top quality and many are perfect fun. Plus if you now check out its Las vegas tab there are an excellent selection of NetEnt ports available and Gonzo’s Journey and you can Deceased otherwise Live. Deposit at the an internet gambling establishment is a simple and easy procedure that provides loads of alternatives for users to enjoy their gambling sense.<\/p>\n

That have fast and you will safe banking steps including Interac, Charge, Bank card, and leading age-wallets, the platform assurances smooth deposits and distributions, and make their playing experience effortless from start to finish. Canadian professionals love JackpotCity for its epic kind of video game, ample advertising, and you can credible payouts. Engaging in JackpotCity Gambling enterprise Canada function typing perhaps one of the most trusted, pleasing, and you may fulfilling on the web gaming attractions in the united states. Far gain benefit from the deposit suits too the advantage wheel spin all 4 times. Jackpot City assists by allowing profiles to create put limits you to cannot be surpassed, or notice-different symptoms what your location is locked from your own account fully for a specified period.<\/p>\n

Having simple streaming, interactive speak solutions, and you may Spin Of Glory CA<\/a> safer playing enjoys, JackpotCity guarantees participants within the Canada benefit from the excitement from actual-day gambling enterprise motion without needing to see an area-established gambling enterprise. JackpotCity Alive Broker Local casino brings a genuine, real-day playing experience so you can professionals all over Canada. Canadian players will enjoy custom extra drops, tournament honors, and you will every day matches bonuses designed to their playing pastime. The newest local casino currently even offers one of the most aggressive acceptance incentives for the Canada, offering novices an opportunity to allege around thousands for the fits incentives in addition to free revolves to your prominent position game.<\/p>\n

When you create the very least put away from $20 through crypto, you might claim a great 150% match so you can $one,500 double, which is plenty of for you to explore your favorite headings. Casino slot games activity is a little unlike antique ports during the it uses a lot more media, it is therefore far more aesthetically appealing. So if you’re shortly after legendary online slots games action, you will have to here are a few Super Moolah, among the world’s most renowned modern jackpot video game. Participants can be explore creative differences particularly Multifire Roulette and you will Best Means Blackjack, for every single including a different twist these types of vintage online game. Whether you’re going after large advantages or viewing continuous play, fu88 will be your destination for ambitious activities and you may fulfilling minutes.<\/p>\n

At Jackpot City Local casino, you will find the old favourite Jacks or Best, Deuces Crazy and all Aces, and Poker Pursuit, certainly one of most other dependably solid Video poker video game choice. There had been certain huge wins on this game that will be epic inside gaming community. From the most popular type, Dominance Real time, members enter a real time and you will CGI crossbreed environment, where a controls away from luck try spun. On top of her layouts, discover various common franchises and preferred brand harbors, such Game out of Thrones, Hellboy, Bridal party, and you may Terminator, providing some of the most popular suggests and you may video to the slot’s monitor. We must say that it\ufffds Microgaming and their unbelievable range of the finest a real income harbors on the internet that make Jackpot Area Local casino what they are.<\/p>\n

Although not, that’s it you can find with respect to RNG-driven desk games, as the baccarat, web based poker and you will chop online game are just readily available since live local casino brands. If you’d like to raise your probability of effective, investigate casino’s Megaways collection, which includes preferred titles particularly Large Trout Bonanza Megaways and you can Shamrock Holmes. The new 100 % free spins are valued during the 10p per, and you may good 30x betting demands applies to payouts. An excellent 50x betting demands applies to bonus loans, since the carry out weighting criteria, but there are no betting conditions on the 100 % free spin payouts.<\/p>\n

Fully licensed and you may controlled, Jackpot area assures a secure and you can reliable gaming feel. Grab this special bring now and commence their gambling trip with most credit to understand more about the exciting games. Join Jackpot urban area and revel in a great 100% matches on your basic put, increasing the money instantaneously. To have faster accessibility your earnings, like e-wallets otherwise inform to help you first-class VIP standing.<\/p>\n

The newest sound quality is actually sharp and you may without any way too many records looks, as well as the 3d animations are very well-discussed and clear. That have like a wide range of game, it’s easy for the fresh and you may knowledgeable people to get an effective games to fit its level and taste. These are generally all placed in the brand new dining table less than, and you may and select the really starred video game at Jackpot Town.Your most recent online game plus very played are immediately conserved inside the fresh new gambling establishment reception, in order to enjoy right away. Naturally, you will find baccarat, poker, roulette, and more on precisely how to gamble.<\/p>\n

Jackpot urban area has the benefit of a great variety of game that continue me captivated<\/h2>\n

Small print implement, making it advised to test the newest campaigns webpage to own details. Typical advertising, support rewards, and you may a VIP program render lingering bonuses to have returning users, guaranteeing a rewarding experience every time they log in. Powered by Microgaming, among the playing industry’s best application organization, the newest gambling enterprise guarantees highest-quality gaming having captivating graphics and you may smooth game play. The latest gambling establishment works underneath the permits of reputable bodies, guaranteeing a safe and fair gambling ecosystem. Availability over 500 online casino games, immersive live agent tables, and you will sports betting-all the optimised to have Android, apple’s ios, otherwise people mobile web browser to your greatest playing feel.<\/p>\n

Assemble the new high-worthy of moonlight symbols to build the earnings and you will performs your method for the one of several game’s nice jackpots. Having Moving Reels\ufffd, ample totally free spins, and you may handsome multipliers, you’ll end up the fresh new envy of your own Gods!<\/p>\n

An educated using online slots games routinely have large RTP percentages, strong added bonus possess, or jackpot prospective. Victories are not predicated on period, number of members, or prior abilities. With a trendy sound recording, Bison Moon is a superb betting feel regarding get-go. Bison Moon\ufffd offers a captivating gaming expertise in possess such as Hook&Win\ufffd, Free Revolves, a profit Enhancement\ufffd, or more to help you five prospective jackpot honours.<\/p>\n","protected":false},"excerpt":{"rendered":"

Countess Cash\ufffd is one of the most recent a real income on the internet pokies discover! After you visit and enjoy video game most of the a day, Jackpot Area local casino offers individualized benefits predicated on your wagering habits. The latest prize is going to be 100 % free\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-120368","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/120368","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=120368"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/120368\/revisions"}],"predecessor-version":[{"id":120370,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/120368\/revisions\/120370"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=120368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=120368"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=120368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}