/* 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":136574,"date":"2026-05-27T19:59:13","date_gmt":"2026-05-27T19:59:13","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=136574"},"modified":"2026-05-27T19:59:14","modified_gmt":"2026-05-27T19:59:14","slug":"popular-strategies-such-paysafecard-visa-and-skrill-can-be-used-for-deposits","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/popular-strategies-such-paysafecard-visa-and-skrill-can-be-used-for-deposits\/","title":{"rendered":"Popular strategies such Paysafecard, Visa, and Skrill can be used for deposits"},"content":{"rendered":"

Multiple account can lead to permanent restrictions and you can forfeiture off payouts<\/h2>\n

If you’re not a fan of this type of games, you will also have an abundance of other substitute for pick from, along with American sporting events, handball, volleyball, tennis, and you will frost hockey. They undertake a wide range of percentage procedures, in addition to Charge, Charge card, Neteller, Skrill, Paysafecard, MuchBetter, Jeton, CashToCode, Payz and you can neoSurf. The past challenge for plenty of the fresh new users in the casinos on the internet ‘s the financial or cashier section. The fresh new private EnergyClub VIP program is made for significant players who require much more out of their playing sense.<\/p>\n

An effective job discover such a huge amount of variety, following! The only bad are you will find a great deal right here, they may perhaps have fun with some extra categorisation to help you find a favourite table game. You realize they’d quality, nowadays you understand he has got high quality table online game. Well, there is certainly one far more spin of your wheel going.<\/p>\n

Yes as long as you is a different sort of customers regarding EnergyBet and you can see its minimal terms and conditions. Use all of our exclusive code BCVIP whenever deposit to locate good ?400 acceptance plan + free spins today. The following rules is private to the web site and you can work for EnergyBet and EnergyBet Gambling enterprise. Check this out flag to access complete T&Cs.<\/p>\n

It is simply a step to save you and your winnings safe. Withdrawals should be done via the exact same strategy since deposits.<\/p>\n

While the way too many professionals delight in cellular betting, you have the Casino Energy mobile system which can be found to possess the pages. This site offers all immediate gamble video game which might be starred as a result of a web browser, making the site available having fun with one operating system. Whenever opening slots, members will get a summary of all the newly additional video game and you may will also be able to find three reel traditional games. The fresh new slot choice at that casino was incredible and you can professionals commonly discover latest and greatest launches all playable into the desktops and you will mobile devices which might be utilized having totally free spins or bucks bets.<\/p>\n

For these trying to find much more independence employing dumps, exploring other sites you may provide a choice, enabling players to start playing with any matter they favor. There are no significant facts at the time of this review who would end participants regarding having access to real cash games within Times Gambling enterprise. Support service is available to users that have questions otherwise questions when accessing accounts otherwise games.<\/p>\n

EnergyBet provides an enthusiastic immersive online playing experience with Ice Fishing kde hra\u0165<\/a> diverse playing choices, alive score, and you will fascinating extra provides for sports and you can local casino fans. Addititionally there is another option from pressing the newest \ufffdforgot code\ufffd connect following next the new visit section having a password reset. You can solve this from the contacting the customer support utilising the email you familiar with check in your bank account and they will question your that have an effective reset hook. A few of the actions a consumer are able to use to help you put become debit card, Euteller, Neteller, Paysafe, Skrill, Ukash, QIWI, Dotpay, Monetapay and you can Visa Put.<\/p>\n

If you are searching to possess an alternative casino or perhaps have no idea the place to start their travels around, subscribe as we view whatever EnergyCasino enjoys provide. The working platform in addition to emphasizes in control enjoy, that have systems offered following log on setting limitations and you may tune the hobby. If thrill actually your style, switch to classics like black-jack or roulette, the available blog post-login. Recall, winnings from this require account confirmation prior to detachment, and an administrative payment will get use if the KYC isn’t done inside 30 days. That it offer relates to your own initial deposit, and with betting conditions set at twenty-five minutes the benefit and you can put matter, it’s made to remain one thing reasonable and you will simple.<\/p>\n

Although not, you’ll find nothing we might consider become a loyalty program. EnergyCasino British has plenty of great campaigns you to definitely advantages respect, surely. As well, you are aware important computer data is safe using their security jobs. It, with the Malta license to own around the world profiles, form they’ve been since the legit as they started. We never ever had to wait longer than a moment throughout those times and you can was constantly happy by quality of those people solutions. There are no charges and you will minimum dumps start in the ?5 however they are typically ?ten.<\/p>\n

The newest administration of energy Casino provides every promises out of a reputable and secure gameplay. Which is open to apple’s ios pages only, which is a drawback. For fans off reproducing the air out of crushed-depending playing nightclubs at your home, you will find a part giving game having real croupiers in the Time. Since government promises, the work of your own program is set up so obviously and you may efficiently that you barely might need help. Opportunity Casino also provides customers the most popular payment strategies. Visitors was greeted from the a giant flag telling them in the delights of added bonus system, passage tournaments and other promotions.<\/p>\n

There are the full range of procedures on their deposits page<\/h2>\n

Although some online casinos es, such always usually do not cover a real income bets or payouts. Such cellular platforms enables you to access a variety of online casino games, along with harbors, table games, and you will live game, directly from your own smart phone. You can find good luck jackpot gambling games, on the internet network competitions which have jackpot-deserving prizes as well as daily jackpot falls. This type of company are recognized for the cutting-border image, entertaining game play technicians, and you can ining experience. For a passing fancy page, then there are the possibility in order to allege incentives, like Welcome Bonuses.<\/p>\n

Blackjack is one of the most well-known Live Casino games during the EnergyCasino, very you can find loads of seating in order to complete. The audience is constantly looking for the greatest the new game, so you’re able to rest assured that we’ll keep your real time local casino recreation since new as can end up being. Because better web based casinos, EnergyCasino have huge brands such as Pragmatic Enjoy, Advancement Playing, Hacksaw, BF Online game, Play’n Wade, NetEnt and more. While you are seeking jackpot ports, i have several unique guidance as well. If you’re looking getting things outstanding, then make certain to below are a few the \ufffdPromotions’ page inside the holidays.<\/p>\n

You will additionally remain able to allege bonuses, deposit and you will withdraw currency, and contact customer service. You can access the new cellular casino at this site playing with one modern cellular phone otherwise tablet. There are 22 types of black-jack, along with lots of roulette online game. Additionally, you will realize that there are numerous table games so you’re able to enjoy from the EnergyCasino. Additionally get a hold of an abundance of modern jackpot slots in the EnergyCasino, together with titles off each other Microgaming and NetEnt. You will additionally discover loads of video game during the alive gambling establishment.<\/p>\n

You could bet on the standard sportsbooks where you are able to right back the outcome out of recreations at the chances which can be set of the the newest bookmaker. If gaming utilising the Times Bet exchange, you are not playing contrary to the bookie you are betting up against most other Opportunity Choice pages. Energy Wager have twenty-eight+ personnel working for them as well as minimum 7,eight hundred profiles.<\/p>\n","protected":false},"excerpt":{"rendered":"

Multiple account can lead to permanent restrictions and you can forfeiture off payouts If you’re not a fan of this type of games, you will also have an abundance of other substitute for pick from, along with American sporting events, handball, volleyball, tennis, and you will frost hockey. They undertake\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-136574","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136574","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=136574"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136574\/revisions"}],"predecessor-version":[{"id":136575,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/136574\/revisions\/136575"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=136574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=136574"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=136574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}