# Plugins

# Addon - Flexible Product Fields

### Beschreibung:

  
Ein Plugin um einen Artikel mit weiteren Feldern auszustatten  
  
Woocommerce Plugin Seite :

[https://de.wordpress.org/plugins/flexible-product-fields/](https://de.wordpress.org/plugins/flexible-product-fields/)

Mit diesem Addon kann man weitere Felder zum Produkt hinzufügen.  
konfigurierbar unter Plugins einstellungen.  
Dort kann die Eigenschaft an Produkt oder eine Kategorie gepackt werden.  
produkt auswählen und dann Feldeigenschaft whälen und Feld Namen geben fertig ;-)

[![Auswahl_1357.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/jXfKzWytHCQF78y7-auswahl-1357.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/jXfKzWytHCQF78y7-auswahl-1357.png)

[![Auswahl_1358.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/7NFAcyRH6NGE88oo-auswahl-1358.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/7NFAcyRH6NGE88oo-auswahl-1358.png)

Und schon gibts ein Feld beim Artikel

[![Auswahl_1359.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/ubkJ1NNVc8wzpH8C-auswahl-1359.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/ubkJ1NNVc8wzpH8C-auswahl-1359.png)

# Addon - Product Addons for Woocommerce – Product Options with Custom Fields

### Beschreibung:

Ein weiteres Plugin was zusätzliche Felder zu einem Produkt hinzufügen kann.  
bei diesem ist der Vorteil man kann es über ganze Kategorien packen, bei dem vorherigen musste man jedes Produkt einzeln aufführen, und die Beschreibung sieht auch besser aus

[https://de.wordpress.org/plugins/woo-custom-product-addons/](https://de.wordpress.org/plugins/woo-custom-product-addons/)

### Einrichtung:

Unter Plugin auf create Forms klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/HjpmCqiDi2pZSCYT-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/HjpmCqiDi2pZSCYT-grafik.png)

Dort kann man oben eon neues Form erstellen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/9gBnsjzm2PGDhcWn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/9gBnsjzm2PGDhcWn-grafik.png)

Unten weiter stehen schon bestehende Forms.  
Ein Form ist für einen Artikel gedacht, ein Form kann natürlich mehrere Felder haben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/qBaGTUzAvb0uHmC5-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/qBaGTUzAvb0uHmC5-grafik.png)

Hier gehen wir in die Details eines Forms, das ist das gleiche als wenn wir ein neues erstellen würden.

Oben der Title zusätzliche Domain, dieser taucht nirgends auf, sondern dient der Beschreibung bzw Namen des Form.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/WFuFV40BV1zpOd7t-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/WFuFV40BV1zpOd7t-grafik.png)

Rechts haben wir weitere Felder die wir ren einziehen können wenn wir noch weitere Felder anlegen wollen.  
Wir klicken hier unsere vorhandendes Feld an, gibts noch keins und wir ziehen ein Feld rein kommts auf selbe hinaus.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/aJhhIplIXhv05q2i-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/aJhhIplIXhv05q2i-grafik.png)

Nun habn wir auf der rechten Seite die Feldeigenschaften.  
Das Label, das ist auch das was dann beim Artikel erscheint.  
Enabled / Disabled, sprich soll das Feld aktiv sein.  
Required, ist der Haken gesetzt muss das Feld ausgefüllt sein, sonst kann der Artikel nicht in den Warenkorb gepackt werden.  
In der Feldbeschreibung, kann kann man auch nochmals ausfüllen was das Feld macht, ich habs aber ins Label mit reingepackt

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/DmSiaWm0wzzHbXML-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/DmSiaWm0wzzHbXML-grafik.png)

Nun unter condition wenn man mehrere Felder hat, kann man sich weitere Felder erst anzeigen lassen, wenn die vorherigen schon befüllt sind. So kann man eine Art Assistent bauen, die Felder ploppen nach und nach je auswahl auf. oder Sogar andere Auswahlen.  
Zum Beispiel bei CPU AMD oder intel.  
Bei Intel würden im zweiten Drop Down menü dann die Intel bzw bei AMD die AMD CPUs gelistet werden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/S9hjPw2LgaKg6deJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/S9hjPw2LgaKg6deJ-grafik.png)

Zum Schluss kann über das Zahnrad bestimmt werden, für Welche Produkte oder Produkt Kategorien.  
Dies ist ein zusatzartikel für jeweils eine bestimmte Produktkategorie.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/rsEDZboQiayDxAOj-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/rsEDZboQiayDxAOj-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/CyVVp2HoY8MJGU5r-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/CyVVp2HoY8MJGU5r-grafik.png)

Zum Schluss das ganze noch speichern.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/DtyueQKOfZNVKs1q-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/DtyueQKOfZNVKs1q-grafik.png)

### Fertig:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/Jku5AD0iqshJjhps-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/Jku5AD0iqshJjhps-grafik.png)

# Addon - Code Snippet

### Beschreibung:

Einige Funktionen oder Änderungen lassen sich durch kleine Code Snipptes in der function.php realisieren.  
Allerdings ist das manuelle bearbeiten meist umständlich.  
Vorallem wenn ein Code Snippet Fehlerhaft ist, funktioniert unter Umständen das ganze Wordpress nicht mehr.

Hier ein Plugin mit dem man solche Snippets verwalten kann.

Download Link : [https://de.wordpress.org/plugins/code-snippets/](https://de.wordpress.org/plugins/code-snippets/)

### Bedienung:

Nach der installtion hat man links im Menü Snipptes und alle Snippets.  
Es gibt schon ein paar Demo Snipptes die aber deaktiviert sind.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/ohpDU3bpLxg0r6W6-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/ohpDU3bpLxg0r6W6-grafik.png)

Über Neu hinzufügen können wir ein neues Snippet einfügen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/vX3LgCgZXPHhwpbv-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/vX3LgCgZXPHhwpbv-grafik.png)

hier ein Snippet was prüft ob der Kunde den Artiekl in der vergangenheit schon mal gekauft hat.  
Dieses wird im Produkt dargestellt

```
add_action('woocommerce_before_single_product', function() {
    if (!is_user_logged_in()) {
        echo '<div style="padding:10px;background:#ffeeba;border-left:5px solid #f0ad4e;margin-bottom:15px;">
                🔒 Du bist nicht eingeloggt. Eine Besitzprüfung ist nicht möglich.
              </div>';
        return;
    }

    global $product;
    $user_id = get_current_user_id();
    $product_id = $product->get_id();

    $owns_product = wc_customer_bought_product('', $user_id, $product_id);

    if ($owns_product) {
        echo '<div style="padding:10px;background:#d4edda;border-left:5px solid #28a745;margin-bottom:15px;">
                ✅ Du besitzt dieses Produkt bereits.
              </div>';
    } else {
        echo '<div style="padding:10px;background:#f8d7da;border-left:5px solid #dc3545;margin-bottom:15px;">
                ❌ Du besitzt dieses Produkt nicht.
              </div>';
    }
});

```

Titel Ausfüllen den Quelltext reinpacken.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/tXRlrtusWzXHpvsl-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/tXRlrtusWzXHpvsl-grafik.png)

Unten weiter kann noch eine Beschreibung angeben werden.  
Dann auf Speichern und aktivieren klicken.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/bWzmdQSwCv2XZgco-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/bWzmdQSwCv2XZgco-grafik.png)

### Nun sollte das Snippet beim Artikel genau das tun, was es soll:

Wenn man nicht eingeloggt ist bekommt man diese Meldung:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/7Z2kV0XzNiCy8epz-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/7Z2kV0XzNiCy8epz-grafik.png)

Wenn man eingeloggt ist, diese wenn gekauft

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/lsKJ83VKHqzod23A-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/lsKJ83VKHqzod23A-grafik.png)

und wenn man es noch nicht besitzt

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/EHyDCVjE9OsYyHiC-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/EHyDCVjE9OsYyHiC-grafik.png)

Man kann sich überlegen ob man sich die Ausgabe, das man es nicht besitzt spart. In dem Man dieses wieder auskommentiert bzw. den else block entfernt.

Dort steht es nun in der Liste.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/rG3bFDaSIcWrQb1l-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/rG3bFDaSIcWrQb1l-grafik.png)

# Addon - WooCommerce Product Dependencies

### Beschreibung:

EIn Plugin das Abhängigkeiten zu anderen Produkten hat.  
bedeuet ein Benutzer muss ein Produkt im Warenkorb oder in der Vergangenheit gekauft haben, damit er den Artikel in den Warenkorb packen kann.  
  
[https://wordpress.org/plugins/woocommerce-product-dependencies/](https://wordpress.org/plugins/woocommerce-product-dependencies/)

Allerdings hat die version 2.0.1 einen Bug bei gekauften Produkten.  
habe Ihn mit einem Workaround gefixt. Siehe weiter unten bei BUG

Bedienung:

Nach der Installation gibt es nichts weiter einzustellen.  
unter Produkt gibt es einen neuen Menüpunkt Dependencies

Dort kann man einstellen ob die Abhängigkeit von einem einzelnen Produkt sein soll, oder eine Kategorie.  
Dann der Abhängigkeitstyp / Dependency type :

- Ownership: Obs schon gekauft sein muss
- Purchase : Ob im Warenkorb sein muss
- Either: Beides, muss im Warenkorb oder schon mal gekauft worden sein.   
    Eins von beiden muss zutreffen, also eine oder <span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Bedingung</span></span>

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/T6g5TL6snrjcbGvG-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/T6g5TL6snrjcbGvG-grafik.png)

### BUG:

Lösung:

Die Funktion

```
....
	// Check ownership.
			if ( in_array( $dependency_type, array( self::DEPENDENCY_TYPE_OWNERSHIP, self::DEPENDENCY_TYPE_EITHER ) ) ) {

				if ( is_user_logged_in() ) {

					$current_user = wp_get_current_user();

					if ( 'category_ids' === $dependency_selection_type ) {
						$tied_product_ids = $this->get_product_ids_in_categories( $tied_category_ids );

...
dies muss stehen belieben, die funktion ghet bis hier:

$result = $ownership_dependency_result || $purchase_dependency_result;
```

Ersetzen durch

```
// Check ownership (vereinfachte Prüfung).
        if ( in_array( $dependency_type, array( self::DEPENDENCY_TYPE_OWNERSHIP, self::DEPENDENCY_TYPE_EITHER ) ) ) {

            if ( is_user_logged_in() ) {

                $current_user = wp_get_current_user();

                // Hole ggf. Produkt-IDs aus Kategorie
                if ( 'category_ids' === $dependency_selection_type ) {
                    $tied_product_ids = $this->get_product_ids_in_categories( $tied_category_ids );
                } else {
                    $tied_product_ids = $tied_ids;
                }

                foreach ( $tied_product_ids as $tied_id ) {
                    if ( wc_customer_bought_product( '', $current_user->ID, $tied_id ) ) {
                        $ownership_dependency_result = true;
                        break;
                    }
                }

                // Kombinieren mit Kaufabhängigkeit falls nötig
                if ( $ownership_dependency_result && self::DEPENDENCY_TYPE_EITHER === $dependency_type ) {
                    $purchase_dependency_result = true;
                }
            }
        }
        //hier endet die funktion und die datei geht normal weiter
```

Dann sieht das ganze so aus:

```
....
// Check ownership (vereinfachte Prüfung).
        if ( in_array( $dependency_type, array( self::DEPENDENCY_TYPE_OWNERSHIP, self::DEPENDENCY_TYPE_EITHER ) ) ) {

            if ( is_user_logged_in() ) {

                $current_user = wp_get_current_user();

                // Hole ggf. Produkt-IDs aus Kategorie
                if ( 'category_ids' === $dependency_selection_type ) {
                    $tied_product_ids = $this->get_product_ids_in_categories( $tied_category_ids );
                } else {
                    $tied_product_ids = $tied_ids;
                }

                foreach ( $tied_product_ids as $tied_id ) {
                    if ( wc_customer_bought_product( '', $current_user->ID, $tied_id ) ) {
                        $ownership_dependency_result = true;
                        break;
                    }
                }

                // Kombinieren mit Kaufabhängigkeit falls nötig
                if ( $ownership_dependency_result && self::DEPENDENCY_TYPE_EITHER === $dependency_type ) {
                    $purchase_dependency_result = true;
                }
            }
        }
        //hier endet die funktion und die datei geht normal weiter
      $result = $ownership_dependency_result || $purchase_dependency_result;

			// Show notice.
			if ( false === $result ) {
            ...
```

Hier einmal die [woocommerce-product-dependencies.php](https://wiki.hacker-net.de/attachments/80) zum download bzw   
gleich die ganze Plugin Zip [woocommerce-product-dependencies-2.0.1-original-ownership-logic-fix.zip](https://wiki.hacker-net.de/attachments/81)

# Addon - Checkout Field Editor (Checkout Manager)

### Beschreibung:

Check Out Filed manager.  
Damit können zusätzliche Felder zu den Kundendaten erfasst werden.

Download : [https://wordpress.org/plugins/woo-checkout-field-editor-pro/](https://wordpress.org/plugins/woo-checkout-field-editor-pro/)

Einrichtung:  
Im Plugin Manager auf Settings klicken.

Dann unter Block check out und Adresses, findet man alle Einstellungen / Felder für die Adressen.  
Die Reihenfolge lässt sich auch ändern

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/CCmkwEeiKetxbRYz-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/CCmkwEeiKetxbRYz-grafik.png)

Wer das Englische nicht mag kann diese ja in Deutsch umbenennen.  
und schon steht der Firmenname mit drin.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/UBvxNylbFlTqilUp-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/UBvxNylbFlTqilUp-grafik.png)

# Addon - Custom Order Numbers for WooCommerce

### Beschreibung:

Order Nummern anpassen zurück setzten Plugin.

[https://wordpress.org/plugins/custom-order-numbers-for-woocommerce/](https://wordpress.org/plugins/custom-order-numbers-for-woocommerce/)

### Bedienung:

unter Einstellungen -&gt; Custom Order Numbers for WooCommerce  
  
order number Format

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/db7moZxVe6BlQIWK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/db7moZxVe6BlQIWK-grafik.png)

Hier kann man die Sequenz und Prefixe einstellen

Uns interessiert nur dies, denn wir wollen einfach Order Nummern fortlaufend

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/nTnV6BPdaCZ6NKIW-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/nTnV6BPdaCZ6NKIW-grafik.png)

Möchte man vorhandene Order Nummern umbenennen

Runter scrollen bis Renumerate Order Tools

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/aGWGlNdKOr3yIqgm-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/aGWGlNdKOr3yIqgm-grafik.png)

Auf renumerate klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/6DCMP3KNCURuLNKx-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/6DCMP3KNCURuLNKx-grafik.png)

Das Ergebnis, alle order Nummern, Nummeriert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/NOnZRezBxm3QZyce-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/NOnZRezBxm3QZyce-grafik.png)

### Alles zurücksetzten:

Erstmal alle Bestellungen löschen und den Papierkorb auch leeren:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/N1dWfG6bwkdPB1NZ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/N1dWfG6bwkdPB1NZ-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/bW8QHDlgb2X58GiR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/bW8QHDlgb2X58GiR-grafik.png)

Nun in die Plugineinstellungen auf Settings gehen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/db7moZxVe6BlQIWK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/db7moZxVe6BlQIWK-grafik.png)

Ganz nach unten Scrollen  
  
reset Section Settings anklicken und speichern anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/FDsoKSAI262nhvxZ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/FDsoKSAI262nhvxZ-grafik.png)

Nun kann wieder von vorne begonnen werden mit Bestell Nr 1

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/ZHDgd51KWSt0aEWJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/ZHDgd51KWSt0aEWJ-grafik.png)

# Addon - WooCommerce E-Invoicing Customizer

### Beschreibung:

Ein Plugin für Zugpferd,xrechung etc.  
Allerings ist der Germanized besser, auch wenn er Jährlich Geld kostet.  
Eine Super investition

Zugpferd Rechung und Rechnungen im Kundenkonto.  
Kasse DSGVO Konform etc.

Siehe hier:

[Addon - Germanized Pro für WooCommerce](https://wiki.hacker-net.de/books/wordpress/page/addon-germanized-pro-fur-woocommerce "Addon - Germanized Pro für WooCommerce")

### Einrichtung:

nach der installtion landet man automatisch in den Einstellungen.  
  
Erstmal die grundlegenden Sachen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/crd8FQWBSnHwfAxh-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/crd8FQWBSnHwfAxh-grafik.png)

  
[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/qSdOBPVmY8HgxW0I-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/qSdOBPVmY8HgxW0I-grafik.png)

Dann speichern.

Nun kann das Rechnungsdesign angepasst werden, dazu auf den Link klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/eEWsIQDbS9ufVx6H-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/eEWsIQDbS9ufVx6H-grafik.png)

Das Hauptmenü, an der linken Seite, können alle Bereiche definiert werden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/Nt0jJlm2hdLrWsP2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/Nt0jJlm2hdLrWsP2-grafik.png)

in der Rechnungsfußzeile ist das einzige was ich anpassen würde. Da müssen die Sachen aus der Rechung rein, wie Steuernummer etc.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/r82zIKGF1oWlBJaA-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/r82zIKGF1oWlBJaA-grafik.png)

zum Beispiel so:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/xCMncI36GvMrh4wu-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/xCMncI36GvMrh4wu-grafik.png)

Dann sieht die Vorschau so aus:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/DhPB3YXkER5esRlb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/DhPB3YXkER5esRlb-grafik.png)

Nun veröffentlichen.

# Addon - WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin

Beschreibung:

Ein SMTP-Server zum versenden von Email aus Wordpress heraus.

Einrichtung:

nach der Installation kommt der Setup Assitant

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/3VuhonpXWYT6T3NG-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/3VuhonpXWYT6T3NG-grafik.png)

Nun den Emailsender wählen.  
Es werden viele Anbieter ünterstützt

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/iZ16RgreXkeW1lQb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/iZ16RgreXkeW1lQb-grafik.png)

ich wähle hier anderer SMTP-Server aus

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/PiF729i7EnfVWr68-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/PiF729i7EnfVWr68-grafik.png)

Nun die Daten eingeben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/6SF2pAUCGMCY8bag-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/6SF2pAUCGMCY8bag-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/Fte9dOmrGsMZiyjF-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/Fte9dOmrGsMZiyjF-grafik.png)

Speichern und fortfahren

Alles so lassen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/XnfYVJqdPjNY5SF8-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/XnfYVJqdPjNY5SF8-grafik.png)

Diesen schritt überspringen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/eghfot2KFQKTm7Lt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/eghfot2KFQKTm7Lt-grafik.png)

Wir nutzen die Kostenlose Version, auch hier überspringen.  
Wer natürlich einen Schlüssel hat , eingeben und auf verbinden klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/FV0l9MtMp3nyPP2v-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/FV0l9MtMp3nyPP2v-grafik.png)

# Addon - Germanized Pro für WooCommerce

### Beschreibung:

Plugin das den Shop Germany rechtskomform macht, mit E-Rechnung etc.  
Für E Rechungen braucht man kostenpflichtig, Abo.  
Aber lohnt sich ;-)

[https://de.wordpress.org/plugins/woocommerce-germanized/](https://de.wordpress.org/plugins/woocommerce-germanized/)

### Einrichtung:

So lassen und weiter

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/26KvNiHwEgJWt7Wt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/26KvNiHwEgJWt7Wt-grafik.png)

Alles so lassen außer man ist Kleinunternehmer

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/C63IP9nGingz9VBQ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/C63IP9nGingz9VBQ-grafik.png)

Wer DHL integration braucht ist auch hier mit dem kostenlosen plugin bedient,  
ich brauche allerdings kein versand, habe nur digitale Produkte.  
Aber trotzdem cool DHL

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/pWWoFDQxwCGPGbfK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/pWWoFDQxwCGPGbfK-grafik.png)

Nun Auf Tutorial starten klicken

### [![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/s5eBY9ilz0V59OdE-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/s5eBY9ilz0V59OdE-grafik.png)

### Rechnungsnummern und alle Rechnungen zurück setzten:  
(dadurch gehen alle vorhandenen bzw. ausgewählten Rechnungen verloren)  
  


Dazu müssen wir Tabellen und Verzeichnis leeren.  
Um die Tabellen zu leeren, nehmen wir das WP Database plugin : [Addon - WP-DBManager](https://wiki.hacker-net.de/books/wordpress/page/addon-wp-dbmanager "Addon - WP-DBManager")

Nun gehen wir dort auf Emtpy Tables

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/S5MnIoRTd6G0VkK5-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/S5MnIoRTd6G0VkK5-grafik.png)

Dort wählen wir folgende Tabellen mit Empty aus

- `{prefix}_storeabill_documents`
- `{prefix}_storeabill_documentmeta`
- `{prefix}_storeabill_document_items`
- `{prefix}_storeabill_document_itemmeta`
- `{prefix}_storeabill_document_notices`
- `{prefix}_storeabill_document_noticemeta`
- `{prefix}_storeabill_document_attachments`
- `{prefix}_storeabill_document_attachmentmeta`

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/PPqjWC3Nk07Hs38K-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/PPqjWC3Nk07Hs38K-grafik.png)

Nun runter scrollen und auf empty drop klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/B2cUjpBbHnKAymZB-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/B2cUjpBbHnKAymZB-grafik.png)

Wurden geleert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/A1rafuvb3BRECznN-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/A1rafuvb3BRECznN-grafik.png)

Nun müssen wir noch die PDF wegräumen

wir gehen in den storebill ordner rein

```
root@shop:~/wordpress/data/wordpress/wp-content/uploads/storeabill-2b9e42fc8f# ls
2025  fonts  index.php	tmp
root@shop:~/wordpress/data/wordpress/wp-content/uploads/storeabill-2b9e42fc8f# 

```

Hier sehen wir die Jahre, in diesem Fall 2025, sollten bei euch noch mehrere Jahre sein. Alle Jahre löschen  
Die Ordner tmp fonts und die index.php Datei NICHT löschen.

```
rm -r 2025
```

Nun den Nummernkreis zurücksetzten.  
Nun Auf Einstellungen gehen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/Xwpfyiyz687aBAie-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/Xwpfyiyz687aBAie-grafik.png)

Dann bei Rechnungen und Lieferscheine auf den Stift klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/1xQyqW2LwuNioStg-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/1xQyqW2LwuNioStg-grafik.png)

Hier steht in der Vorschau was die nächste Nummer wäre. Was aber falsch ist da wir ja alles weggeschmissen haben

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/aW4FuJIup5lMSSOf-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/aW4FuJIup5lMSSOf-grafik.png)

Nun den Haken bei letzte Nummer anpassen rein und den Wert auf 0 ändern  
Nun steht in der Vorschau wieder die 1 als nächste Fortlaufende Nummer.  
Unser Prefix ist hier die 101. So kommt dann 1011 zu Stande.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/180kLVkYzLEe7efy-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/180kLVkYzLEe7efy-grafik.png)  
  
Dann auf speichern klicken.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/Z6AAEsDW8VIyQJpz-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/Z6AAEsDW8VIyQJpz-grafik.png)

# Addon - WP Control

Beschreibung:

WP Crontrol ermöglicht es Ihnen, die geplanten Cron-Ereignisse auf Ihrer WordPress-Website oder in Ihrem WooCommerce-Shop zu verwalten. Über die Administrationsseiten können Sie:

- Alle geplanten Cron-Ereignisse samt ihrer Parameter, Zeitpläne, Callback-Funktionen und dem nächsten Ausführungszeitpunkt anzeigen.
- Cron-Ereignisse bearbeiten, löschen, pausieren, fortsetzen und sofort ausführen.
- Neue Cron-Ereignisse hinzufügen.
- Cron-Ereignisse per Massenverarbeitung löschen.
- Individuelle Cron-Zeitpläne hinzufügen und entfernen.
- Cron-Ereignislisten als CSV-Datei exportieren und herunterladen.

WP Crontrol berücksichtigt Zeitzonen, warnt Sie vor Ereignissen, die keine Aktionen enthalten oder ihren Zeitplan verfehlt haben, und zeigt Ihnen eine hilfreiche Warnmeldung an, falls Probleme mit Ihrem Cron-System festgestellt werden.

**Nutzung**

- Gehen Sie im Menü zu **Werkzeuge → Cron-Ereignisse**, um Cron-Ereignisse zu verwalten.
- Gehen Sie im Menü zu **Einstellungen → Cron-Zeitpläne**, um Cron-Zeitpläne zu verwalten.

Plugin Webseite: [https://de.wordpress.org/plugins/wp-crontrol/](https://de.wordpress.org/plugins/wp-crontrol/)

Bedienung :

Unter Ereignisse kann der Status eingesehen werden oder Zeitpläne können eingesehen werden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/YWT30aXLGufjVKg2-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/YWT30aXLGufjVKg2-grafik.png)

Ereignisse :   
Hier kann man sehr schön sehen, das irgendwas mit dem cron system nicht stimmt.  
Aber sonst, wenn alles läuft sieht man hier die Ereignisse.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/ApEDFKbXhNb1b7C3-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/ApEDFKbXhNb1b7C3-grafik.png)

Wir klicken bei Weitere information bei cURL Fehler drauf.

### Fehlerdiagnose :   


#### Unser Problem ist :

cURL error 28: Operation timed out after 3000 milliseconds with 0 bytes received

This means there is a network connectivity problem preventing your server from performing "loopback" requests to itself.

3000 Milliskeunden sind 3 Sekunden.  
Wenn unsere Seite nicht schnell genug läuft gibts ein Timeout.

In der php.ini den Timeout einstellen auf 30 Sekunden

```
default_socket_timeout = 30
```

Sollte das auch nicht gehen, leiten wir die URL um wegen dem Caddy namen. Dann funktioniert die Auflösung nicht richtig.

Das machen wir mit dem Plugin Code Snippte

[Addon - Code Snippet](https://wiki.hacker-net.de/books/wordpress/page/addon-code-snippet "Addon - Code Snippet")

Snippt,

[http://wordpress](http://wordpress) is der name in der docker-compose Datei.  
Sollte dein DIenst anders heißen hier abändern genauso wie die externe url

```
add_filter('cron_request', function($cron_request) {
    // Ersetze die externe HTTPS-Adresse durch den internen HTTP-Service-Namen
    $cron_request['url'] = str_replace('https://deine-externe-domain.de', 'http://wordpress', $cron_request['url']);
    return $cron_request;
});

```

# Addon - WP-DBManager

### Beschreibung:

So ne Art abgespecktes phpmyadmin für Wordpress.  
  
URL : [https://de.wordpress.org/plugins/wp-dbmanager/](https://de.wordpress.org/plugins/wp-dbmanager/)

### Bedienung:

Nach der Installation gibt es links im Menü einen neuen Punkt der Datenbank.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/s9B0Gr2Bho32nPKr-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/s9B0Gr2Bho32nPKr-grafik.png)

Nun können wir entscheiden was wir möchten

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/scaled-1680-/QDSrnai3mKuubn9Z-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-03/QDSrnai3mKuubn9Z-grafik.png)

Der rest ist Selbserklärend

# Addon - Redis Cache

### Beschreibung:

Ein Plugin das benötigt wird um Redis zu verwenden

Link : [https://wordpress.org/plugins/redis-cache/](https://wordpress.org/plugins/redis-cache/)

### Einrichtung:

bevor das Plugin aktiviert wird. Muss noch die config.php angepasst werden.  
Hier wird die env Variable vom Wordpress ausgelesen die wir im docker compose File gesetzt haben

```
define( 'WP_REDIS_HOST', getenv('WP_REDIS_HOST') ?: 'redis' );
```

wer kein docker nutzt einfach nur den server definieren sollte er local laufen dann einfach localhost oder 127.0.0.1 verwenden, ansonsten den hostnamen

```
define( 'WP_REDIS_HOST', '<hostname oder ip von redisserver' );
```

da wir ein docker haben können wir übers Dateisystem dies ändern, alle anderen varianten via ftp

```
nano /root/wordpress/data/wordpress/wp-config.php
```

Inhalt, nach den Datenbank Einträgen einfügen:

```
.../** Database hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', getenv_docker('WORDPRESS_DB_COLLATE', '') );

/** Hier die define hin für redis*/
define( 'WP_REDIS_HOST', getenv('WP_REDIS_HOST') ?: 'redis' );
```

#### Addon installieren aktivieren

Nach der Aktivierung kommt der Assistent.  
Hier den Cache einschalten

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/A1OJ2i8GNa4gNsGR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/A1OJ2i8GNa4gNsGR-grafik.png)

Wenn der Redis Server erreichbar ist alles funktioniert, sieht das ganze so aus

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/eSTI5muKR3PvB1pN-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/eSTI5muKR3PvB1pN-grafik.png)