/* 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":127132,"date":"2026-05-25T13:28:52","date_gmt":"2026-05-25T13:28:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=127132"},"modified":"2026-05-25T13:28:52","modified_gmt":"2026-05-25T13:28:52","slug":"canadian-users-get-bonuses-on-the-birthdays-like-100-free-spins-put-fits-and-you-will-loyalty-points","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/canadian-users-get-bonuses-on-the-birthdays-like-100-free-spins-put-fits-and-you-will-loyalty-points\/","title":{"rendered":"Canadian users get bonuses on the birthdays, like 100 % free spins, put fits, and you will loyalty points"},"content":{"rendered":"

Countess Dollars\ufffd is among the latest real cash online pokies you’ll find!<\/h2>\n

After you log in and play game every a day, Jackpot Area local casino has the benefit of personalized rewards centered on their betting designs. The fresh new award will be 100 % free spins otherwise a deposit incentive to help you enhance your earnings at that internet casino in the Canada. As part of Jackpot City’s invited bonus, Canadian users discover an effective 100% deposit matches all the way to C$eight hundred to their first four dumps, totalling C$one,600. This site build is something that profiles are aware of if the it regular iGaming systems.<\/p>\n

Per variety of baccarat on the internet provides a fantastic gambling feel by providing to various to tackle appearances and private tastes. Having said that, the support is good, the newest range and quality of games are perfect and they’ve got adequate currencies and you may languages making people pro from all over the world happier. It is an embarrassment that with large wagering towards bonus now offers, the brand new promotions are nothing more than more cash to shed, in place of any real chance of providing any earnings. There could never be as numerous position game as many off the latest gambling enterprises available to choose from because they simply have one application supplier, nevertheless the game is of high quality and lots of are good fun. In addition to if you today visit the Las vegas case you can find good set of NetEnt ports to choose from together with Gonzo’s Quest and you will Deceased otherwise Real time. Deposit at an internet gambling enterprise is a simple and easy processes that provides a good amount of alternatives for players to enjoy their gambling experience.<\/p>\n

With prompt and you will safe financial actions such as Interac, Visa, Charge card, and you may top elizabeth-purses, the working platform assurances easy places and you can distributions, making your own playing sense easy all of the time. Canadian professionals love JackpotCity for the epic sort of game, good promotions, and you may reliable payouts. Stepping into JackpotCity Gambling establishment Canada means entering probably one of the most trusted, exciting, and you can satisfying on the web gaming tourist attractions in the country. Much take advantage of the put suits as well the advantage controls spin all of the four circumstances. Jackpot Urban area assists by permitting pages to create put limitations that cannot be surpassed, or worry about-exception episodes where you’re closed from your own make up good specified period.<\/p>\n

With effortless streaming, entertaining talk options, and you can secure gambling have, JackpotCity assures users in the Canada gain benefit from the adventure off real-time casino action without needing to visit a land-dependent gambling enterprise. JackpotCity Alive Specialist Local casino delivers an actual, real-go out gaming experience so you’re able to professionals all over Canada. Canadian participants will enjoy customized incentive drops, contest prizes, and you will each day fits incentives tailored on their gambling interest. The latest gambling enterprise already offers one of the most aggressive welcome bonuses within the Canada, providing beginners a chance to allege up to thousands inside the fits incentives plus free spins to the preferred position game.<\/p>\n

When you generate the very least put of $20 through spinshake casino online<\/a> crypto, you could potentially allege an excellent 150% complement so you’re able to $1,five-hundred double, that’s plenty of on precisely how to speak about your favorite titles. Slot machine activity is a bit distinctive from classic harbors during the it spends more media, it is therefore more aesthetically tempting. And if you’re immediately after legendary online slots games actions, you possibly need to below are a few Super Moolah, among the world’s extremely renowned modern jackpot video game. Participants can be speak about innovative differences particularly Multifire Roulette and you will Perfect Means Black-jack, for every single including another spin to the antique games. Regardless if you are chasing after large perks otherwise enjoying nonstop play, fu88 will be your destination for committed entertainment and you will fulfilling minutes.<\/p>\n

During the Jackpot Town Local casino, you can find the existing favourite Jacks otherwise Best, Deuces Insane as well as Aces, and Web based poker Quest, one of almost every other dependably solid Video poker video game choice. There have been particular large victories about online game which can be epic for the betting community. Regarding the preferred version, Dominance Real time, professionals get into an alive and you will CGI crossbreed ecosystem, in which a wheel out of luck is actually spun. At the top of their themes, you can find a selection of common franchises and you will well-known brand ports, like Game off Thrones, Hellboy, Maid of honor, and you will Terminator, providing a number of our favorite suggests and you can video clips to the slot’s screen. We need to point out that it\ufffds Microgaming and their amazing range of the best real cash slots online which make Jackpot City Gambling establishment what they are.<\/p>\n

Although not, that’s all you will find regarding RNG-powered desk game, because the baccarat, casino poker and you may dice game are merely offered because real time casino versions. When you need to enhance your probability of successful, have a look at casino’s Megaways range, featuring prominent headings like Large Bass Bonanza Megaways and you can Shamrock Holmes. The newest 100 % free revolves try respected within 10p for each and every, and you can an excellent 30x wagering criteria applies to profits. A great 50x betting criteria pertains to extra money, since would weighting criteria, but there are not any wagering criteria for the free spin earnings.<\/p>\n

Completely registered and you may controlled, Jackpot area guarantees a safe and you can credible playing sense. Get so it special provide now and start the betting trip with most credit to explore our enjoyable game. Sign-up Jackpot city appreciate a 100% match on your own basic put, increasing your own loans instantaneously. To own faster entry to the earnings, prefer elizabeth-purses otherwise inform to earliest-classification VIP condition.<\/p>\n

The newest sound quality try sharp and you may with no a lot of history appears, and 3d animations are very well-laid out and you may obvious. Having including an array of games, it’s easy for both the latest and you will knowledgeable users to obtain a video game to suit the level and taste. They’re every listed in the brand new dining table less than, and you will in addition to discover the extremely starred game during the Jackpot Town.Your current video game along with your really starred try automatically saved in the the newest gambling enterprise reception, in order to gamble right away. Definitely, discover baccarat, casino poker, roulette, and many more on precisely how to gamble.<\/p>\n

Jackpot city also provides a great range of online game one to remain me amused<\/h2>\n

Terms and conditions use, so it’s informed to test the fresh new campaigns web page to possess information. Normal advertising, commitment advantages, and you can an effective VIP program give constant incentives to have going back users, making certain an advisable sense whenever they log in. Running on Microgaming, one of the playing industry’s best software team, the fresh new gambling enterprise ensures higher-top quality playing with captivating image and you will smooth game play. The fresh new gambling enterprise works according to the certificates away from reliable government, making sure a secure and you will reasonable playing environment. Availableness over 500 online casino games, immersive live agent dining tables, and wagering-all the optimised to own Android os, apple’s ios, or people mobile internet browser into the best gambling sense.<\/p>\n

Collect the fresh large-really worth moon icons to build up the profits and work the means towards among the game’s ample jackpots. Which have Running Reels\ufffd, good 100 % free revolves, and you can good-looking multipliers, you’re going to be the newest jealousy of your Gods!<\/p>\n

An informed spending online slots typically have large RTP percent, strong extra has, otherwise jackpot potential. Gains are not according to time, level of players, or earlier in the day performance. Which have a trendy sound recording, Bison Moon is a fantastic betting experience in the get-go. Bison Moonlight\ufffd offers a vibrant gaming experience with have particularly Hook&Win\ufffd, Totally free Spins, a winnings Enhancer\ufffd, and up so you’re able to five potential jackpot honors.<\/p>\n","protected":false},"excerpt":{"rendered":"

Countess Dollars\ufffd is among the latest real cash online pokies you’ll find! After you log in and play game every a day, Jackpot Area local casino has the benefit of personalized rewards centered on their betting designs. The fresh new award will be 100 % free spins otherwise a deposit\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-127132","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127132","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=127132"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127132\/revisions"}],"predecessor-version":[{"id":127134,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/127132\/revisions\/127134"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=127132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=127132"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=127132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}