/* 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":111475,"date":"2026-05-25T11:56:39","date_gmt":"2026-05-25T11:56:39","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=111475"},"modified":"2026-05-25T11:56:40","modified_gmt":"2026-05-25T11:56:40","slug":"the-advantage-has-for-the-regal-mermaid-game-make-slot-also-a-great-deal-more-enjoyable","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-advantage-has-for-the-regal-mermaid-game-make-slot-also-a-great-deal-more-enjoyable\/","title":{"rendered":"The advantage has for the Regal Mermaid game make slot also a great deal more enjoyable"},"content":{"rendered":"

Effective banking means that slots sign-up added bonus winnings are generally available<\/h2>\n

That have a keen RTP out of % and you will low volatility, so it games also offers steady gameplay with frequent victories. Concurrently, the fresh Scatter symbol \ufffd the fresh new Appreciate Bust \ufffd triggers the newest game’s special extra features.<\/p>\n

If you want large benefits, discover deposit-depending greeting extra slots with obvious criteria. Per Zodiacbet<\/a> harbors signup bonus now offers a different experience, and the real worth comes from just how without difficulty you could convert they towards withdrawable payouts. Punctual and reputable withdrawals make certain payouts of 100 % free revolves to your sign-up will likely be utilized straight away. A proper-arranged ports desired offer allows users to explore even more video game and you can extend game play instead added cost. The best 100 % free revolves indication-right up revenue are those that enable participants to understand more about casino games on the internet in place of a lot of limits.<\/p>\n

The minimum is one and also the limitation are 100 very there is plenty of option for each other low and you will high betters. There are also the latest 100 % free spins which you can earn when the your fits no less than about three of symbols; there is certainly between that and you will ten free turns would love to getting claimed. The fresh new nuts symbol will provide you with a large honor of 2,000 for many who twist four but there is however no payment to have complimentary 3 or 4.<\/p>\n

Are you looking to understand more about Mystical Unicorn during the an internet casino as opposed to impacting your handbag? Mysterious Unicorn slot out of WMS was boasting a remarkable Come back to Member (RTP) out of 96.0% and offering the opportunity to safe restrict victories doing x520. Whenever about three or even more Spread signs are available, you will trigger lso are-spins you to definitely improve odds of getting larger victories. The newest Insane Mermaid symbol facilitate setting effective combinations from the substituting having most other symbols, while the Spread symbol activates the advantage enjoys even for far more solutions. For the Secure & Weight element, you collect Award signs, which offer dollars benefits predicated on the wager proportions. The main benefit game inside the Regal Mermaid position is designed to remain players interested and provide additional solutions to own victories.<\/p>\n

The fresh strange attract off mermaids-half-individual, half-fish beings having supernatural vitality-brings just the right background for an enthusiastic immersive gambling experience in which some thing seems it is possible to. not, despite the fun image you will find little most possess otherwise incentives as well as the play is relatively simple. Victory Huge with Esoteric Ports right from your home free-of-charge!<\/p>\n

To hit a fantastic streak, we provided titles like Gambling Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Lightning Box’s 100x RA\ufffd, and you will Aruze’s Dancing Panda Fortune\ufffd. The good thing in regards to the entire round is that all victories come with a 2 times multiplier that produces a change should your player decided to wager a dramatically countless success. The ball player will get up to forty free revolves in the event the the guy is actually lucky enough to discover the added bonus cycles brought about and retriggered.<\/p>\n

While an enthusiast out of dream Vegas slots, your quest comes to an end right here. Offering four style of 100 % free spins and you will an excellent mermaid adventure to keep you trying to find Las vegas slots gifts. Progressive free ports prepare an identical punch because the real-currency versions, that includes wild icons, spread will pay, and you can interactive bonus rounds.<\/p>\n

You are able to quickly understand and therefore video game match your to relax and play layout and which bonus series offer the better possibility huge gains. It under water thrill will get your swimming for the fishes (in the best method you can) and looking drowned appreciate. And you may speaking of winnings, Mermaid Beauty Position also offers lots of possibilities to rating large having its bonus has. You to real time matches awaits your each day-dominate the latest mountain, collect potato chips into the field, and you can open personal benefits.<\/p>\n

The biggest appeal of games are its totally free revolves feature with Insane Multipliers increasing your wins by the up to 5x. It spends 5 reels and you will 30 paylines and features big symbols represented of the reddish-haired enchanting mermaid, dolphins with wonderful design, wonderful necklaces, jars filled with golden coins and you will shells that have starfish. Ready to need a deep plunge of a lot leagues according to the sea to search for Mermaid’s Gold? Towards possibility of significant gains and an intuitive style, the game has the benefit of a variety of thrill and you may activities which is bound to entertain people. Members can be mention the game having totally free Strange Luck clips ports, when you are real cash gamble initiate at just 0.20 for each spin, to your option to bet doing for big spenders seeking larger excitement.<\/p>\n

All the victories inside the added bonus bullet is placed into the remainder amount of loans before the incentive games has begun. With 20 fixed paylines and a gamble set of 0.20 to help you 100, Mermaid’s Winnings & Twist provides the explorer-from careful swimmers so you’re able to strong-sea big spenders. Graceful dolphins, charming turtles, wonderful crowns, and you may sparkling starfish twist along the monitor since peaceful voice of your own ocean instructions your excitement. Dive to your a slots fantasy which have Mermaid’s Victory & Spin\ufffd and you may carry on a vibrant under water harbors excitement, in which large gains anticipate within the game’s amazingly-obvious waves! The benefit series is better yet during the quarter and you will buck denomination ???? High comeback!! Inside the extra, all of the gains are twofold!<\/p>\n

Appreciate antique position auto mechanics with modern twists and you will pleasing added bonus rounds<\/h2>\n

The new position also offers no high-risk online game where you can just be sure to enhance the commission no bonus series that have an effective multiplier. I’ve found me personally holding my breath within the bonus series hoping observe you retrigger. These incentives not simply enhance your winnings as well as include a keen exciting measurement of variability towards game, making sure you may be always on the side of their seat. Since you diving towards unique series, you will have a world of wilds, scatters, and you may book signs that boost your possibility of triumph. The new attract away from Strange Unicorn goes beyond its standard gameplay; its extra provides its need the new spotlight.<\/p>\n

This type of passionate games combine sparkling visuals, oceanic soundscapes, and phenomenal added bonus enjoys which make all twist feel a keen aquatic adventure. In addition, you can even sign up their VIP Plan, enter into its position competitions, and you will discover incentives and you may advantages also.<\/p>\n

The ocean Richies slot are a treasure trove out of fun and you may perks, and you would not must miss out on the action. With 100 % free spins, multipliers, and wilds galore, it position could keep you hooked such as a fish into the an effective range. The main icons include a good dolphin, an effective seahorse, a good crab, a good starfish, as well as, good mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Effective banking means that slots sign-up added bonus winnings are generally available That have a keen RTP out of % and you will low volatility, so it games also offers steady gameplay with frequent victories. Concurrently, the fresh Scatter symbol \ufffd the fresh new Appreciate Bust \ufffd triggers the newest\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-111475","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111475","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=111475"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111475\/revisions"}],"predecessor-version":[{"id":111478,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111475\/revisions\/111478"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=111475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=111475"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=111475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}