/* 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":130269,"date":"2026-05-25T13:32:22","date_gmt":"2026-05-25T13:32:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=130269"},"modified":"2026-05-25T13:32:27","modified_gmt":"2026-05-25T13:32:27","slug":"the-main-benefit-features-inside-the-majestic-mermaid-game-improve-slot-also-more-pleasing","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-main-benefit-features-inside-the-majestic-mermaid-game-improve-slot-also-more-pleasing\/","title":{"rendered":"The main benefit features inside the Majestic Mermaid game improve slot also more pleasing"},"content":{"rendered":"

Efficient financial implies that slots subscribe incentive profits seem to be obtainable<\/h2>\n

Having an enthusiastic RTP from % and low volatility, it games also offers constant game play having frequent wins. While doing so, the fresh Scatter symbol \ufffd the fresh Treasure Breasts \ufffd causes the brand new game’s unique added bonus enjoys.<\/p>\n

If you’d like large perks, discover put-established greeting bonus ports that have obvious standards. For every single ports join bonus even offers a new feel, as well as the genuine really worth comes from exactly how without difficulty you can convert it to your withdrawable winnings. Fast and reputable distributions guarantee that earnings off 100 % free revolves towards sign-up will be utilized immediately. A properly-prepared ports acceptance bring allows professionals to understand more about even more game and you can continue game play rather than added cost. The best 100 % free spins signal-up product sales are the ones that allow members to explore gambling games on the web in place of way too many limitations.<\/p>\n

The minimum is just one and restrict is actually 100 so there’s lots of choice for both reasonable and high betters. There are even the latest 100 % free revolves which you’ll earn when the your fits at the very least three of icons; you will find between that and you can ten totally free turns waiting to be stated. The brand new crazy symbol will give you a large honor of 2,000 for many who spin four but there is zero commission to own coordinating three to four.<\/p>\n

Are you looking to explore Mystical Unicorn in the an on-line local casino instead affecting the handbag? Mysterious Unicorn slot away from WMS is actually offering an extraordinary Return to Pro (RTP) off 96.0% and providing the possibility to safe limit victories up to x520. Whenever about three or even more Scatter signs arrive, you are going to cause re-spins that boost your odds of landing huge wins. The newest Insane Mermaid icon helps function winning combinations from the replacing to possess almost every other signs, because the Scatter symbol turns on the benefit possess for even more options. For the Secure & Stream ability, your gather Award signs, which offer cash benefits according to the bet dimensions. The main benefit video game during the Regal Mermaid position was designed to remain people involved and gives additional solutions for gains.<\/p>\n

The fresh mystical impress out of mermaids-half-people, half-seafood beings with SpilDanskNu<\/a> supernatural powers-creates the perfect background getting an enthusiastic immersive betting experience where one thing appears you can. Although not, regardless of the enjoyable image you will find hardly any a lot more has otherwise bonuses and also the gamble is relatively easy. Win Large which have Mystical Ports right from your residence for free!<\/p>\n

To strike a winning move, there is incorporated headings particularly Gambling Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Lightning Box’s 100x RA\ufffd, and you may Aruze’s Moving Panda Luck\ufffd. The best part concerning whole bullet is that all of the victories come with a double multiplier that renders a distinction in the event your player chose to bet a considerably lot of achievements. The gamer will get as much as 40 totally free revolves if the guy is fortunate to discover the bonus cycles brought about and you can retriggered.<\/p>\n

When you find yourself a partner off dream Vegas harbors, your hunt finishes here. Featuring four form of 100 % free spins and an effective mermaid adventure so you can help keep you looking for Vegas harbors gifts. Progressive totally free slots pack a similar punch because the real-money designs, that includes wild icons, scatter pays, and you can entertaining added bonus cycles.<\/p>\n

You are able to quickly see and this games match your to experience design and you can which bonus rounds give you the best possibility large victories. So it under water adventure will have your diving into the fishes (from the most practical way you can) and you can searching for drowned treasure. And you can talking about profits, Mermaid Charm Position now offers a good amount of chances to rating larger which have its extra have. You to live matches awaits your daily-take over the fresh mountain, collect chips on the occupation, and you can unlock personal benefits.<\/p>\n

The biggest interest of your own game was their free revolves function with Insane Multipliers increasing your wins by the around 5x. They spends 5 reels and you can 30 paylines and features big icons depicted by reddish-haired seductive mermaid, dolphins which have golden decoration, golden necklaces, jars filled with wonderful coins and you may shells with starfish. Prepared to get a-deep dive of numerous leagues within the ocean to look for Mermaid’s Silver? Towards prospect of extreme wins and you can an user-friendly design, the online game now offers a variety of thrill and activities which is sure to host players. People can discuss the online game which have totally free Mysterious Fortune video clips harbors, when you’re real money play begins just 0.20 for each and every twist, to your substitute for bet doing for high rollers looking to larger excitement.<\/p>\n

All of the victories during the extra round was set in the remainder amount of credit till the extra video game has started. Having 20 fixed paylines and you may a bet variety of 0.20 so you’re able to 100, Mermaid’s Victory & Twist provides the explorer-out of cautious swimmers to deep-ocean high rollers. Elegant dolphins, pleasant turtles, golden crowns, and you will gleaming starfish twist over the screen while the serene sound of the water instructions the thrill. Diving for the a slots dream which have Mermaid’s Winnings & Spin\ufffd and you will embark on a vibrant under water slots adventure, where larger gains watch for according to the game’s amazingly-obvious waves! The benefit rounds try better yet in the one-fourth and you can buck denomination ???? Higher reappearance!! During the extra, the victories are doubled!<\/p>\n

See traditional slot aspects which have progressive twists and fascinating incentive rounds<\/h2>\n

The latest position also provides zero risky game where you are able to you will need to help the commission without bonus series with a great multiplier. I’ve found me holding my breathing inside the extra cycles assured to see you retrigger. These types of bonuses besides increase payouts and put an enthusiastic fascinating dimensions from variability towards games, making certain you will be constantly into the side of their chair. Because you diving for the unique cycles, there will be a world of wilds, scatters, and book symbols one to enhance your probability of victory. The brand new impress regarding Strange Unicorn goes beyond its standard game play; the extra features it really is need the newest limelight.<\/p>\n

These types of enchanting game merge shimmering illustrations or photos, oceanic soundscapes, and you can phenomenal bonus enjoys which make all of the twist feel just like an enthusiastic aquatic adventure. As well, you could subscribe the VIP Plan, get into the position competitions, and you will receive bonuses and you will rewards too.<\/p>\n

The sea Richies slot was a treasure trove away from fun and you will benefits, and you won’t need certainly to overlook the action. Having 100 % free spins, multipliers, and you will wilds aplenty, so it position could keep you hooked including a seafood for the a great range. Area of the signs were good dolphin, a great seahorse, an excellent crab, a good starfish, not forgetting, a good mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficient financial implies that slots subscribe incentive profits seem to be obtainable Having an enthusiastic RTP from % and low volatility, it games also offers constant game play having frequent wins. While doing so, the fresh Scatter symbol \ufffd the fresh Treasure Breasts \ufffd causes the brand new game’s unique\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-130269","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130269","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=130269"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130269\/revisions"}],"predecessor-version":[{"id":130291,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130269\/revisions\/130291"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=130269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=130269"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=130269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}