/* 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":121877,"date":"2026-05-25T13:16:58","date_gmt":"2026-05-25T13:16:58","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=121877"},"modified":"2026-05-25T13:16:58","modified_gmt":"2026-05-25T13:16:58","slug":"join-today-at-the-jackpot-town-and-you-will-have-the-best-on-the-internet-playing-excitement","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/join-today-at-the-jackpot-town-and-you-will-have-the-best-on-the-internet-playing-excitement\/","title":{"rendered":"Join today at the Jackpot Town and you will have the best on the internet playing excitement"},"content":{"rendered":"

Subsequently, the working platform has grown to around thirty mil month-to-month profiles<\/h2>\n

Nevertheless, that have Microgaming, as they are an umbrella to own a lot of faster indy position studios and large hitters, you are difficult-pressed not to find something to love within titles. JW is the best playing video game I’ve found-came across worldwide users exactly who turned into family, and you will winning Genuine awards causes it to be exclusively special.<\/p>\n

This enables getting seamless changes ranging from pc and mobile play instead of one loss of visual high quality or price. All of our system is running on Microgaming, a scene chief during the local casino software, making certain all hand regarding black-jack and each spin of the roulette controls are brought inside the crisp hd. As well as, in lieu of most other gambling games, we have zero betting criteria to your winnings produced from our Totally free Spins offers, so you can keep what you earn! No wagering criteria into the free spin winnings. Players winnings real money towards online slots all day, of standard payouts to help you larger jackpot honors. You could play a real income online slots within Jackpot Urban area, an authorized and you will trusted harbors casino providing various antique, clips, and jackpot games.<\/p>\n

The support team exists to help which have any queries or facts your ing feel. Simultaneously, the fresh cellular-optimized site makes you play directly from your own web browser instead of needing to obtain the fresh new software, making certain a seamless gaming experience on the run. Jackpot City spends cutting-edge security development to safeguard your personal recommendations and you may economic purchases, making certain your betting feel is secure and secure. The new gambling establishment frequently provides incentive rules to own current users, that is redeemed for additional totally free spins, deposit fits, or other perks.<\/p>\n

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

Recurring cellular casino bonuses during the Jackpot City occur have a tendency to, therefore it is easy to enjoy a popular games and now have a good high playing sense. Put 24\/7 support, commitment system, and you may designed casino promotions and you may Jackpot City one of the most founded casino sites providing people all over the world of Canada, to help you NZ and a lot more the ability to play local casino on the internet, mobile otherwise through a mobile gambling establishment app. The brand new video game is actually accessible towards most of the products, and you may people can also be put finance with ease having fun with Visa, Neteller and other preferred fee actions. First of all, if you’ve ever starred on the a great Microgaming gambling enterprise on the mobile, you’ll recognise the new common appearance and feel.<\/p>\n

Bonanza Megapays contributes modern jackpots to this legendary position, that can has the fresh new Megaways game play auto technician. Bonanza Megapays by the Big time Gambling integrates the new epic Megaways slots mechanic having enjoyable Megapays modern jackpots. Wilds is build and you may lead to exciting gains from the Starburst position of the NetEnt. Strike 3 or even more Spread out icons to help you trigger the newest 100 % free spins bullet, where you could catch a number of the greatest victories. Book off Lifeless by Play’n Wade guides you deep into the old Egypt with the daring explorer Steeped Wilde.<\/p>\n

The newest cellular program maintains a similar high quality graphics and effortless gameplay while the desktop computer type, that have a wide selection of video game readily available. Jackpotcity Gambling establishment was totally Spicy Jackpots no deposit bonus<\/a> optimized getting mobile devices, ensuring that players will enjoy their most favorite video game on the go. The fresh new users is welcomed that have a good indication-right up added bonus, which may be matched up all over several deposits. Sure, Jackpotcity Gambling establishment even offers a number of incentives and you may advertisements to enhance the fresh gaming sense. The platform try registered and you will controlled because of the Malta Playing Authority, guaranteeing a secure and you will fair playing environment. The brand new picture are better-level, and the winnings try swift.<\/p>\n

Within Jackpot Area, we’re proud provide prompt, reputable winnings within this days regarding a legitimate withdrawal consult. In addition to perform another username and password for the account and make sure you are more 18 as well as have investigate Terms and Standards. You happen to be wishing in-line, and you want to play a circular out of pokies, so you take-out your own cell phone… and it’s really even more sluggish than swimming as a consequence of treacle. Jackpot Town offers a wide variety of percentage solutions to match your requirements when creating a deposit.<\/p>\n

To own users away from United kingdom, strong shelter begins when they register for the brand new Jackpotcity software. For every video game tile reveals key details (such jackpots, volatility, and you will minimum stakes) which have one faucet, making it possible for timely reviews ahead of typing a concept. Any time you find reduced performance otherwise monitor mistakes, look at the tool information prior to getting in touch with Jackpotcity help. Regarding the safer Jackpotcity ecosystem, you could potentially flow ? for the balance, search for incentives, and maintain monitoring of your deals. To have Android os fans who wish to find Jackpotcity blogs, such rules are manufactured for just United kingdom profiles. Get reliable customer care and you will safer deals that are made with privacy planned to have Uk profiles.<\/p>\n

Every purchases try included in the same SSL encryption, ensuring that debt data remains safer. Registered of the Malta Gambling Expert (MGA), Jackpot Town NZ abides by strict regulating conditions, making certain reasonable play and you will monetary transparency. Whether or not you want to try out towards an app otherwise using your web browser, Jackpot City NZ means that you can enjoy your favorite game regardless of where you\ufffdre, rather than decreasing for the top quality or safeguards. During the suming experiences offered, which have a fully searched app and you may a cellular-optimized site one to provides the requirements of modern people.<\/p>\n

The latest “Finest Picks” part shows regional favourites, trending British choices, and you may local exclusives for many who are curious about them. VIP users rating extra bonuses, book cashback, and you will priority invitations so you’re able to incidents thanks to personalised notifications. Begin an eligible put with any of the recognized percentage methods, plus the money will be in minutes. When you make a deposit, matched ? credit are immediately added to your bank account equilibrium, and you may 100 % free spins arrive into the specific online game. Which extra bundle constantly suits very first put and provide your even more spins into the specific gambling establishment ports.<\/p>\n

If or not you prefer small relaxed enjoyable or enough time betting courses, you’ll be able to always find something a new comer to enjoy. Appreciate classic game play and you will vintage enjoyable inside a wide range of Flash-centered games. Prominent labels become automobile games, Minecraft, 2-user video game, meets twenty three online game, and you can mahjong. While you are a creator having a casino game the nation must come across, here are a few Poki to own Designers.<\/p>\n","protected":false},"excerpt":{"rendered":"

Subsequently, the working platform has grown to around thirty mil month-to-month profiles Nevertheless, that have Microgaming, as they are an umbrella to own a lot of faster indy position studios and large hitters, you are difficult-pressed not to find something to love within titles. JW is the best playing video\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-121877","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121877","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=121877"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121877\/revisions"}],"predecessor-version":[{"id":121878,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121877\/revisions\/121878"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=121877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=121877"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=121877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}