/* 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":157609,"date":"2026-06-16T08:43:22","date_gmt":"2026-06-16T08:43:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=157609"},"modified":"2026-06-16T08:43:22","modified_gmt":"2026-06-16T08:43:22","slug":"mafia-casino-7","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/mafia-casino-7\/","title":{"rendered":"Highlights of Live Dealer Games at Mafia Casino for Canada"},"content":{"rendered":"
\n\"Free<\/p>\n

Picture stepping into a high-end casino where the dealers are familiar with your name and every shuffle of cards is perfectly visible. That\u2019s what you can anticipate with the live dealer games at mafia casino<\/a>, particularly designed for Canadian players. With seamless streaming and a range of games at your command, you might find it hard to resist the allure. But what really makes this experience unique? Let\u2019s delve into the key features that make it stand out.<\/p>\n

Real-Time Interaction With Professional Dealers<\/h2>\n

When you play live dealer games at Mafia Casino, you\u2019re not just playing; you\u2019re participating in a lively experience with professional dealers who enhance the experience. You’ll communicate with these expert hosts in real-time, boosting your gameplay to new heights. Each dealer is not only trained to create an inviting atmosphere but also to address your questions, making sure you feel connected and involved. This immersive interaction alters traditional gaming, turning it into a social event where you can converse, strategize, and even have fun. You\u2019re part of a network, sharing each hand as a shared journey. Accept the modern setup, where every game shifts effortlessly between excitement and expertise, transforming your online gaming experience at Mafia Casino.<\/p>\n

Diverse Game Selection Tailored for Canadian Players<\/h2>\n

As you navigate Mafia Casino, you\u2019ll find a varied game selection designed for Canadian players. You can immerse yourself in an assortment of live dealer games that not only include traditional favorites like blackjack, roulette, and baccarat but also introduce innovative variants designed for thrill-seekers. Each game delivers high-definition streaming and state-of-the-art technology to enhance your experience, making you feel as if you’re present at the table. Plus, you\u2019ll find distinctive Canadian twists on classic games, providing a sense of familiarity while sparking your excitement. With frequent updates to the game library, there’s always something new to explore. Whether you’re a veteran player or just new, Mafia Casino\u2019s selection promises to keep your gaming experience exciting and exhilarating.<\/p>\n

High-Quality Video Streaming Experience<\/h2>\n

When you’re playing live dealer games at Mafia Casino, you’ll appreciate the amazing visual clarity that improves your gaming experience. With smooth live interaction, every detail stands out, making you feel like you’re right at the table. This top-notch video streaming not only delights but also immerses you in the action.<\/p>\n

Stunning Visual Clarity<\/h3>\n

The mesmerizing experience of live dealer games at Mafia Casino is enhanced by breathtaking visual clarity. You\u2019ll find that every detail stands out, creating an engaging environment where you feel right at the table. The high-definition video streaming offers a crystal-clear view of the game action, allowing you to closely observe the dealer\u2019s movements and card shuffles. With advanced technology ensuring superior resolution, you won\u2019t miss a moment of the excitement. Whether you\u2019re playing blackjack, roulette, or poker, the lively visuals make your gaming experience more captivating and authentic. This commitment to visual excellence reflects Mafia Casino’s dedication to innovation, enhancing not just what you see, but how you feel as you immerse yourself in the fascinating world of live dealer games.<\/p>\n

Seamless Live Interaction<\/h3>\n

How does seamless live interaction enhance your gaming experience at Mafia Casino? Picture yourself engaging with real dealers in real time, all through high-definition video streaming. The moment you enter a live dealer session, you’re not just playing a game; you’re stepping into an realistic environment that replicates the feel of a physical casino. With responsive chat features, you can communicate smoothly, making the experience feel personalized. You won\u2019t have to deal with lag or interruptions\u2014just uninterrupted gameplay that keeps you focused on the action. Plus, the interactive elements, like real-time betting and instant feedback, guarantee you\u2019re always in the loop, elevating your strategic decisions. It\u2019s innovation that brings innovation right to your screen!<\/p>\n

Engaging Multiplayer Experience<\/h2>\n

At Mafia Casino, you’ll find an engaging multiplayer experience that introduces social interaction to live dealer gaming. You won\u2019t just be playing against the house; you\u2019ll join an dynamic community where you can converse with fellow players and interact with the personable live dealers. This social dimension changes your gaming session into a energetic atmosphere, making every bet feel more intense. You can easily test friends and create alliances, tactical talks creating deeper connections. Furthermore, the innovative features, like real-time leaderboards and modifiable avatars, add flair to your experience, allowing you to be yourself while enjoying the games. Dive in this engaging multiplayer environment, where every game feels like a social event, increasing the excitement multiplies!<\/p>\n

\"Easily<\/p>\n

Accessible on Multiple Devices<\/h2>\n

You\u2019ll adore that Mafia Casino\u2019s live dealer games are available on multiple devices, guaranteeing you can play whenever and wherever you want. Whether you favor the seamless experience on a desktop or the convenience of mobile gameplay, you’ll find both options crafted for your enjoyment. This flexibility improves your gaming experience, letting you stay in the action with ease.<\/p>\n

Mobile Compatibility Features<\/h3>\n

While enjoying the thrill of live dealer games at Mafia Casino, you’ll appreciate the smooth mobile compatibility that enables you to access your favorite titles from any device. Whether you\u2019re using a smartphone or tablet, the optimized interface guarantees a smooth gaming experience on the go. The high-quality video streams and interactive features retain their brilliance, making you feel like you’re right at the table, no matter where you are. You can easily navigate through games and enjoy superior graphics, all while utilizing touchscreen controls created for easy play. With quick loading times and real-time gameplay, you\u2019ll find that innovation is at the heart of the Mafia Casino mobile experience, letting you elevate your gaming wherever you choose to play.<\/p>\n

Desktop Experience Benefits<\/h3>\n

The desktop experience at Mafia Casino offers a variety of benefits that boost your gaming sessions beyond what portable platforms provide. You\u2019ll enjoy a bigger display that immerses you deeper into the vibrant realm of live casino games, enabling you to interact with croupiers and fellow gamers smoothly. Improved graphics and sound clarity create a realistic environment, enriching your overall experience. Plus, with faster performance, you’ll enjoy more fluid gameplay without interruptions. Maneuvering through the platform is more simple thanks to a structured design, allowing it simple to find your preferred titles. You can also handle larger bankrolls easily, giving you the liberty to try new strategies. In summary, the desktop encounter is designed for players looking for innovation and connection.<\/p>\n

Secure and Fair Gaming Environment<\/h2>\n

To ensure a secure and equitable playing environment at Mafia Casino, state-of-the-art tech and strict regulations are utilized. You can rely on that every game is monitored and certified by third-party inspectors, ensuring that results are completely random. Sophisticated encryption protocols safeguard your sensitive information, so your individual data stays private and safe from unapproved access. Additionally, live play allows you to see dealer interactions and game procedures, enhancing transparency. With modern features like real-time chat assistance, you\u2019ve got help at your fingertips whenever you need it. Overall, your experience is not just enjoyable but also safe and equitable, letting you focus on enjoying the thrill of the game without any concerns.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Picture stepping into a high-end casino where the dealers are familiar with your name and every shuffle of cards is perfectly visible. That\u2019s what you can anticipate with the live dealer games at mafia casino, particularly designed for Canadian players. With seamless streaming and a range of games at your\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-157609","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157609","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=157609"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157609\/revisions"}],"predecessor-version":[{"id":157610,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157609\/revisions\/157610"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=157609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=157609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=157609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}