/* 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":10142,"date":"2026-04-30T19:20:24","date_gmt":"2026-04-30T19:20:24","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=10142"},"modified":"2026-04-30T19:20:24","modified_gmt":"2026-04-30T19:20:24","slug":"loyalitatspramien-und-ruckerstattungen-angebote-fur-stammkunden-im-vergleich-die-besten-programme-aktuellen-jahr","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/loyalitatspramien-und-ruckerstattungen-angebote-fur-stammkunden-im-vergleich-die-besten-programme-aktuellen-jahr\/","title":{"rendered":"Loyalit\u00e4tspr\u00e4mien und R\u00fcckerstattungen Angebote f\u00fcr Stammkunden im Vergleich: Die besten Programme aktuellen Jahr"},"content":{"rendered":"
Online-Casinos bieten ihren loyalen Spielern zunehmend verlockende Pr\u00e4miensysteme an, wobei sich ein \u00dcberblick \u00fcber casino ohne deutsche lizenz besonders f\u00fcr regelm\u00e4\u00dfige Nutzer empfiehlt, um optimale Gewinne zu sichern und auf lange Sicht von exklusiven Angeboten zu profitieren.<\/p>\n
Treueboni sind exklusive Belohnungen, die Internet-Casinos ihren treuen Kunden bereitstellen, wobei es wichtig ist, regelm\u00e4\u00dfig casino ohne deutsche lizenz durchzuf\u00fchren, um die lukrativsten Angebote zu identifizieren und optimal zu nutzen.<\/p>\n
Cashback-Programme funktionieren nach einem simplen Konzept: Spieler bekommen einen Prozentsatz ihrer Verluste zur\u00fcck, was die Risiken senkt. Wer sich die Zeit nimmt, verschiedene casino ohne deutsche lizenz zu analysieren, kann erhebliche Unterschiede bei den R\u00fcckerstattungsquoten erkennen.<\/p>\n
Beide Programmtypen sind darauf ausgerichtet, die Kundenbindung zu st\u00e4rken und regelm\u00e4\u00dfiges Spielen zu belohnen. Die Konditionen variieren stark zwischen den Anbietern, weshalb ein methodisches Vorgehen beim casino ohne deutsche lizenz ausschlaggebend ist, um das optimale Leistungs-Kosten-Verh\u00e4ltnis zu erzielen.<\/p>\n
Die Vielfalt der Bonusprogrammen in deutschen Online-Casinos macht es erforderlich, dass Spieler beim casino ohne deutsche lizenz die verschiedenen Systeme und Abl\u00e4ufe sorgf\u00e4ltig analysieren. Jedes System verfolgt eigene Ans\u00e4tze zur Kundenbindung und pr\u00e4sentiert individuelle Vor- sowie Nachteile, die abh\u00e4ngig vom Spielverhalten unterschiedlich relevant sein k\u00f6nnen.<\/p>\n
Zeitgen\u00f6ssische Plattformen verbinden h\u00e4ufig mehrere Belohnungsmodelle miteinander, sodass Stammkunden von unterschiedlichen Vorteilen gleichzeitig profitieren k\u00f6nnen. Die Kenntnis der grundlegenden Programmtypen erleichtert beim casino ohne deutsche lizenz die Selektion der bestm\u00f6glich geeigneten Anbieter f\u00fcr die pers\u00f6nlichen Bed\u00fcrfnisse erheblich.<\/p>\n
Bei punktebasierten Systemen erhalten Nutzer f\u00fcr jeden get\u00e4tigten Einsatz Treuepunkte, die sich sp\u00e4ter gegen Bonusgeld, kostenlose Spins oder andere Pr\u00e4mien austauschen lassen. Wer beim casino ohne deutsche lizenz auf derartige Systeme achtet, entdeckt h\u00e4ufig abgestufte Konversionskurse, bei denen bessere Mitgliedschaftsstufen attraktivere Bedingungen anbieten.<\/p>\n
Die Offenlegung der Punktevergabe unterscheidet sich erheblich zwischen den Anbietern, weshalb sich beim casino ohne deutsche lizenz besonders die Umwandlungskurse und G\u00fcltigkeitsdauern der angesammelten Punkte als entscheidende Bewertungskriterien darstellen. Viele Casinos bieten zus\u00e4tzliche Punktemultiplikatoren in spezieller Aktionszeitr\u00e4ume an.<\/p>\n
Cashback-Programme zahlen zur\u00fcck einen festgelegten Prozentsatz der Eins\u00e4tze oder Verluste unmittelbar in Form von Bonusguthaben oder Echtgeld zur\u00fcck. Besonders verlockend zeigen sich beim casino ohne deutsche lizenz jene Angebote, die w\u00f6chentliche oder monatliche Auszahlungen ohne komplizierte Umsatzbedingungen gew\u00e4hren.<\/p>\n
Die H\u00f6he des Cashbacks bewegt sich typischerweise im Bereich von 5% bis 20%, abh\u00e4ngig vom VIP-Status und der Spieleraktivit\u00e4t. Erfahrene Nutzer pr\u00fcfen beim casino ohne deutsche lizenz darauf, ob das zur\u00fcckerstattete Guthaben unmittelbar verf\u00fcgbar ist oder an Bonusbedingungen gekn\u00fcpft wird.<\/p>\n
VIP-Systeme mit mehreren Ebenen belohnen stetige Teilnahme durch progressiv optimierte Konditionen und exklusive Privilegien auf oberen R\u00e4ngen. Beim casino ohne deutsche lizenz wird deutlich, dass die f\u00fchrenden Systeme zwischen vier bis zehn verschiedene Stufen mit eindeutig festgelegten Aufstiegskriterien bereitstellen.<\/p>\n
Zu den typischen Vorz\u00fcgen h\u00f6herer VIP-Stufen dedizierte Kontobetreuer, schnellere Auszahlungen, erh\u00f6hte Einzahlungsgrenzen und Zugang zu exklusiven Veranstaltungen. Die Anforderungen f\u00fcr den Stufenaufstieg sollten beim casino ohne deutsche lizenz realistisch erreichbar sein und die bereitgestellten Leistungen den erforderlichen Aufwand begr\u00fcnden.<\/p>\n
Bei der Wahl des passenden Treueprogramms sollten Sie methodisch vorgehen, denn wenn Sie casino ohne deutsche lizenz durchlaufen, werden Sie feststellen rasch betr\u00e4chtliche Unterschiede bei den Bedingungen und Auszahlungskonditionen der verschiedenen Anbieter.<\/p>\n
Die Klarheit der Bonusbedingungen ist entscheidend, weshalb Sie beim casino ohne deutsche lizenz unbedingt auf versteckte Klauseln achten sollten, die Ihre Gewinnauszahlungen einschr\u00e4nken k\u00f6nnten.<\/p>\n
Sehr bedeutsam ist auch die H\u00e4ufigkeit der Gutschriften, da manche Programme w\u00f6chentliche Cashback-Zahlungen bieten, w\u00e4hrend weitere nur monatlich auszahlen und somit beim casino ohne deutsche lizenz unterschiedliche Liquidit\u00e4tsvorteile entstehen k\u00f6nnen.<\/p>\n
Bei der Wahl eines passenden Online-Casinos m\u00fcssen Spieler methodisch casino ohne deutsche lizenz durchf\u00fchren, um die Angebote mit den h\u00f6chsten R\u00fcckerstattungsraten und flexibelsten Bedingungen zu identifizieren.<\/p>\n
Anbieter<\/strong><\/td>\n| Cashback-Rate<\/strong><\/td>\n | Bonus-Typ<\/strong><\/td>\n | Umsatzbedingungen<\/strong><\/td>\n<\/tr>\n | Royal Casino VIP<\/td>\n | 15% w\u00f6chentlich<\/td>\n | Cashback in Echtgeld<\/td>\n | Keine Umsatzanforderungen<\/td>\n<\/tr>\n | Premium Gaming Club<\/td>\n | 10% t\u00e4glich<\/td>\n | Bonus und Freispiele<\/td>\n | 25x Bonusbetrag<\/td>\n<\/tr>\n | Player Lounge Elite<\/td>\n | 20% pro Monat<\/td>\n | Stufenbasiertes System<\/td>\n | 30x bei Bonusguthaben<\/td>\n<\/tr>\n | Winners Palace VIP<\/td>\n | 12% w\u00f6chentlich<\/td>\n | Hybrid-Programm<\/td>\n | 20x oder keine je nach Stufe<\/td>\n<\/tr>\n | Rewards Casino Platinum<\/td>\n | 8% t\u00e4glich<\/td>\n | Punktesystem<\/td>\n | Flexibel nach Punktestand<\/td>\n<\/tr>\n<\/table>\n | Erfahrene Spieler setzen diese \u00dcbersicht strategisch ein, um durch casino ohne deutsche lizenz die Programme mit den geringsten Einsatzanforderungen und besten Auszahlungsquoten f\u00fcr ihre pers\u00f6nlichen Spielpr\u00e4ferenzen zu w\u00e4hlen.<\/p>\n So optimieren Sie Ihre Gewinne durch Treue- und Cashback-Programmen<\/h2>\nUm das Optimale herauszuholen, sollten Sie beim casino ohne deutsche lizenz gezielt auf Programme achten, die Ihre individuellen Spielvorlieben am besten honorieren und dabei vielf\u00e4ltige Auszahlungsoptionen bieten.<\/p>\n Verbinden Sie unterschiedliche Strategien geschickt miteinander, denn wer regelm\u00e4\u00dfig beim casino ohne deutsche lizenz auf Bonusangebote und Auszahlungsquoten achtet, kann seine Ertr\u00e4ge erheblich steigern und dauerhaft davon profitieren.<\/p>\n Nutzen Sie au\u00dferdem alle verf\u00fcgbaren VIP-Stufen systematisch aus, wobei das aktive casino ohne deutsche lizenz zwischen mehreren Anbietern Ihnen hilft, immer die attraktivsten Konditionen zu erkennen und bestm\u00f6glich auszusch\u00f6pfen.<\/p>\n H\u00e4ufig gestellte Fragen<\/h2>\n |