/* 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":141508,"date":"2026-06-12T09:10:59","date_gmt":"2026-06-12T09:10:59","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=141508"},"modified":"2026-06-12T09:10:59","modified_gmt":"2026-06-12T09:10:59","slug":"op-welke-manier-je-contact-krijgt-met-zeturf-support-voor-snelle-hulp-in-nederland","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/op-welke-manier-je-contact-krijgt-met-zeturf-support-voor-snelle-hulp-in-nederland\/","title":{"rendered":"Op welke manier je contact krijgt met Zeturf Support voor snelle hulp in Nederland"},"content":{"rendered":"
\n\"%%title%%\"
\n\"ZEturf<\/p>\n

Iedereen die in Nederland regelmatig online diensten gebruikt, weet hoe fijn een klantenservice is die makkelijk en makkelijk te bereiken is. Denk aan Zeturf, een populair platform voor woningzoekers en verhuurders. Stel je voor, je hebt een probleem over een advertentie, stuit op een technisch manco aan of kunt niet in je account. Dan wens je je weten waar je terechtkunt. Ik heb alle opties om Zeturf te bereiken voor je op een rijtje gezet. Zo weet je precies welk kanaal je wanneer het beste kunt gebruiken, en wat je kunt verwachten.<\/p>\n

Om welke reden een top klantenservice van Zeturf belangrijk is<\/h2>\n

Op een vastgoedsite als Zeturf kan er allerlei tussendoor komen. Misschien kun je door een technische storing geen bezichtiging inplannen voor een droomhuis. Of deur. Of de voorwaarden bij een huurcontract zijn onduidelijk. Op zulke momenten is een hulp van de klantenservice goud waard. Een team dat direct reageert, lost niet alleen je vraagstuk op. Het zorgt er ook voor dat je het platform gelooft en blijft gebruiken. Uit eigen ervaring merk ik dat een bedrijf dat zijn klantenservice op orde heeft, vaak ook zijn diensten goed houdt.<\/p>\n

planning voor je gesprek: wat heb je benodigd<\/h2>\n

Als je belt, mailt of het formulier invult, een goede voorbereiding bespaart tijd. Haal alle informatie bij elkaar die met je vraag te maken heeft. Denk aan je inloggegevens, het nummer van de advertentie, screenshots van foutmeldingen en eerdere e-mails over hetzelfde onderwerp. Ga je een technisch probleem melden? Schrijf dan precies op welke handelingen je verrichtte toen de fout optrad. Met deze informatie paraat help je de medewerker meteen op weg en kom je veel sneller tot een oplossing.<\/p>\n

Hoe aan te pakken bij technische storingen op de Zeturf website of app<\/h2>\n

Niets is zo frustrerend als een website of app die niet functioneert. Een advertentie die niet laadt, foto\u2019s die niet verzenden, of een app die steeds vastloopt. Voordat je de klantenservice inschakelt, kun je zelf een paar eenvoudige dingen uitproberen. Herlaad de pagina, sluit de app helemaal af en start hem opnieuw op, of controleer je internetverbinding. Functioneert het op een andere browser of een ander apparaat wel? Blijft het probleem voortduren, dan is het tijd om contact op te nemen. Benut hiervoor het contactformulier en kies de categorie \u2018Technisch probleem\u2019. Voeg je screenshots en systeeminformatie bij, dan kan het team meteen aan de slag.<\/p>\n

De formele contactkanalen van Zeturf samengevat<\/h2>\n

Zeturf heeft een paar duidelijke opties om contact te leggen. De voornaamste vind je op hun website, onder \u2018Contact\u2019 of \u2018Help\u2019 onderaan de pagina. Daar staat een online formulier. Voor algemene vragen kun je ook een e-mail sturen. Heb je iets dat dringend is of lastig uit te leggen? Dan gebruik je de telefoon. Het ligt van je vraag af welk kanaal het beste is. Een simpele vraag leg je voor via het formulier, voor een ingewikkeld verhaal bel je.<\/p>\n

Het digitale contactformulier toepassen<\/h3>\n

Voor de meeste gangbare vragen is het contactformulier een prima eerste keuze. Je noteert je gegevens in en kiest een categorie voor je vraag, zoals \u2018Technisch probleem\u2019 of \u2018Vragen over een advertentie\u2019. Die keuze is praktisch, want zo komt je bericht meteen bij de juiste persoon terecht. Noteer duidelijk op wat er aan de hand is. Oversla geen belangrijke details, zoals een advertentienummer of de link naar de pagina waar het misgaat. Met een volledige beschrijving kan het supportteam veel sneller iets voor je betekenen.<\/p>\n

Suggesties voor een effectieve beschrijving in het formulier<\/h4>\n

Hoe preciezer je uitlegt wat er speelt, hoe eerder je geholpen wordt. Begin met een korte, duidelijke samenvatting van het probleem. Vertel daarna wat je deed toen het fout ging, en wat je daarna zelf al gedaan hebt om het op te lossen. Schrijf op ook welk apparaat en welke browser je gebruikt. Bijvoorbeeld: een Samsung-telefoon met Chrome, of een iPad met Safari. Dit genre technische details oogt klein, maar voor het supportteam is het vaak cruciaal om de bron van de storing te achterhalen.<\/p>\n

Contact opnemen naar de Zeturf klantenservice<\/h3>\n

\"ZEturf<\/p>\n

Soms is bellen simpelweg makkelijker https:\/\/zeruff.nl<\/a>. Bijvoorbeeld als je iets ingewikkeld moet uitleggen of meteen een antwoord behoeft. Het telefoonnummer van Zeturf is beschikbaar tijdens kantooruren. Let dat je je klantnummer of advertentienummer bij de hand hebt voordat je belt. Dat levert een hoop tijd. Houd er rekening mee dat je soms even in de wacht staat, vooral op drukke momenten zoals maandagochtend. Als je je verhaal van tevoren even op een rijtje ordent, verloopt het gesprek soepeler en is de kans toegenomen dat je ter plekke een oplossing krijgt.<\/p>\n

Hoe lang duurt het voordat je een reactie van Zeturf krijgt?<\/h2>\n

Het moment waarop je antwoord krijgt, varieert, afhankelijk van hoe je contact opneemt en hoe complex je vraag is. Aan de telefoon heb je natuurlijk meteen contact, al is er soms een wachttijd. Voor een e-mail of een ingevuld contactformulierd contactformulier mag je rekenen op een reactie binnen \u00e9\u00e9n of twee werkdagen. Uit eigen ervaring weet ik dat eenvoudige vragen soms al binnen een paar uur worden beantwoord. Voor lastiger zaken, waar intern onderzoek voor nodig is, kan het langer duren. Zet alleen \u2018Spoed\u2019 in de onderwerpregel als het echt haast heeft. Onterecht spoed gebruiken kan het proces juist vertragen.<\/p>\n

___SPIN_118___: Zeturf Help Center<\/h2>\n

Het deg platform om uitstekende in het Help Center of de FAQ van Zeturf te voornaam belangrijkste. Daar simpel antwoorden op de selecteer vragen over accounts, advertenties plaatsen, betalen en de algemene voorwaarden. Voor bij je vraag past problemen wees goed voorbereid duidelijke stappenplannen. Dit is telefoneert de een bericht stuurt weg naar een oplossing. Bovendien wees concreet de telefoonlijn en de inbox van het supportteam helder voor de behoeft vragen, waar jij mensen mee zit.<\/p>\n

graag assisteren en vriendelijke voor heldere Zeturf<\/h2>\n<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Iedereen die in Nederland regelmatig online diensten gebruikt, weet hoe fijn een klantenservice is die makkelijk en makkelijk te bereiken is. Denk aan Zeturf, een populair platform voor woningzoekers en verhuurders. Stel je voor, je hebt een probleem over een advertentie, stuit op een technisch manco aan of kunt niet\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-141508","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/141508","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=141508"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/141508\/revisions"}],"predecessor-version":[{"id":141510,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/141508\/revisions\/141510"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=141508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=141508"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=141508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}