/* 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":91664,"date":"2026-05-23T21:03:58","date_gmt":"2026-05-23T21:03:58","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=91664"},"modified":"2026-05-23T21:03:59","modified_gmt":"2026-05-23T21:03:59","slug":"most-are-easy-featuring-a-standard-reel-design-and-you-may-a-restricted-number-of-paylines","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/most-are-easy-featuring-a-standard-reel-design-and-you-may-a-restricted-number-of-paylines\/","title":{"rendered":"Most are easy, featuring a standard reel design and you may a restricted number of paylines"},"content":{"rendered":"

To play totally free harbors within Slotspod now offers an unequaled feel that combines recreation, knowledge, and you will thrill-most of the without having any financial commitment. Video game such Reels of Money possess multiple-superimposed incentive enjoys, and a huge Superstar Jackpot Trail that creates anticipation Book of the Fallen<\/a> with each twist. You can do this because of the checking the fresh new paytable, found in the slot’s details section, and that breaks down symbol opinions, paylines, bonus causes, and special features. These online game element fresh fruit symbols, pubs, and you may fortunate sevens, that have minimal paylines and simple guidelines.<\/p>\n

Prepared you a remarkable go out! One-time I had twice in a row and you may neither big date achieved it go to the added bonus monitor. Multiple times We spun added bonus rounds and it don’t go to the main benefit bullet. Your e, but when you don\ufffdt up-date, their game sense and you may functionalities could be shorter.<\/p>\n

At the Why don’t we Gamble Harbors, you’re going to be thrilled to remember that there’s no registration involved<\/h2>\n

They define basically the best way to earn more spins and you will wins, as well as how so you’re able to open additional rounds. With every twist, you could tray upwards icons to earn Free Spins in person, or discover bonus have one honor additional revolves. Free Spins harbors is special series away from additional revolves you might winnings next to normal rewards. Immediately following it\ufffds complete, you progress one step of progress towards chart.<\/p>\n

This video game is all about winning big to the a great 5?twenty-three grid, laden with enjoyable incentive features and you will special signs. With reducing-boundary graphics, realistic animated graphics, and you will outlined information, this type of harbors transport players towards a full world of astonishing design and charming gameplay. These 100 % free slot online game usually feature several pay outlines, added bonus rounds, and you will unique symbols, providing an exciting and you can visually excellent adventure. Using their easy auto mechanics, common icons such fresh fruit, taverns, and sevens, and you can traditional around three-reel setups, classic harbors promote a timeless and you will easy gambling experience. If you are lucky and you may meet up with the wagering criteria, you’ll be able to keep your earnings because the a supplementary bonus.<\/p>\n

Lower than, there’s all types off slot you might play at Why don’t we Play Ports, followed by the brand new great number of bonus features imbedded contained in this for every single position also. This enables participants so you’re able to experienced graced graphics, unbelievable animations high quality, and superior sound-effects without having to down load things before playing a slot game. Instead of certain web based casinos that want that install extra software before you could availability all of the ports, at Let us Gamble Harbors that isn’t a requirement. Also, you may get more comfortable with the fresh new control panel inside the each position that may supply the line with regards to in search of their wished money denomination or amount of paylines you wish to activate on each spin. If you don’t envision yourself to be a specialist if this concerns online slots, do not have worry, because the to play free harbors for the all of our site will give you the fresh new advantage to earliest know about the amazing incentive provides infused to your per slot.<\/p>\n

As a result, you can access all types of slot machines, which have one motif or have you might think of. Appreciate the fancy fun and you can amusement off Las vegas regarding the comfort of your own household owing to our 100 % free slots zero obtain collection. Top-ranked websites for free slots gamble in america bring video game range, user experience and you can real money availability.<\/p>\n

Scroll because of all of our incredible on the internet slot games, where you can wager a range of added bonus enjoys. Min ?ten put & ?10 wager place & paid within a month regarding deposit in the min 1\/2 possibility (settled), excl. 30 day expiry off deposit. Way too many harbors however, earnings are Rigorous. Wishing you a sensational time!<\/p>\n

The their most widely used headings, and Cleopatra, Multiple Diamond, and you can Controls regarding Chance, already been while the property-depending slots. The online game is actually notable because of their highest-high quality picture, imaginative enjoys, and large volatility. Very, when you check out, you might quickly supply and you will have fun with the top the latest game. you have the opportunity to enter Supermeter mode, providing highest earnings and good jackpot out of x6,000.<\/p>\n

Combining pleasing bonus benefits and revolves with a mysterious Egyptian motif, Cleopatra remains a well-known slot games, despite getting launched over a decade ago. The fresh excitement away from rotating the new reels and the ineplay is exactly what possess users going back for more, even when the animal motif can seem somewhat dated. The best gambling games offered will give players good chance to take pleasure in better-top quality enjoyment and you may fascinating gameplay instead of expenses real money. Mystical Ports are Mystic Lake’s 100 % free personal casino software offering genuine casino favorites. The latest technical shops or accessibility which is used only for unknown mathematical motives.<\/p>\n

Every time you profit, you could enjoy your own payouts for the flip out of a coin<\/h2>\n

Boosting your payouts from the combining the new replacing power from wilds with multipliers. Icons you to carry cash thinking, often gathered throughout the bonus have or 100 % free revolves for quick honors. These can end in large wins, particularly during the 100 % free revolves or bonus cycles. A choice to play your profits for an opportunity to raise all of them, usually because of the speculating along with otherwise match out of a hidden credit. Which escalates the level of paylines otherwise an effective way to winnings, enhancing winning potential. Wins is molded because of the groups of matching signs touching horizontally otherwise vertically, in lieu of old-fashioned paylines.<\/p>\n

Spin enjoyment, twist for huge jackpots, twist for the biggest harbors excitement! The slot machine game for the Slotomania was created to take you real gambling enterprise exhilaration, away from antique Vegas harbors in order to brand name-the fresh styled ports game. \ufffd Asian \ufffd Visit the fresh new planet’s prominent region once you twist the brand new reels of one’s Western-styled harbors. Simply collect coins as you gamble \ufffd get adequate and you will progress to the next level! If that’s the case, listed below are some these slots, every offering totally free revolves aplenty. \ufffd Ports with Collection \ufffd Gather signs as you play \ufffd collect enough and you will probably lead to the main benefit!<\/p>\n

For additional information on this, the How to choose an on-line gambling enterprise post covers everything should do to have the top gambling sense you are able to. Make sure to have a look at site’s own feedback and rating before to try out, and especially prior to placing currency. Having slots video game, just come across ‘Slots’ on Games Type filter out, like, you might prefer their need seller and theme to whittle record down further. The fresh ports and online casino games will brag amazing picture and more complex have than in the past, with builders having fun with cutting-line application to send an immersive betting feel. If you enjoy to play online slots games and casino games, there are also far more headings than ever about how to like away from.<\/p>\n","protected":false},"excerpt":{"rendered":"

To play totally free harbors within Slotspod now offers an unequaled feel that combines recreation, knowledge, and you will thrill-most of the without having any financial commitment. Video game such Reels of Money possess multiple-superimposed incentive enjoys, and a huge Superstar Jackpot Trail that creates anticipation Book of the Fallen\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-91664","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91664","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=91664"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91664\/revisions"}],"predecessor-version":[{"id":91665,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91664\/revisions\/91665"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=91664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=91664"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=91664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}