/* 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":93214,"date":"2026-05-23T21:47:44","date_gmt":"2026-05-23T21:47:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=93214"},"modified":"2026-05-23T21:47:46","modified_gmt":"2026-05-23T21:47:46","slug":"play-your-favorite-online-ports-at-any-time-at-any-place","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/play-your-favorite-online-ports-at-any-time-at-any-place\/","title":{"rendered":"Play your favorite online ports at any time, at any place"},"content":{"rendered":"

Huge video game, most friendly group, punctual response, timely cashout and a lot more and much more<\/h2>\n

All earnings are digital and you can created solely to coin strike hold and win casino spil<\/a> have activity purposes. Look out for limited-date promotions and neighborhood pressures to earn a lot more spins and you will exclusive honours. The member obtains free coins to begin with, plus more owing to everyday bonuses, each hour perks, and you may unique for the-game incidents.<\/p>\n

It’s easy to get spinning with online slots around australia. The deals try encoded and you may safer, no matter what your commission strategy. You will be frozen positioned including an Egyptian sphinx whilst you wait for the honours to hit your own screen. Multipliers in the same room often double your own winnings. All of the successful people disappears, particularly fairy floss dipped in the water, enabling the new symbols to fall in the and create chain gains.<\/p>\n

Since payment procedures are standard-layer Charge, Charge card, Bing Pay, and you can cryptocurrency-the actual standout element ‘s the brilliant type of the working platform. Your pleasure is actually our large priority and now we are happy in order to maybe you have within the people. Beloved idnorway, Thanks for the nice opinions ?? We have been ready to hear that you like the large alternatives regarding video game, the brand new quick customer support and the fascinating bonuses. We take pleasure in the opinions from the our very own quick dumps\/withdrawals, the 24\/7 customer service and you may loyalty program – it’s great to learn these characteristics placed into their experience.<\/p>\n

At the same time, the brand new intuitive user interface makes it simple for beginners and knowledgeable professionals so you can plunge for the motion without having any issues. However it is not only in the looks-Luck Gems twenty-three bags a slap using its have also. Set against a mysterious background, Chance Treasures twenty three promises a memorable adventure where the twist you may lead to steeped benefits. Perfect for participants whom enjoy Western-styled cascade slots which have increasing multipliers and you will solid totally free spins prospective, that it title brings a polished and you can immersive trip founded to prosperity and you may proceeded wins. Flow out of Chance slot by FBM Digital Assistance provides a stylish Asian-driven slot thrill based as much as success, equilibrium, and you will streaming advantages. You will find read 416 better casinos on the internet inside Norway, and we haven’t found Circulate regarding Fortune for the any kind of them from the newest second.<\/p>\n

To try out for real money, you will probably must check out an area-established gambling enterprise, since on line this game is bound to simply a few places. Thus, for example, you could potentially pick out an icon that provides you most multipliers on totally free revolves round, or the one that offers a lot from more 100 % free spins. When you hit the bonus, you earn offered an effective pyramid and you also arrive at discover the fresh new symbols away, which tell you secret possess and you can honours. This game provides Nuts icons, scatters and you may a free spin extra, because the completely new game it had been based on, entitled Cleopatra.<\/p>\n

We all know essential prompt earnings is actually or take your own views extremely absolutely. All of our reviews derive from the brand new testers’ experience and diligent browse of the local casino history, the fresh new judge fine print, and reputation certainly one of The fresh new Zealand participants. Preferred online game like Gonzo’s Quest, Huge Bass Bonanza, and 777 Struck element added bonus cycles and you can multipliers that will improve earnings. Jackpot harbors essentially give you the highest payouts, that have awards as much as R30 million. Whether you are not used to slots otherwise a skilled spinner, Sunbet has the benefit of lots of a means to take advantage of the actions.<\/p>\n

Want to get the most from their slot instruction as opposed to draining your own money? Realize the instructional content to get a much better knowledge of game legislation, probability of payouts along with other regions of online gambling I adore Microgaming’s get extra option, whilst advantages the higher whom cannot wait in order to cause the brand new extra naturally. With this specific options, the gamer falls under the action, giving a interesting gambling experience. Entertainment-wise, I like Crazy Time top because it is an alive agent giving and it’s really considering because the a game title let you know.<\/p>\n

I complete down 20 NZD overall – an end result really for the requested difference for this kind of example. My personal best give of your lesson try the full domestic, which given out 7 NZD. We have played enough hands over recent years to own a reasonable feeling of how a game title is always to be, and i settled to the so it session that have familiar expectations. For a group will pay position away from a seller I had not played just before, knowing the theoretic go back might have molded the way i contacted my personal tutorial.<\/p>\n

How many paylines you could see for the online slots games varies from 10 & faster, 15, 20, twenty five, 30, forty and fifty & more. The basic notion of exactly how online slots games try played remains the exact same. So it triggered enhanced gameplay while the possibility of applying multi-coin bets to have high winnings.<\/p>\n

Enjoyable video game, easy earnings-well worth to try out right here. The main benefit terms and conditions also are very good! Our company is happy you might be experiencing the online game, bonuses, and you may 24\/seven assistance. . I must say i do not have statements, perhaps to the insulation it could be shorter, but this is also very worth supplement. Our company is grateful you trapped with our team and therefore are today enjoying the advantages.<\/p>\n

The newest gambling establishment is perfectly built with numerous video game providers!<\/h2>\n

Thus, while you’re awaiting confirmation, skim through the comprehensive number of video game to be had and decide where you’d like to begin. Just after FortunePlay verifies the distribution, you’re prepared so you can put funds and start gambling. These types of you will are a copy of passport, license, or a software application statement featuring your residential address.<\/p>\n

After you enjoy higher on the world of casinos on the internet, Fortune Enjoy Casino try a reputation which you yourself can seem to run into. Getting a moderate difference, in addition, it provides lower gaming selections however, has the benefit of satisfying prizes. In addition to, that have straightforward auto mechanics and simple-to-grasp legislation, participants can be diving directly into the experience without the need for a technique publication. Consider striking one spin button and viewing those individuals spectacular treasures make-it’s exciting! What makes Luck Treasures 500 stand out try its unbelievable 97% RTP, bringing professionals with a nice chance to enjoy advantages.<\/p>\n

You can get your self of all enjoyable added bonus possess because the you set those reels into the action. A number of the notable extra possess from the Chance Tiger position tend to be wilds, totally free spins, scatters, and you may progressive jackpots. Please seek specialized help for individuals who or somebody you know are appearing problem gambling cues.<\/p>\n

While crazy about the newest spinning-wheel having luck, up coming Evolution’s Crazy Big date is a great match. Regarding Wheel away from Chance, there is a small Controls Added bonus that prizes dollars prizes and an excellent Triple Extreme Spin Bonus. I enjoy the fresh paytable for this added bonus, and this awards around fifty free spins, respins which have doing twelve wilds, and cash honours as high as 500x the fresh bet. Immediately following caused, the fresh Wheel appears, which the player spins for free revolves and you may re-spins that have Wilds or dollars honours. The brand new rims regarding honors are on fire in the Playtech’s Tires away from Fire.<\/p>\n","protected":false},"excerpt":{"rendered":"

Huge video game, most friendly group, punctual response, timely cashout and a lot more and much more All earnings are digital and you can created solely to coin strike hold and win casino spil have activity purposes. Look out for limited-date promotions and neighborhood pressures to earn a lot more\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-93214","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93214","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=93214"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93214\/revisions"}],"predecessor-version":[{"id":93215,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93214\/revisions\/93215"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=93214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=93214"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=93214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}