/* 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":117663,"date":"2026-05-25T12:59:08","date_gmt":"2026-05-25T12:59:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=117663"},"modified":"2026-05-25T12:59:09","modified_gmt":"2026-05-25T12:59:09","slug":"the-advantage-has-inside-majestic-mermaid-video-game-make-slot-actually-more-fun","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-advantage-has-inside-majestic-mermaid-video-game-make-slot-actually-more-fun\/","title":{"rendered":"The advantage has inside Majestic Mermaid video game make slot actually more fun"},"content":{"rendered":"

Productive banking implies that slots sign up extra payouts are actually accessible<\/h2>\n

Having a keen RTP from % and you can reasonable volatility, so it online game also offers steady gameplay with constant wins. Simultaneously, the brand new Spread icon \ufffd the newest Benefits Bust \ufffd produces the fresh new game’s unique bonus have.<\/p>\n

If you want highest perks, pick put-founded desired incentive slots having clear conditions. Each harbors register bonus now offers a different sort of feel, while the genuine worth comes from just how effortlessly you might move it to your withdrawable winnings. Prompt and you will credible distributions guarantee that earnings from totally free spins to the sign-upwards will likely be reached immediately. A proper-arranged ports allowed give allows players to understand more about more online game and you may extend game play in place of added cost. A knowledgeable totally free revolves indication-upwards product sales are the ones that enable people to understand more about online casino games on line rather than way too many restrictions.<\/p>\n

The minimum is just one as well as the restriction try 100 so you will find a good amount of option for both reasonable and you will highest betters. There are also the latest 100 % free revolves which you’ll win in the event the you matches no less than about three of signs; there is certainly ranging from one and you can ten free turns waiting to feel reported. The fresh crazy icon will give you a big honor off 2,000 for folks who twist five but there is zero payment for complimentary three or four.<\/p>\n

Looking for to explore Strange Unicorn inside an online gambling establishment in place of affecting their handbag? Mysterious Unicorn position off WMS was featuring an extraordinary Come back to Player (RTP) out of 96.0% and offering the opportunity to safer restriction gains to x520. Whenever around three or maybe more Scatter symbols appear, you’ll bring about re also-spins one to improve your chances of landing large victories. The brand new Insane Mermaid symbol support mode effective combinations by substituting to own most other symbols, since Spread out icon turns on the bonus have even for far more solutions. Within the Lock & Weight element, your collect Honor signs, that provide dollars advantages considering the choice size. The advantage game inside Majestic Mermaid slot was designed to continue members involved and offer most options having victories.<\/p>\n

The fresh mysterious allure out of mermaids-half-people, half-seafood beings that have supernatural Ubet<\/a> efforts-creates the ideal background to own an immersive gaming feel where one thing looks you can easily. Although not, in spite of the enjoyable image discover little more possess otherwise bonuses plus the enjoy is relatively easy. Victory Big which have Esoteric Slots straight from your residence free-of-charge!<\/p>\n

To struck a fantastic streak, we’ve got included headings like Gaming Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and Aruze’s Dance Panda Fortune\ufffd. The good thing regarding entire round would be the fact all wins have a 2 times multiplier that produces a difference in case your gamer chose to bet a notably lot of achievements. The player can get as much as forty 100 % free revolves when the the guy is fortunate to find the extra rounds caused and retriggered.<\/p>\n

While an enthusiast from fantasy Vegas slots, your quest concludes here. Boasting 4 kind of 100 % free spins and you may an effective mermaid thrill so you can help you stay trying to find Vegas ports treasures. Progressive free slots pack the same punch while the real-money designs, detailed with insane signs, spread out pays, and entertaining extra series.<\/p>\n

You can easily rapidly discover which games suit your to try out concept and and therefore added bonus series give you the finest prospect of big wins. This underwater adventure can get your swimming to your fishes (from the best method you are able to) and seeking sunken appreciate. And you may these are payouts, Mermaid Beauty Position even offers a good amount of possibilities to score big which have their added bonus has. You to definitely real time fits awaits you day-after-day-take over the latest slope, collect chips towards community, and unlock personal rewards.<\/p>\n

The greatest attraction of your online game was the totally free spins ability which have Nuts Multipliers boosting your wins of the doing 5x. It uses 5 reels and you may thirty paylines and features major icons illustrated of the reddish-haired alluring mermaid, dolphins having fantastic design, wonderful necklaces, containers filled up with golden gold coins and you will shells that have starfish. Willing to grab a deep plunge of several leagues in sea to find Mermaid’s Silver? Towards potential for significant victories and you can an intuitive design, the overall game offers a mix of thrill and you can enjoyment which is sure to captivate professionals. Professionals can also be speak about the overall game with totally free Mysterious Fortune video clips ports, if you are real money enjoy starts at just 0.20 for every single twist, to the substitute for choice doing having big spenders seeking bigger excitement.<\/p>\n

All of the wins within the extra bullet try put into the remainder level of credits through to the incentive online game has begun. Which have 20 repaired paylines and a bet list of 0.20 to 100, Mermaid’s Victory & Spin serves all of the explorer-off cautious swimmers so you’re able to strong-ocean big spenders. Elegant whales, charming turtles, fantastic crowns, and you can gleaming starfish spin over the screen since the peaceful sound of your own ocean books your excitement. Plunge to your a slot machines dream having Mermaid’s Earn & Spin\ufffd and you can carry on a vibrant under water harbors thrill, where huge wins wait for in game’s amazingly-obvious waves! The main benefit rounds are in addition to this in the one-fourth and you will money denomination ???? Great comeback!! Inside extra, most of the wins is twofold!<\/p>\n

Appreciate traditional position auto mechanics that have modern twists and enjoyable incentive series<\/h2>\n

The latest slot now offers zero risky video game where you are able to you will need to help the payout without extra rounds which have an excellent multiplier. I’ve found me carrying my personal breath within the incentive series assured observe you retrigger. This type of incentives not only improve your payouts but also include an enthusiastic fascinating aspect of variability for the online game, making sure you may be constantly on the side of your own seat. Since you diving to your special rounds, you’ll encounter a realm of wilds, scatters, and you will novel icons one boost your chances of triumph. The fresh new attract of Mystical Unicorn exceeds their simple gameplay; their bonus has really grab the fresh new spotlight.<\/p>\n

These enchanting online game combine gleaming images, oceanic soundscapes, and you will magical added bonus features that make all the spin feel like a keen aquatic adventure. Concurrently, you could subscribe their VIP Package, go into the position competitions, and you may located bonuses and you will advantages as well.<\/p>\n

The ocean Richies slot was a treasure-trove out of fun and you will benefits, and also you wouldn’t need certainly to overlook the experience. Which have free spins, multipliers, and you can wilds galore, that it slot will keep you addicted such as a fish to your a line. A portion of the icons is a great dolphin, good seahorse, a great crab, a starfish, and of course, a great mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Productive banking implies that slots sign up extra payouts are actually accessible Having a keen RTP from % and you can reasonable volatility, so it online game also offers steady gameplay with constant wins. Simultaneously, the brand new Spread icon \ufffd the newest Benefits Bust \ufffd produces the fresh new\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-117663","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117663","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=117663"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117663\/revisions"}],"predecessor-version":[{"id":117665,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/117663\/revisions\/117665"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=117663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=117663"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=117663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}