/* 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":166874,"date":"2026-06-22T12:26:02","date_gmt":"2026-06-22T12:26:02","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=166874"},"modified":"2026-06-22T12:26:02","modified_gmt":"2026-06-22T12:26:02","slug":"gambling-enterprises-within-the-near-nashville-tennessee-2026-upwards-to-go-out-record","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/gambling-enterprises-within-the-near-nashville-tennessee-2026-upwards-to-go-out-record\/","title":{"rendered":"Gambling enterprises within the & near NASHVILLE, TENNESSEE 2026 upwards-to-go out record"},"content":{"rendered":"

You\u2019ll be offered good 250% bonus all the way to $2,five-hundred and fifty no-cost spins into Great Drums slot towards the your first put. If you choose to receive friends and family with each other toward journey, it is possible to purse good fifty% added bonus all the way to $a hundred + 50 totally free revolves each recommendation. The first put commonly internet you around 250 totally free revolves, and that which you earn is a.<\/p>\n

Actually casinos as opposed to standalone cellular gambling enterprise programs nonetheless ran flawlessly toward mobile\u2014good for quick spins whenever you are wishing from inside the traffic for the I-40. SuperSlots and you may Ports.lv deliver strong real time and you may position selection, good for TN participants going after variety and you can highest-RTP action. Once you work out how such a real income gambling enterprises work, they\u2019ll quickly become their wade-so you can, weekend recreation. Which have an effective 96% RTP and you will 20x multipliers on the 100 percent free spins bullet, this prairie-themed slot is perfect for TN nature lovers to your see.<\/p>\n

These products might be addressed as zero-prize activities, never as gambling on line otherwise a beneficial workaround to have on-line casino gamble. Particular amusement-merely social local casino apps can still be around if they have fun with Coins just plus don’t are advertising and marketing sweepstakes currency otherwise award redemptions. If you decide to have fun with a silver Coin-simply societal local casino equipment in the Tennessee, makes it strictly activity-situated.<\/p>\n

Antique real-currency casinos on the internet is actually illegal, and you may sweepstakes casinos can be found during the a legal grey town. The brand new Sports Wagering Council (SWC) is in charge of keeping track of the web based sports betting world Gates of Olympus dinero real<\/a> during the Tennessee. When you’re 18 or older, you might legally struck right up social and you will sweepstakes casino internet sites. Could possibly get 2019 noticed Tennessee flip the fresh script on on the web wagering, so it is court and controlled. Whilst really stands, real-money web based casinos are nevertheless illegal, therefore won’t see one stone-and-mortar joints either. Be you to as it might, you could nevertheless take pleasure in your chosen gambling games during the public gambling enterprises for free.<\/p>\n

Merely guarantee you will be using a legitimate, state-registered sportsbook while\u2019re of sufficient age so you can gamble legally. Tennessee allows most of the forms of on line wagering. Have fun with sweep and you may gold coins, and you will scrape you to gaming itch. The fresh matches should be done up until the 100 percent free spins is become used. 10 spins just about every day for five days. People in Tennessee may not have the entire online gaming meal, but there is however nevertheless really in order to feast toward.<\/p>\n

Where you can find many advertising and you can Lucky Creek added bonus rules, your website comes with meets incentives and you can free spins, taking a powerful initiate for newbies. So it mix of online game diversity, percentage self-reliance, and glamorous bonuses can make Bovada the leading solution certainly overseas sportsbooks and you can a real income online casinos within the Tennessee. However, the future keeps possibility changes, as success of online wagering means the possibility economic benefits associated with expanded gambling on line. The platform has generated a good reputation from inside the on line betting society by offering various sportsbook characteristics so you can cater to bettors with different needs.<\/p>\n

For many who\u2019lso are a new comer to real money gambling on line within the Tennessee, Raging Bull\u2019s associate-amicable webpages is a superb kick off point. You will find dozens of real cash online casino Tennessee internet sites your can join. Hence, the only method to possess Tennesseans in order to play on the web lawfully is always to see an international on-line casino acknowledging players out-of Tennessee. Since the known overseas gaming bodies permit them, Tennessee users normally properly sign-up as opposed to concerns out-of judge repercussions. Tennesseans can be lawfully availableness top international local casino internet sites offering real cash gambling establishment gambling. However, since there is broadening demand and you may personal assistance, there is also good opposition.<\/p>\n

Tennessee has no live casino poker room once the state has no industrial otherwise tribal gambling enterprises. The state failed to are on-line poker on the 2019 sports betting consent. The fresh new launch coincided which have NFL year and you will SEC recreations level engagement, producing solid initial handle. The law specifically didn’t authorize commercial or tribal casinos inside combination which have wagering, keeping Tennessee’s zero-local casino condition updates while you are including controlled mobile sports betting. This new nation’s complete absence of in-county gambling enterprise structure (zero industrial gambling enterprises, zero tribal casinos), and traditional county political culture and you may religious people effect on playing policy, produces structural barriers to help you internet casino expansion. There aren’t any industrial or tribal casinos.<\/p>\n

The state continues to expand its digital notice but reveals nothing manifestation of starting real gambling enterprises. The state historically opposed pretty much every version of gaming, that have good restrictions set up regarding the 20th 100 years. The main focus is found on cellular enjoy, guaranteeing professionals has actually entertainment without any infrastructure away from actual gambling enterprises. No tribal gambling enterprises, no racetracks, no physical sportsbooks exist. Owners can enjoy lawfully controlled alternatives such as for instance online sportsbooks, every day fantasy sports, online bingo, plus the county lottery. Of many Tennessee online gambling internet you to definitely services as the social otherwise sweepstakes gambling enterprises provide poker game that let your play for fun or contend to possess prizes lawfully.<\/p>\n

100 percent free spins apply to picked harbors and you may winnings is at the mercy of 35x wagering. Stakeholders continue steadily to reception for a regulated design including consumer protections and tax revenue revealing. The state\u2019s legislation prohibit people gambling establishment\u2011concept games introduced online, no matter what merchant\u2019s location. The state\u2019s Consumer Protection Division have awarded warnings that numerous \u201cTennessee\u2011licensed\u201d casinos on the internet are make believe fronts.<\/p>\n

The possibility legalization from web based casinos and casino poker in Tennessee try an interest away from big debate. Regulations perform including Rep. Jason Powell\u2019s HJR0093, geared towards legalizing local casino betting to pay for K-twelve training, code a possible move when you look at the Tennessee\u2019s stance on gambling on line. This new lottery\u2019s affect studies financial support is actually a beneficial testament with the potential great things about managed gambling things.<\/p>\n

Dumps typically start during the $10 so you can $50 depending on the website and you may approach, and you will limits with the individual hand otherwise spins are normally taken for pennies during the the reduced end to a lot of hundred or so bucks each hands during the higher-maximum dining tables. Tennessee people who are in need of online casino betting is going to continue counting on overseas providers while using the regulated apps having wagering. Tennessee has no gambling payment much like those in states with commercial gambling enterprises given that Tennessee does not have commercial casinos otherwise tribal gambling enterprises to control. The websites lower than was checked out by several years of actual Tennessee consumer sense and you will always take on Tennessee consumers as of the fresh most recent comment. Gold Money-simply social casinos fool around with one to non-redeemable virtual money for recreation gameplay merely.<\/p>\n","protected":false},"excerpt":{"rendered":"

You\u2019ll be offered good 250% bonus all the way to $2,five-hundred and fifty no-cost spins into Great Drums slot towards the your first put. If you choose to receive friends and family with each other toward journey, it is possible to purse good fifty% added bonus all the way 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-166874","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/166874","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=166874"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/166874\/revisions"}],"predecessor-version":[{"id":166879,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/166874\/revisions\/166879"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=166874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=166874"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=166874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}