/* 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":25087,"date":"2026-05-15T03:05:13","date_gmt":"2026-05-15T03:05:13","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=25087"},"modified":"2026-05-15T03:05:15","modified_gmt":"2026-05-15T03:05:15","slug":"online-slots-play-exciting-position-online-game-from-the-mecca-bingo","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/online-slots-play-exciting-position-online-game-from-the-mecca-bingo\/","title":{"rendered":"Online slots Play Exciting Position Online game from the Mecca Bingo"},"content":{"rendered":"

In the event the Buffalo King Megaways and you may Aztec Gem Megaways aren\u2019t really sufficient to you personally, Elemental Jewels Megaways is yet another excellent solution. Sweeptastic has a lot off headings regarding Practical Play, as well as Aztec Gems Megaways. Aztec Jewels Megaways is what you get when you throw brand new Megaways auto mechanic onto an Aztec-inspired slot, also it\u2019s decent. Are the most preferred 4ThePlayer ports, you\u2019ll discover this game on the some personal gambling enterprises, also Good morning Millions. Which have bonus possess for example Free Spins, Buffalo Thunder, and you can Improving Luck, 5 Crazy Buffalo is unquestionably one of the better online harbors which have incentive enjoys to the public gambling enterprises.<\/p>\n

Which always comes with betting criteria and you can restrict withdrawal restrictions. Check the new terms and conditions when it comes down to game-certain legislation and you will expiration schedules. Certain 100 percent free revolves is actually private to specific harbors, like LeoVegas\u2019 50 revolves to your Larger Bass Splash.<\/p>\n

There\u2019s actually a continuing 5% rakeback deal included, bringing so much more 100 percent free revolves along side complete line of video game. Therefore i\u2019ve picked out numerous builders and you may titles which you\u2019re also likely to get a hold of when to play sweepstakes casino harbors, to produce expertise to the exactly what\u2019s readily available. You\u2019ll also come around the upwards-and-future the fresh developers, particularly Titan Gambling, Rogue and Seat Gaming, opening up the brand new perspectives with regards to slots gameplay. The initial societal casinos created some unsatisfying slot game, however, one\u2019s all of the altered nowadays. But, I suggest reading through new terms of service and sweepstakes statutes, while they\u2019re always susceptible to changes without prior notice.<\/p>\n

Together with, all of our people is always buzzing with information, larger victories, and you will insider facts so you’re able to help the game and you can have some fun whilst you\u2019re in the they. For individuals who\u2019lso are with the casinos on the internet, Gamesville is the place to-be. Looking a gambling establishment one\u2019s perfect to you?<\/p>\n

When to try out online slingo video game on Spin & Victory, professionals get see have such as for example added bonus spins, crazy symbols, and you will multipliers, including extra momentum to each and every round. After opting for a-game, merely sign in as a result of a registered https:\/\/winolympia-casino.gr\/<\/a> account to play Megaways Ports and you may continue directly into game play. If we wish to gamble online slots games casually otherwise select the fresh new online slots games designed for Uk members on Twist & Victory, the site renders probably and you will evaluating video game easier and you will straightforward. Full game information are available to opinion when, and once registered and you can signed for the, entry to gamble online casino games try head and easy. Away from preferred online slots games and you will innovative Slingo online game so you’re able to progressive jackpots and you can Megaways harbors, things are organised certainly therefore video game are really easy to research, compare and you can discover.<\/p>\n

Speaking of gambling enterprises where you are able to enjoy free ports\u2014we have only the selections which have good bounty off incentives so you can allege. Finally, you could potentially enjoy totally free harbors with no download the real deal currency honours. To tackle online slots games into the sweepstakes form in the a personal local casino brings prospect of actual awards, while they wear\u2019t actually spend any cash advantages. Most of the reliable and you will reliable sweepstakes casinos definitely fork out real money prizes, you\u2019ll must play their free Sweeps Coins courtesy very first, in order to unlock their redeemable possible. My personal ideas on these pages make an ideal 1st step, but take time to flick through the reviews here at gaming.co.british, and also you\u2019ll find around\u2019s far more however and see.<\/p>\n

Below are a few of the better jackpot games you may enjoy within our recommended sweepstakes gambling enterprises. Thank goodness you to definitely sweepstakes gambling enterprises feature a bunch of free harbors game with plenty of added bonus series. Keep in mind that you simply cannot create old-fashioned withdrawals at the a sweepstakes casino – you might only receive eligible South carolina winnings the real deal money awards. Should you want to gamble free harbors and other gambling establishment-style game at the a sweepstakes gambling establishment, you are able to basic have to register due to the fact a player and be certain that the email address. This is a good alternatives for folks who\u2019re from the disposition having to tackle 100 percent free online casino games one spend a real income in exchange for qualified Sweeps Money earnings, that have a reasonable enjoy bundle to help you kickstart the action. Everything you need to do to initiate to try out is install brand new McLuck software regarding the App Store or perhaps the Gamble Store, sign in and you may allege your own allowed plan away from 100 percent free Silver and you may Sweeps Coins and you are ready to initiate having fun!<\/p>\n

Our best picks focus on quick payouts and you will lower deposit\/detachment limitations, so you’re able to take pleasure in the profits rather than delays. Whether or not it\u2019s a welcome render, 100 percent free revolves, otherwise a regular campaign, it\u2019s important that you may use the benefit on the a real income ports! Website defense is safe profits, that are key in the safer casinos on the internet. Volatility doesn\u2019t change RTP however, affects your feel; higher volatility slots can also be send grand winnings, nonetheless\u2019lso are rarer. All these harbors ability higher RTP ports and lots of from the greatest payment online slots games readily available, also modern jackpots that come to lifestyle-altering amounts.<\/p>\n

Quite a few of my personal needed sweepstakes casinos provide accessibility many Megaways slots you could wager 100 percent free. The shape is very progressive therefore the games are very effortless to locate, together with all redemptions is actually processed within 24 hours, and that means you may not be wishing a lot of time to love your a real income honours. There can be more than 450 different titles available with Hacksaw Gambling, Playtech, Rubyplay, and many other greatest designers, ensuring a good amount of high-high quality gameplay that may continue all sorts regarding player captivated.<\/p>\n

What\u2019s novel throughout the Pulsz is that here you really have multiple choice whenever redeeming your own South carolina the real deal money honors. Eg ports, each one of these promote 100 percent free gameplay when you look at the Sc setting so that you can take advantage of for real cash honours! Within the collection, you\u2019ll also be capable of getting totally free position online game made only having Pulsz.<\/p>\n

SportsMillions is actually a leading place to go for personal activities selections and you can an excellent variety of hundreds of online slots that have bonus possess but just how can award redemptions works? For instance the almost every other sweeps gambling enterprises here, it has got one another provide cards and cash prize redemptions. The bucks Warehouse is a unique child on the market however, the one that\u2019s gaining admirers because of its short and you will painless honor redemptions. The newest Insane West styled MegaBonanza may be young nonetheless it\u2019s getting one of the best sweepstakes casinos around.<\/p>\n","protected":false},"excerpt":{"rendered":"

In the event the Buffalo King Megaways and you may Aztec Gem Megaways aren\u2019t really sufficient to you personally, Elemental Jewels Megaways is yet another excellent solution. Sweeptastic has a lot off headings regarding Practical Play, as well as Aztec Gems Megaways. Aztec Jewels Megaways is what you get when\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-25087","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/25087","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=25087"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/25087\/revisions"}],"predecessor-version":[{"id":25088,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/25087\/revisions\/25088"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=25087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=25087"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=25087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}