/* 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":125340,"date":"2026-05-25T13:27:10","date_gmt":"2026-05-25T13:27:10","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=125340"},"modified":"2026-05-25T13:27:11","modified_gmt":"2026-05-25T13:27:11","slug":"sign-up-now-at-the-jackpot-town-and-you-will-possess-biggest-on-line-playing-excitement","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/sign-up-now-at-the-jackpot-town-and-you-will-possess-biggest-on-line-playing-excitement\/","title":{"rendered":"Sign up now at the Jackpot Town and you will possess biggest on line playing excitement"},"content":{"rendered":"

Since that time, the working platform has expanded to over 30 million month-to-month profiles<\/h2>\n

Still, with Microgaming, as they are an umbrella for unnecessary less indy position studios and you will large hitters, you’ll be hard-pushed not to ever find something to love inside their headings. JW is the best gaming online game I’ve discovered-found global members which became family, and you will successful Actual prizes makes it exclusively unique.<\/p>\n

This permits for seamless transitions anywhere between desktop computer and you may mobile enjoy instead any loss in visual high quality otherwise price. Our system is run on Microgaming, a world frontrunner inside the local casino application, making certain that most of the hand out of black-jack each spin of one’s roulette controls is actually put within the crisp high definition. Plus, in lieu of almost every other online casino games, we have no wagering requirements into the payouts produced from your 100 % free Spins promotions, to keep everything winnings! Zero wagering conditions for the free spin payouts. People win a real income for the online slots games for hours on end, off practical winnings so you’re able to larger jackpot awards. You might gamble real money online slots within Jackpot Town, an authorized and you will leading ports casino providing a wide selection of vintage, films, and you will jackpot video game.<\/p>\n

The help people can be acquired to simply help having questions or items your ing feel. In addition, the fresh new cellular-enhanced web site enables you to play directly from their internet browser versus being required to visit site<\/a> install the fresh software, guaranteeing a seamless playing experience on the road. Jackpot Area uses state-of-the-art encoding technology to protect your suggestions and economic deals, making certain that your own gambling sense is secure and you will secure. The latest casino on a regular basis will bring extra requirements to own existing pages, which is redeemed for further 100 % free spins, put fits, and other perks.<\/p>\n

Upgrade your mobile betting feel by the getting Jackpot City’s casino app<\/h2>\n

Continual mobile gambling enterprise incentives during the Jackpot City are present commonly, it is therefore simple to enjoy a popular games and possess good great gaming feel. Create 24\/eight service, commitment system, and you may designed local casino campaigns and you can Jackpot Area perhaps one of the most depending gambling establishment sites providing users around the world off Canada, so you can NZ and a lot more the ability to gamble local casino on the web, cellular otherwise through a mobile local casino application. The fresh new video game is available for the all of the gizmos, and members is put funds effortlessly playing with Visa, Neteller or any other common fee actions. To start with, if you’ve ever played for the an excellent Microgaming gambling establishment for the cellular, you can easily acknowledge the latest familiar appearance and feel.<\/p>\n

Bonanza Megapays contributes modern jackpots to that iconic position, that also enjoys the brand new Megaways gameplay auto technician. Bonanza Megapays of the Big-time Playing combines the new legendary Megaways slots mechanic which have pleasing Megapays modern jackpots. Wilds is develop and you may trigger fascinating wins on Starburst slot from the NetEnt. Strike twenty-three or more Spread symbols so you’re able to result in the latest 100 % free spins round, where you are able to hook some of the biggest wins. Guide out of Dead by the Play’n Go goes strong to the old Egypt with the adventurous explorer Steeped Wilde.<\/p>\n

The fresh new mobile platform maintains a similar top quality image and you can effortless game play as the desktop variation, with various game available. Jackpotcity Local casino was totally optimized for smartphones, ensuring that users can enjoy their most favorite game on the run. The new players was asked with a big signal-up extra, which might be matched round the multiple places. Sure, Jackpotcity Local casino has the benefit of multiple bonuses and campaigns to enhance the new gaming experience. The platform try registered and managed of the Malta Gambling Power, guaranteeing a secure and you may fair betting ecosystem. The newest graphics was greatest-level, and winnings is quick.<\/p>\n

At the Jackpot City, we are pleased supply quick, reliable profits contained in this days out of a valid detachment demand. And would a different username and password to suit your membership and confirm that you will be over 18 and now have have a look at Terms and you will Requirements. You’re wishing lined up, and you can you’d like to play a spherical regarding pokies, so you remove the mobile… and it is also more sluggish than simply diving because of treacle. Jackpot Town even offers a multitude of payment methods to match your requirements when making in initial deposit.<\/p>\n

To possess pages away from Uk, solid defense initiate once they create the fresh new Jackpotcity app. Each game tile shows trick info (particularly jackpots, volatility, and you can minimal bet) which have just one faucet, making it possible for prompt reviews ahead of entering a subject. In the event that you come across quicker performance or display screen errors, look at the device information before getting in touch with Jackpotcity support. Regarding safer Jackpotcity ecosystem, you could potentially circulate ? for the equilibrium, check for incentives, and keep monitoring of your purchases. To possess Android os fans who would like to come across Jackpotcity blogs, these guidelines are made for British pages. Get trustworthy support service and you can safer deals that are made which have privacy in mind to have Uk users.<\/p>\n

The purchases is protected by an identical SSL security, making certain your financial data stays safe. Registered because of the Malta Playing Expert (MGA), Jackpot City NZ adheres to strict regulatory standards, guaranteeing fair gamble and monetary visibility. If need to tackle on the an app otherwise via your web browser, Jackpot Urban area NZ ensures that you can enjoy your preferred games regardless of where you\ufffdre, in place of decreasing towards high quality otherwise defense. During the suming enjoy available, that have a completely featured application and you may a mobile-optimized site that caters to the needs of modern professionals.<\/p>\n

The newest “Top Picks” part reveals local favourites, trending British alternatives, and regional exclusives if you are interested in them. VIP participants rating even more bonuses, unique cashback, and you can top priority invitations in order to events owing to personalised announcements. Initiate an eligible deposit with some of the acknowledged percentage procedures, while the currency arise within a few minutes. Once you make a deposit, paired ? credit are automatically placed into your bank account equilibrium, and free revolves appear on the particular game. It incentive plan constantly matches your first put and offer you extra revolves on the certain gambling enterprise ports.<\/p>\n

Whether you prefer small relaxed fun or much time gaming training, you are able to usually discover something new to play. See vintage gameplay and vintage enjoyable during the many Flash-depending games. Common labels are auto game, Minecraft, 2-athlete game, matches twenty-three video game, and mahjong. When you are a creator with a game title the nation needs to find, here are a few Poki to own Builders.<\/p>\n","protected":false},"excerpt":{"rendered":"

Since that time, the working platform has expanded to over 30 million month-to-month profiles Still, with Microgaming, as they are an umbrella for unnecessary less indy position studios and you will large hitters, you’ll be hard-pushed not to ever find something to love inside their headings. JW is the best\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-125340","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125340","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=125340"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125340\/revisions"}],"predecessor-version":[{"id":125344,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125340\/revisions\/125344"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=125340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=125340"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=125340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}