/* 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":101770,"date":"2026-05-25T11:31:25","date_gmt":"2026-05-25T11:31:25","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=101770"},"modified":"2026-05-25T11:31:25","modified_gmt":"2026-05-25T11:31:25","slug":"subscribe-now-during-the-jackpot-town-and-you-will-have-the-best-on-line-gaming-adventure","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/subscribe-now-during-the-jackpot-town-and-you-will-have-the-best-on-line-gaming-adventure\/","title":{"rendered":"Subscribe now during the Jackpot Town and you will have the best on line gaming adventure"},"content":{"rendered":"

Ever since then, the platform has grown to around thirty billion monthly pages<\/h2>\n

Nevertheless, that have Microgaming, because they’re an enthusiastic umbrella for way too many less indy position studios and big hitters, you are difficult-pressed not to discover something to enjoy within headings. JW is the better gambling game I’ve found-came across international members exactly who turned loved ones, and you may profitable Actual prizes causes it to be uniquely unique.<\/p>\n

This permits having smooth changes anywhere between desktop computer and you may mobile gamble instead one lack of graphical quality otherwise price. All of our system was run on Microgaming, a scene chief for the local casino app, making certain that the hand away from black-jack and every spin of one’s ZenCasino UK<\/a> roulette wheel was put within the sharp high definition. Together with, unlike other casino games, you will find zero betting criteria for the winnings generated from your 100 % free Spins offers, to help you continue everything you profit! No wagering criteria for the 100 % free twist winnings. Users profit real money on the online slots games throughout the day, from basic profits so you can larger jackpot awards. You could play real cash online slots games at the Jackpot City, an authorized and you can respected harbors local casino offering various vintage, movies, and jackpot video game.<\/p>\n

The assistance team is obtainable to assist having questions otherwise facts your ing experience. Concurrently, the newest cellular-optimized web site enables you to gamble straight from their internet browser as opposed to having to download the new software, making sure a seamless playing experience on the go. Jackpot Area spends state-of-the-art encoding innovation to guard your pointers and you will financial deals, making certain that your playing feel is secure and you will secure. The fresh new casino on a regular basis brings incentive codes to have current profiles, which can be used for additional totally free spins, deposit suits, and other perks.<\/p>\n

Upgrade your cellular gaming experience from the downloading Jackpot City’s gambling establishment software<\/h2>\n

Recurring cellular local casino bonuses at Jackpot City exists have a tendency to, so it is simple to play a favourite video game and also have a high playing experience. Add 24\/7 assistance, respect system, and you will customized casino offers and you will Jackpot Town probably one of the most established gambling enterprise sites offering users international off Canada, in order to NZ plus the chance to enjoy local casino on line, mobile otherwise thru a mobile local casino application. The new video game was obtainable into the every gizmos, and you will professionals can be put financing easily having fun with Charge, Neteller and other well-known payment steps. First, if you’ve ever played to the good Microgaming gambling enterprise into the cellular, you’ll recognise the fresh new familiar look and feel.<\/p>\n

Bonanza Megapays contributes modern jackpots to that legendary position, that also features the fresh new Megaways gameplay mechanic. Bonanza Megapays from the Big time Gambling combines the brand new legendary Megaways harbors auto technician that have pleasing Megapays progressive jackpots. Wilds can develop and you may trigger exciting gains on Starburst slot by NetEnt. Hit 12 or even more Spread signs in order to lead to the newest 100 % free spins bullet, where you can connect a number of the most significant gains. Guide from Inactive because of the Play’n Go guides you strong on the ancient Egypt alongside the daring explorer Steeped Wilde.<\/p>\n

The new cellular program keeps the same top quality image and smooth game play while the desktop computer adaptation, with various games offered. Jackpotcity Casino was completely enhanced to own cellphones, making certain professionals will enjoy their most favorite game on the go. The latest players was invited having a big sign-right up extra, that may be matched up across multiple dumps. Sure, Jackpotcity Local casino has the benefit of various bonuses and you will advertisements to compliment the latest playing sense. The working platform try signed up and regulated by Malta Playing Authority, guaranteeing a secure and reasonable gaming environment. The brand new image was finest-notch, while the payouts are swift.<\/p>\n

At Jackpot Area, we’re satisfied giving punctual, reputable payouts in this era from a valid detachment consult. As well as manage a different username and password for the membership and you can concur that you might be more than 18 and now have check out the Terms and Standards. You happen to be prepared in-line, and you want to gamble a circular regarding pokies, so that you sign up for your own cell phone… and it’s also more sluggish than just swimming because of treacle. Jackpot Town even offers numerous types of fee remedies for match your requirements when creating in initial deposit.<\/p>\n

For pages of United kingdom, good shelter starts once they create the brand new Jackpotcity app. For each and every online game tile shows secret information (including jackpots, volatility, and you can lowest stakes) having an individual tap, making it possible for quick reviews prior to entering a title. If you encounter quicker performance otherwise screen errors, check your product resources prior to calling Jackpotcity help. On safer Jackpotcity ecosystem, you could circulate ? for the equilibrium, look for bonuses, and keep tabs on your transactions. To own Android fans who want to get a hold of Jackpotcity articles, this type of instructions are produced for United kingdom users. Rating dependable customer support and you will secure transactions created that have confidentiality planned to own United kingdom profiles.<\/p>\n

All deals is actually covered by a comparable SSL encryption, ensuring that debt studies remains safer. Signed up of the Malta Playing Power (MGA), Jackpot City NZ abides by strict regulatory conditions, making certain reasonable enjoy and monetary visibility. Whether or not you prefer to play to your a software otherwise using your internet browser, Jackpot Town NZ ensures that you may enjoy your favorite game wherever you\ufffdre, instead decreasing towards high quality otherwise safety. Within the suming skills available, with a totally seemed application and you will a cellular-optimized web site one to serves the needs of progressive members.<\/p>\n

The brand new “Ideal Picks” section reveals local favourites, trending United kingdom alternatives, and local exclusives for many who are interested in all of them. VIP members rating even more incentives, unique cashback, and consideration welcomes so you’re able to occurrences because of customised notifications. Initiate an eligible put which have the acknowledged payment strategies, and also the currency will show up within a few minutes. When you generate in initial deposit, matched up ? credits try automatically added to your account equilibrium, and 100 % free revolves arrive to your certain game. Which extra bundle usually matches your first deposit and supply you extra revolves for the specific gambling enterprise ports.<\/p>\n

If or not you would like short casual fun or a lot of time playing courses, you can always discover something fresh to play. Take pleasure in antique gameplay and you can vintage fun inside the an array of Flash-founded online game. Common tags are vehicle games, Minecraft, 2-athlete game, fits twenty-three video game, and mahjong. While a developer which have a game title the nation has to pick, here are some Poki to own Builders.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ever since then, the platform has grown to around thirty billion monthly pages Nevertheless, that have Microgaming, because they’re an enthusiastic umbrella for way too many less indy position studios and big hitters, you are difficult-pressed not to discover something to enjoy within headings. JW is the better gambling game\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-101770","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/101770","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=101770"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/101770\/revisions"}],"predecessor-version":[{"id":101771,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/101770\/revisions\/101771"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=101770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=101770"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=101770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}