/* 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":151540,"date":"2026-06-13T17:24:04","date_gmt":"2026-06-13T17:24:04","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=151540"},"modified":"2026-06-13T17:24:04","modified_gmt":"2026-06-13T17:24:04","slug":"robocat-casino-hvordan-du-henter-bonuser-og-bruker-kampanjekoder-i-norge","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/robocat-casino-hvordan-du-henter-bonuser-og-bruker-kampanjekoder-i-norge\/","title":{"rendered":"Robocat Casino \u2013 Hvordan du henter bonuser og bruker kampanjekoder i Norge"},"content":{"rendered":"
\n\"Best<\/p>\n

For norske kasinospillere er bonuser ofte like viktige som selve spillet https:\/\/casinorobocats.com\/no-no\/<\/a>. Denne veiledningen viser deg hvordan du f\u00e5r tak i de beste tilbudene p\u00e5 Robocat Casino. Vi tar for oss alt, fra hvor du finner kampanjekoder som faktisk fungerer, til hvordan du h\u00e5ndterer omsetningskrav uten \u00e5 f\u00e5 hodepine.<\/p>\n

Vanlige feil og hvordan \u00e5 unng\u00e5 dem<\/h2>\n

Flere spillere i Norge gj\u00f8r de liknende tabbene med bonuser. Den mest utbredte er \u00e5 ikke lese vilk\u00e5rene n\u00f8ye. En neste typisk feil er \u00e5 delta med bonuspenger p\u00e5 spill som ikke medregnes mot omsetningen. Da \u00f8dsler du bare bort tiden din.<\/p>\n

Andre fell omfatter for store innsatser som bryter regelen om maks innsats, eller at tidsfristen bare overses. Du forhindrer disse problemene ved \u00e5 lese vilk\u00e5rene en gang til f\u00f8r du spiller, og ved \u00e5 v\u00e6re oppmerksom p\u00e5 hvor mye du har omsatt.<\/p>\n

Hvordan finne og bruker du kampanjekoder<\/h2>\n

En kampanjekode er vanligvis n\u00f8kkelen til en spesiell bonus. Du kan oppdage disse kodene p\u00e5 Robocat Casinos spesifikke kampanjeside, p\u00e5 dyktige casino-nettsteder eller via e-postnyhetsbrev. For \u00e5 f\u00e5 de mest fordelaktige tilbudene m\u00e5 du v\u00e6re oppmerksom.<\/p>\n

N\u00e5r du har en kode, g\u00e5r du frem slik:<\/p>\n

    \n
  1. Logg inn p\u00e5 kontoen din hos Robocat Casino, eller etabler en ny konto.<\/li>\n
  2. G\u00e5 til “Kasse” eller “Bonuser” p\u00e5 siden.<\/li>\n
  3. S\u00f8k etter et felt der du kan fylle inn en kampanjekode og tast den inn.<\/li>\n
  4. Aksepter tilbudet og rett deg etter instruksene for \u00e5 starte bonussen.<\/li>\n<\/ol>\n

    Det er lurt \u00e5 forsikre deg om at bonussen kommer frem p\u00e5 kontoen din f\u00f8r du starter \u00e5 spille.<\/p>\n

    Metoder for \u00e5 tilfredsstille omsetningskrav effektivt<\/h2>\n

    \u00c5 spille gjennom et betydelig bel\u00f8p kan f\u00f8les overveldende. Men med en strategi er det oppn\u00e5elig. Velg spill som har gunstig utbetalingsprosent og som teller fullt ut mot kravet. Spilleautomater beregnes som regel 100%, mens blackjack og rulette ofte teller med bare 10 eller 20 prosent.<\/p>\n

    Vi foresl\u00e5r at du velger automater med moderat eller kraftig varians. Slik balanserer du risikoen. Unng\u00e5 spill som ikke teller i det hele tatt. Spill med et stabilt tempo og bestem oppn\u00e5elige m\u00e5l for hver \u00f8kt, s\u00e5 unng\u00e5r du \u00e5 fors\u00f8ke \u00e5 vinne tilbake tap for raskt.<\/p>\n

    Optimaliser bonusverdien med tiden<\/h2>\n

    Den betydelige fordelen med en god bonusstrategi kommer over tid som tiden g\u00e5r. Ikke kun stopp ved velkomstbonusen. Finn andre tilbud som reload-bonuser, gratisspinn for lojale spillere og bel\u00f8nningsprogrammer.<\/p>\n

    Abonner p\u00e5 Robocat Casinos nyhetsbrev og se p\u00e5 kampanjesiden deres hyppig. En spiller som behersker reglene og spiller strategisk, f\u00e5r mye mer ut av casinoet enn noen som kun tar imot det f\u00f8rste tilbudet de ser.<\/p>\n

    FAQ<\/h2>\n

    Hvor regelmessig oppdaterer Robocat Casino sine bonuskoder?<\/h3>\n

    Robocat Casino fornyer tilbudene sine jevnlig. Som regel skjer det ukentlig, eller i anledning bestemte h\u00f8ytider. For \u00e5 v\u00e6re garantert p\u00e5 at du ikke g\u00e5r glipp av noe, b\u00f8r du registrere deg p\u00e5 nyhetsbrevet deres og bes\u00f8ke “Promotions”-omr\u00e5det p\u00e5 nettsiden. Av og til finner du ogs\u00e5 unike koder p\u00e5 andre casino-sider du f\u00f8ler deg trygg p\u00e5.<\/p>\n

    Er det mulig \u00e5 kombinere flere kampanjekoder samtidig?<\/h3>\n

    Nei, dessverre, det er som regel ikke mulig \u00e5 bruke flere kampanjekoder p\u00e5 en gang hos Robocat Casino. Hver kode m\u00e5 brukes for seg. Du kan vanligvis bare aktivere en ny bonus n\u00e5r den forrige er avsluttet. Les alltid detaljene for det spesifikke tilbudet for \u00e5 v\u00e6re sikker.<\/p>\n

    Hva skjer hvis jeg glemmer \u00e5 legge inn kampanjekoden f\u00f8r innskudd?<\/h3>\n

    Da som regel komplisert. Du kan vanligvis ikke legge til en kode etter at et innskudd er gjort uten bonus. I de fleste tilfeller m\u00e5 du vente til til eventuelle bonuspenger er brukt, eller ta kontakt med brukerst\u00f8tten og foresp\u00f8rre om de kan gj\u00f8re et unntak. Av den grunn en god vane \u00e5 fylle inn koden f\u00f8r du trykker p\u00e5 send inn innskudd.<\/p>\n

    Er bonuser fra Robocat Casino fornuftige med omsetningskravene?<\/h3>\n

    Ja, det kan de v\u00e6re, hvis du spiller klokt. Trikset er \u00e5 velge bonuser med akseptable omsetningskrav, for eksempel under 40x. Spill ogs\u00e5 p\u00e5 de spillene som teller 100% mot kravet. Unng\u00e5 \u00e5 ta imot bonuser med usedvanlig h\u00f8ye krav eller veldig kort tid p\u00e5 deg, med mindre du vet hva du gj\u00f8r.<\/p>\n

    Hvilke titler teller mest mot omsetningskravet?<\/h3>\n

    P\u00e5 Robocat Casino er det som regel spilleautomater som teller 100% mot omsetningskravet. Tradisjonelle bordspill som blackjack og rulette teller ofte betydelig mindre, for eksempel 10% eller 20%. Du finner alltid en liste i bonusvilk\u00e5rene som viser n\u00f8yaktig hvilke spill som teller, og hvor mye.<\/p>\n

    Kan jeg ta ut pengene mine n\u00e5r omsetningskravet er oppfylt?<\/h3>\n

    Absolutt. N\u00e5r du har oppfylt alle kravene for bonussen, inkludert omsetningskravet, blir bonuspengene dine ekte penger som du kan be om overf\u00f8rt. V\u00e6r oppmerksom p\u00e5 at eventuelle gevinster du har opparbeidet p\u00e5 veien ogs\u00e5 blir st\u00e5ende. Etter det g\u00e5r du bare til uttaksdelen og f\u00f8lger instruksene der.<\/p>\n

    Forst\u00e5 bonusstrukturen ved Robocat Casino<\/h2>\n

    Robocat Casino har et omfattende utvalg bonuser for nybegynnere og erfarne spillere. Du finner velkomstpakker, gratisspinn og bonuser ved innskudd. Hvert tilbud har sine unike regler. Disse reglene gjelder omsetningskrav og hvor mye du kan satte. Les dem f\u00f8r du sier ja til noe.<\/p>\n

    N\u00e5r du forst\u00e5r hvordan systemet fungerer, unng\u00e5r du ubehagelige overraskelser. Det \u00f8ker ogs\u00e5 sjansene dine for \u00e5 faktisk kunne ta ut gevinsten. Et godt tips er \u00e5 lete etter bonuser med lave omsetningskrav og enkle spilleregler. Da har du bedre forutsetninger for et godt utfall.<\/p>\n

    Vesentlige vilk\u00e5r \u00e5 v\u00e6re aktsom p\u00e5<\/h2>\n

    \"The<\/p>\n

    Alle bonuser har vilk\u00e5r og betingelser. Disse er mer enn bare sm\u00e5skrift. De avgj\u00f8r om du f\u00e5r utbetalt penger eller ikke. De tre viktigste tingene \u00e5 forst\u00e5 er omsetningskrav, maks innsats og tidsfrister.<\/p>\n

    \"Golden<\/p>\n