/* 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":50221,"date":"2026-05-20T12:32:06","date_gmt":"2026-05-20T12:32:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=50221"},"modified":"2026-05-20T12:32:07","modified_gmt":"2026-05-20T12:32:07","slug":"zero-you-cannot-usually-claim-a-no-deposit-extra-many-times","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/zero-you-cannot-usually-claim-a-no-deposit-extra-many-times\/","title":{"rendered":"Zero – you cannot usually claim a no-deposit extra many times"},"content":{"rendered":"

Attempting to claim a comparable added bonus several times can lead to account suspension or forfeiture off winnings. Before you can allege any incentive, always review the latest terms and conditions cautiously, since qualifications, wagering, and you may online game limits can vary of the state. When you find yourself extra number are generally modest and you will betting conditions vary, no deposit also offers will still be probably one of the most obtainable a way to enjoy actual-money casino play.<\/p>\n

Buffalo harbors might be starred on the web for free otherwise having actual currency<\/h2>\n

Choose one of the judge casinos on the internet looked on this page. While no-deposit bonuses aren’t too well-known for existing members, this really is nevertheless a chance \ufffd particularly when professionals arrive at VIP and membership-managed membership. Contest leaderboards ount acquired, or another worthy of. However, specific web based casinos provide competitions that include almost every other video game, like table video game and you will live agent game.<\/p>\n

Sizzling hot deluxe, released from the es, together with Publication away from Ra, due to its convenience. Discover ports on line victory real cash at the 777spinslot! Record is sold with Us, The latest Zealand, Canada, Australian continent and the United kingdom. With the amount of successful ways, free spins, and you can extra cycles, the fresh Buffalo Slot machine game assurances nearly all the revolves stop with some mammoth payout. This will basically make it easier to choose the best Buffalo position in order to gamble and you may understand what tips you need to use to increase your opportunity. In the event you already feel coached and certain that you really have the brand new ability for to tackle buffalo harbors the real deal currency, is our recommendation how exactly to take action.<\/p>\n

? 2nd really starred position round the 160+ United kingdom casinos trailing only Large Trout Splash Certain harbors is actually found in no-deposit promos at the more than one local casino, while the operators just be sure to create also provides stay ahead of the competition from the presenting enticing games. As an example, Big Trout Bonanza, Fluffy Favourites and you may http:\/\/22-casino.com.gr<\/a> Starburst have been all the one of several top ten extremely starred ports across 160+ British web based casinos during the . Because bulk of no-deposit has the benefit of during the United kingdom gambling enterprises encompass totally free spins, they often times provide the possible opportunity to hit the reels towards the most common online slots games at that time. The brand new members are welcomed within Aladdin Harbors having 5 no-deposit totally free revolves for the Pragmatic Play position Diamond Strike, and that has a leading award of just one,000x your own choice (versus 500x for the Starburst for the Space Wins).<\/p>\n

These revolves arrive to the picked Practical Gamble slot game and you can must be stated in this 48 hours and you can used inside 3 days of being credited to the player’s membership. Sign-up because a new player within 888 Gambling establishment and you may enter line to get 50 totally free spins while the a zero-deposit allowed bonus. The most cashout is founded on profits regarding the 100 % free spins. In case your program selections you because a champion, you’re going to get a pop-with your revolves. Only join, opt in the through the offers case, and open people eligible position. Betfred hands away every day zero-put totally free revolves in order to chose members.<\/p>\n

People features deeper chances of winning on the web than in property dependent gambling enterprises<\/h2>\n

Probably one of the most well-known no-deposit bonuses has free revolves to the Paddy’s Residence Heist. Less than you will find the best higher-regularity no-deposit has the benefit of available today. This page has no-deposit free revolves offers available in the new British and you can all over the world, according to where you are. 100 % free gambling games (such free ports) will let you try out video game for free in place of risking their bankroll, but are played with virtual money or dollars, definition you cannot earn a real income.<\/p>\n

Close to pleasing the fresh new releases, you are able to constantly discover athlete preferences such as electronic poker, bingo, or other expertise games. I simply made my earliest detachment I am so delighted We transferred a few moments didn’t come with luck and then Used to do my personal very first 800 detachment which is precisely the start. It is among the best casinos on the internet We have actually played. For this reason we constantly prioritize 1x wagering standards once we strongly recommend the top online casino no-deposit incentives.<\/p>\n

Your bank account, your play Perform equilibrium, song perks, and find games quick \ufffd whether it’s free spins to your a favourite position otherwise entering an effective cash video game training. It’s a software one connects gambling games, ports video game, baccarat, black-jack, roulette, and more \ufffd all-in a cellular local casino that looks and feels premium. Your bank account equipment have secure gaming regulation like put limits, session reminders, and you will account breaks. Every single day snacks & totally free spins Log in, play a favourite online game, and try our day to day advertising \ufffd and private also offers to have Virgin Game application players. Simple playing possibilities and you may elite traders make the live casino the brand new location to appreciate that authentic table getting on the web.<\/p>\n

Inside publication, I am going to break apart an educated no deposit gambling enterprises during the South Africa, what you could logically be prepared to winnings, and you may which offers are actually worth every penny based on genuine sense. If you have been investigating online casinos within the Southern area Africa to have an effective while you are, you may possibly have pick no deposit bonuses. We feel that it’s your money, making it your choice-this is why you might enjoy both having fiat currency otherwise crypto like Bitcoin and Litecoin. All of our alternatives comes with partner favorites like Fantastic Buffalo, Elvis Frog during the Vegas, and you may lots more. The preferred slot game for every incorporate their particular number of laws featuring, although core principle continues to be the same \ufffd spin the new reels and you will fits signs to help you victory.<\/p>\n

We can not become held responsible to possess 3rd-people web site factors, plus don’t condone gambling in which it is banned. Utilize this help guide to claim the best no deposit has the benefit of, and start to tackle versus betting hardly any money!<\/p>\n

We want to give our faithful professionals a matchless on the web betting sense, and we envision you’re going to be pampered having choice with these awesome choices. Here is all you need to know about to try out slots, it will be Mecca! The latest people is also claim a welcome bonus on the basic deposit – comprehend the campaigns webpage to possess current conditions. An excellent. Gates from Olympus, Larger Trout Splash, Eye of Horus, and Fishin’ Frenzy Megaways is the very constantly played titles. Purple Tiger – Specialists in Each day Miss Jackpots – promises prizes that have to pay within this an appartment screen.<\/p>\n

Within our review you will find starred the newest 100 % free buffalo slot machine online for the trial mode. The fresh new Buffalo Video slot the most starred slot machines in history. Extremely You managed online casinos lay the absolute minimum deposit off $10. Yes inside the states where on-line casino betting is actually judge. These problems do not feel dramatic on moment nonetheless they on the side drain money and extra worth.<\/p>\n

Such incentives allow you to earn a real income without the need to deposit many own money. The fresh new professionals at Beast Gambling establishment could possibly get a ?5 no deposit incentive whenever registering. Specific totally free revolves gambling establishment also offers will receive zero betting demands, therefore it is advisable that you have a look at. Here, there are an entire directory of betting conditions, restriction bet, and eligible online game. Just one or two ports can be entitled to a no-put free revolves added bonus at the a gambling establishment. You might have to bet any profits from time to time in advance of he or she is put-out to your membership.<\/p>\n","protected":false},"excerpt":{"rendered":"

Attempting to claim a comparable added bonus several times can lead to account suspension or forfeiture off winnings. Before you can allege any incentive, always review the latest terms and conditions cautiously, since qualifications, wagering, and you may online game limits can vary of the state. When you find yourself\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-50221","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/50221","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=50221"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/50221\/revisions"}],"predecessor-version":[{"id":50222,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/50221\/revisions\/50222"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=50221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=50221"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=50221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}