/* 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":133513,"date":"2026-05-25T20:45:52","date_gmt":"2026-05-25T20:45:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=133513"},"modified":"2026-05-25T20:45:53","modified_gmt":"2026-05-25T20:45:53","slug":"macau-casino-game-search-macau-gambling-book","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/macau-casino-game-search-macau-gambling-book\/","title":{"rendered":"Macau Casino Game Search Macau Gambling Book"},"content":{"rendered":"

This https:\/\/vegasmoose-casino.co.uk\/<\/a> will make the new gameplay best for those people to the a low so you can average bankroll. To the a non-successful spin, Mr. Macau is also award random sticky wilds. The new 7s is also property to the reels dos, step 3, cuatro, and you can 5 and you can award ten free spins, sticky wilds, and you can multiplier wilds. Casino games always have a guide on how to play and you can what the symbols is. Mr. Macau is generous, when he also offers has that come with sticky wilds, free spins, multipliers, and you can respins, all in assistance of your cuatro,438x best award! Betsoft casino games is brightly tailored, and you can Mr. Macau slot is no exception.<\/p>\n

The game\u2019s laws are made to take the new thrill out of Macau\u2019s bright casino scene when you are bringing multiple opportunities to have generous winnings. While this option comes at the a paid prices, it offers instant access to the game\u2019s very potentially fulfilling feature, catering so you can players who enjoy high-risk, high-prize gameplay. The new Triple 7 Free Spins feature in the Mr. Macau is a plus bullet that causes more spins, adding thrill to the gameplay. To have bettors willing to play high risk stakes, the new progressive jackpot is also reap grand perks. The higher the new stake put, the more opportunity players has out of causing the new super jackpot. Macau draws rich VIP bettors who lay massive bets\u2014either millions of dollars for each hand.<\/p>\n

Casinos have begun launching much more high-tech and you can themed slots to attract younger crowds. Younger Bettors \u2013 Millennials and you can younger players are beginning to show much more demand for slots, specifically that have the new tech-motivated game. Travelers & Casual Bettors \u2013 Of many non-Chinese people and you can casual players enjoy ports with their ease. Lack of Cultural Interest \u2013 Of many Chinese bettors find slots as the strictly luck-based and no skill in it, making them shorter glamorous.<\/p>\n

Update…think I would give it some other is, worse, after to play for a short time, booted me away and you can wouldn’t let me back into. All the ports unlocked for everyone ports admirers and you can the new slots is rolled away at least once 2 weeks! Offer you the new WILDEST line of free ports casino games up to the nation! Give your luck a try at the sexy & free casino slot machines, as well as vintage 777 slot game, Mermaid’s Value, 5 Dragons\u3001DUO FU DUO CAI\u3001Skip Cat, and you can the new slots! Gather VIP bonus gifts by the reaching status thanks to humorous and you can exciting spins to the best slot machine Every day!<\/p>\n

Galaxy Macau Casino comes with an inflatable, tastefully furnished gambling floor you to with ease caters over step 1,two hundred slots, 700 table game, and you can VIP gambling bedroom. As the its release in 2011, Videoslots has been one of the biggest online casinos on the world. As well as, casino games and you can video poker. Plenty of extravagant colours and you can bright lights dominate the form doing a keen atmospheric be because you spin the new reels.<\/p>\n

The maximum payout stands at the ten,one hundred thousand moments your bet giving an opportunity for perks, on your gambling trip. Special symbols such as Spread, Wilds and you can Multipliers escalate the new gameplay feel as the backdrop out of a casino mode and you can an engaging soundtrack soak players on the game atmosphere. Play the Dreams of Macau demo up to you want as long as you be needed to get a good master of your gameplay as well as learning the different gambling has. Out of someone looking to bet massive amounts out of real money, up on those people looking for a more leisurely feel, you\u2019ll find the full multitude of online bettors in the Macau.<\/p>\n

The company has been around for almost for as long as there could have been online gambling and you can iGaming, launching in the 1999 in the first place and you can putting on stature in the 2006, to the release of a different type of successful game. As one of the best slot casinos in the Macau, the new MGM Macau has over step 1,one hundred thousand slots. When you are casinos in the Macau work on table game, admirers out of slots can always find of many novel headings. While you can find of many slots at the a good Macau ports casino, part of the attraction ‘s the table game. It has a good twenty six,417 rectangular meter gambling room to the a couple floor, which has over step 1,one hundred thousand slots.<\/p>\n

If the gambling is starting to feel shorter such as fun and more such as a good compulsion, confidential help is available. The new Cotai Strip \u2014 home to The new Venetian, Galaxy Macau, Wynn Castle and more than out of Macau’s biggest casino hotel \u2014 didn’t exist until the authorities based it. Opened in the 2007 and you can run by the SJM Holdings, the new casino takes up a unique dome-shaped building at the tower’s feet and you can spreads around the five account, housing up to 270 table game and over 700 slots. The new casino floor spans as much as 420,one hundred thousand square feet and features up to five hundred table game and you can step 1,five hundred slots. MGM China constantly postings some of the most productive table productivity on the Macau industry, focusing on high-worth recite people over frequency. The new casino floor talks about up to 130,one hundred thousand square feet and features as much as eight hundred table game and you can step 1,five hundred slots, as well as a loyal high-limit city and the signature Mansions hotel-within-a-hotel design to have premium visitors.<\/p>\n

Play all the casino games out of this game vendor at the best casinos. Yes, the new slot machine comes with sticky wilds, re-spins, multipliers, and you can free spins. These two are what i think as the biggest cons. I thought that the new mobile version would be best optimised and you can there is also the fact that you cannot play for massive wins here. Hence, most slot game are made that have mobile optimisation in the mind. Those people range from 1x so you can 3x, and each date it mode part of a winning consolidation, its beliefs is added with her.<\/p>\n

You won\u2019t have to do that it for long even if, because you\u2019ll in the near future know that you might be earning certain large amounts of cash if you were to play for real currency! Prior to risking your real money, you can then always play a few of the game for free, so you score a be to them. Don\u2019t care even if, and there is plenty of most other online casinos in the Macau, so you\u2019ll still be spoilt to have options. Macau is one of the world\u2019s hotspots in terms of gambling, and you can to play at the an online casino is a highly popular hobby. Forehead out of Game is a website giving free casino games, such as ports, roulette, or blackjack, which can be played for fun in the demo mode rather than spending any money. You are brought to the list of best online casinos that have Dreams of Macau or other comparable casino games in the its options.<\/p>\n

Keep a glimpse away to the sticky wilds on the way feature activating in this bonus, as possible really help you to improve the wins you to you make. Also, the new crazy will get a number more than it, and that means how often it can be working in a good successful combination before it disappears. Because of the amount of symbols that can appear on for each reel changing on each spin, the new slot will create anywhere between dos,025 \u2013 32,eight hundred a way to win each time you hit the initiate button. You can buy the new reels spinning out of as low as \u20ac0.20, to the stake models next moving on steadily and you can responsibly up to the maximum rate to play out of \u20ac20. The game does feature a wild icon which is the lay out of slot reels, and it will option to any other normal game symbols.<\/p>\n","protected":false},"excerpt":{"rendered":"

This https:\/\/vegasmoose-casino.co.uk\/ will make the new gameplay best for those people to the a low so you can average bankroll. To the a non-successful spin, Mr. Macau is also award random sticky wilds. The new 7s is also property to the reels dos, step 3, cuatro, and you can 5\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-133513","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/133513","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=133513"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/133513\/revisions"}],"predecessor-version":[{"id":133514,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/133513\/revisions\/133514"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=133513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=133513"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=133513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}