/* 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":15160,"date":"2026-05-08T21:45:10","date_gmt":"2026-05-08T21:45:10","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=15160"},"modified":"2026-05-08T21:45:11","modified_gmt":"2026-05-08T21:45:11","slug":"for-each-and-every-10-you-bet-to-the-casino-games-youll-discover-1-compensation-point","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/for-each-and-every-10-you-bet-to-the-casino-games-youll-discover-1-compensation-point\/","title":{"rendered":"For each and every ?10 you bet to the casino games, you’ll discover 1 Compensation Point"},"content":{"rendered":"

It is extremely simply for Friday Biggest League and you may FA Mug fits, which decreases independency outside that exact plan. Since the free bet is capped at ?5, they still provides an important pillow, particularly for relaxed gamblers who could be tinkering with Bet Builder combinations. This however pushes gamblers to think more meticulously on match fictional character, combining desires, player statistics, or other inside-play incidents in the exact same installation.<\/p>\n

Whether you’re once free revolves, allowed bonuses, otherwise reloads, Evaluate the big selections effortlessly that have King’s guide’s arranged means.. You\ufffdre because of the variety of 12 incentives, that allow that enjoy a popular slot games. While you are accessing the website otherwise app, you might be expected to change your location on to ensure their whereabouts.<\/p>\n

However if you will be immediately following worthy of, decide for the cash-it includes an informed value for your money<\/h2>\n

Once you discovered your free spins, please be aware you need to make use of these contained in this 7 days to profit on the signup bonuses. The brand new BetFred strategy having internet casino users sees new clients located 100 100 % free revolves since the a pleasant Extra. Promote the house off into the Bingo Allowed Incentive Promotion Code from the Betfred, you’ll receive, to have a share of ?ten on the BetFred Bingo, ?ten within the bingo incentives together with 100 totally free revolves by using the password BINGO100. There is also an online athletics where digital bets is going to be produced for the a mobile, desktop computer, otherwise pill, that have areas like pony rushing, greyhounds, system racing, and you can recreations offered.<\/p>\n

If you’re looking to possess a premier-high quality all-round gaming experience, Betfred rhino casino<\/a> will be your closest friend. If you are possibly a tiny sluggish on the handling timescales, specifically for initially distributions, I found myself happy with the new variety of percentage options being offered by the Betfred Casino, for both put and you can detachment. Running from distributions usually takes as much as 2 days in a number of circumstances but they attempt to done what you the same go out in which you can. Betfred supports a variety of some other fee procedures, as well as debit cards, immediate bank transfers, along with elizabeth-purses PayPal, Neteller and you can Skrill.<\/p>\n

A batch of 100 Betfred free spins awaits the newest players which get in on the well-known local casino, and the promote is related to many harbors. For each ?ten gambled in the local casino towards any online game, the ball player gets you to comp section. The video game library also features several table games, video poker computers, keno and bingo games, scratch notes and so forth.<\/p>\n

Top-level players along with open usage of personal games and private position competitions, some that have prize pools soaring more than ?5,000. But it’s not a great \ufffdset it up and tend to forget it\ufffd system. You could be turning one into the ?50+ each week if you are to experience regularly.<\/p>\n

This really is including used in beginner gamblers, assisting to monitor a greater variety of bets. When you’re keen on sporting events gambling, you could make use of Betfred’s choice creator! At this time, while the online streaming has been the fresh new, it’s some time minimal, nevertheless the athlete is very effective and then we don’t see much buffering. Be aware that cashout can not be reached around the every recreations, and also you can’t use it and betting bonuses. The newest Betfred application is additionally a just about all-rounder getting gambling, offering the over sportsbook sense as well as the gambling establishment, bingo and you may lotto features! It offers an application that really works to the ios and you can Android os equipment, giving a softer cellular expertise in a streamlined design for the smaller display.<\/p>\n

To increase up the ranking less, make use of part multipliers and you can enjoy frequently-structure takes care of<\/h2>\n

There’s absolutely no Betfred discount password, having profiles only needing to signup because the normal to help you claim its signal-up render. Once your ?ten bet are compensated, you’ll get ?50 for the totally free wager finance to utilize into the sporting events locations you desire. When the increased accumulators, hat-key havens, and you will Betfred’s highly regarded website and best playing app experience just weren’t sufficient to keep gamblers returning, Greatest Rates-an advertising that fits the best opportunity provided by competitor bookies-seals the deal. For each base more four fixtures may be worth 2.5%, very a hefty 20 show should be thought precisely getting gamblers to earn the maximum 100% incentive strategy. If the their accumulator is actually upset by the a singular plucky result\ufffdas it is irritatingly normal\ufffdthe fresh new bettors’ share, getting it\ufffds ?ten or shorter, is actually returned.<\/p>\n

Being in the uk wagering market for a significant period of time, Betfred has an extended history in the business. 100%, 50% and you will 100% added bonus to your very first three deposits doing $700 for each, as well as 20 free spins for each and every. Min. ?10 for the lives dumps called for. Their thorough Real time Local casino features real traders communicating immediately, getting a highly authentic local casino experience. Just register an account and employ the brand new promotion code \ufffdLive’ to receive their ?ten incentive for use in the Betfred Real time Gambling establishment. Immediately after going into the Boom Dream Promo Password Bookies, new registered users may make use of a big invited bonus.<\/p>\n

Betfred has the benefit of \ufffdbest odds’ and you can \ufffdchance guaranteed’ sale, ensuring customers receive the very beneficial cost on the pony rushing wagers. This ought to be produced thru debit card, even when an entire variety of put tips is roofed less than. There aren’t any wagering standards towards Betfred signal-up promote, which means that you don’t have to wager your profits in order to withdraw all of them.<\/p>\n

For those who lay a lucky 15, Happy 31 otherwise a lucky 63 towards horse racing or greyhounds, Betfred will provide a profit if only among the options victory. Betfred You to definitely Added bonus Champion is an additional present customers offer for horse race and you may greyhound fans. Certain can be used around the multiple sporting events, while other people are having particular recreations, so make sure you read on to learn which campaigns try designed for the brand new recreations you may like to bet on. The quantity needed seriously to choice is faster into the Coral and you may Ladbrokes since you only have to bet ?5, however with all of them not giving up to Betfred, they shows how good a give you the Betfred you’re.<\/p>\n

By using Skrill or Neteller, change to an excellent debit cards to the very first put or if you tend to quickly eradicate qualifications towards flagship sale. Endeavor to obvious one to bonus at once, heed slots with 96%+ RTP having quicker turnover, and not surpass the new $\/?5 choice cover or if you chance confiscation. While the a genuine no-put bargain, allowing you shot the platform and you will, for those who struck, probably cash out in place of risking their money. Make certain your own contact number and you will opt in the within this 2 days regarding sign-up to found 50 spins for the \ufffdStarburst\ufffd.<\/p>\n","protected":false},"excerpt":{"rendered":"

It is extremely simply for Friday Biggest League and you may FA Mug fits, which decreases independency outside that exact plan. Since the free bet is capped at ?5, they still provides an important pillow, particularly for relaxed gamblers who could be tinkering with Bet Builder combinations. This however pushes\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-15160","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/15160","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=15160"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/15160\/revisions"}],"predecessor-version":[{"id":15161,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/15160\/revisions\/15161"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=15160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=15160"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=15160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}