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

Effective financial means that harbors join added bonus profits already are accessible<\/h2>\n

Which have a keen RTP regarding % and you can reasonable volatility, it online game even offers https:\/\/bet365-casino-nl.nl\/nl-nl\/<\/a> constant gameplay that have repeated victories. In addition, the new Scatter symbol \ufffd the fresh new Cost Chest \ufffd causes the fresh game’s unique bonus provides.<\/p>\n

If you like high benefits, see put-centered acceptance incentive harbors that have obvious standards. For each ports sign up extra offers a different feel, and also the actual worth is inspired by exactly how effortlessly you can convert they into the withdrawable payouts. Punctual and you can legitimate distributions make certain profits regarding free revolves into the sign-right up might be reached straight away. A well-planned harbors acceptance offer allows members to understand more about a great deal more games and increase gameplay as opposed to added cost. An educated totally free spins signal-up selling are those that enable players to explore online casino games on line rather than too many limitations.<\/p>\n

The minimum is the one as well as the maximum was 100 very you will find loads of choice for each other low and you can high betters. There are also the new free spins which you’ll profit in the event the you suits at least around three of the symbols; there is ranging from you to and you may 10 totally free transforms would love to become reported. The newest nuts symbol offers a huge award regarding 2,000 for many who spin five but there is however zero commission for complimentary 3 or 4.<\/p>\n

Are you looking to understand more about Mysterious Unicorn for the an on-line local casino instead affecting your own wallet? Mystical Unicorn position from WMS try offering an extraordinary Go back to Player (RTP) off 96.0% and providing the chance to safe limit victories around x520. When about three or maybe more Spread signs appear, might lead to re-revolves you to definitely enhance your likelihood of obtaining larger wins. The new Nuts Mermaid icon support function effective combos by the substituting having other signs, since the Spread out icon turns on the benefit provides even for more solutions. Within the Secure & Stream feature, your collect Honor symbols, that provide bucks benefits based on their bet proportions. The bonus video game within the Regal Mermaid slot is made to remain users engaged and supply extra ventures for wins.<\/p>\n

The new strange impress away from mermaids-half-human, half-seafood beings which have supernatural powers-brings the perfect background having an immersive betting sense where things seems it is possible to. Yet not, regardless of the enjoyable image discover little or no extra features or incentives and also the play is relatively simple. Win Larger that have Esoteric Harbors from the comfort of your house at no cost!<\/p>\n

So you’re able to struck an absolute move, we’ve provided headings such Playing Arts’ Pinatas Ole\ufffd, AGS’s Rakin’ Bacon\ufffd, Super Box’s 100x RA\ufffd, and Aruze’s Dancing Panda Chance\ufffd. The good thing concerning the entire bullet is that all victories include a 2 times multiplier that produces a difference when your gamer made a decision to wager a notably lot of achievements. The player can get doing 40 100 % free spins in the event that he is lucky enough to discover the extra cycles triggered and retriggered.<\/p>\n

While a fan off fantasy Vegas ports, your search stops here. Boasting 4 variety of free spins and you may a mermaid excitement in order to make you stay in search of Vegas harbors treasures. Progressive 100 % free ports pack the same punch since the real-currency versions, including insane icons, spread out pays, and interactive bonus cycles.<\/p>\n

You’ll rapidly learn which video game suit your to try out layout and you will and that added bonus rounds offer the top possibility huge victories. This underwater excitement will receive your diving to the fishes (on the most practical way you’ll) and you can in search of drowned treasure. And you may talking about payouts, Mermaid Beauty Position now offers a lot of chances to score big with its extra enjoys. That real time matches awaits your daily-take over the new mountain, assemble potato chips towards occupation, and you may unlock private perks.<\/p>\n

The largest destination of your game was its free revolves feature that have Crazy Multipliers boosting your gains from the up to 5x. They spends 5 reels and you will 30 paylines and features major icons portrayed because of the yellow-haired enchanting mermaid, dolphins that have golden decoration, wonderful bracelets, containers filled with fantastic coins and you can shells having starfish. Happy to grab a-deep plunge of several leagues underneath the water to look for Mermaid’s Gold? Into the prospect of significant victories and you will an user-friendly build, the game also offers a mixture of adventure and you will amusement which is sure to amuse members. Players normally discuss the video game having free Mystical Luck video clips slots, when you’re real money enjoy starts just 0.20 each twist, to your substitute for choice up to to own high rollers looking to big pleasure.<\/p>\n

All wins inside added bonus round is added to the rest amount of loans before the incentive games has started. Having 20 repaired paylines and a gamble list of 0.20 so you can 100, Mermaid’s Victory & Spin suits the explorer-off cautious swimmers so you can strong-sea big spenders. Elegant dolphins, pleasant turtles, fantastic crowns, and you may sparkling starfish twist along side display because the peaceful sound of your water books your adventure. Dive into the a slot machines dream that have Mermaid’s Profit & Spin\ufffd and go on an exciting under water ports adventure, in which big victories watch for within the game’s crystal-clear swells! The benefit rounds are even better for the one-fourth and dollar denomination ???? Higher comeback!! Inside the bonus, all victories are twofold!<\/p>\n

Delight in traditional slot technicians having progressive twists and enjoyable added bonus rounds<\/h2>\n

The new slot offers zero high-risk video game where you are able to attempt to increase the payment and no incentive rounds which have a good multiplier. I’ve found myself carrying my breath inside the extra cycles hoping to see your retrigger. This type of incentives besides improve your payouts but also incorporate a keen fascinating dimensions regarding variability into the video game, guaranteeing you are always for the edge of your seat. Since you dive for the special series, you will have a world of wilds, scatters, and you will book symbols you to increase probability of victory. The fresh new appeal of Mysterious Unicorn surpasses their standard game play; the added bonus enjoys it is need the newest limelight.<\/p>\n

Such passionate games blend sparkling graphics, oceanic soundscapes, and you may enchanting added bonus have which make all spin feel an enthusiastic aquatic thrill. As well, you may also join its VIP Plan, go into their slot competitions, and you can discover incentives and you will benefits also.<\/p>\n

The sea Richies slot try a treasure trove out of fun and you can benefits, and you would not need certainly to lose out on the action. Having free spins, multipliers, and you will wilds galore, which position keeps you hooked for example a seafood on the an effective line. A portion of the symbols include a great dolphin, a great seahorse, good crab, a great starfish, and of course, a great mermaid.<\/p>\n","protected":false},"excerpt":{"rendered":"

Effective financial means that harbors join added bonus profits already are accessible Which have a keen RTP regarding % and you can reasonable volatility, it online game even offers https:\/\/bet365-casino-nl.nl\/nl-nl\/ constant gameplay that have repeated victories. In addition, the new Scatter symbol \ufffd the fresh new Cost Chest \ufffd causes\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-123078","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123078","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=123078"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123078\/revisions"}],"predecessor-version":[{"id":123081,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/123078\/revisions\/123081"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=123078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=123078"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=123078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}