/* 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":102587,"date":"2026-05-25T11:34:40","date_gmt":"2026-05-25T11:34:40","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=102587"},"modified":"2026-05-25T11:34:40","modified_gmt":"2026-05-25T11:34:40","slug":"signup-today-within-jackpot-area-and-you-can-have-the-ultimate-online-gaming-excitement","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/signup-today-within-jackpot-area-and-you-can-have-the-ultimate-online-gaming-excitement\/","title":{"rendered":"Signup today within Jackpot Area and you can have the ultimate online gaming excitement"},"content":{"rendered":"

Since then, the platform has expanded to around 30 billion month-to-month profiles<\/h2>\n

Nevertheless, with Microgaming, because they are an umbrella for a lot of shorter indy position studios and large hitters, you will end up tough-pushed to not ever discover something to enjoy in their titles. JW is the best playing games I have discovered-satisfied all over the world players whom became members of the family, and you may profitable Real prizes makes it exclusively unique.<\/p>\n

This allows getting seamless transitions ranging from desktop computer and you will mobile gamble instead any lack 0xBet nettikasino<\/a> of graphical high quality or price. All of our program was powered by Microgaming, a scene leader in the gambling enterprise software, making certain that all hand of blackjack each twist of your roulette wheel try lead for the crisp hd. And, instead of almost every other online casino games, i’ve zero betting conditions to the profits generated from your Free Spins advertisements, to help you remain everything winnings! Zero betting conditions for the totally free spin earnings. Participants win real money towards online slots games for hours on end, away from basic earnings in order to large jackpot honours. You might enjoy a real income online slots games during the Jackpot Urban area, an authorized and you will respected slots gambling establishment providing several antique, video clips, and you may jackpot video game.<\/p>\n

The assistance group can be found to aid with any questions otherwise facts you ing sense. At the same time, the brand new cellular-enhanced webpages makes you gamble right from the web browser in place of having to down load the fresh app, guaranteeing a seamless betting experience on the go. Jackpot Area spends cutting-edge encoding technology to safeguard your own pointers and you will monetary transactions, ensuring that your own gambling sense is safe and safer. The fresh gambling establishment regularly will bring extra codes having existing pages, which can be redeemed for additional 100 % free spins, deposit suits, or other advantages.<\/p>\n

Change your mobile betting experience by the getting Jackpot City’s gambling enterprise software<\/h2>\n

Repeating cellular gambling enterprise bonuses within Jackpot Urban area exists often, so it is very easy to enjoy a popular online game and get an effective high playing experience. Include 24\/7 service, loyalty program, and you may tailored local casino advertisements and you may Jackpot Town probably one of the most dependent gambling enterprise web sites giving members all over the world away from Canada, to NZ and the chance to enjoy gambling enterprise on line, cellular or through a mobile local casino application. The newest video game try obtainable to the most of the devices, and you can professionals is put fund effortlessly playing with Visa, Neteller or any other popular commission procedures. First of all, if you’ve ever starred to your an effective Microgaming casino to your mobile, you can recognise the newest common look and feel.<\/p>\n

Bonanza Megapays contributes progressive jackpots to this legendary position, which also features the brand new Megaways gameplay auto technician. Bonanza Megapays by the Big time Betting combines the fresh legendary Megaways harbors auto mechanic having enjoyable Megapays progressive jackpots. Wilds can develop and end in fun gains from the Starburst slot because of the NetEnt. Hit twenty-three or maybe more Scatter icons to lead to the fresh 100 % free spins round, where you can connect some of the greatest victories. Book off Dead by Play’n Wade takes you deep for the ancient Egypt together with the daring explorer Rich Wilde.<\/p>\n

The fresh mobile system retains a comparable quality picture and you will simple gameplay since desktop adaptation, which have a wide selection of online game offered. Jackpotcity Local casino is fully optimized to possess cell phones, ensuring that professionals can take advantage of their favorite game away from home. The newest professionals is actually welcomed that have a good sign-right up added bonus, which may be coordinated all over multiple dumps. Yes, Jackpotcity Local casino has the benefit of multiple incentives and advertising to enhance the newest playing experience. The working platform is registered and you may managed by the Malta Playing Expert, guaranteeing a secure and reasonable betting ecosystem. The newest graphics are ideal-notch, as well as the profits is actually swift.<\/p>\n

In the Jackpot Town, we’re happy to provide prompt, reputable earnings contained in this instances from a legitimate detachment request. As well as would a new password for the membership and you will confirm that you’re more than 18 and also have browse the Terms and you can Conditions. You may be wishing in line, and you can you may like to enjoy a round away from pokies, and that means you pull out your own cell phone… and it’s even reduced than simply swimming because of treacle. Jackpot Urban area now offers numerous types of commission approaches to fit your needs when making in initial deposit.<\/p>\n

Getting pages regarding British, solid security initiate when they create the latest Jackpotcity application. Each game tile reveals secret facts (particularly jackpots, volatility, and minimal stakes) that have a single faucet, making it possible for timely comparisons ahead of typing a concept. In the event that you run into less efficiency otherwise display screen mistakes, look at the device information before getting in touch with Jackpotcity support. From the secure Jackpotcity environment, you could potentially disperse ? into the harmony, seek out incentives, and continue maintaining tabs on the deals. Getting Android os admirers who would like to pick Jackpotcity content, these types of guidelines are produced for British pages. Score dependable support service and you may safer purchases that are made having privacy at heart to own Uk profiles.<\/p>\n

All deals was covered by a similar SSL encoding, ensuring that debt investigation remains secure. Subscribed because of the Malta Betting Power (MGA), Jackpot Urban area NZ abides by strict regulating criteria, guaranteeing fair play and you will monetary visibility. Whether or not you would like to tackle into the an app or throughout your web browser, Jackpot City NZ implies that you may enjoy your chosen games regardless of where you are, rather than compromising towards high quality otherwise safety. In the suming enjoy readily available, that have a fully appeared app and you will a mobile-enhanced website one to suits the needs of modern users.<\/p>\n

The fresh “Better Picks” point reveals regional favourites, trending Uk options, and local exclusives for many who have an interest in them. VIP people get most bonuses, novel cashback, and you may top priority invitations to events owing to customised announcements. Begin an eligible deposit with some of the approved commission tips, and currency arise within a few minutes. When you make in initial deposit, matched up ? credits are instantly added to your bank account harmony, and you may totally free spins come on the specific games. This bonus plan usually fits your first put and gives you additional spins into the certain gambling enterprise slots.<\/p>\n

If you would like quick casual enjoyable otherwise much time gaming courses, you can easily constantly discover something not used to enjoy. Appreciate classic gameplay and vintage enjoyable within the an array of Flash-centered game. Common labels tend to be vehicles online game, Minecraft, 2-pro video game, fits 12 game, and mahjong. When you find yourself a creator that have a game title the nation has to get a hold of, below are a few Poki to possess Designers.<\/p>\n","protected":false},"excerpt":{"rendered":"

Since then, the platform has expanded to around 30 billion month-to-month profiles Nevertheless, with Microgaming, because they are an umbrella for a lot of shorter indy position studios and large hitters, you will end up tough-pushed to not ever discover something to enjoy in their titles. JW is the best\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-102587","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/102587","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=102587"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/102587\/revisions"}],"predecessor-version":[{"id":102590,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/102587\/revisions\/102590"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=102587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=102587"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=102587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}