/* 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":139955,"date":"2026-06-10T16:30:10","date_gmt":"2026-06-10T16:30:10","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=139955"},"modified":"2026-06-10T16:30:10","modified_gmt":"2026-06-10T16:30:10","slug":"sankra","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/sankra\/","title":{"rendered":"Licensed Casino Sankra Casino Provides Exclusive Deals for UK Players"},"content":{"rendered":"
\n

For UK players who seek a safe and entertaining online casino, Sankra Casino stands out as a leading choice. It operates with a proper licence from a respected regulator, which means you get a entirely protected space where fair play comes first. What truly sets the casino apart are the unique deals and promotions it has crafted just for British players. These offers are designed to enhance value starting with your first deposit, providing you extra to play with across a vast collection of superb games.<\/p>\n

Checking out the Sankra Casino Welcome Offer<\/h2>\n

sankra<\/a> Casino rolls out the welcome mat for new UK players with a welcome package designed for a great start. This opening deal usually combines a generous match bonus on your first deposit with a bundle of free spins on some well-known slots. The concept is simple: increase your starting balance so you can take more time checking out the casino’s broad variety of games. The terms and wagering rules are laid out plainly, matching the transparency you’d expect from a licensed UK operator.<\/p>\n

Maximizing Your Initial Bonus<\/h3>\n

To make the most of your welcome bonus, begin by reading the full promotion details on the Sankra Casino site. You need to know the minimum deposit, the exact match percentage, and the wagering conditions. Be sure to opt-in if needed, and apply any required bonus code when you deposit. A smart approach is to utilise your boosted funds to try out different games. This can enable you to work through the playthrough requirements while you determine which games you enjoy the most.<\/p>\n

Grasping Wagering Requirements<\/h3>\n

Wagering requirements, often referred to as playthrough conditions, come with almost every casino bonus. They indicate how much you need to bet before you can cash out the bonus money and any winnings from it. Sankra Casino sets out these requirements upfront so you are aware of what you’re getting into. For example, a 30x requirement on a \u00a3100 bonus means you must make \u00a33000 in total bets. Keep in mind, not all games count the same. Slots often count 100%, while table games like blackjack might count much less.<\/p>\n

Focusing on Safe Gambling<\/h2>\n

Sankra Casino, as a licensed operator, has a serious duty to care for its players. The site delivers a collection of effective tools to assist you stay in control. You can set your own deposit limits for a day, week, or month. Session reminders can appear to let you know how long you’ve been playing, and you can enjoy a short break with a time-out option. If you require a longer rest, a self-exclusion can be set up through the support team.<\/p>\n

The casino also directs you toward professional help groups like GamCare and BeGambleAware, organisations that offer free, confidential advice. You can review your own play history with a reality check feature at any time. By pushing these tools and creating a culture of safe play, Sankra Casino meets the heart of the UK’s gambling regulations. The goal is to hold entertainment front and centre, while making sure player wellbeing is always protected.<\/p>\n

The Mobile Experience at Sankra Casino<\/h2>\n

Sankra Casino knows people prefer to play on their phones, so its mobile platform is entirely optimized for it. There’s no app to download. Just go to the website on your smartphone or tablet browser. The site adjusts perfectly to any screen size but keeps all the features of the desktop version. You can control your account, deposit safely, get bonuses, and play the full range of games, all due to modern HTML5 technology.<\/p>\n

The mobile games collection is robust. It includes a big chunk of the slots, table games, and even live dealer titles, all running smoothly on a mobile connection. The touch controls are simple to use, making it easy to switch between games and different parts of the casino. If you’ve got a few minutes on the bus or are getting comfortable for a longer session at home, Sankra Casino’s mobile site offers a full-quality experience. The graphics and performance stay excellent.<\/p>\n

Current Promotions for Dedicated Players<\/h2>\n

Sankra Casino doesn’t forget about you after the welcome offer. It runs a packed calendar of regular promotions to reward players who return. Watch for weekly reload bonuses that offer you a percentage back on deposits made on certain days. The casino also distributes free spins for new slot launches frequently. Tournaments and leaderboard contests provide a competitive thrill, where you can win extra prizes by climbing the ranks through your bets. These deals provide you solid reasons to log in regularly.<\/p>\n

You’ll also find special promotions tied to the season, big holidays, or major sports events. These limited-time campaigns might feature bigger bonuses, prize draws, or unique challenges with great rewards. The key is to check the promotions page often and maybe sign up for the casino’s emails. This steady flow of perks illustrates how Sankra Casino attempts to build a lasting connection with its UK players, keeping the experience interesting and valuable over time.<\/p>\n

Payment Options Tailored for the British Market<\/h2>\n

Sankra Casino presents a range of payment methods that are suitable for UK players. You can fund your account using common debit cards like Visa and Mastercard, which are trustworthy and usually instant. E-wallets such as PayPal, Skrill, and Neteller provide a fast alternative with an extra privacy buffer. If you prefer using direct bank transfers or even Pay by Mobile, those options are available too, catering to different tastes.<\/p>\n

Safety and Withdrawal Processing<\/h3>\n

Every payment you conduct at Sankra Casino is shielded by strong SSL encryption. This maintains your financial data secure. The casino also employs strict anti-fraud checks and follows standard KYC (Know Your Customer) rules. You may have to submit a form of ID like a passport when you withdraw for the first time. This secures everyone involved. How fast you receive your money depends on your method. E-wallets are fastest, often within a day. Card and bank withdrawals can take a few business days to process.<\/p>\n

The significance of a regulated Casino for UK Players<\/h2>\n

Selecting a approved online casino is the key step for everyone in the UK. A official licence from a authority like the UK Gambling Commission is more than a piece of paper. It’s a firm promise that the casino observes strict rules on player safety, game fairness, and safe gambling. For you, this official oversight means your money is kept in dedicated accounts, your personal details are secured, and every game uses a verified Random Number Generator to assure fair results.<\/p>\n

If you gamble at an unlicensed site, you take on major risks. They might fail to pay your winnings, manipulate the games, or neglect to protect your data. Sankra Casino\u2019s licensed status wipes away those fears. It offers a straightforward, responsible place to play. This emphasis on complying with the rules allows you to unwind and just appreciate the games. The licence is the foundation for everything at Sankra Casino, a fundamental guarantee of safety you can count on.<\/p>\n

An In-Depth Look into Game Choices at Sankra<\/h2>\n

Sankra Casino stocks its games lobby with numerous titles from the top names in software development. You’ll discover all kinds of video slots here, from simple fruit machines to story-driven adventures and progressive jackpots that can pay out millions. The library undergoes regular updates with the latest releases, so there’s always something new to try. Expect sharp graphics, fluid gameplay, and creative bonus rounds as the norm.<\/p>\n

Live Dealer and Table Game Excellence<\/h3>\n

If you prefer table games, Sankra Casino has you covered. Its live dealer section transports the real casino floor to your screen. Real croupiers stream from professional studios, dealing cards and spinning wheels for blackjack, roulette, baccarat, and poker. You can locate different versions and table limits to match your style. A live chat function lets you talk to the dealer and other players, adding a social touch. For digital play, there are also plenty of RNG-based versions of blackjack, roulette, and video poker.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

For UK players who seek a safe and entertaining online casino, Sankra Casino stands out as a leading choice. It operates with a proper licence from a respected regulator, which means you get a entirely protected space where fair play comes first. What truly sets the casino apart are the\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-139955","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=139955"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139955\/revisions"}],"predecessor-version":[{"id":139957,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139955\/revisions\/139957"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=139955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=139955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=139955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}