/* 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":98438,"date":"2026-05-25T10:52:07","date_gmt":"2026-05-25T10:52:07","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=98438"},"modified":"2026-05-25T10:52:07","modified_gmt":"2026-05-25T10:52:07","slug":"the-benefit-has-in-the-majestic-mermaid-game-result-in-the-position-even-a-lot-more-enjoyable","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-benefit-has-in-the-majestic-mermaid-game-result-in-the-position-even-a-lot-more-enjoyable\/","title":{"rendered":"The benefit has in the Majestic Mermaid game result in the position even a lot more enjoyable"},"content":{"rendered":"

Productive banking ensures that slots subscribe bonus payouts happen to be obtainable<\/h2>\n

Having an enthusiastic RTP regarding % and you may reasonable volatility, it online game has the benefit of regular game play with regular wins. While doing so, the newest Scatter icon \ufffd the brand new Appreciate Chest \ufffd trigger the brand new game’s unique extra have.<\/p>\n

If you prefer large perks, come across put-dependent greeting added bonus slots having clear requirements. For each and every ports sign up added bonus also provides another feel, and genuine well worth arises from how without difficulty you can convert they to your withdrawable winnings. Fast and you will credible withdrawals ensure that earnings from totally free revolves to your sign-up shall be utilized straight away. A well-organized harbors desired render allows participants to explore even more game and extend gameplay rather than additional cost. An educated totally free revolves sign-up sale are those that allow professionals to explore gambling games on the web in place of so many constraints.<\/p>\n

Minimal is one while the restriction was 100 thus you will find a good amount of choice for one another lowest and you may large betters. There are even the brand new free spins that you’ll profit if the you fits no less than around three of your own icons; discover between that and you may 10 100 % free transforms waiting to become advertised. The new nuts icon offers a giant honor of 2,000 for many who twist four but there is no commission to have matching three or four.<\/p>\n

Looking for to understand more about Mystical Unicorn inside the an internet gambling establishment versus impacting your purse? Mysterious Unicorn position regarding WMS was boasting an extraordinary Come back to Athlete (RTP) regarding 96.0% and you can offering the opportunity to safe limitation victories doing x520. Whenever three or even more Scatter icons are available, you are going to cause lso are-revolves one to raise your likelihood of getting large gains. The fresh new Wild Mermaid symbol support form winning combos from the substituting for most other symbols, as the Scatter icon turns on the main benefit enjoys for even a great deal more solutions. Inside the Secure & Load feature, you collect Prize symbols, that provide dollars benefits considering your wager size. The bonus video game within the Majestic Mermaid slot is designed to keep professionals interested and provide a lot more options for wins.<\/p>\n

The new mysterious attract of mermaids-half-human, half-fish beings which have supernatural vitality-brings the ideal backdrop to have a keen immersive betting sense in which one thing looks you can. Although not, inspite of the fun picture there is certainly hardly any most provides or bonuses and play is relatively easy. Profit Huge which have Esoteric Ports right from your home free-of-charge!<\/p>\n

To struck a winning streak, we now have provided titles for example Playing Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Lightning Box’s 100x RA\ufffd, and you will Aruze’s Dancing Panda Chance\ufffd. The good thing regarding entire round is the fact all the wins incorporate a 2 times multiplier that makes a difference should your gamer chose to bet a substantially significant victory. The ball player can get around 40 totally free spins in the event the he is fortunate to discover the added bonus rounds brought about and you will retriggered.<\/p>\n

When you are a fan off fantasy Vegas ports, your hunt stops https:\/\/winsly.se.net\/<\/a> right here. Boasting four style of totally free spins and you will an excellent mermaid thrill so you can make you stay searching for Vegas slots treasures. Modern totally free slots prepare an equivalent punch as the actual-currency types, filled with wild signs, scatter will pay, and you may interactive bonus cycles.<\/p>\n

It is possible to quickly discover and this games suit your to tackle style and and this bonus cycles provide the finest potential for big gains. So it underwater adventure get your diving on the fishes (regarding the most practical way you are able to) and you will looking for drowned cost. And you will speaking of payouts, Mermaid Beauty Slot also offers a good amount of chances to get big that have its extra provides. You to live suits awaits your daily-take over the new slope, gather potato chips to your community, and you can discover personal rewards.<\/p>\n

The largest appeal of your own game are its free revolves feature that have Crazy Multipliers increasing your wins by up to 5x. They uses 5 reels and you can 30 paylines and features biggest icons represented by the reddish-haired seductive mermaid, dolphins that have fantastic decorations, wonderful necklaces, jars filled with wonderful coins and you may shells having starfish. Prepared to take a-deep plunge many leagues underneath the water to search for Mermaid’s Silver? To your prospect of high victories and an user-friendly style, the video game has the benefit of a variety of excitement and you may activity which is bound to entertain professionals. Players is also speak about the online game having free Mysterious Chance video slots, when you’re a real income gamble begins at just 0.20 for each spin, on the choice to bet as much as to have high rollers looking to large thrills.<\/p>\n

The gains within the extra bullet are placed into the rest amount of loans till the extra video game has started. Having 20 repaired paylines and you will a gamble range of 0.20 in order to 100, Mermaid’s Victory & Spin suits all explorer-away from cautious swimmers in order to strong-water big spenders. Elegant whales, lovely turtles, golden crowns, and sparkling starfish twist along side display screen because serene sound of one’s ocean books your own adventure. Dive on the a slot machines dream that have Mermaid’s Win & Spin\ufffd and continue a vibrant under water slots excitement, in which big gains expect underneath the game’s crystal-clear surf! The bonus series was in addition to this inside one-fourth and you can money denomination ???? Higher return!! Within the incentive, every victories try twofold!<\/p>\n

See old-fashioned slot technicians with modern twists and you may fascinating bonus cycles<\/h2>\n

The fresh new position also provides no risky games where you can just be sure to enhance the payment no bonus series that have a good multiplier. I find me carrying my air inside extra series hoping observe you retrigger. This type of incentives just increase payouts as well as incorporate a keen enjoyable dimensions out of variability on the games, ensuring you’re always on the edge of their chair. Since you dive for the special series, you will have a realm of wilds, scatters, and you may book signs you to increase likelihood of profits. The latest appeal regarding Mysterious Unicorn goes beyond their fundamental gameplay; the incentive provides its capture the fresh new spotlight.<\/p>\n

These types of passionate video game combine shimmering images, oceanic soundscapes, and enchanting added bonus features which make every spin feel just like an enthusiastic marine thrill. Simultaneously, you can also register its VIP Package, get into its position competitions, and you may found incentives and you can advantages as well.<\/p>\n

The ocean Richies position is a treasure trove of fun and you can benefits, and you would not have to overlook the action. Which have free spins, multipliers, and you may wilds aplenty, this slot could keep you hooked for example a fish for the a good line. An element of the icons become a dolphin, an excellent seahorse, a crab, an excellent starfish, as well as, a mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Productive banking ensures that slots subscribe bonus payouts happen to be obtainable Having an enthusiastic RTP regarding % and you may reasonable volatility, it online game has the benefit of regular game play with regular wins. While doing so, the newest Scatter icon \ufffd the brand new Appreciate Chest \ufffd\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-98438","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98438","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=98438"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98438\/revisions"}],"predecessor-version":[{"id":98439,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98438\/revisions\/98439"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=98438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=98438"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=98438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}