/* 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":144313,"date":"2026-06-12T10:45:56","date_gmt":"2026-06-12T10:45:56","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=144313"},"modified":"2026-06-12T10:45:56","modified_gmt":"2026-06-12T10:45:56","slug":"mostbet-casino-enjoy-gaming-anytime-anywhere-in-canada","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/mostbet-casino-enjoy-gaming-anytime-anywhere-in-canada\/","title":{"rendered":"Mostbet Casino \u2013 Enjoy Gaming Anytime, Anywhere in Canada"},"content":{"rendered":"
\n\"B\u00f3nus<\/p>\n

Mostbet Casino provides a premier online gaming destination tailored for Canadian players. It combines a extensive game library with seamless mobile access, enabling enthusiasts to experience their preferred titles at any location. With a robust focus on security, attractive bonuses, and committed customer support, it provides a trustworthy and enjoyable platform for novice and seasoned players across Canada.<\/p>\n

What Makes Mostbet Casino Excels for Canadian Players<\/h2>\n

Mostbet Casino distinguishes itself by offering a platform that really knows the Canadian market. It supports popular payment methods like Interac and processes transactions in Canadian dollars. The casino holds a trusted international gaming license, ensuring a safe and just environment for all its players across the country.<\/p>\n

Beyond security, the user experience is a main priority. The website and app boast intuitive navigation and are fully optimized for both English and French speakers. This considerate localization makes Mostbet a suitable and accessible choice for gamers from Vancouver to Halifax.<\/p>\n

Safe Banking for Canadian-based Deposits & Withdrawals<\/h2>\n

Mostbet Casino enables hassle-free and secure financial transactions for its Canadian users. Popular deposit options feature Interac e-Transfer, credit cards, and various e-wallets. Deposits are typically instant, allowing players to begin playing without delay.<\/p>\n

Withdrawals are managed with a focus on efficiency, with timelines differing by method. The casino employs advanced encryption technology to safeguard all financial data and personal information, giving players peace of mind with every transaction.<\/p>\n

Mobile Play Excellence with the Mostbet App<\/h2>\n

True to its “play anywhere” promise, Mostbet delivers a solid mobile experience. Players can download a dedicated app for iOS or Android devices or use the instant-play mobile browser site. Both options offer full access to the casino’s features.<\/p>\n

The mobile platform is optimized for smaller screens without sacrificing game quality or functionality. Whether on a commute in Toronto or relaxing at home in Calgary, players can experience seamless banking, customer support, and their favorite games on the go.<\/p>\n

Getting Started Registration and Welcome Bonus<\/h2>\n

Becoming a member of Mostbet Casino is a fast and straightforward process tailored for Canadians. New players must provide some necessary information to set up an account, which is usually verified promptly. This provides a safe start to their gaming journey.<\/p>\n

New members are greeted with a competitive welcome package. This often includes a match bonus on the first deposit and may feature free spins. It’s essential to read the bonus terms and conditions to grasp the wagering requirements and optimize the offer.<\/p>\n

Ongoing Promotions and VIP Rewards<\/h2>\n

Mostbet Casino recognizes player dedication and sustains the enthusiasm alive beyond the welcome offer. Regular players can utilize weekly reload bonuses, cashback offers, and tournaments with enticing prize pools. These promotions provide extra value to every gaming session.<\/p>\n

The casino often offers a tiered loyalty or VIP program. As players wager, they collect points that can be traded for bonuses or other perks. Higher tiers in the program commonly unlock personalized rewards and dedicated account management.<\/p>\n

\"Mostbet<\/p>\n

A Thorough Exploration of the Mostbet Game Selection<\/h2>\n

The heart of Mostbet Casino is its impressive game library, driven by leading software providers. Players can explore thousands of titles, including engaging video slots with impressive graphics to classic table games. The selection is regularly refreshed with new releases to maintain the excitement.<\/p>\n

For those seeking a real casino atmosphere, the live dealer section is outstanding. Delivered in HD from professional studios, games like blackjack, roulette, and baccarat showcase real croupiers. This creates an authentic social gaming experience straight from a player’s home or mobile device.<\/p>\n

\u010casto kladen\u00e9 ot\u00e1zky<\/h2>\n

Je opravdu Mostbet Casino povolen\u00e9 and zabezpe\u010den\u00e9 to vyu\u017e\u00edvat in Canada?<\/h3>\n

Samoz\u0159ejm\u011b. Mostbet Casino funguje under a ofici\u00e1ln\u00ed international gaming license, zaji\u0161\u0165uj\u00edc\u00ed regulated and fair play. It vyu\u017e\u00edv\u00e1 state-of-the-art SSL encryption to chr\u00e1nit user data and financial transactions, nab\u00edzej\u00edc\u00ed a secure environment for Canadian players.<\/p>\n

Kter\u00fd welcome bonus mohu I vy\u017e\u00e1dat as a new player from Canada?<\/h3>\n

New Canadian players can typically uplatnit a matched deposit bonus on their first deposit, often accompanied by free spins. The exact offer details and wagering requirements are clearly uvedeny in the ‘Promotions’ section of the website.<\/p>\n

Jak\u00e9 payment methods b\u00fdvaj\u00ed available for Canadians?<\/h3>\n

Mostbet supports Canada-friendly payment options, zahrnuj\u00edc\u00ed Interac e-Transfer, Visa, Mastercard, and e-wallets like MuchBetter and Jeton https:\/\/most-bet-casino.org\/en-ca\/<\/a>. Transactions can be conveniently provedeny in Canadian Dollars (CAD).<\/p>\n

Disponuje Mostbet poskytuje a mobile app?<\/h3>\n

Yes. Mostbet offers dedicated mobile apps for both iOS and Android devices, ke sta\u017een\u00ed for download from their website. The app nab\u00edz\u00ed full access to games, banking, and support features for gaming on the move.<\/p>\n

\"Mostbet<\/p>\n

Kter\u00e9 kind of games si mohu I vyzkou\u0161et at Mostbet Casino?<\/h3>\n

The casino nab\u00edz\u00ed thousands of games, v\u010detn\u011b online slots, table games like blackjack and roulette, video poker, and a comprehensive live dealer section. Games jsou supplied by top-tier software developers like NetEnt and Evolution.<\/p>\n

How fast are withdrawals at Mostbet Casino?<\/h3>\n

Withdrawal speeds depend on the chosen method. E-wallets are often the fastest, processing within 24 hours, while bank transfers may take a few business days. The casino sna\u017e\u00ed se to zpracovat all requests efficiently.<\/p>\n

Jak\u00fdm zp\u016fsobem can I oslovit customer support?<\/h3>\n

Mostbet poskytuje 24\/7 customer support via live chat and email. The support team is znal\u00fd and can pomoci with any queries, from account verification to bonus questions, in English and French.<\/p>\n

Mostbet Casino nab\u00edz\u00ed a atraktivn\u00ed option for Canadian online gaming enthusiasts. It successfully spojuje a vast game selection, robust mobile compatibility, and secure, Canada-focused banking into a single cohesive platform. With its z\u00e1vazek to player safety and ongoing promotions, it je as a reliable destination for entertainment anywhere in Canada.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Mostbet Casino provides a premier online gaming destination tailored for Canadian players. It combines a extensive game library with seamless mobile access, enabling enthusiasts to experience their preferred titles at any location. With a robust focus on security, attractive bonuses, and committed customer support, it provides a trustworthy and enjoyable\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-144313","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/144313","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=144313"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/144313\/revisions"}],"predecessor-version":[{"id":144314,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/144313\/revisions\/144314"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=144313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=144313"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=144313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}