/* 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":68198,"date":"2026-05-22T15:01:43","date_gmt":"2026-05-22T15:01:43","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=68198"},"modified":"2026-05-22T15:01:44","modified_gmt":"2026-05-22T15:01:44","slug":"gamble-diamond-queen-position-opinion-gambling-enterprises-added-bonus-video","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/gamble-diamond-queen-position-opinion-gambling-enterprises-added-bonus-video\/","title":{"rendered":"Gamble Diamond Queen Position: Opinion, Gambling enterprises, Added bonus & Video"},"content":{"rendered":"

You can see vehicle-play, if you\u2019re also following mood out of a secure-mainly based casino we really would recommend the new live agent casino games at the Casiplay Casino. The theoretical go back to pro on the choice of medium variance online slots was 91.68 per cent from the feet video game, having a cuatro.54 percent sum to the progressive jackpot. See whether you could potentially feel the temperature and purse one of brand new smoking jackpots offered by which ten-payline assortment of online slots games. You could be confident understanding Betway was signed up in the united kingdom by Gambling Commission, therefore the Malta Gambling Expert (MGA) in the world.<\/p>\n

That\u2019s as to why Casumo even offers one of the greatest choices of on the internet gambling games https:\/\/mega-joker.eu.com\/en-ie\/<\/a> on the market today. If your\u2019re rotating reels, to relax and play live broker dining tables, or viewing all of our mobile application, i make sure that all minute counts. Due to the sort of files and you will eligibility criteria, there’s no set time frame to possess confirmation becoming finished. We works twenty-four hours a day to make certain records was examined as quickly as possible.<\/p>\n

UFC playing covers outright fight champ, types of profit (KO, distribution, decision), and bullet gaming. Horse racing markets standardly put earn, each-way, and put wagers, that have anticipate and you can tricast choice allowing predictions to own numerous finishers for the acquisition. Specialist playing web sites both promote golf ball-by-basketball locations, however, many no KYC providers limit exposure so you’re able to biggest worldwide fittings.<\/p>\n

There are tens of thousands of clips slots on the Apple products now. You can enjoy a knowledgeable Android os apps and online ports into the Canada. The best online harbors in addition to service individuals operating system.<\/p>\n

Discover promotion also provides that frequently give professionals particular bonus funds, cash otherwise totally free revolves. If or not you\u2019re a unique otherwise veteran user, you’re interested in learning much more about gambling enterprise bonuses you to definitely you can utilize on your own favourite ports and dining table game. Alive BlackjackTake a seat and enjoy the finest black-jack game play for the dining tables out of leading world players such as for example Progression, LiveG24 and you may Practical Enjoy Real time.<\/p>\n

On the web sports playing introduced when you look at the Ny last Friday having five workers removed from the Nyc Playing Commission to just accept mobile wagers from the county, continue reading the Local casino Contentment feedback. You can gamble slots out-of only 1p for every twist within Jackpotjoy, making it possible for folks to join in to the enjoyable. Getting started on Jackpotjoy is simple!<\/p>\n

The game, while not boasting by far the most cutting edge graphics and you will animated graphics located in a number of modern films slots, has actually a very good presentation, and you may a bright, colorful and you may beneficial become. Their victories come into the type of virtual loans just. Your gamble online harbors having virtual credit. Generally, you have made wins regarding leftover to right on reels.<\/p>\n

All dumps and withdrawals is actually extremely secure. And wear\u2019t disregard to help you claim your own invited incentive on your basic deposit when you first join us. As well as, you\u2019ll see several bingo room to complement all of the players, also 90-baseball, 80-basketball, 75-golf ball, 50-basketball, 40-baseball, as well as thirty-six-golf ball bedroom! Conditions and terms carry out apply for the greet bonus, thus take a look before you can enjoy. After you\u2019ve been the process, it\u2019ll only be a few minutes before you can tuck into the our directory of fun games on the net that are unlock to you personally to tackle any moment. And in case you may have almost every other feline family members we need to enjoy bingo that have, next one\u2019s all the more fun.<\/p>\n

In addition, the new Jackpot Queen Incentive from your Plan spouse gets people the newest chance to house a captivating incentive function that will trigger incredible jackpot victories. Therefore, if you\u2019lso are inside to own good make fun of or perhaps the possibility to profit, all of our harbors appeal to men. You may enjoy our very own fantastic slot game which have wagers including just 1p each twist. Regarding old-fashioned fresh fruit hosts towards latest styled adventures, all of our diversity are second to none. Express your knowledge, enjoy the victories, and join in on fun with other players. Register fellow users, express their gains, and relish the amicable banter with these vibrant gaming neighborhood.<\/p>\n

For each discipline now offers line of betting options, influenced by regulations, rating methods, and you will skills frequency. Various local casino incentives assists accommodate other player choices, with every style of customized to certain designs of play and reward. Having withdrawals, new commission places back in their MuchBetter application and will after that be invested, delivered to household members, otherwise withdrawn for the financial. Upload gold coins compared to that address from your own bag \u2013 most zero KYC crypto casinos websites credit your account immediately following a beneficial couple network confirmations, which usually requires 10 in order to a half hour.<\/p>\n

Forehead of Video game try web site giving 100 percent free online casino games, eg harbors, roulette, or black-jack, and this can be played exhilaration about demo means in place of purchasing any money. Jane\u2019s also energetic inside website part, during the diamond king gambling establishment british and therefore she address the curiosities and alterations in a good. It\u2019s calculated based on many for individuals who wear\u2019t vast amounts of revolves, so that the % is accurate fundamentally, not in one single degree. It form of feels as though the\u2019re also in the the fresh new country side, even when one isn\u2019t on the town cardio.<\/p>\n

The online game includes an effective 5 reel, 20 payline providing, but you can wager stakes up so you can \u00a3dos,000 a go, that’s indeed certainly, otherwise the greatest that individuals\u2019ve viewed on the web. You ought to ensure that you get as numerous off the new diamonds from the king as possible, next trade in their diamonds for the majority of money. The fresh Diamond Queen the most engaging ports one to we\u2019ve checked-out getting with each other day now. Www.energycasino.com are run from the Probe Assets Minimal that’s registered significantly less than the laws and regulations of the European union representative county off Malta.<\/p>\n

Your don\u2019t have to help you deposit the maximum amount to earn the fresh complete extra, providing one people purchased the SPRINGBOK50 coupon code. Whenever you wear\u2019t believe new haphazard number generator, 100 percent free slots playing the amount of protection was restrict. If you find yourself interested to engage in the game, secure withdrawals and you can places should be the first consideration. Members no further must set bets one count up so you’re able to hundreds of dollars to relax and play actual dealer blackjack, we’ll manage three issue on this page \u2013 condition. Speak about the fresh new mystic East when you look at the RTG\u2019s Pig Champion online slots, EvilZilla ‘s the web site to own to tackle them. During the time of writing, you might set activities bets and you will gamble casino games.<\/p>\n","protected":false},"excerpt":{"rendered":"

You can see vehicle-play, if you\u2019re also following mood out of a secure-mainly based casino we really would recommend the new live agent casino games at the Casiplay Casino. The theoretical go back to pro on the choice of medium variance online slots was 91.68 per cent from the feet\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-68198","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68198","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=68198"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68198\/revisions"}],"predecessor-version":[{"id":68199,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/68198\/revisions\/68199"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=68198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=68198"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=68198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}