/* 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":136838,"date":"2026-05-27T20:04:49","date_gmt":"2026-05-27T20:04:49","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=136838"},"modified":"2026-05-27T20:04:50","modified_gmt":"2026-05-27T20:04:50","slug":"if-you-are-stuck-to-the-login-display-screen-dont-worry-this-is-usually-some-thing-simple","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/if-you-are-stuck-to-the-login-display-screen-dont-worry-this-is-usually-some-thing-simple\/","title":{"rendered":"If you are stuck to the login display screen, don’t worry-this is usually some thing simple"},"content":{"rendered":"

Start off today to see where your own chance takes you!<\/h2>\n

You can pounds-hand some thing on your mobile, thus need the next so you can double-look at it is all wrote proper. The brand new fast sign on on-line casino sense means that whether you are being able to access harbors, desk video game, or real time dealer alternatives, you’ll be to tackle within minutes away from entering your credentials. The latest fatbet casino log on user interface is designed with a pay attention to accessibility rather than compromising shelter. Rather than standard incentives, the fresh cashback commonly sells a significantly straight down wagering criteria (0x so you’re able to 5x), therefore it is a leading-worthy of equipment to possess money administration. Most of the advertising and marketing experience are tasked an alternative identifier, have a tendency to demanding an excellent fatbet local casino promotion password having activation inside the economic dash.<\/p>\n

However, and see a casino game free-of-charge, profiles need to subscribe\/sign in and pick \ufffdHabit Means\ufffd. Centered on your own gameplay, you may be tasked an amount, which you can get across from the to experience definitely at the gambling establishment. Provide economic and you may marketing perks in order to pages just who play here regularly, FatBet also offers a multiple-leveled Respect Program. It means one payouts off those revolves are going to be withdrawn instantly after gameplay standards try met. Immediately following enrolling, I had $15 within the extra cash and twenty five free spins.<\/p>\n

To conclude, signing in the Fatbet membership opens up the entranceway to a world from gambling thrill. Their dedicated class is preparing to assist you, ensuring your own feel remains smooth and you will fun. If you come upon one things during your sign on or gameplay, Fatbet’s support class is an email away at each slot also offers novel layouts featuring, making sure an exciting sense each time you play. If you haven’t registered yet, the newest sign-upwards procedure is quick and you can straightforward, letting you get in on the Fatbet neighborhood easily.<\/p>\n

Western european, Western, French, and – all the twist will bring the fresh adventure. FatBet Gambling enterprise works under an effective Curacao licenses, ensuring that all of the gaming issues try held quite and you will transparently. With the help of our simple actions out of the way, you’ll end up ready to dive on the field of on the internet betting in the FatBet Gambling establishment very quickly! Each day sales for example Half-price Saturday and Multiple Heap Friday give a great deal more thrill to your table. The newest casino’s cellular-amicable screen assures smooth gameplay on the-the-wade, when you’re its crypto-amicable put options allow an attractive selection for players trying to convenience and you may independence.<\/p>\n

Most of the video game optimize to have cell phones and you may pills. RNG-established blackjack, roulette (Eu and Western), baccarat, and you can web based poker variants readily available 24\/eight. https:\/\/aviafly2slot.win\/en-ie\/<\/a> Aviator from the Spribe guides this category along with its airplanes-dependent multiplier mechanic. Ozow features similarly, linking to the websites financial thru safe site. Visa and you can Mastercard function with 3d Safer verification – the lender sends an enthusiastic OTP to your phone.<\/p>\n

Spaceman also offers equivalent game play having an enthusiastic astronaut theme<\/h2>\n

The fresh new small print of using FatBet are easy to use and easy to obtain just at the bottom of the newest display screen. Luckily one FatBet enjoys a receptive webpages to make it easy for smart phone pages to possess usage of the fresh new desktop website instead of diminishing site rate otherwise picture. Members is signup a table for the alive specialist with out to compromise its name (because the, you are sure that, privacy policies), and you can see the bets away from almost every other professionals that you are at table having. How progressive slots job is super easy \ufffd you bet, you twist, you winnings \ufffd just like any almost every other slots video game.<\/p>\n

Having live playing, users can be follow game instantly and you may to switch its methods as the situations unfold, taking a vibrant and you will fast-moving experience. The new potential refresh usually, satisfying your any time you check in. Whether you’re trying an instant spin or settling set for a lengthened example, the instant-gamble configurations decreases options some time becomes one to the brand new reels less – try to check the extra terms and conditions and bet sensibly. Instant play in the Fatbet provides immediate access in order to a standard game collection, multiple payment solutions together with Bitcoin, and marketing even offers that work to possess browser instruction. Usually read the full conditions and terms in advance of taking people campaign – betting conditions, video game qualification, and you can cashout limits pertain.<\/p>\n

Southern African professionals supply online game regarding Practical Gamble, Progression, Habanero, Spribe, Evoplay, Elbet, and you may Purple Tiger as a consequence of a web browser-depending interface. Fatbet Casino aids multiple fee actions, plus Bitcoin, Credit card, and you may Visa, making certain seamless transactions. Simply register for a free account, go into the incentive code “AU50FB,” and commence to try out. The fresh top-notch party working for the platform knows the brand new signs and symptoms of disease gambling and how to operate on it quickly. If there’s one marketing communication which you wish to choose regarding, after that delight play with our very own contact form to improve your needs. For each and every group enjoys an easy to use software, high quality picture and you will first off, fair gamble making it a memorable feel.<\/p>\n

While you are playing with an android tool, you are able to download and run the fresh app that with an APK file. Sign-up all of us today to realize why FatBet Gambling enterprise try easily is a greatest solutions one of online casino lovers. See our for the-depth Fatbet Casino remark to possess a closer look, next register and begin doing your best with the current has the benefit of.<\/p>\n

Live cam ‘s the fastest station during the peak circumstances, while the FAQ talks about well-known sign-for the and you may incentive inquiries to care for very factors in place of slow down. In the event that things prevents their sign-for the otherwise extra claim, support is available because of FAQ, real time chat, and you will current email address immediately signed in the, supply countless titles out of top business particularly Betsoft, Spinomenal, Competition Gambling, Tom Horn Company, Fugaso, and much more. Shortly after finalized within the, your account suggests the newest invited package (100% to R25,000 + 100 Totally free Spins that have code FBCZ01) and you may instantaneous daily advertisements – usually do not waiting, day-after-day offers change at nighttime and ought to getting claimed an equivalent date.<\/p>\n

Commitment is highly appreciated in the Fatbet Gambling establishment, and you will the private 4-level VIP Pub was designed to generously prize the extremely devoted players. The new Fatbet Gambling enterprise added bonus structure is designed to render nice well worth so you can both the brand new and you will returning users. The fresh players going to Fatbet Gambling establishment is welcomed having a superb invited package built to boost their initial betting experience. The entire techniques is not difficult, easy, and you may student-amicable, regardless if you are on your laptop computer otherwise the cellular phone. The brand new Fatbet Gambling enterprise webpages works great into the cellular, whether you are playing with a telephone or pill.<\/p>\n","protected":false},"excerpt":{"rendered":"

Start off today to see where your own chance takes you! You can pounds-hand some thing on your mobile, thus need the next so you can double-look at it is all wrote proper. The brand new fast sign on on-line casino sense means that whether you are being able to\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-136838","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136838","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=136838"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136838\/revisions"}],"predecessor-version":[{"id":136839,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136838\/revisions\/136839"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=136838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=136838"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=136838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}