/* 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":137764,"date":"2026-05-27T21:01:06","date_gmt":"2026-05-27T21:01:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=137764"},"modified":"2026-05-27T21:01:07","modified_gmt":"2026-05-27T21:01:07","slug":"step-1-number","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/step-1-number\/","title":{"rendered":"step 1 number"},"content":{"rendered":"

1Win shines given that top online playing system providing good quantity of enjoys to enhance the gaming sense. Read more regarding playing on hottest disciplines less than. Given the broadening interest in esports, the fresh new bookmaker features yet another point seriously interested in esports situations. 1Win Bookie also offers numerous activities, covering such as for instance well-known solutions as sports, baseball, golf, esports, MMA, hockey, cricket and many others.<\/p>\n

Dumps was instant and you will, in reality, distributions had been more or less an identical. However, we have to chat about the fresh BetWright percentage measures also. Not only is it a \u00a3step 1 deposit local casino, you’ll find very good payment available options that enable you to lower entry top deposit, along with credit and Fruit Pay. Even so, with DragonBet take to distributions handling back into the financial institution from inside the 14 minutes, that\u2019s difficult to grumble within, as well. Truly the only lay that too little variety becomes a little section real has been the range of percentage available options so you’re able to your. Actually, regardless if, you wear\u2019t want him or her because the mobile-friendly website is really sleek, having exploration of offered games easy.<\/p>\n

Modern online casino internet keeps varied game alternatives offered. When you need to learn more about new bonuses offered by some of the casinos with the Ice Fishing \u03c0\u03b1\u03af\u03be\u03b5 demo<\/a> the number, click ‘Read Review’ and you can proceed to our very own review’s ‘Bonuses’ part. The most famous gambling establishment incentives are most likely greet otherwise sign-up incentives for brand new users. In such a case, take a closer look on driver behind the working platform and you can be sure there is an appropriate report walk that can easily be traced and you can monitored in the event the participants have any items. Like, sweepstakes gambling enterprises, which happen to be increasing in popularity in america, do not have permits. Most legalized web based casinos will keep licenses, however, there’s specific conditions.<\/p>\n

We know you to some profiles can experience demands which have withdrawals, and in addition we are continually working to increase this point of our own services. We called support from time to time plus they said your specialists are waiting for an answer regarding the payment system. He’s a good amount of game, a good customer service and you will fast withdrawals. Your own faith and you can pleasure indicate a lot to all of us, and we also\u2019re here to make sure every experience is fun. We are happy to know you had a seamless expertise in all of our verification techniques and that you getting confident in the security of your own investigation and transactions. I have produced dumps and you can withdrawals with no difficulties and it’s one to of one’s gambling enterprise systems I personally use more<\/p>\n

Online casino internet provide bonuses to draw and you will preserve members, as an incentive to join up an effective membership with these people and commence playing. Customer care is vital to us as it can certainly become most helpful in resolving difficulties with player’s membership, subscription at the B1 Bet Gambling establishment, distributions, or any other potential aspects of matter. Contacting the fresh new casino’s support service falls under the opinion techniques, to ensure that we know if or not participants get access to good top quality solution.<\/p>\n

These include the new local casino\u2019s T&Cs, complaints of members, estimated profits, blacklists, etc. New casino’s Safeguards List, a score showing the protection and you will equity regarding online casinos, might have been determined by way of all of our data of them conclusions. This technique makes you easily rating ways to concerns for the real time just like the gurus really works 24\/7. Out-of gaming to the private number in order to joint alternatives, members have versatility of preference and lots of possibilities to own an effective kind of earnings. The fresh new dining table, roulette while the specialist themselves are exhibited within the higher-quality clips alert, bringing the atmosphere of a bona fide local casino.<\/p>\n

The fresh new Zealand professionals can get an energetic and you will ever before-evolving catalogue that guarantees fresh entertainment with each check out. N1Bet Local casino now offers an extraordinary and you will varied game options, making it a talked about choice for people trying range and high quality. This course of action ensures that simply subscribed profiles can access levels, bringing a safe environment for new Zealand members. Performing not as much as a great Cura\u00e7ao gambling license, the fresh new casino emphasizes security when you find yourself presenting a person-friendly program using smooth ebony shade that creates a keen immersive playing surroundings.<\/p>\n

To be sure users don\u2019t sense people delays in going through this site or throughout live betting instruction. Their user interface is created without difficulty helpful at heart if or not you\u2019re going through online casino games or various sports betting selection. Confirmation typically takes a day or shorter, although this you will vary to your quality of documents and you will volume away from submissions. Check if the information for the files align as to what was recorded through the indication-right up.<\/p>\n

You could control your money immediately immediately after resetting, and additionally and also make dumps otherwise withdrawals inside the $ otherwise opening gambling enterprise has the benefit of. To find the best cover, come across an alternative password that you have not made use of just before. Bring a recently available mobile number since the 1bet are able to use Texting so you can confirm your subscription or send you defense notification. See these types of sphere again to make sure there are no difficulties that have confirmation or upcoming distributions in $.<\/p>\n

Participants can expect a high-quality experience from the 1xBet casino.\u201c 1XBet is one of the most useful web based casinos worldwide because it has got more than eight hundred,000 consumers from a number of regions around the world. Which gambling services features cellular apps to own Android and ios equipment, and you will have the down load links on mobile webpages. 1XBet supporting a variety of fee choices, so you should not have troubles giving currency with the webpages. You have access to new mobile attributes for the gambling enterprise often having fun with the 1xbet mobile application and\/or cellular webpages. It part provides a huge selection of headings which is among the best if you such to experience live broker video game.<\/p>\n

Few bonus also offers diversity which large, so definitely make use of it if you\u2019re also a massive-gaming athlete. It\u2019s probably one of the most common licenses having gaming during the Canada. 1Bet Local casino has been a portion of the gambling on line industry as the 2010, providing more than a decade of experience inside the delivering a diverse diversity regarding gambling games.<\/p>\n

Their slots, eg Nice Bonanza and Gates out of Olympus, try common because of their large volatility and fascinating bonus features. Practical Gamble Pragmatic Enjoy try a flexible merchant giving a general group of pokies, alive gambling games, and you may freeze video game. N1Bet Gambling enterprise lovers which have many leading app business, ensuring a diverse and higher-high quality betting feel for its members. This new alive gambling establishment are powered by top-level organization eg Development Gaming, Practical Play Alive, and you will Ezugi, ensuring highest-high quality online streaming, elite buyers, and smooth game play. Desk game from the N1Bet Gambling establishment send a vintage and flexible gambling experience, appealing to both traditionalists and people trying modern twists.<\/p>\n

Brand new options available often believe the process your useful for your put, since this is preferred to own cover explanations during distributions. 1Bet Local casino\u2019s selection of percentage selection has different regional and you may internationally processors, providing into the need of a diverse pro base. Into cellular application, it\u2019s simple to register, deposit, and place bets set wagers, same as when using a cellular browser. As previously mentioned over, you stay a way to make withdrawals via a great amount of choice. Furthermore, 1xbet is within all top variety of highest roller casinos on the internet.<\/p>\n","protected":false},"excerpt":{"rendered":"

1Win shines given that top online playing system providing good quantity of enjoys to enhance the gaming sense. Read more regarding playing on hottest disciplines less than. Given the broadening interest in esports, the fresh new bookmaker features yet another point seriously interested in esports situations. 1Win Bookie also offers\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-137764","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/137764","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=137764"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/137764\/revisions"}],"predecessor-version":[{"id":137765,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/137764\/revisions\/137765"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=137764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=137764"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=137764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}