/* 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":130280,"date":"2026-05-25T13:32:22","date_gmt":"2026-05-25T13:32:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=130280"},"modified":"2026-05-25T13:32:28","modified_gmt":"2026-05-25T13:32:28","slug":"canadian-participants-get-incentives-on-their-birthdays-particularly-totally-free-spins-deposit-matches-and-support-points","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/canadian-participants-get-incentives-on-their-birthdays-particularly-totally-free-spins-deposit-matches-and-support-points\/","title":{"rendered":"Canadian participants get incentives on their birthdays, particularly totally free spins, deposit matches, and support points"},"content":{"rendered":"

Countess Cash\ufffd is one of the most recent a real income on line pokies you’ll find!<\/h2>\n

After you join and you can enjoy games every a day, Jackpot City gambling establishment Ultra Casino<\/a> also offers custom benefits based on the wagering models. The fresh award are going to be free spins otherwise in initial deposit added bonus to improve profits at that internet casino in the Canada. As an element of Jackpot City’s desired bonus, Canadian members located good 100% put matches of up to C$400 on the earliest five deposits, totalling C$1,600. This site concept is one thing you to definitely profiles are aware of if the they repeated iGaming systems.<\/p>\n

Per type of baccarat on the internet provides a fantastic gaming feel from the catering to different to tackle looks and personal choice. With that in mind, the assistance excellent, the new assortment and you may top-notch video game are perfect and they have adequate currencies and languages and make any pro throughout the nation pleased. It is a shame by using high wagering to the added bonus also provides, the brand new advertising are nothing more than more cash to reduce, unlike people genuine chance of bringing people profits. There could never be as many position games as many from the new casinos around because they just have that software merchant, although online game try of top quality and many are good fun. Together with for those who today head to its Las vegas tab you’ll find an effective band of NetEnt slots available together with Gonzo’s Journey and you will Deceased or Live. Deposit in the an online casino is a simple and simple techniques which provides plenty of options for professionals to love its gaming feel.<\/p>\n

Which have quick and you can safer financial strategies including Interac, Visa, Charge card, and respected e-purses, the platform ensures simple deposits and you can distributions, and make their gaming sense effortless all of the time. Canadian professionals love JackpotCity because of its epic form of games, nice promotions, and reputable winnings. Getting into JackpotCity Local casino Canada function typing one of the most leading, fascinating, and you can fulfilling on line playing tourist attractions in the nation. Much take advantage of the put fits too the advantage wheel twist all of the 4 circumstances. Jackpot Town helps by allowing pages to set deposit restrictions you to can not be surpassed, or care about-difference attacks where you stand closed from the be the cause of good given several months.<\/p>\n

With smooth streaming, entertaining cam options, and secure gaming have, JackpotCity assurances members inside Canada benefit from the excitement from genuine-date local casino motion without the need to see an area-founded local casino. JackpotCity Live Specialist Gambling enterprise provides a real, real-date gaming feel to members around the Canada. Canadian participants can enjoy personalized incentive drops, event honours, and you may each day meets bonuses tailored to their betting passion. The newest casino already even offers one of the most competitive welcome incentives for the Canada, giving newbies an opportunity to claim around many during the match bonuses along with totally free revolves towards well-known slot game.<\/p>\n

Once you build the very least put off $20 thru crypto, you might claim an effective 150% complement to help you $one,500 twice, which is plenty of for you to discuss your favorite headings. Slot machine game activity is a bit different from vintage ports during the so it spends much more media, therefore it is much more visually enticing. So if you’re just after epic online slots activity, you will definitely have to check out Super Moolah, among world’s extremely iconic modern jackpot game. People can be speak about innovative distinctions for example Multifire Roulette and you may Best Strategy Black-jack, each including a different sort of twist these types of antique video game. Whether you are going after large perks or watching continuous play, fu88 is your place to go for challenging amusement and you can satisfying minutes.<\/p>\n

At Jackpot Urban area Local casino, there are the old favourite Jacks otherwise Best, Deuces Wild as well as Aces, and you will Casino poker Search, among other reliably solid Electronic poker online game alternatives. There were certain larger wins with this games which can be legendary during the gaming people. Regarding the top version, Dominance Real time, users go into a real time and you will CGI hybrid environment, in which a wheel of chance is spun. Towards the top of her themes, you will find a variety of common companies and you may well-known brand slots, including Game away from Thrones, Hellboy, Bridesmaids, and you can Terminator, delivering a few of well known reveals and you will videos to your slot’s screen. We need to claim that it\ufffds Microgaming in addition to their unbelievable range of the greatest real cash slots on line that make Jackpot Urban area Gambling establishment what they are.<\/p>\n

But not, that’s all you can find with regards to RNG-driven dining table online game, because the baccarat, web based poker and chop video game are only readily available because real time gambling enterprise types. If you wish to improve your likelihood of profitable, investigate casino’s Megaways collection, which features prominent headings such as Big Trout Bonanza Megaways and you can Shamrock Holmes. The newest 100 % free spins try valued from the 10p for every single, and you can good 30x betting requisite applies to winnings. An excellent 50x betting demands relates to extra funds, as the would weighting standards, however, there are not any betting requirements for the free spin profits.<\/p>\n

Completely registered and you will managed, Jackpot area assurances a secure and you will legitimate gaming sense. Capture so it special render now and start your betting journey with additional credits to explore the fascinating video game. Register Jackpot urban area and take pleasure in a great 100% suits on the very first deposit, increasing their money quickly. Having shorter use of your own profits, prefer elizabeth-wallets otherwise revise to first-category VIP reputation.<\/p>\n

The latest quality of sound is actually clean and you can with no unnecessary history sounds, and three-dimensional animations are very well-defined and you can clear. Which have for example a variety of game, it isn’t difficult for both the fresh and knowledgeable players to obtain an excellent games to fit their top and you can taste. They are most of the listed in the latest dining table lower than, and you will probably in addition to select the extremely played online game at Jackpot City.Your newest online game and your very starred try instantly saved within the the new local casino reception, to help you play in an instant. Naturally, there is baccarat, poker, roulette, and much more about how to play.<\/p>\n

Jackpot urban area now offers an amazing variety of online game one to continue me amused<\/h2>\n

Terms and conditions use, making it informed to check on the newest campaigns web page to have information. Regular advertisements, support rewards, and you can an excellent VIP system render ongoing bonuses to possess returning people, making certain a rewarding sense each time they sign in. Running on Microgaming, one of many gambling industry’s top app providers, the fresh gambling enterprise assurances high-top quality playing having captivating graphics and seamless gameplay. The new local casino works underneath the certificates from reliable bodies, making sure a safe and fair gaming environment. Availableness more than 500 online casino games, immersive alive agent tables, and you may wagering-all the optimised to possess Android, ios, or people mobile internet browser for the biggest betting experience.<\/p>\n

Collect the latest high-value moonlight signs to build up your payouts and you can functions their ways on the one of the game’s big jackpots. With Moving Reels\ufffd, nice 100 % free revolves, and you can good looking multipliers, you’ll end up the fresh new envy of Gods!<\/p>\n

A knowledgeable using online slots typically have large RTP percent, strong extra enjoys, otherwise jackpot possible. Wins aren’t centered on time, amount of users, otherwise past results. Having a cool soundtrack, Bison Moon is a great betting sense regarding rating-wade. Bison Moon\ufffd also provides a captivating gambling expertise in have like Connect&Win\ufffd, 100 % free Spins, an earn Booster\ufffd, and up to help you four possible jackpot honours.<\/p>\n","protected":false},"excerpt":{"rendered":"

Countess Cash\ufffd is one of the most recent a real income on line pokies you’ll find! After you join and you can enjoy games every a day, Jackpot City gambling establishment Ultra Casino also offers custom benefits based on the wagering models. The fresh award are going to 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-130280","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130280","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=130280"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130280\/revisions"}],"predecessor-version":[{"id":130300,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130280\/revisions\/130300"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=130280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=130280"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=130280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}