/* 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":152078,"date":"2026-06-14T01:57:29","date_gmt":"2026-06-14T01:57:29","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=152078"},"modified":"2026-06-14T01:57:29","modified_gmt":"2026-06-14T01:57:29","slug":"er-det-energy-casino-service-responsiv-i-norge","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/er-det-energy-casino-service-responsiv-i-norge\/","title":{"rendered":"Er det Energy Casino Service Responsiv i Norge?"},"content":{"rendered":"
For norske spillere er god kundeservice like avgj\u00f8rende som et stort spillutvalg. Energy Casino har etablert seg som et popul\u00e6rt valg, men p\u00e5 hvilken m\u00e5te fungerer i praksis hjelp n\u00e5r du trenger den? Vi tar en grundig titt p\u00e5 alle aspekter ved Energy Casinos kundest\u00f8tte, fra hvor raskt de svarer til m\u00e5ten de takler norske s\u00e6rtrekk. Vi g\u00e5r gjennom alle m\u00e5ter \u00e5 kontakte dem, ventetider, spr\u00e5k og hvorvidt de forst\u00e5r de typiske sp\u00f8rsm\u00e5lene fra en nordmann.<\/p>\n
Energy Casino disponerer de vanlige kanalene \u00e5 kontakte kundeservice p\u00e5, i likhet med de fleste andre casinoer. Du oppdager live chat, e-post og en grundig FAQ-seksjon. Plattformen legger tydelig fokus p\u00e5 rask hjelp, der live chat er f\u00f8rstevalget for de fleste. Mer inng\u00e5ende saker kan behandles p\u00e5 mail. FAQ-delen dekker et bredt spekter av emner, fra hvordan du oppretter konto til vilk\u00e5rene for bonuser, og er ofte et godt sted \u00e5 starte.<\/p>\n
En omstendighet \u00e5 v\u00e6re klar over er at Energy Casino anvender engelsk som servicespr\u00e5k. Enda selve casinoet er p\u00e5 norsk, vil samtalen med supporten praktisk talt alltid foreg\u00e5 p\u00e5 engelsk. Det betyr at norske spillere b\u00f8r v\u00e6re noenlunde komfortable med engelsk, men agentene er vant til \u00e5 snakke lettfattelig og tydelig for \u00e5 hjelpe kunder fra mange land.<\/p>\n
Hvis du ser n\u00e6rmere p\u00e5 hver kanal, oppdager du at systemet er veloverveid. Kunnskapsbasen er langt mer enn en enkel liste med sp\u00f8rsm\u00e5l. Den er en systematisk ressurs som de kontinuerlig oppdaterer med ny informasjon og svar p\u00e5 nye typer henvendelser. Det viser at selskapet har som m\u00e5l \u00e5 gi deg svar slik at du ikke n\u00f8dvendigvis m\u00e5 vente p\u00e5 en agent, men uten at de gjemmer viktige detaljer. Denne tiln\u00e6rmingen er avgj\u00f8rende til en god serviceopplevelse.<\/p>\n
Du kan likeledes n\u00e5 dem via sosiale medier, selv om disse kanalene hovedsakelig brukes til nyheter og tilbud. Allikevel kan du stille sp\u00f8rsm\u00e5l i kommentarfeltet eller sende en direktemelding, spesielt for mindre presserende ting. Det gir et ekstra lag av tilgjengelighet som mange spillere i dag ser som en selvf\u00f8lge, og det utfyller de mer formelle hjelpemidlene p\u00e5 nettsiden.<\/p>\n
Live chat er ofte det beste redskapet n\u00e5r du \u00f8nsker hjelp umiddelbart. Hos Energy Casino er denne funksjonen tilgjengelig d\u00f8gnet rundt, syv dager i uken. Denne tilgjengeligheten er avgj\u00f8rende for deltakere som kan v\u00e6re aktive n\u00e5r som helst. I realiteten er tiden du m\u00e5 vente for \u00e5 n\u00e5 en agent som regel minimal, som regel under ett minutt i vanlig drift. Det tyder p\u00e5 at de har godt med folk p\u00e5 jobb.<\/p>\n
N\u00e5r du omsider n\u00e5r en agent, er de som regel effektive og fokusert p\u00e5 \u00e5 finne en avklaring. De har tilgang til systemene som trengs for \u00e5 l\u00f8se vanlige foresp\u00f8rsler om transaksjoner, bonustilbud eller feilmeldinger. De f\u00f8lger ofte opp for \u00e5 sikre at alt ble fikset. Denne umiddelbare og personlige dialogen er et klart tegn p\u00e5 at casinoet tar tilgjengelighet p\u00e5 kritisk vis.<\/p>\n
Chat-funksjonen i seg selv er veldesignet og lett \u00e5 anvende. Den tillater deg \u00e5 laste opp filer, som bilder eller dokumenter for identitetskontroll, rett i samtalevinduet. Dette reduserer mye tid i forhold til \u00e5 skulle g\u00e5 over til e-post. Du kan ogs\u00e5 f\u00e5 tilsendt en utskrift over samtalen tilsendt p\u00e5 e-post, noe som er sv\u00e6rt nyttig hvis du i ettertid m\u00e5 forf\u00f8lge noe en agent sa.<\/p>\n
Erfaringer fra spillere tyder p\u00e5 at kvaliteten p\u00e5 hjelpen forblir h\u00f8y ogs\u00e5 om natten og i weekendene. Det indikerer at kundest\u00f8tten er godt koordinert p\u00e5 tvers av tidsbelter. Dette er ekstra avgj\u00f8rende for norske spillere som muligens er aktive p\u00e5 uvanlige klokkeslett. Den uavbrutte tilgjengeligheten fremkaller en opplevelse av trygghet.<\/p>\n
For henvendelser som trenger dokumentasjon eller en mer omfattende forklaring, er e-post et foretrukket valg. Energy Casino sin e-postadresse er support@energycasino.com. Svartiden p\u00e5 e-post kan avvike mer enn for live chat. If\u00f8lge dem sier de at det kan ta opptil 24 timer, men mange spillere rapporterer at de f\u00e5r svar fortere, spesielt p\u00e5 enkle foresp\u00f8rsler.<\/p>\n
Det eksisterer ogs\u00e5 et kontaktskjema p\u00e5 nettsiden som videresender henvendelsen din til riktig avdeling. Ulempen med e-post er at det ikke er en umiddelbar samtale, noe som kan dra ut l\u00f8sningstiden p\u00e5 innviklede problemer. Fordelen er at du f\u00e5r anledning til \u00e5 forklare problemet ditt grundig og strukturert, og du kan inkludere bilder eller dokumenter.<\/p>\n
For \u00e5 f\u00e5 mest effektiv hjelp p\u00e5 e-post, l\u00f8nner det seg \u00e5 ta med all relevant informasjon fra f\u00f8rste stund. Tenk p\u00e5 brukernavn, en klar beskrivelse av hva som skjedde, eventuelle transaksjonsnumre og n\u00e5r det inntraff. N\u00e5r en henvendelse er s\u00e5 utfyllende, f\u00e5r den ofte et kjappere og mer presist svar, fordi agenten unng\u00e5r \u00e5 sende flere meldinger for \u00e5 skaffe seg grunnleggende fakta.<\/p>\n
Kontaktskjemaet fungerer som en intelligent ruter. Det dirigerer sp\u00f8rsm\u00e5l om bonuser direkte til bonusavdelingen og tekniske problemer til IT-folkene. Dette s\u00f8rger for at henvendelsen din kommer hos de riktige personene med en gang, noe som kan korte ned den totale l\u00f8sningstiden merkbart. Det er et illustrasjon p\u00e5 hvordan Energy Casino bruker teknologi for \u00e5 gj\u00f8re kundereisen enklere bak kulissene.<\/p>\n
En bra FAQ-seksjon viser at et casino er fremoverlent. Energy Casino har en stor og godt strukturert kunnskapsbase. Den er inndelt i fornuftige kategorier som “Konto”, “Bank”, “Bonus” og “Spill”. Her finner b\u00e5de uerfarne og erfarne spillere raske svar p\u00e5 de mest vanligste sp\u00f8rsm\u00e5lene, fra hvordan du tar ut penger til reglene for omsetningskrav.<\/p>\n
Ved \u00e5 satse i en solid selvhjelpsl\u00f8sning senker casinoet presset p\u00e5 sin umiddelbare kundeservice og skaffer spillerne evne til \u00e5 finne svar med en gang. Informasjonen er klar og detaljert. For den norsktalende spilleren er det essensielt \u00e5 huske at denne delen ogs\u00e5 er p\u00e5 engelsk, men spr\u00e5ket er lett og rett frem.<\/p>\n
Innholdet i FAQ-en dekker ikke bare hverdagslige prosesser, men ogs\u00e5 retningslinjer. For eksempel ser du grundige forklaringer p\u00e5 politikk for ansvarlig spilling, retningslinjer for rettferdig spill og slik kasinoet h\u00e5ndterer personvern. Dette graden av gjennomsiktighet bygger tillit og kan ofte oppl\u00f8se usikkerhet f\u00f8r det vokser til en klage.<\/p>\n
En stadig ignorert fordel med en bra kunnskapsbase er at den hjelper spillere med \u00e5 formulere problemet mer presist, selv om de til slutt m\u00e5 kontakte support. Ved \u00e5 gjennomg\u00e5 tilknyttede artikler kan brukeren tilegne seg terminologien og finne ut presist hva som er galt. Det f\u00f8rer til en mye mer produktiv dialog med en live agent. Den fungerer som en uvurderlig forberedelse.<\/p>\n