/* 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":103749,"date":"2026-05-25T11:39:16","date_gmt":"2026-05-25T11:39:16","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=103749"},"modified":"2026-05-25T11:39:17","modified_gmt":"2026-05-25T11:39:17","slug":"this-means-that-if-not-here-are-some-hacksaw-for-people-who-such-out-of-the-package-position-video-game","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/this-means-that-if-not-here-are-some-hacksaw-for-people-who-such-out-of-the-package-position-video-game\/","title":{"rendered":"This means that if not here are some Hacksaw for people who such out-of-the-package position video game"},"content":{"rendered":"

Hackaw slingo casino<\/a> Playing offers a great harmony from medium and you may higher volatility slots, even though you will be hard-pushed to acquire lower volatility harbors having a keen RTP in the 98% variety. In order to narrow down your choice of free ports, here is a look at the preferred app team.<\/p>\n

Paytables detail winning choice, bonus game as a result of wilds, scatters, and you may special symbols<\/h2>\n

Particular regular video game provides discover will be Hold&Respin element, the latest Jackpot Controls element, and also the Spread Function. Fantasma will not launch as much games as the likes out of Hacksaw Gambling and Nolimit City like. NetEnt ports provides has just managed to make it to help you sweeps gambling enterprises just after indicating incredibly prominent since real money ports.<\/p>\n

Litecoin, Ethereum, Tether, Bitcoin, Bitcoin Bucks, Visa, Credit card, and a lot more can be used for direct dumps and you will withdrawals, delivering immediate access and you will complete shelter which have encryption. Users at the gambling enterprise online and cellular discovered round the clock assistance regarding the customer service team by the delivering a contact so you can otherwise hitting the fresh new live chat key getting immediate connection to a bona fide broker.<\/p>\n

Lucky Duck has equivalent harbors in addition to Happy Ladys Appeal Deluxe six, Lucky Streak, Spark The night time, Motif Playground Seats Of Chance and a lot more. Is every trick pointers and metrics regarding totally free gamble on the web position game Fortunate Duck. An educated choice video game for Happy Duck on line position was Theme Playground Seats Regarding Luck, Ignite The night, Lucky Streak and you may Fortunate Ladys Appeal Deluxe six.<\/p>\n

Using its effortless-to-understand gameplay, lively build, and you can fulfilling possess, Fortunate Ducky now offers both casual and knowledgeable professionals an enjoyable slot feel. The new game’s symbols all are styled doing plastic ducks, anywhere between effortless coloured ducks to the people dressed in limits and crowns, into the King Ducky offering the large advantages. Victories is formed of the landing groups out of five or even more complimentary duck symbols, which then cause the fresh new MergeUp feature. Lucky Ducky of BGaming are an exciting on the web slot you to brings the brand new lively charm out of rubberized duckies to your local casino world. Members can opt for classic borrowing and you will debit cards, and Western Express, Charge, and you may Bank card, otherwise fool around with one of several accepted crypto options that are included with Bitcoin and you may Litecoin.<\/p>\n

It seems like LuckyLand provides incorporating a dosage of secret to help you their bonuses which have that-hr tourneys, and you may we are all upwards for this. Once you done the registration processes, you\ufffdre instantaneously entitled to a bonus off ten free sweeps coins as well as 7,000 coins. At first, it does not look like this site has the benefit of a good amount of actions inside the latest discount point, but you’ll will play with day-after-day log in incentives and typical promo competitions getting a supplementary raise. One of the most important things to own members is to get a good signal-up bonus, which is just what LuckyLand even offers.<\/p>\n

Which auto technician improvements effective symbols, making it possible for probably larger earnings with each successive earn<\/h2>\n

The latest theme out of Happy Ducky concentrates on the brand new playful and sentimental field of rubber ducks, set facing a shiny and you will smiling backdrop similar to an excellent doll store. Free Revolves is actually caused by landing four or maybe more LD spread out signs, unlocking as much as 20 totally free spins and releasing multiplier structure you to definitely can enhance payouts doing 128x during the extra bullet. Large volatility and you will an effective RTP from % create Fortunate Ducky appealing to the individuals trying tall profit potential.<\/p>\n

Most of the totally free sweepstake gambling enterprises the subsequent enables you to redeem actual money prizes, but payouts is almost certainly not instantaneous if you don’t fool around with crypto in the sweeps gambling enterprises like or MyPrize. Subscribe to one of several checked sweepstakes gambling enterprises as well as have ready to enjoy 100 % free ports for real currency honours. You will should arrive at among the online slots totally free revolves series because bulk of that it slot’s profit potential lays there, although legs games is actually decently fulfilling too. Starring \ufffdSmokey the fresh new Racoon\ufffd, Ce Zeus is a wacky Greek-myths inspired online slot you can enjoy from the and other Hacksaw Gambling sweeps gambling enterprises such Dara Local casino, exactly who has just extra all of them.<\/p>\n

There is an abundance of opportunity to rating larger about common Fortunate Duck casino slot games and in addition we merely loved the advantage cycles and you may totally free revolves feature, make sure you remember you will find an impressive one,000,000 gold coins available with those individuals jackpots. On the Fortunate Duck position game, you are welcomed from the a peaceful mode away from bluish skies and you can abundant environmentally friendly meadows, followed closely by the fresh new tinkling of breeze chimes as well as the calming trickling regarding a stream. Even as we advised regarding game feature section, if the there are a few multipliers on ft video game, chances are they manage boost men and women regular quick bins, maybe so it is a great deal more enticing.<\/p>\n

All of us examination, tinkers, and really provides all label because the we believe you to definitely play is how we know. Every thing first started in the 2014, as soon as we attempt to make higher games free and open to all. Close to globally moves, we ability headings you may not see any place else on line. All of the identity was meticulously chose to make certain it\ufffds fun, imaginative, and you will seems great playing for the cellular, tablet, or desktop computer. During the race, she revenue high harm to their opponents through the use of Glacio Chafe.<\/p>\n

Consider my personal greatest suggestions for the best on the web ports the real deal currency you can use no-deposit necessary \ufffd only indication-to the newest sweepstakes local casino, claim their free GCs and you may SCs, and commence rotating! This type of headings are discovered at some of the finest sweepstakes casinos, which means you might eventually get your own Sc the real deal currency honors while playing a online casino games to have totally free. Such free online harbors are presently probably the most played at better sweepstakes casinos in the business.<\/p>\n

The fresh new Boundary off Paperclip Playing is a free online position you to definitely brings together really-understood artwork and modern incentive layering. You might go into the free revolves bullet as a result of 12 or even more scatters, where video game brings up highest multipliers and extra Wilds. The fresh new profits here are more uniform, and also the slot’s 5?12 concept has increasing wilds. However, the newest winnings would be the chief interest, and you can despite a small 5,000x max victory, Fantasy Little princess delivers fantastic motion since it is most notable lower in volatility compared to the most contemporary releases. Dream Little princess from Titan Gaming are an innovative new launch that is gaining massive grip during the sweepstakes casinos such .<\/p>\n

Its Happy Duck slot is stuffed with the newest cutest selection of ducklings anyone ever before clapped attention into the which is an asian-styled position which is often reached almost all the time towards people internet-connected equipment. It get shows how the slot performed across our standard research, hence we use similarly to each and every online slots games on the website. Click the link to start, and check out all of our range of affirmed gambling enterprises less than when you’re prepared to play for genuine stakes. Constructed on a great 3×3 build having 5 betways, it’s simple yet entertaining game play where scatters can at random bring about a totally free game having 8 spins. Of many top slots web sites bring mobile apps thru that you’ll enjoy a popular harbors games from the hand of one’s hands.<\/p>\n","protected":false},"excerpt":{"rendered":"

Hackaw slingo casino Playing offers a great harmony from medium and you may higher volatility slots, even though you will be hard-pushed to acquire lower volatility harbors having a keen RTP in the 98% variety. In order to narrow down your choice of free ports, here is a look at\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-103749","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103749","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=103749"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103749\/revisions"}],"predecessor-version":[{"id":103752,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103749\/revisions\/103752"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=103749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=103749"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=103749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}