/* 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":122500,"date":"2026-05-25T13:19:17","date_gmt":"2026-05-25T13:19:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=122500"},"modified":"2026-05-25T13:19:17","modified_gmt":"2026-05-25T13:19:17","slug":"the-benefit-provides-in-the-regal-mermaid-game-make-position-also-far-more-fascinating","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-benefit-provides-in-the-regal-mermaid-game-make-position-also-far-more-fascinating\/","title":{"rendered":"The benefit provides in the Regal Mermaid game make position also far more fascinating"},"content":{"rendered":"

Productive banking means that slots sign up added bonus winnings happen to be obtainable<\/h2>\n

Which have an enthusiastic RTP from % and you will reasonable volatility, it online game now offers steady game play that have regular gains. While doing so, the brand new Scatter icon \ufffd the latest Benefits Bust \ufffd causes the fresh game’s special incentive has.<\/p>\n

If you want large benefits, pick put-established greeting incentive ports that have obvious criteria. Each ports join added bonus also offers another feel, and also the real really worth originates from exactly how with ease you might convert it for the withdrawable winnings. Timely and you will reliable withdrawals make certain payouts from 100 % free spins towards sign-upwards will be utilized straight away. A properly-arranged slots allowed provide lets users to explore even more game and expand gameplay as opposed to additional expense. An informed free spins sign-up sales are the ones that allow participants to explore gambling games on the internet as opposed to too many limitations.<\/p>\n

Minimal is one and restriction is actually 100 very there’s a good amount of selection for each other low and you may large betters. There are also the newest free revolves which you are able to win if the your fits at least three of your own icons; there can be ranging from one to and you can 10 totally free turns waiting to end up being advertised. The latest nuts icon will give you a giant award away from 2,000 for folks who twist five but there’s zero payout to have complimentary three to four.<\/p>\n

Are you searching to understand more about Mystical Unicorn during the an online casino rather than affecting the bag? Mystical Unicorn position away from WMS try offering an impressive Go back to Athlete (RTP) from 96.0% and you can providing the opportunity to safe restriction victories up to x520. Whenever about three or maybe more Scatter signs arrive, you’ll end in re also-spins one enhance your odds of getting large wins. The brand new Insane Mermaid symbol facilitate setting profitable combinations from the substituting to possess almost every other signs, as the Scatter symbol activates the advantage has for even a great deal more possibilities. Within the Secure & Stream element, you assemble Award icons, which offer bucks benefits centered on your own choice proportions. The main benefit games inside Majestic Mermaid slot is made to continue professionals involved and gives even more solutions to own gains.<\/p>\n

The newest mystical allure of mermaids-half-human, half-seafood beings having supernatural efforts-creates the ideal backdrop getting a keen immersive playing feel in which things seems it is possible to. But not, despite the fun picture there can be almost no most enjoys otherwise bonuses and the enjoy is relatively simple. Winnings Huge having Mystic Ports from your residence free-of-charge!<\/p>\n

So you can struck a fantastic streak, we now afbeeldingsbron<\/a> have included titles particularly Playing Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and you can Aruze’s Dancing Panda Fortune\ufffd. The good thing concerning the entire round would be the fact all the wins include a double multiplier that makes an improvement should your gamer chose to bet a notably significant achievement. The gamer get up to 40 free spins when the he are lucky enough to get the incentive series triggered and you can retriggered.<\/p>\n

When you are a partner of dream Las vegas slots, your research comes to an end right here. Featuring four kind of 100 % free spins and you may a great mermaid excitement so you can help keep you trying to find Vegas slots secrets. Modern 100 % free slots pack the same strike since the genuine-money products, filled with crazy icons, spread out will pay, and interactive bonus cycles.<\/p>\n

You’ll be able to rapidly learn hence video game match your to relax and play design and you can which added bonus cycles give you the ideal potential for huge gains. So it underwater adventure will receive you diving to the fishes (from the most practical method you can easily) and you can trying to find sunken value. And talking about profits, Mermaid Charm Slot offers plenty of chances to get large having their added bonus has. One alive suits awaits you every day-control the fresh mountain, assemble chips on the career, and you may open exclusive rewards.<\/p>\n

The most significant interest of the game are their totally free revolves feature which have Wild Multipliers increasing your wins because of the doing 5x. They spends 5 reels and thirty paylines and features big signs portrayed by the purple-haired enchanting mermaid, whales having fantastic design, wonderful necklaces, containers full of fantastic gold coins and shells which have starfish. Ready to take a deep plunge of numerous leagues in water to look for Mermaid’s Silver? To the prospect of extreme victories and you may an user-friendly concept, the game offers a mix of thrill and you may recreation which is certain to host people. Members is mention the online game having totally free Mystical Chance video clips harbors, while a real income play initiate just 0.20 for every single spin, towards option to wager as much as to have high rollers looking to bigger exhilaration.<\/p>\n

All the victories for the added bonus bullet try added to the rest amount of credit through to the extra game has started. That have 20 fixed paylines and you can a bet list of 0.20 to 100, Mermaid’s Profit & Spin serves most of the explorer-of mindful swimmers to help you strong-ocean big spenders. Graceful whales, lovely turtles, fantastic crowns, and you will sparkling starfish twist along side display screen because the calm voice of your own water books your own excitement. Dive on the a slot machines dream that have Mermaid’s Profit & Spin\ufffd and continue a captivating under water ports adventure, where big victories expect beneath the game’s crystal-obvious waves! The bonus series is actually even better inside the one-fourth and dollars denomination ???? Higher return!! For the incentive, all of the wins is actually twofold!<\/p>\n

Take pleasure in conventional slot aspects with progressive twists and enjoyable extra rounds<\/h2>\n

The latest slot has the benefit of no high-risk video game where you are able to try to improve the payment and no bonus series with a good multiplier. I’ve found me personally holding my personal breathing during the incentive rounds in hopes to see your retrigger. These incentives not simply improve your payouts and in addition put an enthusiastic fascinating measurement out of variability for the video game, ensuring you might be always for the side of your own seat. As you diving to your unique rounds, you will find a world of wilds, scatters, and you can novel icons you to increase likelihood of achievement. The newest impress of Strange Unicorn goes beyond its fundamental game play; the bonus possess it really is capture the newest spotlight.<\/p>\n

These types of romantic online game mix shimmering artwork, oceanic soundscapes, and magical extra features that produce the twist feel a keen aquatic thrill. At the same time, you’ll be able to signup their VIP Bundle, enter the slot tournaments, and you may receive bonuses and you may benefits also.<\/p>\n

The sea Richies position is actually a treasure-trove off fun and you can benefits, and you also won’t must miss out on the experience. Having 100 % free spins, multipliers, and you may wilds galore, which slot could keep you hooked such a seafood into the good range. Area of the symbols include a good dolphin, a great seahorse, an excellent crab, a great starfish, not forgetting, a great mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Productive banking means that slots sign up added bonus winnings happen to be obtainable Which have an enthusiastic RTP from % and you will reasonable volatility, it online game now offers steady game play that have regular gains. While doing so, the brand new Scatter icon \ufffd the latest Benefits\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-122500","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/122500","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=122500"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/122500\/revisions"}],"predecessor-version":[{"id":122502,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/122500\/revisions\/122502"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=122500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=122500"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=122500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}