/* 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":96428,"date":"2026-05-24T09:25:37","date_gmt":"2026-05-24T09:25:37","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=96428"},"modified":"2026-05-24T09:25:40","modified_gmt":"2026-05-24T09:25:40","slug":"have-fun-with-the-dog-family-megaways-slot-demonstration-by-the-pragmatic-enjoy","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/have-fun-with-the-dog-family-megaways-slot-demonstration-by-the-pragmatic-enjoy\/","title":{"rendered":"Have fun with the Dog Family\u00ae Megaways Slot Demonstration by the Pragmatic Enjoy"},"content":{"rendered":"

Caishen\u2019s Silver comes with the large RTP price in the 97.08%, however, the Pragmatic Enjoy top ports function highest RTP prices over the industry mediocre mark away from 96%. Pragmatic Play are a prominent industry game developer recognized for its feature-steeped harbors with a high RTPs and you may possibility of grand wins. Its ports have unique bonus keeps and you can gamification points \u2013 particularly interactive added bonus series, 100 percent free revolves, arbitrary let, and you can reel multipliers \u2013 remaining brand new gameplay new and you may pleasing. To participate the newest A week Award Wheel Falls, place real cash wagers (as much as \u00a3step 1 max) into the all checked Pragmatic Gamble online slots games.<\/p>\n

Based in Sliema, Malta, the global operation of team surrounds satellites for the major facilities like Gibraltar, The united kingdom, Romania, Ukraine, Asia, together with Philippines. Even when you\u2019lso are a professional into the playing or is actually not used to online casinos, the fun is also significantly make use of an understanding of the fundamental benefits from Practical Play. This guide usually analyze the ins and outs of Pragmatic Enjoy, deciding on the secret position game and you may advanced features, whilst spotlighting the company\u2019s superior focus on detail and user experience. Well-known for the creation of premium games, impressive pictures, and you can entertaining elements, Practical Gamble is an important push in the on-line casino world. These casinos on the internet offer the chance to enjoy real cash gambling games or fool around with behavior currency. If you are searching for the ones great Pragmatic Play harbors, you can visit the brand new legitimate online casinos inside our number lower than.<\/p>\n

The fresh Scandinavian surroundings away from a story book serves as the backdrop into reels. You usually have the option so you’re able to discover brand new slot machine game and you may spin the fresh reels, should you want to enjoys a tiny thrill in this Irish fantasy belongings. Up-date icons can look and build upwards regarding the carriage regarding the higher leftover spot when you play the feet video game. There\u2019s little larger otherwise clever on the 888 Silver, but look past can there’s an incredibly enjoyable on line slot. And you can thanks to the high Return to Pro fee, you’ll rarely must hold off long before one particular extra features lands.<\/p>\n

There is a good prize and you can normal tournaments, it is therefore well worth viewing. Each month, we see fantastic the fresh new Practical video game releases out-of Pragmatic Enjoy. Of the 2017, the firm try titled the site link<\/a> application Ascending Star from the EGR B2B Honours when you look at the 2017 and you may proceeded so you’re able to earn this new honor to own Most readily useful Slot Games along with its hugely common launch Wolf Silver. Their very first online game produced waves in the local casino market, having games including Dwarven Gold and Glorious Rome drawing devoted slot admirers. By far the most realistic path pertains to obtaining step three-4 high-worth multiplier orbs (50x, 100x assortment) whilst simultaneously hitting several+ advanced icons such as for instance Red Hearts or Pink Squares.<\/p>\n

You can be assured one to Pragmatic Gamble are a valid company. The fresh designer\u2019s jobs have also earned it some business prizes eg Gambling enterprise Application Provider on EGR B2B Honours 2023. Pragmatic Play was built for the 2015 and has now become among the\u2019s better builders. Once you\u2019re aiming for an effective jackpot, you should invariably ready yourself a spending plan or take frequent vacation trips if necessary. When you\u2019ve located your favorite game, you could enjoy him or her the real deal currency at best Practical Play casinos.<\/p>\n

With this features, players should expect a max profit of 5,000x its risk. Together, these characteristics is also offer your to 21,175x your own stake. So it slot has plenty to give, and a-tumble function you to takes away effective icons and you may multipliers upwards to 100x in the free revolves added bonus. Finding the right ports will be tricky when considering they\u2019re collection.<\/p>\n

Sky Vegas can still getting made use of to create new from inside the slots activities, and you may gamble their online slots games for real cash in great britain, usually with a good-sized added bonus. Pragmatic Play promote enough harbors to the BetMGM Gambling enterprise catalog, also Peaky Blinders, Buffalo Blitz, and you can An element of the grand MGM brand, BetMGM Gambling establishment are among the greatest brands in the Us actual currency betting, and will be offering a licensed online casino so you can ports players when you look at the PA, Nj-new jersey, WV, and MI. Currently you could potentially play real cash ports at the FanDuel Gambling establishment from inside the PA, MI, and Nj-new jersey, with claims ahead on line in the future! FanDuel Gambling enterprise is just one of the greatest brands inside Us actual currency gaming, and will be offering harbors, jackpot online game, and other gambling enterprise favorites near to the sportsbook platform. Some of the top a real income gambling enterprises throughout the world has currently hitched that have Practical Gamble, and you might find plenty of their ports seated about slot game collection, would love to be spun.<\/p>\n

Why don’t we look closer within these slot headings, together with paylines, extra have, together with Return to Member (RTP). If a real income gambling isn\u2019t judge on your venue, this may be a personal gambling establishment where you are able to play online ports free-of-charge. Seem as a result of the on the internet help guide to Pragmatic Play slots, including the better slot games to explore, where you can enjoy these position video game, and several record about it high games vendor. After you\u2019re operating at the top of a winning streak at the favorite betting platform, the worst thing you prefer will be to come across unforeseen difficulties when event your income. This guide demonstrates to you basic answers to confirm the RTP you\u2019re to tackle\u2026 Of a lot people suppose all the models from a particular online game promote the same payment prices, but operators can choose from numerous settings having rather other output.<\/p>\n

Created inside the 2015, Pragmatic Enjoy keeps quickly increased to end up being an excellent powerhouse in the iGaming industry. By applying this type of strategies, you might enhance your possibility of profitable and take pleasure in a rewarding gambling feel. An important will be to enjoy the games when you find yourself providing yourself the new very best chance to take advantage of the slot\u2019s highest RTP. Toward most recent campaigns and bonuses, below are a few slot Garuda365, where you can improve your game play with an increase of fund otherwise totally free spins. It\u2019s in addition to best if you separate your own bankroll toward less servings so you’re able to be sure you can enjoy multiple sessions rather than depleting your fund also rapidly.<\/p>\n

Practical Gamble already features twenty eight slot games monitored all over numerous gambling enterprises to the SlotStat. Pragmatic Gamble is one of the most respected position designers into the a, launching over 250 HTML5 headings while the 2015. If there\u2019s things slot professionals like, it\u2019s the chance to optimize …<\/p>\n

Practical Enjoy is the all over the world iGaming organization you to definitely designs and you can supplies electronic casino games. Since organization is maybe not in public areas traded, it\u2019s based for the Gibraltar with workplaces around the globe. Constantly prefer gambling enterprises examined into 101RTP, for which you find directories out of safer workers providing Pragmatic Gamble game and additionally demonstration supply and equity facts. Pragmatic Play ports will be starred in the signed up online casinos you to element the latest seller\u2019s posts in This new Zealand and other managed places. Fool around with 101RTP to understand more about slot statistics, are exposure-100 percent free demos, and pick online game you to definitely match your play style.<\/p>\n","protected":false},"excerpt":{"rendered":"

Caishen\u2019s Silver comes with the large RTP price in the 97.08%, however, the Pragmatic Enjoy top ports function highest RTP prices over the industry mediocre mark away from 96%. Pragmatic Play are a prominent industry game developer recognized for its feature-steeped harbors with a high RTPs and you may possibility\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-96428","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96428","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=96428"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96428\/revisions"}],"predecessor-version":[{"id":96429,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96428\/revisions\/96429"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=96428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=96428"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=96428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}