/* 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":119211,"date":"2026-05-25T13:07:03","date_gmt":"2026-05-25T13:07:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=119211"},"modified":"2026-05-25T13:07:04","modified_gmt":"2026-05-25T13:07:04","slug":"the-advantage-have-within-the-regal-mermaid-online-game-improve-slot-also-even-more-exciting","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-advantage-have-within-the-regal-mermaid-online-game-improve-slot-also-even-more-exciting\/","title":{"rendered":"The advantage have within the Regal Mermaid online game improve slot also even more exciting"},"content":{"rendered":"

Efficient banking means that ports join added bonus payouts are generally obtainable<\/h2>\n

Which have an enthusiastic RTP out of % and you may reasonable https:\/\/winstoriacasino.gr.com\/<\/a> volatility, which video game now offers steady game play having repeated wins. As well, the latest Spread out symbol \ufffd the newest Benefits Breasts \ufffd trigger the latest game’s unique extra have.<\/p>\n

If you prefer highest benefits, discover deposit-based invited bonus ports that have clear criteria. For each slots sign up extra offers another type of sense, while the real worthy of arises from how effortlessly you could potentially transfer it into the withdrawable profits. Fast and you may reputable distributions ensure that payouts from totally free spins into the sign-upwards might be utilized immediately. A proper-prepared slots welcome bring lets members to explore even more games and you will continue gameplay rather than additional expense. The best 100 % free spins signal-right up product sales are the ones that enable professionals to explore casino games on the internet versus so many limitations.<\/p>\n

Minimal is just one while the limit is actually 100 very there’s plenty of choice for one another reduced and you will highest betters. There are also the newest free revolves which you can earn if your match at least about three of icons; there is anywhere between one and you will ten 100 % free transforms waiting to end up being reported. The new crazy symbol will give you a large honor regarding 2,000 for folks who spin five but there’s no commission for coordinating 3 or 4.<\/p>\n

Are you looking to understand more about Mystical Unicorn within the an internet local casino instead of affecting the wallet? Mystical Unicorn position out of WMS are featuring a remarkable Go back to Athlete (RTP) out of 96.0% and you may offering the possibility to secure limit victories as much as x520. Whenever three or higher Spread out icons appear, might end in re-revolves you to raise your probability of landing larger wins. The newest Nuts Mermaid icon support form effective combinations because of the replacing to have most other symbols, while the Spread out icon turns on the main benefit provides for even a lot more potential. Inside Lock & Stream feature, you gather Award symbols, that offer dollars advantages centered on their bet size. The bonus online game inside Majestic Mermaid slot was created to keep people involved and supply a lot more solutions for victories.<\/p>\n

The new mysterious attract from mermaids-half-individual, half-seafood beings having supernatural powers-brings the perfect backdrop to have an immersive gaming sense where some thing appears you’ll. Although not, inspite of the fun graphics discover very little most features otherwise bonuses and also the enjoy is relatively easy. Earn Big which have Mystical Slots from your home for free!<\/p>\n

So you can strike a winning move, we now have integrated titles like Gambling Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Lightning Box’s 100x RA\ufffd, and you can Aruze’s Dancing Panda Chance\ufffd. The good thing concerning whole bullet is the fact all victories incorporate a twice multiplier that produces a change if your gamer decided to bet a substantially significant profits. The player get up to forty 100 % free revolves in the event that the guy is fortunate enough to find the incentive rounds brought about and you can retriggered.<\/p>\n

When you are a partner of dream Vegas ports, your pursuit comes to an end here. Featuring 4 form of 100 % free spins and you may good mermaid excitement so you can help you stay seeking Vegas harbors secrets. Modern 100 % free slots pack the same strike because genuine-money products, including wild icons, scatter pays, and entertaining incentive rounds.<\/p>\n

You can easily easily learn and that online game suit your to try out concept and which incentive rounds give you the greatest possibility of huge wins. So it underwater thrill will receive you swimming on the fishes (regarding the best way you are able to) and you can looking for sunken appreciate. And these are earnings, Mermaid Charm Position offers loads of opportunities to rating big that have the added bonus provides. You to live suits awaits your day-after-day-dominate the brand new pitch, gather chips on the career, and you can open personal rewards.<\/p>\n

The largest interest of game try its free spins ability which have Insane Multipliers boosting your gains by the around 5x. It spends 5 reels and you can thirty paylines featuring significant symbols depicted by yellow-haired seductive mermaid, whales which have fantastic decor, wonderful bracelets, containers filled up with wonderful gold coins and you can shells with starfish. Prepared to need a deep dive of many leagues beneath the sea to look for Mermaid’s Silver? Towards prospect of extreme wins and an user-friendly concept, the online game has the benefit of a variety of thrill and you can amusement that is sure to entertain members. People can be mention the online game which have free Mystical Chance video clips harbors, when you’re real cash play begins at just 0.20 for each spin, towards substitute for wager to to have high rollers seeking big thrills.<\/p>\n

Most of the gains inside incentive round is actually put into the remaining quantity of loans until the extra online game has begun. With 20 repaired paylines and you will a gamble directory of 0.20 to help you 100, Mermaid’s Profit & Twist serves every explorer-off cautious swimmers to strong-water high rollers. Graceful whales, pleasant turtles, fantastic crowns, and you will gleaming starfish spin along the screen because the calm sound of your own sea guides your own excitement. Dive towards a slots dream having Mermaid’s Win & Spin\ufffd and you may embark on a captivating underwater harbors excitement, where larger victories await within the game’s crystal-clear waves! The main benefit cycles was better yet inside the quarter and you will dollar denomination ???? High comeback!! Inside the extra, all of the wins is actually doubled!<\/p>\n

Delight in conventional slot auto mechanics which have modern twists and you may fun incentive series<\/h2>\n

The latest slot has the benefit of no high-risk game where you are able to make an effort to increase the commission and no bonus cycles having good multiplier. I have found myself holding my personal inhale within the bonus series assured observe your retrigger. This type of bonuses not simply enhance your earnings as well as incorporate a keen exciting dimension from variability towards game, ensuring you may be constantly to your edge of the chair. Since you diving to the unique rounds, there will be a world of wilds, scatters, and you may novel signs that improve your chances of achievement. The brand new charm regarding Mysterious Unicorn surpasses the fundamental gameplay; the added bonus provides really capture the newest limelight.<\/p>\n

These intimate game merge sparkling design, oceanic soundscapes, and you will magical added bonus features which make the spin feel just like a keen marine thrill. Simultaneously, you could sign up their VIP Plan, enter into its position tournaments, and located bonuses and you may advantages also.<\/p>\n

The sea Richies position are a treasure-trove off enjoyable and you may advantages, while would not have to overlook the experience. Which have 100 % free spins, multipliers, and you will wilds galore, that it position helps to keep you addicted including a seafood towards a great range. A portion of the icons include an effective dolphin, a seahorse, good crab, an effective starfish, not forgetting, an excellent mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficient banking means that ports join added bonus payouts are generally obtainable Which have an enthusiastic RTP out of % and you may reasonable https:\/\/winstoriacasino.gr.com\/ volatility, which video game now offers steady game play having repeated wins. As well, the latest Spread out symbol \ufffd the newest Benefits Breasts \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-119211","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119211","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=119211"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119211\/revisions"}],"predecessor-version":[{"id":119212,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119211\/revisions\/119212"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=119211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=119211"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=119211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}