/* 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":138010,"date":"2026-05-27T21:28:48","date_gmt":"2026-05-27T21:28:48","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=138010"},"modified":"2026-05-27T21:28:49","modified_gmt":"2026-05-27T21:28:49","slug":"wager-online-position-game-in-the-southern-area-africa-which-have-yesplay","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/wager-online-position-game-in-the-southern-area-africa-which-have-yesplay\/","title":{"rendered":"Wager Online Position Game in the Southern area Africa which have YesPlay"},"content":{"rendered":"

Once you achieve the premium top, you can buy customized offers, devoted support, plus perks. Keep in touch for the top elements of the local casino because of the getting the 777 Casino software or playing instantly on the favorite mobile browser. You can gamble on 777 Gambling enterprise on your own Android os, apple’s ios, or any other gadgets by getting the mobile software. By using a valid discount, you can enjoy greatest gameplay, understanding that your own security and you may satisfaction are nevertheless our best concerns.<\/p>\n

I answer quickly and continue maintaining your er fire joker lovligt<\/a> updated in your membership texts. Paysafecard can be obtained for places, with distributions delivered because of the financial import. They provides crisp graphics, Deal with ID log on, and you can small places. Load up, check in, and you will plunge toward pokies, tables, and you will real time dealers.<\/p>\n

Got to make this away to own thumbs up it’s an extremely small aside and you can movements easily provides high away image artwork is actually a great as well as the pants are good The fresh believe all of our profiles place in you was a testament with the exceptional top quality and you will services we provide. At Casino777, you\u2019ll get nothing but a knowledgeable casino games and entertainment across devices, regardless of where you\u2019re. Visit campaigns to understand more about invited bonuses, 100 percent free revolves, and you can cashback now offers.<\/p>\n

Users in britain may use a mobile internet browser discover for the gambling establishment in place of an application, otherwise they may be able down load you to definitely if an individual can be obtained. Limits to your deposits, fact checks, time-outs, and notice-difference are just a few of the units one 777 Gambling enterprise give United kingdom profiles to assist them to gamble sensibly. Whenever brand new members throughout the British register for 777 Gambling enterprise, they can rating a welcome give. Based on British rules, this is why professionals can be subscribe, gamble, and revel in all of the features.<\/p>\n

While doing so, new users can enjoy a free 50% bonus to their very first deposit. If you are unsure just what belongs inside the a review, grab an easy glance at the Send Advice before submission. The support provider you are going to raise because of the hiring more people.<\/p>\n

In the 777 internet casino web site, players access from scrape cards and video poker so you’re able to desk games and you may various real time specialist choices. After all, there clearly was little area if web site looks high if around are not sufficient video game to possess users to test. This means that players whom sign up for a merchant account to enjoy within 777 can feel in hopes it\u2019s a highly legitimate site to utilize. Stating to get the best vintage Las vegas local casino feel on the internet, 777 yes features a separate be, design and style compared to the a good amount of the opponents in a nowadays. Men and women mulling more than 777 Gambling enterprise will likely involve some inquiries ahead of they invest in joining an account into the web site. Part of probably one of the most famous on-line casino organizations anywhere internationally, 777 Gambling establishment are unsurprisingly an extremely solid selection for one member trying to subscribe and use an alternate website.<\/p>\n

The brand new financial means is super simple to use, that have clear directions plus one-simply click availableness. The working platform uses cutting-edge encryption technology with the intention that all the deals and private study is actually kept safe. 777 Casino is renowned for its member-friendly user interface, so it’s easy for people to navigate owing to their comprehensive game library and find the favourites easily.<\/p>\n

Once you result in reception, you can try pace having Slot 777 On line 100 percent free just before altering to actual enjoy, zero stress, just a fast feel for reels featuring. While chasing after 777 Gambling enterprise No deposit Incentive, you might nonetheless developed an installment approach early therefore cashouts later feel painless. Whenever you are hunting promos on the cellular, Sector 777 Casino No-deposit Extra is easy to recognize in the your account urban area, that have obvious steps that don’t waste your time and effort. Android os users can also be setup our software within a few minutes, if you’re ios professionals score a softer internet application layout sense one to behaves including a local symbol on your Home Display screen. Toward 777 local casino cellular type tons small and you may stays clear to your faster house windows, so ports, alive dining tables, and you may cashier never ever getting cramped.<\/p>\n

Understanding that 777 Gambling enterprise are an associate of one’s 888 Category, I’d likely to look for a big assortment of online game, a portion of which will become Class\u2019s own manufacturing. From the 777 Local casino you\u2019ll select various common casino games, along with slots, roulette and you may blackjack. VIP Club subscription opens up an additional handbag regarding snacks, nevertheless\u2019s from the receive only.<\/p>\n

Brand new R777 mobile application was one of the greatest and most safer wagering an internet-based betting software in Bangladesh. R777 happily even offers one of the recommended subscribe bonuses inside the Bangladesh. In the long run, most of the games provided into our very own platform try off certified authorized games writers that have a good secureR777 log in Bangladesh system. Our fee gateways is secure and you may run on most readily useful economic cover services. The fresh R777 software, as well as the web system, was secured with community-top security features.<\/p>\n

Logging in is made for benefits, very profiles is also work at playing unlike taking technical actions. The goal is not difficult supply, clear terms and conditions, and you can dedicated perks you to definitely feel generated. Out of small-enjoy small-game so you can complete-fledged gambling enterprise event, the working platform was created to getting prompt, easy to use, and also fun. The safer and you will member-amicable log on system helps it be quick and secure to get into your own dash of any equipment. The working platform was created to provide a smooth gambling sense toward smartphones and you may tablets, allowing participants to love a common online game away from home.<\/p>\n

The fresh new blackjack game play may be very effortless, and those individuals starting out to play black-jack, you can find instructions on laws and you will strategy. Position fans are able to find a variety of choices and this we’ve detailed below, however in bottom line, includes antique about three-reel ports together with more recent movies slots with pleasing has and themes. Whilst the video game possibilities into the software are slightly shorter, they however comes with numerous types of game and provides the same large-quality graphics and you can game play. Professionals can also enjoy the same put and you will withdrawal possibilities on the the newest desktop computer web site, including access to customer support.<\/p>\n

Concerning your framework, they appeared to myself that the mobile variation was quite substandard into amazing, but I wear\u2019t comprehend the actual reasons why I thought so. The specified advice is verified very quickly, and i you are going to move on to this new deposit. Your private information is safe, each exchange is safe and encoded. Simply speaking, I’m a fan of this type of themed records and you can absolutely love the design.<\/p>\n

You could allege they after applying to new 777Casino\u2019s webpages. Yet not, the latest hook is the fact that the wagering requirements continue different in common on game your\u2019re also to relax and play. For individuals who\u2019lso are seeking the most readily useful first put bonus to have Uk professionals, 777 Gambling establishment\u2019s offer deserves analyzing. For people who\u2019re also wanting to know concerning the variety of ports video game \u2013 allow your creativity work on crazy. Fey\u2019s Versatility Bell was a standard servers, however it revolutionized new American playing sector, and you will rapidly got the nation by violent storm.<\/p>\n","protected":false},"excerpt":{"rendered":"

Once you achieve the premium top, you can buy customized offers, devoted support, plus perks. Keep in touch for the top elements of the local casino because of the getting the 777 Casino software or playing instantly on the favorite mobile browser. You can gamble on 777 Gambling enterprise on\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-138010","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138010","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=138010"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138010\/revisions"}],"predecessor-version":[{"id":138011,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138010\/revisions\/138011"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=138010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=138010"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=138010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}