/* 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":142804,"date":"2026-06-12T10:12:30","date_gmt":"2026-06-12T10:12:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=142804"},"modified":"2026-06-12T10:12:30","modified_gmt":"2026-06-12T10:12:30","slug":"wildz-casino-tilbud-og-kampanjer-2025-for-norge","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/wildz-casino-tilbud-og-kampanjer-2025-for-norge\/","title":{"rendered":"Wildz Casino Tilbud og Kampanjer 2025 for Norge"},"content":{"rendered":"
For norske spillere som s\u00f8ker et moderne casino med gode fordeler, er Wildz Casino tilgjengelig. Plattformen er tilpasset for det skandinaviske markedet og tilbyr et stort spillutvalg sammen med en oversiktlig og rikelig bonusordning. I 2025 har Wildz forberedt en rekke gode bonuser for b\u00e5de nye spillere og erfarne gjengangere fra Norge. Denne artikkelen presenterer alle bonuskodene, kampanjene og lojalitetsfordelene du m\u00e5 kjenne til, slik at du kan f\u00e5 mest mulig ut av spillet ditt.<\/p>\n
Wildz Casino har fra dag \u00e9n rettet seg p\u00e5 den norske spilleren. Det opplever du p\u00e5 alt fra spillutvalget til betalingsm\u00e5tene og brukerst\u00f8tten. De opererer under en malta lisens, noe som tilbyr et stabilt rammeverk for norske brukere. Kasinoet har et rykte p\u00e5 seg for hurtige utbetalinger, som regel p\u00e5 under ti minutter med e-l\u00f8sninger. Spillportef\u00f8ljen inneholder titusenvis av titler fra produsenter som NetEnt, Play’n GO, Pragmatic Play og Quickspin. Brukergrensesnittet er simpelt \u00e5 forst\u00e5 seg p\u00e5, og det kj\u00f8rer like godt p\u00e5 mobil. For en nybegynner spiller i Norge er Wildz et sterkt valg, spesielt p\u00e5 grunn av velkomstbonusen som ligger klar.<\/p>\n
Hvilke spill du velger, betyr mye n\u00e5r du skal oppfylle omsetningskrav. Wildz sitt store bibliotek gir deg mange valgmuligheter. Spilleautomater fra leverand\u00f8rer som Play’n GO, NetEnt og Pragmatic Play er som regel det sikreste valget. De teller vanligvis for 100% og finnes i alle mulige varianter, fra lav til h\u00f8y volatilitet. Foretrekker du \u00e5 spille forsiktig, kan du se etter automater med h\u00f8y RTP (returfrekvens) for \u00e5 bevare bankrollen over flere spinn. Vi anbefaler \u00e5 holde deg unna bordspill og live casino n\u00e5r du spiller med bonus, med mindre vilk\u00e5rene sier noe annet. Deres lave bidrag kan nemlig bremse fremgangen din betraktelig.<\/p>\n
Wildz innser at lojale spillere fortjener like stor oppmerksomhet som nye. Derfor har de et stort utvalg av kampanjer som g\u00e5r \u00e5ret rundt. Her finnes det ukentlige reload-tilbud, cashback-tilbud og turneringer med store premiepotter. S\u00e6rlig popul\u00e6re er “Wildz Spins” og “Wildz Races”, der du konkurrerer om premier avhengig av hvor mye du spiller. Liker du \u00e5 teste nye spill, f\u00e5r du jevnlige tilbud med gratisspinn p\u00e5 nyutgitte spilleautomater. Alt dette behandles enkelt direkte i din konto, ofte uten at du m\u00e5 \u00e5 fylle inn noen koder.<\/p>\n
En fast inventar i Wildz Casino er kampanjene assosiert med bestemte ukedager. “Wildz Wednesday” er et velkjent navn, og kan inneholde alt fra reload-bonuser til ekstra gratisspinn eller egne turneringer. I helgene kan det komme “Weekend Boosts”, og kanskje en “Monday Madness”. Disse kortsiktige tilbudene skaper en ekstra spenning til spillingen og gir noe tilbake til de som spiller regelmessig. For \u00e5 v\u00e6re oppdatert b\u00f8r du bes\u00f8ke kampanjesiden p\u00e5 Wildz jevnlig, eller melde deg p\u00e5 e-postlisten deres. Da g\u00e5r du ikke glipp noen gode tilbud.<\/p>\n
Velkomsttilbudet hos Wildz er bygget opp som en niv\u00e5bonus over de fire innskuddene. Hensikten er \u00e5 gi nye medlemmer ekstra spillekapital og mange gratis spinn. Hvor mye du f\u00e5r til sammen, avhenger naturligvis av innskuddsbel\u00f8pene dine. Vilk\u00e5rene for gjennomspilling tilsvarer det du opplever andre steder i industrien. Norske spillere b\u00f8r notere seg at bonusen ofte inkluderer gratisspinn p\u00e5 noen av de mest ettertraktede automatene. Det er en fin m\u00e5te \u00e5 utforske sortimentet p\u00e5. Du beh\u00f8ver som regel ingen egen kode for \u00e5 aktivere bonusen, men det l\u00f8nner seg alltid \u00e5 ta en ekstra titt p\u00e5 tilbudssiden f\u00f8r du deponerer penger.<\/p>\n
Det f\u00f8rste innskuddet ditt blir vanligvis matchet 100% opp til en bestemt sum. I tillegg f\u00e5r du et antall gratis spinn. Tenk deg du setter inn 1000 kroner. Da kan du ende opp med 2000 kroner \u00e5 spille for, i tillegg til kanskje 200 gratisspinn p\u00e5 en popul\u00e6r spilleautomat. Frispinnene blir ofte gitt ut i portioner over flere dager. For \u00e5 kunne ta ut mulige vinster fra bonusen, m\u00e5 du omsette bonusbel\u00f8pet et bestemt antall ganger, for eksempel 27 ganger, innen en fastsatt frist. Dette f\u00f8rste steget gir deg en reell mulighet til \u00e5 bygge opp en god spillebank.<\/p>\n
Wildz gir deg ikke bare god start, de bel\u00f8nner deg for \u00e5 bli v\u00e6rende. P\u00e5 andre og tredje innskudd venter det ofte en matchbonus p\u00e5 50% eller 75%, i tillegg til enda flere gratisspinn. N\u00e5r du legger alle disse tilbudene sammen, f\u00e5r du mye mer spilletid og flere fors\u00f8k p\u00e5 \u00e5 treffe noe stort. Det kan v\u00e6re smart \u00e5 tenke gjennom innskuddene dine for \u00e5 f\u00e5 maksimal nytte av hele pakken. De samme betingelsene for omsetning og maksinnsats er gjeldende ogs\u00e5 her, s\u00e5 se alltid bonusinformasjonen n\u00f8ye.<\/p>\n
For \u00e5 nyte bonusene p\u00e5 Wildz Casino, m\u00e5 du kjenne til reglene som er relevante. Disse vilk\u00e5rene, ofte omtalt som “bonusvilk\u00e5r”, beskriver alt fra gjennomspillingskrav og innsatsgrense til tidsfrister og spillene som gir uttelling. Wildz er dyktige p\u00e5 \u00e5 v\u00e6re tydelige her, og informasjonen er lett \u00e5 finne. Et spillekrav p\u00e5 27x indikerer at du m\u00e5 satse bonusbel\u00f8pet 27 ganger f\u00f8r du kan kreve gevinster. Hvis du overser disse detaljene, kan du risikere at bonusen og alle gevinster fra den blir fjernet. En grundig lesing er derfor et krav.<\/p>\n
Det er noen punkter norske spillere burde v\u00e6re ekstra bevisste p\u00e5. For det f\u00f8rste har mange bonuser en \u00f8vre grense p\u00e5 70 kroner per omdreining n\u00e5r du deltar med bonuspenger. Spiller du for mer, kan hele bonusen forsvinne. For det neste gir uttelling ikke alle spill like mye mot spillekravet. Slots regnes som regel for 100%, mens bordspill som rulett og blackjack ofte regnes ekstremt lite eller ikke i det hele tatt. For det siste har gratisrunder ofte en h\u00f8yeste gevinstgrense, for tilfelle p\u00e5 1000 kroner. \u00c5 v\u00e6re klar over disse konkrete reglene er avgj\u00f8rende til en smertefri bonusopplevelse.<\/p>\n
Wildz sin lojalitetsklubb, omtalt som Z Loyalty Club, er et av de mest detaljerte du finner. Systemet er basert av romreiser og har flere niv\u00e5er, fra “Shooting Star” helt opp til “Cosmic Whale”. Du klatrer i gradene ved \u00e5 tjene “Z Points” n\u00e5r du deltar. For hvert niv\u00e5 du oppn\u00e5r, aktiveres det nye goder. Du kan motta h\u00f8yere cashback, invitasjoner til spesielle bonuser, raskere utbetalinger, og til og med en egen kontomanager p\u00e5 de \u00f8verste trinnene. Programmet fungerer i bakgrunnen. Du trenger ikke \u00e5 registrere deg, fordelene kommer av seg selv mens du deltar.<\/p>\n
N\u00e5r du som norsk spiller kommer deg opp i de mellomste og mest avanserte niv\u00e5ene i Z Loyalty Club, blir fordelene mer tydelige. En hver m\u00e5ned cashback p\u00e5 opptil 20% av nettotapet ditt tjener som en god st\u00f8tte og kan forlenge spilletida di betydelig. Wildz tilbyr spesielle “Zuper Spins” og “Zuper Bonus”-tilbud kun til de faste medlemmene. Den ukentlige cashbacken, som blir tilgjengelig fra et visst niv\u00e5, er sv\u00e6rt popul\u00e6r. Systemet er designet for \u00e5 f\u00e5 deg til \u00e5 oppleve deg viktig, og det tilf\u00f8rer en ekstra lyst ved hver gangs spilling.<\/p>\n