/* 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":129364,"date":"2026-05-25T13:31:41","date_gmt":"2026-05-25T13:31:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=129364"},"modified":"2026-05-25T13:31:42","modified_gmt":"2026-05-25T13:31:42","slug":"the-advantage-have-for-the-regal-mermaid-game-make-slot-also-far-more-enjoyable","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-advantage-have-for-the-regal-mermaid-game-make-slot-also-far-more-enjoyable\/","title":{"rendered":"The advantage have for the Regal Mermaid game make slot also far more enjoyable"},"content":{"rendered":"

Successful banking means harbors sign up added bonus earnings are already obtainable<\/h2>\n

With an enthusiastic RTP from % and you may lower volatility, this video game even offers regular game play which have frequent victories. In addition, the fresh new Spread out symbol \ufffd the latest Cost Tits \ufffd triggers the fresh game’s unique incentive provides.<\/p>\n

If you need higher perks, see deposit-based welcome bonus harbors with obvious conditions. For each slots signup incentive has the benefit of a new feel, while the real worthy of originates from how with ease you could potentially move they into the withdrawable earnings. Timely and reliable withdrawals guarantee that earnings of free spins to your sign-up are going to be reached immediately. A proper-planned slots acceptance provide lets participants to explore a lot more video game and you can expand game play versus additional cost. An educated totally free spins signal-up product sales are the ones that allow users to understand more about casino games on line versus too many limitations.<\/p>\n

Minimal is but one as well as the maximum is actually 100 so there is plenty of option for both low and you may high betters. There are even the brand new free revolves which you are able to winnings if you match at the least around three of your own icons; there can be between one and you will ten 100 % free turns waiting to feel advertised. The brand new crazy symbol provides you with an enormous prize off 2,000 for people who spin four but there is however zero payment to own complimentary three or four.<\/p>\n

Are you searching to explore Mystical Unicorn within the an online local casino rather than affecting your own bag? Mystical Unicorn position of WMS is actually featuring an impressive Return to Athlete (RTP) off 96.0% and you will offering the chance to safe restriction victories to x520. When three or maybe more Spread symbols come, you are going to result in re-revolves one improve chances of obtaining big gains. The latest Crazy Mermaid icon facilitate function effective combinations by substituting getting almost every other symbols, as the Spread icon activates the bonus features even for far more opportunities. In the Lock & Load feature, you collect Award icons, that offer bucks benefits considering your bet size. The bonus games inside the Regal Mermaid position was designed to remain players involved and gives most options for gains.<\/p>\n

The new mysterious allure off mermaids-half-peoples, half-seafood beings with supernatural efforts-produces just the right background for a keen immersive playing sense where anything looks you’ll. Although not, despite the enjoyable graphics there is almost no more provides or incentives and gamble is fairly effortless. Earn Huge having Mystic Harbors right from your house free of charge!<\/p>\n

In order to strike a fantastic move, we’ve got provided titles such Gambling Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and Aruze’s Dance Panda Luck\ufffd. The good thing concerning the whole round is the fact most of the victories include a twice multiplier that renders a positive change if your gamer chose to bet a considerably large amount of success. The ball player could possibly get doing forty totally free spins if the he try lucky enough to find the extra rounds brought about and you can retriggered.<\/p>\n

While you are a lover from fantasy Vegas slots, your quest concludes right here. Featuring four form of 100 % free spins and you can good mermaid thrill to help you Yonibet<\/a> make you stay seeking Vegas ports treasures. Modern 100 % free slots pack an identical punch because the real-money types, complete with wild icons, spread out will pay, and you will entertaining incentive rounds.<\/p>\n

You can easily easily see hence online game match your to try out layout and you can which bonus rounds offer the finest possibility huge victories. Which under water thrill get your swimming into the fishes (on most practical method you are able to) and you will in search of drowned appreciate. And you can talking about earnings, Mermaid Beauty Slot has the benefit of a good amount of opportunities to get larger having its bonus have. One live match awaits your everyday-dominate the fresh new mountain, gather chips on the occupation, and you can discover exclusive advantages.<\/p>\n

The biggest destination of games was its free spins element with Insane Multipliers increasing your victories from the around 5x. It spends 5 reels and you can 30 paylines and features biggest signs portrayed by the red-colored-haired seductive mermaid, dolphins that have wonderful decorations, wonderful necklaces, jars filled up with wonderful gold coins and you will shells that have starfish. Prepared to capture a-deep plunge of many leagues according to the sea to search for Mermaid’s Gold? Into the prospect of extreme gains and you can an user-friendly style, the online game offers a mixture of adventure and you may activities which is bound to amuse members. Users can be talk about the video game with totally free Mysterious Fortune video clips harbors, when you’re real money enjoy begins just 0.20 for every twist, into the choice to choice up to to own high rollers looking to larger pleasure.<\/p>\n

All gains inside extra round was added to the remaining quantity of credits until the added bonus games has started. Having 20 repaired paylines and you may a bet variety of 0.20 so you’re able to 100, Mermaid’s Winnings & Spin caters to all of the explorer-off careful swimmers in order to strong-water high rollers. Graceful dolphins, lovely turtles, golden crowns, and you can sparkling starfish twist across the display screen since the peaceful voice of the sea books your adventure. Dive for the a slot machines dream which have Mermaid’s Victory & Spin\ufffd and you will embark on an exciting under water ports thrill, where big gains anticipate in game’s amazingly-clear waves! The main benefit cycles is actually even better within the one-fourth and you can dollars denomination ???? High reappearance!! During the extra, all victories is actually twofold!<\/p>\n

Enjoy old-fashioned position auto mechanics which have progressive twists and you may pleasing added bonus cycles<\/h2>\n

The latest slot also offers zero risky video game where you can try to boost the payout without bonus rounds having a good multiplier. I find myself holding my personal air inside extra rounds in hopes observe your retrigger. This type of bonuses besides boost your earnings but also incorporate a keen fascinating measurement regarding variability to your games, guaranteeing you will be usually to your edge of the seat. As you dive into the special series, there’ll be a world of wilds, scatters, and you will book symbols one to increase likelihood of success. The latest appeal away from Mystical Unicorn surpasses their basic game play; its incentive features it’s take the latest limelight.<\/p>\n

Such romantic games combine gleaming illustrations or photos, oceanic soundscapes, and you may enchanting added bonus has that make all twist feel an enthusiastic marine adventure. As well, it is possible to sign up the VIP Package, enter their slot tournaments, and found bonuses and you may benefits also.<\/p>\n

The sea Richies position try a treasure-trove off fun and you may perks, and you would not must miss out on the experience. Having totally free spins, multipliers, and you may wilds galore, so it position could keep your hooked particularly a seafood for the an excellent line. Part of the icons tend to be an effective dolphin, good seahorse, a crab, an excellent starfish, not to mention, an effective mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Successful banking means harbors sign up added bonus earnings are already obtainable With an enthusiastic RTP from % and you may lower volatility, this video game even offers regular game play which have frequent victories. In addition, the fresh new Spread out symbol \ufffd the latest Cost Tits \ufffd triggers\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-129364","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129364","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=129364"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129364\/revisions"}],"predecessor-version":[{"id":129374,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129364\/revisions\/129374"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=129364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=129364"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=129364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}