/* 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":24839,"date":"2026-05-15T01:40:22","date_gmt":"2026-05-15T01:40:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=24839"},"modified":"2026-05-15T01:40:24","modified_gmt":"2026-05-15T01:40:24","slug":"bombay-treasures-position-feedback-totally-free-gamble-demonstration-play-for-100-percent-free-now","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bombay-treasures-position-feedback-totally-free-gamble-demonstration-play-for-100-percent-free-now\/","title":{"rendered":"Bombay Treasures Position Feedback & Totally free Gamble Demonstration Play for 100 percent free now!"},"content":{"rendered":"

Along with 200 free slot machines to choose from, Caesars Slots have something for everybody! They work much like actual casino harbors, where a new player revolves the latest reels hoping so you’re able to winnings the new playing line. Let’s say you might victory a modern jackpot worth many after gaming less than 500 cash? I\u2019ve tried \u2018em every and you may Caesars Slots was definitely among finest casino games I have played.<\/p>\n

A relationship letter on wonderful ages of arcades, Path Fighter II of the NetEnt is more than simply an exclusively slot \u2014 it\u2019s a beneficial playable piece of nostalgia. These types of four titles always be able to eliminate myself back into \u2014 per to own completely different explanations, however, most of the with this book spark that produces him or her excel. For my situation, it\u2019s regarding the templates that click, gameplay you to definitely keeps me involved, and a nostalgic or fun factor that makes me personally need certainly to hit \u201cspin\u201d again and again. With respect to online slots, I\u2019yards not simply choosing the large RTP and\/or longest payline number.<\/p>\n

That\u2019s because a lot of the gaming app developers offer its headings so you can both stone-and-mortar gambling enterprises also web based casinos. This new headings is actually instantaneously offered yourself via your internet browser. You don’t need in order to install anything to gamble online ports. Web based casinos during these says offer a no-put added bonus and additionally totally free spins incentives, so you can enjoy the slots at no cost as long as the resister for a merchant account.<\/p>\n

Progressive ports add a different Stoiximan \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae<\/a> sort of twist with the slot betting experience through providing probably lives-switching jackpots. Through its entertaining themes, immersive graphics, and you can fascinating extra has, these types of slots bring endless entertainment. Because they may not boast the latest fancy picture of contemporary videos slots, classic slots give a pure, unadulterated playing experience.<\/p>\n

Browse through our very own get to select a great betting web site. They\u2019ve rolled out and you will continue steadily to launch an excellent titles one remain associated for years. To start off, merely get a hold of a name, have a few revolves and you will talk about the fresh paytable. Should you want to take pleasure in a free of charge position demo products released through this greatest organization, you could begin into titles considering below. Today the production of online slots blooms additionally the industry is nonetheless increasing. But their product is a bit too tricky on time.<\/p>\n

Headings of all sizes and shapes appeal to all types of punters therefore\u2019s very unlikely to walk out without picking several favorites. Knowledgeable gamblers sometimes fool around with simulation systems to cultivate a playing method. Designers constantly attempt to establish something book you to wasn\u2019t seen ahead of or retouch current ways to make them feel new plus fascinating. Punters with sense along with reserve behavior to explore the brand new articles that is possibly put out has just otherwise have-not already been tried ahead of. It\u2019ll become a smart choice in order to opt for the headings put-out from the Playson. Usually, able to play ports offer the exact same keeps because normal betting factors.<\/p>\n

100 percent free spins are usually restricted to that video game or several headings. However, you\u2019re also bound to score some a-thrill when you land a massive earn. The easy means to fix that it real question is no. Same graphics, exact same game play, exact same thrill \u2013 whether you\u2019re spinning towards a desktop computer otherwise diving in the that have one of our ideal-rated local casino software. You\u2019ve got as much danger of hitting one racy extra round\u2026 with no stress off gaming your allowance.<\/p>\n

In addition, totally free IGT online game promote an excellent window of opportunity for one another amateur and you can educated players to practice and you can speak about the fresh new titles in advance of to try out to possess real cash. If you’re looking to own an exceptional betting experience instead of expenses a dime, looking at some 100 percent free-to-gamble IGT ports otherwise their gambling games is a fantastic possibilities. Ten years after its initially personal offering, IGT reached a list towards notable Nyc Stock-exchange (NYSE).<\/p>\n

There are so many different varieties of gambling enterprise incentives regardless if, you are destined to discover an abundance of him or her who do attract to you personally actually, so continually be prepared to check around and you can invest as much big date as you need and want searching for the best appreciated incentive also offers that suit both you and attract you the really. Additional topic so you can always keep in mind if you prefer for much more gamble break of position to play money, is the fact my personal excellent gambling enterprises try famed getting offering on their people the greatest and greatest really worth incentives very stick so you’re able to to try out at the the websites only for even more to relax and play value. Pertaining to anyone with never ever starred slots prior to, know that from the pressing onto the spend table switch or the help data button connected with any on the web slot machine game, you will then be considering entry to detailed information towards design of for every single position. Be aware that particular gambling enterprises might not be offering you the new premier selection of more put and you will detachment fee procedures, it is therefore important that you choose and you will enjoy during the one that possesses you the types of percentage steps you try wanting to make use of. The fresh new payment percentage try verified in addition to extra game is a beneficial Gamble ability, the jackpot try 2 hundred coins and also a treasure theme.<\/p>\n

You\u2019ve merely found the biggest online harbors collection found in great britain. Getting day-after-day log-in the offers, you simply need to supply your account just after each and every day, whilst you can acquire referral incentives by welcoming friends to participate the brand new local casino and enjoy. Sweepstakes casinos eradicate all new users having a free anticipate extra, and then take pleasure in every single day log on incentives, weekly incentives, referral advertisements, and. A number of the advantages of our program are all kinds away from top quality game, jackpots, free bonuses, and you can a delicate user experience towards one another pc and you will cellular. Usually double-check the target and you will circle, and don’t forget\u2014we\u2019ll never require individual tips otherwise seed products words.<\/p>\n

Pick from numerous captivating titles and you may immerse oneself in their groundbreaking enjoys first hand. Should you want to feel the excitement out of outstanding gameplay, where all of the twist will bring the potential for substantial gains and remarkable gambling experience, now is the time. So it position from 2010 lets you experience the charm of one’s tropics and you may mention an environment of exotic beauty when you are going with the lush rainforests full of bright flowers and you may fauna. not, the brand new series also offers numerous differences, for every single presenting the brand new legendary controls having cash honors and you will incentive has. A bonus bullet offering 100 percent free revolves and you will multiplier benefits is included for additional thrills.<\/p>\n

Most useful Megaways titles, such White Rabbit and additional Chilli, function cascading wins, incentive buys, and expanding reels. Modern jackpots are the best payout online slots games with regards to so you’re able to enormous, broadening jackpots. These types of online game function fresh fruit icons, taverns, and you will lucky sevens, with limited paylines and simple laws.<\/p>\n

This can be an excellent kite-styled video game from online slots games. Put your wagers, spin, and see for people who hit it lucky. This really is a floral-styled video game out of online slots games. This is certainly a straightforward but really enjoyable video game away from digital harbors.<\/p>\n

100+ in-depth Yono Ports guides level APK obtain, bonuses, detachment, online game tips, area pages, and you may platform recommendations. Must keep a listing of your favorite online game? Put your bets and watch for individuals who struck it fortunate. Put your bets, twist, and discover if you get lucky. It is a straightforward slot machine. This can be a straightforward slot machine inspired just after fighting techinques firearms.<\/p>\n","protected":false},"excerpt":{"rendered":"

Along with 200 free slot machines to choose from, Caesars Slots have something for everybody! They work much like actual casino harbors, where a new player revolves the latest reels hoping so you’re able to winnings the new playing line. Let’s say you might victory a modern jackpot worth many\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-24839","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/24839","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=24839"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/24839\/revisions"}],"predecessor-version":[{"id":24840,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/24839\/revisions\/24840"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=24839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=24839"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=24839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}