WooCommerce Germanized - Version 1.4.6

Version Description

  • Feature - set free shipping option for products do disable "plus shipping costs" notice
  • Feature - forwarding fee for cash on delivery
  • Feature - better WPML compatibility
  • Feature - better virtual vat calculation (if enabled)
  • Fix - payment methods shortcode to include payment fees
  • Fix - remove order total html for better compatibility
  • Fix - show notices (theme, pro) in backend only after major releases
  • Fix - clear cart after order (if customer cancellations of orders has been disabled)
  • Fix - variable products delivery time removal (admin screen)
  • Fix - tour hide referer improvement
Download this release

Release Info

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

Code changes from version 1.4.5 to 1.4.6

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.4.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
- "PO-Revision-Date: 2015-10-16 08:02:48+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -163,7 +163,7 @@ msgstr "Angebots-Einheitspreis"
163
 
164
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:75
165
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:124
166
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:61
167
  #@ woocommerce-germanized
168
  msgid "Delivery Time"
169
  msgstr "Lieferzeit"
@@ -207,7 +207,7 @@ msgid "eKomi Options"
207
  msgstr "eKomi"
208
 
209
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:121
210
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:520
211
  #@ woocommerce-germanized
212
  msgid "General"
213
  msgstr "Allgemein"
@@ -370,163 +370,163 @@ msgstr "Versandkosten Text"
370
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:289
371
  #@ woocommerce-germanized
372
  msgid "This text will be used to inform the customer about shipping costs. Use {link}{/link} to insert link to shipping costs page."
373
- msgstr "Dieser Text wird genutzt um die Kunden im Frontend über u.U. anfallende Lieferkosten zu informieren. Nutzen Sie die Platzhalter {link}{/link} um den Link zur Versandkosten-Seite einzufügen."
374
 
375
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:294
376
  #@ woocommerce-germanized
377
  msgid "plus {link}Shipping Costs{/link}"
378
  msgstr "zzgl. {link}Versandkosten{/link}"
379
 
380
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:389
381
  #: includes/wc-gzd-core-functions.php:45
382
  #@ woocommerce-germanized
383
  msgid "Right of Recission"
384
  msgstr "Widerrufsrecht"
385
 
386
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:392
387
  #@ woocommerce-germanized
388
  msgid "Revocation Address"
389
  msgstr "Widerruf richten an"
390
 
391
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:393
392
  #@ woocommerce-germanized
393
  msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
394
  msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
395
 
396
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:476
397
  #@ woocommerce-germanized
398
  msgid "E-Mails"
399
  msgstr "E-Mails"
400
 
401
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:523
402
  #@ woocommerce-germanized
403
  msgid "Add to Cart"
404
  msgstr "Zum Warenkorb Button"
405
 
406
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:524
407
  #@ woocommerce-germanized
408
  msgid "Show add to cart button on listings?"
409
  msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
410
 
411
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:528
412
  #@ woocommerce-germanized
413
  msgid "unset this option if you don't want to show the add to cart button within the product listings"
414
  msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
415
 
416
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:550
417
  #@ woocommerce-germanized
418
  msgid "Notice Footer"
419
  msgstr "Hinweise im Footer"
420
 
421
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:551
422
  #@ woocommerce-germanized
423
  msgid "Show a global VAT notice within footer"
424
  msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer einfügen."
425
 
426
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:559
427
  #@ woocommerce-germanized
428
  msgid "Show a global sale price notice within footer"
429
  msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer einfügen."
430
 
431
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:568
432
  #@ woocommerce-germanized
433
  msgid "Products"
434
  msgstr "Produkt"
435
 
436
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:571
437
  #@ woocommerce-germanized
438
  msgid "Show within Product Listings"
439
  msgstr "In Produktlisten"
440
 
441
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:572
442
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:605
443
  #@ woocommerce-germanized
444
  msgid "Shipping Costs notice"
445
  msgstr "Versandkosten-Hinweis"
446
 
447
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:596
448
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:629
449
  #@ woocommerce-germanized
450
  msgid "Delivery Time Notice"
451
  msgstr "Lieferzeiten-Hinweis"
452
 
453
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:604
454
  #@ woocommerce-germanized
455
  msgid "Show on Product Detail Page"
456
  msgstr "Auf der Produktseite"
457
 
458
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:580
459
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:613
460
  #@ woocommerce-germanized
461
  msgid "Tax Info"
462
  msgstr "MwSt. Hinweis"
463
 
464
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:679
465
  #@ woocommerce-germanized
466
  msgid "Checkout & Cart"
467
  msgstr "Checkout & Warenkorb"
468
 
469
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:757
470
  #@ woocommerce-germanized
471
  msgid "Checkout Legal Display"
472
  msgstr "Checkbox oder Text"
473
 
474
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:758
475
  #@ woocommerce-germanized
476
  msgid "Use Text without Checkbox"
477
  msgstr "Rechtshinweis ohne Checkbox."
478
 
479
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:760
480
  #@ woocommerce-germanized
481
  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)."
482
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
483
 
484
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:766
485
  #@ woocommerce-germanized
486
  msgid "Legal Text"
487
  msgstr "Rechtlicher Hinweistext"
488
 
489
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:767
490
  #@ woocommerce-germanized
491
  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."
492
  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."
493
 
494
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:769
495
  #@ woocommerce-germanized
496
  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}."
497
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
498
 
499
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:776
500
  #@ woocommerce-germanized
501
  msgid "Legal Text Error"
502
  msgstr "Fehlermeldung der Checkbox"
503
 
504
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:777
505
  #@ woocommerce-germanized
506
  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."
507
  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}"
508
 
509
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:779
510
  #@ woocommerce-germanized
511
  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}."
512
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
513
 
514
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:835
515
  #@ woocommerce-germanized
516
  msgid "Order Success Text"
517
  msgstr "Bestellung eingegangen"
518
 
519
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:836
520
  #@ woocommerce-germanized
521
  msgid "Choose a custom text to display on order success page."
522
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
523
 
524
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:844
525
  #@ woocommerce-germanized
526
  msgid "Order Success Data"
527
  msgstr "Bestellbestätigungs-Daten"
528
 
529
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:845
530
  #@ woocommerce-germanized
531
  msgid "Hide product table and customer data on order success page"
532
  msgstr "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
@@ -608,12 +608,14 @@ msgstr "Anrede"
608
 
609
  #: includes/class-wc-gzd-checkout.php:149
610
  #: includes/class-wc-gzd-checkout.php:157
 
611
  #@ woocommerce-germanized
612
  msgid "Sir"
613
  msgstr "Herr"
614
 
615
  #: includes/class-wc-gzd-checkout.php:149
616
  #: includes/class-wc-gzd-checkout.php:157
 
617
  #@ woocommerce-germanized
618
  msgid "Madam"
619
  msgstr "Frau"
@@ -713,73 +715,73 @@ msgstr "Ihren Widerruf online erklären"
713
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
714
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
715
 
716
- #: includes/class-wc-gzd-install.php:417
717
  #@ woocommerce-germanized
718
  msgctxt "Page slug"
719
  msgid "data-security"
720
  msgstr "datenschutzbelehrung"
721
 
722
- #: includes/class-wc-gzd-install.php:418
723
  #@ woocommerce-germanized
724
  msgctxt "Page title"
725
  msgid "Data Security Statement"
726
  msgstr "Datenschutzbelehrung"
727
 
728
- #: includes/class-wc-gzd-install.php:422
729
  #@ woocommerce-germanized
730
  msgctxt "Page slug"
731
  msgid "imprint"
732
  msgstr "impressum"
733
 
734
- #: includes/class-wc-gzd-install.php:423
735
  #@ woocommerce-germanized
736
  msgctxt "Page title"
737
  msgid "Imprint"
738
  msgstr "Impressum"
739
 
740
- #: includes/class-wc-gzd-install.php:427
741
  #@ woocommerce-germanized
742
  msgctxt "Page slug"
743
  msgid "terms"
744
  msgstr "agb"
745
 
746
- #: includes/class-wc-gzd-install.php:428
747
  #@ woocommerce-germanized
748
  msgctxt "Page title"
749
  msgid "Terms & Conditions"
750
  msgstr "AGB"
751
 
752
- #: includes/class-wc-gzd-install.php:432
753
  #@ woocommerce-germanized
754
  msgctxt "Page slug"
755
  msgid "revocation"
756
  msgstr "widerrufsbelehrung"
757
 
758
- #: includes/class-wc-gzd-install.php:433
759
  #@ woocommerce-germanized
760
  msgctxt "Page title"
761
  msgid "Power of Revocation"
762
  msgstr "Widerrufsbelehrung"
763
 
764
- #: includes/class-wc-gzd-install.php:442
765
  #@ woocommerce-germanized
766
  msgctxt "Page slug"
767
  msgid "payment-methods"
768
  msgstr "bezahlmoeglichkeiten"
769
 
770
- #: includes/class-wc-gzd-install.php:443
771
  #@ woocommerce-germanized
772
  msgctxt "Page title"
773
  msgid "Payment Methods"
774
  msgstr "Zahlungsarten"
775
 
776
- #: includes/class-wc-gzd-install.php:437
777
  #@ woocommerce-germanized
778
  msgctxt "Page slug"
779
  msgid "shipping-methods"
780
  msgstr "versandarten"
781
 
782
- #: includes/class-wc-gzd-install.php:438
783
  #@ woocommerce-germanized
784
  msgctxt "Page title"
785
  msgid "Shipping Methods"
@@ -1031,41 +1033,29 @@ msgstr "Diese E-Mail wird als Bestätigung an den Kunden weitergeleitet, sobald
1031
  msgid "Your Revocation"
1032
  msgstr "Ihr Widerruf"
1033
 
1034
- #: includes/class-wc-gzd-payment-gateways.php:57
1035
- #, php-format
1036
- #@ woocommerce-germanized
1037
- msgid "plus %s payment charge"
1038
- msgstr "zzgl. %s Zahlungsgebühr"
1039
-
1040
- #: includes/class-wc-gzd-payment-gateways.php:39
1041
- #, php-format
1042
- #@ woocommerce-germanized
1043
- msgid "Plus %s payment charge."
1044
- msgstr "Zzgl. %s Zahlungsgebühr."
1045
-
1046
- #: includes/class-wc-gzd-payment-gateways.php:81
1047
  #@ woocommerce-germanized
1048
  msgid "Fee"
1049
  msgstr "Zahlungsgebühr"
1050
 
1051
- #: includes/class-wc-gzd-payment-gateways.php:83
1052
  #@ woocommerce-germanized
1053
  msgid "This fee is being added if customer selects payment method within checkout."
1054
  msgstr "Diese Gebühr wird während der Bestellung hinzugefügt, falls der Kunde diese Zahlungsart aktiviert."
1055
 
1056
- #: includes/class-wc-gzd-payment-gateways.php:88
1057
  #@ woocommerce-germanized
1058
  msgid "Fee is taxable?"
1059
  msgstr "Mwst. berechnen?"
1060
 
1061
- #: includes/class-wc-gzd-payment-gateways.php:121
1062
  #@ woocommerce-germanized
1063
  msgid "Payment charge"
1064
  msgstr "Zahlungsgebühr"
1065
 
1066
  #: includes/abstracts/abstract-wc-gzd-product.php:130
1067
  #: includes/wc-gzd-cart-functions.php:159
1068
- #: woocommerce-germanized.php:944
1069
  #, php-format
1070
  #@ woocommerce-germanized
1071
  msgid "incl. %s%% VAT"
@@ -1082,7 +1072,6 @@ msgstr "Bestellung bearbeiten"
1082
  msgid "Choose a Payment Gateway"
1083
  msgstr "Zahlungsart auswählen"
1084
 
1085
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:809
1086
  #: includes/wc-gzd-cart-functions.php:194
1087
  #@ woocommerce-germanized
1088
  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."
@@ -1220,11 +1209,6 @@ msgstr "Alle Preise inkl. der gesetzlichen MwSt."
1220
  msgid "All prices excl. VAT."
1221
  msgstr "Alle Preise exkl. der gesetzlichen MwSt."
1222
 
1223
- #: templates/footer/vat-info.php:15
1224
- #@ woocommerce-germanized
1225
- msgid "Because of the small business owner state according to &#167;19 UStG the seller charge no sales tax, and therefore do not show it."
1226
- msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1227
-
1228
  #: templates/forms/revocation-form.php:18
1229
  #@ woocommerce-germanized
1230
  msgctxt "revocation-form"
@@ -1237,14 +1221,8 @@ msgctxt "revocation-form"
1237
  msgid "Forward Revocation"
1238
  msgstr "Widerruf erklären"
1239
 
1240
- #: templates/single-product/legal-info.php:19
1241
- #: templates/single-product/tax-info.php:18
1242
- #@ woocommerce-germanized
1243
- msgid "VAT free based on &#167;19 UStG"
1244
- msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
1245
-
1246
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
1247
- #: woocommerce-germanized.php:594
1248
  #@ woocommerce
1249
  msgid "Settings"
1250
  msgstr "Einstellungen"
@@ -1423,12 +1401,12 @@ msgctxt "trusted-shops"
1423
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1424
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1425
 
1426
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:749
1427
  #@ woocommerce-germanized
1428
  msgid "Checkout Table Color"
1429
  msgstr "Hintergrundfarbe der Tabelle"
1430
 
1431
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:751
1432
  #@ woocommerce-germanized
1433
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1434
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
@@ -1465,47 +1443,47 @@ msgstr "Theme ist noch nicht für WooCommerce Germanized optimiert"
1465
  msgid "It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme's styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href=\"%s\" target=\"_blank\">making your theme compatible</a> or check out our Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> for 100&#37; compatibility."
1466
  msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCommerce Germanized optimiert ist. Bitte überprüfe die Style-Angaben deines Themes bzw. das Aussehen deines Shops. Manche Elemente werden möglicherweise falsch dargestellt - WooCommerce Germanized kann nur grundlegende Style-Angaben machen. Lies dir dazu <a href=\"%s\" target=\"_blank\">wie mache ich mein Theme kompatibel</a> durch oder nutze das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität."
1467
 
1468
- #: includes/class-wc-gzd-payment-gateways.php:90
1469
  #@ woocommerce-germanized
1470
  msgid "Check if fee is taxable."
1471
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1472
 
1473
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:806
1474
  #@ woocommerce-germanized
1475
  msgid "Legal Digital Text"
1476
  msgstr "Hinweis Digital"
1477
 
1478
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:807
1479
  #@ woocommerce-germanized
1480
  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."
1481
  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"
1482
 
1483
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:532
1484
  #@ woocommerce-germanized
1485
  msgid "Link to Details"
1486
  msgstr "Verlinkung zu Produktdetails"
1487
 
1488
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:533
1489
  #@ woocommerce-germanized
1490
  msgid "Want to link to product details page instead of add to cart within listings?"
1491
  msgstr "Zum Warenkorb Button mit Button zur Produktdetail-Seite ersetzen?"
1492
 
1493
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:537
1494
  #@ woocommerce-germanized
1495
  msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
1496
  msgstr "Wenn du lieber einen Link zu deiner Produktseite anstatt eines zum Warenkorb Buttons innerhalb von Produktauflistungen haben möchtest, dann setze einfach diese Option."
1497
 
1498
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:541
1499
  #@ woocommerce-germanized
1500
  msgid "Product Details Text"
1501
  msgstr "Produktdetails Text"
1502
 
1503
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:543
1504
  #@ woocommerce-germanized
1505
  msgid "Details"
1506
  msgstr "Details"
1507
 
1508
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:545
1509
  #@ woocommerce-germanized
1510
  msgid "If you have chosen to link to product details page instead of add to cart URL you may want to change the button text."
1511
  msgstr "Wenn du dich dazu entschlossen hast, lieber auf die Produktseite zu verlinken anstatt den zum Warenkorb Button einzublenden, kannst du hier einen Button-Text vergeben."
@@ -1606,19 +1584,19 @@ msgstr "jetzt Bewertung verfassen"
1606
  msgid "Found Bugs?"
1607
  msgstr "Bugs oder Wünsche melden"
1608
 
1609
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:637
1610
  #@ woocommerce-germanized
1611
  msgid "Shipping Costs for Virtual"
1612
  msgstr "Versandkosten virtuell"
1613
 
1614
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:638
1615
  #@ woocommerce-germanized
1616
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1617
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1618
 
1619
  #: includes/abstracts/abstract-wc-gzd-product.php:128
1620
  #: includes/wc-gzd-cart-functions.php:159
1621
- #: woocommerce-germanized.php:944
1622
  #@ woocommerce-germanized
1623
  msgid "incl. VAT"
1624
  msgstr "inkl. MwSt."
@@ -1628,23 +1606,23 @@ msgstr "inkl. MwSt."
1628
  msgid "excl. VAT"
1629
  msgstr "exkl. MwSt."
1630
 
1631
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:402
1632
  #: includes/admin/views/html-page-status-germanized.php:81
1633
  #@ woocommerce-germanized
1634
  msgid "Virtual VAT"
1635
  msgstr "USt. Änderung 2015"
1636
 
1637
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:405
1638
  #@ woocommerce-germanized
1639
  msgid "Enable Virtual VAT"
1640
  msgstr "USt. Anpassung aktivieren"
1641
 
1642
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:406
1643
  #@ woocommerce-germanized
1644
  msgid "Enable if you want to charge your customer's countries' VAT for virtual products."
1645
  msgstr "Aktiviere diese Option um für virtuelle Produkte den USt.-Satz des Dienstleistungsempfängers zu berechnen."
1646
 
1647
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:410
1648
  #, php-format
1649
  #@ woocommerce-germanized
1650
  msgid "New EU VAT rule applies on 01.01.2015. Make sure that every digital or virtual product has chosen the right tax class (Virtual Rate or Virtual Reduced Rate). Gross prices will not differ from the prices you have chosen for affected products. In fact the net price will differ depending on the VAT rate of your customers' country. Shop settings will be adjusted to show prices including tax. More information can be found <a href=\"%s\" target=\"_blank\">here</a>."
@@ -1660,12 +1638,12 @@ msgstr "EU MwSt.-Sätze anlegen"
1660
  msgid "We will automatically insert EU VAT Rates for selling virtual products."
1661
  msgstr "Wir übernehmen das Einfügen der unterschiedlichen EU MwSt.-Sätze für dich."
1662
 
1663
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:655
1664
  #@ woocommerce-germanized
1665
  msgid "{price}"
1666
  msgstr "{price}"
1667
 
1668
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:953
1669
  #@ woocommerce-germanized
1670
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1671
  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."
@@ -1680,62 +1658,62 @@ msgstr "Anrede im Checkout"
1680
  msgid "Add a title field to the address within checkout?"
1681
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1682
 
1683
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:786
1684
  #@ woocommerce-germanized
1685
  msgid "Show digital notice"
1686
  msgstr "Checkbox digitale Produkte"
1687
 
1688
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:787
1689
  #@ woocommerce-germanized
1690
  msgid "Show checkbox for digital products."
1691
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1692
 
1693
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:788
1694
  #@ woocommerce-germanized
1695
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1696
  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."
1697
 
1698
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:713
1699
  #@ woocommerce-germanized
1700
  msgid "Show Thumbnails"
1701
  msgstr "Thumbnails anzeigen"
1702
 
1703
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:714
1704
  #@ woocommerce-germanized
1705
  msgid "Show product thumbnails on checkout page?"
1706
  msgstr "Produktbilder im Checkout darstellen?"
1707
 
1708
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:718
1709
  #@ woocommerce-germanized
1710
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1711
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1712
 
1713
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:722
1714
  #@ woocommerce-germanized
1715
  msgid "Hide Shipping Select"
1716
  msgstr "Versandarten Auswahl"
1717
 
1718
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:723
1719
  #@ woocommerce-germanized
1720
  msgid "Hide shipping rate selection from checkout?"
1721
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1722
 
1723
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:727
1724
  #@ woocommerce-germanized
1725
  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."
1726
  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."
1727
 
1728
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:704
1729
  #@ woocommerce-germanized
1730
  msgid "Hide taxes estimated"
1731
  msgstr "Hinweis \"Steuern geschätzt\""
1732
 
1733
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:705
1734
  #@ woocommerce-germanized
1735
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1736
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1737
 
1738
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:709
1739
  #@ woocommerce-germanized
1740
  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."
1741
  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."
@@ -1746,79 +1724,79 @@ msgstr "Der Hinweistext im Warenkorb zur Schätzung von Steuern und Versandkoste
1746
  msgid "excl. %s%% VAT"
1747
  msgstr "exkl. %s%% MwSt."
1748
 
1749
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:731
1750
  #@ woocommerce-germanized
1751
  msgid "Show back to cart button"
1752
  msgstr "Bestellung bearbeiten"
1753
 
1754
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:732
1755
  #@ woocommerce-germanized
1756
  msgid "Show back to cart button within your checkout table?"
1757
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1758
 
1759
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:736
1760
  #@ woocommerce-germanized
1761
  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."
1762
  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."
1763
 
1764
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:298
1765
  #@ woocommerce-germanized
1766
  msgid "Shipping Costs Tax"
1767
  msgstr "Steuerberechnung"
1768
 
1769
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:299
1770
  #@ woocommerce-germanized
1771
  msgid "Enable better taxation for shpping costs?"
1772
  msgstr "Genauere Steuerberechnung für Versandkosten aktivieren?"
1773
 
1774
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:303
1775
  #, php-format
1776
  #@ woocommerce-germanized
1777
  msgid "By choosing this option shipping cost taxation will be calculated based on tax rates within cart. Imagine the following example. Further information can be found <a href=\"%s\" target=\"_blank\">here</a>. %s"
1778
  msgstr "Mit der Auswahl dieser Option werden die Steuern für Versandkosten basierend auf den Anteilen der Steuersätze der Artikel im Warenkorb berechnet. Weitere Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>. Falls du vorher mit Nettobeträgen gearbeitet hast, ändere die Versandkosten bitte in Bruttobeträge. Hier ein kleines Beispiel: %s"
1779
 
1780
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:307
1781
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:329
1782
  #@ woocommerce-germanized
1783
  msgid "Force Tax Calculation"
1784
  msgstr "Steuerberechnung erzwingen"
1785
 
1786
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:308
1787
  #@ woocommerce-germanized
1788
  msgid "Force shipping costs tax calculation for every method?"
1789
  msgstr "Erzwinge die Besteuerung für Versandkosten für jede Versandart?"
1790
 
1791
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:312
1792
  #@ woocommerce-germanized
1793
  msgid "This option will overwrite settings for each individual shipping method to force tax calculation (instead of only calculating tax for those methods which are taxeable)."
1794
  msgstr "Diese Option überschreibt alle abweichenden Einstellungen verschiedener Versandarten und erzwingt die Steuerberechnung."
1795
 
1796
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:317
1797
  #@ woocommerce-germanized
1798
  msgid "Fees"
1799
  msgstr "Gebühren"
1800
 
1801
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:320
1802
  #@ woocommerce-germanized
1803
  msgid "Fee Tax"
1804
  msgstr "Steuerberechnung"
1805
 
1806
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:321
1807
  #@ woocommerce-germanized
1808
  msgid "Enable better taxation for fees?"
1809
  msgstr "Genauere Steuerberechnung für Gebühren aktivieren?"
1810
 
1811
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:325
1812
  #@ woocommerce-germanized
1813
  msgid "By choosing this option fee taxation will be calculated based on tax rates within cart. See shipping costs taxation for more information."
1814
  msgstr "Mit Hilfe dieser Option werden die Steuern für Gebühren basierend auf den Steuersätzen der Artikel im Warenkorb berechnet (siehe Steuern für Versandkosten für weitere Informationen). Bitte passe auch hier etwaige Nettobeträge in Bruttobeträge an."
1815
 
1816
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:330
1817
  #@ woocommerce-germanized
1818
  msgid "Force fee tax calculation for every fee?"
1819
  msgstr "Berechnung der Steuern für Gebühren erzwingen?"
1820
 
1821
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:334
1822
  #@ woocommerce-germanized
1823
  msgid "This option will overwrite settings for each individual fee to force tax calculation (instead of only calculating tax for those fees which are taxeable)."
1824
  msgstr "Diese Option überschreibt die Einstellungen aller Gebühren und erzwingt die Steuerberechnung."
@@ -1844,33 +1822,33 @@ msgstr "Double Opt-In"
1844
  msgid "Yes, customer opted in"
1845
  msgstr "Ja, Kunde wurde per Double Opt-In bestätigt."
1846
 
1847
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:339
1848
  #@ woocommerce-germanized
1849
  msgid "Customers"
1850
  msgstr "Kunden"
1851
 
1852
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:369
1853
  #@ woocommerce-germanized
1854
  msgid "Customer Double Opt In"
1855
  msgstr "Double Opt-In"
1856
 
1857
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:370
1858
  #@ woocommerce-germanized
1859
  msgid "Enable customer double opt in on registration?"
1860
  msgstr "Double Opt-In Verfahren für Kundenkonten aktivieren?"
1861
 
1862
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:371
1863
  #, php-format
1864
  #@ woocommerce-germanized
1865
  msgid "If customer chooses to create a customer account an email with an activation link will be sent by mail. Customer account will be marked as activated if user clicks on the link within the email. More information on this topic can be found <a href=\"%s\" target=\"_blank\">here</a>."
1866
  msgstr "Wenn ein Kunde sich dazu entscheidet ein Benutzerkonto zu erstellen, erhält dieser eine E-Mail mit einem Bestätigungslink. Insofern der Kunde diesen Bestätigungslink anklickt, wird das Konto als bestätigt markiert. Dieses Verfahren ist laut Amtsgericht Berlin Pankow/Weißensee notwendig. Mehr Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>."
1867
 
1868
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:378
1869
  #@ woocommerce-germanized
1870
  msgid "Delete Unactivated After"
1871
  msgstr "Unaktivierte löschen nach"
1872
 
1873
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:379
1874
  #@ woocommerce-germanized
1875
  msgid "This will make sure unactivated customer accounts will be deleted after X days. Set to 0 if you don't want to automatically delete unactivated customers."
1876
  msgstr "Diese Option sorgt dafür, dass unaktivierte Kundenkonten nach X Tagen automatisch gelöscht werden. Falls du die Löschung verhindern möchtest, setze den Wert auf 0."
@@ -1920,22 +1898,22 @@ msgstr "Wenn Sie bei %s kein Benutzerkonto eröffnet haben, ignorieren Sie diese
1920
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
1921
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
1922
 
1923
- #: woocommerce-germanized.php:789
1924
  #@ woocommerce-germanized
1925
  msgid "Thank you. You have successfully activated your account."
1926
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
1927
 
1928
- #: woocommerce-germanized.php:793
1929
  #@ woocommerce-germanized
1930
  msgid "Sorry, but this activation code cannot be found."
1931
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
1932
 
1933
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:380
1934
  #@ woocommerce-germanized
1935
  msgid "days"
1936
  msgstr "Tagen"
1937
 
1938
- #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:62
1939
  #@ woocommerce-germanized
1940
  msgid "Search for a delivery time&hellip;"
1941
  msgstr "Lieferzeit suchen&hellip;"
@@ -1958,7 +1936,7 @@ msgstr "https://www.vendidero.de/woocommerce-germanized"
1958
  msgid "https://vendidero.de"
1959
  msgstr "https://vendidero.de"
1960
 
1961
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:684
1962
  #: includes/admin/views/html-page-status-germanized.php:55
1963
  #@ woocommerce-germanized
1964
  msgid "Fallback Mode"
@@ -2077,22 +2055,17 @@ msgstr "Neue Einheit anlegen"
2077
  msgid "New Unit Name"
2078
  msgstr "Name der neuen Einheit"
2079
 
2080
- #: templates/global/small-business-info.php:15
2081
- #@ woocommerce-germanized
2082
- 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."
2083
- msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach &#167;19 (1) UStG."
2084
-
2085
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:740
2086
  #@ woocommerce-germanized
2087
  msgid "Show edit data notice"
2088
  msgstr "Bestellung prüfen Hinweis"
2089
 
2090
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:741
2091
  #@ woocommerce-germanized
2092
  msgid "Show a \"check-your-entries\" notice to the user?"
2093
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
2094
 
2095
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:745
2096
  #@ woocommerce-germanized
2097
  msgid "This notice will be added right before the order comments field."
2098
  msgstr "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
@@ -2114,20 +2087,20 @@ msgid "Contract"
2114
  msgstr "Kaufvertrag"
2115
 
2116
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:177
2117
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:415
2118
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:427
2119
  #, php-format
2120
  #@ woocommerce-germanized
2121
  msgid "%sUpgrade to %spro%s%s to unlock this feature and get premium support."
2122
  msgstr "%sUpgrade zur %spro%s Version%s um dieses Feature nutzen zu können und erhalte professionellen Support."
2123
 
2124
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:415
2125
  #@ woocommerce-germanized
2126
  msgctxt "invoices"
2127
  msgid "Invoices"
2128
  msgstr "Rechnungen"
2129
 
2130
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:427
2131
  #@ woocommerce-germanized
2132
  msgid "VAT"
2133
  msgstr "Umsatzsteuer"
@@ -2185,13 +2158,13 @@ msgstr "Du hast noch keine AGB? <a href=\"%s\">Jetzt generieren</a>!"
2185
  msgid "Don't have a revocation page yet? <a href=\"%s\">Generate now</a>!"
2186
  msgstr "Du hast noch keine Widerrufsbelehrung? <a href=\"%s\">Jetzt generieren</a>!"
2187
 
2188
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:462
2189
  #, php-format
2190
  #@ woocommerce-germanized
2191
  msgid "Attach %s"
2192
  msgstr "%s"
2193
 
2194
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:463
2195
  #, php-format
2196
  #@ woocommerce-germanized
2197
  msgid "Attach %s to the following email templates"
@@ -2202,7 +2175,7 @@ msgstr "%s an die folgenden E-Mail Templates anfügen"
2202
  msgid "Data Security"
2203
  msgstr "Datenschutzbelehrung"
2204
 
2205
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:476
2206
  #@ woocommerce-germanized
2207
  msgid "Use drag & drop to customize attachment order. Don't forget to save your changes."
2208
  msgstr "Verwende Drag & Drop um die Reihenfolge der Texte in den E-Mails zu beeinflussen und speichere anschließend deine Änderungen."
@@ -2255,58 +2228,58 @@ msgstr "Premium Support via Ticket-System"
2255
  msgid "Learn more about Pro Version"
2256
  msgstr "Mehr über die Pro Version erfahren"
2257
 
2258
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:342
2259
  #: includes/gateways/direct-debit/class-wc-gzd-gateway-direct-debit.php:300
2260
  #@ woocommerce-germanized
2261
  msgid "Checkbox"
2262
  msgstr "Checkbox"
2263
 
2264
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:343
2265
  #@ woocommerce-germanized
2266
  msgid "Add a checkbox to customer registration form."
2267
  msgstr "Füge eine Checkbox zum Formular für die Kundenregistrierung hinzu."
2268
 
2269
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:350
2270
  #@ woocommerce-germanized
2271
  msgid "Checkbox text"
2272
  msgstr "Checkbox Text"
2273
 
2274
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:351
2275
  #@ woocommerce-germanized
2276
  msgid "Choose a Plain Text which will be shown as checkbox text for customer account creation. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
2277
  msgstr "Dieser Text dient als Hinweistext für die Erstellung eines Kundenkontos und wird neben der Checkbox dargestellt. Verwende {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} als Platzhalter für die Links zu den rechtlichen Hinweisseiten."
2278
 
2279
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:353
2280
  #@ woocommerce-germanized
2281
  msgid "Yes, I’d like create a new account and have read and understood the {data_security_link}data privacy statement{/data_security_link}."
2282
  msgstr "Ja, ich möchte ein Kundenkonto eröffnen und akzeptiere die {data_security_link}Datenschutzerklärung{/data_security_link}."
2283
 
2284
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:360
2285
  #@ woocommerce-germanized
2286
  msgid "Checkout"
2287
  msgstr "Kasse"
2288
 
2289
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:361
2290
  #@ woocommerce-germanized
2291
  msgid "Replace default WooCommerce text regarding account creation during checkout."
2292
  msgstr "Ersetze den WooCommerce Text (Kundenkonto erstellen?) durch den o.g. Hinweis."
2293
 
2294
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:362
2295
  #@ woocommerce-germanized
2296
  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."
2297
  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."
2298
 
2299
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:826
2300
  #@ woocommerce-germanized
2301
  msgid "Pay now Button"
2302
  msgstr "Jetzt bezahlen Button"
2303
 
2304
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:827
2305
  #@ woocommerce-germanized
2306
  msgid "Add a pay now button to emails and order success page."
2307
  msgstr "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite hinzu."
2308
 
2309
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:828
2310
  #@ woocommerce-germanized
2311
  msgid "Add a pay now button to order confirmation email and order success page if the order awaits payment (PayPal etc)."
2312
  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)."
@@ -2469,17 +2442,17 @@ msgstr "Tools"
2469
  msgid "Logs"
2470
  msgstr ""
2471
 
2472
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:695
2473
  #@ woocommerce-germanized
2474
  msgid "Force free shipping"
2475
  msgstr "Versandmethode erzwingen"
2476
 
2477
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:696
2478
  #@ woocommerce-germanized
2479
  msgid "Force free shipping method if available?"
2480
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
2481
 
2482
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:700
2483
  #@ woocommerce-germanized
2484
  msgid "By default WooCommerce will let customers choose other shipping methods than free shipping (if available). This option will force free shipping if available."
2485
  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."
@@ -2495,12 +2468,12 @@ msgstr "Berechnung"
2495
  msgid "Calculate unit prices automatically based on product price"
2496
  msgstr "Einheitspreise basierend auf dem Produktpreis automatisch berechnen"
2497
 
2498
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:685
2499
  #@ woocommerce-germanized
2500
  msgid "Enable to make sure default checkout template is not being overriden by theme."
2501
  msgstr "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
2502
 
2503
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:689
2504
  #@ woocommerce-germanized
2505
  msgid "If you are facing problems within your checkout e.g. legally relevant data is not showing (terms, delivery time, unit price etc.) your theme seems to be incompatible (not using default WooCommerce hooks and filters). As a workaround you may use this fallback which ensures default review-order.php and form-checkout.php is used."
2506
  msgstr "Wenn du Probleme während des Checkouts hast (Inhalte werden falsch, nicht oder doppelt dargestellt), dann könntest du als Workaround diese Option aktivieren. Diese Option hindert dein Theme relevante Templates für den Checkout (review-order.php und form-checkout.php) zu überschreiben. "
@@ -2829,17 +2802,17 @@ msgstr "Aktiviere die Zahlungsart nur dann, wenn der Kunde bereits eine Bestellu
2829
  msgid "Enable \"agree to SEPA mandate\" checkbox"
2830
  msgstr "Aktiviere die Checkbox zur Bestätigung des Lastschriftmandates."
2831
 
2832
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:816
2833
  #@ woocommerce-germanized
2834
  msgid "Digital Confirmation Notice"
2835
  msgstr "Digitale Bestätigung"
2836
 
2837
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:817
2838
  #@ woocommerce-germanized
2839
  msgid "This text will be appended to your order processing email if the order contains digital products. Use placeholders {link}{/link} to insert link to right of withdrawal page."
2840
  msgstr "Dieser Text wird an deine Bestellbestätigungs-Email (unterhalb der Tabelle) angehängt, sobald ein Kunde ein digitales Produkt gekauft hat. Verwende die Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
2841
 
2842
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:820
2843
  #@ woocommerce-germanized
2844
  msgid "Furthermore you have expressly agreed to start the performance of the contract for digital items (e.g. downloads) before expiry of the withdrawal period. I have noted to lose my {link}right of withdrawal{/link} with the beginning of the performance of the contract."
2845
  msgstr "Außerdem haben Sie ausdrücklich zugestimmt, dass für die digitalen Inhalte Ihrer Bestellung mit der Ausführung des Vertrags bereits vor Ablauf der Widerrufsfrist begonnen wird. Sie haben auch zur Kenntnis genommen, dass Sie mit Beginn der Ausführung des Vertrags Ihr {link}Widerrufsrecht{/link} verlieren."
@@ -2850,7 +2823,7 @@ msgstr "Außerdem haben Sie ausdrücklich zugestimmt, dass für die digitalen In
2850
  msgid "PDF %s"
2851
  msgstr "PDF %s"
2852
 
2853
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:493
2854
  #, php-format
2855
  #@ woocommerce-germanized
2856
  msgid "Want to attach automatically generated PDF files to emails instead of plain text? %sUpgrade to %spro%s%s"
@@ -2889,19 +2862,19 @@ msgstr "Regulärer Grundpreis"
2889
  msgid "Sale Base Price"
2890
  msgstr "Angebotsgrundpreis"
2891
 
2892
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:588
2893
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:621
2894
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:646
2895
  #@ woocommerce-germanized
2896
  msgid "Base Price"
2897
  msgstr "Grundpreis"
2898
 
2899
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:649
2900
  #@ woocommerce-germanized
2901
  msgid "Base Price Text"
2902
  msgstr "Grundpreis Text"
2903
 
2904
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:650
2905
  #@ woocommerce-germanized
2906
  msgid "This text will be used to display the base price. Use {price} to insert the price. If you want to specifically format base price output use {base}, {unit} and {base_price} as placeholders."
2907
  msgstr "Dieser Text wird für die Anzeige des Grundpreises verwendet. Nutze {price} als Platzhalter für den formatierten Grundpreis. Wenn du die Ausgabe detailliert beeinflussen willst, nutze stattdessen {base}, {unit} und {base_price} für die einzelnen Elemente."
@@ -2927,32 +2900,32 @@ msgstr "Du solltest vor einem Update immer ein Backup deiner Datenbank anlegen.
2927
  msgid "Number of units included per default product price. Example: 1000 ml."
2928
  msgstr "Anzahl der Produkteinheiten auf Basis des Produktpreises. Beispiel: 1000 ml."
2929
 
2930
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:659
2931
  #@ woocommerce-germanized
2932
  msgid "Show product units"
2933
  msgstr "Produkteinheiten anzeigen"
2934
 
2935
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:660
2936
  #@ woocommerce-germanized
2937
  msgid "Display amount of product units on product detail page."
2938
  msgstr "Zeige die Anzahl der Produkteinheiten auf der Produktdetailseite an."
2939
 
2940
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:661
2941
  #@ woocommerce-germanized
2942
  msgid "Product units will be shown right above your SKU (if available) within the product meta section."
2943
  msgstr "Die Produkteinheiten werden oberhalb der Artikelnummer (falls vorhanden), in den Meta-Daten der Produkte ausgegeben."
2944
 
2945
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:668
2946
  #@ woocommerce-germanized
2947
  msgid "Product Units Text"
2948
  msgstr "Produkteinheiten Text"
2949
 
2950
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:669
2951
  #@ woocommerce-germanized
2952
  msgid "This text will be used to display the product units. Use {product_units} to insert the amount of product units. Use {unit} to insert the unit. Optionally display the formatted unit price with {unit_price}."
2953
  msgstr "Dieser Text wird verwendet, um die Produkteinheiten-Ausgabe zu formatieren. Verwende {product_units} um die Anzahl der Einheiten auszugeben. Verwende {unit} für die Einheit und optional {unit_price} für den formatierten Grundpreis."
2954
 
2955
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:674
2956
  #@ woocommerce-germanized
2957
  msgid "Product contains: {product_units} {unit}"
2958
  msgstr "Produkt enthält: {product_units} {unit}"
@@ -2967,7 +2940,7 @@ msgstr "Um direkten Zugang zu den digitalen Inhalte zu erhalten, müssen Sie auf
2967
  msgid "Email Options"
2968
  msgstr "E-Mails"
2969
 
2970
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:493
2971
  #@ woocommerce-germanized
2972
  msgid "Email Attachment Options"
2973
  msgstr "PDF Anhang"
@@ -2977,22 +2950,22 @@ msgstr "PDF Anhang"
2977
  msgid "Same as parent"
2978
  msgstr "Gleiche wie übergeordnet"
2979
 
2980
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:514
2981
  #@ woocommerce-germanized
2982
  msgid "Downloadable Product"
2983
  msgstr "Herunterladbares Produkt"
2984
 
2985
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:515
2986
  #@ woocommerce-germanized
2987
  msgid "Virtual Product"
2988
  msgstr "Virtuelles Produkt"
2989
 
2990
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:795
2991
  #@ woocommerce-germanized
2992
  msgid "Digital Product types"
2993
  msgstr "Digitale Produkttypen"
2994
 
2995
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:796
2996
  #@ woocommerce-germanized
2997
  msgid "Select product types for which the loss of recission notice is shown. Product types like \"simple product\" may be redudant because they include virtual and downloadable products."
2998
  msgstr "Wähle die Produkttypen aus, für die ein Hinweis für den Verlust des Widerrufsrechts angezeigt werden soll. Produkttypen wie \"einfaches Produkt\" können redundant sein, da sie herunterladbare oder virtuelle Produkte einschließen."
@@ -3015,6 +2988,72 @@ msgstr "Diese Option löscht alle Einstellungen, die dazu führen, dass die Tour
3015
  #. translators: plugin header field 'Version'
3016
  #: woocommerce-germanized.php:0
3017
  #@ woocommerce-germanized
3018
- msgid "1.4.4"
3019
- msgstr "1.4.4"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3020
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: WooCommerce Germanized v1.4.5\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
+ "PO-Revision-Date: 2015-11-10 09:39:07+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
163
 
164
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:75
165
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:124
166
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:62
167
  #@ woocommerce-germanized
168
  msgid "Delivery Time"
169
  msgstr "Lieferzeit"
207
  msgstr "eKomi"
208
 
209
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:121
210
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:530
211
  #@ woocommerce-germanized
212
  msgid "General"
213
  msgstr "Allgemein"
370
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:289
371
  #@ woocommerce-germanized
372
  msgid "This text will be used to inform the customer about shipping costs. Use {link}{/link} to insert link to shipping costs page."
373
+ msgstr "Dieser Text wird genutzt um die Kunden im Frontend über u.U. anfallende Lieferkosten zu informieren. Nutze den Platzhalter {link}{/link} um den Link zur Versandkosten-Seite einzufügen."
374
 
375
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:294
376
  #@ woocommerce-germanized
377
  msgid "plus {link}Shipping Costs{/link}"
378
  msgstr "zzgl. {link}Versandkosten{/link}"
379
 
380
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:399
381
  #: includes/wc-gzd-core-functions.php:45
382
  #@ woocommerce-germanized
383
  msgid "Right of Recission"
384
  msgstr "Widerrufsrecht"
385
 
386
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:402
387
  #@ woocommerce-germanized
388
  msgid "Revocation Address"
389
  msgstr "Widerruf richten an"
390
 
391
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:403
392
  #@ woocommerce-germanized
393
  msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
394
  msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
395
 
396
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:486
397
  #@ woocommerce-germanized
398
  msgid "E-Mails"
399
  msgstr "E-Mails"
400
 
401
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:533
402
  #@ woocommerce-germanized
403
  msgid "Add to Cart"
404
  msgstr "Zum Warenkorb Button"
405
 
406
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:534
407
  #@ woocommerce-germanized
408
  msgid "Show add to cart button on listings?"
409
  msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
410
 
411
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:538
412
  #@ woocommerce-germanized
413
  msgid "unset this option if you don't want to show the add to cart button within the product listings"
414
  msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
415
 
416
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:560
417
  #@ woocommerce-germanized
418
  msgid "Notice Footer"
419
  msgstr "Hinweise im Footer"
420
 
421
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:561
422
  #@ woocommerce-germanized
423
  msgid "Show a global VAT notice within footer"
424
  msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer einfügen."
425
 
426
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:569
427
  #@ woocommerce-germanized
428
  msgid "Show a global sale price notice within footer"
429
  msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer einfügen."
430
 
431
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:578
432
  #@ woocommerce-germanized
433
  msgid "Products"
434
  msgstr "Produkt"
435
 
436
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:581
437
  #@ woocommerce-germanized
438
  msgid "Show within Product Listings"
439
  msgstr "In Produktlisten"
440
 
441
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:582
442
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:615
443
  #@ woocommerce-germanized
444
  msgid "Shipping Costs notice"
445
  msgstr "Versandkosten-Hinweis"
446
 
447
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:606
448
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:639
449
  #@ woocommerce-germanized
450
  msgid "Delivery Time Notice"
451
  msgstr "Lieferzeiten-Hinweis"
452
 
453
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:614
454
  #@ woocommerce-germanized
455
  msgid "Show on Product Detail Page"
456
  msgstr "Auf der Produktseite"
457
 
458
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:590
459
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:623
460
  #@ woocommerce-germanized
461
  msgid "Tax Info"
462
  msgstr "MwSt. Hinweis"
463
 
464
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:689
465
  #@ woocommerce-germanized
466
  msgid "Checkout & Cart"
467
  msgstr "Checkout & Warenkorb"
468
 
469
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:767
470
  #@ woocommerce-germanized
471
  msgid "Checkout Legal Display"
472
  msgstr "Checkbox oder Text"
473
 
474
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:768
475
  #@ woocommerce-germanized
476
  msgid "Use Text without Checkbox"
477
  msgstr "Rechtshinweis ohne Checkbox."
478
 
479
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:770
480
  #@ woocommerce-germanized
481
  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)."
482
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
483
 
484
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:776
485
  #@ woocommerce-germanized
486
  msgid "Legal Text"
487
  msgstr "Rechtlicher Hinweistext"
488
 
489
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:777
490
  #@ woocommerce-germanized
491
  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."
492
  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."
493
 
494
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:779
495
  #@ woocommerce-germanized
496
  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}."
497
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
498
 
499
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:786
500
  #@ woocommerce-germanized
501
  msgid "Legal Text Error"
502
  msgstr "Fehlermeldung der Checkbox"
503
 
504
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:787
505
  #@ woocommerce-germanized
506
  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."
507
  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}"
508
 
509
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:789
510
  #@ woocommerce-germanized
511
  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}."
512
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
513
 
514
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:845
515
  #@ woocommerce-germanized
516
  msgid "Order Success Text"
517
  msgstr "Bestellung eingegangen"
518
 
519
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:846
520
  #@ woocommerce-germanized
521
  msgid "Choose a custom text to display on order success page."
522
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
523
 
524
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:854
525
  #@ woocommerce-germanized
526
  msgid "Order Success Data"
527
  msgstr "Bestellbestätigungs-Daten"
528
 
529
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:855
530
  #@ woocommerce-germanized
531
  msgid "Hide product table and customer data on order success page"
532
  msgstr "Produktdetails (Tabelle, Kundeninfos) von der Bestätigungsseite entfernen."
608
 
609
  #: includes/class-wc-gzd-checkout.php:149
610
  #: includes/class-wc-gzd-checkout.php:157
611
+ #: includes/class-wc-gzd-checkout.php:279
612
  #@ woocommerce-germanized
613
  msgid "Sir"
614
  msgstr "Herr"
615
 
616
  #: includes/class-wc-gzd-checkout.php:149
617
  #: includes/class-wc-gzd-checkout.php:157
618
+ #: includes/class-wc-gzd-checkout.php:279
619
  #@ woocommerce-germanized
620
  msgid "Madam"
621
  msgstr "Frau"
715
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
716
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
717
 
718
+ #: includes/class-wc-gzd-install.php:429
719
  #@ woocommerce-germanized
720
  msgctxt "Page slug"
721
  msgid "data-security"
722
  msgstr "datenschutzbelehrung"
723
 
724
+ #: includes/class-wc-gzd-install.php:430
725
  #@ woocommerce-germanized
726
  msgctxt "Page title"
727
  msgid "Data Security Statement"
728
  msgstr "Datenschutzbelehrung"
729
 
730
+ #: includes/class-wc-gzd-install.php:434
731
  #@ woocommerce-germanized
732
  msgctxt "Page slug"
733
  msgid "imprint"
734
  msgstr "impressum"
735
 
736
+ #: includes/class-wc-gzd-install.php:435
737
  #@ woocommerce-germanized
738
  msgctxt "Page title"
739
  msgid "Imprint"
740
  msgstr "Impressum"
741
 
742
+ #: includes/class-wc-gzd-install.php:439
743
  #@ woocommerce-germanized
744
  msgctxt "Page slug"
745
  msgid "terms"
746
  msgstr "agb"
747
 
748
+ #: includes/class-wc-gzd-install.php:440
749
  #@ woocommerce-germanized
750
  msgctxt "Page title"
751
  msgid "Terms & Conditions"
752
  msgstr "AGB"
753
 
754
+ #: includes/class-wc-gzd-install.php:444
755
  #@ woocommerce-germanized
756
  msgctxt "Page slug"
757
  msgid "revocation"
758
  msgstr "widerrufsbelehrung"
759
 
760
+ #: includes/class-wc-gzd-install.php:445
761
  #@ woocommerce-germanized
762
  msgctxt "Page title"
763
  msgid "Power of Revocation"
764
  msgstr "Widerrufsbelehrung"
765
 
766
+ #: includes/class-wc-gzd-install.php:454
767
  #@ woocommerce-germanized
768
  msgctxt "Page slug"
769
  msgid "payment-methods"
770
  msgstr "bezahlmoeglichkeiten"
771
 
772
+ #: includes/class-wc-gzd-install.php:455
773
  #@ woocommerce-germanized
774
  msgctxt "Page title"
775
  msgid "Payment Methods"
776
  msgstr "Zahlungsarten"
777
 
778
+ #: includes/class-wc-gzd-install.php:449
779
  #@ woocommerce-germanized
780
  msgctxt "Page slug"
781
  msgid "shipping-methods"
782
  msgstr "versandarten"
783
 
784
+ #: includes/class-wc-gzd-install.php:450
785
  #@ woocommerce-germanized
786
  msgctxt "Page title"
787
  msgid "Shipping Methods"
1033
  msgid "Your Revocation"
1034
  msgstr "Ihr Widerruf"
1035
 
1036
+ #: includes/class-wc-gzd-payment-gateways.php:100
 
 
 
 
 
 
 
 
 
 
 
 
1037
  #@ woocommerce-germanized
1038
  msgid "Fee"
1039
  msgstr "Zahlungsgebühr"
1040
 
1041
+ #: includes/class-wc-gzd-payment-gateways.php:102
1042
  #@ woocommerce-germanized
1043
  msgid "This fee is being added if customer selects payment method within checkout."
1044
  msgstr "Diese Gebühr wird während der Bestellung hinzugefügt, falls der Kunde diese Zahlungsart aktiviert."
1045
 
1046
+ #: includes/class-wc-gzd-payment-gateways.php:107
1047
  #@ woocommerce-germanized
1048
  msgid "Fee is taxable?"
1049
  msgstr "Mwst. berechnen?"
1050
 
1051
+ #: includes/class-wc-gzd-payment-gateways.php:153
1052
  #@ woocommerce-germanized
1053
  msgid "Payment charge"
1054
  msgstr "Zahlungsgebühr"
1055
 
1056
  #: includes/abstracts/abstract-wc-gzd-product.php:130
1057
  #: includes/wc-gzd-cart-functions.php:159
1058
+ #: woocommerce-germanized.php:856
1059
  #, php-format
1060
  #@ woocommerce-germanized
1061
  msgid "incl. %s%% VAT"
1072
  msgid "Choose a Payment Gateway"
1073
  msgstr "Zahlungsart auswählen"
1074
 
 
1075
  #: includes/wc-gzd-cart-functions.php:194
1076
  #@ woocommerce-germanized
1077
  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."
1209
  msgid "All prices excl. VAT."
1210
  msgstr "Alle Preise exkl. der gesetzlichen MwSt."
1211
 
 
 
 
 
 
1212
  #: templates/forms/revocation-form.php:18
1213
  #@ woocommerce-germanized
1214
  msgctxt "revocation-form"
1221
  msgid "Forward Revocation"
1222
  msgstr "Widerruf erklären"
1223
 
 
 
 
 
 
 
1224
  #: includes/gateways/invoice/class-wc-gzd-gateway-invoice.php:50
1225
+ #: woocommerce-germanized.php:583
1226
  #@ woocommerce
1227
  msgid "Settings"
1228
  msgstr "Einstellungen"
1401
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1402
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1403
 
1404
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:759
1405
  #@ woocommerce-germanized
1406
  msgid "Checkout Table Color"
1407
  msgstr "Hintergrundfarbe der Tabelle"
1408
 
1409
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:761
1410
  #@ woocommerce-germanized
1411
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1412
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1443
  msgid "It seems like your theme is not yet ready for WooCommerce Germanized. Please check your theme's styles. Some things might look weird - WooCommerce Germanized can only offer basic styles. See <a href=\"%s\" target=\"_blank\">making your theme compatible</a> or check out our Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> for 100&#37; compatibility."
1444
  msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCommerce Germanized optimiert ist. Bitte überprüfe die Style-Angaben deines Themes bzw. das Aussehen deines Shops. Manche Elemente werden möglicherweise falsch dargestellt - WooCommerce Germanized kann nur grundlegende Style-Angaben machen. Lies dir dazu <a href=\"%s\" target=\"_blank\">wie mache ich mein Theme kompatibel</a> durch oder nutze das von uns entwickelte Theme <a href=\"%s\" target=\"_blank\">VendiPro</a> für 100&#37; Kompatibilität."
1445
 
1446
+ #: includes/class-wc-gzd-payment-gateways.php:109
1447
  #@ woocommerce-germanized
1448
  msgid "Check if fee is taxable."
1449
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1450
 
1451
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:816
1452
  #@ woocommerce-germanized
1453
  msgid "Legal Digital Text"
1454
  msgstr "Hinweis Digital"
1455
 
1456
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:817
1457
  #@ woocommerce-germanized
1458
  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."
1459
  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"
1460
 
1461
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:542
1462
  #@ woocommerce-germanized
1463
  msgid "Link to Details"
1464
  msgstr "Verlinkung zu Produktdetails"
1465
 
1466
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:543
1467
  #@ woocommerce-germanized
1468
  msgid "Want to link to product details page instead of add to cart within listings?"
1469
  msgstr "Zum Warenkorb Button mit Button zur Produktdetail-Seite ersetzen?"
1470
 
1471
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:547
1472
  #@ woocommerce-germanized
1473
  msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
1474
  msgstr "Wenn du lieber einen Link zu deiner Produktseite anstatt eines zum Warenkorb Buttons innerhalb von Produktauflistungen haben möchtest, dann setze einfach diese Option."
1475
 
1476
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:551
1477
  #@ woocommerce-germanized
1478
  msgid "Product Details Text"
1479
  msgstr "Produktdetails Text"
1480
 
1481
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:553
1482
  #@ woocommerce-germanized
1483
  msgid "Details"
1484
  msgstr "Details"
1485
 
1486
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:555
1487
  #@ woocommerce-germanized
1488
  msgid "If you have chosen to link to product details page instead of add to cart URL you may want to change the button text."
1489
  msgstr "Wenn du dich dazu entschlossen hast, lieber auf die Produktseite zu verlinken anstatt den zum Warenkorb Button einzublenden, kannst du hier einen Button-Text vergeben."
1584
  msgid "Found Bugs?"
1585
  msgstr "Bugs oder Wünsche melden"
1586
 
1587
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:647
1588
  #@ woocommerce-germanized
1589
  msgid "Shipping Costs for Virtual"
1590
  msgstr "Versandkosten virtuell"
1591
 
1592
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:648
1593
  #@ woocommerce-germanized
1594
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1595
  msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1596
 
1597
  #: includes/abstracts/abstract-wc-gzd-product.php:128
1598
  #: includes/wc-gzd-cart-functions.php:159
1599
+ #: woocommerce-germanized.php:856
1600
  #@ woocommerce-germanized
1601
  msgid "incl. VAT"
1602
  msgstr "inkl. MwSt."
1606
  msgid "excl. VAT"
1607
  msgstr "exkl. MwSt."
1608
 
1609
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:412
1610
  #: includes/admin/views/html-page-status-germanized.php:81
1611
  #@ woocommerce-germanized
1612
  msgid "Virtual VAT"
1613
  msgstr "USt. Änderung 2015"
1614
 
1615
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:415
1616
  #@ woocommerce-germanized
1617
  msgid "Enable Virtual VAT"
1618
  msgstr "USt. Anpassung aktivieren"
1619
 
1620
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:416
1621
  #@ woocommerce-germanized
1622
  msgid "Enable if you want to charge your customer's countries' VAT for virtual products."
1623
  msgstr "Aktiviere diese Option um für virtuelle Produkte den USt.-Satz des Dienstleistungsempfängers zu berechnen."
1624
 
1625
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:420
1626
  #, php-format
1627
  #@ woocommerce-germanized
1628
  msgid "New EU VAT rule applies on 01.01.2015. Make sure that every digital or virtual product has chosen the right tax class (Virtual Rate or Virtual Reduced Rate). Gross prices will not differ from the prices you have chosen for affected products. In fact the net price will differ depending on the VAT rate of your customers' country. Shop settings will be adjusted to show prices including tax. More information can be found <a href=\"%s\" target=\"_blank\">here</a>."
1638
  msgid "We will automatically insert EU VAT Rates for selling virtual products."
1639
  msgstr "Wir übernehmen das Einfügen der unterschiedlichen EU MwSt.-Sätze für dich."
1640
 
1641
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:665
1642
  #@ woocommerce-germanized
1643
  msgid "{price}"
1644
  msgstr "{price}"
1645
 
1646
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:963
1647
  #@ woocommerce-germanized
1648
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1649
  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."
1658
  msgid "Add a title field to the address within checkout?"
1659
  msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1660
 
1661
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:796
1662
  #@ woocommerce-germanized
1663
  msgid "Show digital notice"
1664
  msgstr "Checkbox digitale Produkte"
1665
 
1666
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:797
1667
  #@ woocommerce-germanized
1668
  msgid "Show checkbox for digital products."
1669
  msgstr "Checkbox bei digitalen Produkten anzeigen."
1670
 
1671
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:798
1672
  #@ woocommerce-germanized
1673
  msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1674
  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."
1675
 
1676
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:723
1677
  #@ woocommerce-germanized
1678
  msgid "Show Thumbnails"
1679
  msgstr "Thumbnails anzeigen"
1680
 
1681
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:724
1682
  #@ woocommerce-germanized
1683
  msgid "Show product thumbnails on checkout page?"
1684
  msgstr "Produktbilder im Checkout darstellen?"
1685
 
1686
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:728
1687
  #@ woocommerce-germanized
1688
  msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1689
  msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1690
 
1691
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:732
1692
  #@ woocommerce-germanized
1693
  msgid "Hide Shipping Select"
1694
  msgstr "Versandarten Auswahl"
1695
 
1696
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:733
1697
  #@ woocommerce-germanized
1698
  msgid "Hide shipping rate selection from checkout?"
1699
  msgstr "Die Auswahl von Versandarten im Checkout deaktivieren?"
1700
 
1701
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:737
1702
  #@ woocommerce-germanized
1703
  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."
1704
  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."
1705
 
1706
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:714
1707
  #@ woocommerce-germanized
1708
  msgid "Hide taxes estimated"
1709
  msgstr "Hinweis \"Steuern geschätzt\""
1710
 
1711
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:715
1712
  #@ woocommerce-germanized
1713
  msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1714
  msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1715
 
1716
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:719
1717
  #@ woocommerce-germanized
1718
  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."
1719
  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."
1724
  msgid "excl. %s%% VAT"
1725
  msgstr "exkl. %s%% MwSt."
1726
 
1727
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:741
1728
  #@ woocommerce-germanized
1729
  msgid "Show back to cart button"
1730
  msgstr "Bestellung bearbeiten"
1731
 
1732
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:742
1733
  #@ woocommerce-germanized
1734
  msgid "Show back to cart button within your checkout table?"
1735
  msgstr "Einen \"Bestellung bearbeiten\" Button in der Bestellübersicht anzeigen?"
1736
 
1737
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:746
1738
  #@ woocommerce-germanized
1739
  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."
1740
  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."
1741
 
1742
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:308
1743
  #@ woocommerce-germanized
1744
  msgid "Shipping Costs Tax"
1745
  msgstr "Steuerberechnung"
1746
 
1747
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:309
1748
  #@ woocommerce-germanized
1749
  msgid "Enable better taxation for shpping costs?"
1750
  msgstr "Genauere Steuerberechnung für Versandkosten aktivieren?"
1751
 
1752
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:313
1753
  #, php-format
1754
  #@ woocommerce-germanized
1755
  msgid "By choosing this option shipping cost taxation will be calculated based on tax rates within cart. Imagine the following example. Further information can be found <a href=\"%s\" target=\"_blank\">here</a>. %s"
1756
  msgstr "Mit der Auswahl dieser Option werden die Steuern für Versandkosten basierend auf den Anteilen der Steuersätze der Artikel im Warenkorb berechnet. Weitere Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>. Falls du vorher mit Nettobeträgen gearbeitet hast, ändere die Versandkosten bitte in Bruttobeträge. Hier ein kleines Beispiel: %s"
1757
 
1758
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:317
1759
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:339
1760
  #@ woocommerce-germanized
1761
  msgid "Force Tax Calculation"
1762
  msgstr "Steuerberechnung erzwingen"
1763
 
1764
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:318
1765
  #@ woocommerce-germanized
1766
  msgid "Force shipping costs tax calculation for every method?"
1767
  msgstr "Erzwinge die Besteuerung für Versandkosten für jede Versandart?"
1768
 
1769
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:322
1770
  #@ woocommerce-germanized
1771
  msgid "This option will overwrite settings for each individual shipping method to force tax calculation (instead of only calculating tax for those methods which are taxeable)."
1772
  msgstr "Diese Option überschreibt alle abweichenden Einstellungen verschiedener Versandarten und erzwingt die Steuerberechnung."
1773
 
1774
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:327
1775
  #@ woocommerce-germanized
1776
  msgid "Fees"
1777
  msgstr "Gebühren"
1778
 
1779
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:330
1780
  #@ woocommerce-germanized
1781
  msgid "Fee Tax"
1782
  msgstr "Steuerberechnung"
1783
 
1784
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:331
1785
  #@ woocommerce-germanized
1786
  msgid "Enable better taxation for fees?"
1787
  msgstr "Genauere Steuerberechnung für Gebühren aktivieren?"
1788
 
1789
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:335
1790
  #@ woocommerce-germanized
1791
  msgid "By choosing this option fee taxation will be calculated based on tax rates within cart. See shipping costs taxation for more information."
1792
  msgstr "Mit Hilfe dieser Option werden die Steuern für Gebühren basierend auf den Steuersätzen der Artikel im Warenkorb berechnet (siehe Steuern für Versandkosten für weitere Informationen). Bitte passe auch hier etwaige Nettobeträge in Bruttobeträge an."
1793
 
1794
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:340
1795
  #@ woocommerce-germanized
1796
  msgid "Force fee tax calculation for every fee?"
1797
  msgstr "Berechnung der Steuern für Gebühren erzwingen?"
1798
 
1799
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:344
1800
  #@ woocommerce-germanized
1801
  msgid "This option will overwrite settings for each individual fee to force tax calculation (instead of only calculating tax for those fees which are taxeable)."
1802
  msgstr "Diese Option überschreibt die Einstellungen aller Gebühren und erzwingt die Steuerberechnung."
1822
  msgid "Yes, customer opted in"
1823
  msgstr "Ja, Kunde wurde per Double Opt-In bestätigt."
1824
 
1825
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:349
1826
  #@ woocommerce-germanized
1827
  msgid "Customers"
1828
  msgstr "Kunden"
1829
 
1830
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:379
1831
  #@ woocommerce-germanized
1832
  msgid "Customer Double Opt In"
1833
  msgstr "Double Opt-In"
1834
 
1835
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:380
1836
  #@ woocommerce-germanized
1837
  msgid "Enable customer double opt in on registration?"
1838
  msgstr "Double Opt-In Verfahren für Kundenkonten aktivieren?"
1839
 
1840
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:381
1841
  #, php-format
1842
  #@ woocommerce-germanized
1843
  msgid "If customer chooses to create a customer account an email with an activation link will be sent by mail. Customer account will be marked as activated if user clicks on the link within the email. More information on this topic can be found <a href=\"%s\" target=\"_blank\">here</a>."
1844
  msgstr "Wenn ein Kunde sich dazu entscheidet ein Benutzerkonto zu erstellen, erhält dieser eine E-Mail mit einem Bestätigungslink. Insofern der Kunde diesen Bestätigungslink anklickt, wird das Konto als bestätigt markiert. Dieses Verfahren ist laut Amtsgericht Berlin Pankow/Weißensee notwendig. Mehr Informationen findest du <a href=\"%s\" target=\"_blank\">hier</a>."
1845
 
1846
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:388
1847
  #@ woocommerce-germanized
1848
  msgid "Delete Unactivated After"
1849
  msgstr "Unaktivierte löschen nach"
1850
 
1851
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:389
1852
  #@ woocommerce-germanized
1853
  msgid "This will make sure unactivated customer accounts will be deleted after X days. Set to 0 if you don't want to automatically delete unactivated customers."
1854
  msgstr "Diese Option sorgt dafür, dass unaktivierte Kundenkonten nach X Tagen automatisch gelöscht werden. Falls du die Löschung verhindern möchtest, setze den Wert auf 0."
1898
  msgid "If you cannot follow the link above please copy this url and paste it to your browser bar: %s"
1899
  msgstr "Falls Sie dem Link nicht folgen können, kopieren Sie bitte folgende URL in die Adresszeile Ihres Browsers: %s"
1900
 
1901
+ #: woocommerce-germanized.php:782
1902
  #@ woocommerce-germanized
1903
  msgid "Thank you. You have successfully activated your account."
1904
  msgstr "Vielen Dank. Ihr Benutzerkonto wurde erfolgreich aktiviert."
1905
 
1906
+ #: woocommerce-germanized.php:786
1907
  #@ woocommerce-germanized
1908
  msgid "Sorry, but this activation code cannot be found."
1909
  msgstr "Sorry, dieser Aktivierungscode ist uns leider nicht bekannt."
1910
 
1911
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:390
1912
  #@ woocommerce-germanized
1913
  msgid "days"
1914
  msgstr "Tagen"
1915
 
1916
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:63
1917
  #@ woocommerce-germanized
1918
  msgid "Search for a delivery time&hellip;"
1919
  msgstr "Lieferzeit suchen&hellip;"
1936
  msgid "https://vendidero.de"
1937
  msgstr "https://vendidero.de"
1938
 
1939
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:694
1940
  #: includes/admin/views/html-page-status-germanized.php:55
1941
  #@ woocommerce-germanized
1942
  msgid "Fallback Mode"
2055
  msgid "New Unit Name"
2056
  msgstr "Name der neuen Einheit"
2057
 
2058
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:750
 
 
 
 
 
2059
  #@ woocommerce-germanized
2060
  msgid "Show edit data notice"
2061
  msgstr "Bestellung prüfen Hinweis"
2062
 
2063
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:751
2064
  #@ woocommerce-germanized
2065
  msgid "Show a \"check-your-entries\" notice to the user?"
2066
  msgstr "Einen \"Bestellung prüfen\" Hinweis anzeigen?"
2067
 
2068
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:755
2069
  #@ woocommerce-germanized
2070
  msgid "This notice will be added right before the order comments field."
2071
  msgstr "Dieser Hinweis wird direkt oberhalb des Bestellhinweise-Feldes eingefügt."
2087
  msgstr "Kaufvertrag"
2088
 
2089
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:177
2090
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:425
2091
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:437
2092
  #, php-format
2093
  #@ woocommerce-germanized
2094
  msgid "%sUpgrade to %spro%s%s to unlock this feature and get premium support."
2095
  msgstr "%sUpgrade zur %spro%s Version%s um dieses Feature nutzen zu können und erhalte professionellen Support."
2096
 
2097
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:425
2098
  #@ woocommerce-germanized
2099
  msgctxt "invoices"
2100
  msgid "Invoices"
2101
  msgstr "Rechnungen"
2102
 
2103
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:437
2104
  #@ woocommerce-germanized
2105
  msgid "VAT"
2106
  msgstr "Umsatzsteuer"
2158
  msgid "Don't have a revocation page yet? <a href=\"%s\">Generate now</a>!"
2159
  msgstr "Du hast noch keine Widerrufsbelehrung? <a href=\"%s\">Jetzt generieren</a>!"
2160
 
2161
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:472
2162
  #, php-format
2163
  #@ woocommerce-germanized
2164
  msgid "Attach %s"
2165
  msgstr "%s"
2166
 
2167
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:473
2168
  #, php-format
2169
  #@ woocommerce-germanized
2170
  msgid "Attach %s to the following email templates"
2175
  msgid "Data Security"
2176
  msgstr "Datenschutzbelehrung"
2177
 
2178
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:486
2179
  #@ woocommerce-germanized
2180
  msgid "Use drag & drop to customize attachment order. Don't forget to save your changes."
2181
  msgstr "Verwende Drag & Drop um die Reihenfolge der Texte in den E-Mails zu beeinflussen und speichere anschließend deine Änderungen."
2228
  msgid "Learn more about Pro Version"
2229
  msgstr "Mehr über die Pro Version erfahren"
2230
 
2231
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:352
2232
  #: includes/gateways/direct-debit/class-wc-gzd-gateway-direct-debit.php:300
2233
  #@ woocommerce-germanized
2234
  msgid "Checkbox"
2235
  msgstr "Checkbox"
2236
 
2237
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:353
2238
  #@ woocommerce-germanized
2239
  msgid "Add a checkbox to customer registration form."
2240
  msgstr "Füge eine Checkbox zum Formular für die Kundenregistrierung hinzu."
2241
 
2242
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:360
2243
  #@ woocommerce-germanized
2244
  msgid "Checkbox text"
2245
  msgstr "Checkbox Text"
2246
 
2247
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:361
2248
  #@ woocommerce-germanized
2249
  msgid "Choose a Plain Text which will be shown as checkbox text for customer account creation. Use {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} as Placeholders for the links to legal pages."
2250
  msgstr "Dieser Text dient als Hinweistext für die Erstellung eines Kundenkontos und wird neben der Checkbox dargestellt. Verwende {term_link}{/term_link}, {data_security_link}{/data_security_link}, {revocation_link}{/revocation_link} als Platzhalter für die Links zu den rechtlichen Hinweisseiten."
2251
 
2252
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:363
2253
  #@ woocommerce-germanized
2254
  msgid "Yes, I’d like create a new account and have read and understood the {data_security_link}data privacy statement{/data_security_link}."
2255
  msgstr "Ja, ich möchte ein Kundenkonto eröffnen und akzeptiere die {data_security_link}Datenschutzerklärung{/data_security_link}."
2256
 
2257
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:370
2258
  #@ woocommerce-germanized
2259
  msgid "Checkout"
2260
  msgstr "Kasse"
2261
 
2262
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:371
2263
  #@ woocommerce-germanized
2264
  msgid "Replace default WooCommerce text regarding account creation during checkout."
2265
  msgstr "Ersetze den WooCommerce Text (Kundenkonto erstellen?) durch den o.g. Hinweis."
2266
 
2267
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:372
2268
  #@ woocommerce-germanized
2269
  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."
2270
  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."
2271
 
2272
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:836
2273
  #@ woocommerce-germanized
2274
  msgid "Pay now Button"
2275
  msgstr "Jetzt bezahlen Button"
2276
 
2277
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:837
2278
  #@ woocommerce-germanized
2279
  msgid "Add a pay now button to emails and order success page."
2280
  msgstr "Füge einen jetzt bezahlen - Button zur E-Mail und der Bestätigungs-Seite hinzu."
2281
 
2282
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:838
2283
  #@ woocommerce-germanized
2284
  msgid "Add a pay now button to order confirmation email and order success page if the order awaits payment (PayPal etc)."
2285
  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)."
2442
  msgid "Logs"
2443
  msgstr ""
2444
 
2445
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:705
2446
  #@ woocommerce-germanized
2447
  msgid "Force free shipping"
2448
  msgstr "Versandmethode erzwingen"
2449
 
2450
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:706
2451
  #@ woocommerce-germanized
2452
  msgid "Force free shipping method if available?"
2453
  msgstr "Kostenlosen Versand erzwingen wenn die Methode zur Verfügung steht?"
2454
 
2455
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:710
2456
  #@ woocommerce-germanized
2457
  msgid "By default WooCommerce will let customers choose other shipping methods than free shipping (if available). This option will force free shipping if available."
2458
  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."
2468
  msgid "Calculate unit prices automatically based on product price"
2469
  msgstr "Einheitspreise basierend auf dem Produktpreis automatisch berechnen"
2470
 
2471
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:695
2472
  #@ woocommerce-germanized
2473
  msgid "Enable to make sure default checkout template is not being overriden by theme."
2474
  msgstr "Überschreiben relevanter Templates im Checkout durch dein Theme verhindern."
2475
 
2476
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:699
2477
  #@ woocommerce-germanized
2478
  msgid "If you are facing problems within your checkout e.g. legally relevant data is not showing (terms, delivery time, unit price etc.) your theme seems to be incompatible (not using default WooCommerce hooks and filters). As a workaround you may use this fallback which ensures default review-order.php and form-checkout.php is used."
2479
  msgstr "Wenn du Probleme während des Checkouts hast (Inhalte werden falsch, nicht oder doppelt dargestellt), dann könntest du als Workaround diese Option aktivieren. Diese Option hindert dein Theme relevante Templates für den Checkout (review-order.php und form-checkout.php) zu überschreiben. "
2802
  msgid "Enable \"agree to SEPA mandate\" checkbox"
2803
  msgstr "Aktiviere die Checkbox zur Bestätigung des Lastschriftmandates."
2804
 
2805
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:826
2806
  #@ woocommerce-germanized
2807
  msgid "Digital Confirmation Notice"
2808
  msgstr "Digitale Bestätigung"
2809
 
2810
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:827
2811
  #@ woocommerce-germanized
2812
  msgid "This text will be appended to your order processing email if the order contains digital products. Use placeholders {link}{/link} to insert link to right of withdrawal page."
2813
  msgstr "Dieser Text wird an deine Bestellbestätigungs-Email (unterhalb der Tabelle) angehängt, sobald ein Kunde ein digitales Produkt gekauft hat. Verwende die Platzhalter {link}{/link} um einen Link zur Widerrufsbelehrung einzufügen."
2814
 
2815
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:830
2816
  #@ woocommerce-germanized
2817
  msgid "Furthermore you have expressly agreed to start the performance of the contract for digital items (e.g. downloads) before expiry of the withdrawal period. I have noted to lose my {link}right of withdrawal{/link} with the beginning of the performance of the contract."
2818
  msgstr "Außerdem haben Sie ausdrücklich zugestimmt, dass für die digitalen Inhalte Ihrer Bestellung mit der Ausführung des Vertrags bereits vor Ablauf der Widerrufsfrist begonnen wird. Sie haben auch zur Kenntnis genommen, dass Sie mit Beginn der Ausführung des Vertrags Ihr {link}Widerrufsrecht{/link} verlieren."
2823
  msgid "PDF %s"
2824
  msgstr "PDF %s"
2825
 
2826
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:503
2827
  #, php-format
2828
  #@ woocommerce-germanized
2829
  msgid "Want to attach automatically generated PDF files to emails instead of plain text? %sUpgrade to %spro%s%s"
2862
  msgid "Sale Base Price"
2863
  msgstr "Angebotsgrundpreis"
2864
 
2865
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:598
2866
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:631
2867
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:656
2868
  #@ woocommerce-germanized
2869
  msgid "Base Price"
2870
  msgstr "Grundpreis"
2871
 
2872
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:659
2873
  #@ woocommerce-germanized
2874
  msgid "Base Price Text"
2875
  msgstr "Grundpreis Text"
2876
 
2877
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:660
2878
  #@ woocommerce-germanized
2879
  msgid "This text will be used to display the base price. Use {price} to insert the price. If you want to specifically format base price output use {base}, {unit} and {base_price} as placeholders."
2880
  msgstr "Dieser Text wird für die Anzeige des Grundpreises verwendet. Nutze {price} als Platzhalter für den formatierten Grundpreis. Wenn du die Ausgabe detailliert beeinflussen willst, nutze stattdessen {base}, {unit} und {base_price} für die einzelnen Elemente."
2900
  msgid "Number of units included per default product price. Example: 1000 ml."
2901
  msgstr "Anzahl der Produkteinheiten auf Basis des Produktpreises. Beispiel: 1000 ml."
2902
 
2903
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:669
2904
  #@ woocommerce-germanized
2905
  msgid "Show product units"
2906
  msgstr "Produkteinheiten anzeigen"
2907
 
2908
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:670
2909
  #@ woocommerce-germanized
2910
  msgid "Display amount of product units on product detail page."
2911
  msgstr "Zeige die Anzahl der Produkteinheiten auf der Produktdetailseite an."
2912
 
2913
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:671
2914
  #@ woocommerce-germanized
2915
  msgid "Product units will be shown right above your SKU (if available) within the product meta section."
2916
  msgstr "Die Produkteinheiten werden oberhalb der Artikelnummer (falls vorhanden), in den Meta-Daten der Produkte ausgegeben."
2917
 
2918
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:678
2919
  #@ woocommerce-germanized
2920
  msgid "Product Units Text"
2921
  msgstr "Produkteinheiten Text"
2922
 
2923
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:679
2924
  #@ woocommerce-germanized
2925
  msgid "This text will be used to display the product units. Use {product_units} to insert the amount of product units. Use {unit} to insert the unit. Optionally display the formatted unit price with {unit_price}."
2926
  msgstr "Dieser Text wird verwendet, um die Produkteinheiten-Ausgabe zu formatieren. Verwende {product_units} um die Anzahl der Einheiten auszugeben. Verwende {unit} für die Einheit und optional {unit_price} für den formatierten Grundpreis."
2927
 
2928
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:684
2929
  #@ woocommerce-germanized
2930
  msgid "Product contains: {product_units} {unit}"
2931
  msgstr "Produkt enthält: {product_units} {unit}"
2940
  msgid "Email Options"
2941
  msgstr "E-Mails"
2942
 
2943
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:503
2944
  #@ woocommerce-germanized
2945
  msgid "Email Attachment Options"
2946
  msgstr "PDF Anhang"
2950
  msgid "Same as parent"
2951
  msgstr "Gleiche wie übergeordnet"
2952
 
2953
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:524
2954
  #@ woocommerce-germanized
2955
  msgid "Downloadable Product"
2956
  msgstr "Herunterladbares Produkt"
2957
 
2958
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:525
2959
  #@ woocommerce-germanized
2960
  msgid "Virtual Product"
2961
  msgstr "Virtuelles Produkt"
2962
 
2963
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:805
2964
  #@ woocommerce-germanized
2965
  msgid "Digital Product types"
2966
  msgstr "Digitale Produkttypen"
2967
 
2968
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:806
2969
  #@ woocommerce-germanized
2970
  msgid "Select product types for which the loss of recission notice is shown. Product types like \"simple product\" may be redudant because they include virtual and downloadable products."
2971
  msgstr "Wähle die Produkttypen aus, für die ein Hinweis für den Verlust des Widerrufsrechts angezeigt werden soll. Produkttypen wie \"einfaches Produkt\" können redundant sein, da sie herunterladbare oder virtuelle Produkte einschließen."
2988
  #. translators: plugin header field 'Version'
2989
  #: woocommerce-germanized.php:0
2990
  #@ woocommerce-germanized
2991
+ msgid "1.4.5"
2992
+ msgstr "1.4.5"
2993
+
2994
+ #: includes/class-wc-gzd-payment-gateways.php:50
2995
+ #: includes/wc-gzd-order-functions.php:21
2996
+ #: includes/wc-gzd-template-functions.php:452
2997
+ #, php-format
2998
+ #@ woocommerce-germanized
2999
+ msgid "Plus %s forwarding fee (charged by the transport agent)"
3000
+ msgstr "zzgl. %s Übermittlungsentgelt (direkt an den Zusteller)"
3001
+
3002
+ #: includes/class-wc-gzd-payment-gateways.php:47
3003
+ #: includes/class-wc-gzd-payment-gateways.php:73
3004
+ #, php-format
3005
+ #@ woocommerce-germanized
3006
+ msgid "%s payment charge"
3007
+ msgstr "%s Zahlungsgebühr"
3008
+
3009
+ #: includes/class-wc-gzd-payment-gateways.php:116
3010
+ #@ woocommerce-germanized
3011
+ msgid "Forwarding Fee"
3012
+ msgstr "Übermittlungsentgelt"
3013
+
3014
+ #: includes/class-wc-gzd-payment-gateways.php:119
3015
+ #@ woocommerce-germanized
3016
+ msgid "Forwarding fee will be charged by the transport agent in addition to the cash of delivery fee e.g. DHL - tax free."
3017
+ msgstr "Übermittlungsentgelt wird zusätzlich zum Nachnahmebetrag vom Paketzusteller kassiert - z.B. DHL (steuerfrei)."
3018
+
3019
+ #: templates/footer/vat-info.php:15
3020
+ #@ woocommerce-germanized
3021
+ msgid "Because of the small business owner state according to &#167;19 UStG the seller charge no sales tax, and therefore do not show it."
3022
+ msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
3023
+
3024
+ #: templates/global/small-business-info.php:15
3025
+ #@ woocommerce-germanized
3026
+ 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."
3027
+ msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach &#167;19 (1) UStG."
3028
+
3029
+ #: templates/single-product/legal-info.php:19
3030
+ #: templates/single-product/tax-info.php:18
3031
+ #@ woocommerce-germanized
3032
+ msgid "VAT free based on &#167;19 UStG"
3033
+ msgstr "Kein Mehrwertsteuerausweis, da Kleinunternehmer nach §19 (1) UStG."
3034
+
3035
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:69
3036
+ #@ woocommerce-germanized
3037
+ msgid "Free shipping?"
3038
+ msgstr "Versand kostenlos?"
3039
+
3040
+ #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php:69
3041
+ #@ woocommerce-germanized
3042
+ msgid "This option disables the \"plus shipping costs\" notice on product page"
3043
+ msgstr "Deaktiviert den Hinweis \"zzgl. Versandkosten\". Ohne Auswirkungen auf die Versandkosten."
3044
+
3045
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:298
3046
+ #@ woocommerce-germanized
3047
+ msgid "Free Shipping Text"
3048
+ msgstr "Kostenloser Versand Text"
3049
+
3050
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:299
3051
+ #@ woocommerce-germanized
3052
+ msgid "This text will be used to inform the customer about free shipping. Leave empty to disable notice. Use {link}{/link} to insert link to shipping costs page."
3053
+ msgstr "Dieser Text wird genutzt um die Kunden im Frontend über einen kostenlosen Versand zu informieren. Nutze den Platzhalter {link}{/link} um den Link zur Versandkosten-Seite einzufügen."
3054
+
3055
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:819
3056
+ #@ woocommerce-germanized
3057
+ msgid "For digital products: I strongly agree that the execution of the agreement starts before the revocation period has expired. I am aware that my right of withdrawal ceases with the beginning of the agreement."
3058
+ msgstr "Für digitale Produkte: Ich stimme ausdrücklich zu, dass vor Ablauf der Widerrufsfrist mit der Ausführung des Vertrags begonnen wird. Mir ist bekannt, dass mit Beginn der Ausführung mein Widerrufsrecht erlischt."
3059
 
includes/abstracts/abstract-wc-gzd-product.php CHANGED
@@ -37,6 +37,7 @@ class WC_GZD_Product {
37
  'unit_product' => '',
38
  'unit_price_regular' => '',
39
  'unit_price_sale' => '',
 
40
  'mini_desc' => '',
41
  'gzd_product' => NULL,
42
  );
@@ -324,23 +325,31 @@ class WC_GZD_Product {
324
  return ( $this->get_delivery_time_term() ) ? apply_filters( 'woocommerce_germanized_delivery_time_html', str_replace( '{delivery_time}', $this->get_delivery_time_term()->name, get_option( 'woocommerce_gzd_delivery_time_text' ) ), $this->get_delivery_time_term()->name ) : '';
325
  }
326
 
 
 
 
 
327
  /**
328
  * Returns the shipping costs notice html output
329
  *
330
  * @return string
331
  */
332
  public function get_shipping_costs_html() {
333
- if ( $this->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' )
334
- return false;
 
 
335
  $find = array(
336
  '{link}',
337
  '{/link}'
338
  );
 
339
  $replace = array(
340
  '<a href="' . esc_url( get_permalink( wc_get_page_id( 'shipping_costs' ) ) ) . '" target="_blank">',
341
  '</a>'
342
  );
343
- return str_replace( $find, $replace, get_option( 'woocommerce_gzd_shipping_costs_text' ) );
 
344
  }
345
 
346
  }
37
  'unit_product' => '',
38
  'unit_price_regular' => '',
39
  'unit_price_sale' => '',
40
+ 'unit_price_auto' => '',
41
  'mini_desc' => '',
42
  'gzd_product' => NULL,
43
  );
325
  return ( $this->get_delivery_time_term() ) ? apply_filters( 'woocommerce_germanized_delivery_time_html', str_replace( '{delivery_time}', $this->get_delivery_time_term()->name, get_option( 'woocommerce_gzd_delivery_time_text' ) ), $this->get_delivery_time_term()->name ) : '';
326
  }
327
 
328
+ public function has_free_shipping() {
329
+ return ( apply_filters( 'woocommerce_germanized_product_has_free_shipping', ( $this->is_virtual() || $this->free_shipping === 'yes' ? true : false ), $this ) );
330
+ }
331
+
332
  /**
333
  * Returns the shipping costs notice html output
334
  *
335
  * @return string
336
  */
337
  public function get_shipping_costs_html() {
338
+
339
+ if ( ( $this->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' ) )
340
+ return apply_filters( 'woocommerce_gzd_virtual_shipping_text', '', $this );
341
+
342
  $find = array(
343
  '{link}',
344
  '{/link}'
345
  );
346
+
347
  $replace = array(
348
  '<a href="' . esc_url( get_permalink( wc_get_page_id( 'shipping_costs' ) ) ) . '" target="_blank">',
349
  '</a>'
350
  );
351
+
352
+ return apply_filters( 'woocommerce_gzd_shipping_costs_text', str_replace( $find, $replace, ( $this->has_free_shipping() ? get_option( 'woocommerce_gzd_free_shipping_text' ) : get_option( 'woocommerce_gzd_shipping_costs_text' ) ) ), $this );
353
  }
354
 
355
  }
includes/admin/class-wc-gzd-admin.php CHANGED
@@ -175,8 +175,8 @@ class WC_GZD_Admin {
175
  update_option( 'woocommerce_gzd_hide_tour_' . sanitize_text_field( $_GET[ 'tour' ] ), true );
176
  else
177
  update_option( 'woocommerce_gzd_hide_tour', true );
 
178
  } else if ( isset( $_GET[ 'tour' ] ) && isset( $_GET[ 'enable' ] ) && isset( $_GET[ '_wpnonce' ] ) && check_admin_referer( 'wc-gzd-tour-enable' ) ) {
179
-
180
  $setting_sections = array_merge( array(
181
  'general' => '',
182
  'display' => '',
175
  update_option( 'woocommerce_gzd_hide_tour_' . sanitize_text_field( $_GET[ 'tour' ] ), true );
176
  else
177
  update_option( 'woocommerce_gzd_hide_tour', true );
178
+ wp_safe_redirect( remove_query_arg( array( 'hide', 'tour', '_wpnonce' ) ) );
179
  } else if ( isset( $_GET[ 'tour' ] ) && isset( $_GET[ 'enable' ] ) && isset( $_GET[ '_wpnonce' ] ) && check_admin_referer( 'wc-gzd-tour-enable' ) ) {
 
180
  $setting_sections = array_merge( array(
181
  'general' => '',
182
  'display' => '',
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php CHANGED
@@ -31,8 +31,12 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
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">
31
 
32
  $_product = wc_get_product( $variation );
33
  $variation_id = $_product->variation_id;
34
+
35
+ $delivery_time = wp_get_post_terms( $variation_id, 'product_delivery_time' );
36
 
37
+ if ( $delivery_time && ! empty( $delivery_time ) && is_array( $delivery_time ) )
38
+ $delivery_time = $delivery_time[0];
39
+
40
  ?>
41
 
42
  <div class="variable_pricing_unit">
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data.php CHANGED
@@ -57,11 +57,17 @@ class WC_Germanized_Meta_Box_Product_Data {
57
  $delivery_time = $_product->gzd_product->delivery_time;
58
 
59
  ?>
 
60
  <p class="form-field">
61
  <label for="delivery_time"><?php _e( 'Delivery Time', 'woocommerce-germanized' ); ?></label>
62
  <input type="hidden" class="wc-product-search wc-gzd-delivery-time-search" style="width: 50%" id="delivery_time" name="delivery_time" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php _e( 'Search for a delivery time&hellip;', 'woocommerce-germanized' ); ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false" data-selected="<?php echo ( $delivery_time ? $delivery_time->name : '' ); ?>" value="<?php echo ( $delivery_time ? $delivery_time->term_id : '' ); ?>" />
63
  </p>
 
64
  <?php
 
 
 
 
65
  }
66
 
67
  public static function save( $post_id ) {
@@ -85,6 +91,7 @@ class WC_Germanized_Meta_Box_Product_Data {
85
  '_sale_price_dates_from' => '',
86
  '_sale_price_dates_to' => '',
87
  '_sale_price' => '',
 
88
  );
89
 
90
  foreach ( $data as $k => $v ) {
@@ -99,7 +106,7 @@ class WC_Germanized_Meta_Box_Product_Data {
99
 
100
  $data = apply_filters( 'woocommerce_gzd_product_saveable_data', $data, $post_id );
101
 
102
- $product_type = empty( $data['product-type'] ) ? 'simple' : sanitize_title( stripslashes( $data['product-type'] ) );
103
 
104
  if ( isset( $data['_unit'] ) ) {
105
  update_post_meta( $post_id, '_unit', ( $data['_unit'] === '' ? '' : sanitize_text_field( $data['_unit'] ) ) );
@@ -132,13 +139,18 @@ class WC_Germanized_Meta_Box_Product_Data {
132
  if ( isset( $data[ '_mini_desc' ] ) ) {
133
  update_post_meta( $post_id, '_mini_desc', ( $data[ '_mini_desc' ] === '' ? '' : esc_html( $data[ '_mini_desc' ] ) ) );
134
  }
135
-
136
- if ( isset( $data[ 'delivery_time' ] ) && ! is_numeric( $data[ 'delivery_time' ] ) )
137
- wp_set_post_terms( $post_id, sanitize_text_field( $data[ 'delivery_time' ] ), 'product_delivery_time' );
138
- else if ( is_numeric( $data[ 'delivery_time' ] ) )
139
- wp_set_object_terms( $post_id, absint( $data[ 'delivery_time' ] ) , 'product_delivery_time' );
140
- else
 
141
  wp_delete_object_term_relationships( $post_id, 'product_delivery_time' );
 
 
 
 
142
 
143
  // Ignore variable data
144
  if ( in_array( $product_type, array( 'variable', 'grouped' ) ) && ! $is_variation ) {
57
  $delivery_time = $_product->gzd_product->delivery_time;
58
 
59
  ?>
60
+
61
  <p class="form-field">
62
  <label for="delivery_time"><?php _e( 'Delivery Time', 'woocommerce-germanized' ); ?></label>
63
  <input type="hidden" class="wc-product-search wc-gzd-delivery-time-search" style="width: 50%" id="delivery_time" name="delivery_time" data-minimum_input_length="1" data-allow_clear="true" data-placeholder="<?php _e( 'Search for a delivery time&hellip;', 'woocommerce-germanized' ); ?>" data-action="woocommerce_gzd_json_search_delivery_time" data-multiple="false" data-selected="<?php echo ( $delivery_time ? $delivery_time->name : '' ); ?>" value="<?php echo ( $delivery_time ? $delivery_time->term_id : '' ); ?>" />
64
  </p>
65
+
66
  <?php
67
+
68
+ // Free shipping
69
+ woocommerce_wp_checkbox( array( 'id' => '_free_shipping', 'label' => __( 'Free shipping?', 'woocommerce-germanized' ), 'description' => __( 'This option disables the "plus shipping costs" notice on product page', 'woocommerce-germanized' ) ) );
70
+
71
  }
72
 
73
  public static function save( $post_id ) {
91
  '_sale_price_dates_from' => '',
92
  '_sale_price_dates_to' => '',
93
  '_sale_price' => '',
94
+ '_free_shipping' => '',
95
  );
96
 
97
  foreach ( $data as $k => $v ) {
106
 
107
  $data = apply_filters( 'woocommerce_gzd_product_saveable_data', $data, $post_id );
108
 
109
+ $product_type = ( ! isset( $data['product-type'] ) || empty( $data['product-type'] ) ) ? 'simple' : sanitize_title( stripslashes( $data['product-type'] ) );
110
 
111
  if ( isset( $data['_unit'] ) ) {
112
  update_post_meta( $post_id, '_unit', ( $data['_unit'] === '' ? '' : sanitize_text_field( $data['_unit'] ) ) );
139
  if ( isset( $data[ '_mini_desc' ] ) ) {
140
  update_post_meta( $post_id, '_mini_desc', ( $data[ '_mini_desc' ] === '' ? '' : esc_html( $data[ '_mini_desc' ] ) ) );
141
  }
142
+
143
+ if ( isset( $data[ 'delivery_time' ] ) && ! empty( $data[ 'delivery_time' ] ) ) {
144
+ if ( ! is_numeric( $data[ 'delivery_time' ] ) )
145
+ wp_set_post_terms( $post_id, sanitize_text_field( $data[ 'delivery_time' ] ), 'product_delivery_time' );
146
+ else
147
+ wp_set_object_terms( $post_id, absint( $data[ 'delivery_time' ] ) , 'product_delivery_time' );
148
+ } else {
149
  wp_delete_object_term_relationships( $post_id, 'product_delivery_time' );
150
+ }
151
+
152
+ // Free shipping
153
+ update_post_meta( $post_id, '_free_shipping', ( isset( $data['_free_shipping'] ) ) ? 'yes' : '' );
154
 
155
  // Ignore variable data
156
  if ( in_array( $product_type, array( 'variable', 'grouped' ) ) && ! $is_variation ) {
includes/admin/settings/class-wc-gzd-settings-germanized.php CHANGED
@@ -294,6 +294,16 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
294
  'default' => __( 'plus {link}Shipping Costs{/link}', 'woocommerce-germanized' ),
295
  ),
296
 
 
 
 
 
 
 
 
 
 
 
297
  array(
298
  'title' => __( 'Shipping Costs Tax', 'woocommerce-germanized' ),
299
  'desc' => __( 'Enable better taxation for shpping costs?', 'woocommerce-germanized' ),
@@ -806,7 +816,7 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
806
  'title' => __( 'Legal Digital Text', 'woocommerce-germanized' ),
807
  'desc' => __( '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.', 'woocommerce-germanized' ),
808
  'desc_tip' => true,
809
- 'default' => __( 'I want immediate access to the digital content and I acknowledge that thereby I lose my right to cancel once the service has begun.', 'woocommerce-germanized' ),
810
  'css' => 'width:100%; height: 65px;',
811
  'id' => 'woocommerce_gzd_checkout_legal_text_digital',
812
  'type' => 'textarea',
@@ -953,6 +963,11 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
953
  WC_Admin_Settings::add_error( __( 'Sorry, but the new Virtual VAT rules cannot be applied to small business.', 'woocommerce-germanized' ) );
954
  }
955
  }
 
 
 
 
 
956
  }
957
 
958
  public function output_premium_section() {
294
  'default' => __( 'plus {link}Shipping Costs{/link}', 'woocommerce-germanized' ),
295
  ),
296
 
297
+ array(
298
+ 'title' => __( 'Free Shipping Text', 'woocommerce-germanized' ),
299
+ 'desc' => __( 'This text will be used to inform the customer about free shipping. Leave empty to disable notice. Use {link}{/link} to insert link to shipping costs page.', 'woocommerce-germanized' ),
300
+ 'desc_tip' => true,
301
+ 'id' => 'woocommerce_gzd_free_shipping_text',
302
+ 'type' => 'text',
303
+ 'css' => 'min-width:300px;',
304
+ 'default' => __( '', 'woocommerce-germanized' ),
305
+ ),
306
+
307
  array(
308
  'title' => __( 'Shipping Costs Tax', 'woocommerce-germanized' ),
309
  'desc' => __( 'Enable better taxation for shpping costs?', 'woocommerce-germanized' ),
816
  'title' => __( 'Legal Digital Text', 'woocommerce-germanized' ),
817
  'desc' => __( '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.', 'woocommerce-germanized' ),
818
  'desc_tip' => true,
819
+ 'default' => __( 'For digital products: I strongly agree that the execution of the agreement starts before the revocation period has expired. I am aware that my right of withdrawal ceases with the beginning of the agreement.', 'woocommerce-germanized' ),
820
  'css' => 'width:100%; height: 65px;',
821
  'id' => 'woocommerce_gzd_checkout_legal_text_digital',
822
  'type' => 'textarea',
963
  WC_Admin_Settings::add_error( __( 'Sorry, but the new Virtual VAT rules cannot be applied to small business.', 'woocommerce-germanized' ) );
964
  }
965
  }
966
+ if ( 'yes' === get_option( 'woocommerce_gzd_enable_virtual_vat' ) ) {
967
+ // Make sure that tax based location is set to billing address
968
+ if ( 'base' === get_option( 'woocommerce_tax_based_on' ) )
969
+ update_option( 'woocommerce_tax_based_on', 'billing' );
970
+ }
971
  }
972
 
973
  public function output_premium_section() {
includes/admin/views/html-tour-display.php CHANGED
@@ -93,7 +93,7 @@ if ( ! defined( 'ABSPATH' ) ) {
93
  <h2>Einstellungen speichern</h2>
94
  <p>Wenn du deine Einstellungen angepasst hast, dann speichere sie über diesen Button.
95
  </p>
96
- <a class="button button-primary" href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=germanized&section=email' ); ?>">Weiter zu den E-Mails</a>
97
  </li>
98
 
99
  </ol>
93
  <h2>Einstellungen speichern</h2>
94
  <p>Wenn du deine Einstellungen angepasst hast, dann speichere sie über diesen Button.
95
  </p>
96
+ <a class="button button-primary" href="<?php echo add_query_arg( array( 'section' => 'email' ), WC_GZD_Admin::instance()->disable_tour_link( 'display' ) ); ?>">Weiter zu den E-Mails</a>
97
  </li>
98
 
99
  </ol>
includes/admin/views/html-tour-general.php CHANGED
@@ -117,7 +117,7 @@ if ( ! defined( 'ABSPATH' ) ) {
117
  <h2>Einstellungen speichern</h2>
118
  <p>Wenn du deine Einstellungen angepasst hast, dann speichere sie über diesen Button.
119
  </p>
120
- <a class="button button-primary" href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=germanized&section=display' ); ?>">Weiter zur Anzeige</a>
121
  </li>
122
 
123
  </ol>
117
  <h2>Einstellungen speichern</h2>
118
  <p>Wenn du deine Einstellungen angepasst hast, dann speichere sie über diesen Button.
119
  </p>
120
+ <a class="button button-primary" href="<?php echo add_query_arg( array( 'section' => 'display' ), WC_GZD_Admin::instance()->disable_tour_link( 'general' ) ); ?>">Weiter zur Anzeige</a>
121
  </li>
122
 
123
  </ol>
includes/class-wc-gzd-cart-2-2.php DELETED
@@ -1,352 +0,0 @@
1
- <?php
2
- /**
3
- * WooCommerce GZD cart
4
- *
5
- * Extends WooCommerce default cart to implement vat exception for digital products (if customer is not from shop base country)
6
- *
7
- * @class WC_GZD_Cart
8
- * @see WC_Cart
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Cart extends WC_Cart {
13
-
14
- /**
15
- * Reset cart totals and clear sessions.
16
- *
17
- * @access private
18
- * @return void
19
- */
20
- private function reset() {
21
- foreach ( $this->cart_session_data as $key => $default ) {
22
- $this->$key = $default;
23
- unset( WC()->session->$key );
24
- }
25
- }
26
-
27
- /**
28
- * Calculate totals for cart. Implements vat exception for digital products.
29
- */
30
- public function calculate_totals() {
31
-
32
- $this->reset();
33
-
34
- do_action( 'woocommerce_before_calculate_totals', $this );
35
-
36
- if ( sizeof( $this->get_cart() ) == 0 ) {
37
- $this->set_session();
38
- return;
39
- }
40
-
41
- $tax_rates = array();
42
- $shop_tax_rates = array();
43
-
44
- /**
45
- * Calculate subtotals for items. This is done first so that discount logic can use the values.
46
- */
47
- foreach ( $this->get_cart() as $cart_item_key => $values ) {
48
-
49
- $_product = $values['data'];
50
-
51
- // Count items + weight
52
- $this->cart_contents_weight += $_product->get_weight() * $values['quantity'];
53
- $this->cart_contents_count += $values['quantity'];
54
-
55
- // Prices
56
- $base_price = $_product->get_price();
57
- $line_price = $_product->get_price() * $values['quantity'];
58
-
59
- $line_subtotal = 0;
60
- $line_subtotal_tax = 0;
61
-
62
- /**
63
- * No tax to calculate
64
- */
65
- if ( ! $_product->is_taxable() ) {
66
-
67
- // Subtotal is the undiscounted price
68
- $this->subtotal += $line_price;
69
- $this->subtotal_ex_tax += $line_price;
70
-
71
- /**
72
- * Prices include tax
73
- *
74
- * To prevent rounding issues we need to work with the inclusive price where possible
75
- * otherwise we'll see errors such as when working with a 9.99 inc price, 20% VAT which would
76
- * be 8.325 leading to totals being 1p off
77
- *
78
- * Pre tax coupons come off the price the customer thinks they are paying - tax is calculated
79
- * afterwards.
80
- *
81
- * e.g. $100 bike with $10 coupon = customer pays $90 and tax worked backwards from that
82
- */
83
- } elseif ( $this->prices_include_tax ) {
84
-
85
- // Get base tax rates
86
- if ( empty( $shop_tax_rates[ $_product->tax_class ] ) )
87
- $shop_tax_rates[ $_product->tax_class ] = $this->tax->get_shop_base_rate( $_product->tax_class );
88
-
89
- // Get item tax rates
90
- if ( empty( $tax_rates[ $_product->get_tax_class() ] ) )
91
- $tax_rates[ $_product->get_tax_class() ] = $this->tax->get_rates( $_product->get_tax_class() );
92
-
93
- $base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
94
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
95
-
96
- /**
97
- * ADJUST TAX - Calculations when base tax is not equal to the item tax
98
- */
99
- if ( $item_tax_rates !== $base_tax_rates ) {
100
-
101
- // Work out a new base price without the shop's base tax
102
- $taxes = $this->tax->calc_tax( $line_price, $base_tax_rates, true, true );
103
-
104
- // Digital VAT exception
105
- if ( $this->is_virtual_taxable() && $_product->gzd_product->is_virtual_vat_exception() )
106
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true, true );
107
-
108
- // Now we have a new item price (excluding TAX)
109
- $line_subtotal = $line_price - array_sum( $taxes );
110
-
111
- // Now add modifed taxes
112
- $tax_result = $this->tax->calc_tax( $line_subtotal, $item_tax_rates );
113
- $line_subtotal_tax = array_sum( $tax_result );
114
-
115
- /**
116
- * Regular tax calculation (customer inside base and the tax class is unmodified
117
- */
118
- } else {
119
-
120
- // Calc tax normally
121
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true );
122
- $line_subtotal_tax = array_sum( $taxes );
123
- $line_subtotal = $line_price - array_sum( $taxes );
124
- }
125
-
126
- /**
127
- * Prices exclude tax
128
- *
129
- * This calculation is simpler - work with the base, untaxed price.
130
- */
131
- } else {
132
-
133
- // Get item tax rates
134
- if ( empty( $tax_rates[ $_product->get_tax_class() ] ) )
135
- $tax_rates[ $_product->get_tax_class() ] = $this->tax->get_rates( $_product->get_tax_class() );
136
-
137
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
138
-
139
- // Base tax for line before discount - we will store this in the order data
140
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates );
141
- $line_subtotal_tax = array_sum( $taxes );
142
- $line_subtotal = $line_price;
143
- }
144
-
145
- // Add to main subtotal
146
- $this->subtotal += $line_subtotal + $line_subtotal_tax;
147
- $this->subtotal_ex_tax += $line_subtotal;
148
- }
149
-
150
- /**
151
- * Calculate totals for items
152
- */
153
- foreach ( $this->get_cart() as $cart_item_key => $values ) {
154
-
155
- $_product = $values['data'];
156
-
157
- // Prices
158
- $base_price = $_product->get_price();
159
- $line_price = $_product->get_price() * $values['quantity'];
160
-
161
- // Tax data
162
- $taxes = array();
163
- $discounted_taxes = array();
164
-
165
- /**
166
- * No tax to calculate
167
- */
168
- if ( ! $_product->is_taxable() ) {
169
-
170
- // Discounted Price (price with any pre-tax discounts applied)
171
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
172
- $discounted_tax_amount = 0;
173
- $tax_amount = 0;
174
- $line_subtotal_tax = 0;
175
- $line_subtotal = $line_price;
176
- $line_tax = 0;
177
- $line_total = $this->tax->round( $discounted_price * $values['quantity'] );
178
-
179
- /**
180
- * Prices include tax
181
- */
182
- } elseif ( $this->prices_include_tax ) {
183
-
184
- $base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
185
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
186
-
187
- /**
188
- * ADJUST TAX - Calculations when base tax is not equal to the item tax
189
- */
190
- if ( $item_tax_rates !== $base_tax_rates ) {
191
-
192
- // Work out a new base price without the shop's base tax
193
- $taxes = $this->tax->calc_tax( $line_price, $base_tax_rates, true, true );
194
-
195
- // Digital tax exception
196
- if ( $this->is_virtual_taxable() && $_product->gzd_product->is_virtual_vat_exception() )
197
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true, true );
198
-
199
- // Now we have a new item price (excluding TAX)
200
- $line_subtotal = round( $line_price - array_sum( $taxes ), WC_ROUNDING_PRECISION );
201
-
202
- // Now add modifed taxes
203
- $taxes = $this->tax->calc_tax( $line_subtotal, $item_tax_rates );
204
- $line_subtotal_tax = array_sum( $taxes );
205
-
206
- // Adjusted price (this is the price including the new tax rate)
207
- $adjusted_price = ( $line_subtotal + $line_subtotal_tax ) / $values['quantity'];
208
-
209
- // Apply discounts
210
- $discounted_price = $this->get_discounted_price( $values, $adjusted_price, true );
211
- $discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
212
- $line_tax = array_sum( $discounted_taxes );
213
- $line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
214
-
215
- /**
216
- * Regular tax calculation (customer inside base and the tax class is unmodified
217
- */
218
- } else {
219
-
220
- // Work out a new base price without the shop's base tax
221
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true );
222
-
223
- // Now we have a new item price (excluding TAX)
224
- $line_subtotal = $line_price - array_sum( $taxes );
225
- $line_subtotal_tax = array_sum( $taxes );
226
-
227
- // Calc prices and tax (discounted)
228
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
229
- $discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
230
- $line_tax = array_sum( $discounted_taxes );
231
- $line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
232
- }
233
-
234
- // Tax rows - merge the totals we just got
235
- foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
236
- $this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
237
- }
238
-
239
- /**
240
- * Prices exclude tax
241
- */
242
- } else {
243
-
244
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
245
-
246
- // Work out a new base price without the shop's base tax
247
- $taxes = $this->tax->calc_tax( $line_price, $item_tax_rates );
248
-
249
- // Now we have the item price (excluding TAX)
250
- $line_subtotal = $line_price;
251
- $line_subtotal_tax = array_sum( $taxes );
252
-
253
- // Now calc product rates
254
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
255
- $discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates );
256
- $discounted_tax_amount = array_sum( $discounted_taxes );
257
- $line_tax = $discounted_tax_amount;
258
- $line_total = $discounted_price * $values['quantity'];
259
-
260
- // Tax rows - merge the totals we just got
261
- foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
262
- $this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
263
- }
264
- }
265
-
266
- // Add any product discounts (after tax)
267
- $this->apply_product_discounts_after_tax( $values, $line_total + $line_tax );
268
-
269
- // Cart contents total is based on discounted prices and is used for the final total calculation
270
- $this->cart_contents_total += $line_total;
271
-
272
- // Store costs + taxes for lines
273
- $this->cart_contents[ $cart_item_key ]['line_total'] = $line_total;
274
- $this->cart_contents[ $cart_item_key ]['line_tax'] = $line_tax;
275
- $this->cart_contents[ $cart_item_key ]['line_subtotal'] = $line_subtotal;
276
- $this->cart_contents[ $cart_item_key ]['line_subtotal_tax'] = $line_subtotal_tax;
277
-
278
- // Store rates ID and costs - Since 2.2
279
- $this->cart_contents[ $cart_item_key ]['line_tax_data'] = array( 'total' => $discounted_taxes, 'subtotal' => $taxes );
280
- }
281
-
282
- // Only calculate the grand total + shipping if on the cart/checkout
283
- if ( is_checkout() || is_cart() || defined('WOOCOMMERCE_CHECKOUT') || defined('WOOCOMMERCE_CART') ) {
284
-
285
- // Calculate the Shipping
286
- $this->calculate_shipping();
287
-
288
- // Trigger the fees API where developers can add fees to the cart
289
- $this->calculate_fees();
290
-
291
- // Total up/round taxes and shipping taxes
292
- if ( $this->round_at_subtotal ) {
293
- $this->tax_total = $this->tax->get_tax_total( $this->taxes );
294
- $this->shipping_tax_total = $this->tax->get_tax_total( $this->shipping_taxes );
295
- $this->taxes = array_map( array( $this->tax, 'round' ), $this->taxes );
296
- $this->shipping_taxes = array_map( array( $this->tax, 'round' ), $this->shipping_taxes );
297
- } else {
298
- $this->tax_total = array_sum( $this->taxes );
299
- $this->shipping_tax_total = array_sum( $this->shipping_taxes );
300
- }
301
-
302
- // VAT exemption done at this point - so all totals are correct before exemption
303
- if ( WC()->customer->is_vat_exempt() ) {
304
- $this->remove_taxes();
305
- }
306
-
307
- // Cart Discounts (after tax)
308
- $this->apply_cart_discounts_after_tax();
309
-
310
- // Allow plugins to hook and alter totals before final total is calculated
311
- do_action( 'woocommerce_calculate_totals', $this );
312
-
313
- // Grand Total - Discounted product prices, discounted tax, shipping cost + tax, and any discounts to be added after tax (e.g. store credit)
314
- $this->total = max( 0, apply_filters( 'woocommerce_calculated_total', round( $this->cart_contents_total + $this->tax_total + $this->shipping_tax_total + $this->shipping_total - $this->discount_total + $this->fee_total, $this->dp ), $this ) );
315
-
316
- } else {
317
-
318
- // Set tax total to sum of all tax rows
319
- $this->tax_total = $this->tax->get_tax_total( $this->taxes );
320
-
321
- // VAT exemption done at this point - so all totals are correct before exemption
322
- if ( WC()->customer->is_vat_exempt() ) {
323
- $this->remove_taxes();
324
- }
325
-
326
- // Cart Discounts (after tax)
327
- $this->apply_cart_discounts_after_tax();
328
- }
329
-
330
- $this->set_session();
331
- }
332
-
333
- /**
334
- * Decides whether current cart (and customer) apply for a digital vat exception (checks whether customer is from EU and not from base country)
335
- *
336
- * @return boolean
337
- */
338
- public function is_virtual_taxable() {
339
- if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
340
- return false;
341
- if ( ( ! empty( WC()->customer ) ) && ( is_checkout() || defined('WOOCOMMERCE_CHECKOUT') ) ) {
342
- $taxable_address = WC()->customer->get_taxable_address();
343
- $base_country = WC()->countries->get_base_country();
344
- if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
345
- return true;
346
- }
347
- return false;
348
- }
349
-
350
- }
351
-
352
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-cart.php DELETED
@@ -1,383 +0,0 @@
1
- <?php
2
- /**
3
- * WooCommerce GZD cart
4
- *
5
- * Extends WooCommerce default cart to implement vat exception for digital products (if customer is not from shop base country)
6
- *
7
- * @class WC_GZD_Cart
8
- * @see WC_Cart
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Cart extends WC_Cart {
13
-
14
- /**
15
- * Reset cart totals to the defaults. Useful before running calculations.
16
- *
17
- * @param bool $unset_session If true, the session data will be forced unset.
18
- * @access private
19
- */
20
- private function reset( $unset_session = false ) {
21
- foreach ( $this->cart_session_data as $key => $default ) {
22
- $this->$key = $default;
23
- if ( $unset_session ) {
24
- unset( WC()->session->$key );
25
- }
26
- }
27
- do_action( 'woocommerce_cart_reset', $this, $unset_session );
28
- }
29
-
30
- /**
31
- * Sort by subtotal
32
- * @param array $a
33
- * @param array $b
34
- * @return int
35
- */
36
- private function sort_by_subtotal( $a, $b ) {
37
- $first_item_subtotal = isset( $a['line_subtotal'] ) ? $a['line_subtotal'] : 0;
38
- $second_item_subtotal = isset( $b['line_subtotal'] ) ? $b['line_subtotal'] : 0;
39
- if ( $first_item_subtotal === $second_item_subtotal ) {
40
- return 0;
41
- }
42
- return ( $first_item_subtotal < $second_item_subtotal ) ? 1 : -1;
43
- }
44
-
45
- /**
46
- * Calculate totals for cart. Implements vat exception for digital products.
47
- */
48
- public function calculate_totals() {
49
-
50
- $this->reset();
51
- $this->coupons = $this->get_coupons();
52
-
53
- do_action( 'woocommerce_before_calculate_totals', $this );
54
-
55
- if ( sizeof( $this->get_cart() ) == 0 ) {
56
- $this->set_session();
57
- return;
58
- }
59
-
60
- $tax_rates = array();
61
- $shop_tax_rates = array();
62
- $cart = $this->get_cart();
63
-
64
- /**
65
- * Calculate subtotals for items. This is done first so that discount logic can use the values.
66
- */
67
- foreach ( $cart as $cart_item_key => $values ) {
68
-
69
- $_product = $values['data'];
70
-
71
- // Count items + weight
72
- $this->cart_contents_weight += $_product->get_weight() * $values['quantity'];
73
- $this->cart_contents_count += $values['quantity'];
74
-
75
- // Prices
76
- $line_price = $_product->get_price() * $values['quantity'];
77
-
78
- $line_subtotal = 0;
79
- $line_subtotal_tax = 0;
80
-
81
- /**
82
- * No tax to calculate
83
- */
84
- if ( ! $_product->is_taxable() ) {
85
-
86
- // Subtotal is the undiscounted price
87
- $this->subtotal += $line_price;
88
- $this->subtotal_ex_tax += $line_price;
89
-
90
- /**
91
- * Prices include tax
92
- *
93
- * To prevent rounding issues we need to work with the inclusive price where possible
94
- * otherwise we'll see errors such as when working with a 9.99 inc price, 20% VAT which would
95
- * be 8.325 leading to totals being 1p off
96
- *
97
- * Pre tax coupons come off the price the customer thinks they are paying - tax is calculated
98
- * afterwards.
99
- *
100
- * e.g. $100 bike with $10 coupon = customer pays $90 and tax worked backwards from that
101
- */
102
- } elseif ( $this->prices_include_tax ) {
103
-
104
- // Get base tax rates
105
- if ( empty( $shop_tax_rates[ $_product->tax_class ] ) ) {
106
- $shop_tax_rates[ $_product->tax_class ] = WC_Tax::get_base_tax_rates( $_product->tax_class );
107
- }
108
-
109
- // Get item tax rates
110
- if ( empty( $tax_rates[ $_product->get_tax_class() ] ) ) {
111
- $tax_rates[ $_product->get_tax_class() ] = WC_Tax::get_rates( $_product->get_tax_class() );
112
- }
113
-
114
- $base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
115
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
116
-
117
- /**
118
- * ADJUST TAX - Calculations when base tax is not equal to the item tax
119
- *
120
- * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations.
121
- * e.g. If a product costs 10 including tax, all users will pay 10 regardless of location and taxes.
122
- * This feature is experimental @since 2.4.7 and may change in the future. Use at your risk.
123
- */
124
- if ( $item_tax_rates !== $base_tax_rates && apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) {
125
-
126
- // Work out a new base price without the shop's base tax
127
- $taxes = WC_Tax::calc_tax( $line_price, $base_tax_rates, true, true );
128
-
129
- // Digital VAT exception
130
- if ( $this->is_virtual_taxable() && $_product->gzd_product->is_virtual_vat_exception() ) {
131
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates, true, true );
132
- }
133
-
134
- // Now we have a new item price (excluding TAX)
135
- $line_subtotal = $line_price - array_sum( $taxes );
136
-
137
- // Now add modified taxes
138
- $tax_result = WC_Tax::calc_tax( $line_subtotal, $item_tax_rates );
139
- $line_subtotal_tax = array_sum( $tax_result );
140
-
141
- /**
142
- * Regular tax calculation (customer inside base and the tax class is unmodified
143
- */
144
- } else {
145
-
146
- // Calc tax normally
147
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates, true );
148
- $line_subtotal_tax = array_sum( $taxes );
149
- $line_subtotal = $line_price - array_sum( $taxes );
150
- }
151
-
152
- /**
153
- * Prices exclude tax
154
- *
155
- * This calculation is simpler - work with the base, untaxed price.
156
- */
157
- } else {
158
-
159
- // Get item tax rates
160
- if ( empty( $tax_rates[ $_product->get_tax_class() ] ) ) {
161
- $tax_rates[ $_product->get_tax_class() ] = WC_Tax::get_rates( $_product->get_tax_class() );
162
- }
163
-
164
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
165
-
166
- // Base tax for line before discount - we will store this in the order data
167
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates );
168
- $line_subtotal_tax = array_sum( $taxes );
169
- $line_subtotal = $line_price;
170
- }
171
-
172
- // Add to main subtotal
173
- $this->subtotal += $line_subtotal + $line_subtotal_tax;
174
- $this->subtotal_ex_tax += $line_subtotal;
175
- }
176
-
177
- // Order cart items by price so coupon logic is 'fair' for customers and not based on order added to cart.
178
- uasort( $cart, array( $this, 'sort_by_subtotal' ) );
179
-
180
- /**
181
- * Calculate totals for items
182
- */
183
- foreach ( $cart as $cart_item_key => $values ) {
184
-
185
- $_product = $values['data'];
186
-
187
- // Prices
188
- $base_price = $_product->get_price();
189
- $line_price = $_product->get_price() * $values['quantity'];
190
-
191
- // Tax data
192
- $taxes = array();
193
- $discounted_taxes = array();
194
-
195
- /**
196
- * No tax to calculate
197
- */
198
- if ( ! $_product->is_taxable() ) {
199
-
200
- // Discounted Price (price with any pre-tax discounts applied)
201
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
202
- $line_subtotal_tax = 0;
203
- $line_subtotal = $line_price;
204
- $line_tax = 0;
205
- $line_total = WC_Tax::round( $discounted_price * $values['quantity'] );
206
-
207
- /**
208
- * Prices include tax
209
- */
210
- } elseif ( $this->prices_include_tax ) {
211
-
212
- $base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
213
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
214
-
215
- /**
216
- * ADJUST TAX - Calculations when base tax is not equal to the item tax
217
- *
218
- * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations.
219
- * e.g. If a product costs 10 including tax, all users will pay 10 regardless of location and taxes.
220
- * This feature is experimental @since 2.4.7 and may change in the future. Use at your risk.
221
- */
222
- if ( $item_tax_rates !== $base_tax_rates && apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) {
223
-
224
- // Work out a new base price without the shop's base tax
225
- $taxes = WC_Tax::calc_tax( $line_price, $base_tax_rates, true, true );
226
-
227
- // Digital tax exception
228
- if ( $this->is_virtual_taxable() && $_product->gzd_product->is_virtual_vat_exception() )
229
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates, true, true );
230
-
231
- // Now we have a new item price (excluding TAX)
232
- $line_subtotal = round( $line_price - array_sum( $taxes ), WC_ROUNDING_PRECISION );
233
-
234
- $taxes = WC_Tax::calc_tax( $line_subtotal, $item_tax_rates );
235
- $line_subtotal_tax = array_sum( $taxes );
236
-
237
- // Adjusted price (this is the price including the new tax rate)
238
- $adjusted_price = ( $line_subtotal + $line_subtotal_tax ) / $values['quantity'];
239
-
240
- // Apply discounts
241
- $discounted_price = $this->get_discounted_price( $values, $adjusted_price, true );
242
- $discounted_taxes = WC_Tax::calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
243
- $line_tax = array_sum( $discounted_taxes );
244
- $line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
245
-
246
- /**
247
- * Regular tax calculation (customer inside base and the tax class is unmodified
248
- */
249
- } else {
250
-
251
- // Work out a new base price without the item tax
252
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates, true );
253
-
254
- // Now we have a new item price (excluding TAX)
255
- $line_subtotal = $line_price - array_sum( $taxes );
256
- $line_subtotal_tax = array_sum( $taxes );
257
-
258
- // Calc prices and tax (discounted)
259
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
260
- $discounted_taxes = WC_Tax::calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
261
- $line_tax = array_sum( $discounted_taxes );
262
- $line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
263
- }
264
-
265
- // Tax rows - merge the totals we just got
266
- foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
267
- $this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
268
- }
269
-
270
- /**
271
- * Prices exclude tax
272
- */
273
- } else {
274
-
275
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
276
-
277
- // Work out a new base price without the shop's base tax
278
- $taxes = WC_Tax::calc_tax( $line_price, $item_tax_rates );
279
-
280
- // Now we have the item price (excluding TAX)
281
- $line_subtotal = $line_price;
282
- $line_subtotal_tax = array_sum( $taxes );
283
-
284
- // Now calc product rates
285
- $discounted_price = $this->get_discounted_price( $values, $base_price, true );
286
- $discounted_taxes = WC_Tax::calc_tax( $discounted_price * $values['quantity'], $item_tax_rates );
287
- $discounted_tax_amount = array_sum( $discounted_taxes );
288
- $line_tax = $discounted_tax_amount;
289
- $line_total = $discounted_price * $values['quantity'];
290
-
291
- // Tax rows - merge the totals we just got
292
- foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
293
- $this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
294
- }
295
- }
296
-
297
- // Cart contents total is based on discounted prices and is used for the final total calculation
298
- $this->cart_contents_total += $line_total;
299
-
300
- // Store costs + taxes for lines
301
- $this->cart_contents[ $cart_item_key ]['line_total'] = $line_total;
302
- $this->cart_contents[ $cart_item_key ]['line_tax'] = $line_tax;
303
- $this->cart_contents[ $cart_item_key ]['line_subtotal'] = $line_subtotal;
304
- $this->cart_contents[ $cart_item_key ]['line_subtotal_tax'] = $line_subtotal_tax;
305
-
306
- // Store rates ID and costs - Since 2.2
307
- $this->cart_contents[ $cart_item_key ]['line_tax_data'] = array( 'total' => $discounted_taxes, 'subtotal' => $taxes );
308
- }
309
-
310
- // Only calculate the grand total + shipping if on the cart/checkout
311
- if ( is_checkout() || is_cart() || defined('WOOCOMMERCE_CHECKOUT') || defined('WOOCOMMERCE_CART') ) {
312
-
313
- // Calculate the Shipping
314
- $this->calculate_shipping();
315
-
316
- // Trigger the fees API where developers can add fees to the cart
317
- $this->calculate_fees();
318
-
319
- // Total up/round taxes and shipping taxes
320
- if ( $this->round_at_subtotal ) {
321
- $this->tax_total = WC_Tax::get_tax_total( $this->taxes );
322
- $this->shipping_tax_total = WC_Tax::get_tax_total( $this->shipping_taxes );
323
- $this->taxes = array_map( array( 'WC_Tax', 'round' ), $this->taxes );
324
- $this->shipping_taxes = array_map( array( 'WC_Tax', 'round' ), $this->shipping_taxes );
325
- } else {
326
- $this->tax_total = array_sum( $this->taxes );
327
- $this->shipping_tax_total = array_sum( $this->shipping_taxes );
328
- }
329
-
330
- // VAT exemption done at this point - so all totals are correct before exemption
331
- if ( WC()->customer->is_vat_exempt() ) {
332
- $this->remove_taxes();
333
- }
334
-
335
- // Allow plugins to hook and alter totals before final total is calculated
336
- do_action( 'woocommerce_calculate_totals', $this );
337
-
338
- // Grand Total - Discounted product prices, discounted tax, shipping cost + tax
339
- $this->total = max( 0, apply_filters( 'woocommerce_calculated_total', round( $this->cart_contents_total + $this->tax_total + $this->shipping_tax_total + $this->shipping_total + $this->fee_total, $this->dp ), $this ) );
340
-
341
- } else {
342
-
343
- // Set tax total to sum of all tax rows
344
- $this->tax_total = WC_Tax::get_tax_total( $this->taxes );
345
-
346
- // VAT exemption done at this point - so all totals are correct before exemption
347
- if ( WC()->customer->is_vat_exempt() ) {
348
- $this->remove_taxes();
349
- }
350
-
351
- }
352
-
353
- do_action( 'woocommerce_after_calculate_totals', $this );
354
-
355
- $this->set_session();
356
- }
357
-
358
- /**
359
- * Decides whether current cart (and customer) apply for a digital vat exception (checks whether customer is from EU and not from base country)
360
- *
361
- * @return boolean
362
- */
363
- public function is_virtual_taxable() {
364
-
365
- $is_taxable = false;
366
-
367
- if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) === 'yes' && ( ! empty( WC()->customer ) ) ) {
368
-
369
- $taxable_address = WC()->customer->get_taxable_address();
370
- $base_country = WC()->countries->get_base_country();
371
-
372
- if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
373
- $is_taxable = true;
374
-
375
- }
376
-
377
- return apply_filters( 'woocommerce_gzd_is_virtual_taxable', $is_taxable, $this );
378
-
379
- }
380
-
381
- }
382
-
383
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-checkout.php CHANGED
@@ -146,7 +146,7 @@ class WC_GZD_Checkout {
146
  'type' => 'select',
147
  'required' => 1,
148
  'label' => __( 'Title', 'woocommerce-germanized' ),
149
- 'options' => array( 1 => __( 'Sir', 'woocommerce-germanized' ), 2 => __( 'Madam', 'woocommerce-germanized' ) ),
150
  'before' => 'first_name',
151
  'group' => array( 'billing', 'shipping' ),
152
  );
@@ -276,7 +276,7 @@ class WC_GZD_Checkout {
276
  }
277
 
278
  public function get_customer_title( $option = 1 ) {
279
- return ( isset( $this->custom_fields[ 'title' ][ 'options' ][ $option ] ) ? $this->custom_fields[ 'title' ][ 'options' ][ $option ] : false );
280
  }
281
 
282
  public function set_formatted_address( $placeholder, $args ) {
146
  'type' => 'select',
147
  'required' => 1,
148
  'label' => __( 'Title', 'woocommerce-germanized' ),
149
+ 'options' => apply_filters( 'woocommerce_gzd_title_options', array( 1 => __( 'Sir', 'woocommerce-germanized' ), 2 => __( 'Madam', 'woocommerce-germanized' ) ) ),
150
  'before' => 'first_name',
151
  'group' => array( 'billing', 'shipping' ),
152
  );
276
  }
277
 
278
  public function get_customer_title( $option = 1 ) {
279
+ return ( 1 == $option ? __( 'Sir', 'woocommerce-germanized' ) : __( 'Madam', 'woocommerce-germanized' ) );
280
  }
281
 
282
  public function set_formatted_address( $placeholder, $args ) {
includes/class-wc-gzd-dependencies.php CHANGED
@@ -70,9 +70,10 @@ class WC_GZD_Dependencies {
70
  }
71
 
72
  public function is_wpml_activated() {
73
- return $this->is_plugin_activated( 'sitepress-multilingual-cms/sitepress.php' );
74
  }
75
 
 
76
  public function is_loadable() {
77
  return $this->loadable;
78
  }
70
  }
71
 
72
  public function is_wpml_activated() {
73
+ return ( $this->is_plugin_activated( 'sitepress-multilingual-cms/sitepress.php' ) && $this->is_plugin_activated( 'woocommerce-multilingual/wpml-woocommerce.php' ) );
74
  }
75
 
76
+
77
  public function is_loadable() {
78
  return $this->loadable;
79
  }
includes/class-wc-gzd-hook-priorities.php CHANGED
@@ -75,6 +75,7 @@ class WC_GZD_Hook_Priorities {
75
  'single_price_unit' => $this->get_priority( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' ) + 1,
76
  'single_legal_info' => $this->get_priority( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' ) + 2,
77
  'single_delivery_time_info' => 27,
 
78
  'single_product_units' => 5,
79
  'loop_price_unit' => 10,
80
  'loop_tax_info' => 6,
75
  'single_price_unit' => $this->get_priority( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' ) + 1,
76
  'single_legal_info' => $this->get_priority( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' ) + 2,
77
  'single_delivery_time_info' => 27,
78
+ 'single_small_business_info' => 30,
79
  'single_product_units' => 5,
80
  'loop_price_unit' => 10,
81
  'loop_tax_info' => 6,
includes/class-wc-gzd-install.php CHANGED
@@ -16,7 +16,8 @@ class WC_GZD_Install {
16
  /** @var array DB updates that need to be run */
17
  private static $db_updates = array(
18
  '1.0.4' => 'updates/woocommerce-gzd-update-1.0.4.php',
19
- '1.4.2' => 'updates/woocommerce-gzd-update-1.4.2.php'
 
20
  );
21
 
22
  /**
@@ -143,6 +144,20 @@ class WC_GZD_Install {
143
  // Queue upgrades
144
  $current_version = get_option( 'woocommerce_gzd_version', null );
145
  $current_db_version = get_option( 'woocommerce_gzd_db_version', null );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
 
147
  if ( ! is_null( $current_db_version ) && version_compare( $current_db_version, max( array_keys( self::$db_updates ) ), '<' ) ) {
148
  // Update
@@ -157,9 +172,7 @@ class WC_GZD_Install {
157
  update_option( 'woocommerce_gzd_activation_date', date( 'Y-m-d' ) );
158
 
159
  // Add theme compatibility check
160
- delete_option( '_wc_gzd_hide_theme_notice' );
161
  delete_option( '_wc_gzd_hide_review_notice' );
162
- delete_option( '_wc_gzd_hide_pro_notice' );
163
 
164
  // Check if pages are needed
165
  if ( wc_get_page_id( 'revocation' ) < 1 ) {
16
  /** @var array DB updates that need to be run */
17
  private static $db_updates = array(
18
  '1.0.4' => 'updates/woocommerce-gzd-update-1.0.4.php',
19
+ '1.4.2' => 'updates/woocommerce-gzd-update-1.4.2.php',
20
+ '1.4.6' => 'updates/woocommerce-gzd-update-1.4.6.php'
21
  );
22
 
23
  /**
144
  // Queue upgrades
145
  $current_version = get_option( 'woocommerce_gzd_version', null );
146
  $current_db_version = get_option( 'woocommerce_gzd_db_version', null );
147
+
148
+ // Queue messages and notices
149
+ if ( ! is_null( $current_version ) ) {
150
+
151
+ $major_version = substr( $current_version, 0, 3 );
152
+ $new_major_version = substr( WC_germanized()->version, 0, 3 );
153
+
154
+ // Only on major update
155
+ if ( version_compare( $new_major_version, $major_version, ">" ) ) {
156
+ delete_option( '_wc_gzd_hide_theme_notice' );
157
+ delete_option( '_wc_gzd_hide_pro_notice' );
158
+ }
159
+
160
+ }
161
 
162
  if ( ! is_null( $current_db_version ) && version_compare( $current_db_version, max( array_keys( self::$db_updates ) ), '<' ) ) {
163
  // Update
172
  update_option( 'woocommerce_gzd_activation_date', date( 'Y-m-d' ) );
173
 
174
  // Add theme compatibility check
 
175
  delete_option( '_wc_gzd_hide_review_notice' );
 
176
 
177
  // Check if pages are needed
178
  if ( wc_get_page_id( 'revocation' ) < 1 ) {
includes/class-wc-gzd-payment-gateways.php CHANGED
@@ -30,15 +30,31 @@ class WC_GZD_Payment_Gateways {
30
  * Manipulate payment gateway description if has a fee and init gateway title filter
31
  */
32
  public function checkout() {
 
 
 
 
 
33
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
 
34
  foreach( $gateways as $gateway ) {
 
35
  if ( ! isset( $gateway->force_order_button_text ) || ! $gateway->force_order_button_text )
36
  $gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
37
- if ( $gateway->get_option( 'fee' ) ) {
38
- add_filter( 'woocommerce_gateway_title', array( $this, 'set_title' ), 0, 2 );
39
- $gateway->description .= ' ' . sprintf( __( 'Plus %s payment charge.', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) );
 
 
 
 
 
 
 
40
  }
 
41
  }
 
42
  }
43
 
44
  /**
@@ -53,8 +69,8 @@ class WC_GZD_Payment_Gateways {
53
  if ( $gateway->id != $id )
54
  continue;
55
  $title = $gateway->title;
56
- if ( $gateway->get_option( 'fee' ) && ( is_checkout() || ( defined( 'DOING_AJAX' ) && isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'woocommerce_update_order_review' ) ) )
57
- $title = $title . ' <span class="small">(' . sprintf( __( 'plus %s payment charge', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) ) . ')</span>';
58
  return $title;
59
  }
60
  }
@@ -77,6 +93,9 @@ class WC_GZD_Payment_Gateways {
77
  * @param array $fields
78
  */
79
  public function set_fields( $fields ) {
 
 
 
80
  $fields[ 'fee' ] = array(
81
  'title' => __( 'Fee', 'woocommerce-germanized' ),
82
  'type' => 'decimal',
@@ -90,6 +109,19 @@ class WC_GZD_Payment_Gateways {
90
  'label' => __( 'Check if fee is taxable.', 'woocommerce-germanized' ),
91
  'default' => 'no',
92
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  return $fields;
94
  }
95
 
30
  * Manipulate payment gateway description if has a fee and init gateway title filter
31
  */
32
  public function checkout() {
33
+ $this->manipulate_gateways();
34
+ }
35
+
36
+ public function manipulate_gateways() {
37
+
38
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
39
+
40
  foreach( $gateways as $gateway ) {
41
+
42
  if ( ! isset( $gateway->force_order_button_text ) || ! $gateway->force_order_button_text )
43
  $gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
44
+
45
+ if ( $gateway->get_option( 'fee' ) ) {
46
+
47
+ $desc = sprintf( __( '%s payment charge', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) ) . '.';
48
+
49
+ if ( $gateway->get_option( 'forwarding_fee' ) )
50
+ $desc .= ' ' . sprintf( __( 'Plus %s forwarding fee (charged by the transport agent)', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'forwarding_fee' ) ) ) . '.';
51
+
52
+ $gateway->description .= apply_filters( 'woocommerce_gzd_payment_gateway_description', ' ' . $desc, $gateway );
53
+
54
  }
55
+
56
  }
57
+
58
  }
59
 
60
  /**
69
  if ( $gateway->id != $id )
70
  continue;
71
  $title = $gateway->title;
72
+ if ( $gateway->get_option( 'fee' ) && ( is_payment_methods() || ( is_checkout() || ( defined( 'DOING_AJAX' ) && isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'woocommerce_update_order_review' ) ) ) )
73
+ $title = $title . ' <span class="small">(' . sprintf( __( '%s payment charge', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'fee' ) ) ) . ')</span>';
74
  return $title;
75
  }
76
  }
93
  * @param array $fields
94
  */
95
  public function set_fields( $fields ) {
96
+
97
+ $gateway = isset( $_GET[ 'section' ] ) ? wc_clean( $_GET[ 'section' ] ) : '';
98
+
99
  $fields[ 'fee' ] = array(
100
  'title' => __( 'Fee', 'woocommerce-germanized' ),
101
  'type' => 'decimal',
109
  'label' => __( 'Check if fee is taxable.', 'woocommerce-germanized' ),
110
  'default' => 'no',
111
  );
112
+
113
+ if ( 'wc_gateway_cod' === $gateway ) {
114
+
115
+ $fields[ 'forwarding_fee' ] = array(
116
+ 'title' => __( 'Forwarding Fee', 'woocommerce-germanized' ),
117
+ 'type' => 'decimal',
118
+ 'desc_tip' => true,
119
+ 'description' => __( 'Forwarding fee will be charged by the transport agent in addition to the cash of delivery fee e.g. DHL - tax free.', 'woocommerce-germanized' ),
120
+ 'default' => 0,
121
+ );
122
+
123
+ }
124
+
125
  return $fields;
126
  }
127
 
includes/class-wc-gzd-shortcodes.php CHANGED
@@ -58,6 +58,8 @@ class WC_GZD_Shortcodes {
58
  */
59
  public static function payment_methods_info( $atts ) {
60
 
 
 
61
  ob_start();
62
  wc_get_template( 'global/payment-methods.php' );
63
  $return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
58
  */
59
  public static function payment_methods_info( $atts ) {
60
 
61
+ WC_GZD_Payment_Gateways::instance()->manipulate_gateways();
62
+
63
  ob_start();
64
  wc_get_template( 'global/payment-methods.php' );
65
  $return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
includes/class-wc-gzd-virtual-vat-helper.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Virtual VAT Helper
4
+ *
5
+ *
6
+ * @class WC_GZD_Virtual_VAT_Helper
7
+ * @category Class
8
+ * @author vendidero
9
+ */
10
+ class WC_GZD_Virtual_VAT_Helper {
11
+
12
+ protected static $_instance = null;
13
+
14
+ public static function instance() {
15
+ if ( is_null( self::$_instance ) )
16
+ self::$_instance = new self();
17
+ return self::$_instance;
18
+ }
19
+
20
+ public function __construct() {
21
+ add_action( 'init', array( $this, 'init' ), 2 );
22
+ }
23
+
24
+ public function init() {
25
+ // Calculate taxes for virtual vat rates based on customer address if available
26
+ add_filter( 'woocommerce_base_tax_rates', array( $this, 'set_base_tax_rates' ), 10, 2 );
27
+ }
28
+
29
+ public function set_base_tax_rates( $rates, $tax_class ) {
30
+
31
+ $location = WC_Tax::get_tax_location( $tax_class );
32
+
33
+ if ( in_array( $tax_class, array( 'virtual-rate', 'virtual-reduced-rate' ) ) && isset( $location[0] ) && sizeof( $location ) === 4 && $location[0] !== WC()->countries->get_base_country() ) {
34
+
35
+ list( $country, $state, $postcode, $city ) = $location;
36
+
37
+ $rates = WC_Tax::find_rates( array(
38
+ 'country' => $country,
39
+ 'state' => $state,
40
+ 'postcode' => $postcode,
41
+ 'city' => $city,
42
+ 'tax_class' => $tax_class
43
+ ) );
44
+
45
+ }
46
+
47
+ return $rates;
48
+
49
+ }
50
+
51
+ }
52
+
53
+ return WC_GZD_Virtual_VAT_Helper::instance();
includes/class-wc-gzd-wpml-helper.php CHANGED
@@ -11,6 +11,7 @@
11
  class WC_GZD_WPML_Helper {
12
 
13
  protected static $_instance = null;
 
14
 
15
  public static function instance() {
16
  if ( is_null( self::$_instance ) )
@@ -22,6 +23,8 @@ class WC_GZD_WPML_Helper {
22
 
23
  if ( ! $this->is_activated() )
24
  return;
 
 
25
 
26
  $this->filter_page_ids();
27
  }
@@ -30,6 +33,62 @@ class WC_GZD_WPML_Helper {
30
  return WC_GZD_Dependencies::instance()->is_wpml_activated();
31
  }
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  public function filter_page_ids() {
34
  $woo_pages = array(
35
  'revocation_page_id',
11
  class WC_GZD_WPML_Helper {
12
 
13
  protected static $_instance = null;
14
+ public $locale = false;
15
 
16
  public static function instance() {
17
  if ( is_null( self::$_instance ) )
23
 
24
  if ( ! $this->is_activated() )
25
  return;
26
+
27
+ add_action( 'init', array( $this, 'init' ), 5 );
28
 
29
  $this->filter_page_ids();
30
  }
33
  return WC_GZD_Dependencies::instance()->is_wpml_activated();
34
  }
35
 
36
+ public function init() {
37
+ // Observe order update and trigger hook
38
+ add_action( 'post_updated', array( $this, 'observe_order_update' ), 0, 3 );
39
+ }
40
+
41
+ public function observe_order_update( $post_id, $post_after, $post_before ) {
42
+
43
+ if ( 'shop_order' === $post_after->post_type ) {
44
+
45
+ do_action( 'woocommerce_gzd_before_order_post_status', $post_id );
46
+
47
+ $order = wc_get_order( $post_id );
48
+ $lang = null;
49
+
50
+ // Reset GZD Locale
51
+ if ( $lang = get_post_meta( $post_id, 'wpml_language', true ) ) {
52
+ $this->set_language( $lang );
53
+ }
54
+ }
55
+
56
+ }
57
+
58
+ public function set_language( $lang ) {
59
+
60
+ global $sitepress, $woocommerce;
61
+
62
+ $sitepress->switch_lang( $lang, true );
63
+ $this->locale = $sitepress->get_locale( $lang );
64
+
65
+ add_filter( 'plugin_locale', array( $this, 'set_locale' ), 10, 2 );
66
+
67
+ unload_textdomain( 'woocommerce' );
68
+ unload_textdomain( 'woocommerce-germanized' );
69
+ unload_textdomain( 'woocommerce-germanized-pro' );
70
+ unload_textdomain( 'default' );
71
+
72
+ $woocommerce->load_plugin_textdomain();
73
+ WC_germanized()->load_plugin_textdomain();
74
+
75
+ do_action( 'woocommerce_gzd_wpml_lang_changed', $lang );
76
+
77
+ load_default_textdomain();
78
+ global $wp_locale;
79
+ $wp_locale = new WP_Locale();
80
+
81
+ }
82
+
83
+ public function set_locale( $locale, $domain ) {
84
+
85
+ if( in_array( $domain, array( 'woocommerce', 'woocommerce-germanized', 'woocommerce-germanized-pro' ) ) && $this->locale ) {
86
+ $locale = $this->locale;
87
+ }
88
+
89
+ return $locale;
90
+ }
91
+
92
  public function filter_page_ids() {
93
  $woo_pages = array(
94
  'revocation_page_id',
includes/updates/woocommerce-gzd-update-1.4.2.php CHANGED
@@ -17,28 +17,4 @@ global $wpdb, $woocommerce_germanized;
17
  if ( get_option( 'woocommerce_gzd_trusted_review_reminder_days' ) ) {
18
  update_option( 'woocommerce_gzd_trusted_shops_review_reminder_days', get_option( 'woocommerce_gzd_trusted_review_reminder_days' ) );
19
  delete_option( 'woocommerce_gzd_trusted_review_reminder_days' );
20
- }
21
-
22
- /*
23
- $args = array(
24
- 'post_type' => array( 'product', 'product_variation' ),
25
- 'posts_per_page' => -1
26
- );
27
-
28
- $loop = new WP_Query( $args );
29
-
30
- if ( $loop->have_posts() ) {
31
-
32
- while ( $loop->have_posts() ) {
33
-
34
- global $post;
35
- $loop->the_post();
36
- $product = wc_get_product();
37
-
38
- if ( $product->gzd_product->has_unit() && $product->gzd_product->unit_base )
39
- update_post_meta( ( $product->is_type( 'variation' ) ? $product->variation_id : $product->id ), '_unit_product', round( $product->gzd_product->unit_base * 100, wc_get_price_decimals() ) );
40
- }
41
- }
42
-
43
- wp_reset_postdata();
44
- */
17
  if ( get_option( 'woocommerce_gzd_trusted_review_reminder_days' ) ) {
18
  update_option( 'woocommerce_gzd_trusted_shops_review_reminder_days', get_option( 'woocommerce_gzd_trusted_review_reminder_days' ) );
19
  delete_option( 'woocommerce_gzd_trusted_review_reminder_days' );
20
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/updates/woocommerce-gzd-update-1.4.6.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Update Germanized to 1.4.6
4
+ *
5
+ * @author WooThemes
6
+ * @category Admin
7
+ * @package WooCommerce Germanized/Updates
8
+ * @version 1.4.6
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit; // Exit if accessed directly
13
+ }
14
+
15
+ if ( 'yes' === get_option( 'woocommerce_gzd_enable_virtual_vat' ) && 'base' === get_option( 'woocommerce_tax_based_on' ) )
16
+ update_option( 'woocommerce_tax_based_on', 'billing' );
includes/wc-gzd-cart-functions.php CHANGED
@@ -34,7 +34,7 @@ function wc_gzd_cart_product_item_desc( $title, $cart_item, $cart_item_key = ''
34
  } else if ( isset( $cart_item[ 'item_desc' ] ) )
35
  $product_desc = $cart_item[ 'item_desc' ];
36
  if ( ! empty( $product_desc ) )
37
- $title .= '<div class="wc-gzd-item-desc item-desc">' . $product_desc . '</div>';
38
  return $title;
39
  }
40
 
34
  } else if ( isset( $cart_item[ 'item_desc' ] ) )
35
  $product_desc = $cart_item[ 'item_desc' ];
36
  if ( ! empty( $product_desc ) )
37
+ $title .= '<div class="wc-gzd-item-desc item-desc">' . do_shortcode( $product_desc ) . '</div>';
38
  return $title;
39
  }
40
 
includes/wc-gzd-core-functions.php CHANGED
@@ -56,4 +56,15 @@ function wc_gzd_get_email_attachment_order() {
56
  }
57
 
58
  return $items;
 
 
 
 
 
 
 
 
 
 
 
59
  }
56
  }
57
 
58
  return $items;
59
+ }
60
+
61
+ if ( ! function_exists( 'is_payment_methods' ) ) {
62
+
63
+ /**
64
+ * is_checkout - Returns true when viewing the checkout page.
65
+ * @return bool
66
+ */
67
+ function is_payment_methods() {
68
+ return is_page( wc_get_page_id( 'payment_methods' ) ) || apply_filters( 'woocommerce_gzd_is_payment_methods', false ) ? true : false;
69
+ }
70
  }
includes/wc-gzd-order-functions.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Order Functions
4
+ *
5
+ * WC_GZD order functions.
6
+ *
7
+ * @author Vendidero
8
+ * @version 1.0.0
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
+
13
+ function wc_gzd_cart_forwarding_fee_notice_filter( $total_rows, $order ) {
14
+
15
+ $gateways = WC()->payment_gateways()->get_available_payment_gateways();
16
+ $gateway = isset( $gateways[ $order->payment_method ] ) ? $gateways[ $order->payment_method ] : null;
17
+
18
+ if ( $gateway && $gateway->get_option( 'forwarding_fee' ) ) {
19
+ $total_rows['order_total_forwarding_fee'] = array(
20
+ 'label' => '',
21
+ 'value' => sprintf( __( 'Plus %s forwarding fee (charged by the transport agent)', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'forwarding_fee' ) ) ),
22
+ );
23
+ }
24
+ return $total_rows;
25
+
26
+ }
27
+
28
+ add_filter( 'woocommerce_get_order_item_totals', 'wc_gzd_cart_forwarding_fee_notice_filter', PHP_INT_MAX, 2 );
includes/wc-gzd-template-functions.php CHANGED
@@ -437,4 +437,22 @@ if ( ! function_exists( 'woocommerce_gzd_template_customer_account_checkbox_erro
437
 
438
  }
439
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  ?>
437
 
438
  }
439
 
440
+ if ( ! function_exists( 'woocommerce_gzd_template_checkout_forwarding_fee_notice' ) ) {
441
+
442
+ function woocommerce_gzd_template_checkout_forwarding_fee_notice() {
443
+
444
+ $gateways = WC()->payment_gateways()->get_available_payment_gateways();
445
+
446
+ if ( ! ( $key = WC()->session->get('chosen_payment_method') ) || ! isset( $gateways[ $key ] ) )
447
+ return;
448
+
449
+ $gateway = $gateways[ $key ];
450
+
451
+ if ( $gateway->get_option( 'forwarding_fee' ) )
452
+ echo apply_filters( 'woocommerce_gzd_forwarding_fee_checkout_text', '<tr><td colspan="2">' . sprintf( __( 'Plus %s forwarding fee (charged by the transport agent)', 'woocommerce-germanized' ), wc_price( $gateway->get_option( 'forwarding_fee' ) ) ) . '</td></tr>' );
453
+
454
+ }
455
+
456
+ }
457
+
458
  ?>
includes/wc-gzd-template-hooks.php CHANGED
@@ -128,6 +128,9 @@ if ( get_option( 'woocommerce_gzd_display_checkout_back_to_cart_button' ) == 'ye
128
  // Force order button text
129
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', PHP_INT_MAX );
130
 
 
 
 
131
  /**
132
  * Checkout Validation
133
  */
128
  // Force order button text
129
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', PHP_INT_MAX );
130
 
131
+ // Forwarding fee
132
+ add_action( 'woocommerce_review_order_after_order_total', 'woocommerce_gzd_template_checkout_forwarding_fee_notice' );
133
+
134
  /**
135
  * Checkout Validation
136
  */
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: vendidero
3
  Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_DE, shop, commerce, e-commerce, ecommerce, woothemes, sepa, invoice
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.3
7
- Stable tag: 1.4.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -12,8 +12,6 @@ Extends WooCommerce to become a legally compliant shop for german market. WooCom
12
 
13
  == Description ==
14
 
15
- (see below for english version)
16
-
17
  WooCommerce Germanized erweitert WooCommerce um alle technisch relevanten Funktionen für den Betrieb eines rechtssicheren Online-Shops mit WooCommerce in Deutschland. Das Ziel des Plugins ist es, WooCommerce optimal an die Bedürfnisse des deutschen Marktes anzupassen. WC Germanized wird von einem WordPress-erfahrenen, deutschen Team aktiv (weiter-)entwickelt - bei Updates von WooCommerce ziehen wir innerhalb kürzester Zeit mit.
18
 
19
  Nutzer von [WooCommerce Germanized Pro](https://vendidero.de/woocommerce-germanized "WooCommerce optimiert für den deutschen Markt") profitieren von vielen weiterführenden Features z.B. PDF-Rechnungen, Mustertexte-Generator für AGB und Widerrufsbelehrung, Premium Support und vielem mehr!
@@ -49,14 +47,14 @@ Selbstverständlich können Trusted Shops Kunden mit nur wenigen Einstellungen d
49
  Bei der Entwicklung von WC Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
50
  Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
51
 
52
- = SEPA Lastschrift & Kauf auf Rechnung =
53
  Mit WooCommerce Germanized 1.4 kannst du deinen Kunden ganz einfach den Kauf per Bankeinzug und per Rechnung ermöglichen.
54
  Beim SEPA Lastschriftverfahren werden entsprechende Felder für IBAN, BIC und Kontoinhaber zum Checkout hinzugefügt und überprüft.
55
  Zudem kann der Kunde eine Vorschau des Mandates per Link abrufen und vor dem Kauf einsehen. Den Kauf auf Rechnung kannst du auf Wunsch
56
  in den Einstellungen so einschränken, dass von dieser Zahlungsart nur Bestandskunden Gebrauch machen können.
57
 
58
- = Pro: PDF Rechnungen & Lieferscheine =
59
- Als Nutzer der Pro Version von WooCommerce Germanized erstellst du automatisiert oder manuell PDF-Rechnungen und Lieferscheine zu deinen Bestellungen. Dabei hast du volle Kontrolle über das Layout deiner PDF-Dokumente.
60
  Lade beispielsweise einfach ein PDF-Template hoch, das als "Hintergrund" für deine Rechnungen fungiert. Mit wenigen Klicks exportierst du deine Rechnungen (CSV, zip) für deine Buchhaltung oder deinen Steuerberater.
61
  Mehr Informationen? [PDF Rechnungen für WooCommerce](https://vendidero.de/woocommerce-germanized#accounting "WooCommerce PDF Rechnungen")
62
 
@@ -79,7 +77,7 @@ Aktuell unterstützt die Pro-Version folgende Themes:
79
  Kunden von WC Germanized Pro genießen einen kompetenten Ticket-Support zu Fragen rund um WC Germanized. Natürlich versuchen wir über das WordPress Support-Forum auch einen guten Support zu gewährleisten.
80
  Gerne übernehmen wir die von dir gewünschten Individualisierungen und Anpassungen an WordPress, WooCommerce und WC Germanized - und unterbreiten dir ein [individuelles Angebot](https://vendidero.de/individualisierung) basierend auf deinen Vorstellungen.
81
 
82
- = Double Opt-In Verfahren für Benutzerkonten =
83
  Ein Urteil des Amtsgerichts Berlin Pankow/Weißensee macht das Double Opt-In Verfahren für die Erstellung von Benutzerkonten in Online-Shops zur "Pflichtsache". In WC Germanized ist das kein Problem.
84
  Nach Erstellung eines Kontos wird automatisch eine Bestätigungsmail mit Bestätigungslink an den Kunden versendet. Unaktivierte Konten können nach einem bestimmten Interval automatisch gelöscht werden.
85
 
@@ -176,6 +174,18 @@ Bugs sowie Hilfe bei der Arbeit an WooCommerce Germanized werden gerne über uns
176
 
177
  == Changelog ==
178
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  = 1.4.5 =
180
  * Feature - WC_GZD_Product_Variable object containing get_variation_unit_price with min max option
181
  * Fix - virtual vat calculation (vat exempt compatibility)
3
  Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_DE, shop, commerce, e-commerce, ecommerce, woothemes, sepa, invoice
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.4
7
+ Stable tag: 1.4.6
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
12
 
13
  == Description ==
14
 
 
 
15
  WooCommerce Germanized erweitert WooCommerce um alle technisch relevanten Funktionen für den Betrieb eines rechtssicheren Online-Shops mit WooCommerce in Deutschland. Das Ziel des Plugins ist es, WooCommerce optimal an die Bedürfnisse des deutschen Marktes anzupassen. WC Germanized wird von einem WordPress-erfahrenen, deutschen Team aktiv (weiter-)entwickelt - bei Updates von WooCommerce ziehen wir innerhalb kürzester Zeit mit.
16
 
17
  Nutzer von [WooCommerce Germanized Pro](https://vendidero.de/woocommerce-germanized "WooCommerce optimiert für den deutschen Markt") profitieren von vielen weiterführenden Features z.B. PDF-Rechnungen, Mustertexte-Generator für AGB und Widerrufsbelehrung, Premium Support und vielem mehr!
47
  Bei der Entwicklung von WC Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
48
  Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
49
 
50
+ = SEPA Lastschrift & Kauf auf Rechnung für WooCommerce =
51
  Mit WooCommerce Germanized 1.4 kannst du deinen Kunden ganz einfach den Kauf per Bankeinzug und per Rechnung ermöglichen.
52
  Beim SEPA Lastschriftverfahren werden entsprechende Felder für IBAN, BIC und Kontoinhaber zum Checkout hinzugefügt und überprüft.
53
  Zudem kann der Kunde eine Vorschau des Mandates per Link abrufen und vor dem Kauf einsehen. Den Kauf auf Rechnung kannst du auf Wunsch
54
  in den Einstellungen so einschränken, dass von dieser Zahlungsart nur Bestandskunden Gebrauch machen können.
55
 
56
+ = Pro: WooCommerce PDF Rechnungen & Lieferscheine =
57
+ Als Nutzer der Pro Version von WC Germanized erstellst du automatisiert oder manuell PDF-Rechnungen und Lieferscheine zu deinen Bestellungen. Dabei hast du volle Kontrolle über das Layout deiner PDF-Dokumente.
58
  Lade beispielsweise einfach ein PDF-Template hoch, das als "Hintergrund" für deine Rechnungen fungiert. Mit wenigen Klicks exportierst du deine Rechnungen (CSV, zip) für deine Buchhaltung oder deinen Steuerberater.
59
  Mehr Informationen? [PDF Rechnungen für WooCommerce](https://vendidero.de/woocommerce-germanized#accounting "WooCommerce PDF Rechnungen")
60
 
77
  Kunden von WC Germanized Pro genießen einen kompetenten Ticket-Support zu Fragen rund um WC Germanized. Natürlich versuchen wir über das WordPress Support-Forum auch einen guten Support zu gewährleisten.
78
  Gerne übernehmen wir die von dir gewünschten Individualisierungen und Anpassungen an WordPress, WooCommerce und WC Germanized - und unterbreiten dir ein [individuelles Angebot](https://vendidero.de/individualisierung) basierend auf deinen Vorstellungen.
79
 
80
+ = Double Opt-In Verfahren für WooCommerce Benutzerkonten =
81
  Ein Urteil des Amtsgerichts Berlin Pankow/Weißensee macht das Double Opt-In Verfahren für die Erstellung von Benutzerkonten in Online-Shops zur "Pflichtsache". In WC Germanized ist das kein Problem.
82
  Nach Erstellung eines Kontos wird automatisch eine Bestätigungsmail mit Bestätigungslink an den Kunden versendet. Unaktivierte Konten können nach einem bestimmten Interval automatisch gelöscht werden.
83
 
174
 
175
  == Changelog ==
176
 
177
+ = 1.4.6 =
178
+ * Feature - set free shipping option for products do disable "plus shipping costs" notice
179
+ * Feature - forwarding fee for cash on delivery
180
+ * Feature - better WPML compatibility
181
+ * Feature - better virtual vat calculation (if enabled)
182
+ * Fix - payment methods shortcode to include payment fees
183
+ * Fix - remove order total html for better compatibility
184
+ * Fix - show notices (theme, pro) in backend only after major releases
185
+ * Fix - clear cart after order (if customer cancellations of orders has been disabled)
186
+ * Fix - variable products delivery time removal (admin screen)
187
+ * Fix - tour hide referer improvement
188
+
189
  = 1.4.5 =
190
  * Feature - WC_GZD_Product_Variable object containing get_variation_unit_price with min max option
191
  * Fix - virtual vat calculation (vat exempt compatibility)
templates/global/payment-methods.php CHANGED
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
21
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
22
  <?php if ( $gateway->has_fields() || $gateway->get_description() ) : ?>
23
  <div class="payment_box payment_method_<?php echo $gateway->id; ?>">
24
- <?php echo $gateway->payment_fields(); ?>
25
  </div>
26
  <?php endif;?>
27
  </li>
21
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
22
  <?php if ( $gateway->has_fields() || $gateway->get_description() ) : ?>
23
  <div class="payment_box payment_method_<?php echo $gateway->id; ?>">
24
+ <p><?php echo $gateway->get_description(); ?></p>
25
  </div>
26
  <?php endif;?>
27
  </li>
templates/single-product/legal-info.php CHANGED
@@ -16,7 +16,7 @@ global $product;
16
  <?php if ( $product->gzd_product->get_tax_info() && get_option( 'woocommerce_gzd_display_product_detail_tax_info' ) == 'yes' ) : ?>
17
  <span class="wc-gzd-additional-info tax-info"><?php echo $product->gzd_product->get_tax_info(); ?></span>
18
  <?php elseif ( ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' && get_option( 'woocommerce_gzd_display_product_detail_small_enterprise' ) == 'yes' ) ) : ?>
19
- <span class="wc-gzd-additional-info small-business-info"><?php _e( 'VAT free based on &#167;19 UStG', 'woocommerce-germanized' );?></span>
20
  <?php endif; ?>
21
  <?php if ( $product->gzd_product->get_shipping_costs_html() && get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' ) : ?>
22
  <span class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->gzd_product->get_shipping_costs_html();?></span>
16
  <?php if ( $product->gzd_product->get_tax_info() && get_option( 'woocommerce_gzd_display_product_detail_tax_info' ) == 'yes' ) : ?>
17
  <span class="wc-gzd-additional-info tax-info"><?php echo $product->gzd_product->get_tax_info(); ?></span>
18
  <?php elseif ( ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' && get_option( 'woocommerce_gzd_display_product_detail_small_enterprise' ) == 'yes' ) ) : ?>
19
+ <span class="wc-gzd-additional-info small-business-info"><?php _e( 'VAT free based on &#167;19 UStG', 'woocommerce-germanized' );?></span>
20
  <?php endif; ?>
21
  <?php if ( $product->gzd_product->get_shipping_costs_html() && get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' ) : ?>
22
  <span class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->gzd_product->get_shipping_costs_html();?></span>
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.4.5
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.4.5';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
@@ -129,7 +129,6 @@ final class WooCommerce_Germanized {
129
  add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
130
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
131
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
132
- add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_cart' ), 0 );
133
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_product_factory' ), PHP_INT_MAX );
134
 
135
  // Loaded action
@@ -181,10 +180,6 @@ final class WooCommerce_Germanized {
181
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
182
  // Unsure wether this could lead to future problems - tax classes with same name wont be merged anylonger
183
  //add_filter( 'woocommerce_rate_code', array( $this, 'prevent_tax_name_merge' ), PHP_INT_MAX, 2 );
184
-
185
- // Adjust virtual Product Price and tax class
186
- add_filter( 'woocommerce_cart_product_subtotal', array( $this, 'set_virtual_cart_subtotal' ), 20, 4 );
187
- add_filter( 'woocommerce_get_price_including_tax', array( $this, 'set_virtual_price_for_vat_exempts' ), 10, 3 );
188
 
189
  // Fallback gzd_product injection if not using wc_get_product
190
  add_filter( 'get_post_metadata', array( $this, 'inject_gzd_product' ), 0, 4 );
@@ -332,7 +327,9 @@ final class WooCommerce_Germanized {
332
 
333
  include_once ( 'includes/class-wc-gzd-wpml-helper.php' );
334
  include_once ( 'includes/wc-gzd-cart-functions.php' );
 
335
  include_once ( 'includes/class-wc-gzd-checkout.php' );
 
336
 
337
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
338
  $this->ekomi = new WC_GZD_Ekomi();
@@ -464,14 +461,6 @@ final class WooCommerce_Germanized {
464
  return $metadata;
465
  }
466
 
467
- /**
468
- * Replace the default WC_Cart by WC_GZD_Cart for EU virtual VAT rules.
469
- */
470
- public function replace_woocommerce_cart() {
471
- if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' && ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ) )
472
- WC()->cart = new WC_GZD_Cart();
473
- }
474
-
475
  /**
476
  * Overload product factory to inject gzd_product
477
  */
@@ -763,6 +752,10 @@ final class WooCommerce_Germanized {
763
  if ( $new_order = $this->emails->get_email_instance_by_id( 'new_order' ) )
764
  $new_order->trigger( $order->id );
765
 
 
 
 
 
766
  do_action( 'woocommerce_germanized_order_confirmation_sent', $order->id );
767
 
768
  return $result;
@@ -824,87 +817,6 @@ final class WooCommerce_Germanized {
824
  return false;
825
  }
826
 
827
- /**
828
- * Adjust line subtotal for virtual products
829
- */
830
- public function set_virtual_cart_subtotal( $product_subtotal, $_product, $quantity, $cart ) {
831
-
832
- if ( ! $_product->gzd_product->is_virtual_vat_exception() || ! $cart->is_virtual_taxable() )
833
- return $product_subtotal;
834
-
835
- if ( WC()->cart->prices_include_tax ) {
836
-
837
- /**
838
- * Calculate new net price based on item tax rates
839
- */
840
- if ( WC()->customer && WC()->customer->is_vat_exempt() ) {
841
-
842
- $tax_rates = array();
843
- $shop_tax_rates = array();
844
-
845
- // Get base tax rates
846
- if ( empty( $shop_tax_rates[ $_product->tax_class ] ) ) {
847
- $shop_tax_rates[ $_product->tax_class ] = WC_Tax::get_base_tax_rates( $_product->tax_class );
848
- }
849
-
850
- // Get item tax rates
851
- if ( empty( $tax_rates[ $_product->get_tax_class() ] ) ) {
852
- $tax_rates[ $_product->get_tax_class() ] = WC_Tax::get_rates( $_product->get_tax_class() );
853
- }
854
-
855
- $base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
856
- $item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
857
-
858
- $taxes = WC_Tax::calc_tax( $_product->get_price(), $item_tax_rates, true, true );
859
- $product_subtotal = $_product->get_price() - array_sum( $taxes );
860
-
861
- } else {
862
-
863
- $product_subtotal = $_product->get_price() * $quantity;
864
-
865
- }
866
-
867
- }
868
-
869
- return wc_price( $product_subtotal );
870
-
871
- }
872
-
873
- /**
874
- * Adjust prices (including tax) for virtual products
875
- */
876
- public function set_virtual_price_for_vat_exempts( $price, $qty, $product ) {
877
-
878
- if ( $product->gzd_product && $product->gzd_product->is_virtual_vat_exception() && $product->is_taxable() ) {
879
-
880
- if ( get_option( 'woocommerce_prices_include_tax' ) === 'yes' ) {
881
-
882
- if ( ! empty( WC()->customer ) && WC()->customer->is_vat_exempt() ) {
883
-
884
- $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
885
- $base_tax_rates = WC_Tax::get_base_tax_rates( $product->tax_class );
886
-
887
- // Add default rates to get original gross price
888
- $base_taxes = WC_Tax::calc_tax( $price, $base_tax_rates );
889
- $base_tax_amount = array_sum( $base_taxes );
890
- $price = round( $price + $base_tax_amount, wc_get_price_decimals() );
891
-
892
- // Substract product tax rates (e.g. 20 percent if customer is from AT)
893
- $product_tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
894
- $product_taxes = WC_Tax::calc_tax( $price, $product_tax_rates, true, true );
895
- $product_tax_amount = array_sum( $product_taxes );
896
- $price = round( $price - $product_tax_amount, wc_get_price_decimals() );
897
-
898
- }
899
-
900
- }
901
-
902
- }
903
-
904
- return $price;
905
-
906
- }
907
-
908
  /**
909
  * Improve tax display within order totals
910
  *
@@ -941,8 +853,8 @@ final class WooCommerce_Germanized {
941
  if ( ! empty( $tax_array ) ) {
942
  foreach ( $tax_array as $tax ) {
943
  $order_totals['tax_' . $tax['tax']->label] = array(
944
- 'label' => '<span class="tax small tax-label">' . ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), wc_gzd_format_tax_rate_percentage( $tax[ 'tax' ]->rate ) ) : __( 'incl. VAT', 'woocommerce-germanized' ) ) . '</span>',
945
- 'value' => '<span class="tax small tax-value">' . wc_price( $tax[ 'amount' ] ) . '</span>'
946
  );
947
  }
948
  }
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.4.6
7
  * Author: Vendidero
8
  * Author URI: https://vendidero.de
9
  * Requires at least: 3.8
26
  *
27
  * @var string
28
  */
29
+ public $version = '1.4.6';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
129
  add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
130
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
131
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
 
132
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_product_factory' ), PHP_INT_MAX );
133
 
134
  // Loaded action
180
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
181
  // Unsure wether this could lead to future problems - tax classes with same name wont be merged anylonger
182
  //add_filter( 'woocommerce_rate_code', array( $this, 'prevent_tax_name_merge' ), PHP_INT_MAX, 2 );
 
 
 
 
183
 
184
  // Fallback gzd_product injection if not using wc_get_product
185
  add_filter( 'get_post_metadata', array( $this, 'inject_gzd_product' ), 0, 4 );
327
 
328
  include_once ( 'includes/class-wc-gzd-wpml-helper.php' );
329
  include_once ( 'includes/wc-gzd-cart-functions.php' );
330
+ include_once ( 'includes/wc-gzd-order-functions.php' );
331
  include_once ( 'includes/class-wc-gzd-checkout.php' );
332
+ include_once ( 'includes/class-wc-gzd-virtual-vat-helper.php' );
333
 
334
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
335
  $this->ekomi = new WC_GZD_Ekomi();
461
  return $metadata;
462
  }
463
 
 
 
 
 
 
 
 
 
464
  /**
465
  * Overload product factory to inject gzd_product
466
  */
752
  if ( $new_order = $this->emails->get_email_instance_by_id( 'new_order' ) )
753
  $new_order->trigger( $order->id );
754
 
755
+ // Always clear cart after order success
756
+ if ( get_option( 'woocommerce_gzd_checkout_stop_order_cancellation' ) === 'yes' )
757
+ WC()->cart->empty_cart();
758
+
759
  do_action( 'woocommerce_germanized_order_confirmation_sent', $order->id );
760
 
761
  return $result;
817
  return false;
818
  }
819
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
820
  /**
821
  * Improve tax display within order totals
822
  *
853
  if ( ! empty( $tax_array ) ) {
854
  foreach ( $tax_array as $tax ) {
855
  $order_totals['tax_' . $tax['tax']->label] = array(
856
+ 'label' => ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), wc_gzd_format_tax_rate_percentage( $tax[ 'tax' ]->rate ) ) : __( 'incl. VAT', 'woocommerce-germanized' ) ),
857
+ 'value' => wc_price( $tax[ 'amount' ] )
858
  );
859
  }
860
  }
wpml-config.xml CHANGED
@@ -1,6 +1,7 @@
1
  <wpml-config>
2
  <admin-texts>
3
  <key name="woocommerce_gzd_shipping_costs_text" />
 
4
  <key name="woocommerce_gzd_order_submit_btn_text" />
5
  <key name="woocommerce_gzd_delivery_time_text" />
6
  <key name="woocommerce_gzd_unit_price_text" />
1
  <wpml-config>
2
  <admin-texts>
3
  <key name="woocommerce_gzd_shipping_costs_text" />
4
+ <key name="woocommerce_gzd_free_shipping_text" />
5
  <key name="woocommerce_gzd_order_submit_btn_text" />
6
  <key name="woocommerce_gzd_delivery_time_text" />
7
  <key name="woocommerce_gzd_unit_price_text" />