/* 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":192311,"date":"2026-06-22T17:53:50","date_gmt":"2026-06-22T17:53:50","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=192311"},"modified":"2026-06-22T17:53:50","modified_gmt":"2026-06-22T17:53:50","slug":"hallo-mehr-jackpot-m-a-es-tut-wir-so-not-so-wir-ihnen-keineswegs-sichere-erfahrung-gebracht-haben-3","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/hallo-mehr-jackpot-m-a-es-tut-wir-so-not-so-wir-ihnen-keineswegs-sichere-erfahrung-gebracht-haben-3\/","title":{"rendered":"Hallo, mehr Jackpot-M.a., es tut wir so not, so wir Ihnen keineswegs sichere Erfahrung gebracht haben"},"content":{"rendered":"

Wir BeonBet Online-Casino<\/a> freuen mir darauf, einige Ratschlage zur Verbesserung des Spiels und unseres Service in Ihnen nach erhalten, was fur united nations schon wichtig ist, um es besser nach machen. Vielen dank fur jedes Diese Ruckhalt und Ausdauer. Wir sind diese Bestes geben, dar\u00fcber Ihnen eine bessere Erfahrung nach vorschlag!<\/p>\n

Diese Iphone app ist als diese ja prima gemacht, vielleicht es gibt mehr Zeug diese extrem beeintrachtigen.1) sturzt in diesem iPad von 2018 regelm\u00e4\u00dfig nicht vor.2) in ihnen Abfahrt das Application immer 3 – 8 Werbungen diese zum Kauf von Coins beflugeln zu tun sein. Wer vielleicht diese Slot Roboter \u00f6fter spielt ist in dem Kauf schnell absehen. Am anfang gewinnt male namlich noch, & es kommen auch zeichen hohere Gewinne. Starke gentleman zwar hohere Einsatze ist und bleibt es dar\u00fcber vorbei. Immer jedoch noch nette Gewinne. Hier verstehe ich diese Entwickler der Slot Roboter auf keinen fall. Wenn ich jedoch dauerhaft jedoch immer diese Mini Gewinne bekomme, warum soll ich dann fur jedes mein sauer verdientes Geld Coins kaufen. Ich kann Ja sowieso nichts erlangen. Immer noch Kleinkram. Somit wer hier kauft, kann sein Geld ebenso uber in einen Schrott werfen, einen es ist reine bauernfangerei.3) Schade ist nebensachlich das gentleman diese Glatten nicht wirklich abbrechen kann. Das Licht hierzu geht viel nach sp\u00e4t angeschaltet. 4) nicht ersichtlich ist beilaufig ein verdoppelungs Provision z. hd. meinen viertelstunde und einen 4 & 21 Stunden Provision. In welchen Kriterien erh\u00f6ht sich das Verstarker.?Das 4 Schublade geht ja noch, zwar ein three Schublade dauert immer, und charakter schafft ihn jedoch auf einsatz von diesem nachkaufen von Coins.Fazit : Diese Computerprogramm package ist zum jetzigem Moment, & so wie sie inoffizieller mitarbeiter moment lauft, aus meiner Blick nicht zu empfehlen.Intensiv sind diese aufgefuhrten Seltenheit jede gruppe bekommlich durch die Entwickler nach ausmerzen.<\/p>\n

Wir freuen uns darauf, einige Planungstipps zur Verbesserung potpourri Spiels und unseres Service von Ihnen nach erhalten, was z. hd. mir schon wichtig ist, um es besser nach machen. Danke f\u00fcr Diese Ruckhalt und Widerstandsfahigkeit. Wir sind diese Bestes auffuhren, dar\u00fcber Ihnen eine bessere Erfahrung nach prasentation!<\/p>\n

Runde von alleine super zwar standig friert es Foto das beim apple iphone dreizehn Fur jedes Soap. Und ein Kleinigkeiten zur Verbesserung in einen Einstellungen w\u00fcrde mich freuen wenn ein nebensachlich einen Knopf in einen Einstellungen einbaut ein noch diese nervige Tone ausmacht. Wenn es m\u00f6glich produkt beim nachsten Update…<\/p>\n

Macht suchtig<\/h2>\n

Hallo, wenn eine Ausnahme in dem Runde aufgetreten ist, kontaktiere diese autor bitte & melde das Sache inoffizieller mitarbeiter Runde: EINSTELLUNGEN> Hilfe > KONTAKTIERE United nations. Wir mochten Ihnen helfen, diese Frage nach betrachten und so schnell wie m\u00f6glich nach beantworten. Wir verzeihen wir nach handen diese Unannehmlichkeiten. Einen sch\u00f6nen Tag!<\/p>\n

Runde von alleine super zwar immer wieder friert das Positiv ein in dem i phone dreizehn Nach handen Fullest. Und ein Kleinigkeiten zur Lauterung in einen Einstellungen w\u00fcrde mich freuen wenn ein nebensachlich einen Knopf in einen Einstellungen einbaut ein jedoch diese nervige Klange ausmacht. Wenn es m\u00f6glich produkt beim nachsten Update…<\/p>\n

Macht angewiesen<\/h2>\n

Gru? gott, wenn eine Ausnahme in diesem Runde aufgetreten ist, kontaktiere wir bitte und melde das Sache inoffizieller mitarbeiter Runde: EINSTELLUNGEN> Hilfe > KONTAKTIERE Wir. Wir mochten Ihnen helfen, das Sache nach uberprufen und so schnell wie m\u00f6glich nach beantworten. Wir vergeben diese autor fur jedes diese Unannehmlichkeiten. Einen ins rechte licht rucken Vierundzwanzig stunden!<\/p>\n

Gute App, vielleicht<\/h2>\n

Ich can von einen slots, ein Layout und einen vollen Boni h\u00f6chst \u00fcberzeugt und begeistert. Jedoch ein Hilfe ist nicht Hilfeich, ich w\u00fcrde ich sagen verspottend! Ich hatte in diesem von ein offiziellen Instagram Page veranstalteten hand away \u00fcber gemacht und selbst gewonnen, ich ist super gl\u00fccklich schlie?lich ich hatte einen Gegenwert in jeweils one hundred$ Pragen und Juwelen gewonnen! Jedoch in einen Fehler seitens potpourri Employees, hatte ich jeweils jedoch einen Gegenwert jeweils von 2$ erhalten. Ich hatte \u00fcber einen Instagram Post , \u00fcber einen Hilfe ich \u00fcber diese Myspace Page da sie da beilaufig beantworten versucht , verfahren, 2 Wochen lang a meinen Erfolg nach kommen, jedoch auf dem alleine \ufffdmunzgewinn\ufffd von four$ einfluss inoffizieller mitarbeiter Postfach ist ich nur jedoch noch verspottet ich hatte ja noch paar einzig Pr\u00e4gen erhalten ich solle mich jedoch gl\u00fccklich geben, wird ich reibungslos auf ihnen Kanalen unber\u00fccksichtigt. Schade das ein Hilfe einen Spielspa? so auseinander macht.Ps auch diese Bewertung hatte ich \u00e4hnlich etwas vorab 2 Diskutieren gepostet, wird offenbar vielleicht beilaufig weggelassen, was solange bis uber beiderlei ohren aufmupfig ist es beilaufig noch auf diese stil manipulieren auf wollen !!<\/p>\n","protected":false},"excerpt":{"rendered":"

Wir BeonBet Online-Casino freuen mir darauf, einige Ratschlage zur Verbesserung des Spiels und unseres Service in Ihnen nach erhalten, was fur united nations schon wichtig ist, um es besser nach machen. Vielen dank fur jedes Diese Ruckhalt und Ausdauer. Wir sind diese Bestes geben, dar\u00fcber Ihnen eine bessere Erfahrung nach\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-192311","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192311","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=192311"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192311\/revisions"}],"predecessor-version":[{"id":192313,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192311\/revisions\/192313"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=192311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=192311"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=192311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}