/* 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":131041,"date":"2026-05-25T16:56:25","date_gmt":"2026-05-25T16:56:25","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=131041"},"modified":"2026-05-25T16:56:26","modified_gmt":"2026-05-25T16:56:26","slug":"blocked-8","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/blocked-8\/","title":{"rendered":"Blocked"},"content":{"rendered":"

The current acceptance price provides new customers up to \u00a350 in the bingo tickets, made after to relax and play \u00a310 in almost any bingo area. For this reason posts penned by him is actually up-to-date, elite group, and easy to check out. Thankfully, legitimate Uk playing web sites features in charge playing units eg account day-outs and you will notice-exemption that can help limit your gameplay and keep your out away from troubles. To your fewest group of amounts of all the popular versions, 30-baseball bingo is commonly called \u201cspeed bingo\u201d. 75-golf ball bingo include good 5\u00d75 grid credit that have twenty five squares. It\u2019s used tickets which feature an excellent 9\u00d7step three grid, that have 15 number give around the about three rows.<\/p>\n

Most of the video game need to fulfill minimum RTP criteria, while the platform preserves in depth information of all gameplay to own regulatory review. Professionals participate for leaderboard ranking centered on its gameplay within the tournament BetRebels<\/a> months. Cardiovascular system Bingo Casino’s web site and you will programs ability a modern-day, intuitive structure you to definitely prioritizes consumer experience. The platform spends adaptive streaming technology to modify games quality established on the partnership rates, making sure easy game play even to the slow networks. The fresh new mobile software are regularly updated to be certain optimized performance and coverage. Brand new mobile platform is sold with most of the features available on desktop, along with alive talk assistance, done online game library access, and you may full membership administration.<\/p>\n

There\u2019s along with a beginner Space that you can get the means to access as the a person shortly after spending merely 1p for the bingo passes. Upcoming, you ought to deposit and you may invest \u00a3ten toward bingo entry so they are able getting credited to your membership. Having twenty-four\/7 customer service easily accessible through alive chat, you\u2019ll haven’t any factors delivering let. On top of the bingo also are a huge selection of online slots games out-of a range of other organization. At exactly the same time, players have the option to-name the new gambling enterprise having fun with an effective Uk freephone amount or perhaps to reach thru current email address otherwise an on-line contact form. The most popular way for of many professionals ‘s the alive cam element because of its benefits.<\/p>\n

Additionally there is a beneficial selection of 75\/80-basketball bingo online game filled with The brand new Jukebox and you will enthusiast favourite Deal if any Price. You can find no less than golf ball bingo online game to select from in the any given time, with most of them doing within 10 minutes. The website has been extremely user friendly, having convenient keys and you will menus to assist navigate the website and you may the choices. Ready yourself and determine personal games, substantial advertising and you will an enjoyable way of game play. I adore using them they withdraw quickly that will be easy to make use of That have a new player-basic method, Esther\u2019s critiques break down incentives, jackpots, and you will online game aspects such that\u2019s clear, engaging, and you may society-centered.<\/p>\n

The newest spins are really easy to get and you will have no wagering with no genuine withdrawal limits. That it relaunch lead modernisation in order to the games possibilities and you will representative screen. Cardiovascular system Bingo Local casino is principally an internet site available for cellular users, plus it appears high on all of the phones. A. When deciding on a knowledgeable online slots, thought circumstances including RTP (Come back to Pro) commission, added bonus provides, themes, while the reputation for the software merchant. Fast-loading pages, bright online game alternatives, and simple, credible game play \u2014 things are designed to you in your mind.<\/p>\n

It’s not hard to move from dated-college or university fresh fruit computers so you can brand-new megaways within gambling establishment library since the this new labels are very obvious. To get the most from the experience, let Cardio Bingo deliver safety notice and you will essential services texts. You could potentially contact us owing to real time cam otherwise email address for people who need assistance.<\/p>\n

In the last number of years, the united kingdom Gambling Commission has made it quite difficult for Uk facing workers to in public areas offer good VIP System for fear of breaking rigorous value rules. Enrolling in your mind Bingo is a simple 3-action process and you will requires only one minute otherwise reduced. A portion of the header bar is basically segmented for the Bingo, Slots, Casino, Slingo and you may Promotions and you can a search unit commonly with ease come across games and you will slots having fun with but a few emails. There\u2019s alot more bingo are starred – don\u2019t forget the Amateur Area which is open to new members for 5 weeks shortly after its very first put.<\/p>\n

The team shall be called via current email address and alive cam, making sure the ideal way for most to be able to arrive at out to possess help. Its online game come from greatest business in the market, guaranteeing ideal-quality gameplay, graphics, and features throughout the. Pages will receive five hundred totally free bingo seats cherished from the 10p for each, making this offer a maximum of \u00a350 during the bingo added bonus loans. Make an excellent \u00a3ten put into your account to get going and you will get involved in it in almost any Bingo room of your choice.<\/p>\n

Participants might be provided 300 100 percent free bingo passes, centered on tickets really worth 10p per, around \u00a330. Along side 15 bingo rooms in your mind Bingo, people discover mainly 90 ball bingo games including a number of 80 golf ball, 75 baseball, 29 golf ball and Bingo Blast games. One’s heart Bingo subscription processes is simple and easy also newbies is to don’t have any activities doing this process. So it whole process took up to 5 minutes to complete and while this was a little more than more bingo internet, it was very easy to complete.<\/p>\n

Whether you need the greatest classics or perhaps the latest slot machine online game jam-full of have, we\u2019lso are pleased to exit you pampered to own solutions. We know almost every other bingo websites you’ll make you the option of games too\u2026but i\u2019lso are everything about incorporating a good cheeky bit of fun to your digital arena of numbers. This game runs all the dos.5 minutes, to help you see a fantastic competition up against the time clock one\u2019s primed to store your into side of the chair. \u201d, then 90-basketball variation might be an apt choice for you.<\/p>\n

They supply information such as circle, put promote, and you may payment approach, so it\u2019s no problem finding a web site that meets your needs. For an approved retailer of your choosing. Here at tombola arcade, we pleasure ourselves to your all of our arcade society, that\u2019s you guys! We have arcade game that you simply acquired\u2019t look for elsewhere and ripple and select. You could potentially play ports off only 1p for each and every twist in the Jackpotjoy, it is therefore possible for people to participate into the enjoyable. Getting started on Jackpotjoy is simple!<\/p>\n

Automatic games rescuing enables you to grab where you left off if you need to. Typical standing were created readily available one to put additional features while making protection most readily useful. You can rapidly get right to the respect area, live pulls, and you will front side video game from the cellular telephone. It indicates you could twist or call wide variety to your Screen cell phones, pills, and other equipment which can get in touch with the net.<\/p>\n

Accessing the new gambling enterprise to your a mobile device is easy\u2014only visit the casino\u2019s website into the unit\u2019s internet browser. Cardio Bingo ensures the security of the web site owing to SSL security around the all pages, and additionally men and women employed for subscription and you can transactions. They include training administration, safety and you will cookie preference storage. For many professionals, that one outline is enough to come across it over the competition. Really works on the cellular telephone internet browser as well.<\/p>\n","protected":false},"excerpt":{"rendered":"

The current acceptance price provides new customers up to \u00a350 in the bingo tickets, made after to relax and play \u00a310 in almost any bingo area. For this reason posts penned by him is actually up-to-date, elite group, and easy to check out. Thankfully, legitimate Uk playing web sites features\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-131041","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131041","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=131041"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131041\/revisions"}],"predecessor-version":[{"id":131042,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131041\/revisions\/131042"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=131041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=131041"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=131041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}