/* 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":124780,"date":"2026-05-25T13:25:26","date_gmt":"2026-05-25T13:25:26","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=124780"},"modified":"2026-05-25T13:25:26","modified_gmt":"2026-05-25T13:25:26","slug":"the-main-benefit-possess-in-the-majestic-mermaid-online-game-make-slot-even-far-more-pleasing","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-main-benefit-possess-in-the-majestic-mermaid-online-game-make-slot-even-far-more-pleasing\/","title":{"rendered":"The main benefit possess in the Majestic Mermaid online game make slot even far more pleasing"},"content":{"rendered":"

Efficient financial means harbors join extra profits seem to be accessible<\/h2>\n

Having a keen RTP away from % and you will lowest volatility, so it online game even offers constant gameplay which have constant wins. In addition, the newest Spread icon \ufffd the brand new Value Chest \ufffd trigger the newest game’s special incentive features.<\/p>\n

If you like highest advantages, discover deposit-dependent allowed extra ports which have obvious requirements. Per slots signup extra even offers a new sense, while the real well worth is inspired by just how easily you might convert it to the withdrawable payouts. Fast and you can credible distributions guarantee that earnings of totally free spins to your sign-upwards shall be utilized immediately. A proper-planned harbors allowed give allows players to understand more about much more online game and you can extend gameplay instead of additional expense. An educated 100 % free spins indication-up sales are those that allow participants to understand more about casino games on the web as opposed to too many limitations.<\/p>\n

The minimum is but one while the limitation are 100 very there https:\/\/slotstemple.uk.com\/en-gb\/<\/a> is plenty of option for each other reduced and you will high betters. There are also the fresh new totally free revolves that you’ll winnings if your fits about around three of one’s symbols; discover anywhere between that and ten 100 % free converts would love to feel reported. The brand new insane symbol will give you a big honor from 2,000 for many who twist four but there’s no commission to have coordinating three to four.<\/p>\n

Looking for to explore Mystical Unicorn inside the an internet gambling establishment rather than impacting their purse? Mysterious Unicorn slot off WMS is offering a remarkable Come back to Member (RTP) away from 96.0% and you can providing the chance to safe limit gains around x520. Whenever three or higher Scatter symbols are available, you will trigger lso are-revolves you to definitely enhance your odds of getting huge wins. The brand new Nuts Mermaid symbol support form effective combos by the substituting to have almost every other icons, as the Scatter icon turns on the bonus possess for even far more potential. Inside Secure & Weight ability, you gather Award symbols, that offer bucks rewards considering the bet proportions. The bonus games during the Majestic Mermaid position was designed to remain professionals engaged and supply extra options to possess gains.<\/p>\n

The fresh new mystical charm away from mermaids-half-individual, half-seafood beings with supernatural energies-brings the best backdrop having an immersive playing sense where something looks you’ll be able to. But not, inspite of the enjoyable image there can be little even more have otherwise bonuses and the enjoy is fairly simple. Win Huge with Mystic Ports right from your house free of charge!<\/p>\n

To help you struck a winning streak, we have integrated headings for example 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 best part about the entire round is the fact most of the wins incorporate a 2 times multiplier that renders a distinction should your gamer made a decision to bet a significantly large amount of profits. The player can get to 40 100 % free revolves in the event that he was fortunate enough to find the incentive cycles triggered and retriggered.<\/p>\n

If you are a partner off fantasy Vegas harbors, your quest ends here. Offering 4 form of totally free revolves and you can a good mermaid excitement to help you help keep you looking for Las vegas slots treasures. Progressive 100 % free harbors prepare a comparable strike since actual-money types, that includes wild signs, scatter will pay, and you can interactive added bonus cycles.<\/p>\n

You’ll be able to rapidly see which game match your to relax and play style and you may hence incentive cycles offer the finest prospect of huge victories. It underwater adventure can get you swimming on the fishes (on the best way you can easily) and you can trying to find sunken cost. And talking about payouts, Mermaid Beauty Position offers a lot of possibilities to rating larger which have its added bonus provides. You to real time match awaits you day-after-day-control the fresh new mountain, collect potato chips towards community, and you will open personal benefits.<\/p>\n

The most significant destination of your online game try the 100 % free spins ability which have Wild Multipliers increasing your victories of the to 5x. It uses 5 reels and you can thirty paylines and features significant signs represented of the yellow-haired enchanting mermaid, whales that have fantastic design, wonderful bracelets, jars filled with golden coins and you can shells that have starfish. Happy to bring a-deep plunge of several leagues within the sea to look for Mermaid’s Gold? To the potential for tall victories and you can an intuitive style, the online game has the benefit of a mix of thrill and you may enjoyment that’s sure to entertain people. People normally speak about the overall game having free Mysterious Fortune video clips harbors, if you are a real income gamble starts at just 0.20 each twist, on the option to choice up to having big spenders trying bigger excitement.<\/p>\n

All gains inside incentive round is set in the remainder amount of loans before bonus game has started. Which have 20 fixed paylines and a wager list of 0.20 so you can 100, Mermaid’s Winnings & Twist serves all explorer-regarding mindful swimmers in order to deep-ocean big spenders. Graceful whales, pleasant turtles, wonderful crowns, and you will sparkling starfish twist along side monitor as the peaceful voice of your sea books your own thrill. Dive on the a slots dream that have Mermaid’s Profit & Spin\ufffd and you will carry on an exciting under water ports excitement, where large victories anticipate underneath the game’s crystal-obvious waves! The bonus series was better yet for the one-fourth and dollar denomination ???? Higher return!! Inside the incentive, the victories are doubled!<\/p>\n

Appreciate conventional slot aspects with progressive twists and fascinating extra series<\/h2>\n

The fresh new position offers no risky game where you could attempt to improve payment no bonus cycles that have an effective multiplier. I find me holding my breathing in the incentive series assured observe you retrigger. Such bonuses not merely enhance your earnings as well as add an enthusiastic exciting dimension regarding variability towards games, ensuring you may be always towards edge of your own seat. Since you dive towards special rounds, you will find a realm of wilds, scatters, and you can book symbols you to boost your possibility of achievement. The latest appeal regarding Mystical Unicorn goes beyond its practical game play; its added bonus features it’s take the new limelight.<\/p>\n

This type of passionate online game blend gleaming images, oceanic soundscapes, and you can enchanting bonus features that produce every twist feel like an marine excitement. At the same time, you may also subscribe the VIP Package, enter their slot tournaments, and you can located bonuses and you can rewards as well.<\/p>\n

The sea Richies slot is actually a treasure-trove off fun and you may perks, therefore won’t must miss out on the experience. Which have 100 % free revolves, multipliers, and you will wilds aplenty, this slot helps to keep your addicted like a fish to the a great line. The main icons tend to be a good dolphin, good seahorse, an effective crab, good starfish, and additionally, a mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficient financial means harbors join extra profits seem to be accessible Having a keen RTP away from % and you will lowest volatility, so it online game even offers constant gameplay which have constant wins. In addition, the newest Spread icon \ufffd the brand new Value Chest \ufffd trigger the\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-124780","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/124780","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=124780"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/124780\/revisions"}],"predecessor-version":[{"id":124782,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/124780\/revisions\/124782"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=124780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=124780"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=124780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}