/* 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":131603,"date":"2026-05-25T17:25:11","date_gmt":"2026-05-25T17:25:11","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=131603"},"modified":"2026-05-25T17:25:12","modified_gmt":"2026-05-25T17:25:12","slug":"enjoy-superior-online-casino-games-on-manhattan-ports-local-casino-now","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/enjoy-superior-online-casino-games-on-manhattan-ports-local-casino-now\/","title":{"rendered":"Enjoy Superior Online casino games on Manhattan Ports Local casino Now!"},"content":{"rendered":"

That it means that all user keeps the same chance of winning, without any manipulation or unjust masters. And, featuring its cellular-friendly system, you may enjoy your chosen video game when, anywhere. Whether you\u2019lso are a fan of vintage table games like blackjack and you can roulette, or choose the rotating reels away from slots, so it gambling enterprise features all of it. Presenting more than two hundred higher-quality games out of recognized application vendor Alive Betting (RTG), Manhattan Slots Local casino promises top-notch entertainment per version of pro. It\u2019s an intelligent way of getting accustomed the working platform, but contemplate, they excludes all network progressive games, ensuring fair play across-the-board. In the pleasing standing having 2025, New york Slots Gambling enterprise is promoting a no-deposit allowed brighten\u2014a beneficial $75 free processor which is good for novices eager to sample this new step exposure-100 percent free.<\/p>\n

Regardless of the date, also during the 4 are, you can immediately check out a gambling establishment, sign up, and commence to experience. Of many immediate-enjoy casinos adjust its game connects, very practicing during the demo betnation casino<\/a> setting helps you become familiar with brand new gambling style and regulation unique compared to that program. Alive gambling enterprises are good immediate-enjoy choice which have elite group investors and plenty of games to determine regarding. Craps is one of the most fascinating dice video game \u2014 within a few minutes you could move the newest dice and make your wagers. Very whether or not you\u2019re crazy about actual-money ports otherwise craps, all video game are offered inside my necessary casinos.<\/p>\n

If you’re not interested in Manhattan Slots bonuses, go to SlotsUp’s checklist pages to get the incentives obtainable in their nation and you can filter her or him based on your preferences. To check out Manhattan Slots, you really must be no less than \u206618\u2069, as needed by-law inside the Moldova and by Manhattan Harbors conditions Sallie produces during the-breadth guides, news standing, and you may player-centered content made to revision, help, and you will convince casino lovers around the world. Manhattan Slots Gambling enterprise now announced the latest rollout of a great renovated mobile software that will bring their Real time Betting library and you can membership devices to help you mobiles and you will pills.<\/p>\n

These types of game, all from RTG, high light as to the reasons New york Slots shines\u2014reputable app, diverse templates, and you will bonus rounds that make seamlessly with free potato chips now offers. Lay those people free potato chips to function towards the standout Live Gambling slots one prepare has actually and you will templates for each and every preference. Our expert class constantly means all of our 100 percent free gambling establishment ports are safe, secure, and you can legitimate. App business continue starting game predicated on these templates having improved have and you may image.<\/p>\n

And you can including partners other people a beneficial real time playing gambling enterprises, this 1 into the a give away from bar globe casinos class. Hi, i hope you are going to enjoy my personal review of new york ports gambling establishment. What you an excellent and you may incentives proficient at which gambling establishment but have misfortune involved and most minutes alive gaming harbors try cool personally and i also are unable to profit great at so it gambling enterprises.<\/p>\n

The overall game leans to the a supper-and-personal theme and you may spends common signs such laptops, potato chips, desserts, bells, and also the Bunko Dice spread out. Reloads, cash return and you will totally free chips are common offered, as the Manhattan Ports means that their users was addressed well most of the week. Whenever to relax and play on sometimes style of the casino, there is no doubt which you\u2019re also safe. Diving with the prominent headings particularly Sweet 16 Ports, Cash Bandits step three Ports, and you will Golden Lotus Slots, per giving book layouts and you can fun possess. Enjoy satisfaction knowing important computer data is safe while you indulge in the enjoyable game. Users is also allege this new headline invited give \u2014 an excellent one hundred% complement in order to $747 that have incentive code MANHATTANSLOTS \u2014 designed for slot members and you can keno fans (20x betting).<\/p>\n

All of our generous enjoy added bonus as much as $747 having slot couples, otherwise $150 to own desk game enthusiasts, assures you start the casino travel having a superb money improve. No max cashout toward put incentives; 10x extra for free chips. Log into your bank account, check out cashier, come across approach, enter into number ($35 lowest to own bonuses), and show. Notice GEO constraints (e.grams., no Uk, Australia); deposit called for just before withdrawal.<\/p>\n

Now, Instantaneous Play casinos rely exclusively on the HTML5, making certain effortless game play on the all equipment. Given that first option is most appropriate to own bettors having fun with several products, the second is for these prioritizing performance and easier game play. Withdrawing which have PayPal is as easy as searching for it on cashier area, entering the wanted amount, confirming your PayPal current email address, and guaranteeing the fresh new consult.<\/p>\n

Manhattan Slots is discover every day for business, definition players can get an informed incentives every time they journal for the, Monday\u2019s offers are an effective 67% slot extra, and by saying they 4 X, you obtain $twenty-five free chips. Joining is fast, regarding cashier section, the newest professionals will receive this new discount from the entering the password on the other hand since the deposit amount. Little increases your odds of catching big earnings for example cashback incentives, put incentives, and you may totally free spins, once the most exciting of them all continues to be the desired also offers. Using your credit otherwise debit notes is actually chance-100 percent free because New york Ports utilizes RSA personal and personal secret encoding technical to be sure study try transferred most properly. Black-jack even offers period of high excitement, and also at New york Slots, the fresh array of ideal game boasts Fits Gamble 21, Pontoon, Extremely 21, 21 Blackjack, and you will Blackjack + Primary Pairs.<\/p>\n

To own withdrawals, professionals can select from lender transfers, cheques, bitcoin, cord transfer, and eWallets. Once conducting a comprehensive summary of Manhattan Harbors Gambling establishment, we are able to confidently claim that it\u2019s a strong gambling on line program. Manhattan Harbors Gambling establishment including makes use of 128-bit SSL encoding to guard players’ personal and you will financial advice. At exactly the same time, Gaming Laboratories continuously assessment new online game to be sure fairness. With respect to member security and safety, Manhattan Harbors Gambling establishment requires the required methods to add a secure betting ecosystem. The new casino has the benefit of twenty four\/7 customer service, ensuring that people can get recommendations if they want to buy.<\/p>\n

Keep your equipment\u2019s operating systems and internet browser cutting-edge towards the smoothest game play and you can fastest stream moments. As an example, the Saturday offer comes with an effective 67% Slots Added bonus, which will be advertised doing 4 times, and a $twenty-five Totally free Chip. Consider, no venture claims wins; cure incentives due to the fact extra fun time, perhaps not a living source.<\/p>\n

The mandatory assistance is offered around the clock, 7 days per week. While Manhattan Slots gambling enterprise provides profiles the ultimate internet casino experience, help is including offered thru one simply click. All of the online game to be had during the Manhattan Ports are made and produced by Real time Betting, which plus fuel the site. Offers become\u2014look at the cashier frequently into latest requirements and you may qualifications criteria. When it is circumstances regarding reasonable gamble, unbelievable bonuses, fun promotions, and you may many finest-quality online casino games you\u2019lso are immediately following, Manhattan Harbors ‘s the answer.<\/p>\n","protected":false},"excerpt":{"rendered":"

That it means that all user keeps the same chance of winning, without any manipulation or unjust masters. And, featuring its cellular-friendly system, you may enjoy your chosen video game when, anywhere. Whether you\u2019lso are a fan of vintage table games like blackjack and you can roulette, or choose the\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-131603","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131603","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=131603"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131603\/revisions"}],"predecessor-version":[{"id":131604,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/131603\/revisions\/131604"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=131603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=131603"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=131603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}