/* 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":129651,"date":"2026-05-25T13:31:54","date_gmt":"2026-05-25T13:31:54","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=129651"},"modified":"2026-05-25T13:31:57","modified_gmt":"2026-05-25T13:31:57","slug":"the-benefit-features-for-the-majestic-mermaid-games-make-the-slot-also-more-pleasing","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-benefit-features-for-the-majestic-mermaid-games-make-the-slot-also-more-pleasing\/","title":{"rendered":"The benefit features for the Majestic Mermaid games make the slot also more pleasing"},"content":{"rendered":"

Efficient banking means slots join added bonus earnings already are obtainable<\/h2>\n

That https:\/\/royspinscasino.net\/<\/a> have an RTP regarding % and lowest volatility, this games has the benefit of regular gameplay which have repeated gains. As well, the newest Scatter symbol \ufffd the newest Value Breasts \ufffd leads to the brand new game’s special added bonus has.<\/p>\n

If you prefer large benefits, get a hold of deposit-dependent acceptance incentive harbors which have clear requirements. For each and every slots register bonus also offers a different sort of experience, and the genuine worth originates from just how without difficulty you could potentially transfer they for the withdrawable payouts. Timely and you may reputable distributions guarantee that winnings off free spins to your sign-right up is going to be accessed without delay. A highly-organized slots desired provide lets professionals to explore a lot more online game and you can expand gameplay instead additional expense. A knowledgeable free revolves sign-right up product sales are the ones that enable people to understand more about gambling games on the web rather than unnecessary restrictions.<\/p>\n

The minimum is certainly one and the restrict is actually 100 very there is a lot of option for each other reduced and you will high betters. There are also the fresh new free revolves which you can win if the your meets at least about three of the signs; there’s ranging from you to definitely and you can 10 free transforms waiting to end up being advertised. The newest wild icon provides you with a massive honor off 2,000 for those who twist five but there’s no payment to possess coordinating three or four.<\/p>\n

Looking for to understand more about Mystical Unicorn within the an internet local casino versus impacting your own purse? Mysterious Unicorn position away from WMS are featuring an extraordinary Come back to Player (RTP) off 96.0% and you can providing the possible opportunity to secure restriction wins up to x520. When about three or maybe more Spread symbols are available, might cause re also-revolves that raise your probability of getting larger wins. The fresh new Nuts Mermaid symbol support form profitable combinations of the substituting to possess almost every other symbols, because Spread icon activates the advantage provides even for even more solutions. Within the Lock & Load feature, your assemble Honor icons, that provide cash perks considering the choice proportions. The advantage game within the Regal Mermaid position was created to remain members engaged and gives even more solutions having wins.<\/p>\n

The fresh new strange appeal regarding mermaids-half-human, half-seafood beings which have supernatural vitality-brings just the right background to possess a keen immersive betting experience in which anything looks you are able to. Although not, inspite of the enjoyable graphics you will find little or no more provides or bonuses as well as the play is fairly easy. Winnings Larger having Mystic Slots from your house at no cost!<\/p>\n

In order to strike a fantastic streak, we’ve provided headings such Betting Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and you may Aruze’s Moving Panda Fortune\ufffd. The good thing regarding whole round is the fact all the wins include a twice multiplier which makes a big difference if the gamer made a decision to wager a notably countless achievements. The ball player get doing forty totally free spins in the event the he are fortunate to find the added bonus series triggered and retriggered.<\/p>\n

When you find yourself a partner regarding dream Vegas slots, your research closes here. Offering four variety of 100 % free spins and you may good mermaid excitement so you’re able to make you stay seeking Las vegas slots gifts. Progressive totally free ports package the same punch because the actual-money brands, filled with crazy signs, scatter will pay, and you will entertaining incentive series.<\/p>\n

You’ll quickly learn and therefore online game suit your to relax and play style and you will hence extra series offer the greatest potential for huge victories. That it under water adventure will have you diving to the fishes (from the most practical method you’ll be able to) and looking for sunken appreciate. And talking about profits, Mermaid Charm Slot even offers an abundance of chances to get huge that have the extra has. That alive matches awaits your every day-dominate the brand new slope, assemble potato chips into the occupation, and you may open exclusive rewards.<\/p>\n

The biggest attraction of the online game is the totally free revolves element having Insane Multipliers boosting your wins because of the doing 5x. It spends 5 reels and you can thirty paylines and features significant signs depicted by red-haired enchanting mermaid, whales having golden decorations, golden bracelets, containers filled with fantastic coins and you will shells which have starfish. Happy to need a-deep dive of many leagues under the water to look for Mermaid’s Gold? For the prospect of significant wins and you will an user-friendly concept, the online game offers a mix of adventure and you will enjoyment that’s sure to host members. Members is mention the online game having free Strange Chance videos harbors, if you are real cash enjoy initiate at just 0.20 for each twist, into the option to choice to having big spenders trying larger exhilaration.<\/p>\n

Most of the victories in the added bonus round is placed into the remaining level of credit before bonus online game has begun. With 20 fixed paylines and you will a gamble directory of 0.20 to help you 100, Mermaid’s Winnings & Spin serves all of the explorer-off cautious swimmers in order to strong-ocean big spenders. Elegant whales, pleasant turtles, fantastic crowns, and you will sparkling starfish twist over the monitor because the peaceful voice of your own sea courses your own thrill. Diving to the a slots fantasy which have Mermaid’s Victory & Spin\ufffd and embark on an exciting under water harbors adventure, in which large gains await beneath the game’s amazingly-obvious surf! The main benefit cycles is actually better yet during the quarter and you will money denomination ???? High reappearance!! Within the incentive, all of the wins is doubled!<\/p>\n

See antique slot technicians having modern twists and fun added bonus series<\/h2>\n

The newest position also offers zero high-risk video game where you can try to help the payout without bonus series that have a good multiplier. I have found myself holding my personal air during the incentive cycles in hopes to see your retrigger. These types of bonuses not simply increase profits and create a keen pleasing aspect from variability for the online game, making certain you might be always on the side of their chair. Since you dive for the unique cycles, you will find a world of wilds, scatters, and you will unique signs one to improve your probability of achievements. The new allure away from Mystical Unicorn goes beyond its standard gameplay; its added bonus has it really is get the new spotlight.<\/p>\n

These types of enchanting online game blend gleaming graphics, oceanic soundscapes, and you will magical bonus possess which make most of the spin feel a keen aquatic thrill. In addition, you can also subscribe their VIP Plan, go into the position tournaments, and you will found incentives and you may rewards too.<\/p>\n

The ocean Richies slot is actually a treasure-trove from enjoyable and perks, therefore won’t have to lose out on the action. With totally free spins, multipliers, and wilds aplenty, which position could keep your addicted like a fish on the good line. An element of the symbols tend to be a dolphin, a great seahorse, a great crab, good starfish, and additionally, a good mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficient banking means slots join added bonus earnings already are obtainable That https:\/\/royspinscasino.net\/ have an RTP regarding % and lowest volatility, this games has the benefit of regular gameplay which have repeated gains. As well, the newest Scatter symbol \ufffd the newest Value Breasts \ufffd leads to the brand new\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-129651","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129651","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=129651"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129651\/revisions"}],"predecessor-version":[{"id":129662,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/129651\/revisions\/129662"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=129651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=129651"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=129651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}