/* 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":132161,"date":"2026-05-25T18:49:44","date_gmt":"2026-05-25T18:49:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=132161"},"modified":"2026-05-25T18:49:46","modified_gmt":"2026-05-25T18:49:46","slug":"elephant-queen-demo-slot-by-the-igt-free-play","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/elephant-queen-demo-slot-by-the-igt-free-play\/","title":{"rendered":"Elephant Queen Demo Slot by the IGT Free Play"},"content":{"rendered":"

Even Beef<\/a> if it been by making ports and you can cabinets to have property-based casinos, anybody can play its game at the of many safe and credible online casinos too. The new award row above the reels motions you to status to the left on each spin and it\u2019s related to one of the has told me lower than. Quite possibly however, that it giant creature is certainly worth a keen online slot machine in his honour \u2013 this one\u2019s titled Elephant Queen, it\u2019s created by IGT and it comes with plenty of free spins and the golden disk feature.<\/p>\n

If you do ultimately place it, it perks you to the award to the row personally more than it. So yeah, it\u2019s not anything too in love, but you has a skinny risk of successful a good jackpot, when you are bonuses is secured all throughout the game! The base game has a good jackpot out of 500x that you can win for those who property five elephant symbols to the active paylines. Prior to i initiate, note that you don\u2019t have to lay any money down to play.<\/p>\n

Yes, Mega Jackpots Elephant Queen adds a progressive jackpot to the feet game mechanics, to the jackpot seeded at the $five hundred,one hundred thousand and no upper limit. Yes, the particular award beliefs on the Award Disk containers persevere and you can turn predictably around the spins and you can lessons, enabling players to observe worthwhile perks addressing triggerable ranks over the years. The new elephant icon pays the highest at the five hundred credits for five-of-a-form on the feet game, doubling to one,one hundred thousand credits during the free spins. Free spins have to result in of course from the Award Disk system when scatters property underneath Free Spins symbols. Elephant Queen is classified as the average volatility, bringing balanced gameplay that have normal shorter wins and you can occasional big winnings. In the feature, More Spins symbols award dos more spins for each when caused by scatters.<\/p>\n

During the feet game, you have made the new prize by the matching the standard about three and even five identical symbols where the latter tend to prize you up to 0.53 so you can 6.66x your stake. So you can be either such as watching a good herd out of Elephants rumble while you fill up your pockets that have bonuses. The new image is extreme, to the first thing you\u2019ll notice ‘s the golden shade backdrop that have windswept savannah grass. Based in the 1990, IGT isn\u2019t the new in the online casinos and has catered so you can millions of users.<\/p>\n

To the interested models, the new paytable is one short click here are some what for each creature pays and you can know what to hope for. No money, and it feels exactly as easy to the mobile as it does to the desktop. To change your bet for each spin to the handy control, find automatic spins for those who\u2019re also a slim-straight back player, or just tap for each spin to store it hand-to the.<\/p>\n

IGT generates the game up to a readable core design when you are setting all the suspense on the bonus strip above the reels. The new format feels familiar to have normal slot machine players, but the jackpot layer change the rate as the one qualifying icon can turn a normal spin to the an element-contributed effect. Elephant Queen MegaJackpots is a pet-themed jackpot slot based up to steady line wins on the feet game and you can a prize Disk that can award bucks awards, free spins, or access to the new progressive best award. The game brings together stacked crazy help in the base game that have a plus settings\u2026 much more \u2192 More winnings is you can thanks to the Award Disk feature, and that perks you that have bonus winnings.<\/p>\n

You can buy extends where line wins is smaller and the harmony waits for another useful Award Disk effect, but the slot isn\u2019t based such as a severe high-risk name chasing you to grand mechanic. The new line game can keep the bill swinging that have shorter strikes, but the stronger swings tend to been if the Award Disk adds either a direct bonus award or sends play to the free spins. The new free spins bullet is the place the game can feel much more active, as the multiple bonus consequences is also strings with her thanks to retriggers. As opposed to treating free spins as the a totally independent layer, the new slot spends a similar bonus gateway for both lead credits and additional spins, which keeps the overall structure compact and easy to follow. You to structure helps Elephant Queen are still easy to see, especially for players who prefer clear feature entry things as opposed to layered solutions.<\/p>\n

Looks to the reels step 1, step 3 and you can 5 on the feet game and on reels step 1, dos, step 3, cuatro, and you can 5 on the Free Spins Bonus. Tired of boring ports you to feel like polished showpieces? Just after stacking up all those shorter wins do you realise how much your perks have grown. However, here\u2019s the new spin\u2014you\u2019re also not meant to single-mindedly chase you to greatest award. The new Free Spins Bonus isn\u2019t a lazy add-on; it\u2019s designed for adrenaline-seekers. You know how it goes\u2014causing free spins just to be disappointed as they be such as a keen afterthought.<\/p>\n

The new graphics is hitting; you can feel the dirt of your African plains because you chase after colossal winnings. The game has a basic settings that have 5 reels and you can repaired paylines, making sure all the spin holds potential for big wins. What’s interesting on the Elephant Queen is its novel mix of charming image and you can immersive gameplay. You could post an email to the our contact form, feel free to create to me in the Luxembourgish, French, German, English or Portuguese.<\/p>\n

If you are not found in this for each state, you won\u2019t be able to subscribe to its online casinos legally. We recommend that you understand our reviews for each so you has a powerful understanding of the new game and you can promotions that every also offers. On the free spins bullet, you\u2019ll be given ten free cycles. The way to unlock major perks with this particular name is so you can property the advantage has.<\/p>\n

Earn instant cash perks, obtain more spins, or engage in free game that have twofold awards. That have 40 paylines, find bets out of 0.75 to one,five hundred gold coins and you can go for best perks. I found that it did boost my contact with the game, but it is easy to turn it out of if you want so you can. There are some other online casinos where you can play Elephant Queen. The new mobile gambling feel can be much more easier than just to play to the pcs, and no differences to the gameplay at all. Before you can allege any of the promotions, be sure to check out the fine print.<\/p>\n

The first thing you\u2019ll notice is its ambitious and you can colorful image, that have a good percussive African soundtrack adding some other layer out of thrill so you can the new gameplay. For those who\u2019re also curious about to play rather than spending real money, try out the new Elephant Queen free play mode to find a good be to the slot prior to wagering. If your appeal out of colossal wins and you can thrilling gameplay attracts you, it\u2019s time to venture into the new desert that have Elephant Queen.<\/p>\n

The new Elephant Queen slot transports you to a golden African savanna, where all the spin is also unleash elephant-size of perks. The deal is spread over the original cuatro dumps. Prepare for a keen thrill along the Serengeti that have thrilling has and you can a shot at the a life-changing jackpot! For those who\u2019re also not knowing where to play, visit CasinoWow\u2019s best needed IGT mobile casinos page. Such scatters pays a cash award, award free spins, give more spins or result in the new MegaJackpots Bonus feature.<\/p>\n","protected":false},"excerpt":{"rendered":"

Even Beef if it been by making ports and you can cabinets to have property-based casinos, anybody can play its game at the of many safe and credible online casinos too. The new award row above the reels motions you to status to the left on each spin and it\u2019s\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-132161","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/132161","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=132161"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/132161\/revisions"}],"predecessor-version":[{"id":132162,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/132161\/revisions\/132162"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=132161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=132161"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=132161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}