WooCommerce Germanized - Version 1.3.5

Version Description

  • Feature - force free shipping method if available (optional)
  • Feature - unit price sale scheduling (based on price schedules)
  • Feature - unit price auto calculation (pro)
  • Feature - system status for better error reporting
  • Fix - product description removal
  • Fix - better product data saving
  • Fix - better email confirmation hooks
  • Fix - wpml email attachment translation fix
  • Fix - performance improvements
Download this release

Release Info

Developer vendidero
Plugin Icon 128x128 WooCommerce Germanized
Version 1.3.5
Comparing to
See all releases

Code changes from version 1.3.4 to 1.3.5

assets/css/woocommerce-gzd-admin.css CHANGED
@@ -85,9 +85,15 @@ table.data_table tr td p.form-field {
85
 
86
  .wc-gzd-pro {
87
  background: #222;
 
 
88
  text-decoration: none;
89
  }
90
 
 
 
 
 
91
  .wc-gzd-pro:hover {
92
  color: #FFF;
93
  }
@@ -106,6 +112,10 @@ table.data_table tr td p.form-field {
106
  opacity: 0.7;
107
  }
108
 
 
 
 
 
109
  table.wc-gzd-tax-example tr th, table.wc-gzd-tax-example tr td {
110
  padding: 5px;
111
  font-size: 0.9em;
85
 
86
  .wc-gzd-pro {
87
  background: #222;
88
+ font-style: normal;
89
+ opacity: 1 !important;
90
  text-decoration: none;
91
  }
92
 
93
+ .wc-gzd-pro:visited {
94
+ color: #FFF;
95
+ }
96
+
97
  .wc-gzd-pro:hover {
98
  color: #FFF;
99
  }
112
  opacity: 0.7;
113
  }
114
 
115
+ ._unit_price_auto_field label, ._unit_price_auto_field input, ._unit_price_auto_field .wc-gzd-premium-desc {
116
+ opacity: 0.6;
117
+ }
118
+
119
  table.wc-gzd-tax-example tr th, table.wc-gzd-tax-example tr td {
120
  padding: 5px;
121
  font-size: 0.9em;
i18n/languages/woocommerce-germanized-de_DE.mo CHANGED
Binary file
i18n/languages/woocommerce-germanized-de_DE.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: WooCommerce Germanized v1.3.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
- "PO-Revision-Date: 2015-06-29 12:45:24+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -105,69 +105,69 @@ msgstr "zu den WooCommerce Germanized Einstellungen"
105
  msgid "Cheatin’ huh?"
106
  msgstr "So geht das leider nicht.."
107
 
108
- #: includes/admin/class-wc-gzd-admin.php:68
109
  #@ woocommerce-germanized
110
  msgid "Optional Email Content"
111
  msgstr "Optionaler E-Mail Inhalt"
112
 
113
- #: includes/admin/class-wc-gzd-admin.php:77
114
  #@ woocommerce-germanized
115
  msgid "Add content which will be replacing default page content within emails."
116
  msgstr "Füllen Sie dieses Feld aus um einen abweichenden E-Mail Anhangstext für diese Seite zu bestimmen."
117
 
118
- #: includes/admin/class-wc-gzd-admin.php:86
119
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:66
120
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:125
121
  #@ woocommerce-germanized
122
  msgid "Optional Mini Description"
123
  msgstr "Warenkorb Kurzbeschreibung"
124
 
125
- #: includes/admin/class-wc-gzd-admin.php:103
126
  #@ woocommerce-germanized
127
  msgid "This content will be shown as short product description within checkout and emails."
128
  msgstr "Dieser Inhalt wird während des Bezahlvorganges und in den E-Mails als Produkt Kurzbeschreibung angezeigt."
129
 
130
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:36
131
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:83
132
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:33
133
  #: includes/class-wc-gzd-post-types.php:66
134
  #@ woocommerce-germanized
135
  msgid "Unit"
136
  msgstr "Einheit"
137
 
138
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:38
139
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:85
140
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:113
141
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:94
142
  #: includes/class-wc-gzd-trusted-shops.php:441
143
  #@ woocommerce-germanized
144
  msgid "None"
145
  msgstr "Keine"
146
 
147
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:45
148
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:92
149
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:34
150
  #@ woocommerce-germanized
151
  msgid "Unit Base"
152
  msgstr "Anzahl Einheiten"
153
 
154
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:49
155
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:98
156
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:35
157
  #@ woocommerce-germanized
158
  msgid "Regular Unit Price"
159
  msgstr "Einheitspreis"
160
 
161
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:53
162
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:102
163
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:36
164
  #@ woocommerce-germanized
165
  msgid "Sale Unit Price"
166
  msgstr "Angebots-Einheitspreis"
167
 
168
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:59
169
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:108
170
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:43
171
  #@ woocommerce-germanized
172
  msgid "Delivery Time"
173
  msgstr "Lieferzeit"
@@ -188,6 +188,7 @@ msgid "Unit price per amount (e.g. 100)"
188
  msgstr "Anzahl der Einheiten, auf die sich der Einheitspreis bezieht"
189
 
190
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:25
 
191
  #@ woocommerce-germanized
192
  msgid "Germanized"
193
  msgstr "Germanized"
@@ -221,6 +222,7 @@ msgid "General"
221
  msgstr "Allgemein"
222
 
223
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:131
 
224
  #@ woocommerce-germanized
225
  msgid "Small-Enterprise-Regulation"
226
  msgstr "Kleinunternehmerregelung"
@@ -272,12 +274,14 @@ msgid "Should phone number be a required field within checkout?"
272
  msgstr "Diese Option setzen, damit die Telefonnummer ein Pflichtfeld im Checkout ist."
273
 
274
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:196
 
275
  #@ woocommerce-germanized
276
  msgid "Legal Pages"
277
  msgstr "Rechtlich relevante Seiten"
278
 
 
279
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:221
280
- #: includes/wc-gzd-core-functions.php:46
281
  #@ woocommerce-germanized
282
  msgid "Imprint"
283
  msgstr "Impressum"
@@ -292,6 +296,7 @@ msgstr "Diese Seite sollte das Impressum d.h. die Informationen (gemäß TMG) zu
292
  msgid "Shipping Costs"
293
  msgstr "Versandkosten"
294
 
 
295
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:232
296
  #@ woocommerce-germanized
297
  msgid "Data Security Statement"
@@ -302,6 +307,7 @@ msgstr "Datenschutzbelehrung"
302
  msgid "This page should contain information regarding your data security policy."
303
  msgstr "Diese Seite sollte Ihre Datenschutzbelehrung enthalten."
304
 
 
305
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:210
306
  #@ woocommerce-germanized
307
  msgid "Power of Revocation"
@@ -312,6 +318,7 @@ msgstr "Widerrufsbelehrung"
312
  msgid "This page should contain information regarding your customer's Right of Revocation."
313
  msgstr "Diese Seite sollte Ihre Widerrufsbelehrung enthalten. Nutzen Sie folgenden Shortcut um ein Widerrufsformular in die Seite einzubinden: [revocation_form]"
314
 
 
315
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:243
316
  #@ woocommerce-germanized
317
  msgid "Payment Methods"
@@ -322,6 +329,7 @@ msgstr "Zahlungarten"
322
  msgid "This page should contain information regarding the Payment Methods that are chooseable during checkout."
323
  msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Zahlungsmöglichkeiten bereitstellen. Nutzen Sie dafür z.B. folgenden Shortcut: [payment_methods_info]"
324
 
 
325
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:254
326
  #@ woocommerce-germanized
327
  msgid "Shipping Methods"
@@ -338,6 +346,7 @@ msgid "Delivery Times"
338
  msgstr "Lieferzeiten"
339
 
340
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:269
 
341
  #@ woocommerce-germanized
342
  msgid "Default Delivery Time"
343
  msgstr "Standard-Lieferzeit"
@@ -378,7 +387,7 @@ msgid "plus {link}Shipping Costs{/link}"
378
  msgstr "zzgl. {link}Versandkosten{/link}"
379
 
380
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:410
381
- #: includes/wc-gzd-core-functions.php:43
382
  #@ woocommerce-germanized
383
  msgid "Right of Recission"
384
  msgstr "Widerrufsrecht"
@@ -473,70 +482,70 @@ msgstr "MwSt. Hinweis"
473
  msgid "Checkout & Cart"
474
  msgstr "Checkout & Warenkorb"
475
 
476
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:682
477
  #@ woocommerce-germanized
478
  msgid "Checkout Legal Display"
479
  msgstr "Checkbox oder Text"
480
 
481
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:683
482
  #@ woocommerce-germanized
483
  msgid "Use Text without Checkbox"
484
  msgstr "Rechtshinweis ohne Checkbox."
485
 
486
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:685
487
  #@ woocommerce-germanized
488
  msgid "This version will remove checkboxes from Checkout and display a text instead. This seems to be legally compliant (Zalando & Co are using this option)."
489
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
490
 
491
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:691
492
  #@ woocommerce-germanized
493
  msgid "Legal Text"
494
  msgstr "Rechtlicher Hinweistext"
495
 
496
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:692
497
  #@ woocommerce-germanized
498
  msgid "Choose a Plain Text which will be shown right above checkout submit button. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
499
  msgstr "Geben Sie hier den Text ein, den Sie als Hinweistext überhalb des \"Kaufen\" - Buttons darstellen möchten. Nutzen Sie die Platzhalter {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
500
 
501
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:694
502
  #@ woocommerce-germanized
503
  msgid "With your order, you agree to have read and understood our {term_link}Terms and Conditions{/term_link} and your {revocation_link}Right of Recission{/revocation_link}."
504
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
505
 
506
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:701
507
  #@ woocommerce-germanized
508
  msgid "Legal Text Error"
509
  msgstr "Fehlermeldung der Checkbox"
510
 
511
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:702
512
  #@ woocommerce-germanized
513
  msgid "If you have chosen to use checkbox validation please choose a error message which will be shown if the user doesn't check checkbox. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
514
  msgstr "Falls Sie sich dazu entschieden haben, eine Checkbox zu nutzen, können Sie hier die Fehlermeldung eingeben, die angezeigt wird, wenn ein Benutzer die Checkbox nicht aktiviert hat. Nutzen Sie die Platzhalter um Links zu den jeweiligen Hinweisseiten einzufügen: {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link}"
515
 
516
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:704
517
  #@ woocommerce-germanized
518
  msgid "To finish the order you have to accept to our {term_link}Terms and Conditions{/term_link} and {revocation_link}Right of Recission{/revocation_link}."
519
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
520
 
521
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:739
522
  #@ woocommerce-germanized
523
  msgid "Order Success Text"
524
  msgstr "Bestellung eingegangen"
525
 
526
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:740
527
  #@ woocommerce-germanized
528
  msgid "Choose a custom text to display on order success page."
529
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
530
 
531
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:748
532
  #@ woocommerce-germanized
533
  msgid "Order Success Data"
534
  msgstr "Bestellbestätigungs-Daten"
535
 
536
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:749
537
  #@ woocommerce-germanized
538
  msgid "Hide product table and customer data on order success page"
539
- msgstr "Produktdetails (Tabelle, Kundeninformationen) von der Bestätigungsseite entfernen."
540
 
541
  #: includes/admin/views/html-notice-install.php:13
542
  #@ woocommerce-germanized
@@ -602,8 +611,8 @@ msgctxt "revocation-form"
602
  msgid "Thank you. We have received your Revocation Request. You will receive a conformation email within a few minutes."
603
  msgstr "Vielen Dank. Wir haben Ihre Widerruf erhalten. Sie bekommen in Kürze eine E-Mail mit Ihre Daten als Bestätigung."
604
 
605
- #: includes/class-wc-gzd-checkout.php:130
606
- #: includes/class-wc-gzd-checkout.php:141
607
  #: includes/widgets/class-wc-gzd-widget-trusted-shops-reviews.php:26
608
  #: includes/widgets/class-wc-gzd-widget-trusted-shops-rich-snippets.php:26
609
  #@ woocommerce-germanized
@@ -611,14 +620,14 @@ msgstr "Vielen Dank. Wir haben Ihre Widerruf erhalten. Sie bekommen in Kürze ei
611
  msgid "Title"
612
  msgstr "Anrede"
613
 
614
- #: includes/class-wc-gzd-checkout.php:131
615
- #: includes/class-wc-gzd-checkout.php:139
616
  #@ woocommerce-germanized
617
  msgid "Sir"
618
  msgstr "Herr"
619
 
620
- #: includes/class-wc-gzd-checkout.php:131
621
- #: includes/class-wc-gzd-checkout.php:139
622
  #@ woocommerce-germanized
623
  msgid "Madam"
624
  msgstr "Frau"
@@ -706,7 +715,7 @@ msgctxt "ekomi"
706
  msgid "Number of days between an order being marked as completed and review email to customer."
707
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
708
 
709
- #: includes/class-wc-gzd-emails.php:225
710
  #@ woocommerce-germanized
711
  msgctxt "revocation-form"
712
  msgid "Forward your Revocation online"
@@ -1068,9 +1077,9 @@ msgstr "Mwst. berechnen?"
1068
  msgid "Payment charge"
1069
  msgstr "Zahlungsgebühr"
1070
 
1071
- #: includes/abstracts/abstract-wc-gzd-product.php:127
1072
  #: includes/wc-gzd-cart-functions.php:159
1073
- #: woocommerce-germanized.php:822
1074
  #, php-format
1075
  #@ woocommerce-germanized
1076
  msgid "incl. %s%% VAT"
@@ -1087,7 +1096,7 @@ msgstr "Bestellung bearbeiten"
1087
  msgid "Choose a Payment Gateway"
1088
  msgstr "Zahlungsart auswählen"
1089
 
1090
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:723
1091
  #: includes/wc-gzd-cart-functions.php:194
1092
  #@ woocommerce-germanized
1093
  msgid "I want immediate access to the digital content and I acknowledge that thereby I lose my right to cancel once the service has begun."
@@ -1255,12 +1264,13 @@ msgstr "Widerruf erklären"
1255
  msgid "VAT free based on §19 UStG"
1256
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1257
 
1258
- #: woocommerce-germanized.php:566
1259
  #@ woocommerce
1260
  msgid "Settings"
1261
  msgstr "Einstellungen"
1262
 
1263
  #. translators: plugin header field 'Name'
 
1264
  #: woocommerce-germanized.php:0
1265
  #@ woocommerce-germanized
1266
  msgid "WooCommerce Germanized"
@@ -1433,12 +1443,12 @@ msgctxt "trusted-shops"
1433
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1434
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1435
 
1436
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:674
1437
  #@ woocommerce-germanized
1438
  msgid "Checkout Table Color"
1439
  msgstr "Hintergrundfarbe der Tabelle"
1440
 
1441
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:676
1442
  #@ woocommerce-germanized
1443
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1444
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
@@ -1480,12 +1490,12 @@ msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCom
1480
  msgid "Check if fee is taxable."
1481
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1482
 
1483
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:720
1484
  #@ woocommerce-germanized
1485
  msgid "Legal Digital Text"
1486
  msgstr "Hinweis Digital"
1487
 
1488
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:721
1489
  #@ woocommerce-germanized
1490
  msgid "Choose a Plain Text which will be shown right above checkout submit button if a user has picked a digital product. See legal text option for possible placeholders."
1491
  msgstr "Passen Sie hier optional den Hinweistext an, der angezeigt wird, wenn ein Kunde ein digitales Produkt im Warenkorb hat. Sie können hier die gleichen Platzhalter verwenden wie beim Rechtlichen Hinweistext"
@@ -1498,7 +1508,7 @@ msgstr "Verlinkung zu Produktdetails"
1498
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:500
1499
  #@ woocommerce-germanized
1500
  msgid "Want to link to product details page instead of add to cart within listings?"
1501
- msgstr "Anstatt des zum Warenkorb Buttons einen Button zur Produktdetail-Seite einfügen?"
1502
 
1503
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:504
1504
  #@ woocommerce-germanized
@@ -1626,19 +1636,20 @@ msgstr "Versandkosten virtuell"
1626
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1627
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1628
 
1629
- #: includes/abstracts/abstract-wc-gzd-product.php:126
1630
  #: includes/wc-gzd-cart-functions.php:159
1631
- #: woocommerce-germanized.php:822
1632
  #@ woocommerce-germanized
1633
  msgid "incl. VAT"
1634
  msgstr "inkl. MwSt."
1635
 
1636
- #: includes/abstracts/abstract-wc-gzd-product.php:126
1637
  #@ woocommerce-germanized
1638
  msgid "excl. VAT"
1639
  msgstr "exkl. MwSt."
1640
 
1641
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:440
 
1642
  #@ woocommerce-germanized
1643
  msgid "Virtual VAT"
1644
  msgstr "USt. Änderung 2015"
@@ -1701,7 +1712,7 @@ msgstr "Dieser Text wird verwendet um den Einheitspreis darzustellen. Nutze {pri
1701
  msgid "{price}"
1702
  msgstr "{price}"
1703
 
1704
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:850
1705
  #@ woocommerce-germanized
1706
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1707
  msgstr "Sorry aber die neuen USt-Regelungen für virtuelle Produkte lassen sich leider nicht mit dem Kleinunternehmer vereinbaren. Bitte kontaktiere deinen Steuerberater für weitere Informationen."
@@ -1716,83 +1727,83 @@ msgstr "Anrede im Checkout"
1716
  msgid "Add a title field to the address within checkout?"
1717
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1718
 
1719
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:711
1720
  #@ woocommerce-germanized
1721
  msgid "Show digital notice"
1722
  msgstr "Checkbox digitale Produkte"
1723
 
1724
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:712
1725
  #@ woocommerce-germanized
1726
  msgid "Show checkbox for digital products."
1727
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1728
 
1729
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:713
1730
  #@ woocommerce-germanized
1731
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1732
  msgstr "Diese Option setzt im Checkout eine Checkbox falls sich im Warenkorb digitale Produkte befinden. Hier können Kunden darauf aufmerksam gemacht werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1733
 
1734
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:638
1735
  #@ woocommerce-germanized
1736
  msgid "Show Thumbnails"
1737
  msgstr "Thumbnails anzeigen"
1738
 
1739
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:639
1740
  #@ woocommerce-germanized
1741
  msgid "Show product thumbnails on checkout page?"
1742
  msgstr "Produktbilder im Checkout darstellen?"
1743
 
1744
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:643
1745
  #@ woocommerce-germanized
1746
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1747
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1748
 
1749
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:647
1750
  #@ woocommerce-germanized
1751
  msgid "Hide Shipping Select"
1752
  msgstr "Versandarten Auswahl"
1753
 
1754
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:648
1755
  #@ woocommerce-germanized
1756
  msgid "Hide shipping rate selection from checkout?"
1757
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1758
 
1759
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:652
1760
  #@ woocommerce-germanized
1761
  msgid "This option will hide shipping rate selection from checkout. By then customers will only be able to change their shipping rate on cart page."
1762
  msgstr "Diese Option deaktiviert die Darstellung der Versandarten Auswahl im Checkout. Kunden können von nun an nur noch über den Warenkorb die Versandmethode ändern."
1763
 
1764
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:629
1765
  #@ woocommerce-germanized
1766
  msgid "Hide taxes estimated"
1767
  msgstr "Hinweis \"Steuern geschätzt\""
1768
 
1769
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:630
1770
  #@ woocommerce-germanized
1771
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1772
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1773
 
1774
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:634
1775
  #@ woocommerce-germanized
1776
  msgid "By default WooCommerce adds a \"taxes and shipping estimated\" text to your cart. This might puzzle your customers and may not meet german law."
1777
  msgstr "Der Hinweistext im Warenkorb zur Schätzung von Steuern und Versandkosten kann für Verwirrung beim Kunden sorgen und scheint nicht für den deutschen Markt geeignet."
1778
 
1779
- #: includes/abstracts/abstract-wc-gzd-product.php:127
1780
  #, php-format
1781
  #@ woocommerce-germanized
1782
  msgid "excl. %s%% VAT"
1783
  msgstr "exkl. %s%% MwSt."
1784
 
1785
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:656
1786
  #@ woocommerce-germanized
1787
  msgid "Show back to cart button"
1788
  msgstr "Bestellung bearbeiten"
1789
 
1790
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:657
1791
  #@ woocommerce-germanized
1792
  msgid "Show back to cart button within your checkout table?"
1793
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1794
 
1795
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:661
1796
  #@ woocommerce-germanized
1797
  msgid "This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems."
1798
  msgstr "Dieser Button ermöglicht es deinen Kunden etwaige Falscheingaben (d.h. fälschlich ausgewählte Produkte) zu korrigieren und zurück zum Warenkorb zu gelangen. Je nach Darstellung in deinem Theme könnte es allerdings auch das Risiko für Abmahnungen erhöhen, da zwischen Pflichtangaben und Kaufen-Button keine weitere Informationen abgedruckt werden sollten."
@@ -1958,12 +1969,12 @@ msgstr "Wenn Sie bei %s kein Benutzerkonto eröffnet haben, ignorieren Sie diese
1958
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
1959
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
1960
 
1961
- #: woocommerce-germanized.php:732
1962
  #@ woocommerce-germanized
1963
  msgid "Thank you. You have successfully activated your account."
1964
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
1965
 
1966
- #: woocommerce-germanized.php:736
1967
  #@ woocommerce-germanized
1968
  msgid "Sorry, but this activation code cannot be found."
1969
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
@@ -1973,8 +1984,8 @@ msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
1973
  msgid "days"
1974
  msgstr "Tagen"
1975
 
1976
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:60
1977
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:44
1978
  #@ woocommerce-germanized
1979
  msgid "Search for a delivery time&hellip;"
1980
  msgstr "Lieferzeit suchen&hellip;"
@@ -1998,6 +2009,7 @@ msgid "https://vendidero.de"
1998
  msgstr "https://vendidero.de"
1999
 
2000
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:618
 
2001
  #@ woocommerce-germanized
2002
  msgid "Fallback Mode"
2003
  msgstr "Fallback Modus"
@@ -2134,17 +2146,17 @@ msgstr ""
2134
  msgid "Because of the small business owner state according to &#167;19 UstG the seller does not levy nor state the German value added tax."
2135
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach &#167;19 (1) UStG."
2136
 
2137
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:665
2138
  #@ woocommerce-germanized
2139
  msgid "Show edit data notice"
2140
  msgstr "Bestellung prüfen Hinweis"
2141
 
2142
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:666
2143
  #@ woocommerce-germanized
2144
  msgid "Show a \"check-your-entries\" notice to the user?"
2145
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
2146
 
2147
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:670
2148
  #@ woocommerce-germanized
2149
  msgid "This notice will be added right before the order comments field."
2150
  msgstr "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
@@ -2213,8 +2225,9 @@ msgstr "Anpassungen für %s freischalten"
2213
  msgid "Invoices & Packing Slips %s"
2214
  msgstr "Rechnungen & Lieferscheine %s"
2215
 
 
2216
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:199
2217
- #: includes/wc-gzd-core-functions.php:40
2218
  #@ woocommerce-germanized
2219
  msgid "Terms & Conditions"
2220
  msgstr "AGB"
@@ -2248,7 +2261,7 @@ msgstr "%s"
2248
  msgid "Attach %s to the following email templates"
2249
  msgstr "%s an die folgenden E-Mail Templates anfügen"
2250
 
2251
- #: includes/wc-gzd-core-functions.php:49
2252
  #@ woocommerce-germanized
2253
  msgid "Data Security"
2254
  msgstr "Datenschutzbelehrung"
@@ -2346,17 +2359,17 @@ msgstr "Ersetze den WooCommerce Text (Kundenkonto erstellen?) durch den o.g. Hin
2346
  msgid "Use the text from above instead of the default WooCommerce text regarding account creation during checkout. This checkbox is only show if you have activated guest accounts."
2347
  msgstr "Nutze den oben festgelegten Hinweistext anstelle des WooCommerce Standardtextes für die Checkbox zum Erstellen von Kundenkonten während des Bestellvorganges. Die Checkbox wird nur angezeigt, wenn du Gast-Checkouts zulässt."
2348
 
2349
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:730
2350
  #@ woocommerce-germanized
2351
  msgid "Pay now Button"
2352
  msgstr "Jetzt bezahlen Button"
2353
 
2354
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:731
2355
  #@ woocommerce-germanized
2356
  msgid "Add a pay now button to emails and order success page."
2357
  msgstr "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite hinzu."
2358
 
2359
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:732
2360
  #@ woocommerce-germanized
2361
  msgid "Add a pay now button to order confirmation email and order success page if the order awaits payment (PayPal etc)."
2362
  msgstr "Füge einen jetzt bezahlen - Button zur Bestellbestätigungs-Email sowie zur Bestätigungs-Seite hinzu insofern die Bestellung eine automatisierte Zahlung benötigt (z.B. per PayPal)."
@@ -2372,12 +2385,6 @@ msgstr "Bitte akzeptieren Sie die Erstellung eines neuen Kundenkontos"
2372
  msgid "Pay with %s"
2373
  msgstr "jetzt mit %s bezahlen"
2374
 
2375
- #. translators: plugin header field 'Version'
2376
- #: woocommerce-germanized.php:0
2377
- #@ woocommerce-germanized
2378
- msgid "1.3.4"
2379
- msgstr "1.3.4"
2380
-
2381
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:174
2382
  #@ woocommerce-germanized
2383
  msgid "Disallow cancellations"
@@ -2393,3 +2400,166 @@ msgstr "Stornierung von Bestellungen durch den Kunden verhindern."
2393
  msgid "By default payment methods like PayPal allow order cancellation by clicking the abort link. This option will stop customers from manually cancel orders."
2394
  msgstr "Standardmäßig lassen sich Bestellungen per PayPal stornieren, indem der Kunden den Abbrechen-Link verwendet. Diese Option verhindert den manuellen Abbruch einer Bestellung durch den Kunden."
2395
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: WooCommerce Germanized v1.3.5\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
+ "PO-Revision-Date: 2015-07-20 11:18:49+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
105
  msgid "Cheatin&#8217; huh?"
106
  msgstr "So geht das leider nicht.."
107
 
108
+ #: includes/admin/class-wc-gzd-admin.php:107
109
  #@ woocommerce-germanized
110
  msgid "Optional Email Content"
111
  msgstr "Optionaler E-Mail Inhalt"
112
 
113
+ #: includes/admin/class-wc-gzd-admin.php:116
114
  #@ woocommerce-germanized
115
  msgid "Add content which will be replacing default page content within emails."
116
  msgstr "Füllen Sie dieses Feld aus um einen abweichenden E-Mail Anhangstext für diese Seite zu bestimmen."
117
 
118
+ #: includes/admin/class-wc-gzd-admin.php:125
119
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:75
120
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:134
121
  #@ woocommerce-germanized
122
  msgid "Optional Mini Description"
123
  msgstr "Warenkorb Kurzbeschreibung"
124
 
125
+ #: includes/admin/class-wc-gzd-admin.php:142
126
  #@ woocommerce-germanized
127
  msgid "This content will be shown as short product description within checkout and emails."
128
  msgstr "Dieser Inhalt wird während des Bezahlvorganges und in den E-Mails als Produkt Kurzbeschreibung angezeigt."
129
 
130
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:40
131
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:92
132
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:33
133
  #: includes/class-wc-gzd-post-types.php:66
134
  #@ woocommerce-germanized
135
  msgid "Unit"
136
  msgstr "Einheit"
137
 
138
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:42
139
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:94
140
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:122
141
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:94
142
  #: includes/class-wc-gzd-trusted-shops.php:441
143
  #@ woocommerce-germanized
144
  msgid "None"
145
  msgstr "Keine"
146
 
147
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:49
148
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:101
149
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:34
150
  #@ woocommerce-germanized
151
  msgid "Unit Base"
152
  msgstr "Anzahl Einheiten"
153
 
154
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:58
155
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:107
156
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:36
157
  #@ woocommerce-germanized
158
  msgid "Regular Unit Price"
159
  msgstr "Einheitspreis"
160
 
161
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:62
162
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:111
163
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:37
164
  #@ woocommerce-germanized
165
  msgid "Sale Unit Price"
166
  msgstr "Angebots-Einheitspreis"
167
 
168
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:68
169
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:117
170
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:44
171
  #@ woocommerce-germanized
172
  msgid "Delivery Time"
173
  msgstr "Lieferzeit"
188
  msgstr "Anzahl der Einheiten, auf die sich der Einheitspreis bezieht"
189
 
190
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:25
191
+ #: includes/admin/views/html-page-status.php:19
192
  #@ woocommerce-germanized
193
  msgid "Germanized"
194
  msgstr "Germanized"
222
  msgstr "Allgemein"
223
 
224
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:131
225
+ #: includes/admin/views/html-page-status-germanized.php:37
226
  #@ woocommerce-germanized
227
  msgid "Small-Enterprise-Regulation"
228
  msgstr "Kleinunternehmerregelung"
274
  msgstr "Diese Option setzen, damit die Telefonnummer ein Pflichtfeld im Checkout ist."
275
 
276
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:196
277
+ #: includes/admin/views/html-page-status-germanized.php:141
278
  #@ woocommerce-germanized
279
  msgid "Legal Pages"
280
  msgstr "Rechtlich relevante Seiten"
281
 
282
+ #: includes/admin/class-wc-gzd-admin-status.php:44
283
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:221
284
+ #: includes/wc-gzd-core-functions.php:48
285
  #@ woocommerce-germanized
286
  msgid "Imprint"
287
  msgstr "Impressum"
296
  msgid "Shipping Costs"
297
  msgstr "Versandkosten"
298
 
299
+ #: includes/admin/class-wc-gzd-admin-status.php:45
300
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:232
301
  #@ woocommerce-germanized
302
  msgid "Data Security Statement"
307
  msgid "This page should contain information regarding your data security policy."
308
  msgstr "Diese Seite sollte Ihre Datenschutzbelehrung enthalten."
309
 
310
+ #: includes/admin/class-wc-gzd-admin-status.php:43
311
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:210
312
  #@ woocommerce-germanized
313
  msgid "Power of Revocation"
318
  msgid "This page should contain information regarding your customer's Right of Revocation."
319
  msgstr "Diese Seite sollte Ihre Widerrufsbelehrung enthalten. Nutzen Sie folgenden Shortcut um ein Widerrufsformular in die Seite einzubinden: [revocation_form]"
320
 
321
+ #: includes/admin/class-wc-gzd-admin-status.php:46
322
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:243
323
  #@ woocommerce-germanized
324
  msgid "Payment Methods"
329
  msgid "This page should contain information regarding the Payment Methods that are chooseable during checkout."
330
  msgstr "Diese Seite sollte Informationen zu den von Ihnen zur Verfügung gestellten Zahlungsmöglichkeiten bereitstellen. Nutzen Sie dafür z.B. folgenden Shortcut: [payment_methods_info]"
331
 
332
+ #: includes/admin/class-wc-gzd-admin-status.php:47
333
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:254
334
  #@ woocommerce-germanized
335
  msgid "Shipping Methods"
346
  msgstr "Lieferzeiten"
347
 
348
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:269
349
+ #: includes/admin/views/html-page-status-germanized.php:42
350
  #@ woocommerce-germanized
351
  msgid "Default Delivery Time"
352
  msgstr "Standard-Lieferzeit"
387
  msgstr "zzgl. {link}Versandkosten{/link}"
388
 
389
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:410
390
+ #: includes/wc-gzd-core-functions.php:45
391
  #@ woocommerce-germanized
392
  msgid "Right of Recission"
393
  msgstr "Widerrufsrecht"
482
  msgid "Checkout & Cart"
483
  msgstr "Checkout & Warenkorb"
484
 
485
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:691
486
  #@ woocommerce-germanized
487
  msgid "Checkout Legal Display"
488
  msgstr "Checkbox oder Text"
489
 
490
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:692
491
  #@ woocommerce-germanized
492
  msgid "Use Text without Checkbox"
493
  msgstr "Rechtshinweis ohne Checkbox."
494
 
495
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:694
496
  #@ woocommerce-germanized
497
  msgid "This version will remove checkboxes from Checkout and display a text instead. This seems to be legally compliant (Zalando & Co are using this option)."
498
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
499
 
500
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:700
501
  #@ woocommerce-germanized
502
  msgid "Legal Text"
503
  msgstr "Rechtlicher Hinweistext"
504
 
505
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:701
506
  #@ woocommerce-germanized
507
  msgid "Choose a Plain Text which will be shown right above checkout submit button. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
508
  msgstr "Geben Sie hier den Text ein, den Sie als Hinweistext überhalb des \"Kaufen\" - Buttons darstellen möchten. Nutzen Sie die Platzhalter {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} um die jeweiligen Links zu den Seiten einzufügen."
509
 
510
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:703
511
  #@ woocommerce-germanized
512
  msgid "With your order, you agree to have read and understood our {term_link}Terms and Conditions{/term_link} and your {revocation_link}Right of Recission{/revocation_link}."
513
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
514
 
515
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:710
516
  #@ woocommerce-germanized
517
  msgid "Legal Text Error"
518
  msgstr "Fehlermeldung der Checkbox"
519
 
520
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:711
521
  #@ woocommerce-germanized
522
  msgid "If you have chosen to use checkbox validation please choose a error message which will be shown if the user doesn't check checkbox. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
523
  msgstr "Falls Sie sich dazu entschieden haben, eine Checkbox zu nutzen, können Sie hier die Fehlermeldung eingeben, die angezeigt wird, wenn ein Benutzer die Checkbox nicht aktiviert hat. Nutzen Sie die Platzhalter um Links zu den jeweiligen Hinweisseiten einzufügen: {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link}"
524
 
525
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:713
526
  #@ woocommerce-germanized
527
  msgid "To finish the order you have to accept to our {term_link}Terms and Conditions{/term_link} and {revocation_link}Right of Recission{/revocation_link}."
528
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
529
 
530
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:748
531
  #@ woocommerce-germanized
532
  msgid "Order Success Text"
533
  msgstr "Bestellung eingegangen"
534
 
535
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:749
536
  #@ woocommerce-germanized
537
  msgid "Choose a custom text to display on order success page."
538
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
539
 
540
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:757
541
  #@ woocommerce-germanized
542
  msgid "Order Success Data"
543
  msgstr "Bestellbestätigungs-Daten"
544
 
545
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:758
546
  #@ woocommerce-germanized
547
  msgid "Hide product table and customer data on order success page"
548
+ msgstr "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
549
 
550
  #: includes/admin/views/html-notice-install.php:13
551
  #@ woocommerce-germanized
611
  msgid "Thank you. We have received your Revocation Request. You will receive a conformation email within a few minutes."
612
  msgstr "Vielen Dank. Wir haben Ihre Widerruf erhalten. Sie bekommen in Kürze eine E-Mail mit Ihre Daten als Bestätigung."
613
 
614
+ #: includes/class-wc-gzd-checkout.php:148
615
+ #: includes/class-wc-gzd-checkout.php:159
616
  #: includes/widgets/class-wc-gzd-widget-trusted-shops-reviews.php:26
617
  #: includes/widgets/class-wc-gzd-widget-trusted-shops-rich-snippets.php:26
618
  #@ woocommerce-germanized
620
  msgid "Title"
621
  msgstr "Anrede"
622
 
623
+ #: includes/class-wc-gzd-checkout.php:149
624
+ #: includes/class-wc-gzd-checkout.php:157
625
  #@ woocommerce-germanized
626
  msgid "Sir"
627
  msgstr "Herr"
628
 
629
+ #: includes/class-wc-gzd-checkout.php:149
630
+ #: includes/class-wc-gzd-checkout.php:157
631
  #@ woocommerce-germanized
632
  msgid "Madam"
633
  msgstr "Frau"
715
  msgid "Number of days between an order being marked as completed and review email to customer."
716
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
717
 
718
+ #: includes/class-wc-gzd-emails.php:226
719
  #@ woocommerce-germanized
720
  msgctxt "revocation-form"
721
  msgid "Forward your Revocation online"
1077
  msgid "Payment charge"
1078
  msgstr "Zahlungsgebühr"
1079
 
1080
+ #: includes/abstracts/abstract-wc-gzd-product.php:129
1081
  #: includes/wc-gzd-cart-functions.php:159
1082
+ #: woocommerce-germanized.php:834
1083
  #, php-format
1084
  #@ woocommerce-germanized
1085
  msgid "incl. %s%% VAT"
1096
  msgid "Choose a Payment Gateway"
1097
  msgstr "Zahlungsart auswählen"
1098
 
1099
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:732
1100
  #: includes/wc-gzd-cart-functions.php:194
1101
  #@ woocommerce-germanized
1102
  msgid "I want immediate access to the digital content and I acknowledge that thereby I lose my right to cancel once the service has begun."
1264
  msgid "VAT free based on &#167;19 UStG"
1265
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1266
 
1267
+ #: woocommerce-germanized.php:578
1268
  #@ woocommerce
1269
  msgid "Settings"
1270
  msgstr "Einstellungen"
1271
 
1272
  #. translators: plugin header field 'Name'
1273
+ #: includes/admin/views/html-page-status-germanized.php:22
1274
  #: woocommerce-germanized.php:0
1275
  #@ woocommerce-germanized
1276
  msgid "WooCommerce Germanized"
1443
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1444
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1445
 
1446
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:683
1447
  #@ woocommerce-germanized
1448
  msgid "Checkout Table Color"
1449
  msgstr "Hintergrundfarbe der Tabelle"
1450
 
1451
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:685
1452
  #@ woocommerce-germanized
1453
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1454
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1490
  msgid "Check if fee is taxable."
1491
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1492
 
1493
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:729
1494
  #@ woocommerce-germanized
1495
  msgid "Legal Digital Text"
1496
  msgstr "Hinweis Digital"
1497
 
1498
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:730
1499
  #@ woocommerce-germanized
1500
  msgid "Choose a Plain Text which will be shown right above checkout submit button if a user has picked a digital product. See legal text option for possible placeholders."
1501
  msgstr "Passen Sie hier optional den Hinweistext an, der angezeigt wird, wenn ein Kunde ein digitales Produkt im Warenkorb hat. Sie können hier die gleichen Platzhalter verwenden wie beim Rechtlichen Hinweistext"
1508
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:500
1509
  #@ woocommerce-germanized
1510
  msgid "Want to link to product details page instead of add to cart within listings?"
1511
+ msgstr "Zum Warenkorb Button mit Button zur Produktdetail-Seite ersetzen?"
1512
 
1513
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:504
1514
  #@ woocommerce-germanized
1636
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1637
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1638
 
1639
+ #: includes/abstracts/abstract-wc-gzd-product.php:127
1640
  #: includes/wc-gzd-cart-functions.php:159
1641
+ #: woocommerce-germanized.php:834
1642
  #@ woocommerce-germanized
1643
  msgid "incl. VAT"
1644
  msgstr "inkl. MwSt."
1645
 
1646
+ #: includes/abstracts/abstract-wc-gzd-product.php:127
1647
  #@ woocommerce-germanized
1648
  msgid "excl. VAT"
1649
  msgstr "exkl. MwSt."
1650
 
1651
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:440
1652
+ #: includes/admin/views/html-page-status-germanized.php:81
1653
  #@ woocommerce-germanized
1654
  msgid "Virtual VAT"
1655
  msgstr "USt. Änderung 2015"
1712
  msgid "{price}"
1713
  msgstr "{price}"
1714
 
1715
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:859
1716
  #@ woocommerce-germanized
1717
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1718
  msgstr "Sorry aber die neuen USt-Regelungen für virtuelle Produkte lassen sich leider nicht mit dem Kleinunternehmer vereinbaren. Bitte kontaktiere deinen Steuerberater für weitere Informationen."
1727
  msgid "Add a title field to the address within checkout?"
1728
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1729
 
1730
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:720
1731
  #@ woocommerce-germanized
1732
  msgid "Show digital notice"
1733
  msgstr "Checkbox digitale Produkte"
1734
 
1735
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:721
1736
  #@ woocommerce-germanized
1737
  msgid "Show checkbox for digital products."
1738
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1739
 
1740
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:722
1741
  #@ woocommerce-germanized
1742
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1743
  msgstr "Diese Option setzt im Checkout eine Checkbox falls sich im Warenkorb digitale Produkte befinden. Hier können Kunden darauf aufmerksam gemacht werden, dass im Falle von digitalen Produkten das Widerrufsrecht erlischt."
1744
 
1745
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:647
1746
  #@ woocommerce-germanized
1747
  msgid "Show Thumbnails"
1748
  msgstr "Thumbnails anzeigen"
1749
 
1750
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:648
1751
  #@ woocommerce-germanized
1752
  msgid "Show product thumbnails on checkout page?"
1753
  msgstr "Produktbilder im Checkout darstellen?"
1754
 
1755
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:652
1756
  #@ woocommerce-germanized
1757
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1758
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1759
 
1760
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:656
1761
  #@ woocommerce-germanized
1762
  msgid "Hide Shipping Select"
1763
  msgstr "Versandarten Auswahl"
1764
 
1765
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:657
1766
  #@ woocommerce-germanized
1767
  msgid "Hide shipping rate selection from checkout?"
1768
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1769
 
1770
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:661
1771
  #@ woocommerce-germanized
1772
  msgid "This option will hide shipping rate selection from checkout. By then customers will only be able to change their shipping rate on cart page."
1773
  msgstr "Diese Option deaktiviert die Darstellung der Versandarten Auswahl im Checkout. Kunden können von nun an nur noch über den Warenkorb die Versandmethode ändern."
1774
 
1775
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:638
1776
  #@ woocommerce-germanized
1777
  msgid "Hide taxes estimated"
1778
  msgstr "Hinweis \"Steuern geschätzt\""
1779
 
1780
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:639
1781
  #@ woocommerce-germanized
1782
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1783
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1784
 
1785
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:643
1786
  #@ woocommerce-germanized
1787
  msgid "By default WooCommerce adds a \"taxes and shipping estimated\" text to your cart. This might puzzle your customers and may not meet german law."
1788
  msgstr "Der Hinweistext im Warenkorb zur Schätzung von Steuern und Versandkosten kann für Verwirrung beim Kunden sorgen und scheint nicht für den deutschen Markt geeignet."
1789
 
1790
+ #: includes/abstracts/abstract-wc-gzd-product.php:129
1791
  #, php-format
1792
  #@ woocommerce-germanized
1793
  msgid "excl. %s%% VAT"
1794
  msgstr "exkl. %s%% MwSt."
1795
 
1796
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:665
1797
  #@ woocommerce-germanized
1798
  msgid "Show back to cart button"
1799
  msgstr "Bestellung bearbeiten"
1800
 
1801
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:666
1802
  #@ woocommerce-germanized
1803
  msgid "Show back to cart button within your checkout table?"
1804
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1805
 
1806
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:670
1807
  #@ woocommerce-germanized
1808
  msgid "This button may let your customer edit their order before submitting. Some people state that this button should be hidden to avoid legal problems."
1809
  msgstr "Dieser Button ermöglicht es deinen Kunden etwaige Falscheingaben (d.h. fälschlich ausgewählte Produkte) zu korrigieren und zurück zum Warenkorb zu gelangen. Je nach Darstellung in deinem Theme könnte es allerdings auch das Risiko für Abmahnungen erhöhen, da zwischen Pflichtangaben und Kaufen-Button keine weitere Informationen abgedruckt werden sollten."
1969
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
1970
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
1971
 
1972
+ #: woocommerce-germanized.php:744
1973
  #@ woocommerce-germanized
1974
  msgid "Thank you. You have successfully activated your account."
1975
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
1976
 
1977
+ #: woocommerce-germanized.php:748
1978
  #@ woocommerce-germanized
1979
  msgid "Sorry, but this activation code cannot be found."
1980
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
1984
  msgid "days"
1985
  msgstr "Tagen"
1986
 
1987
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:69
1988
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:45
1989
  #@ woocommerce-germanized
1990
  msgid "Search for a delivery time&hellip;"
1991
  msgstr "Lieferzeit suchen&hellip;"
2009
  msgstr "https://vendidero.de"
2010
 
2011
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:618
2012
+ #: includes/admin/views/html-page-status-germanized.php:55
2013
  #@ woocommerce-germanized
2014
  msgid "Fallback Mode"
2015
  msgstr "Fallback Modus"
2146
  msgid "Because of the small business owner state according to &#167;19 UstG the seller does not levy nor state the German value added tax."
2147
  msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach &#167;19 (1) UStG."
2148
 
2149
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:674
2150
  #@ woocommerce-germanized
2151
  msgid "Show edit data notice"
2152
  msgstr "Bestellung prüfen Hinweis"
2153
 
2154
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:675
2155
  #@ woocommerce-germanized
2156
  msgid "Show a \"check-your-entries\" notice to the user?"
2157
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
2158
 
2159
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:679
2160
  #@ woocommerce-germanized
2161
  msgid "This notice will be added right before the order comments field."
2162
  msgstr "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
2225
  msgid "Invoices & Packing Slips %s"
2226
  msgstr "Rechnungen & Lieferscheine %s"
2227
 
2228
+ #: includes/admin/class-wc-gzd-admin-status.php:42
2229
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:199
2230
+ #: includes/wc-gzd-core-functions.php:42
2231
  #@ woocommerce-germanized
2232
  msgid "Terms & Conditions"
2233
  msgstr "AGB"
2261
  msgid "Attach %s to the following email templates"
2262
  msgstr "%s an die folgenden E-Mail Templates anfügen"
2263
 
2264
+ #: includes/wc-gzd-core-functions.php:51
2265
  #@ woocommerce-germanized
2266
  msgid "Data Security"
2267
  msgstr "Datenschutzbelehrung"
2359
  msgid "Use the text from above instead of the default WooCommerce text regarding account creation during checkout. This checkbox is only show if you have activated guest accounts."
2360
  msgstr "Nutze den oben festgelegten Hinweistext anstelle des WooCommerce Standardtextes für die Checkbox zum Erstellen von Kundenkonten während des Bestellvorganges. Die Checkbox wird nur angezeigt, wenn du Gast-Checkouts zulässt."
2361
 
2362
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:739
2363
  #@ woocommerce-germanized
2364
  msgid "Pay now Button"
2365
  msgstr "Jetzt bezahlen Button"
2366
 
2367
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:740
2368
  #@ woocommerce-germanized
2369
  msgid "Add a pay now button to emails and order success page."
2370
  msgstr "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite hinzu."
2371
 
2372
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:741
2373
  #@ woocommerce-germanized
2374
  msgid "Add a pay now button to order confirmation email and order success page if the order awaits payment (PayPal etc)."
2375
  msgstr "Füge einen jetzt bezahlen - Button zur Bestellbestätigungs-Email sowie zur Bestätigungs-Seite hinzu insofern die Bestellung eine automatisierte Zahlung benötigt (z.B. per PayPal)."
2385
  msgid "Pay with %s"
2386
  msgstr "jetzt mit %s bezahlen"
2387
 
 
 
 
 
 
 
2388
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:174
2389
  #@ woocommerce-germanized
2390
  msgid "Disallow cancellations"
2400
  msgid "By default payment methods like PayPal allow order cancellation by clicking the abort link. This option will stop customers from manually cancel orders."
2401
  msgstr "Standardmäßig lassen sich Bestellungen per PayPal stornieren, indem der Kunden den Abbrechen-Link verwendet. Diese Option verhindert den manuellen Abbruch einer Bestellung durch den Kunden."
2402
 
2403
+ #: includes/admin/class-wc-gzd-admin.php:70
2404
+ #@ woocommerce
2405
+ msgid "WooCommerce Status"
2406
+ msgstr ""
2407
+
2408
+ #: includes/admin/class-wc-gzd-admin.php:70
2409
+ #: includes/admin/views/html-page-status.php:16
2410
+ #@ woocommerce
2411
+ msgid "System Status"
2412
+ msgstr ""
2413
+
2414
+ #: includes/admin/views/html-page-status-germanized.php:11
2415
+ #@ woocommerce
2416
+ msgid "Please copy and paste this information in your ticket when contacting support:"
2417
+ msgstr ""
2418
+
2419
+ #: includes/admin/views/html-page-status-germanized.php:12
2420
+ #@ woocommerce
2421
+ msgid "Get System Report"
2422
+ msgstr ""
2423
+
2424
+ #: includes/admin/views/html-page-status-germanized.php:15
2425
+ #@ woocommerce
2426
+ msgid "Copied!"
2427
+ msgstr ""
2428
+
2429
+ #: includes/admin/views/html-page-status-germanized.php:15
2430
+ #@ woocommerce
2431
+ msgid "Copy for Support"
2432
+ msgstr ""
2433
+
2434
+ #: includes/admin/views/html-page-status-germanized.php:27
2435
+ #@ woocommerce-germanized
2436
+ msgid "Version"
2437
+ msgstr "Version"
2438
+
2439
+ #: includes/admin/views/html-page-status-germanized.php:32
2440
+ #@ woocommerce-germanized
2441
+ msgid "Database Version"
2442
+ msgstr "Datenbank Version"
2443
+
2444
+ #: includes/admin/views/html-page-status-germanized.php:52
2445
+ #@ woocommerce-germanized
2446
+ msgid "Term doesn’t exist"
2447
+ msgstr "Term existiert nicht"
2448
+
2449
+ #: includes/admin/views/html-page-status-germanized.php:66
2450
+ #@ woocommerce-germanized
2451
+ msgid "Taxes"
2452
+ msgstr "Steuern"
2453
+
2454
+ #: includes/admin/views/html-page-status-germanized.php:71
2455
+ #@ woocommerce-germanized
2456
+ msgid "Shipping Taxes"
2457
+ msgstr "Versandkostenbesteuerung"
2458
+
2459
+ #: includes/admin/views/html-page-status-germanized.php:73
2460
+ #: includes/admin/views/html-page-status-germanized.php:78
2461
+ #@ woocommerce-germanized
2462
+ msgid "Forced"
2463
+ msgstr "erzwungen"
2464
+
2465
+ #: includes/admin/views/html-page-status-germanized.php:76
2466
+ #@ woocommerce-germanized
2467
+ msgid "Fee Taxes"
2468
+ msgstr "Gebührenbesteuerung"
2469
+
2470
+ #: includes/admin/views/html-page-status-germanized.php:86
2471
+ #@ woocommerce-germanized
2472
+ msgid "Tax Rate Name Collision"
2473
+ msgstr "Steuerklassen Namensräume"
2474
+
2475
+ #: includes/admin/views/html-page-status-germanized.php:87
2476
+ #@ woocommerce-germanized
2477
+ msgid "Make sure, that different tax rates do not have the same names. WooCommerce will then merge these rates within checkout into one line."
2478
+ msgstr "Stelle sicher, dass deine Steuerklassen alle unterschiedliche Bezeichnungen haben (zumindest für unterschiedliche Steuersätze z.B. 7% und 19%). Ansonsten werden die Steuern von WooCommerce in Form von einer Zeile im Checkout dargestellt."
2479
+
2480
+ #: includes/admin/views/html-page-status-germanized.php:130
2481
+ #@ woocommerce-germanized
2482
+ msgid "VAT Table Check"
2483
+ msgstr "Steuer Tabellenprüfung"
2484
+
2485
+ #: includes/admin/views/html-page-status-germanized.php:131
2486
+ #@ woocommerce-germanized
2487
+ msgid "Checks whether all WooCommerce tax relevant tables have been added."
2488
+ msgstr "Überprüft ob alle WooCommerce Steuer-Datenbank-Tabellen angelegt wurden."
2489
+
2490
+ #: includes/admin/views/html-page-status-germanized.php:132
2491
+ #, php-format
2492
+ #@ woocommerce-germanized
2493
+ msgid "Missing: %s"
2494
+ msgstr "Es fehlen: %s"
2495
+
2496
+ #: includes/admin/views/html-page-status-germanized.php:150
2497
+ #@ woocommerce-germanized
2498
+ msgid "Page doesn’t exist"
2499
+ msgstr "Seite existiert nicht"
2500
+
2501
+ #: includes/admin/views/html-page-status-germanized.php:161
2502
+ #@ woocommerce
2503
+ msgid "Templates"
2504
+ msgstr ""
2505
+
2506
+ #: includes/admin/views/html-page-status-germanized.php:206
2507
+ #, php-format
2508
+ #@ woocommerce
2509
+ msgid "<code>%s</code> version <strong style=\"color:red\">%s</strong> is out of date. The core version is %s"
2510
+ msgstr ""
2511
+
2512
+ #: includes/admin/views/html-page-status-germanized.php:218
2513
+ #: includes/admin/views/html-page-status-germanized.php:227
2514
+ #@ woocommerce
2515
+ msgid "Overrides"
2516
+ msgstr ""
2517
+
2518
+ #: includes/admin/views/html-page-status-germanized.php:238
2519
+ #@ woocommerce
2520
+ msgid "Learn how to update outdated templates"
2521
+ msgstr ""
2522
+
2523
+ #: includes/admin/views/html-page-status.php:17
2524
+ #@ woocommerce
2525
+ msgid "Tools"
2526
+ msgstr ""
2527
+
2528
+ #: includes/admin/views/html-page-status.php:18
2529
+ #@ woocommerce
2530
+ msgid "Logs"
2531
+ msgstr ""
2532
+
2533
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:629
2534
+ #@ woocommerce-germanized
2535
+ msgid "Force free shipping"
2536
+ msgstr "Kostenlosen Versand erzwingen"
2537
+
2538
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:630
2539
+ #@ woocommerce-germanized
2540
+ msgid "Force free shipping method if available?"
2541
+ msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
2542
+
2543
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:634
2544
+ #@ woocommerce-germanized
2545
+ msgid "By default WooCommerce will let customers choose other shipping methods than free shipping (if available). This option will force free shipping if available."
2546
+ msgstr "Standardmäßig erlaubt WooCommerce die Auswahl anderer Versandmethoden, auch wenn kostenloser Versand möglich ist. Diese Option erzwingt den kostenlosen Versand, sobald dieser verfügbar ist."
2547
+
2548
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:53
2549
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:35
2550
+ #@ woocommerce-germanized
2551
+ msgid "Calculation"
2552
+ msgstr "Berechnung"
2553
+
2554
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:55
2555
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:35
2556
+ #@ woocommerce-germanized
2557
+ msgid "Calculate unit prices automatically based on product price"
2558
+ msgstr "Einheitspreise basierend auf dem Produktpreis automatisch berechnen"
2559
+
2560
+ #. translators: plugin header field 'Version'
2561
+ #: woocommerce-germanized.php:0
2562
+ #@ woocommerce-germanized
2563
+ msgid "1.3.5"
2564
+ msgstr "1.3.5"
2565
+
includes/abstracts/abstract-wc-gzd-product.php CHANGED
@@ -31,11 +31,11 @@ class WC_GZD_Product {
31
  if ( is_numeric( $product ) )
32
  $product = WC()->product_factory->get_product_standalone( get_post( $product ) );
33
  $this->gzd_variation_level_meta = array(
34
- 'unit' => 0,
35
- 'unit_price' => 0,
36
- 'unit_base' => 0,
37
- 'unit_price_regular' => 0,
38
- 'unit_price_sale' => 0,
39
  'mini_desc' => '',
40
  'gzd_product' => NULL,
41
  );
@@ -116,6 +116,7 @@ class WC_GZD_Product {
116
  */
117
  public function get_tax_info() {
118
  $_tax = new WC_Tax();
 
119
  if ( $this->is_taxable() ) {
120
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
121
  $tax_rates = $_tax->get_rates( $this->get_tax_class() );
@@ -123,11 +124,12 @@ class WC_GZD_Product {
123
  $tax_rates = array_values( $tax_rates );
124
  // If is variable or is virtual vat exception dont show exact tax rate
125
  if ( $this->is_virtual_vat_exception() || $this->is_type( 'variable' ) )
126
- return ( $tax_display_mode == 'incl' ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' ) );
127
- return ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) : sprintf( __( 'excl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) );
 
128
  }
129
  }
130
- return false;
131
  }
132
 
133
  /**
@@ -199,7 +201,7 @@ class WC_GZD_Product {
199
  */
200
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
201
  $price = ( $price == '' ) ? $this->unit_price : $price;
202
- return $this->child->get_price_including_tax( $qty, $price );
203
  }
204
 
205
  /**
@@ -220,7 +222,7 @@ class WC_GZD_Product {
220
  * @return boolean
221
  */
222
  public function is_on_unit_sale() {
223
- return ( $this->get_unit_sale_price() ) ? true : false;
224
  }
225
 
226
  /**
31
  if ( is_numeric( $product ) )
32
  $product = WC()->product_factory->get_product_standalone( get_post( $product ) );
33
  $this->gzd_variation_level_meta = array(
34
+ 'unit' => '',
35
+ 'unit_price' => '',
36
+ 'unit_base' => '',
37
+ 'unit_price_regular' => '',
38
+ 'unit_price_sale' => '',
39
  'mini_desc' => '',
40
  'gzd_product' => NULL,
41
  );
116
  */
117
  public function get_tax_info() {
118
  $_tax = new WC_Tax();
119
+ $tax_notice = false;
120
  if ( $this->is_taxable() ) {
121
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
122
  $tax_rates = $_tax->get_rates( $this->get_tax_class() );
124
  $tax_rates = array_values( $tax_rates );
125
  // If is variable or is virtual vat exception dont show exact tax rate
126
  if ( $this->is_virtual_vat_exception() || $this->is_type( 'variable' ) )
127
+ $tax_notice = ( $tax_display_mode == 'incl' ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' ) );
128
+ else
129
+ $tax_notice = ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) : sprintf( __( 'excl. %s%% VAT', 'woocommerce-germanized' ), ( wc_gzd_format_tax_rate_percentage( $tax_rates[0][ 'rate' ] ) ) ) );
130
  }
131
  }
132
+ return apply_filters( 'woocommerce_gzd_product_tax_info', $tax_notice, $this );
133
  }
134
 
135
  /**
201
  */
202
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
203
  $price = ( $price == '' ) ? $this->unit_price : $price;
204
+ return $this->get_price_including_tax( $qty, $price );
205
  }
206
 
207
  /**
222
  * @return boolean
223
  */
224
  public function is_on_unit_sale() {
225
+ return apply_filters( 'woocommerce_gzd_product_is_on_unit_sale', ( $this->get_unit_sale_price() !== $this->get_unit_regular_price() && $this->get_unit_sale_price() == $this->get_unit_price() ), $this );
226
  }
227
 
228
  /**
includes/admin/class-wc-gzd-admin-status.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Debug/Status page
4
+ *
5
+ * @author vendidero
6
+ * @category Admin
7
+ * @package WooCommerceGermanized/Admin/System Status
8
+ * @version 1.0.0
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * WC_Admin_GZD_Status Class
17
+ */
18
+ class WC_GZD_Admin_Status extends WC_Admin_Status {
19
+
20
+ public static $tax_tables = array(
21
+ 'woocommerce_tax_rates',
22
+ 'woocommerce_tax_rate_locations',
23
+ );
24
+
25
+ public static function output() {
26
+ include_once( 'views/html-page-status.php' );
27
+ }
28
+
29
+ public static function germanized() {
30
+ include_once( 'views/html-page-status-germanized.php' );
31
+ }
32
+
33
+ public static function status_default( $status ) {
34
+ do_action( 'woocommerce_gzd_status_' . $status );
35
+ }
36
+
37
+ public static function get_legal_pages() {
38
+
39
+ $return = array();
40
+
41
+ $pages = array(
42
+ 'terms' => __( 'Terms & Conditions', 'woocommerce-germanized' ),
43
+ 'revocation' => __( 'Power of Revocation', 'woocommerce-germanized' ),
44
+ 'imprint' => __( 'Imprint', 'woocommerce-germanized' ),
45
+ 'data_security' => __( 'Data Security Statement', 'woocommerce-germanized' ),
46
+ 'payment_methods' => __( 'Payment Methods', 'woocommerce-germanized' ),
47
+ 'shipping_costs' => __( 'Shipping Methods', 'woocommerce-germanized' ),
48
+ );
49
+
50
+ foreach ( $pages as $page => $title )
51
+ $return[ $page ] = array( 'title' => $title, 'id' => get_option( 'woocommerce_' . $page . '_page_id' ) );
52
+
53
+ return $return;
54
+
55
+ }
56
+
57
+ public static function tax_tables_exist() {
58
+
59
+ global $wpdb;
60
+
61
+ foreach ( self::$tax_tables as $table ) {
62
+ if ( ! $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}{$table}';" ) )
63
+ return false;
64
+ }
65
+
66
+ return true;
67
+ }
68
+
69
+ public static function get_missing_tax_tables() {
70
+ global $wpdb;
71
+ $missing = array();
72
+
73
+ foreach ( self::$tax_tables as $table ) {
74
+ if ( ! $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}{$table}';" ) )
75
+ array_push( $missing, $table );
76
+ }
77
+
78
+ return $missing;
79
+ }
80
+
81
+ }
includes/admin/class-wc-gzd-admin.php CHANGED
@@ -42,22 +42,57 @@ class WC_GZD_Admin {
42
  add_action( 'add_meta_boxes', array( $this, 'add_product_mini_desc' ) );
43
  add_action( 'admin_enqueue_scripts', array( $this, 'settings_page_scroll_top' ) );
44
  add_action( 'save_post', array( $this, 'save_legal_page_content' ), 10, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
 
47
  public function settings_page_scroll_top() {
48
-
 
49
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
50
  $assets_path = WC_germanized()->plugin_url() . '/assets/';
 
 
51
  wp_register_style( 'woocommerce-gzd-admin', $assets_path . 'css/woocommerce-gzd-admin' . $suffix . '.css', false, WC_germanized()->version );
52
  wp_enqueue_style( 'woocommerce-gzd-admin' );
53
-
54
- $admin_script_path = $assets_path . 'js/admin/';
 
55
 
56
  if ( isset( $_GET[ 'tab' ] ) && $_GET[ 'tab' ] == 'germanized' )
57
- wp_enqueue_script( 'wc-gzd-admin', $admin_script_path . 'settings' . $suffix . '.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
58
 
59
  if ( isset( $_GET[ 'section' ] ) && ! empty( $_GET[ 'section' ] ) && strpos( $_GET[ 'section' ], 'gzd' ) !== false )
60
- wp_enqueue_script( 'wc-gzd-admin-emails', $admin_script_path . 'emails' . $suffix . '.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
61
 
62
  // Hide delivery time and unit tagsdiv
63
  if ( version_compare( WC()->version, '2.3', '>=' ) )
42
  add_action( 'add_meta_boxes', array( $this, 'add_product_mini_desc' ) );
43
  add_action( 'admin_enqueue_scripts', array( $this, 'settings_page_scroll_top' ) );
44
  add_action( 'save_post', array( $this, 'save_legal_page_content' ), 10, 3 );
45
+ add_action( 'admin_menu', array( $this, 'remove_status_page_hooks' ), 0 );
46
+ add_action( 'admin_menu', array( $this, 'set_status_page' ), 1 );
47
+ }
48
+
49
+ /**
50
+ * Manually remove hook (class WC_Admin_Menus is noch callable)
51
+ */
52
+ public function remove_status_page_hooks() {
53
+ global $wp_filter;
54
+ if ( isset( $wp_filter[ 'admin_menu' ][60] ) ) {
55
+ foreach ( $wp_filter[ 'admin_menu' ][60] as $k => $f ) {
56
+ if ( isset( $f[ 'function' ][1] ) && $f[ 'function' ][1] == 'status_menu' )
57
+ unset( $wp_filter[ 'admin_menu' ][60][$k] );
58
+ }
59
+ }
60
+ }
61
+
62
+ public function set_status_page() {
63
+ if ( ! is_ajax() ) {
64
+ include_once( 'class-wc-gzd-admin-status.php' );
65
+ add_action( 'admin_menu', array( $this, 'status_menu' ), 60 );
66
+ }
67
+ }
68
+
69
+ public function status_menu() {
70
+ add_submenu_page( 'woocommerce', __( 'WooCommerce Status', 'woocommerce' ), __( 'System Status', 'woocommerce' ) , 'manage_woocommerce', 'wc-status', array( $this, 'status_page' ) );
71
+ register_setting( 'woocommerce_status_settings_fields', 'woocommerce_status_options' );
72
+ }
73
+
74
+ public function status_page() {
75
+ WC_GZD_Admin_Status::output();
76
  }
77
 
78
  public function settings_page_scroll_top() {
79
+
80
+ $screen = get_current_screen();
81
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
82
  $assets_path = WC_germanized()->plugin_url() . '/assets/';
83
+ $admin_script_path = $assets_path . 'js/admin/';
84
+
85
  wp_register_style( 'woocommerce-gzd-admin', $assets_path . 'css/woocommerce-gzd-admin' . $suffix . '.css', false, WC_germanized()->version );
86
  wp_enqueue_style( 'woocommerce-gzd-admin' );
87
+
88
+ wp_register_script( 'wc-gzd-admin', $admin_script_path . 'settings' . $suffix . '.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
89
+ wp_register_script( 'wc-gzd-admin-emails', $admin_script_path . 'emails' . $suffix . '.js', array( 'jquery', 'woocommerce_settings' ), WC_GERMANIZED_VERSION, true );
90
 
91
  if ( isset( $_GET[ 'tab' ] ) && $_GET[ 'tab' ] == 'germanized' )
92
+ wp_enqueue_script( 'wc-gzd-admin' );
93
 
94
  if ( isset( $_GET[ 'section' ] ) && ! empty( $_GET[ 'section' ] ) && strpos( $_GET[ 'section' ], 'gzd' ) !== false )
95
+ wp_enqueue_script( 'wc-gzd-admin-emails' );
96
 
97
  // Hide delivery time and unit tagsdiv
98
  if ( version_compare( WC()->version, '2.3', '>=' ) )
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php CHANGED
@@ -25,33 +25,45 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
25
  }
26
 
27
  public static function output( $loop, $variation_data, $variation ) {
 
28
  if ( version_compare( WC()->version, '2.3', '<' ) )
29
  return self::output_pre( $loop, $variation_data );
 
30
  $_product = wc_get_product( $variation );
31
  $variation_id = $_product->variation_id;
32
  $delivery_time = $_product->gzd_product->delivery_time;
 
33
  ?>
 
34
  <div class="variable_pricing_unit">
35
  <p class="form-row form-row-first">
36
  <label><?php _e( 'Unit', 'woocommerce-germanized' ); ?>:</label>
37
  <select name="variable_unit[<?php echo $loop; ?>]">
38
- <option value="parent" <?php selected( is_null( isset( $_product->gzd_product->unit ) ? $_product->gzd_product->unit : null ), true ); ?>><?php _e( 'None', 'woocommerce-germanized' ); ?></option>
39
  <?php
40
  foreach ( WC_germanized()->units->get_units() as $key => $value )
41
- echo '<option value="' . esc_attr( $key ) . '" ' . selected( $key === ( isset( $_product->gzd_product->unit ) ? $_product->gzd_product->unit : '' ) , true, false ) . '>' . esc_html( $value ) . '</option>';
42
  ?></select>
43
  </p>
44
  <p class="form-row form-row-last">
45
  <label for="variable_unit_base"><?php echo __( 'Unit Base', 'woocommerce-germanized' );?>:</label>
46
- <input class="input-text wc_input_decimal" size="6" type="text" name="variable_unit_base[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->gzd_product->unit_base ) ? esc_attr( wc_format_localized_decimal( $_product->gzd_product->unit_base ) ) : '' );?>" placeholder="" />
 
 
 
 
 
 
 
 
47
  </p>
48
  <p class="form-row form-row-first">
49
  <label for="variable_unit_price_regular"><?php echo __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
50
- <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_regular[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->gzd_product->unit_price_regular ) ? esc_attr( wc_format_localized_price( $_product->gzd_product->unit_price_regular ) ) : '' );?>" placeholder="" />
51
  </p>
52
  <p class="form-row form-row-last">
53
  <label for="variable_unit_price_sale"><?php echo __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
54
- <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_sale[<?php echo $loop; ?>]" value="<?php echo ( isset( $_product->gzd_product->unit_price_sale ) ? esc_attr( wc_format_localized_price( $_product->gzd_product->unit_price_sale ) ) : '' );?>" placeholder="" />
55
  </p>
56
  </div>
57
  <div class="variable_shipping_time hide_if_variation_virtual">
@@ -63,8 +75,8 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
63
  </div>
64
  <div class="variable_cart_mini_desc">
65
  <p class="form-row form-row-full">
66
- <label for="variable_product_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
67
- <?php wp_editor( htmlspecialchars_decode( $_product->gzd_product->mini_desc ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
68
  </p>
69
  </div>
70
  <?php
@@ -130,73 +142,29 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
130
  }
131
 
132
  public static function save( $variation_id, $i ) {
133
-
134
- $saveable = array(
135
- 'unit' => ( isset( $_POST[ 'variable_unit' ] ) ? $_POST[ 'variable_unit' ] : array() ),
136
- 'unit_base' => ( isset( $_POST[ 'variable_unit_base' ] ) ? $_POST[ 'variable_unit_base' ] : array() ),
137
- 'unit_price_regular' => ( isset( $_POST[ 'variable_unit_price_regular' ] ) ? $_POST[ 'variable_unit_price_regular' ] : array() ),
138
- 'unit_price_sale' => ( isset( $_POST[ 'variable_unit_price_sale' ] ) ? $_POST[ 'variable_unit_price_sale' ] : array() ),
139
- 'delivery_time' => ( isset( $_POST[ 'variable_delivery_time' ] ) ? $_POST[ 'variable_delivery_time' ] : array() ),
140
- 'product_desc' => ( isset( $_POST[ 'variable_product_mini_desc' ] ) ? $_POST[ 'variable_product_mini_desc' ] : array() ),
141
- );
142
 
143
- foreach ( $saveable as $key => $item ) {
144
-
145
- if ( ! isset( $item[ $i ] ) || empty( $item[ $i ] ) ) {
146
-
147
- unset( $saveable[ $key ][ $i ] );
148
- delete_post_meta( $variation_id, '_' . $key );
149
-
150
- }
151
-
152
- }
153
-
154
- if ( isset( $saveable[ 'unit' ][ $i ] ) ) {
155
- update_post_meta( $variation_id, '_unit', sanitize_text_field( $saveable[ 'unit' ][ $i ] ) );
156
- }
157
 
158
- if ( isset( $saveable[ 'unit_base' ][ $i ] ) ) {
159
- update_post_meta( $variation_id, '_unit_base', wc_format_decimal( $saveable[ 'unit_base' ][ $i ] ) );
160
- }
161
-
162
- if ( isset( $saveable[ 'unit_price_regular' ][ $i ] ) ) {
163
- update_post_meta( $variation_id, '_unit_price_regular', wc_format_decimal( $saveable[ 'unit_price_regular' ][ $i ] ) );
164
- update_post_meta( $variation_id, '_unit_price', wc_format_decimal( $saveable[ 'unit_price_regular' ][ $i ] ) );
165
- }
166
-
167
- if ( isset( $saveable[ 'product_desc' ][ $i ] ) ) {
168
- update_post_meta( $variation_id, '_mini_desc', esc_html( $saveable[ 'product_desc' ][ $i ] ) );
169
  }
170
-
171
- if ( isset( $saveable[ 'unit_price_sale' ][ $i ] ) ) {
172
-
173
- update_post_meta( $variation_id, '_unit_price_sale', wc_format_decimal( $saveable[ 'unit_price_sale' ][ $i ] ) );
174
- update_post_meta( $variation_id, '_unit_price', wc_format_decimal( $saveable[ 'unit_price_sale' ][ $i ] ) );
175
-
176
- } else {
177
 
178
- if ( isset( $saveable[ 'unit_price_regular' ][ $i ] ) ) {
179
-
180
- update_post_meta( $variation_id, '_unit_price_regular', wc_format_decimal( $saveable[ 'unit_price_regular' ][ $i ] ) );
181
- update_post_meta( $variation_id, '_unit_price', wc_format_decimal( $saveable[ 'unit_price_regular' ][ $i ] ) );
182
-
183
- }
184
 
185
- }
186
-
187
- if ( isset( $saveable[ 'delivery_time' ][ $i ] ) ) {
188
-
189
- if ( ! is_numeric( $saveable[ 'delivery_time' ][ $i ] ) )
190
- wp_set_post_terms( $variation_id, sanitize_text_field( $saveable[ 'delivery_time' ][ $i ] ), 'product_delivery_time' );
191
- else
192
- wp_set_object_terms( $variation_id, absint( $saveable[ 'delivery_time' ][ $i ] ), 'product_delivery_time' );
193
-
194
- } else {
195
 
196
- wp_delete_object_term_relationships( $variation_id, 'product_delivery_time' );
197
-
198
- }
199
-
200
  }
201
 
202
  }
25
  }
26
 
27
  public static function output( $loop, $variation_data, $variation ) {
28
+
29
  if ( version_compare( WC()->version, '2.3', '<' ) )
30
  return self::output_pre( $loop, $variation_data );
31
+
32
  $_product = wc_get_product( $variation );
33
  $variation_id = $_product->variation_id;
34
  $delivery_time = $_product->gzd_product->delivery_time;
35
+
36
  ?>
37
+
38
  <div class="variable_pricing_unit">
39
  <p class="form-row form-row-first">
40
  <label><?php _e( 'Unit', 'woocommerce-germanized' ); ?>:</label>
41
  <select name="variable_unit[<?php echo $loop; ?>]">
42
+ <option value="parent" <?php selected( is_null( ! empty( $_product->gzd_product->unit ) ? $_product->gzd_product->unit : null ), true ); ?>><?php _e( 'None', 'woocommerce-germanized' ); ?></option>
43
  <?php
44
  foreach ( WC_germanized()->units->get_units() as $key => $value )
45
+ echo '<option value="' . esc_attr( $key ) . '" ' . selected( $key === ( ! empty( $_product->gzd_product->unit ) ? $_product->gzd_product->unit : '' ) , true, false ) . '>' . esc_html( $value ) . '</option>';
46
  ?></select>
47
  </p>
48
  <p class="form-row form-row-last">
49
  <label for="variable_unit_base"><?php echo __( 'Unit Base', 'woocommerce-germanized' );?>:</label>
50
+ <input class="input-text wc_input_decimal" size="6" type="text" name="variable_unit_base[<?php echo $loop; ?>]" value="<?php echo ( ! empty( $_product->gzd_product->unit_base ) ? esc_attr( wc_format_localized_decimal( $_product->gzd_product->unit_base ) ) : '' );?>" placeholder="" />
51
+ </p>
52
+ <p class="form-row form-row-full _unit_price_auto_field">
53
+ <label for="variable_unit_price_auto_<?php echo $loop; ?>"><?php echo __( 'Calculation', 'woocommerce-germanized' ); ?>:</label>
54
+ <input class="input-text wc_input_price" id="variable_unit_price_auto_<?php echo $loop; ?>" type="checkbox" name="variable_unit_price_auto[<?php echo $loop; ?>]" value="yes" <?php checked( 'yes', get_post_meta( $variation_id, '_unit_price_auto', true ) );?> />
55
+ <span class="description">
56
+ <span class="wc-gzd-premium-desc"><?php echo __( 'Calculate unit prices automatically based on product price', 'woocommerce-germanized' ); ?></span>
57
+ <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="wc-gzd-pro">pro</a>
58
+ </span>
59
  </p>
60
  <p class="form-row form-row-first">
61
  <label for="variable_unit_price_regular"><?php echo __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
62
+ <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_regular[<?php echo $loop; ?>]" value="<?php echo ( ! empty( $_product->gzd_product->unit_price_regular ) ? esc_attr( wc_format_localized_price( $_product->gzd_product->unit_price_regular ) ) : '' );?>" placeholder="" />
63
  </p>
64
  <p class="form-row form-row-last">
65
  <label for="variable_unit_price_sale"><?php echo __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')'; ?>:</label>
66
+ <input class="input-text wc_input_price" size="5" type="text" name="variable_unit_price_sale[<?php echo $loop; ?>]" value="<?php echo ( ! empty( $_product->gzd_product->unit_price_sale ) ? esc_attr( wc_format_localized_price( $_product->gzd_product->unit_price_sale ) ) : '' );?>" placeholder="" />
67
  </p>
68
  </div>
69
  <div class="variable_shipping_time hide_if_variation_virtual">
75
  </div>
76
  <div class="variable_cart_mini_desc">
77
  <p class="form-row form-row-full">
78
+ <label for="variable_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
79
+ <?php wp_editor( htmlspecialchars_decode( $_product->gzd_product->mini_desc ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
80
  </p>
81
  </div>
82
  <?php
142
  }
143
 
144
  public static function save( $variation_id, $i ) {
 
 
 
 
 
 
 
 
 
145
 
146
+ $data = array(
147
+ '_unit' => '',
148
+ '_unit_base' => '',
149
+ '_unit_price_auto' => '',
150
+ '_unit_price_regular' => '',
151
+ '_unit_price_sale' => '',
152
+ '_mini_desc' => '',
153
+ 'delivery_time' => '',
154
+ );
 
 
 
 
 
155
 
156
+ foreach ( $data as $k => $v ) {
157
+ $data_k = 'variable' . ( substr( $k, 0, 1) === '_' ? '' : '_' ) . $k;
158
+ $data[ $k ] = ( isset( $_POST[ $data_k ][$i] ) ? $_POST[ $data_k ][$i] : null );
 
 
 
 
 
 
 
 
159
  }
 
 
 
 
 
 
 
160
 
161
+ $data[ 'product-type' ] = $_POST[ 'product-type' ];
162
+ $data[ '_sale_price_dates_from' ] = $_POST['variable_sale_price_dates_from'][$i];
163
+ $data[ '_sale_price_dates_to' ] = $_POST['variable_sale_price_dates_to'][$i];
164
+ $data[ '_sale_price' ] = $_POST['variable_sale_price'][$i];
 
 
165
 
166
+ WC_Germanized_Meta_Box_Product_Data::save_product_data( $variation_id, $data, true );
 
 
 
 
 
 
 
 
 
167
 
 
 
 
 
168
  }
169
 
170
  }
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php CHANGED
@@ -32,6 +32,8 @@ class WC_Germanized_Meta_Box_Product_Data {
32
 
33
  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' ) ) );
34
  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' ) ) );
 
 
35
  woocommerce_wp_text_input( array( 'id' => '_unit_price_regular', 'label' => __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
36
  woocommerce_wp_text_input( array( 'id' => '_unit_price_sale', 'label' => __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
37
 
@@ -47,33 +49,97 @@ class WC_Germanized_Meta_Box_Product_Data {
47
  <?php
48
  }
49
 
50
- public static function save($post_id) {
51
- if ( isset( $_POST['_unit'] ) ) {
52
- update_post_meta( $post_id, '_unit', sanitize_text_field( $_POST['_unit'] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
- if ( isset( $_POST['_unit_base'] ) ) {
55
- update_post_meta( $post_id, '_unit_base', ( $_POST['_unit_base'] === '' ) ? '' : wc_format_decimal( $_POST['_unit_base'] ) );
 
56
  }
57
- if ( isset( $_POST['_unit_price_regular'] ) ) {
58
- update_post_meta( $post_id, '_unit_price_regular', ( $_POST['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $_POST['_unit_price_regular'] ) );
59
- update_post_meta( $post_id, '_unit_price', ( $_POST['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $_POST['_unit_price_regular'] ) );
 
 
 
60
  }
61
- if ( isset( $_POST['_unit_price_sale'] ) ) {
62
- update_post_meta( $post_id, '_unit_price_sale', '' );
63
- // Update Sale Price only if is on sale (Cron?!)
64
- if ( get_post_meta( $post_id, '_price', true ) != $_POST['_regular_price'] && $_POST['_unit_price_sale'] !== '' ) {
65
- update_post_meta( $post_id, '_unit_price_sale', ( $_POST['_unit_price_sale'] === '' ) ? '' : wc_format_decimal( $_POST['_unit_price_sale'] ) );
66
- update_post_meta( $post_id, '_unit_price', ( $_POST['_unit_price_sale'] === '' ) ? '' : wc_format_decimal( $_POST['_unit_price_sale'] ) );
67
- }
 
68
  }
69
- if ( isset( $_POST[ '_mini_desc' ] ) ) {
70
- update_post_meta( $post_id, '_mini_desc', esc_html( $_POST[ '_mini_desc' ] ) );
 
71
  }
72
 
73
- if ( isset( $_POST[ 'delivery_time' ] ) && ! is_numeric( $_POST[ 'delivery_time' ] ) )
74
- wp_set_post_terms( $post_id, sanitize_text_field( $_POST[ 'delivery_time' ] ), 'product_delivery_time' );
 
 
75
  else
76
- wp_set_object_terms( $post_id, absint( $_POST[ 'delivery_time' ] ) , 'product_delivery_time' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
78
 
79
  }
32
 
33
  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' ) ) );
34
  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' ) ) );
35
+ woocommerce_wp_checkbox( array( 'id' => '_unit_price_auto', 'label' => __( 'Calculation', 'woocommerce-germanized' ), 'description' => '<span class="wc-gzd-premium-desc">' . __( 'Calculate unit prices automatically based on product price', 'woocommerce-germanized' ) . '</span> <a href="https://vendidero.de/woocommerce-germanized#buy" target="_blank" class="wc-gzd-pro">pro</a>' ) );
36
+
37
  woocommerce_wp_text_input( array( 'id' => '_unit_price_regular', 'label' => __( 'Regular Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
38
  woocommerce_wp_text_input( array( 'id' => '_unit_price_sale', 'label' => __( 'Sale Unit Price', 'woocommerce-germanized' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price' ) );
39
 
49
  <?php
50
  }
51
 
52
+ public static function save( $post_id ) {
53
+
54
+ $data = array(
55
+ 'product-type' => '',
56
+ '_unit' => '',
57
+ '_unit_base' => '',
58
+ '_unit_price_auto' => '',
59
+ '_unit_price_regular' => '',
60
+ '_unit_price_sale' => '',
61
+ '_mini_desc' => '',
62
+ 'delivery_time' => '',
63
+ '_sale_price_dates_from' => '',
64
+ '_sale_price_dates_to' => '',
65
+ '_sale_price' => '',
66
+ );
67
+
68
+ foreach ( $data as $k => $v ) {
69
+ $data[ $k ] = ( isset( $_POST[ $k ] ) ? $_POST[ $k ] : null );
70
+ }
71
+
72
+ self::save_product_data( $post_id, $data );
73
+
74
+ }
75
+
76
+ public static function save_product_data( $post_id, $data, $is_variation = false ) {
77
+
78
+ $product_type = empty( $data['product-type'] ) ? 'simple' : sanitize_title( stripslashes( $data['product-type'] ) );
79
+
80
+ if ( isset( $data['_unit'] ) ) {
81
+ update_post_meta( $post_id, '_unit', ( $data['_unit'] === '' ? '' : sanitize_text_field( $data['_unit'] ) ) );
82
  }
83
+
84
+ if ( isset( $data['_unit_base'] ) ) {
85
+ update_post_meta( $post_id, '_unit_base', ( $data['_unit_base'] === '' ) ? '' : wc_format_decimal( $data['_unit_base'] ) );
86
  }
87
+
88
+ update_post_meta( $post_id, '_unit_price_auto', ( isset( $data['_unit_price_auto'] ) ) ? 'yes' : '' );
89
+
90
+ if ( isset( $data['_unit_price_regular'] ) ) {
91
+ update_post_meta( $post_id, '_unit_price_regular', ( $data['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $data['_unit_price_regular'] ) );
92
+ update_post_meta( $post_id, '_unit_price', ( $data['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $data['_unit_price_regular'] ) );
93
  }
94
+
95
+ if ( isset( $data['_unit_price_sale'] ) ) {
96
+
97
+ // Unset unit price sale if no product sale price has been defined
98
+ if ( ! isset( $data['_sale_price'] ) || $data['_sale_price'] === '' )
99
+ $data['_unit_price_sale'] = '';
100
+
101
+ update_post_meta( $post_id, '_unit_price_sale', ( $data['_unit_price_sale'] === '' ) ? '' : wc_format_decimal( $data['_unit_price_sale'] ) );
102
  }
103
+
104
+ if ( isset( $data[ '_mini_desc' ] ) ) {
105
+ update_post_meta( $post_id, '_mini_desc', ( $data[ '_mini_desc' ] === '' ? '' : esc_html( $data[ '_mini_desc' ] ) ) );
106
  }
107
 
108
+ if ( isset( $data[ 'delivery_time' ] ) && ! is_numeric( $data[ 'delivery_time' ] ) )
109
+ wp_set_post_terms( $post_id, sanitize_text_field( $data[ 'delivery_time' ] ), 'product_delivery_time' );
110
+ else if ( is_numeric( $data[ 'delivery_time' ] ) )
111
+ wp_set_object_terms( $post_id, absint( $data[ 'delivery_time' ] ) , 'product_delivery_time' );
112
  else
113
+ wp_delete_object_term_relationships( $post_id, 'product_delivery_time' );
114
+
115
+ // Sale prices
116
+ if ( in_array( $product_type, array( 'variable', 'grouped' ) ) && ! $is_variation ) {
117
+
118
+ update_post_meta( $post_id, '_unit_price_regular', '' );
119
+ update_post_meta( $post_id, '_unit_price_sale', '' );
120
+ update_post_meta( $post_id, '_unit_price', '' );
121
+
122
+ } else {
123
+
124
+ $date_from = isset( $data['_sale_price_dates_from'] ) ? wc_clean( $data['_sale_price_dates_from'] ) : '';
125
+ $date_to = isset( $data['_sale_price_dates_to'] ) ? wc_clean( $data['_sale_price_dates_to'] ) : '';
126
+
127
+ // Update price if on sale
128
+ if ( '' !== $data['_unit_price_sale'] && '' == $date_to && '' == $date_from ) {
129
+ update_post_meta( $post_id, '_unit_price', wc_format_decimal( $data['_unit_price_sale'] ) );
130
+ } else {
131
+ update_post_meta( $post_id, '_unit_price', ( $data['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $data['_unit_price_regular'] ) );
132
+ }
133
+
134
+ if ( '' !== $data['_unit_price_sale'] && $date_from && strtotime( $date_from ) < strtotime( 'NOW', current_time( 'timestamp' ) ) ) {
135
+ update_post_meta( $post_id, '_unit_price', wc_format_decimal( $data['_unit_price_sale'] ) );
136
+ }
137
+
138
+ if ( $date_to && strtotime( $date_to ) < strtotime( 'NOW', current_time( 'timestamp' ) ) )
139
+ update_post_meta( $post_id, '_unit_price', ( $data['_unit_price_regular'] === '' ) ? '' : wc_format_decimal( $data['_unit_price_regular'] ) );
140
+
141
+ }
142
+
143
  }
144
 
145
  }
includes/admin/settings/class-wc-gzd-settings-germanized.php CHANGED
@@ -625,6 +625,15 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
625
 
626
  : array() ),
627
 
 
 
 
 
 
 
 
 
 
628
  array(
629
  'title' => __( 'Hide taxes estimated', 'woocommerce-germanized' ),
630
  'desc' => __( 'Do you want to hide the "taxes and shipping estimated" text from your cart?', 'woocommerce-germanized' ),
625
 
626
  : array() ),
627
 
628
+ array(
629
+ 'title' => __( 'Force free shipping', 'woocommerce-germanized' ),
630
+ 'desc' => __( 'Force free shipping method if available?', 'woocommerce-germanized' ),
631
+ 'id' => 'woocommerce_gzd_display_checkout_free_shipping_select',
632
+ 'default' => 'no',
633
+ 'type' => 'checkbox',
634
+ 'desc_tip' => __( 'By default WooCommerce will let customers choose other shipping methods than free shipping (if available). This option will force free shipping if available.', 'woocommerce-germanized' ),
635
+ ),
636
+
637
  array(
638
  'title' => __( 'Hide taxes estimated', 'woocommerce-germanized' ),
639
  'desc' => __( 'Do you want to hide the "taxes and shipping estimated" text from your cart?', 'woocommerce-germanized' ),
includes/admin/views/html-page-status-germanized.php ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Admin View: Page - Germanized Report
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) )
7
+ exit;
8
+
9
+ ?>
10
+ <div class="updated woocommerce-message">
11
+ <p><?php _e( 'Please copy and paste this information in your ticket when contacting support:', 'woocommerce' ); ?> </p>
12
+ <p class="submit"><a href="#" class="button-primary debug-report"><?php _e( 'Get System Report', 'woocommerce' ); ?></a>
13
+ <div id="debug-report">
14
+ <textarea readonly="readonly"></textarea>
15
+ <p class="submit"><button id="copy-for-support" class="button-primary" href="#" data-tip="<?php _e( 'Copied!', 'woocommerce' ); ?>"><?php _e( 'Copy for Support', 'woocommerce' ); ?></button></p>
16
+ </div>
17
+ </div>
18
+ <br/>
19
+ <table class="wc_status_table widefat" cellspacing="0" id="status">
20
+ <thead>
21
+ <tr>
22
+ <th colspan="3" data-export-label="WooCommerce Germanized"><?php _e( 'WooCommerce Germanized', 'woocommerce-germanized' ); ?></th>
23
+ </tr>
24
+ </thead>
25
+ <tbody>
26
+ <tr>
27
+ <td data-export-label="WC GZD Version"><?php _e( 'Version', 'woocommerce-germanized' ); ?>:</td>
28
+ <td class="help">&nbsp;</td>
29
+ <td><?php echo esc_html( WC_germanized()->version ); ?></td>
30
+ </tr>
31
+ <tr>
32
+ <td data-export-label="WC GZD Database Version"><?php _e( 'Database Version', 'woocommerce-germanized' ); ?>:</td>
33
+ <td class="help">&nbsp;</td>
34
+ <td><?php echo esc_html( get_option( 'woocommerce_gzd_db_version' ) ); ?></td>
35
+ </tr>
36
+ <tr>
37
+ <td data-export-label="Small Business"><?php _e( 'Small-Enterprise-Regulation', 'woocommerce-germanized' ); ?>:</td>
38
+ <td class="help">&nbsp;</td>
39
+ <td><?php echo 'yes' === get_option( 'woocommerce_gzd_small_enterprise' ) ? '<mark class="yes">'.'&#10004;'.'</mark>' : '<mark class="no">'.'&ndash;'.'</mark>'; ?></td>
40
+ </tr>
41
+ <tr>
42
+ <td data-export-label="Default Delivery Time"><?php _e( 'Default Delivery Time', 'woocommerce-germanized' ); ?>:</td>
43
+ <td class="help">&nbsp;</td>
44
+ <?php
45
+
46
+ $term_id = get_option( 'woocommerce_gzd_default_delivery_time' );
47
+ $term = false;
48
+ if ( $term_id )
49
+ $term = get_term_by( 'id', $term_id, 'product_delivery_time' );
50
+
51
+ ?>
52
+ <td><?php echo $term ? $term->name : '<mark class="no">'.'&ndash;'.'</mark>' . ( $term_id && ! $term ? ' [' . __( 'Term doesn’t exist', 'woocommerce-germanized' ) . ']' : '' ); ?></td>
53
+ </tr>
54
+ <tr>
55
+ <td data-export-label="Checkout Fallback"><?php _e( 'Fallback Mode', 'woocommerce-germanized' ); ?>:</td>
56
+ <td class="help">&nbsp;</td>
57
+ <td><?php echo 'yes' === get_option( 'woocommerce_gzd_display_checkout_fallback' ) ? '<mark class="yes">'.'&#10004;'.'</mark>' : '<mark class="no">'.'&ndash;'.'</mark>'; ?></td>
58
+ </tr>
59
+ <?php do_action( 'woocommerce_gzd_status_after_germanized' ); ?>
60
+ </tbody>
61
+ </table>
62
+
63
+ <table class="wc_status_table widefat" cellspacing="0" id="status">
64
+ <thead>
65
+ <tr>
66
+ <th colspan="3" data-export-label="Taxes"><?php _e( 'Taxes', 'woocommerce-germanized' ); ?></th>
67
+ </tr>
68
+ </thead>
69
+ <tbody>
70
+ <tr>
71
+ <td data-export-label="Shipping Taxes"><?php _e( 'Shipping Taxes', 'woocommerce-germanized' ); ?>:</td>
72
+ <td class="help">&nbsp;</td>
73
+ <td><?php echo 'yes' === get_option( 'woocommerce_gzd_shipping_tax' ) ? '<mark class="yes">'.'&#10004;'.'</mark>' . ( 'yes' === get_option( 'woocommerce_gzd_shipping_tax_force' ) ? ' [' . __( 'Forced', 'woocommerce-germanized' ) . ']' : '' ) : '<mark class="no">'.'&ndash;'.'</mark>'; ?></td>
74
+ </tr>
75
+ <tr>
76
+ <td data-export-label="Fee Taxes"><?php _e( 'Fee Taxes', 'woocommerce-germanized' ); ?>:</td>
77
+ <td class="help">&nbsp;</td>
78
+ <td><?php echo 'yes' === get_option( 'woocommerce_gzd_fee_tax' ) ? '<mark class="yes">'.'&#10004;'.'</mark>' . ( 'yes' === get_option( 'woocommerce_gzd_fee_tax_force' ) ? ' [' . __( 'Forced', 'woocommerce-germanized' ) . ']' : '' ) : '<mark class="no">'.'&ndash;'.'</mark>'; ?></td>
79
+ </tr>
80
+ <tr>
81
+ <td data-export-label="Virtual VAT"><?php _e( 'Virtual VAT', 'woocommerce-germanized' ); ?>:</td>
82
+ <td class="help">&nbsp;</td>
83
+ <td><?php echo 'yes' === get_option( 'woocommerce_gzd_enable_virtual_vat' ) ? '<mark class="yes">'.'&#10004;'.'</mark>' : '<mark class="no">'.'&ndash;'.'</mark>'; ?></td>
84
+ </tr>
85
+ <tr>
86
+ <td data-export-label="Tax Rate Name Collision"><?php _e( 'Tax Rate Name Collision', 'woocommerce-germanized' ); ?>:</td>
87
+ <td class="help"><?php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__( 'Make sure, that different tax rates do not have the same names. WooCommerce will then merge these rates within checkout into one line.', 'woocommerce-germanized' ) . '">[?]</a>'; ?></td>
88
+ <td>
89
+ <?php
90
+
91
+ global $wpdb;
92
+
93
+ $tax_classes = WC_Tax::get_tax_classes();
94
+ $tax_rate_names = array();
95
+ $collisions = array();
96
+
97
+ foreach( $tax_classes as $class ) {
98
+
99
+ $rates = $wpdb->get_results( $wpdb->prepare(
100
+ "SELECT * FROM {$wpdb->prefix}woocommerce_tax_rates
101
+ WHERE tax_rate_class = %s
102
+ ORDER BY tax_rate_order
103
+ " ,
104
+ sanitize_title( $class )
105
+ ) );
106
+
107
+ foreach ( $rates as $rate ) {
108
+ if ( ! isset( $tax_rate_names[ $rate->tax_rate_name ] ) )
109
+ $tax_rate_names[ $rate->tax_rate_name ] = $rate;
110
+ else if ( $tax_rate_names[ $rate->tax_rate_name ]->tax_rate_class != $rate->tax_rate_class )
111
+ array_push( $collisions, array( $tax_rate_names[ $rate->tax_rate_name ], $rate ) );
112
+
113
+ }
114
+
115
+ }
116
+
117
+ if ( ! empty( $collisions ) ) {
118
+ $c_count = 0;
119
+ foreach ( $collisions as $collision ) {
120
+ echo ( $c_count++ > 0 ? ' | ' : '' ) . $collision[0]->tax_rate_id . ' (' . $collision[0]->tax_rate_class . ') && ' . $collision[1]->tax_rate_id . ' (' . $collision[1]->tax_rate_class . ')';
121
+ }
122
+ } else {
123
+ echo '<mark class="no">'.'&ndash;'.'</mark>';
124
+ }
125
+
126
+ ?>
127
+ </td>
128
+ </tr>
129
+ <tr>
130
+ <td data-export-label="VAT Table Check"><?php _e( 'VAT Table Check', 'woocommerce-germanized' ); ?>:</td>
131
+ <td class="help"><?php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__( 'Checks whether all WooCommerce tax relevant tables have been added.', 'woocommerce-germanized' ) . '">[?]</a>'; ?></td>
132
+ <td><?php echo WC_GZD_Admin_Status::tax_tables_exist() ? '<mark class="yes">'.'&#10004;'.'</mark>' : '<mark class="no">'.'&ndash;'.'</mark>' . ' [' .sprintf( __( 'Missing: %s', 'woocommerce-germanized' ), implode( ', ', WC_GZD_Admin_Status::get_missing_tax_tables() ) ) . ']'; ?></td>
133
+ </tr>
134
+ <?php do_action( 'woocommerce_gzd_status_after_vat' ); ?>
135
+ </tbody>
136
+ </table>
137
+
138
+ <table class="wc_status_table widefat" cellspacing="0" id="status">
139
+ <thead>
140
+ <tr>
141
+ <th colspan="3" data-export-label="Legal Pages"><?php _e( 'Legal Pages', 'woocommerce-germanized' ); ?></th>
142
+ </tr>
143
+ </thead>
144
+ <tbody>
145
+ <?php foreach ( WC_GZD_Admin_Status::get_legal_pages() as $option => $page ) : ?>
146
+
147
+ <tr>
148
+ <td data-export-label="<?php echo $page[ 'title' ]; ?>"><?php echo $page[ 'title' ]; ?></td>
149
+ <td class="help">&nbsp;</td>
150
+ <td><?php echo $page[ 'id' ] && get_post( $page[ 'id' ] ) ? '<mark class="yes">'.'&#10004;'.'</mark>' : '<mark class="no">'.'&ndash;'.'</mark>' . ( $page[ 'id' ] && ! get_post( $page[ 'id' ] ) ? ' [' . __( 'Page doesn’t exist', 'woocommerce-germanized' ) . ']' : '' ); ?></td>
151
+ </tr>
152
+
153
+ <?php endforeach; ?>
154
+ <?php do_action( 'woocommerce_gzd_status_after_legal_pages' ); ?>
155
+ </tbody>
156
+ </table>
157
+
158
+ <table class="wc_status_table widefat" cellspacing="0" id="status">
159
+ <thead>
160
+ <tr>
161
+ <th colspan="3" data-export-label="Templates"><?php _e( 'Templates', 'woocommerce' ); ?></th>
162
+ </tr>
163
+ </thead>
164
+ <tbody>
165
+ <?php
166
+
167
+ $template_paths = apply_filters( 'woocommerce_gzd_template_overrides_scan_paths', array( 'WooCommerce Germanized' => WC_germanized()->plugin_path() . '/templates/' ) );
168
+ $scanned_files = array();
169
+ $found_files = array();
170
+ $outdated_templates = false;
171
+
172
+ foreach ( $template_paths as $plugin_name => $template_path ) {
173
+ $scanned_files[ $plugin_name ] = WC_Admin_Status::scan_template_files( $template_path );
174
+ }
175
+
176
+ foreach ( $scanned_files as $plugin_name => $files ) {
177
+
178
+ $plugin_subfolder = sanitize_title( $plugin_name );
179
+
180
+ foreach ( $files as $file ) {
181
+
182
+ if ( strpos( $file, '.php' ) === false )
183
+ continue;
184
+
185
+ if ( file_exists( get_stylesheet_directory() . '/' . $file ) ) {
186
+ $theme_file = get_stylesheet_directory() . '/' . $file;
187
+ } elseif ( file_exists( get_stylesheet_directory() . '/' . $plugin_subfolder . '/' . $file ) ) {
188
+ $theme_file = get_stylesheet_directory() . '/' . $plugin_subfolder . '/' . $file;
189
+ } elseif ( file_exists( get_template_directory() . '/' . $file ) ) {
190
+ $theme_file = get_template_directory() . '/' . $file;
191
+ } elseif( file_exists( get_template_directory() . '/' . $plugin_subfolder . '/' . $file ) ) {
192
+ $theme_file = get_template_directory() . '/' . $plugin_subfolder . '/' . $file;
193
+ } else {
194
+ $theme_file = false;
195
+ }
196
+
197
+ if ( $theme_file ) {
198
+
199
+ $core_version = WC_Admin_Status::get_file_version( apply_filters( 'woocommerce_gzd_template_overrides_scan_plugin_dir', WC()->plugin_path() . '/templates/' . $file, $plugin_name, $file ) );
200
+ $theme_version = WC_Admin_Status::get_file_version( $theme_file );
201
+
202
+ if ( $core_version && ( empty( $theme_version ) || version_compare( $theme_version, $core_version, '<' ) ) ) {
203
+ if ( ! $outdated_templates ) {
204
+ $outdated_templates = true;
205
+ }
206
+ $found_files[ $plugin_name ][] = sprintf( __( '<code>%s</code> version <strong style="color:red">%s</strong> is out of date. The core version is %s', 'woocommerce' ), str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ), $theme_version ? $theme_version : '-', $core_version );
207
+ } else {
208
+ $found_files[ $plugin_name ][] = sprintf( '<code>%s</code>', str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ) );
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ if ( $found_files ) {
215
+ foreach ( $found_files as $plugin_name => $found_plugin_files ) {
216
+ ?>
217
+ <tr>
218
+ <td data-export-label="Overrides"><?php _e( 'Overrides', 'woocommerce' ); ?> (<?php echo $plugin_name; ?>):</td>
219
+ <td class="help">&nbsp;</td>
220
+ <td><?php echo implode( ', <br/>', $found_plugin_files ); ?></td>
221
+ </tr>
222
+ <?php
223
+ }
224
+ } else {
225
+ ?>
226
+ <tr>
227
+ <td data-export-label="Overrides"><?php _e( 'Overrides', 'woocommerce' ); ?>:</td>
228
+ <td class="help">&nbsp;</td>
229
+ <td>&ndash;</td>
230
+ </tr>
231
+ <?php
232
+ }
233
+
234
+ if ( true === $outdated_templates ) {
235
+ ?>
236
+ <tr>
237
+ <td>&nbsp;</td>
238
+ <td><a href="http://speakinginbytes.com/2014/02/woocommerce-2-1-outdated-templates/" target="_blank"><?php _e( 'Learn how to update outdated templates', 'woocommerce' ) ?></a></td>
239
+ </tr>
240
+ <?php
241
+ }
242
+ ?>
243
+ <?php do_action( 'woocommerce_gzd_status_after_templates' ); ?>
244
+ </tbody>
245
+ </table>
246
+
247
+ <script type="text/javascript">
248
+
249
+ jQuery( 'a.help_tip' ).click( function() {
250
+ return false;
251
+ });
252
+
253
+ jQuery( 'a.debug-report' ).click( function() {
254
+
255
+ var report = '';
256
+
257
+ jQuery( '#status thead, #status tbody' ).each(function(){
258
+
259
+ if ( jQuery( this ).is('thead') ) {
260
+
261
+ var label = jQuery( this ).find( 'th:eq(0)' ).data( 'export-label' ) || jQuery( this ).text();
262
+ report = report + "\n### " + jQuery.trim( label ) + " ###\n\n";
263
+
264
+ } else {
265
+
266
+ jQuery('tr', jQuery( this ) ).each(function(){
267
+
268
+ var label = jQuery( this ).find( 'td:eq(0)' ).data( 'export-label' ) || jQuery( this ).find( 'td:eq(0)' ).text();
269
+ var the_name = jQuery.trim( label ).replace( /(<([^>]+)>)/ig, '' ); // Remove HTML
270
+ var the_value = jQuery.trim( jQuery( this ).find( 'td:eq(2)' ).text() );
271
+ var value_array = the_value.split( ', ' );
272
+
273
+ if ( value_array.length > 1 ) {
274
+
275
+ // If value have a list of plugins ','
276
+ // Split to add new line
277
+ var output = '';
278
+ var temp_line ='';
279
+ jQuery.each( value_array, function( key, line ){
280
+ temp_line = temp_line + line + '\n';
281
+ });
282
+
283
+ the_value = temp_line;
284
+ }
285
+
286
+ report = report + '' + the_name + ': ' + the_value + "\n";
287
+ });
288
+
289
+ }
290
+ });
291
+
292
+ try {
293
+ jQuery( "#debug-report" ).slideDown();
294
+ jQuery( "#debug-report textarea" ).val( report ).focus().select();
295
+ jQuery( this ).fadeOut();
296
+ return false;
297
+ } catch( e ){
298
+ console.log( e );
299
+ }
300
+
301
+ return false;
302
+ });
303
+
304
+ jQuery( document ).ready( function ( $ ) {
305
+ $( '#copy-for-support' ).tipTip({
306
+ 'attribute': 'data-tip',
307
+ 'activation': 'click',
308
+ 'fadeIn': 50,
309
+ 'fadeOut': 50,
310
+ 'delay': 0
311
+ });
312
+
313
+ $( 'body' ).on( 'copy', '#copy-for-support', function ( e ) {
314
+ e.clipboardData.clearData();
315
+ e.clipboardData.setData( 'text/plain', $( '#debug-report textarea' ).val() );
316
+ e.preventDefault();
317
+ });
318
+
319
+ });
320
+
321
+ </script>
includes/admin/views/html-page-status.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Admin View: Page - Status
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit;
8
+ }
9
+
10
+ $current_tab = ! empty( $_REQUEST['tab'] ) ? sanitize_title( $_REQUEST['tab'] ) : 'status';
11
+ ?>
12
+ <div class="wrap woocommerce">
13
+ <div class="icon32 icon32-woocommerce-status" id="icon-woocommerce"><br /></div><h2 class="nav-tab-wrapper woo-nav-tab-wrapper">
14
+ <?php
15
+ $tabs = apply_filters( 'woocommerce_gzd_admin_status_tabs', array(
16
+ 'status' => __( 'System Status', 'woocommerce' ),
17
+ 'tools' => __( 'Tools', 'woocommerce' ),
18
+ 'logs' => __( 'Logs', 'woocommerce' ),
19
+ 'germanized' => __( 'Germanized', 'woocommerce-germanized' ),
20
+ ) );
21
+ foreach ( $tabs as $name => $label ) {
22
+ echo '<a href="' . admin_url( 'admin.php?page=wc-status&tab=' . $name ) . '" class="nav-tab ';
23
+ if ( $current_tab == $name ) echo 'nav-tab-active';
24
+ echo '">' . $label . '</a>';
25
+ }
26
+ ?>
27
+ </h2><br/>
28
+ <?php
29
+ switch ( $current_tab ) {
30
+ case "tools" :
31
+ WC_GZD_Admin_Status::status_tools();
32
+ break;
33
+ case "logs" :
34
+ WC_GZD_Admin_Status::status_logs();
35
+ break;
36
+ case "germanized" :
37
+ WC_GZD_Admin_Status::germanized();
38
+ break;
39
+ case "status":
40
+ case "":
41
+ WC_GZD_Admin_Status::status_report();
42
+ break;
43
+ default :
44
+ WC_GZD_Admin_Status::status_default( $current_tab );
45
+ break;
46
+ }
47
+ ?>
48
+ </div>
includes/class-wc-gzd-cart.php CHANGED
@@ -335,7 +335,7 @@ class WC_GZD_Cart extends WC_Cart {
335
  public function is_virtual_taxable() {
336
  if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
337
  return false;
338
- if ( ( ! empty( WC()->customer ) ) ) {
339
  $taxable_address = WC()->customer->get_taxable_address();
340
  $base_country = WC()->countries->get_base_country();
341
  if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
335
  public function is_virtual_taxable() {
336
  if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
337
  return false;
338
+ if ( ( ! empty( WC()->customer ) ) && ! WC()->customer->is_vat_exempt() ) {
339
  $taxable_address = WC()->customer->get_taxable_address();
340
  $base_country = WC()->countries->get_base_country();
341
  if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
includes/class-wc-gzd-checkout.php CHANGED
@@ -57,15 +57,33 @@ class WC_GZD_Checkout {
57
  add_filter( 'woocommerce_get_cancel_order_url_raw', array( $this, 'cancel_order_url' ), PHP_INT_MAX, 1 );
58
  add_filter( 'user_has_cap', array( $this, 'disallow_user_order_cancellation' ), 15, 3 );
59
  }
60
- // Customer account checkbox text
61
- if ( get_option( 'woocommerce_gzd_customer_account_checkout_checkbox' ) == 'yes' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  add_filter( 'gettext', array( $this, 'set_customer_account_checkbox_text' ), 10, 3 );
63
  }
64
 
65
  public function set_customer_account_checkbox_text( $translated, $original, $domain ) {
66
  $search = "Create an account?";
67
- if ( $domain == 'woocommerce' && $original == $search )
 
68
  return wc_gzd_get_legal_text( get_option( 'woocommerce_gzd_customer_account_text' ) );
 
69
  return $translated;
70
  }
71
 
57
  add_filter( 'woocommerce_get_cancel_order_url_raw', array( $this, 'cancel_order_url' ), PHP_INT_MAX, 1 );
58
  add_filter( 'user_has_cap', array( $this, 'disallow_user_order_cancellation' ), 15, 3 );
59
  }
60
+ add_action( 'template_redirect', array( $this, 'init_gettext_replacement' ) );
61
+ // Free Shipping auto select
62
+ if ( get_option( 'woocommerce_gzd_display_checkout_free_shipping_select' ) == 'yes' )
63
+ add_filter( 'woocommerce_package_rates', array( $this, 'free_shipping_auto_select' ) );
64
+ }
65
+
66
+ public function free_shipping_auto_select( $rates ) {
67
+ if ( ( is_checkout() || is_cart() ) && isset( $rates['free_shipping'] ) ) {
68
+ foreach ( $rates as $key => $value ) {
69
+ if ( 'free_shipping' !== $key )
70
+ unset( $rates[ $key ] );
71
+ }
72
+ }
73
+ return $rates;
74
+ }
75
+
76
+ public function init_gettext_replacement() {
77
+ if ( is_checkout() && get_option( 'woocommerce_gzd_customer_account_checkout_checkbox' ) == 'yes' )
78
  add_filter( 'gettext', array( $this, 'set_customer_account_checkbox_text' ), 10, 3 );
79
  }
80
 
81
  public function set_customer_account_checkbox_text( $translated, $original, $domain ) {
82
  $search = "Create an account?";
83
+ if ( $domain === 'woocommerce' && $original === $search ) {
84
+ remove_filter( 'gettext', array( $this, 'set_customer_account_checkbox_text' ), 10, 3 );
85
  return wc_gzd_get_legal_text( get_option( 'woocommerce_gzd_customer_account_text' ) );
86
+ }
87
  return $translated;
88
  }
89
 
includes/class-wc-gzd-emails.php CHANGED
@@ -12,7 +12,7 @@ class WC_GZD_Emails {
12
  * contains options and page ids
13
  * @var array
14
  */
15
- private $footer_attachments;
16
 
17
  /**
18
  * Adds legal page ids to different options and adds a hook to the email footer
@@ -24,7 +24,7 @@ class WC_GZD_Emails {
24
  $this->footer_attachments = array();
25
 
26
  foreach ( $attachment_order as $key => $order )
27
- $this->footer_attachments[ 'woocommerce_gzd_mail_attach_' . $key ] = woocommerce_get_page_id ( $key );
28
 
29
  add_action( 'woocommerce_email', array( $this, 'email_hooks' ), 0, 1 );
30
  }
@@ -140,7 +140,8 @@ class WC_GZD_Emails {
140
  */
141
  public function hook_mail_footer( $mail ) {
142
  if ( ! empty( $this->footer_attachments ) ) {
143
- foreach ( $this->footer_attachments as $option_key => $option ) {
 
144
  if ( $option == -1 || ! get_option( $option_key ) )
145
  continue;
146
  if ( in_array( $mail->id, get_option( $option_key ) ) ) {
12
  * contains options and page ids
13
  * @var array
14
  */
15
+ private $footer_attachments = array();
16
 
17
  /**
18
  * Adds legal page ids to different options and adds a hook to the email footer
24
  $this->footer_attachments = array();
25
 
26
  foreach ( $attachment_order as $key => $order )
27
+ $this->footer_attachments[ 'woocommerce_gzd_mail_attach_' . $key ] = $key;
28
 
29
  add_action( 'woocommerce_email', array( $this, 'email_hooks' ), 0, 1 );
30
  }
140
  */
141
  public function hook_mail_footer( $mail ) {
142
  if ( ! empty( $this->footer_attachments ) ) {
143
+ foreach ( $this->footer_attachments as $option_key => $page_option ) {
144
+ $option = woocommerce_get_page_id ( $page_option );
145
  if ( $option == -1 || ! get_option( $option_key ) )
146
  continue;
147
  if ( in_array( $mail->id, get_option( $option_key ) ) ) {
includes/class-wc-gzd-wpml-helper.php CHANGED
@@ -19,8 +19,10 @@ class WC_GZD_WPML_Helper {
19
  }
20
 
21
  public function __construct() {
 
22
  if ( ! $this->is_activated() )
23
  return;
 
24
  $this->filter_page_ids();
25
  }
26
 
@@ -42,11 +44,11 @@ class WC_GZD_WPML_Helper {
42
  }
43
  }
44
 
45
- function translate_page( $id ) {
46
  global $pagenow;
47
  if( is_admin() && $pagenow == 'options-permalink.php' )
48
  return $id;
49
- return icl_object_id( $id, 'page', true );
50
  }
51
 
52
  }
19
  }
20
 
21
  public function __construct() {
22
+
23
  if ( ! $this->is_activated() )
24
  return;
25
+
26
  $this->filter_page_ids();
27
  }
28
 
44
  }
45
  }
46
 
47
+ public function translate_page( $id ) {
48
  global $pagenow;
49
  if( is_admin() && $pagenow == 'options-permalink.php' )
50
  return $id;
51
+ return apply_filters( 'translate_object_id', $id, 'page', true );
52
  }
53
 
54
  }
includes/wc-gzd-core-functions.php CHANGED
@@ -10,6 +10,8 @@
10
 
11
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
 
 
 
13
  /**
14
  * Format tax rate percentage for output in frontend
15
  *
10
 
11
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
 
13
+ include( 'wc-gzd-product-functions.php' );
14
+
15
  /**
16
  * Format tax rate percentage for output in frontend
17
  *
includes/wc-gzd-product-functions.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Product Functions
4
+ *
5
+ * WC_GZD product functions.
6
+ *
7
+ * @author Vendidero
8
+ * @version 1.0.0
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
+
13
+ /**
14
+ * Register unit price update hook while cronjob is running
15
+ */
16
+ function wc_gzd_register_scheduled_unit_sales() {
17
+ add_action( 'updated_post_meta', 'wc_gzd_check_price_update', 0, 4 );
18
+ }
19
+ add_action( 'woocommerce_scheduled_sales', 'wc_gzd_register_scheduled_unit_sales', 0 );
20
+
21
+ /**
22
+ * Unregister unit price update hook
23
+ */
24
+ function wc_gzd_unregister_scheduled_unit_sales() {
25
+ remove_action( 'updated_post_meta', 'wc_gzd_check_price_update', 0 );
26
+ }
27
+ add_action( 'woocommerce_scheduled_sales', 'wc_gzd_unregister_scheduled_unit_sales', 20 );
28
+
29
+ /**
30
+ * Update the unit price to sale price if product is on sale
31
+ */
32
+ function wc_gzd_check_price_update( $meta_id, $post_id, $meta_key, $meta_value ) {
33
+
34
+ if ( $meta_key != '_price' )
35
+ return;
36
+
37
+ $product = wc_get_product( $post_id );
38
+ $sale_price = get_post_meta( $post_id, '_unit_price_sale', true );
39
+ $regular_price = get_post_meta( $post_id, '_unit_price_regular', true );
40
+
41
+ if ( $product->is_on_sale() && $sale_price ) {
42
+ update_post_meta( $post_id, '_unit_price', $sale_price );
43
+ } else {
44
+ update_post_meta( $post_id, '_unit_price', $regular_price );
45
+ }
46
+
47
+ }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=info@vendidero.de&item_name=Donation+for+WooCommerce+Germanized
5
  Requires at least: 3.8
6
  Tested up to: 4.2
7
- Stable tag: 1.3.4
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -163,6 +163,17 @@ Bugs sowie Hilfe bei der Arbeit an WooCommerce Germanized werden gerne über uns
163
 
164
  == Changelog ==
165
 
 
 
 
 
 
 
 
 
 
 
 
166
  = 1.3.4 =
167
  * Feature - optionally stop customers from manually cancelling orders (paypal etc.)
168
  * Feature - optionally show pay now button in confirmation email and success page
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=info@vendidero.de&item_name=Donation+for+WooCommerce+Germanized
5
  Requires at least: 3.8
6
  Tested up to: 4.2
7
+ Stable tag: 1.3.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
163
 
164
  == Changelog ==
165
 
166
+ = 1.3.5 =
167
+ * Feature - force free shipping method if available (optional)
168
+ * Feature - unit price sale scheduling (based on price schedules)
169
+ * Feature - unit price auto calculation (pro)
170
+ * Feature - system status for better error reporting
171
+ * Fix - product description removal
172
+ * Fix - better product data saving
173
+ * Fix - better email confirmation hooks
174
+ * Fix - wpml email attachment translation fix
175
+ * Fix - performance improvements
176
+
177
  = 1.3.4 =
178
  * Feature - optionally stop customers from manually cancelling orders (paypal etc.)
179
  * Feature - optionally show pay now button in confirmation email and success page
woocommerce-germanized.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce Germanized
4
  * Plugin URI: https://www.vendidero.de/woocommerce-germanized
5
  * Description: Extends WooCommerce to become a legally compliant store for the german market.
6
- * Version: 1.3.4
7
  * Author: Vendidero
8
  * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
@@ -26,7 +26,7 @@ final class WooCommerce_Germanized {
26
  *
27
  * @var string
28
  */
29
- public $version = '1.3.4';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
@@ -199,8 +199,8 @@ final class WooCommerce_Germanized {
199
  // Remove cart subtotal filter
200
  add_action( 'template_redirect', array( $this, 'remove_cart_unit_price_filter' ) );
201
 
202
- add_action( 'woocommerce_email', array( $this, 'remove_order_hooks' ), 0, 1 );
203
-
204
  $this->units = new WC_GZD_Units();
205
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
206
  $this->ekomi = new WC_GZD_Ekomi();
@@ -210,7 +210,18 @@ final class WooCommerce_Germanized {
210
  do_action( 'woocommerce_germanized_init' );
211
  }
212
 
213
- public function remove_order_hooks( $mailer ) {
 
 
 
 
 
 
 
 
 
 
 
214
 
215
  $mails = $mailer->get_emails();
216
 
@@ -346,8 +357,9 @@ final class WooCommerce_Germanized {
346
  include_once ( 'includes/abstracts/abstract-wc-gzd-product.php' );
347
 
348
  include_once ( 'includes/class-wc-gzd-wpml-helper.php' );
349
-
350
  include_once ( 'includes/wc-gzd-cart-functions.php' );
 
351
  include_once ( 'includes/class-wc-gzd-checkout.php' );
352
 
353
  }
3
  * Plugin Name: WooCommerce Germanized
4
  * Plugin URI: https://www.vendidero.de/woocommerce-germanized
5
  * Description: Extends WooCommerce to become a legally compliant store for the german market.
6
+ * Version: 1.3.5
7
  * Author: Vendidero
8
  * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
26
  *
27
  * @var string
28
  */
29
+ public $version = '1.3.5';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
199
  // Remove cart subtotal filter
200
  add_action( 'template_redirect', array( $this, 'remove_cart_unit_price_filter' ) );
201
 
202
+ $this->unregister_order_confirmation_hooks();
203
+
204
  $this->units = new WC_GZD_Units();
205
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
206
  $this->ekomi = new WC_GZD_Ekomi();
210
  do_action( 'woocommerce_germanized_init' );
211
  }
212
 
213
+ public function unregister_order_confirmation_hooks() {
214
+
215
+ $statuses = array( 'completed', 'on-hold', 'processing' );
216
+
217
+ foreach ( $statuses as $status )
218
+ add_action( 'woocommerce_order_status_' . $status, array( $this, 'remove_order_hooks' ), 0 );
219
+
220
+ }
221
+
222
+ public function remove_order_hooks() {
223
+
224
+ $mailer = WC()->mailer();
225
 
226
  $mails = $mailer->get_emails();
227
 
357
  include_once ( 'includes/abstracts/abstract-wc-gzd-product.php' );
358
 
359
  include_once ( 'includes/class-wc-gzd-wpml-helper.php' );
360
+
361
  include_once ( 'includes/wc-gzd-cart-functions.php' );
362
+
363
  include_once ( 'includes/class-wc-gzd-checkout.php' );
364
 
365
  }