/* 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":135676,"date":"2026-05-27T19:31:20","date_gmt":"2026-05-27T19:31:20","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=135676"},"modified":"2026-05-27T19:31:22","modified_gmt":"2026-05-27T19:31:22","slug":"when-you-find-yourself-stuck-for-the-log-in-display-screen-dont-worry-normally-this-is-things-simple","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/when-you-find-yourself-stuck-for-the-log-in-display-screen-dont-worry-normally-this-is-things-simple\/","title":{"rendered":"When you find yourself stuck for the log in display screen, don’t worry-normally, this is things simple"},"content":{"rendered":"

Get started today and see in which your own fortune guides you!<\/h2>\n

It’s not hard to lbs-finger something on the cellular telephone, therefore need another to twice-view it is all authored proper. The new timely login internet casino experience ensures that whether you are being able to access slots, desk online game, or real time agent possibilities, you will end up to experience within seconds from entering your back ground. The latest fatbet casino login program is designed which have a pay attention to access rather than limiting protection. As opposed to practical bonuses, the new cashback have a tendency to sells a substantially lower wagering demands (0x in order to 5x), making it a top-well worth unit having money government. All promotional knowledge try assigned a different sort of identifier, have a tendency to demanding an effective fatbet casino discount password to own activation within the economic dash.<\/p>\n

However, and discover a game at no cost, users need certainly to signup\/check in and pick \ufffdPractice Mode\ufffd. Considering the gameplay, you happen to be assigned an amount, which you yourself can get across by to tackle definitely in the gambling establishment. Giving financial and you can marketing rewards so you’re able to pages just who play here daily, FatBet also offers a multiple-leveled Loyalty System. It indicates one earnings off the individuals revolves will be taken quickly once gameplay criteria are came across. Immediately following signing up, I had $15 for the extra dollars and you may twenty-five free revolves.<\/p>\n

To conclude, signing into the Fatbet membership opens up the doorway so you’re able to a scene of playing excitement. Its dedicated class is able to help, ensuring your experience stays smooth and you will enjoyable. If you stumble on people facts during your log on otherwise game play, Fatbet’s support class merely a contact away at every slot even offers novel themes featuring, making sure a fantastic feel each time you play. For individuals who haven’t inserted yet ,, the newest sign-right up processes is quick and simple, letting you join the Fatbet area with ease.<\/p>\n

Eu, American, French, plus – the spin will bring the brand new thrill. FatBet Gambling enterprise works under a great Curacao license, ensuring that all of the playing facts was presented very and you can transparently. With the simple steps off the beaten track, you’ll end up happy to plunge into the realm of on the internet gambling during the FatBet Gambling enterprise in no time! Day-after-day selling particularly Half-price Tuesday and you can Triple Stack Friday promote much more adventure into the dining table. The fresh casino’s mobile-amicable software assures seamless game play on the-the-go, when you’re their crypto-amicable deposit possibilities make it an appealing selection for users seeking benefits and you can liberty.<\/p>\n

Every games optimize to possess cell phones and you can tablets. RNG-based blackjack, roulette (Eu and you will American), baccarat, and you can poker variations offered 24\/eight. Aviator from the Spribe leads these kinds featuring its jet-dependent multiplier mechanic. Ozow qualities also, connecting for the internet banking via safer webpage. Charge and you can Charge card sort out 3d Safer verification – their lender delivers an enthusiastic OTP to the cell phone.<\/p>\n

Spaceman offers equivalent gameplay which have a keen astronaut theme<\/h2>\n

The fresh new terms and conditions of using FatBet are very an easy task to use and easy discover close to the base of the brand new display screen. Luckily for us one to FatBet has a responsive site and make Aviamasters \u0995\u09cb\u09a5\u09be\u09af\u09bc \u0996\u09c7\u09b2\u09ac\u09c7\u09a8<\/a> it easy to possess smart phone profiles having access to the fresh pc site instead reducing site speed or image. Players is also sign up a desk towards real time dealer devoid of to crack the identity (because the, you are aware, confidentiality guidelines), and you can comprehend the wagers away from other members that you’re from the dining table that have. Exactly how modern slots job is very easy \ufffd without a doubt, you twist, you earn \ufffd just like any most other harbors game.<\/p>\n

That have alive gaming, people is realize games instantly and you can to improve its tips while the occurrences unfold, bringing a vibrant and you may punctual-paced experience. The brand new possibilities renew always, fulfilling you any time you check in. Regardless if you are looking to a fast spin or repaying in for an effective prolonged lesson, the instant-play settings decrease options time and becomes one the brand new reels less – you will need to check the bonus terminology and bet sensibly. Quick gamble from the Fatbet provides quick access to help you an over-all online game collection, multiple commission possibilities together with Bitcoin, and you can advertising also offers that really work to own browser courses. Always have a look at complete terms and conditions just before recognizing any promotion – betting criteria, video game qualification, and cashout limits use.<\/p>\n

South African members availableness game away from Practical Gamble, Development, Habanero, Spribe, Evoplay, Elbet, and you can Red-colored Tiger due to a web browser-established software. Fatbet Local casino supporting a variety of percentage strategies, in addition to Bitcoin, Credit card, and Charge, guaranteeing seamless deals. Simply create a free account, enter the added bonus password “AU50FB,” and commence to relax and play. The latest elite group cluster doing work for the working platform understands the latest signs of problem gambling and how to act on it quickly. If there’s people advertising and marketing correspondence that you wish to opt of, upcoming excite use the contact form in order to improve your choice. For every single classification enjoys an user friendly program, high quality picture and you may first off, fair enjoy to really make it an unforgettable sense.<\/p>\n

While using an android tool, you can download and install the fresh new software that with an APK document. Subscribe all of us today to discover why FatBet Casino try quickly getting a greatest choices certainly one of on-line casino fans. Read the within the-depth Fatbet Gambling enterprise feedback to possess a closer look, then register and start doing your best with the present now offers.<\/p>\n

Alive talk is the quickest route during the level occasions, and FAQ talks about popular indication-during the and you may incentive questions to help you resolve really things rather than impede. In the event that things stops your own sign-during the otherwise added bonus allege, assistance exists owing to FAQ, real time chat, and you can current email address at once closed in the, access a huge selection of titles off best business particularly Betsoft, Spinomenal, Opponent Gaming, Tom Horn Company, Fugaso, plus. Just after signed inside the, your bank account shows the new acceptance plan (100% to R25,000 + 100 Free Spins that have password FBCZ01) and you will quick every single day advertising – don’t hold off, day-after-day also offers changes at midnight and must be reported a similar day.<\/p>\n

Loyalty is highly cherished from the Fatbet Gambling establishment, and you will the exclusive four-level VIP Club is designed to generously prize our very own most dedicated people. The latest Fatbet Gambling establishment bonus framework was designed to provide ample value in order to one another the new and you will going back members. The latest professionals arriving at Fatbet Casino is actually welcomed having an exceptional welcome plan designed to improve their very first playing sense. The complete process is easy, easy, and you may student-friendly, whether you are on the notebook or your mobile. The fresh new Fatbet Local casino webpages works great to the cellular, whether you are using a telephone otherwise tablet.<\/p>\n","protected":false},"excerpt":{"rendered":"

Get started today and see in which your own fortune guides you! It’s not hard to lbs-finger something on the cellular telephone, therefore need another to twice-view it is all authored proper. The new timely login internet casino experience ensures that whether you are being able to access slots, desk\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-135676","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135676","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=135676"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135676\/revisions"}],"predecessor-version":[{"id":135677,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135676\/revisions\/135677"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=135676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=135676"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=135676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}