/* 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":142843,"date":"2026-06-12T10:13:09","date_gmt":"2026-06-12T10:13:09","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=142843"},"modified":"2026-06-12T10:13:09","modified_gmt":"2026-06-12T10:13:09","slug":"gransino-gaming-spin-the-reels-and-hit-big-wins-in-the-uk","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/gransino-gaming-spin-the-reels-and-hit-big-wins-in-the-uk\/","title":{"rendered":"Gransino Gaming \u2013 Spin the Reels and Hit Big Wins in the UK"},"content":{"rendered":"
\n

Gransino Casino provides an online gaming platform built for the UK market https:\/\/gransinocasino.eu.com\/<\/a>. It provides a large selection of slots and live dealer games from trusted software providers. The site focuses on simple navigation and safe transactions, delivering a reliable environment for players who want excitement and genuine winning opportunities.<\/p>\n

Getting Started with Gransino Casino<\/h2>\n

Gransino Casino acts as a online home for slot lovers. Its interface is built for simplicity, enabling you to locate your favourite games without difficulty. The casino possesses a valid license from the UK Gambling Commission. This ensures it complies with strict rules for game fairness and player safety across the UK.<\/p>\n

That license signifies the operations are protected and responsible gambling is a focus. For you, this results in games with unpredictable outcomes and secure financial transactions. Gransino’s devotion to this regulated framework is what underpins the experience for every UK player.<\/p>\n

Payment Methods and Funds Protection<\/h2>\n

Gransino Casino supports a variety of payment choices that UK players commonly use. These include major debit cards like Visa and Mastercard, popular e-wallets such as PayPal and Skrill, and direct bank transfers. The casino’s objective is to offer transaction methods that are safe, user-friendly, and speedy.<\/p>\n

Every financial transaction is safeguarded by advanced SSL encryption technology. This system ensures your personal and banking information entirely secure. When you request a withdrawal, the casino approves it quickly, though the time it needs for the money to arrive will change based on the method you chose.<\/p>\n

Mobile Gaming Experience<\/h2>\n

Gransino Casino offers a smooth mobile experience through a website that adjusts to any screen. You can reach your account and the full game catalogue straight from your smartphone or tablet browser. There’s no need to download a separate app, which renders it compatible with both iOS and Android devices right away.<\/p>\n

The mobile site keeps the sleek look and all the capabilities of the desktop version. Games are optimized for touchscreen controls and smaller displays without sacrificing their visual quality or performance. This means you can experience a full gaming session regardless of you’re staying at home or on the go.<\/p>\n

Sign-Up Offer and Promotional Offers<\/h2>\n

Fresh members joining from the UK get a introductory offer after making their first deposit. This offer usually consists of a match bonus, increasing your starting balance so you can game for longer. It’s essential to examine the specific terms and conditions attached to any bonus before you choose to accept it.<\/p>\n

For loyal users, Gransino offers ongoing promotions. These might be reload bonuses, free spins on certain slot games, or cashback deals. The objective is to appreciate your continued play and add more value to your time on the site. Bear in mind that every promotion has its own set of wagering requirements.<\/p>\n

Game Library and Software Developers<\/h2>\n

Gransino’s game library is heavily stocked with slot machines, spanning a broad spectrum of themes and styles. You can experience classic three-reel slots, modern video slots filled with bonus rounds, and progressive jackpots where the prizes can alter your life. The lineup receives new titles on a regular basis to keep things engaging.<\/p>\n

Leading Software Partnerships<\/h3>\n

Gransino fills its shelves with titles from major industry players such as NetEnt, Pragmatic Play, and Play’n GO. Collaborating with these developers ensures the games have sharp graphics, immersive sound, and equitable payout percentages. Finding these trusted names on the site is a definite signal Gransino prioritizes quality in its entertainment.<\/p>\n

Live Dealer and Table Games<\/h3>\n

If slots aren’t your only interest, Gransino hosts a full live dealer section. Here, you can join at real-time tables for blackjack, roulette, and baccarat. These games broadcast in high definition from professional studios, recreating the buzz of a physical casino floor and letting you chat with the croupiers.<\/p>\n

Customer Support and Responsible Play<\/h2>\n

If you seek assistance, customer support is accessible through live chat and email. The support team is prepared to address typical queries about accounts, bonuses, or gameplay. A thorough FAQ section on the website is also useful for instant answers to the most common questions.<\/p>\n

Dedication to Responsible Gambling<\/h3>\n

As an operator licensed by the UKGC, Gransino includes essential responsible gambling tools directly into the platform. You can configure personal deposit limits, use session reminders, or go for a cooling-off period. The site also offers links to professional support organisations like GamCare and GamStop for anyone who needs extra help.<\/p>\n

Frequently Asked Questions<\/h2>\n

Does Gransino Casino regulated for UK players?<\/h3>\n

Absolutely, Gransino Casino has a legitimate operating license from the United Kingdom Gambling Commission (UKGC). This license requires the platform to adhere to strict regulations covering game fairness, the security of player funds, and responsible gambling practices. That makes a fully legal choice for anyone playing from the UK.<\/p>\n

Which kinds of games are available at Gransino Casino?<\/h3>\n

The casino’s main attraction is its huge range of online slots from top providers like NetEnt and Pragmatic Play. It also operates a live dealer section where you can play real-time blackjack, roulette, and baccarat. The game library is frequently updated with new titles to ensure there’s always something fresh to try.<\/p>\n

How do I contact customer support?<\/h3>\n

You can reach the support team via live chat for instant help or by email for less urgent enquiries. Using the live chat function is normally the quickest way to get an issue resolved. The website also hosts a detailed FAQ section that covers many regular questions about accounts and gameplay.<\/p>\n

What banking methods does Gransino accept?<\/h3>\n

Gransino Casino accepts several payment methods popular in the UK, including Visa and Mastercard debit cards, e-wallets like PayPal and Skrill, and bank transfers. All transactions are secured with encryption technology to keep your data safe. Processing times for withdrawals differ depending on which method you select.<\/p>\n

Are there wagering requirements on bonuses?<\/h3>\n

Yes, every bonus offer, including the welcome package, comes with wagering requirements. These terms clearly state how many times you must play through the bonus funds before any winnings can be withdrawn. Players should always read the full bonus terms and conditions carefully before accepting a promotion.<\/p>\n

Gransino Casino positions itself as a dedicated online gaming platform for the UK, with a clear emphasis on a substantial slots collection and live dealer games from respected providers. Its regulated foundation, combined with uncomplicated banking and attentive customer support, creates a reliable base for players. While its core strength is in these key gaming areas, it stands as a capable and secure option for anyone after accessible casino entertainment.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Gransino Casino provides an online gaming platform built for the UK market https:\/\/gransinocasino.eu.com\/. It provides a large selection of slots and live dealer games from trusted software providers. The site focuses on simple navigation and safe transactions, delivering a reliable environment for players who want excitement and genuine winning opportunities.\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-142843","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/142843","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=142843"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/142843\/revisions"}],"predecessor-version":[{"id":142844,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/142843\/revisions\/142844"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=142843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=142843"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=142843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}