/* 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":134994,"date":"2026-05-26T01:05:53","date_gmt":"2026-05-26T01:05:53","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=134994"},"modified":"2026-05-26T01:05:55","modified_gmt":"2026-05-26T01:05:55","slug":"your-private100-customizableonline-journal","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/your-private100-customizableonline-journal\/","title":{"rendered":"Your private100% customizableonline journal"},"content":{"rendered":"

The slotspalace casino \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae<\/a> concept of \u201ctime of day\u201d is meaningless so you can a server processing spin requests from all over the new world. That it heightened ecosystem makes wins be larger and more high, reinforcing the belief that nightly is best to have winnings. For those who get rid of to the a friday morning, you don\u2019t think about it \u2014 it\u2019s just another lesson. For those who win to the a saturday night, you think about it as the casino is busy and you can exciting. It makes the new illusion that the servers is spending best \u2014 but the for each-player chances hasn\u2019t changed.<\/p>\n

Finding the right slot machine for your to play style is the new one thing that tend to somewhat improve your online gambling feel. Hunting for progressive jackpots is the best this weekend, where there are the most players. Multiple other factors come into play that can somewhat dictate your gambling feel. Of many players accept that spinning the new reels late at night or during the silent times improves its likelihood of hitting a matching consolidation out of symbols, however, you to\u2019s not true. Certain pros speculate you to online casinos you’ll to change the new payout prices of its slots according to the time of day so you can attract more players. The secret isn\u2019t chasing a lucky hour; instead, to play after you\u2019re also clear-headed and you can abiding by the mind-imposed gambling restrictions.<\/p>\n

But not, it\u2019s important to remember that the new surge in the player visitors during the height times has no impact to the real result of the new game. Generally, height times to have online slots tend to exist during the nights and you can weekends. All the spin is totally random, meaning your chances of successful are still a similar regardless of when you hit the spin button. Certain accept that jackpots are more likely to hit during the out of-height times, while others swear by the specific days of the new week.<\/p>\n

Active finances administration is important to have optimizing your online slot gambling lessons and you can prolonging your gameplay. Experienced players tend to emphasize the importance of bankroll administration, in control gambling methods, and you can knowing the mechanics of different slot game. Such as, to play during the quieter times can get will let you interest best and you can control your bankroll much more very carefully. As a result it doesn’t matter after you play \u2014 morning, night, or during the height times \u2014 the underlying chance are still the same. That have shorter race to have awards, you have a much better risk of hitting successful combinations and you can protecting winnings. Off-height times, such as weekday mornings or late night, typically have fewer players online, doing a more casual gambling atmosphere.<\/p>\n

The best time to play ports in the an online casino is after you notice an attractive jackpot. Not consenting or withdrawing agree, can get negatively apply to specific has and functions. It\u2019s important to know the details about \u201cwhen is the best time to play ports\u201d and the popular mythology, and that page has we hope helped you to clear one second thoughts. So, forget one slot timing approach that you may have heard out of.<\/p>\n

To get started, here are some our progressive ports book for the most popular game and you can where to find him or her. So, in terms of timing your play on such game, the size of the new jackpot matters much more than the date out of date. As opposed to normal ports, progressive jackpots keep expanding every time someone plays \u2014 around the you to casino, a network out of casinos, if not worldwide. By the straightening your gameplay with our also offers, you\u2019re also not looking to outsmart the new slot machine in itself (and that, spoiler, is hopeless). Such bonuses will be given during the special occasions, such as vacations, or as part of weekend promotions, giving you more finance to play real money ports online. Such as, of many casinos give free spins to the popular slot game such as 88 Fortunes, and that allows you to is the game rather than dipping into your very own bucks.<\/p>\n

Certain players trust you should bet limit bets so you can result in the new jackpot, however, as the proven in the spectacular earlier wins, the new jackpot will be caused out of setting a minimum bet. A percentage of any bet leads to the new jackpot award, however, in contrast to faith, the new game is controlled by RNGs to the jackpot causing at the random. There\u2019s no best returning to slot play than just if the casino is dishing away extra value for money. It doesn\u2019t count if it\u2019s Friday morning or Saturday night; the odds out of successful can’t be swayed.<\/p>\n

While this doesn\u2019t change the randomness out of slot spins, timing your gameplay in these active episodes makes the action be much more fulfilling and you can prompt-paced. Such mechanics create the impression out of \u201cbest chance\u201d because there are much more successful incidents going on at once. During the height play times in some nations, much more players subscribe to progressive jackpots, making them climb shorter. By taking advantage of such quieter moments, you could maximize your likelihood of successful and enjoy a more fun and you can fulfilling online slot gambling lesson. As the race can be harder, the potential perks will be high for those who be able to safe a win amidst the new hurry out of players.<\/p>\n

Progressive jackpots boost with each bet, so to play if the jackpot is approaching its payout tolerance is also improve your successful potential. Major incidents and you can vacations as well as interest high player hobby, next increasing the potential for generous progressive jackpots. As the online slot fans, you may find you to to play during the height times is also tell you opportunities to have big jackpot pools. When you are much more players can get do big jackpots, the crowd to have personal wins as well as grows.<\/p>\n

But not, it\u2019s important to not exceed your budget in these opportunities. The new ports to the BetMGM don\u2019t change according to the date of your week, time of day, week of the year, or other dimension of your time. In that interest, the best time to play ports is when it\u2019s most convenient to you. In terms of to play ports the new easy way, it\u2019s best to finances your time and your currency.<\/p>\n

\u201cI like to play late at night if it feels like I feel the casino all the so you can me,\u201d shares Alex Brownish, reflecting the benefits of out of-height gambling.When you are wondering about the best time to visit the new casino to play ports, of many advice going for situations where the new casino is not very crowded, such as am or early afternoon, so that there are more free servers. To play ports when you are tired or distracted can lead to bad gambling decisions and you can neglect out of in control gambling methods. As the RNG guarantees fairness and you can randomness in the winnings, to play online slots after you\u2019re also on the best physical and mental state you will improve your gambling feel. \u201cKnowing that winnings is random, I work on to play when i be very alert and you can casual,\u201d shares Jane Doe, a skilled online slot player.<\/p>\n

It\u2019s not on the a certain time of day, but instead understanding how such jackpots collect and you can act. On the flip side,big progressive jackpots become more most likely in these height times as the more individuals is contributing to the new pot. For those who\u2019re also looking for a more casual and you can strategic approach to to play ports, early mornings might just be your best bet. The new slower pace makes it possible for a more casual and you can fun gambling feel, free from plain old distractions and you can pressures out of height times. As well as, the new quieter ecosystem helps you interest and make best decisions.<\/p>\n

When you are much more players you’ll play in the evening, causing the impression out of high you can winnings, the fact is that your chances of successful are still a similar. Certain bettors may think you to its likelihood of successful boost when the new casino is crowded. Whether or not you\u2019re also more of a morning person or a night owl, your chances of potentially successful are still a similar. As the all the regulated slot game run on a keen RNG, the odds out of successful be consistent, whatever the date or date. Hence, if it\u2019s date or night, your chances of successful are still a similar.<\/p>\n

To enter, you ought to bet R2 or more to the qualifying slot game during the the new race. We often score asked what is the best time to play online slots in the South Africa. The day of your week and you can time of day create no difference to the likelihood of successful casino ports in the South Africa. So, what is the best time to play ports to the Betway and you can other sites such as Hollywoodbets?<\/p>\n","protected":false},"excerpt":{"rendered":"

The slotspalace casino \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae concept of \u201ctime of day\u201d is meaningless so you can a server processing spin requests from all over the new world. That it heightened ecosystem makes wins be larger and more high, reinforcing the belief that nightly is best to have winnings. For those who get\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-134994","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/134994","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=134994"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/134994\/revisions"}],"predecessor-version":[{"id":134995,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/134994\/revisions\/134995"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=134994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=134994"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=134994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}