/* 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":125821,"date":"2026-05-25T13:27:42","date_gmt":"2026-05-25T13:27:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=125821"},"modified":"2026-05-25T13:27:43","modified_gmt":"2026-05-25T13:27:43","slug":"join-now-at-jackpot-area-and-you-will-have-the-ultimate-on-line-playing-thrill","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/join-now-at-jackpot-area-and-you-will-have-the-ultimate-on-line-playing-thrill\/","title":{"rendered":"Join now at Jackpot Area and you will have the ultimate on line playing thrill"},"content":{"rendered":"

Ever since then, the platform is continuing to grow to over thirty mil monthly profiles<\/h2>\n

Nevertheless, which have Microgaming, since they’re a keen umbrella to own too many faster indy position studios and you will huge hitters, you will be tough-forced not to ever discover something to enjoy within titles. JW is the greatest gaming game I have discovered-fulfilled around the world professionals exactly who turned into relatives, and you can winning Real awards causes it to be distinctively special.<\/p>\n

This enables having seamless changes between pc and cellular play versus people loss in visual quality otherwise price. Our system was powered by Microgaming, a scene leader inside casino software, making certain all the hands away from black-jack each twist of one’s roulette controls try introduced for the crisp high definition. Along with, rather than most other casino games, we have no wagering conditions into the earnings produced from our Free Revolves campaigns, so you can continue what you profit! Zero wagering conditions on the free twist payouts. Players win real money on the online slots right through the day, out of practical profits so you’re able to larger jackpot honors. You might gamble real cash online slots games in the Jackpot Urban area, a licensed and you may trusted ports local casino providing a wide selection of vintage, clips, and you can jackpot video game.<\/p>\n

The assistance class can be found to aid having any questions or factors you ing feel. While doing so, the new mobile-optimized website makes you gamble directly from your own web browser instead being forced to obtain the new app, ensuring a seamless gaming experience on the run. Jackpot City uses cutting-edge encryption development to protect your own personal guidance and you can economic purchases, making certain that your gaming experience is safe and you will safe. The newest gambling establishment continuously will bring added bonus requirements to have established profiles, that is redeemed for additional free revolves, deposit suits, or other advantages.<\/p>\n

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

Continual cellular gambling establishment bonuses during the Jackpot Area exists tend to, it is therefore easy to enjoy a favourite online game as well as have a great great playing experience. Put 24\/7 support, respect program, and you can designed gambling enterprise promotions and you will Jackpot Urban tonybet-casino-nederland.nl<\/a> area perhaps one of the most established casino sites providing users international of Canada, so you’re able to NZ and a lot more the ability to gamble casino on line, mobile or thru a mobile gambling establishment software. The brand new video game is actually available for the every gizmos, and you can professionals can deposit financing easily playing with Visa, Neteller or any other well-known commission methods. First of all, if you have ever played towards good Microgaming local casino to the cellular, it is possible to acknowledge the new familiar feel and look.<\/p>\n

Bonanza Megapays contributes progressive jackpots compared to that iconic slot, that can enjoys the fresh Megaways gameplay auto technician. Bonanza Megapays because of the Big time Betting combines the latest epic Megaways harbors auto technician with pleasing Megapays modern jackpots. Wilds is grow and bring about fun gains in the Starburst position of the NetEnt. Strike twenty three or even more Spread out icons to trigger the latest free revolves bullet, where you can catch some of the biggest gains. Book of Dead of the Play’n Go guides you deep into the ancient Egypt with the adventurous explorer Rich Wilde.<\/p>\n

The brand new cellular system maintains a comparable high quality graphics and you can smooth game play because pc adaptation, having various games offered. Jackpotcity Gambling establishment are totally enhanced to have cell phones, ensuring that users will enjoy their favorite video game on the road. The fresh people was welcomed having a nice sign-right up added bonus, which may be matched up across numerous deposits. Sure, Jackpotcity Local casino now offers many incentives and you will offers to compliment the new gambling experience. The working platform is actually subscribed and managed of the Malta Betting Authority, making sure a safe and you will reasonable playing environment. The brand new picture was top-level, plus the winnings was swift.<\/p>\n

At Jackpot City, we have been happy to give quick, legitimate earnings within this era from a legitimate withdrawal demand. As well as would an alternative account for the account and you may confirm that you’re more 18 and get have a look at Terms and conditions and you will Requirements. You are wishing lined up, and you can you may like to enjoy a circular from pokies, which means you sign up for their cellular phone… and it’s really even more sluggish than simply diving as a consequence of treacle. Jackpot City has the benefit of numerous types of fee answers to match your preferences when designing in initial deposit.<\/p>\n

Getting pages of United kingdom, good protection starts after they sign up for the fresh new Jackpotcity software. For each and every online game tile shows trick details (such as jackpots, volatility, and you may minimum limits) that have one tap, making it possible for prompt reviews ahead of typing a concept. Should you stumble on shorter overall performance or display mistakes, look at the device information just before getting in touch with Jackpotcity service. In the secure Jackpotcity ecosystem, you can disperse ? on the harmony, look for bonuses, and continue maintaining track of the purchases. To own Android fans who wish to pick Jackpotcity content, this type of recommendations are created for only United kingdom pages. Score trustworthy customer service and you will safer purchases created with privacy in mind having British pages.<\/p>\n

Every transactions is actually protected by a similar SSL encryption, making certain debt data stays safe. Signed up by Malta Gaming Authority (MGA), Jackpot Area NZ abides by strict regulating standards, ensuring reasonable gamble and monetary transparency. Whether you want to play to the an application otherwise throughout your web browser, Jackpot Urban area NZ means that you may enjoy your preferred online game regardless of where you\ufffdre, rather than compromising into the quality or security. In the suming enjoy readily available, with a fully featured app and you will a mobile-enhanced web site you to serves the requirements of progressive members.<\/p>\n

The latest “Ideal Selections” area suggests local favourites, popular British options, and you may local exclusives for individuals who are interested in all of them. VIP users get extra incentives, book cashback, and you will priority invitations so you can situations because of customised notifications. Start an eligible deposit with any of the acknowledged fee actions, while the money will be in minutes. When you generate a deposit, coordinated ? loans is immediately added to your bank account balance, and you may totally free revolves arrive towards certain online game. Which extra plan constantly matches very first put and gives you even more revolves into the particular local casino ports.<\/p>\n

If or not need small informal fun otherwise enough time betting instructions, you can easily usually discover something a new comer to play. Delight in antique game play and you may classic fun during the numerous Flash-founded game. Common tags include automobile online game, Minecraft, 2-player online game, suits twenty-three online game, and you will mahjong. When you find yourself a creator that have a casino game the country must discover, check out Poki getting Designers.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ever since then, the platform is continuing to grow to over thirty mil monthly profiles Nevertheless, which have Microgaming, since they’re a keen umbrella to own too many faster indy position studios and you will huge hitters, you will be tough-forced not to ever discover something to enjoy within titles.\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-125821","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125821","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=125821"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125821\/revisions"}],"predecessor-version":[{"id":125851,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/125821\/revisions\/125851"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=125821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=125821"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=125821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}