/* 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":104527,"date":"2026-05-25T11:41:46","date_gmt":"2026-05-25T11:41:46","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=104527"},"modified":"2026-05-25T11:41:47","modified_gmt":"2026-05-25T11:41:47","slug":"join-now-from-the-jackpot-city-and-you-can-possess-ultimate-on-the-web-gambling-thrill","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/join-now-from-the-jackpot-city-and-you-can-possess-ultimate-on-the-web-gambling-thrill\/","title":{"rendered":"Join now from the Jackpot City and you can possess ultimate on the web gambling thrill"},"content":{"rendered":"

Since that time, the working platform is continuing to grow to over 30 mil month-to-month pages<\/h2>\n

Nonetheless, that have Microgaming, since they are a keen umbrella to own too many shorter indy position studios and you may large hitters, you are tough-pushed not to ever find something to enjoy within headings. JW is the better gambling video game I’ve discovered-came across global participants who turned family, and you may winning Genuine honors will make it uniquely unique.<\/p>\n

This enables to own smooth changes anywhere between pc and you will cellular gamble rather than one reduced visual high quality Vave<\/a> otherwise rate. Our program are powered by Microgaming, a scene chief inside gambling enterprise application, making sure most of the hand of blackjack and each spin of roulette controls was brought for the sharp hd. As well as, instead of other casino games, i have no wagering conditions towards payouts generated from your Totally free Spins promotions, in order to keep what you victory! No betting criteria to the totally free spin payouts. Users profit a real income to your online slots all day long, away from basic earnings in order to huge jackpot awards. You can play real money online slots games within Jackpot Town, an authorized and you may trusted ports local casino giving several vintage, video, and you will jackpot video game.<\/p>\n

The support team can be found to help which have any queries or things you ing experience. As well, the newest cellular-enhanced web site makes you enjoy straight from their browser instead of having to install the fresh application, making sure a smooth gambling sense on the road. Jackpot Town uses advanced encoding tech to safeguard yours guidance and you can monetary deals, making certain the playing feel is safe and you can secure. The newest local casino daily brings added bonus codes for current users, which can be redeemed for further totally free spins, deposit fits, or other advantages.<\/p>\n

Upgrade your cellular gambling feel by getting Jackpot City’s gambling establishment app<\/h2>\n

Repeating cellular gambling establishment incentives in the Jackpot Town occur usually, making it an easy task to enjoy your favourite games and have a great great playing sense. Put 24\/eight help, commitment program, and you will customized gambling establishment advertisements and you will Jackpot Town probably one of the most founded gambling establishment sites providing participants international from Canada, to help you NZ and much more the ability to gamble casino on the internet, cellular or via a cellular gambling establishment application. The brand new game was accessible into the every gadgets, and professionals is also put funds effortlessly using Visa, Neteller or any other preferred percentage procedures. Firstly, if you have ever starred for the an excellent Microgaming local casino for the mobile, you’ll recognise the latest common look and feel.<\/p>\n

Bonanza Megapays adds modern jackpots to that iconic slot, that can features the fresh Megaways gameplay auto technician. Bonanza Megapays by the Big style Gaming combines the new epic Megaways ports mechanic having fun Megapays modern jackpots. Wilds normally build and you may end in fun wins regarding the Starburst position from the NetEnt. Strike 3 or even more Scatter icons so you’re able to bring about the brand new free spins bullet, where you are able to connect a few of the greatest gains. Book of Dead of the Play’n Go guides you deep for the old Egypt with the daring explorer Rich Wilde.<\/p>\n

The brand new cellular program preserves an equivalent quality image and easy game play since desktop adaptation, having a wide selection of online game available. Jackpotcity Gambling enterprise was completely optimized to have cell phones, making certain people will enjoy their most favorite video game on the run. The brand new members was welcomed which have a generous sign-right up incentive, which might be matched up across the numerous deposits. Yes, Jackpotcity Gambling enterprise has the benefit of many incentives and advertisements to compliment the brand new betting experience. The platform is subscribed and controlled by the Malta Gambling Expert, making certain a secure and you can reasonable gaming ecosystem. The fresh new graphics try ideal-level, and the profits try swift.<\/p>\n

Within Jackpot Urban area, we have been happy to provide punctual, legitimate winnings within occasions of a legitimate detachment demand. As well as would a different sort of password to suit your membership and confirm that you will be more than 18 and now have take a look at Terms and you can Requirements. You might be wishing in line, and you may like to enjoy a round regarding pokies, so that you take-out the mobile… and it’s really actually more sluggish than swimming owing to treacle. Jackpot City also provides a multitude of payment ways to match your needs when designing in initial deposit.<\/p>\n

To have profiles regarding United kingdom, strong shelter begins after they create the newest Jackpotcity software. For each games tile suggests key details (like jackpots, volatility, and you can minimum stakes) having a single faucet, enabling prompt contrasting ahead of entering a subject. If you encounter faster overall performance or monitor problems, look at the unit resources just before contacting Jackpotcity assistance. On secure Jackpotcity ecosystem, you could potentially move ? on the balance, seek out incentives, and keep track of your own deals. To have Android os fans who want to get a hold of Jackpotcity stuff, this type of recommendations are manufactured for only Uk pages. Get reliable customer support and you will safe transactions created having privacy in mind for Uk profiles.<\/p>\n

All transactions was covered by the same SSL encryption, making certain that your financial investigation remains safe. Signed up because of the Malta Gambling Expert (MGA), Jackpot City NZ adheres to stringent regulatory conditions, making sure fair gamble and you will financial openness. Whether or not you would like to try out to your a software or via your browser, Jackpot Town NZ implies that you may enjoy your favorite game regardless of where you\ufffdre, in place of limiting to the quality or safety. For the suming experience readily available, that have a totally checked app and you can a mobile-enhanced website that serves the requirements of modern participants.<\/p>\n

The fresh new “Best Selections” point suggests local favourites, popular Uk options, and local exclusives for individuals who are curious about all of them. VIP people rating additional incentives, novel cashback, and you can top priority invitations so you’re able to situations as a result of personalised notifications. Begin an eligible deposit which have all acknowledged commission methods, and the currency arise within a few minutes. After you create in initial deposit, matched ? loans was immediately set in your account equilibrium, and you can totally free revolves appear to your certain game. That it bonus bundle usually suits the first put and gives your most revolves for the certain gambling establishment ports.<\/p>\n

Whether or not you need short relaxed fun or much time betting instruction, you can easily constantly discover something fresh to gamble. Take pleasure in vintage gameplay and you will classic fun for the numerous Flash-based online game. Common labels tend to be auto game, Minecraft, 2-player video game, suits twenty three games, and you may mahjong. While you are a creator having a-game the world has to see, listed below are some Poki to own Builders.<\/p>\n","protected":false},"excerpt":{"rendered":"

Since that time, the working platform is continuing to grow to over 30 mil month-to-month pages Nonetheless, that have Microgaming, since they are a keen umbrella to own too many shorter indy position studios and you may large hitters, you are tough-pushed not to ever find something to enjoy within\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-104527","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104527","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=104527"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104527\/revisions"}],"predecessor-version":[{"id":104529,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/104527\/revisions\/104529"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=104527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=104527"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=104527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}