/* 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":69270,"date":"2026-05-22T17:57:51","date_gmt":"2026-05-22T17:57:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=69270"},"modified":"2026-05-22T17:57:52","modified_gmt":"2026-05-22T17:57:52","slug":"miss-cat-demo-by-the-aristocrat-play-for-totally-free","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/miss-cat-demo-by-the-aristocrat-play-for-totally-free\/","title":{"rendered":"Miss Cat Demo by the Aristocrat Play for Totally free"},"content":{"rendered":"

This is recognized to slow down the entertainment value quite, particularly for the individuals attracted to such modern jackpots or novel added bonus rounds one to put a pokie apart from the crowd. Members score a little helping hands into the profitable combos, so that the so much more kittens on your reels the higher because\u2019s you’ll to acquire specific really very good earnings in this element. We like the new sticky wilds which can be when you look at the enjoy inside 100 percent free spins function to boost the new possibilities to win, and also the capability to end in more revolves in this round so you’re able to a total of 15 freebies. We might recommend function oneself a spending budget prior to investing so you can play in the event the honor magnitude and you may volume isn\u2019t once the anticipated. When compared to high volatility pokies, Skip Cat sometimes has lower however, more regular earnings.<\/p>\n

That have free revolves and you can sticky wilds, there\u2019s the chance to rating some high awards. There\u2019s zero maximum to your quantity of gooey wilds you can rating, so there\u2019s decent prospect of specific big honors right here. With exclusive added bonus has actually and you will reasonable prizes, Aristocrat slots are always high quality, but the team doesn’t only manage game play. Come across prizes of five, 10, 20 or fifty Totally free Spins; 10 choices readily available contained in this 20 months, twenty four hours anywhere between for every single choices. The pleasant graphics, engaging gameplay, and you may satisfying payouts succeed a high option for both everyday and you will seasoned slot players. Miss Cat herself, obviously, ‘s the celebrity when it comes to cash awards.<\/p>\n

Although it doesn\u2019t promote a progressive jackpot, there are many enticing awards so you can profit if you optimize your wagers. In my free time i favor walking using my dogs and you will spouse during the an area we label \u2018Absolutely nothing Switzerland\u2019. I like to gamble slots during the property casinos and online to possess 100 percent free enjoyable and sometimes i play for a real income when i feel a small fortunate. The newest medium RTP video slots video game offers repeated payouts through getting effective combos easily rewarded.<\/p>\n

You\u2019ll see a great deal more attractive searching video game around such days however, you to definitely\u2019s not to say it looks bad. Whether your Miss Cat slot online game falls down anyplace it\u2019s with the total image. What are the most useful playing tricks for boosting totally free spin bonuses inside the Miss Kitty slot games?<\/p>\n

This can be a straightforward on line slot that provides a moderate top away from volatility, smooth gameplay, and you will a max profit of 1,000x the bet inside feet games. This is certainly probably the best video slot of them all. The best payment is really worth 100,one hundred thousand coins on most best bet revolves.Skip Kitty, with 50 paylines, piled data, and you may incentive revolves is like most other real money slot online game, eg fifty Dragons and fifty Lions. At the same time, landing a beneficial spread symbol yourself the lower a wild pet can offer a haphazard spread out prize. The backdrop to people reels is good silhouetted cityscape \u2013 the ideal nighttime park to possess a fascinated kitty. Numerous bets enables you to become more flexible with your gambling design.<\/p>\n

Oftentimes, the fresh spread symbol is linked into the extra has actually the slot is offering. Whether or not it found pokies, you would have to sit in side out-of a slot, add your coins, and you will pull a beneficial lever so sweet bonanza 1000 casino spil<\/a> you can twist the new reels. Really casinos on the internet claim to feel the most useful pokie video game to help you gamble, but We\u2019ve found that several really lack titles regarding reliable software company. After you favor an internet gambling establishment, the next thing is to understand and therefore video game to tackle, that i guarantee the content in this post commonly express for you.<\/p>\n

Might icons are basically portrayed by the a collection of to tackle notes away from 9 to Expert. The brand new unique emails out of Miss Cat slot video game make it easier to trigger different effective has whilst the basic signs help you get an everyday profit. Speaking of the unique signs when you find yourself there are numerous most other basic icons found in the online game also. Every icons during the Skip Kitty online is actually connected to the motif of your slot. Miss Cat harbors leave you High definition graphics and you will attention-getting sound-effects, so it’s a highly enjoyable slot.<\/p>\n

It works just like the each other rewards getting foresight and you can situations where the new online game is very fascinating. Within the next section of so it remark, I\u2019ll discuss every one of these keeps in detail. Skip Kitty Slot is a very really-balanced casino slot games as it has actually both foot games keeps and you may added bonus round improvement possess.<\/p>\n

In such a case, you\u2019ll need a wallet one currently consists of certain gold coins. Toward surge of interest and cost from crypto gold coins, gambling enterprises have begun to accept this type of as the a fees method. Bitcoin released in 2009 and since upcoming, we\u2019ve viewed numerous altcoins have been in lives.<\/p>\n

Cards signs replenish your account of five-fifty credit. To discover the biggest payouts, wait for 100 percent free revolves. The event out of prize doubling regarding chance online game isn\u2019t readily available. Miss Kitty simply fantastic, so can be the newest incentives which might be important to me too. People who have to gamble Miss Kitty for real money can also be supply the gambling enterprises i work together which have, straight from the video game\u2019s page.<\/p>\n

Aristocrat is just one of the world\u2019s prominent apparatus developers, it has actually very ramped right up their focus on app having online casinos nowadays. Aristocrat is known for playing with imaginative technology, brilliant image, and groundbreaking mechanics to enhance the fresh new game play. Might earn Caesars Perks things every time you gamble too.<\/p>\n

Some professionals will most likely not that way here isn\u2019t a modern jackpot otherwise huge multipliers, nevertheless the frequent enjoy and immersive framework compensate for this drawback. With has such as for instance stacked wilds plus the most fun totally free spins incentive, it\u2019s enjoyable playing for some time and contains the possibility to pay back. The overall game shines for the easy-to-learn motif, typical bonus cycles, and you can widely-friendly user interface. A complete comment need certainly to consider both advantages and disadvantages out-of a product to make sure that members tends to make an educated alternatives. It is critical to ensure that the new casino your always servers Miss Kitty Position follows UKGC otherwise comparable regulations.<\/p>\n

This new winnings was the sole part in which the games most struggled. Particular casinos on the internet you will bring an application as you are able to truly availableness using your cellular phone\u2019s domestic screen. Merely pick and this casinos on the internet supply the Skip Kitty position into the website. As such, after you strike a great payline, Miss Kitty\u2019s profits might possibly be bigger than most lowest-variance ports and less compared to higher-variance video game. Consequently it\u2019s fairly easy hitting hundred or so-dollar payouts.<\/p>\n","protected":false},"excerpt":{"rendered":"

This is recognized to slow down the entertainment value quite, particularly for the individuals attracted to such modern jackpots or novel added bonus rounds one to put a pokie apart from the crowd. Members score a little helping hands into the profitable combos, so that the so much more kittens\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-69270","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69270","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=69270"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69270\/revisions"}],"predecessor-version":[{"id":69271,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69270\/revisions\/69271"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=69270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=69270"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=69270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}