/* 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":129979,"date":"2026-05-25T13:32:09","date_gmt":"2026-05-25T13:32:09","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=129979"},"modified":"2026-05-25T13:32:12","modified_gmt":"2026-05-25T13:32:12","slug":"canadian-users-get-bonuses-on-their-birthdays-including-100-free-revolves-put-suits-and-you-will-commitment-things","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/canadian-users-get-bonuses-on-their-birthdays-including-100-free-revolves-put-suits-and-you-will-commitment-things\/","title":{"rendered":"Canadian users get bonuses on their birthdays, including 100 % free revolves, put suits, and you will commitment things"},"content":{"rendered":"

Countess Dollars\ufffd is just one of the current real cash on the internet pokies there are!<\/h2>\n

Once you log on and you can play video game all of the 1 day, Jackpot Area local casino offers individualized rewards based on your own wagering patterns. The new prize will be free spins or in initial deposit extra to help you raise your winnings at this online casino in the Canada. As part of Jackpot City’s welcome incentive, Canadian players discovered a great 100% put matches as high as C$eight hundred on their first four places, totalling C$1,600. The website style is something that users are aware of in the event the it regular iGaming platforms.<\/p>\n

For every single form of baccarat online provides a thrilling gambling feel because of the providing to different to experience looks and private tastes. That being said, the assistance is great, the brand new assortment and you can top-notch game are great and they’ve got enough currencies and you may dialects while making people user from all around the world happy. It\ufffds an embarrassment by using large wagering into the extra has the benefit of, the latest promotions is actually little more than additional money to get rid of, unlike one genuine danger of bringing any winnings. There might never be as numerous position video game as numerous from the newest casinos available to choose from because they just have that software supplier, although games is actually of high quality and some are great fun. Plus for those who today check out its Vegas case discover a good band of NetEnt ports available plus Gonzo’s Journey and Dry or Real time. Placing from the an internet local casino is an easy and simple procedure that provides an abundance of options for players to love the betting sense.<\/p>\n

That have timely and safe financial tips like Interac, Charge, Bank card, and you will trusted e-wallets, the working platform assures easy deposits and withdrawals, and make their betting feel easy from start to finish. Canadian people like JackpotCity because of its impressive variety of games, good offers, and you can reliable profits. Getting into JackpotCity Local casino Canada setting typing probably one of the most trusted, pleasing, and you will fulfilling online gaming destinations in the united kingdom. Much benefit from the deposit matches also the main benefit wheel twist all 4 instances. Jackpot Area helps by allowing pages to create put constraints you to cannot be surpassed, or worry about-exclusion episodes where you are locked out of your make up an effective given months.<\/p>\n

Which have simple online streaming, entertaining talk solutions, and you can safe betting have, JackpotCity ensures users in the Canada gain benefit from the adventure of real-big date gambling enterprise motion without needing to go to a secure-depending gambling establishment. JackpotCity https:\/\/uk-bingo-casino.co.uk\/en-gb\/<\/a> Real time Broker Gambling establishment provides a real, real-big date betting feel to professionals across Canada. Canadian professionals can enjoy customized extra falls, competition honours, and you may each day fits bonuses tailored on their playing activity. The fresh new gambling establishment already even offers perhaps one of the most competitive allowed bonuses during the Canada, providing newcomers a chance to claim to plenty inside matches incentives as well as free spins on the well-known position online game.<\/p>\n

After you make the absolute minimum deposit regarding $20 thru crypto, you can claim a great 150% match up to $1,500 twice, that is plenty of on how best to explore your preferred headings. Slot machine game activity is a little unlike classic slots inside that it uses far more multimedia, it is therefore more aesthetically appealing. And if you are just after epic online slots games motion, you’ll definitely want to below are a few Mega Moolah, one of several planet’s very iconic modern jackpot video game. Professionals can also be talk about innovative distinctions including Multifire Roulette and you will Perfect Means Blackjack, for each and every adding a new twist to the classic video game. Whether you are chasing after large perks otherwise enjoying continuous enjoy, fu88 will be your place to go for challenging activity and satisfying times.<\/p>\n

From the Jackpot Urban area Casino, discover the outdated favorite Jacks otherwise Best, Deuces Insane and all Aces, and you can Casino poker Pursuit, one of most other dependably strong Electronic poker games options. There are particular huge victories with this online game that will be epic during the playing society. On most popular type, Dominance Alive, users go into a real time and you can CGI crossbreed environment, in which a wheel off fortune try spun. Near the top of their own themes, you’ll find various familiar franchises and prominent brand slots, for example Online game of Thrones, Hellboy, Maid of honor, and you will Terminator, providing several of our favorite shows and you will movies to your slot’s display. We should instead declare that it is Microgaming in addition to their amazing range of the finest a real income ports on line that make Jackpot Area Gambling establishment what they are.<\/p>\n

Although not, that’s all you’ll find in terms of RNG-pushed desk online game, because the baccarat, casino poker and you will dice game are merely readily available while the real time casino versions. When you need to improve chances of profitable, browse the casino’s Megaways range, which includes popular headings particularly Large Trout Bonanza Megaways and you will Shamrock Holmes. The latest free revolves was appreciated at 10p for every, and you can a good 30x wagering criteria relates to winnings. A great 50x betting requirements relates to incentive fund, since carry out weighting standards, but there aren’t any betting requirements towards free twist winnings.<\/p>\n

Completely licensed and you can regulated, Jackpot city guarantees a secure and reliable gambling sense. Bring this special give now and start the gambling trip with extra credits to explore all of our enjoyable video game. Subscribe Jackpot urban area and enjoy an effective 100% meets in your first put, increasing their finance instantly. To own smaller access to your own winnings, favor elizabeth-purses or inform in order to basic-class VIP position.<\/p>\n

The latest quality of sound was sharp and you may with no unnecessary record music, while the three-dimensional animations are-laid out and obvious. That have for example an array of online game, it is easy both for the fresh and you will experienced people to get a video game to match its height and you may taste. They’ve been the listed in the brand new table less than, and you’ll as well as discover very played games within Jackpot Town.Their most recent game and your extremely starred are automatically saved inside the newest casino lobby, to enjoy immediately. Obviously, discover baccarat, casino poker, roulette, and much more about how to gamble.<\/p>\n

Jackpot area even offers an incredible directory of game you to definitely keep me personally captivated<\/h2>\n

Fine print pertain, it is therefore informed to check the latest promotions web page having info. Regular campaigns, respect advantages, and you can an excellent VIP program render ongoing bonuses having returning members, guaranteeing an advisable sense every time they log in. Powered by Microgaming, one of many gaming industry’s top application team, the brand new gambling enterprise ensures large-top quality betting with charming graphics and you will smooth gameplay. The new local casino operates underneath the permits out of legitimate bodies, making sure a secure and reasonable gambling ecosystem. Accessibility over 500 casino games, immersive live dealer tables, and you may wagering-all optimised to own Android, ios, or people cellular web browser on the biggest gambling experience.<\/p>\n

Collect the newest high-worthy of moon symbols to build the earnings and you will performs your own ways for the one of the game’s nice jackpots. Having Running Reels\ufffd, large totally free spins, and you can good-looking multipliers, you’ll be the latest jealousy of your own Gods!<\/p>\n

A knowledgeable spending online slots games routinely have higher RTP proportions, good added bonus has, otherwise jackpot possible. Gains are not based on time of day, amount of people, otherwise early in the day results. That have a cool soundtrack, Bison Moonlight is a great betting experience in the rating-wade. Bison Moonlight\ufffd has the benefit of a vibrant betting experience with have such as Hook&Win\ufffd, Free Revolves, a win Booster\ufffd, and up to help you four potential jackpot prizes.<\/p>\n","protected":false},"excerpt":{"rendered":"

Countess Dollars\ufffd is just one of the current real cash on the internet pokies there are! Once you log on and you can play video game all of the 1 day, Jackpot Area local casino offers individualized rewards based on your own wagering patterns. The new prize will be free\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-129979","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129979","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=129979"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129979\/revisions"}],"predecessor-version":[{"id":129999,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129979\/revisions\/129999"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=129979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=129979"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=129979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}