/* 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":116470,"date":"2026-05-25T12:49:52","date_gmt":"2026-05-25T12:49:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=116470"},"modified":"2026-05-25T12:49:53","modified_gmt":"2026-05-25T12:49:53","slug":"the-bonus-have-inside-the-regal-mermaid-online-game-make-position-also-a-great-deal-more-pleasing","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-bonus-have-inside-the-regal-mermaid-online-game-make-position-also-a-great-deal-more-pleasing\/","title":{"rendered":"The bonus have inside the Regal Mermaid online game make position also a great deal more pleasing"},"content":{"rendered":"

Efficient banking means that harbors sign up incentive earnings are already available<\/h2>\n

Having a keen RTP away from % and you can lowest volatility, so it game now offers constant gameplay that have repeated gains. As well, the new Spread out icon \ufffd the brand new Cost Boobs \ufffd leads to the new game’s unique bonus has.<\/p>\n

If you prefer large rewards, find put-dependent acceptance bonus ports having obvious criteria. Per harbors signup bonus has the benefit of another experience, plus the real worth arises from exactly how with ease you might transfer it into the withdrawable winnings. Timely and you may reputable distributions guarantee that winnings away from totally free spins to the sign-right up might be reached immediately. A properly-structured harbors acceptance provide lets people to understand more about much more online game and you can increase game play in place of additional expense. An educated free spins signal-right up sales are those that enable participants to explore online casino games on line as opposed to unnecessary limitations.<\/p>\n

Minimal is certainly one as well as the limit is actually 100 very there is an abundance of selection for both reduced and you can site<\/a> large betters. There are even the fresh new 100 % free spins which you are able to winnings when the your suits at the least three of the signs; discover anywhere between you to definitely and you may ten free converts would love to become advertised. The brand new wild icon provides you with an enormous prize of 2,000 for many who spin five but there’s zero commission for complimentary three or four.<\/p>\n

Looking for to explore Mystical Unicorn inside the an online local casino instead affecting their purse? Mystical Unicorn slot of WMS are boasting an extraordinary Go back to Player (RTP) off 96.0% and you will offering the opportunity to safer limitation gains around x520. Whenever around three or even more Spread out symbols come, might result in re also-revolves you to definitely boost your probability of obtaining large gains. The newest Insane Mermaid icon assists mode profitable combos by substituting having other icons, since Scatter icon turns on the benefit enjoys for even much more possibilities. In the Secure & Load function, your assemble Prize icons, that offer cash perks based on your own choice dimensions. The advantage video game inside Majestic Mermaid position was designed to continue participants involved and provide more potential to have gains.<\/p>\n

The fresh new mystical attract from mermaids-half-individual, half-fish beings with supernatural efforts-creates the perfect background for a keen immersive playing sense where some thing appears you’ll. not, despite the enjoyable image there is hardly any a lot more features or incentives while the gamble is fairly simple. Winnings Huge that have Mystic Harbors straight from your house 100% free!<\/p>\n

To strike a winning streak, we now have provided titles including Gaming Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and you may Aruze’s Moving Panda Luck\ufffd. The good thing concerning entire bullet is that all the gains include a twice multiplier that makes a difference if your player chose to wager a notably large amount of achievement. The gamer could possibly get as much as 40 totally free spins in the event that he are fortunate to get the incentive rounds brought about and you can retriggered.<\/p>\n

When you’re a partner regarding dream Las vegas ports, your hunt comes to an end here. Boasting 4 type of free spins and you can a great mermaid thrill so you can help you stay looking Vegas harbors secrets. Progressive totally free slots pack an identical punch because genuine-currency brands, including nuts icons, scatter will pay, and you may interactive added bonus rounds.<\/p>\n

You can quickly understand hence video game suit your playing build and you may which incentive series give you the greatest potential for huge wins. It underwater excitement are certain to get your swimming towards fishes (regarding best method you can) and you may in search of drowned cost. And you can talking about profits, Mermaid Charm Position has the benefit of a lot of chances to score larger which have its added bonus enjoys. One live meets awaits you day-after-day-take over the brand new slope, gather chips on the field, and you will unlock personal advantages.<\/p>\n

The most significant destination of your own games is actually its free revolves element having Insane Multipliers increasing your gains from the up to 5x. They spends 5 reels and you can 30 paylines featuring major symbols illustrated because of the reddish-haired seductive mermaid, dolphins that have fantastic design, fantastic bracelets, jars full of wonderful gold coins and you will shells having starfish. Ready to get a deep dive of a lot leagues under the ocean to find Mermaid’s Gold? To your potential for extreme victories and you can an user-friendly layout, the online game even offers a blend of excitement and you may amusement which is bound to entertain users. People can also be discuss the overall game having 100 % free Mysterious Fortune films slots, while a real income gamble initiate at just 0.20 for every single twist, to your solution to wager as much as for high rollers trying large excitement.<\/p>\n

The gains inside the bonus round is put into the rest number of loans through to the bonus games has begun. With 20 fixed paylines and you will a wager variety of 0.20 so you can 100, Mermaid’s Victory & Spin suits most of the explorer-off careful swimmers to strong-sea high rollers. Graceful whales, pleasant turtles, wonderful crowns, and you can sparkling starfish spin over the monitor because calm voice of your sea instructions your own adventure. Dive into the a slots dream having Mermaid’s Win & Spin\ufffd and you will carry on an exciting under water slots excitement, in which larger victories await within the game’s amazingly-obvious waves! The advantage series try in addition to this during the quarter and you can buck denomination ???? Great return!! For the bonus, all of the victories was doubled!<\/p>\n

Enjoy antique slot technicians which have progressive twists and fun added bonus cycles<\/h2>\n

The newest position offers no risky video game where you are able to attempt to help the commission with no extra cycles with an effective multiplier. I’ve found myself carrying my personal air in the bonus rounds hoping to see you retrigger. These types of bonuses besides improve your earnings and in addition add an enthusiastic exciting dimension away from variability into the online game, making sure you’re always into the edge of the seat. Because you diving on the unique series, you will see a world of wilds, scatters, and you can novel symbols that boost your possibility of achievements. The new allure away from Mystical Unicorn surpasses their standard gameplay; their added bonus features really bring the fresh spotlight.<\/p>\n

Such intimate games merge shimmering graphics, oceanic soundscapes, and you can phenomenal bonus have that make all the twist feel an marine adventure. In addition, you can also join the VIP Bundle, get into the slot competitions, and located incentives and you can benefits too.<\/p>\n

The sea Richies position was a treasure-trove out of enjoyable and perks, therefore won’t have to overlook the action. Which have 100 % free revolves, multipliers, and you may wilds aplenty, which slot will keep you addicted for example a fish for the an effective line. The main symbols are an effective dolphin, a good seahorse, a good crab, an effective starfish, not to mention, good mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficient banking means that harbors sign up incentive earnings are already available Having a keen RTP away from % and you can lowest volatility, so it game now offers constant gameplay that have repeated gains. As well, the new Spread out icon \ufffd the brand new Cost Boobs \ufffd leads\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-116470","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/116470","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=116470"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/116470\/revisions"}],"predecessor-version":[{"id":116471,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/116470\/revisions\/116471"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=116470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=116470"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=116470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}