/* 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":121635,"date":"2026-05-25T13:16:17","date_gmt":"2026-05-25T13:16:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=121635"},"modified":"2026-05-25T13:16:17","modified_gmt":"2026-05-25T13:16:17","slug":"subscribe-today-within-jackpot-city-and-you-will-have-the-best-online-gambling-thrill","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/subscribe-today-within-jackpot-city-and-you-will-have-the-best-online-gambling-thrill\/","title":{"rendered":"Subscribe today within Jackpot City and you will have the best online gambling thrill"},"content":{"rendered":"

Ever since then, the working platform has grown to over 30 mil month-to-month pages<\/h2>\n

Still, that have Microgaming, because they’re an the online casino<\/a> enthusiastic umbrella getting too many smaller indy slot studios and larger hitters, you will end up tough-forced not to discover something to enjoy within headings. JW is the greatest playing games I have discovered-fulfilled global members whom turned into friends, and you will effective Real honors helps it be exclusively unique.<\/p>\n

This allows to have smooth changes ranging from pc and you will mobile enjoy instead any loss of graphical quality otherwise rates. All of our program was run on Microgaming, a scene frontrunner within the gambling enterprise application, making certain the give out of black-jack each spin of your roulette controls try produced for the sharp high definition. And, instead of other gambling games, we have no wagering requirements to your earnings produced from our Free Revolves promotions, to keep everything you win! No wagering requirements into the totally free spin payouts. People win a real income towards online slots throughout the day, from basic earnings to help you larger jackpot honours. You could potentially gamble real money online slots at Jackpot City, an authorized and you can trusted slots casino giving a wide selection of antique, films, and you can jackpot game.<\/p>\n

The support people is available to assist with questions or points your ing experience. In addition, the brand new mobile-optimized website enables you to play directly from the browser as opposed to being forced to obtain the fresh new app, ensuring a seamless gambling experience while on the move. Jackpot Town uses advanced encryption development to guard a advice and you can economic deals, making certain your gaming sense is secure and you will secure. The newest local casino on a regular basis provides bonus requirements having present pages, that is redeemed for further 100 % free spins, deposit matches, or other benefits.<\/p>\n

Upgrade your mobile gambling sense by downloading Jackpot City’s casino app<\/h2>\n

Recurring cellular gambling enterprise bonuses at the Jackpot Town exists have a tendency to, therefore it is an easy task to gamble a popular online game and have a great higher playing experience. Incorporate 24\/eight service, respect system, and tailored gambling establishment advertisements and you will Jackpot City perhaps one of the most based casino internet sites giving members globally off Canada, to help you NZ and much more the ability to play casino on the internet, cellular or thru a cellular casino software. The fresh new games is obtainable for the all of the gizmos, and participants is put money easily having fun with Charge, Neteller or any other preferred payment procedures. First, if you’ve ever starred for the a great Microgaming casino on the cellular, you can acknowledge the fresh familiar appearance and feel.<\/p>\n

Bonanza Megapays contributes progressive jackpots compared to that renowned position, which also features the latest Megaways gameplay mechanic. Bonanza Megapays because of the Big style Betting combines the fresh new legendary Megaways harbors mechanic with pleasing Megapays progressive jackpots. Wilds normally develop and cause pleasing wins on Starburst position because of the NetEnt. Hit twenty-three or higher Spread out symbols so you can end in the latest totally free revolves bullet, where you could connect some of the greatest gains. Publication regarding Deceased of the Play’n Wade takes you strong to your ancient Egypt with the adventurous explorer Rich Wilde.<\/p>\n

The newest mobile system keeps an identical top quality graphics and you will effortless game play as the desktop computer type, having several games offered. Jackpotcity Local casino is totally enhanced to own cell phones, ensuring that players will enjoy their favorite game on the go. The new participants try invited which have an ample signal-right up extra, which can be matched up across multiple dumps. Sure, Jackpotcity Gambling enterprise offers various bonuses and you will advertising to compliment the brand new betting feel. The working platform was subscribed and you may controlled from the Malta Playing Expert, ensuring a safe and you will reasonable gaming environment. The newest image was finest-level, and the winnings try swift.<\/p>\n

During the Jackpot Area, the audience is satisfied provide punctual, credible payouts within this era regarding a valid detachment consult. Along with create an alternative username and password for your account and make sure you are more 18 and now have take a look at Terms and Standards. You might be wishing in-line, and you will you would want to play a round of pokies, so that you take-out their cellular telephone… and it is even slowly than simply swimming as a consequence of treacle. Jackpot Area now offers a wide variety of fee remedies for fit your preferences when designing a deposit.<\/p>\n

To possess profiles of British, good protection starts when they sign up for the latest Jackpotcity app. Each video game tile shows trick info (such jackpots, volatility, and you will minimal stakes) which have one tap, enabling prompt reviews just before entering a title. Any time you come across quicker efficiency otherwise display mistakes, check your product info prior to contacting Jackpotcity support. On the secure Jackpotcity ecosystem, you might flow ? to the harmony, seek incentives, and sustain tabs on your deals. To have Android os admirers who would like to find Jackpotcity blogs, these types of rules are produced for only United kingdom pages. Get trustworthy customer care and safe transactions that are made that have privacy in your mind having Uk profiles.<\/p>\n

All purchases try protected by an equivalent SSL encoding, ensuring that your financial research remains secure. Licensed of the Malta Gambling Expert (MGA), Jackpot Area NZ adheres to stringent regulating standards, making sure fair play and you may economic openness. Whether you want to play to your a software or through your internet browser, Jackpot Area NZ ensures that you can enjoy your chosen game irrespective of where you\ufffdre, in place of limiting on the top quality or shelter. In the suming skills offered, having a fully looked application and you can a mobile-optimized webpages one to provides the needs of progressive users.<\/p>\n

The newest “Ideal Selections” part suggests local favourites, trending United kingdom alternatives, and you can regional exclusives if you are curious about all of them. VIP users get additional incentives, novel cashback, and you can consideration welcomes in order to events because of personalised notifications. Initiate an eligible deposit with the accepted payment actions, plus the currency can look in minutes. When you generate in initial deposit, matched ? loans is automatically placed into your bank account harmony, and you will totally free revolves appear towards specific video game. That it extra package usually fits your first deposit and provide your extra spins on the particular gambling establishment slots.<\/p>\n

If or not you prefer quick informal enjoyable otherwise long playing classes, you can easily usually discover something a new comer to enjoy. Enjoy antique gameplay and you may vintage enjoyable inside the an array of Flash-established game. Well-known labels include vehicle online game, Minecraft, 2-player game, match twenty-three games, and you may mahjong. While a developer which have a game title the nation must get a hold of, check out Poki to own Builders.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ever since then, the working platform has grown to over 30 mil month-to-month pages Still, that have Microgaming, because they’re an the online casino enthusiastic umbrella getting too many smaller indy slot studios and larger hitters, you will end up tough-forced not to discover something to enjoy within headings. JW\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-121635","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121635","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=121635"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121635\/revisions"}],"predecessor-version":[{"id":121638,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121635\/revisions\/121638"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=121635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=121635"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=121635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}