/* 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":66431,"date":"2026-05-22T11:42:52","date_gmt":"2026-05-22T11:42:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=66431"},"modified":"2026-05-22T11:42:53","modified_gmt":"2026-05-22T11:42:53","slug":"play-your-chosen-free-online-ports-when-from-anywhere","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/play-your-chosen-free-online-ports-when-from-anywhere\/","title":{"rendered":"Play your chosen free online ports when, from anywhere"},"content":{"rendered":"

Grand game, extremely friendly teams, prompt response, fast cashout and and a lot more<\/h2>\n

All the profits was digital and you may created solely for recreation objectives. Look out for limited-day advertising and you may neighborhood demands to make more revolves and you can exclusive awards. All of the member receives 100 % free coins to get going, and even more due to daily bonuses, hourly benefits, and you may unique during the-video game occurrences.<\/p>\n

You can score spinning with online slots games around australia. Every purchases was encoded and you will safer, no matter their fee method. You are suspended in place for example a keen Egyptian sphinx as you wait for awards hitting your screen. Multipliers in identical location will double their payouts. Most of the winning group disappears, including fairy floss dipped in water, making it possible for the brand new icons to-fall inside the and build strings gains.<\/p>\n

Because the commission methods try fundamental-coating Visa, Charge card, Bing Pay, and you can cryptocurrency-the true standout ability ‘s the smart style of the platform. The pleasure are our very own higher priority therefore we are content to perhaps you have within all of our area. Precious idnorway, Thanks for the good feedback ?? Our company is ready to tune in to that you want the large solutions of online game, the latest quick customer support and you will our exciting bonuses. We appreciate their viewpoints in the the punctual deposits\/distributions, all of our 24\/7 support service and you may support program – it is good to know these features set in your own experience.<\/p>\n

At the same time, the fresh easy to use interface makes it easy for beginners and you may experienced people so you can dive on the action with no trouble. But it’s just regarding seems-Fortune Treasures twenty three bags a punch along with its features too. Lay facing a mysterious backdrop, Chance Jewels twenty-three pledges an unforgettable excitement where most of the spin you’ll cause steeped perks. Good for players exactly who appreciate Far-eastern-styled cascade ports that have escalating multipliers and you can strong totally free spins potential, that it term delivers a refined and immersive trip depending around success and you can persisted gains. Circulate off Luck position because of the FBM Digital Expertise brings a stylish Asian-passionate slot thrill founded up to success, harmony, and you can streaming perks. I’ve scanned 416 greatest casinos on the internet inside the Norway, and we have not receive Circulate away from Luck for the any kind of all of them in the most recent second.<\/p>\n

To play the real deal money, you will most likely need check out an area-established casino, because the on line this game is restricted to just several regions. So, including, you might select a symbol that sugar rush 1000<\/a> delivers you most multipliers regarding free spins round, otherwise one that gives you lots from more totally free revolves. Once you smack the incentive, you earn offered good pyramid while arrive at see the fresh new signs aside, which often tell you secret have and you will honors. This video game provides Nuts icons, scatters and a totally free twist extra, because the fresh online game it was based on, entitled Cleopatra.<\/p>\n

We understand essential prompt earnings is actually or take your feedback extremely positively. The evaluations depend on the new testers’ enjoy in addition to diligent lookup of one’s gambling establishment record, the brand new courtroom small print, and profile certainly The fresh new Zealand people. Popular game including Gonzo’s Quest, Big Trout Bonanza, and you will 777 Struck ability incentive cycles and you may multipliers which can improve profits. Jackpot harbors generally offer the large profits, with awards up to R30 mil. Regardless if you are new to slots or a professional spinner, Sunbet has the benefit of a lot of a method to enjoy the activity.<\/p>\n

Need to get the best from their slot courses versus draining the money? Discover our instructional blogs to obtain a much better knowledge of games laws, odds of profits and also other aspects of online gambling I adore Microgaming’s buy bonus choice, as it benefits the higher exactly who can not wait to result in the fresh bonus however. Using this configurations, the player is part of the action, giving a engaging gaming sense. Entertainment-smart, Everyone loves In love Day best as the it is an alive dealer giving and it’s provided while the a game tell you.<\/p>\n

We done off 20 NZD full – an outcome better inside the questioned variance for this variety of example. My personal finest hand of class are the full domestic, and this settled 7 NZD. You will find played sufficient delivers recent years getting a reasonable sense of how a game is become, and i also settled for the this example having common standard. Having a cluster will pay position out of a merchant I had not starred ahead of, knowing the theoretic return could have shaped how i contacted my class.<\/p>\n

What number of paylines you could see to your online slots differs from ten & shorter, 15, 20, twenty five, thirty, 40 and 50 & more than. Might thought of how online slots is actually played continues to be the exact same. So it led to enhanced gameplay and also the odds of using multi-money bets to have higher winnings.<\/p>\n

Enjoyable game, effortless earnings-definitely worth to relax and play here. The advantage terms and conditions are also very good! We’re pleased you happen to be experiencing the online game, bonuses, and you may 24\/eight service. . I must say i don’t have any comments, maybe on the insulation it will be faster, but this can be also very well worth compliment. We have been happy your caught with our company and they are now enjoying the perks.<\/p>\n

The fresh new gambling establishment was perfectly constructed with many games team!<\/h2>\n

So, while you’re looking forward to verification, skim through the comprehensive set of video game on offer and decide where you would want to start. Just after FortunePlay confirms your submitting, you are all set to go to put money and begin betting. This type of might tend to be a copy of one’s passport, license, or a computer program bill offering your own domestic address.<\/p>\n

After you dig deeper for the realm of online casinos, Fortune Play Gambling enterprise is actually a reputation which you can frequently come upon. Becoming an average variance, moreover it provides lower betting selections but has the benefit of fulfilling awards. Along with, which have simple aspects and simple-to-master guidelines, users can be jump straight into the action without needing a strategy guide. Imagine hitting one spin button and you will watching the individuals dazzling treasures make-it\ufffds fascinating! What makes Fortune Jewels five-hundred stand out is actually the epic 97% RTP, providing users which have a large opportunity to experience perks.<\/p>\n

You can avail yourself of all exciting incentive has while the your put those people reels into the activity. A number of the famous extra has on Luck Tiger slot are wilds, free revolves, scatters, and modern jackpots. Delight look for specialized help if you or somebody you know was demonstrating disease gambling cues.<\/p>\n

If you are crazy about the new spinning wheel to own luck, upcoming Evolution’s In love Big date is a perfect matches. From the Controls out of Luck, discover a micro Controls Bonus you to honours dollars prizes and good Multiple High Twist Added bonus. I really like the brand new paytable for this added bonus, and that prizes to 50 totally free revolves, respins that have around twelve wilds, and cash honours all the way to 500x the brand new choice. After brought about, the latest Controls seems, that member revolves free-of-charge revolves and you will lso are-revolves having Wilds or cash prizes. The brand new wheels off prizes take flame for the Playtech’s Tires out of Flames.<\/p>\n","protected":false},"excerpt":{"rendered":"

Grand game, extremely friendly teams, prompt response, fast cashout and and a lot more All the profits was digital and you may created solely for recreation objectives. Look out for limited-day advertising and you may neighborhood demands to make more revolves and you can exclusive awards. All of the member\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-66431","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66431","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=66431"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66431\/revisions"}],"predecessor-version":[{"id":66432,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66431\/revisions\/66432"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=66431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=66431"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=66431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}