public static function output()
    {
        global $post, $thepostid;
        $thepostid = $post->ID;
        $_product = wc_get_product($thepostid);
        $terms = array();
        $delivery_time = $_product->gzd_product->delivery_time;
        woocommerce_wp_select(array('id' => '_unit', 'label' => __('Unit', 'woocommerce-germanized'), 'options' => array_merge(array('none' => __('Select unit', 'woocommerce-germanized')), WC_germanized()->units->get_units()), 'desc_tip' => true, 'description' => __('Needed if selling on a per unit basis', 'woocommerce-germanized')));
        woocommerce_wp_text_input(array('id' => '_unit_base', 'label' => __('Unit Base', 'woocommerce-germanized'), 'data_type' => 'decimal', 'desc_tip' => true, 'description' => __('Unit price per amount (e.g. 100)', 'woocommerce-germanized')));
        woocommerce_wp_text_input(array('id' => '_unit_price_regular', 'label' => __('Regular Unit Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price'));
        woocommerce_wp_text_input(array('id' => '_unit_price_sale', 'label' => __('Sale Unit Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price'));
        if (version_compare(WC()->version, '2.3', '<')) {
            return;
        }
        ?>
		
		<p class="form-field">
			<label for="delivery_time"><?php 
        _e('Delivery Time', 'woocommerce-germanized');
        ?>
</label>
			<input type="hidden" class="wc-product-search wc-gzd-delivery-time-search" style="width: 50%" id="delivery_time" name="delivery_time" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php 
        _e('Search for a delivery time&hellip;', 'woocommerce-germanized');
        ?>
" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false" data-selected="<?php 
        echo $delivery_time ? $delivery_time->name : '';
        ?>
" value="<?php 
        echo $delivery_time ? $delivery_time->term_id : '';
        ?>
" />
		</p>
		
		<?php 
    }
 public function add_scripts()
 {
     $screen = get_current_screen();
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $assets_path = WC_germanized()->plugin_url() . '/assets/';
     $admin_script_path = $assets_path . 'js/admin/';
     wp_register_style('woocommerce-gzd-admin', $assets_path . 'css/woocommerce-gzd-admin' . $suffix . '.css', false, WC_GERMANIZED_VERSION);
     wp_enqueue_style('woocommerce-gzd-admin');
     wp_register_style('tourbus', $assets_path . 'css/tourbus' . $suffix . '.css', false, WC_GERMANIZED_VERSION);
     wp_register_script('wc-gzd-admin', $admin_script_path . 'settings' . $suffix . '.js', array('jquery', 'woocommerce_settings'), WC_GERMANIZED_VERSION, true);
     wp_register_script('wc-gzd-admin-emails', $admin_script_path . 'emails' . $suffix . '.js', array('jquery', 'woocommerce_settings'), WC_GERMANIZED_VERSION, true);
     wp_register_script('scrollto', $admin_script_path . 'scrollTo' . $suffix . '.js', array('jquery'), WC_GERMANIZED_VERSION, true);
     wp_register_script('tourbus', $admin_script_path . 'tourbus' . $suffix . '.js', array('jquery'), WC_GERMANIZED_VERSION, true);
     wp_register_script('wc-gzd-admin-tour', $admin_script_path . 'tour' . $suffix . '.js', array('jquery', 'woocommerce_settings', 'tourbus'), WC_GERMANIZED_VERSION, true);
     if (isset($_GET['tab']) && $_GET['tab'] == 'germanized') {
         wp_enqueue_script('wc-gzd-admin');
         $section = 'general';
         if (isset($_GET['section'])) {
             $section = sanitize_text_field($_GET['section']);
         }
         if ($this->is_tour_enabled($section)) {
             wp_enqueue_script('scrollto');
             wp_enqueue_script('tourbus');
             wp_enqueue_script('wc-gzd-admin-tour');
             wp_enqueue_style('tourbus');
         }
     }
     if (isset($_GET['section']) && !empty($_GET['section']) && strpos($_GET['section'], 'gzd_') !== false) {
         wp_enqueue_script('wc-gzd-admin-emails');
     }
     // Hide delivery time and unit tagsdiv
     if (version_compare(WC()->version, '2.3', '>=')) {
         wp_add_inline_style('woocommerce-gzd-admin', '#tagsdiv-product_delivery_time, #tagsdiv-product_unit {display: none}');
     }
 }
 public static function output()
 {
     global $post, $thepostid;
     $thepostid = $post->ID;
     $_product = wc_get_product($thepostid);
     $terms = array();
     woocommerce_wp_select(array('id' => '_unit', 'label' => __('Unit', 'woocommerce-germanized'), 'options' => array_merge(array('none' => __('Select unit', 'woocommerce-germanized')), WC_germanized()->units->get_units()), 'desc_tip' => true, 'description' => __('Needed if selling on a per unit basis', 'woocommerce-germanized')));
     woocommerce_wp_text_input(array('id' => '_unit_product', 'label' => __('Product Units', 'woocommerce-germanized'), 'data_type' => 'decimal', 'desc_tip' => true, 'description' => __('Number of units included per default product price. Example: 1000 ml.', 'woocommerce-germanized')));
     woocommerce_wp_text_input(array('id' => '_unit_base', 'label' => __('Base Price Units', 'woocommerce-germanized'), 'data_type' => 'decimal', 'desc_tip' => true, 'description' => __('Base price units. Example base price: 0,99 € / 100 ml. Insert 100 as base price unit amount.', 'woocommerce-germanized')));
     woocommerce_wp_checkbox(array('id' => '_unit_price_auto', 'label' => __('Calculation', 'woocommerce-germanized'), 'description' => '<span class="wc-gzd-premium-desc">' . __('Calculate base prices automatically.', 'woocommerce-germanized') . '</span> <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="wc-gzd-pro">pro</a>'));
     woocommerce_wp_text_input(array('id' => '_unit_price_regular', 'label' => __('Regular Base Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price'));
     woocommerce_wp_text_input(array('id' => '_unit_price_sale', 'label' => __('Sale Base Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price'));
 }
    public function admin_options()
    {
        ?>

		<h3><?php 
        echo !empty($this->method_title) ? $this->method_title : __('Settings', 'woocommerce');
        ?>
</h3>

		<?php 
        echo !empty($this->method_description) ? wpautop($this->method_description) : '';
        ?>

		<?php 
        if (!WC_germanized()->is_pro()) {
            ?>
		
			<div class="wc-gzd-premium-overlay notice notice-warning inline">
				<h3><?php 
            _e('Automatically generate PDF invoices for this gateway?', 'woocommerce-germanized');
            ?>
</h3>
				<p><?php 
            _e('By upgrading to the professional version you\'ll be able to automatically generate PDF invoices to this payment gateway. Furthermore you\'ll benefit from even more professional features such as a multistep checkout page, legal text generators, B2B VAT settings and premium support!', 'woocommerce-germanized');
            ?>
</p>
				<p>
					<a class="button button-primary" href="https://vendidero.de/woocommerce-germanized" target="_blank"><?php 
            _e('Upgrade now', 'woocommerce-germanized');
            ?>
</a>
					<a class="button button-secondary" style="margin-left: 1em" href="https://vendidero.de/woocommerce-germanized#accounting" target="_blank"><?php 
            _e('Learn more about PDF invoicing', 'woocommerce-germanized');
            ?>
</a>
				</p>
			</div>

		<?php 
        }
        ?>

		<table class="form-table">
			<?php 
        $this->generate_settings_html();
        ?>
		</table><?php 
    }
 public function set_language($lang)
 {
     global $sitepress, $woocommerce;
     $sitepress->switch_lang($lang, true);
     $this->locale = $sitepress->get_locale($lang);
     add_filter('plugin_locale', array($this, 'set_locale'), 10, 2);
     unload_textdomain('woocommerce');
     unload_textdomain('woocommerce-germanized');
     unload_textdomain('woocommerce-germanized-pro');
     unload_textdomain('default');
     $woocommerce->load_plugin_textdomain();
     WC_germanized()->load_plugin_textdomain();
     do_action('woocommerce_gzd_wpml_lang_changed', $lang);
     load_default_textdomain();
     global $wp_locale;
     $wp_locale = new WP_Locale();
 }
 public function settings_page_scroll_top()
 {
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $assets_path = WC_germanized()->plugin_url() . '/assets/';
     wp_register_style('woocommerce-gzd-admin', $assets_path . 'css/woocommerce-gzd-admin' . $suffix . '.css', false, WC_germanized()->version);
     wp_enqueue_style('woocommerce-gzd-admin');
     $admin_script_path = $assets_path . 'js/admin/';
     if (isset($_GET['tab']) && $_GET['tab'] == 'germanized') {
         wp_enqueue_script('wc-gzd-admin', $admin_script_path . 'settings' . $suffix . '.js', array('jquery', 'woocommerce_settings'), WC_GERMANIZED_VERSION, true);
     }
     if (isset($_GET['section']) && !empty($_GET['section']) && strpos($_GET['section'], 'gzd') !== false) {
         wp_enqueue_script('wc-gzd-admin-emails', $admin_script_path . 'emails' . $suffix . '.js', array('jquery', 'woocommerce_settings'), WC_GERMANIZED_VERSION, true);
     }
     // Hide delivery time and unit tagsdiv
     if (version_compare(WC()->version, '2.3', '>=')) {
         wp_add_inline_style('woocommerce-gzd-admin', '#tagsdiv-product_delivery_time, #tagsdiv-product_unit {display: none}');
     }
 }
 public function add_admin_assets()
 {
     $screen = get_current_screen();
     wp_enqueue_style('wc-gzdp-admin', WC_germanized_pro()->plugin_url() . '/assets/css/admin/wc-gzdp-admin' . $this->suffix . '.css', array(), WC_GERMANIZED_PRO_VERSION);
     if (in_array($screen->id, array('shop_order', 'edit-shop_order'))) {
         // Invoice JS
         wp_enqueue_script('wc-gzdp-admin-invoice', WC_germanized_pro()->plugin_url() . '/assets/js/admin/invoice' . $this->suffix . '.js', array('jquery'), WC_GERMANIZED_PRO_VERSION, true);
         // Order JS
         wp_enqueue_script('wc-gzdp-admin-order', WC_germanized_pro()->plugin_url() . '/assets/js/admin/order' . $this->suffix . '.js', array('jquery'), WC_GERMANIZED_PRO_VERSION, true);
     } else {
         if ($screen->id == 'woocommerce_page_wc-settings') {
             wp_enqueue_media();
             wp_enqueue_style('wc-gzd-fontawesome', WC_germanized()->plugin_url() . '/assets/css/font-awesome.min.css', array(), WC_GERMANIZED_VERSION);
             wp_register_script('wc-gzdp-admin-settings', WC_germanized_pro()->plugin_url() . '/assets/js/admin/settings' . $this->suffix . '.js', array('jquery'), WC_GERMANIZED_PRO_VERSION, true);
             wp_localize_script('wc-gzdp-admin-settings', 'wc_gzdp_attachment_field', array('title' => _x('Choose Attachment', 'admin-field', 'woocommerce-germanized-pro'), 'insert' => _x('Set attachment', 'admin-field', 'woocommerce-germanized-pro'), 'unset' => _x('Unset attachment', 'admin-field', 'woocommerce-germanized-pro'), 'ajax_url' => admin_url('admin-ajax.php')));
             wp_localize_script('wc-gzdp-admin-settings', 'wc_gzdp', array('ajax_url' => admin_url('admin-ajax.php')));
             wp_enqueue_script('wc-gzdp-admin-settings');
         }
     }
     do_action('woocommerce_gzdp_admin_assets');
 }
 public function get_sidebar()
 {
     return '<div class="wc-gzd-admin-settings-sidebar"><h3>' . _x('About Trusted Shops', 'trusted-shops', 'woocommerce-germanized') . '</h3><a href="' . $this->get_trusted_url('integration/', 'membership') . '" target="_blank"><img style="width: 100%; height: auto" src="' . WC_germanized()->plugin_url() . '/assets/images/trusted-shops-b.png" /></a></div>';
 }
    /**
     * Into text/links shown on all about pages.
     *
     * @access private
     * @return void
     */
    private function intro()
    {
        // Flush after upgrades
        if (!empty($_GET['wc-gzd-updated']) || !empty($_GET['wc-gzd-installed'])) {
            flush_rewrite_rules();
        }
        // Drop minor version if 0
        $major_version = substr(WC_germanized()->version, 0, 3);
        ?>
		<div class="wc-gzd-news">
		
			<h1>Willkommen bei WooCommerce Germanized</h1>
			<a class="wc-gzd-logo" href="https://vendidero.de/woocommerce-germanized" target="_blank" style="margin-right: 1em"></a>
			<div class="about-text woocommerce-about-text">
				<?php 
        if (!empty($_GET['wc-gzd-installed'])) {
            $message = 'Super, alles erledigt!';
        } elseif (!empty($_GET['wc-gzd-updated'])) {
            $message = 'Danke, dass du auf die neueste Version aktualisiert hast!';
        } else {
            $message = 'Danke für die Installation!';
        }
        echo $message . '<br/>';
        ?>
				WooCommerce Germanized <?php 
        echo $major_version;
        ?>
 erweitert deine WooCommerce Installation um wichtige Funktionen für den deutschen Markt.</p>
			</div>
			<p class="woocommerce-actions wc-gzd-actions">
				<a href="<?php 
        echo admin_url('admin.php?page=wc-settings&tab=germanized');
        ?>
" class="button button-primary">Einstellungen</a>
				<a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="button button-primary">Upgrade zur Pro Version</a>
				<span class="wc-gzd-fb">
				<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvendidero.de%2Fwoocommerce-germanized&amp;width&amp;layout=button&amp;action=recommend&amp;show_faces=false&amp;share=false&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px;" allowTransparency="true"></iframe>
				</span>
			</p>
			<div class="changelog vendipro new-feature">
				<h3>Neu: Rechtliche Hinweistexte als PDF-Anhang <span class="wc-gzd-pro">pro</span></h3>
				<div class="left">
					<a href="https://vendidero.de/woocommerce-germanized#legal-page" target="_blank"><img src="<?php 
        echo WC_germanized()->plugin_url();
        ?>
/assets/images/legal-page.png" style="border: none" /></a>
				</div>
				<div class="right">
					<p>
						Deine E-Mails sind aufgrund deiner AGB und Widerrufsbelehrung ziemlich lang? Große und bekannte Shops senden die rechtlichen Hinweistexte einfach als PDF-Anhang.
						Für <span class="wc-gzd-pro">pro</span> User haben wir diese Funktionalität nun auch implementiert. Generiere entweder automatisch PDF-Dateien auf Basis deiner rechtlichen Hinweisseiten oder lade manuell eine PDF-Datei hoch, die als Anhang verwendet werden soll.
					</p>
					<div class="wc-feature wc-vendipro-features feature-section col two-col">
						<div>
							<h4><i class="fa fa-magic"></i> Layout Einstellungen</h4>
							<p>Flexibles PDF-Layout für automatisch erstellte PDF-Anhänge - ähnlich wie bei Rechnungen & Lieferscheinen.</p>
						</div>
						<div class="last-feature">
							<h4><i class="fa fa-refresh"></i> Aktualisierung</h4>
							<p>Sobald du eine Hinweisseite speicherst, wird deine PDF-Datei automatisch aktualisiert.</p>
						</div>
					</div>
					<div class="vendipro-buttons">
						<a href="https://vendidero.de/woocommerce-germanized#pro" target="_blank" class="button button-primary wc-gzd-button">Pro Version entdecken</a>
						<p class="price smaller">ab 69,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
					</div>
				</div>
			</div>
			<div class="changelog vendipro new-feature">
				<h3>Mehrstufige Kasse mit Datenüberprüfung <span class="wc-gzd-pro">pro</span></h3>
				<div class="left">
					<a href="https://vendidero.de/woocommerce-germanized#multistep-checkout" target="_blank"><img src="<?php 
        echo WC_germanized()->plugin_url();
        ?>
/assets/images/multistep-checkout.png" /></a>
				</div>
				<div class="right">
					<p>
						Du möchtest deinen Checkout in mehrere Stufen aufteilen? Mit diesem neuen Feature ist das kein Problem mehr.
						Nutze ähnlich wie andere große deutsche Shops die Schritte Persönliche Daten, Zahlungsart und Bestätigen. Im Bestätigungs-Schritt
						werden dem Kunden alle Eingaben noch einmal aufgeführt.
					</p>
					<div class="wc-feature wc-vendipro-features feature-section col two-col">
						<div>
							<h4><i class="fa fa-paint-brush"></i> Läuft mit deinem Theme</h4>
							<p>Die mehrstufige Kasse kommt ganz ohne Überschreiben von WooCommerce Templates aus.</p>
						</div>
						<div class="last-feature">
							<h4><i class="fa fa-adjust"></i> Farben & Optionen</h4>
							<p>Passe sowohl Farben als auch Beschriftungen einfach in den Einstellungen an.</p>
						</div>
						<div>
							<h4><i class="fa fa-check"></i> Daten Prüfen</h4>
							<p>Lasse deine Kunden im letzten Schritt ihre Daten vor Bestellabschluss prüfen und u.U. korrigieren.</p>
						</div>
						<div class="last-feature">
							<h4><i class="fa fa-refresh"></i> Kein Neuladen</h4>
							<p>Die Mehrstufige Kasse funktioniert komplett per Javascript. Inhalte werden asynchron nachgeladen.</p>
						</div>
					</div>
					<div class="vendipro-buttons">
						<a href="https://vendidero.de/woocommerce-germanized#pro" target="_blank" class="button button-primary wc-gzd-button">Pro Version entdecken</a>
						<p class="price smaller">ab 69,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
					</div>
				</div>
			</div>
			<div class="changelog vendipro">
				<h3>VendiPro - Das WooCommerce Theme für den deutschen Markt</h3>
				<div class="left">
					<a href="https://vendidero.de/vendipro" target="_blank"><img src="<?php 
        echo WC_germanized()->plugin_url();
        ?>
/assets/images/vendidero.jpg" /></a>
				</div>
				<div class="right">
					<p>Endlich ist es soweit - Ein WooCommerce Theme, perfekt auf den deutschen Markt abgestimmt.
					Mit <a href="https://vendidero.de/vendipro" target="_blank">VendiPro</a> wirken alle WooCommerce & WooCommerce Germanized Inhalte einfach noch professioneller.</p>
					<div class="wc-feature wc-vendipro-features feature-section col two-col">
						<div>
							<h4><i class="fa fa-mobile"></i> Responsive Layout</h4>
							<p>VendiPro hinterlässt sowohl auf Desktop- als auch auf Mobilgeräten einen klasse Eindruck!</p>
						</div>
						<div class="last-feature">
							<h4><i class="fa fa-pencil"></i> Individualität</h4>
							<p>Passe VendiPro einfach per WordPress Theme Customizer an deine Bedürfnisse an.</p>
						</div>
						<div>
							<h4><i class="fa fa-font"></i> Typisch deutsch</h4>
							<p>Gemacht für den deutschen Markt - und das merkt man sofort.</p>
						</div>
						<div class="last-feature">
							<h4><i class="fa fa-play-circle"></i> Slideshow</h4>
							<p>Einfach per Shortcode Slideshows und Produkt Carousels erstellen.</p>
						</div>
					</div>
					<div class="vendipro-buttons">
						<a href="https://vendidero.de/vendipro" target="_blank" class="button button-primary wc-gzd-button">mehr erfahren</a>
						<p class="price smaller">ab 49,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
					</div>
				</div>
			</div>
			<div class="changelog">
				<h3>Neu in WooCommerce Germanized 1.5</h3>
				<div class="wc-feature feature-section col three-col" style="margin-bottom: -30px">
					<div>
						<h4><i class="fa fa-line-chart"></i> Verbesserte Performance</h4>
						<p>
							Wir haben für dich weiter an der Performance des Plugins gearbeitet und konnte die Ladezeiten um 50% reduzieren.
						</p>
					</div>
					<div>
						<h4><i class="fa fa-database"></i> Einstellungen importieren</h4>
						<p>
							Solltest du ein anderes Plugin für den deutschen Markt installiert haben, versuchen wir diese Einstellungen & Optionen zu übernehmen.
							Dieses Feature ist allerdings nur nach der Erstinstallation des Plugins verfügbar.
						</p>
					</div>
				</div>
				<div class="return-to-dashboard">
					<a href="<?php 
        echo admin_url('admin.php?page=wc-settings&tab=germanized');
        ?>
">zu den Einstellungen</a>
				</div>
			</div>
			<div class="changelog">
				<h3>WooCommerce Germanized - Funktionsübersicht</h3>
				<div class="wc-feature feature-section col three-col">
					<div>
						<h4><i class="fa fa-child"></i> Kleinunternehmerregelung</h4>
						<p>Mit nur einem Klick wird Dein Online-Shop §19 UStG - kompatibel! Einfach die Häkchen innerhalb der WooCommerce Germanized Einstellungen setzen und schon geht es los.</p>
					</div>
					<div>
						<h4><i class="fa fa-truck"></i> Lieferzeiten</h4>
						<p>Erstelle einfach neue Lieferzeiten für deine Produkte. Die Lieferzeiten werden dann sowohl auf der Produktseite als auch im Bestellvorgang dargestellt.
						Die Bearbeitung der Lieferzeiten erfolgt ganz bequem per WordPress Taxonomy.</p>
					</div>
					<div class="last-feature">
						<h4><i class="fa fa-laptop"></i> Darstellungsoptionen</h4>
						<p>Wir haben die Darstellung des Warenkorbs und des Bezahlvorgangs für Dich an deutsche Rechtsgrundlagen angepasst. Zusätzlich kannst Du selbst entscheiden, welche rechtlich relevanten Seiten Du wo und wie verlinken willst.</p>
					</div>
					<div>
						<h4><i class="fa fa-legal"></i> Rechtlich relevante Seiten</h4>
						<p>Erstelle ganz einfach alle rechtlich relevanten Seiten (z.B. Datenschutz, Widerrufsbelehrung).
						Wir setzen den Inhalt automatisch in die von Dir ausgewählten E-Mail-Templates ein und fügen auf Wunsch auch Checkboxen zum Bezahlvorgang hinzu.</p>
					</div>
					<div>
						<h4><i class="fa fa-certificate"></i> Trusted Shops</h4>
						<p>Du möchtest deine Trusted Shops Mitgliedschaft in WooCommerce nutzen? Kein Problem. WooCommerce Germanized hat die Schnittstelle zu Trusted Shops bereits implementiert.
						Klicke <a href="<?php 
        echo esc_url(admin_url(add_query_arg(array('page' => 'wc-settings&tab=germanized&section=trusted_shops'), 'admin.php')));
        ?>
">hier</a> um die nötigen Einstellungen vorzunehmen.</p>
					</div>
					<div class="last-feature">
						<h4>Und noch vieles mehr</h4>
						<p>Natürlich gibt es auch noch viele weitere Optionen, die wir für Dich implementiert haben. Du kannst z.B. den Button-Text im Bestellabschluss ganz bequem anpassen oder entscheiden ob du den "zum Warenkorb" - Button wirklich auch in der Produktübersicht haben möchtest.</p>
					</div>
				</div>
			</div>
		</div>
		<?php 
    }
    /**
     * Into text/links shown on all about pages.
     *
     * @access private
     * @return void
     */
    private function intro()
    {
        // Flush after upgrades
        if (!empty($_GET['wc-gzd-updated']) || !empty($_GET['wc-gzd-installed'])) {
            flush_rewrite_rules();
        }
        // Drop minor version if 0
        $major_version = substr(WC_germanized()->version, 0, 3);
        ?>
		<h1>Willkommen bei WooCommerce Germanized</h1>
		<a class="wc-gzd-logo" href="https://vendidero.de/woocommerce-germanized" target="_blank" style="margin-right: 1em"></a>
		<div class="about-text woocommerce-about-text">
			<?php 
        if (!empty($_GET['wc-gzd-installed'])) {
            $message = 'Super, alles erledigt!';
        } elseif (!empty($_GET['wc-gzd-updated'])) {
            $message = 'Danke, dass du auf die neueste Version aktualisiert hast!';
        } else {
            $message = 'Danke für die Installation!';
        }
        echo $message . '<br/>';
        ?>
			WooCommerce Germanized <?php 
        echo $major_version;
        ?>
 erweitert deine WooCommerce Installation um wichtige Funktionen für den deutschen Markt.</p>
		</div>
		<p class="woocommerce-actions wc-gzd-actions">
			<a href="<?php 
        echo admin_url('admin.php?page=wc-settings&tab=germanized');
        ?>
" class="button button-primary">Einstellungen</a>
			<a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="button button-primary">Upgrade zur Pro Version</a>
			<span class="wc-gzd-fb">
			<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvendidero.de%2Fwoocommerce-germanized&amp;width&amp;layout=button&amp;action=recommend&amp;show_faces=false&amp;share=false&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px;" allowTransparency="true"></iframe>
			</span>
		</p>
		<div class="changelog vendipro new-feature">
			<h3>Neu: Mehrstufige Kasse mit Datenüberprüfung <span class="wc-gzd-pro">pro</span></h3>
			<div class="left">
				<a href="https://vendidero.de/woocommerce-germanized#multistep-checkout" target="_blank"><img src="<?php 
        echo WC_germanized()->plugin_url();
        ?>
/assets/images/multistep-checkout.png" /></a>
			</div>
			<div class="right">
				<p>
					Du möchtest deinen Checkout in mehrere Stufen aufteilen? Mit diesem neuen Feature ist das kein Problem mehr.
					Nutze ähnlich wie andere große deutsche Shops die Schritte Persönliche Daten, Zahlungsart und Bestätigen. Im Bestätigungs-Schritt
					werden dem Kunden alle Eingaben noch einmal aufgeführt.
				</p>
				<div class="wc-feature wc-vendipro-features feature-section col two-col">
					<div>
						<h4><i class="fa fa-paint-brush"></i> Läuft mit deinem Theme</h4>
						<p>Die mehrstufige Kasse kommt ganz ohne Überschreiben von WooCommerce Templates aus.</p>
					</div>
					<div class="last-feature">
						<h4><i class="fa fa-adjust"></i> Farben & Optionen</h4>
						<p>Passe sowohl Farben als auch Beschriftungen einfach in den Einstellungen an.</p>
					</div>
					<div>
						<h4><i class="fa fa-check"></i> Daten Prüfen</h4>
						<p>Lasse deine Kunden im letzten Schritt ihre Daten vor Bestellabschluss prüfen und u.U. korrigieren.</p>
					</div>
					<div class="last-feature">
						<h4><i class="fa fa-refresh"></i> Kein Neuladen</h4>
						<p>Die Mehrstufige Kasse funktioniert komplett per Javascript. Inhalte werden asynchron nachgeladen.</p>
					</div>
				</div>
				<div class="vendipro-buttons">
					<a href="https://vendidero.de/woocommerce-germanized#pro" target="_blank" class="button button-primary wc-gzd-button">Pro Version entdecken</a>
					<p class="price smaller">ab 69,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
				</div>
			</div>
		</div>
		<div class="changelog vendipro">
			<h3>VendiPro - Das WooCommerce Theme für den deutschen Markt</h3>
			<div class="left">
				<a href="https://vendidero.de/vendipro" target="_blank"><img src="<?php 
        echo WC_germanized()->plugin_url();
        ?>
/assets/images/vendidero.jpg" /></a>
			</div>
			<div class="right">
				<p>Endlich ist es soweit - Ein WooCommerce Theme, perfekt auf den deutschen Markt abgestimmt.
				Mit <a href="https://vendidero.de/vendipro" target="_blank">VendiPro</a> wirken alle WooCommerce & WooCommerce Germanized Inhalte einfach noch professioneller.</p>
				<div class="wc-feature wc-vendipro-features feature-section col two-col">
					<div>
						<h4><i class="fa fa-mobile"></i> Responsive Layout</h4>
						<p>VendiPro hinterlässt sowohl auf Desktop- als auch auf Mobilgeräten einen klasse Eindruck!</p>
					</div>
					<div class="last-feature">
						<h4><i class="fa fa-pencil"></i> Individualität</h4>
						<p>Passe VendiPro einfach per WordPress Theme Customizer an deine Bedürfnisse an.</p>
					</div>
					<div>
						<h4><i class="fa fa-font"></i> Typisch deutsch</h4>
						<p>Gemacht für den deutschen Markt - und das merkt man sofort.</p>
					</div>
					<div class="last-feature">
						<h4><i class="fa fa-play-circle"></i> Slideshow</h4>
						<p>Einfach per Shortcode Slideshows und Produkt Carousels erstellen.</p>
					</div>
				</div>
				<div class="vendipro-buttons">
					<a href="https://vendidero.de/vendipro" target="_blank" class="button button-primary wc-gzd-button">mehr erfahren</a>
					<p class="price smaller">ab 49,95 € inkl. Mwst. - inkl. 1 Jahr Updates & Premium Support!</p>
				</div>
			</div>
		</div>
		<div class="changelog">
			<h3>Neu in WooCommerce Germanized 1.3</h3>
			<div class="wc-feature feature-section col three-col" style="margin-bottom: -30px">
				<div>
					<h4><i class="fa fa-file-pdf-o"></i> PDF Rechnungen & Lieferscheine <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#accounting">Pro</a></h4>
					<p>
					Als glücklicker Pro-User kannst du mit wenigen Klicks PDF Rechnungen, Lieferscheine und Stornierungen zu deinen Bestellungen erzeugen.
					Natürlich wurden auch die Rechnungen optimal an die Bedürfnisse des deutschen Marktes angepasst.
					</p>
				</div>
				<div>
					<h4><i class="fa fa-list-ol"></i> Mehrstufige Kasse <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#multistep-checkout">Pro</a></h4>
					<p>
					Nutze den beliebten Multistep-Checkout und biete deinen Kunden die Möglichkeit ihre eingegeben Daten vor dem Kauf noch einmal zu überprüfen und etwaige Falscheingaben zu korrigieren.
					</p>
				</div>
				<div class="last-feature">
					<h4><i class="fa fa-file-text-o"></i> Mustertexte API <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#generator">Pro</a></h4>
					<p>
					Generiere über die Schnittstelle zu vendidero.de in deinem Backend einfach Mustertexte für AGB & Widerrufsbelehrung.
					Fragen ausfüllen, Mustertext erhalten und mit einem Klick in die entsprechende Seite übernehmen.
					</p>
				</div>
				<div style="clear: both">
					<h4><i class="fa fa-clock-o"></i> Vertragsschluss <a class="wc-gzd-pro" target="_blank" href="https://vendidero.de/woocommerce-germanized#contract">Pro</a></h4>
					<p>
					Du möchtest den Zeitpunkt des Vertragsschlusses aktiv bestimmen und deine Bestellungen manuell prüfen?
					Alle Zahlungsinformationen werden erst dann an den Kunden ausgegeben, wenn du die Bestellung annimmst. 
					</p>
				</div>
				<div>
					<h4><i class="fa fa-thumbs-up"></i> Theme Kompatibilität</h4>
					<p>
					Falls du WooCommerce > 2.3 nutzst, überschreibt WooCommerce Germanized von nun an keine Templates mehr. 
					Damit sollte es mit deinem Theme keine Probleme mehr während des Bezahlvorganges geben.
					</p>
				</div>
				<div class="last-feature">
					<h4><i class="fa fa-arrows-h"></i> Einheiten anlegen</h4>
					<p>
					Du verkaufst basierend auf Einheitspreisen? Dann möchtest du vielleicht neue Einheiten (z.B. "Stück") hinzufügen.
					Alles kein Problem mehr mit dem <a href="<?php 
        echo admin_url('edit-tags.php?taxonomy=product_unit&post_type=product');
        ?>
">Einheiten-Editor</a>. Füge neue Einheiten hinzu oder passe die Bezeichnung an.
					</p>
				</div>
				<div style="clear: both">
					<h4><i class="fa fa-language"></i> WPML Kompatibilität</h4>
					<p>
					Einige von euch betreiben Multi-Sprachen-Shops. Um auch die Optionen (Kaufen-Button-Text etc.) von WooCommerce Germanized übersetzen zu können, haben wir 
					eine wpml-confix.xml Datei angelegt, die euch dabei hilft die Strings zu übersetzen.
					</p>
				</div>
				<div>
					<h4><i class="fa fa-reorder"></i> E-Mail Anhänge sortieren</h4>
					<p>
					Sortiere in deinen WooCommerce Germanized Einstellungen per Drag & Drop die E-Mail Anhänge (z.B. AGB, Widerrufsbelehrung, Impressum). So kannst du ganz einfach
					die Reihenfolge der Inhalte in deinen E-Mails beeinflussen.
					</p>
				</div>
			</div>
		</div>
		<div class="changelog">
			<h3>WooCommerce Germanized - Funktionsübersicht</h3>
			<div class="wc-feature feature-section col three-col">
				<div>
					<h4><i class="fa fa-child"></i> Kleinunternehmerregelung</h4>
					<p>Mit nur einem Klick wird Dein Online-Shop §19 UStG - kompatibel! Einfach die Häkchen innerhalb der WooCommerce Germanized Einstellungen setzen und schon geht es los.</p>
				</div>
				<div>
					<h4><i class="fa fa-truck"></i> Lieferzeiten</h4>
					<p>Erstelle einfach neue Lieferzeiten für deine Produkte. Die Lieferzeiten werden dann sowohl auf der Produktseite als auch im Bestellvorgang dargestellt.
					Die Bearbeitung der Lieferzeiten erfolgt ganz bequem per WordPress Taxonomy.</p>
				</div>
				<div class="last-feature">
					<h4><i class="fa fa-laptop"></i> Darstellungsoptionen</h4>
					<p>Wir haben die Darstellung des Warenkorbs und des Bezahlvorgangs für Dich an deutsche Rechtsgrundlagen angepasst. Zusätzlich kannst Du selbst entscheiden, welche rechtlich relevanten Seiten Du wo und wie verlinken willst.</p>
				</div>
				<div>
					<h4><i class="fa fa-legal"></i> Rechtlich relevante Seiten</h4>
					<p>Erstelle ganz einfach alle rechtlich relevanten Seiten (z.B. Datenschutz, Widerrufsbelehrung).
					Wir setzen den Inhalt automatisch in die von Dir ausgewählten E-Mail-Templates ein und fügen auf Wunsch auch Checkboxen zum Bezahlvorgang hinzu.</p>
				</div>
				<div>
					<h4><i class="fa fa-certificate"></i> Trusted Shops</h4>
					<p>Du möchtest deine Trusted Shops Mitgliedschaft in WooCommerce nutzen? Kein Problem. WooCommerce Germanized hat die Schnittstelle zu Trusted Shops bereits implementiert.
					Klicke <a href="<?php 
        echo esc_url(admin_url(add_query_arg(array('page' => 'wc-settings&tab=germanized&section=trusted_shops'), 'admin.php')));
        ?>
">hier</a> um die nötigen Einstellungen vorzunehmen.</p>
				</div>
				<div class="last-feature">
					<h4>Und noch vieles mehr</h4>
					<p>Natürlich gibt es auch noch viele weitere Optionen, die wir für Dich implementiert haben. Du kannst z.B. den Button-Text im Bestellabschluss ganz bequem anpassen oder entscheiden ob du den "zum Warenkorb" - Button wirklich auch in der Produktübersicht haben möchtest.</p>
				</div>
			</div>
		</div>
		<?php 
    }
<?php

/**
 * Trusted Shops Rich Snippets HTML
 *
 * @author 		Vendidero
 * @package 	WooCommerceGermanized/Templates
 * @version     1.0
 */
if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
?>

<?php 
echo WC_germanized()->trusted_shops->get_average_rating_html();
?>
	</tbody>
</table>

<table class="wc_status_table widefat" cellspacing="0" id="status">
	<thead>
		<tr>
			<th colspan="3" data-export-label="Templates"><?php 
_e('Templates', 'woocommerce');
?>
</th>
		</tr>
	</thead>
	<tbody>
		<?php 
$template_paths = apply_filters('woocommerce_gzd_template_overrides_scan_paths', array('WooCommerce Germanized' => WC_germanized()->plugin_path() . '/templates/'));
$scanned_files = array();
$found_files = array();
$outdated_templates = false;
foreach ($template_paths as $plugin_name => $template_path) {
    $scanned_files[$plugin_name] = WC_Admin_Status::scan_template_files($template_path);
}
foreach ($scanned_files as $plugin_name => $files) {
    $plugin_subfolder = sanitize_title($plugin_name);
    foreach ($files as $file) {
        if (strpos($file, '.php') === false) {
            continue;
        }
        if (file_exists(get_stylesheet_directory() . '/' . $file)) {
            $theme_file = get_stylesheet_directory() . '/' . $file;
        } elseif (file_exists(get_stylesheet_directory() . '/' . $plugin_subfolder . '/' . $file)) {
Beispiel #13
0
 /**
  * Checks revocation form and sends Email to customer and Admin
  */
 public static function gzd_revocation()
 {
     check_ajax_referer('woocommerce-revocation', 'security');
     wp_verify_nonce($_POST['_wpnonce'], 'woocommerce-revocation');
     $data = array();
     $fields = WC_GZD_Revocation::get_fields();
     if (!empty($fields)) {
         foreach ($fields as $key => $field) {
             if ($key != 'sep') {
                 if ($key == 'address_mail') {
                     if (!is_email($_POST[$key])) {
                         wc_add_notice('<strong>' . $field['label'] . '</strong> ' . _x('is not a valid email address.', 'revocation-form', 'woocommerce-germanized'), 'error');
                     }
                 } elseif ($key == 'address_postal') {
                     if (!WC_Validation::is_postcode($_POST[$key], $_POST['address_country']) || empty($_POST[$key])) {
                         wc_add_notice(_x('Please enter a valid postcode/ZIP', 'revocation-form', 'woocommerce-germanized'), 'error');
                     }
                 } else {
                     if (isset($field['required']) && empty($_POST[$key])) {
                         wc_add_notice('<strong>' . $field['label'] . '</strong> ' . _x('is not valid.', 'revocation-form', 'woocommerce-germanized'), 'error');
                     }
                 }
                 if (!empty($_POST[$key])) {
                     if ($field['type'] == 'country') {
                         $countries = WC()->countries->get_countries();
                         $data[$key] = $countries[sanitize_text_field($_POST[$key])];
                     } else {
                         $data[$key] = sanitize_text_field($_POST[$key]);
                     }
                 }
             }
         }
     }
     $error = false;
     if (wc_notice_count('error') == 0) {
         wc_add_notice(_x('Thank you. We have received your Revocation Request. You will receive a conformation email within a few minutes.', 'revocation-form', 'woocommerce-germanized'), 'success');
         // Send Mail
         if ($mail = WC_germanized()->emails->get_email_instance_by_id('customer_revocation')) {
             $mail->trigger($data);
             // Send to Admin
             $data['mail'] = get_bloginfo('admin_email');
             $mail->trigger($data);
         }
     } else {
         $error = true;
     }
     ob_start();
     wc_print_notices();
     $messages = ob_get_clean();
     if ($error) {
         echo '<!--WC_START-->' . json_encode(array('result' => 'failure', 'messages' => isset($messages) ? $messages : '')) . '<!--WC_END-->';
     } else {
         if (is_ajax()) {
             echo '<!--WC_START-->' . json_encode(array('result' => 'success', 'messages' => isset($messages) ? $messages : '')) . '<!--WC_END-->';
         }
     }
     exit;
 }
 /**
  * Checks if current theme is woocommerce germanized compatible
  *  
  * @return boolean
  */
 public function is_theme_compatible()
 {
     $templates_to_check = WC_germanized()->get_critical_templates();
     if (!empty($templates_to_check)) {
         foreach ($templates_to_check as $template) {
             $template_path = trailingslashit('woocommerce') . $template;
             $theme_template = locate_template(array($template_path, $template));
             if ($theme_template) {
                 return false;
             }
         }
     }
     return true;
 }
 /**
  * Update DB version to current
  */
 private static function update_db_version($version = null)
 {
     delete_option('woocommerce_gzd_db_version');
     add_option('woocommerce_gzd_db_version', is_null($version) ? WC_germanized()->version : $version);
 }
 /**
  * Returns unit
  *  
  * @return string
  */
 public function get_unit()
 {
     $unit = $this->unit;
     return WC_germanized()->units->{$unit};
 }
 /**
  * Send Customer Email notifications if necessary (loops through orders and checks day difference after completion)
  */
 public function send_mails()
 {
     $order_query = new WP_Query(array('post_type' => 'shop_order', 'post_status' => 'wc-completed', 'meta_query' => array(array('key' => '_ekomi_review_link', 'compare' => 'EXISTS'), array('key' => '_ekomi_review_mail_sent', 'compare' => 'NOT EXISTS'))));
     while ($order_query->have_posts()) {
         $order_query->next_post();
         $order = wc_get_order($order_query->post->ID);
         $diff = WC_germanized()->get_date_diff($order->completed_date, date('Y-m-d H:i:s'));
         if ($diff['d'] >= (int) get_option('woocommerce_gzd_ekomi_day_diff')) {
             if ($mail = WC_germanized()->emails->get_email_instance_by_id('customer_ekomi')) {
                 $mail->trigger($order->id);
                 update_post_meta($order->id, '_ekomi_review_mail_sent', 1);
                 update_post_meta($order->id, '_ekomi_review_link', '');
             }
         }
     }
 }
			<a class="button button-secondary" style="float:right" href="https://vendidero.de/woocommerce-germanized#accounting" target="_blank">mehr erfahren</a>
		<?php 
}
?>
	</li>

	<li class="wc-gzd-tour-pro" data-el="#woocommerce_gzdp_enable_vat_check" data-orientation="top" data-width="500">
		<h2><span class="wc-gzd-pro">pro</span> Umsatzsteuer ID prüfen</h2>
		<p>
			Verkäufer, die an gewerbliche Käufer im europäischen Ausland verkaufen kennen das: Die Umsatzsteuer soll bei Eingabe
			einer validen Umsatzsteuer-Identifikationsnummer entfallen. Mit der Pro-Version kein Problem mehr. Das Plugin prüft nach Eingabe einer USt.-ID automatisch
			anhand der europäischen Schnittstelle, ob die ID valide ist und entfernt die USt. in der Kasse.
		</p>
		<a class="button button-primary tourbus-next" href="javascript:void(0);">weiter</a>
		<?php 
if (!WC_germanized()->is_pro()) {
    ?>
			<a class="button button-secondary" style="float:right" href="https://vendidero.de/woocommerce-germanized#vat" target="_blank">mehr erfahren</a>
		<?php 
}
?>
	</li>

	<li data-el=".submit" data-orientation="top">
		<h2>Einstellungen speichern</h2>
		<p>Wenn du deine Einstellungen angepasst hast, dann speichere sie über diesen Button.
		</p>
		<a class="button button-primary" href="<?php 
echo add_query_arg(array('section' => 'display'), WC_GZD_Admin::instance()->disable_tour_link('general'));
?>
">Weiter zur Anzeige</a>
 /**
  * Default options
  *
  * Sets up the default options used on the settings page
  *
  * @access public
  */
 function create_options()
 {
     include_once WC()->plugin_path() . '/includes/admin/settings/class-wc-settings-page.php';
     include_once WC_germanized()->plugin_path() . '/includes/admin/settings/class-wc-gzd-settings-germanized.php';
     $settings = new WC_GZD_Settings_Germanized();
     $options = $settings->get_settings();
     if (get_option('woocommerce_gzdp_invoice_enable') != 'no') {
         $invoices = WC_GZDP_Invoice_Helper::instance();
         $options = array_merge($options, $invoices->get_settings());
     }
     foreach ($options as $value) {
         if (isset($value['id']) && strpos($value['id'], 'gzdp') !== false && isset($value['default'])) {
             $autoload = isset($value['autoload']) ? (bool) $value['autoload'] : true;
             add_option($value['id'], $value['default'], '', $autoload ? 'yes' : 'no');
         }
     }
 }
 /**
  * Add Scripts to frontend
  */
 public function add_scripts()
 {
     global $post;
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $assets_path = str_replace(array('http:', 'https:'), '', WC_germanized()->plugin_url()) . '/assets/';
     $frontend_script_path = $assets_path . 'js/';
     if (is_page()) {
         wp_enqueue_script('wc-gzd-revocation', $frontend_script_path . 'revocation' . $suffix . '.js', array('jquery', 'woocommerce', 'wc-country-select', 'wc-address-i18n'), WC_GERMANIZED_VERSION, true);
     }
     if (is_checkout()) {
         wp_enqueue_script('wc-gzd-checkout', $frontend_script_path . 'checkout' . $suffix . '.js', array('jquery', 'wc-checkout'), WC_GERMANIZED_VERSION, true);
     }
     if (is_singular('product')) {
         $product = wc_get_product($post->ID);
         if ($product && $product->is_type('variable')) {
             // Enqueue variation scripts
             wp_enqueue_script('wc-add-to-cart-variation');
             wp_enqueue_script('wc-gzd-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation' . $suffix . '.js', array('jquery', 'woocommerce'), WC_GERMANIZED_VERSION, true);
         }
     }
 }
 /**
  * Handle updates
  */
 public function update()
 {
     // Do updates
     if (!empty($_GET['install_woocommerce_gzd_tax_rates'])) {
         self::create_tax_rates();
     }
     $current_db_version = get_option('woocommerce_gzd_db_version');
     update_option('woocommerce_gzd_db_version', WC_germanized()->version);
 }
 /**
  * Check for customer that didn't activate their accounts within a couple of time and delete them
  */
 public function account_cleanup()
 {
     if (!get_option('woocommerce_gzd_customer_cleanup_interval') || get_option('woocommerce_gzd_customer_cleanup_interval') == 0) {
         return;
     }
     $user_query = new WP_User_Query(array('role' => 'Customer', 'meta_query' => array(array('key' => '_woocommerce_activation', 'compare' => 'EXISTS'))));
     if (!empty($user_query->results)) {
         foreach ($user_query->results as $user) {
             // Check date interval
             $registered = $user->data->user_registered;
             $date_diff = WC_germanized()->get_date_diff($registered, date('Y-m-d'));
             if ($date_diff['d'] >= (int) get_option('woocommerce_gzd_customer_cleanup_interval')) {
                 require_once ABSPATH . 'wp-admin/includes/user.php';
                 wp_delete_user($user->ID);
             }
         }
     }
 }
 /**
  * payment_scripts function.
  *
  * Outputs scripts used for simplify payment
  */
 public function payment_scripts()
 {
     if (!is_checkout() || !$this->is_available()) {
         return;
     }
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $assets_path = str_replace(array('http:', 'https:'), '', WC()->plugin_url()) . '/assets/';
     // Ensure that prettyPhoto is being loaded
     wp_register_script('prettyPhoto_debit', $assets_path . 'js/prettyPhoto/jquery.prettyPhoto' . $suffix . '.js', array('jquery'), '3.1.6', true);
     wp_enqueue_script('prettyPhoto_debit');
     wp_register_style('woocommerce_prettyPhoto_css_debit', $assets_path . 'css/prettyPhoto.css');
     wp_enqueue_style('woocommerce_prettyPhoto_css_debit');
     wp_register_script('wc-gzd-iban', WC_germanized()->plugin_url() . '/includes/gateways/direct-debit/assets/js/iban' . $suffix . '.js', array('wc-checkout'), WC_GERMANIZED_VERSION, true);
     wp_enqueue_script('wc-gzd-iban');
     wp_register_script('wc-gzd-direct-debit', WC_germanized()->plugin_url() . '/includes/gateways/direct-debit/assets/js/direct-debit' . $suffix . '.js', array('wc-gzd-iban'), WC_GERMANIZED_VERSION, true);
     wp_localize_script('wc-gzd-direct-debit', 'direct_debit_params', array('iban' => __('IBAN', 'woocommerce-germanized'), 'swift' => __('BIC/SWIFT', 'woocommerce-germanized'), 'is_invalid' => __('is invalid', 'woocommerce')));
     wp_enqueue_script('wc-gzd-direct-debit');
 }
<?php

/**
 * Admin View: Settings default sidebar
 */
if (!defined('ABSPATH')) {
    exit;
    // Exit if accessed directly
}
?>
<div class="wc-gzd-admin-settings-sidebar">
	<h3>VendiPro - Typisch deutsch!</h3>
	<div class="wc-gzd-sidebar-img">
		<a href="https://vendidero.de/vendipro" target="_blank"><img class="browser" src="<?php 
echo WC_germanized()->plugin_url();
?>
/assets/images/vendidero.jpg" /></a>
	</div>
	<p>VendiPro ist ein für den deutschen Markt entwickeltes WooCommerce Theme. Mit VendiPro sind alle WooCommerce und WooCommerce Germanized Einstellungen auch optisch perfekt auf den deutschen Markt abgestimmt.</p>
	<div class="wc-gzd-sidebar-action">
		<a class="button button-primary wc-gzd-button" href="https://vendidero.de/vendipro" target="_blank">jetzt entdecken</a>
		<span class="small">ab 49,95 € inkl. Mwst. und 1 Jahr Updates & Support!</span>
	</div>
</div>
<?php

/**
 * Trusted Shops Reviews Graphic
 *
 * @author 		Vendidero
 * @package 	WooCommerceGermanized/Templates
 * @version     1.0
 */
if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
?>

<?php 
echo WC_germanized()->trusted_shops->get_review_widget_html();
 public function init_tour_data($section = 'general')
 {
     if (empty($section)) {
         $section = 'general';
     }
     if (!WC_GZD_Admin::instance()->is_tour_enabled($section)) {
         return;
     }
     $tour = WC_germanized()->plugin_path() . '/includes/admin/views/html-tour-' . $section . '.php';
     if (file_exists($tour)) {
         include $tour;
     }
 }
    /**
     * Variable Products meta for WC pre 2.3
     */
    public static function output_pre($loop, $variation_data)
    {
        $variation_id = isset($variation_data['variation_post_id']) ? $variation_data['variation_post_id'] : -1;
        $delivery_times = get_the_terms($variation_id, 'product_delivery_time');
        $delivery_time = $delivery_times && !is_wp_error($delivery_times) ? current($delivery_times)->term_id : '';
        ?>
		<tr>
			<td>
				<label><?php 
        _e('Unit', 'woocommerce-germanized');
        ?>
:</label>
				<select name="variable_unit[<?php 
        echo $loop;
        ?>
]">
					<option value="parent" <?php 
        selected(is_null(isset($variation_data['_unit'][0]) ? $variation_data['_unit'][0] : null), true);
        ?>
><?php 
        _e('None', 'woocommerce-germanized');
        ?>
</option>
					<?php 
        foreach (WC_germanized()->units->get_units() as $key => $value) {
            echo '<option value="' . esc_attr($key) . '" ' . selected($key === (isset($variation_data['_unit'][0]) ? $variation_data['_unit'][0] : ''), true, false) . '>' . esc_html($value) . '</option>';
        }
        ?>
</select>
			</td>
			<td>
				<label for="variable_unit_base"><?php 
        echo __('Unit Base', 'woocommerce-germanized');
        ?>
:</label>
				<input class="input-text wc_input_decimal" size="6" type="text" name="variable_unit_base[<?php 
        echo $loop;
        ?>
]" value="<?php 
        echo isset($variation_data['_unit_base'][0]) ? esc_attr(wc_format_localized_decimal($variation_data['_unit_base'][0])) : '';
        ?>
" placeholder="" />
			</td>
		</tr>
		<tr>
			<td>
				<label for="variable_unit_price_regular"><?php 
        echo __('Regular Unit Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')';
        ?>
:</label>
				<input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_regular[<?php 
        echo $loop;
        ?>
]" value="<?php 
        echo isset($variation_data['_unit_price_regular'][0]) ? esc_attr(wc_format_localized_price($variation_data['_unit_price_regular'][0])) : '';
        ?>
" placeholder="" />
			</td>
			<td>
				<label for="variable_unit_price_sale"><?php 
        echo __('Sale Unit Price', 'woocommerce-germanized') . ' (' . get_woocommerce_currency_symbol() . ')';
        ?>
:</label>
				<input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_sale[<?php 
        echo $loop;
        ?>
]" value="<?php 
        echo isset($variation_data['_unit_price_sale'][0]) ? esc_attr(wc_format_localized_price($variation_data['_unit_price_sale'][0])) : '';
        ?>
" placeholder="" />
			</td>
		</tr>
		<tr>
			<td class="hide_if_variation_virtual">
				<label><?php 
        _e('Delivery Time', 'woocommerce-germanized');
        ?>
:</label> 
				<?php 
        $args = array('taxonomy' => 'product_delivery_time', 'hide_empty' => 0, 'show_option_none' => __('None', 'woocommerce-germanized'), 'name' => 'variable_delivery_time[' . $loop . ']', 'id' => '', 'selected' => isset($delivery_time) ? esc_attr($delivery_time) : '', 'echo' => 0);
        echo wp_dropdown_categories($args);
        ?>
			</td>
		</tr>
		<tr>
			<td colspan="2" class="variable_cart_mini_desc_pre">
				<label for="variable_product_mini_desc"><?php 
        echo __('Optional Mini Description', 'woocommerce-germanized');
        ?>
:</label>
				<?php 
        wp_editor(htmlspecialchars_decode(isset($variation_data['_mini_desc'][0]) ? $variation_data['_mini_desc'][0] : ''), 'wc_gzd_product_mini_desc_' . $loop, array('textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true));
        ?>
			</td>
		</tr>
		<?php 
    }
<div class="wc-gzd-premium">
	<div class="wc-gzd-premium-overlay-wrapper">
		<div class="wc-gzd-premium-overlay notice notice-warning inline">
			<h3><?php 
_e('Get WooCommerce Germanized Pro to unlock', 'woocommerce-germanized');
?>
</h3>
			<p><?php 
_e('Enjoy even more professional features such as invoices, legal text generators, B2B VAT settings and premium support!', 'woocommerce-germanized');
?>
</p>
			<p><a class="button button-primary" href="https://vendidero.de/woocommerce-germanized" target="_blank"><?php 
_e('Upgrade now', 'woocommerce-germanized');
?>
</a></p>
		</div>
		<a href="https://vendidero.de/woocommerce-germanized" target="_blank">
			<img src="<?php 
echo WC_Germanized()->plugin_url();
?>
/assets/images/pro/settings-<?php 
echo $current_section;
?>
.png?v=<?php 
echo WC_germanized()->version;
?>
" />
		</a>
	</div>
</div>
 /**
  * Returns eKomi Widget html
  *  
  * @param  array $atts 
  * @return string       
  */
 public static function ekomi_widget($atts)
 {
     return WC_germanized()->ekomi->get_widget($atts);
 }
}
// Exit if accessed directly
$order = wc_get_order($order_id);
?>

<div id="trustedShopsCheckout" style="display: none;">
	<span id="tsCheckoutOrderNr"><?php 
echo $order->id;
?>
</span> 
	<span id="tsCheckoutBuyerEmail"><?php 
echo $order->billing_email ? $order->billing_email : '';
?>
</span>
	<span id="tsCheckoutBuyerId"><?php 
echo $order->user_id;
?>
</span>
	<span id="tsCheckoutOrderAmount"><?php 
echo $order->get_total();
?>
</span>
	<span id="tsCheckoutOrderCurrency"><?php 
echo $order->get_order_currency();
?>
</span>
	<span id="tsCheckoutOrderPaymentType"><?php 
echo WC_germanized()->trusted_shops->get_payment_gateway($order->payment_method);
?>
</span>
</div>