/* 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":117076,"date":"2026-05-25T12:55:04","date_gmt":"2026-05-25T12:55:04","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=117076"},"modified":"2026-05-25T12:55:05","modified_gmt":"2026-05-25T12:55:05","slug":"join-now-within-jackpot-city-and-you-will-experience-the-ultimate-online-betting-thrill","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/join-now-within-jackpot-city-and-you-will-experience-the-ultimate-online-betting-thrill\/","title":{"rendered":"Join now within Jackpot City and you will experience the ultimate online betting thrill"},"content":{"rendered":"

Since then, the working platform has exploded to over thirty million month-to-month pages<\/h2>\n

However, which have Microgaming, since they’re a keen umbrella for too many faster indy position studios and larger hitters, you will be difficult-pressed to not ever find something to love in their titles. JW is best betting online game I have discovered-met globally users who turned friends, and you can effective Genuine prizes makes it uniquely unique.<\/p>\n

This permits getting seamless transitions ranging from desktop and you will mobile enjoy rather than people reduction in graphical high quality otherwise speed. Our very own program try powered by Microgaming, a world chief during the gambling establishment app, making sure every give out of blackjack and every spin of the roulette controls is actually introduced in the clean high definition. And, as opposed to other casino games, we have no wagering criteria on the earnings generated from your Free Revolves advertising, to continue that which you earn! Zero wagering criteria on the free twist profits. People victory real cash to the online slots non-stop, regarding standard winnings to big jackpot awards. You might play a real income online slots games during the Jackpot Town, a licensed and you can trusted harbors gambling enterprise providing several antique, video clips, and you can jackpot games.<\/p>\n

The help people can be acquired to assist which have questions or points you ing feel. While doing so, the new cellular-enhanced website makes you gamble directly from your own browser as opposed to being forced to install the fresh new software, guaranteeing a smooth betting sense away from home. Jackpot Area uses cutting-edge security development to safeguard your own personal pointers and you may economic purchases, ensuring that your gaming experience is safe and safe. The new gambling establishment regularly brings extra requirements for present users, and is redeemed for further free revolves, put matches, or any other perks.<\/p>\n

Upgrade your cellular betting feel by downloading Jackpot City’s gambling enterprise software<\/h2>\n

Repeated mobile gambling enterprise incentives at the Jackpot Area exists usually, making it an easy task to play your favourite video game and have an excellent higher playing sense. Include 24\/seven assistance, support system, and you can customized gambling establishment promotions and you can Jackpot Area perhaps one of the most centered local casino internet offering players all over the world off Canada, so you’re able to NZ and the ability to gamble gambling enterprise on line, mobile otherwise through a mobile casino application. The new game is accessible on the the products, and you can participants normally put money without difficulty using Charge, Neteller and other common commission strategies. First of all, if you have ever starred towards a good Microgaming gambling enterprise into the cellular, you can recognise the new familiar appearance and feel.<\/p>\n

Bonanza Megapays adds modern jackpots compared to that renowned position, which also features the fresh Megaways gameplay auto mechanic. Bonanza Megapays because of the Big time Playing combines the fresh legendary Megaways ports mechanic with fun Megapays modern jackpots. Wilds is also build and you can result in pleasing wins regarding Starburst position by NetEnt. Struck 3 or higher Spread out icons to lead to the latest free revolves round, where you can connect some of the greatest gains. Book of Dead by the Play’n Go guides you strong to your ancient Egypt together with the daring explorer Steeped Wilde.<\/p>\n

The fresh cellular system maintains a similar high quality image and easy gameplay since the desktop computer variation, which have a wide selection of game spinshake casino official site<\/a> readily available. Jackpotcity Gambling establishment is actually fully enhanced for mobile devices, making sure participants can also enjoy their favorite games while on the move. The brand new participants try asked having a big signal-right up extra, which are matched across several deposits. Sure, Jackpotcity Local casino even offers many bonuses and offers to enhance the fresh new betting experience. The working platform try licensed and you can regulated by Malta Betting Authority, making sure a secure and you may fair playing environment. The brand new picture is top-notch, and also the earnings is actually swift.<\/p>\n

At Jackpot Urban area, the audience is satisfied supply prompt, credible profits contained in this era regarding a valid detachment demand. Together with would an alternative account for the membership and make sure you will be more 18 as well as have check out the Words and you will Conditions. You might be wishing in-line, and you can you would like to play a round out of pokies, and that means you take-out their mobile phone… and it is also reduced than swimming because of treacle. Jackpot Urban area also provides numerous types of percentage approaches to suit your needs when designing a deposit.<\/p>\n

Getting profiles regarding British, strong safety begins once they sign up for the latest Jackpotcity app. For every single online game tile shows trick facts (including jackpots, volatility, and you may minimum stakes) with an individual faucet, allowing fast evaluations in advance of entering a concept. Should you decide stumble on shorter overall performance otherwise display screen errors, look at the equipment resources before contacting Jackpotcity help. On safer Jackpotcity ecosystem, you might move ? towards harmony, try to find bonuses, and sustain monitoring of your own deals. To possess Android admirers who want to see Jackpotcity stuff, these types of tips are built for just Uk profiles. Get reliable support service and secure deals created that have privacy at heart having Uk users.<\/p>\n

Every transactions was protected by a comparable SSL encoding, ensuring that debt data remains safer. Subscribed by the Malta Gaming Expert (MGA), Jackpot Area NZ abides by stringent regulating criteria, making certain reasonable gamble and you will financial visibility. If you would like to play into the a software or through your web browser, Jackpot Area NZ implies that you may enjoy your chosen game irrespective of where you\ufffdre, instead of decreasing on the quality or shelter. Inside the suming knowledge readily available, which have a completely featured app and you can a mobile-enhanced web site one serves the requirements of modern members.<\/p>\n

The brand new “Top Picks” part shows local favourites, popular British options, and you can regional exclusives for those who are interested in all of them. VIP players rating most bonuses, novel cashback, and concern invites to help you occurrences owing to personalised announcements. Initiate an eligible deposit that have all accepted fee strategies, plus the money will be within a few minutes. Once you generate in initial deposit, matched ? credits was immediately set in your account equilibrium, and you can 100 % free spins arrive to the particular games. So it extra bundle constantly matches the first put and offer you more revolves into the specific gambling enterprise slots.<\/p>\n

Whether you need quick casual enjoyable or enough time betting instructions, it is possible to always discover something new to gamble. Delight in classic gameplay and you can classic fun in the a wide range of Flash-depending video game. Prominent tags tend to be car games, Minecraft, 2-player game, match twenty-three video game, and you will mahjong. When you find yourself a designer having a-game the world has to find, listed below are some Poki for Developers.<\/p>\n","protected":false},"excerpt":{"rendered":"

Since then, the working platform has exploded to over thirty million month-to-month pages However, which have Microgaming, since they’re a keen umbrella for too many faster indy position studios and larger hitters, you will be difficult-pressed to not ever find something to love in their titles. JW is best betting\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-117076","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117076","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=117076"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117076\/revisions"}],"predecessor-version":[{"id":117077,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117076\/revisions\/117077"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=117076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=117076"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=117076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}