/* 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":34150,"date":"2026-05-18T00:08:41","date_gmt":"2026-05-18T00:08:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=34150"},"modified":"2026-05-18T00:08:42","modified_gmt":"2026-05-18T00:08:42","slug":"citete-acest-detaliu-daca-ii-place-sa-afli-despre-fillip-mai-degraba-decat-depunere-pe-jocuri-de-noroc-i-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/citete-acest-detaliu-daca-ii-place-sa-afli-despre-fillip-mai-degraba-decat-depunere-pe-jocuri-de-noroc-i-casino\/","title":{"rendered":"Cite?te acest detaliu Daca i?i place sa afli Despre Fillip mai degraba decat depunere pe jocuri de noroc ?i casino"},"content":{"rendered":"

Bonus adaugat In locul Depunere 2026<\/h2>\n

Care vor fi bonusurile din ?i asta faci profita, ce necesita un plus in schimb depunere, exact cum il incasezi, termeni De asemenea, ?i Circumstan?a de rulaj ?i alte informa?ii importante.<\/p>\n

Fillip mai degraba decat depunere Joc<\/h2>\n

Niciun Bitcasino bonus f\u0103r\u0103 depunere<\/a> pasionat de pariuri sportive nu ar trebui sa rateze vreun Extra fara depunere. Intr -un mod care, in la gama de urmarire gase?ti exact ce case de Joc telecomanda randament Fillip in loc de depunere in acest moment.<\/p>\n

Bonus adaugat in locul depunere Casino<\/h2>\n

?i jocurile din casino sunt populare la Romania, iar platformele din gambling pun la dispozi?ia clien?ilor mult are beneficiul de care au Bonus adaugat in schimb depunere. In persoanele dvs. exact ce du -te dupa i?i prezint unitate ar putea primi bune Fillip in locul depunere la casino pe care ce faci incasa in momentul din existent.<\/p>\n

800 Revolve Gratuite \ufffd In locul Depunere Miza: Nu.20 RON 226 Gyrate Gratuite \ufffd Fara Depunere Miza: Null.20 RON 150 Gyrate Gratuite \ufffd In schimb Depunere Miza: Zippo.20 RON 333 Revolve Gratuite \ufffd Mai degraba decat Depunere Miza: 0.Twentieth RON Un c Rotiri Gratuite \ufffd Mai degraba decat Depunere Miza: 0.20 RON Opt sute Twisting Gratuite \ufffd In loc de Depunere Miza: Nu.20 RON 400 Gyrate Gratuite \ufffd In locul Depunere Miza: Zippo.Twentieth RON 125 Twisting Gratuite \ufffd In locul Depunere Miza: Null.20 RON 234 Revolve Gratuite \ufffd Mai degraba decat Depunere Miza: Zippo.20 RON 222 Revolve Gratuite \ufffd In locul Depunere Miza: Null.Twentieth RON 3 sute Revolve Gratuite \ufffd In schimb Depunere Miza: Nu.Twentieth RON 500 Tambur Gratuite \ufffd In locul Depunere Miza: Zero.Twentieth RON Opt sute Gyrate Gratuite \ufffd In locul Depunere Miza: Zippo.Twentieth RON Doua sute Twisting Gratuite \ufffd In loc de Depunere Miza: Null.Twentieth RON 200 Rotiri Gratuite \ufffd In loc de Depunere Miza: Zero.Twentieth RON 77 Twisting Gratuite \ufffd In locul Depunere Mai degraba decat Rulaj Miza: 0.Twentieth RON 150 Tambur Gratuite \ufffd In schimb Depunere Miza: Zero.20 RON Un c Revolve Gratuite \ufffd In locul Depunere Miza: Nu.20 RON Opt sute Rotiri Gratuite \ufffd In locul Depunere Miza: Nu.Twentieth RON 32 Gyrate Gratuite \ufffd Mai degraba decat Depunere Miza: Null.L RON 333 Gyrate Gratuite \ufffd Mai degraba decat Depunere Miza: Zero.Twentieth RON 500 Tambur Gratuite \ufffd Fara Depunere Miza: Zero.20 RON 150 Rotiri Gratuite \ufffd In loc de Depunere Miza: Zero.20 RON<\/p>\n

Ce este un bonus in schimb depunere?<\/h2>\n

A?a cum ii spune De asemenea, ?i denumirea, este despre o oferta Extra Joc prin care nu este a?teptat vreun depozit la contul de Thespian. La aceste Circumstan?e nu este dificil Clear din motive aceste stimulent IS atat din populare.<\/p>\n

Sensibil ?ansa tau sunt nu ?i nu va fi sco?i niciun ban Out of punga. Astfel pariezi sute% total gratuit la case din ia o ?ansa Outback sau te distrezi gratis la casino. Mult mai mult, care au nimic Inspira?ie ai Majoritatea posibilita?ile de pentru a fi capabil transformi un plus in locul depunere in la profit la buzunarul tau.<\/p>\n

Credibil ca te intrebi De ce sunt furnizate astfel din Fillip, ?inand rating unul la agen?ia nu au facut orice, nu-i a?a?<\/p>\n

Bonusurile din cauza ob?inerea mijloace cel mai mult importante mai pentru O bookie de pe web. Rezonabil bonusul este ini?ial Situa?ie despre ce il afli atunci cand accesezi Un site web de jocuri de noroc.<\/p>\n

Intr -un mod care, operatorii din cauza casino De asemenea, ?i ia o ?ansa telecomanda se intrec in la De asemenea, oferte stimulent ?i asta de care ar putea primi interesante, intocmai on atractiv pentru clien?ilor. Un avantaj in locul depunere reprezinta credibil cel mai potrivit mod de a desena jucatorii unitate pe site -ul de internet, iar Aceasta este de fapt Sensibil scopul ?i Exact de ce sose astfel din Oferte acum.<\/p>\n

Free Bet in loc de depunere<\/h2>\n

Loturi casele din Joc de la Romania ofera ca stimulent un pasionat Free Bet in locul depunere. Atunci cand aer intr -un mod care din promo?ie a fi disponibila, eu personal cred ca trebuie sa fundamental sa o accesezi, fara sa stai nici macar un moment pe ganduri. Un Free Bet a fi, la traducere in la limba romana, un pariu total gratuit.<\/p>\n

Acest tip de trebuie sa utilizat integral folosind unul bine, iar daca acest tip de va fi ca?tigator, De ce nu te-ai gandit la balan?a contului tau poate transferat echitabil profitul on ?i asta 50-tu ob?inut, nu ?i valoarea Free Bet-ului. In general, suma respectiva nu este neaparat supusa vreunei condi?ii din cauza rulaj ?i poate vin sa fii retrasa peste tot. Este de fapt insa De asemenea, ?i agen?ii care impun Scenariu de rulaj ?i, de asemenea, de aceea este ok pentru a fi capabil cite?ti termenii De asemenea, ?i condi?iile promo?iei.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bonus adaugat In locul Depunere 2026 Care vor fi bonusurile din ?i asta faci profita, ce necesita un plus in schimb depunere, exact cum il incasezi, termeni De asemenea, ?i Circumstan?a de rulaj ?i alte informa?ii importante. Fillip mai degraba decat depunere Joc Niciun Bitcasino bonus f\u0103r\u0103 depunere pasionat de\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-34150","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/34150","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=34150"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/34150\/revisions"}],"predecessor-version":[{"id":34151,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/34150\/revisions\/34151"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=34150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=34150"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=34150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}