WooCommerce Germanized - Version 1.1.0

Version Description

Download this release

Release Info

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

Code changes from version 1.0.5 to 1.1.0

Files changed (36) hide show
  1. assets/js/add-to-cart-variation.js +1 -1
  2. assets/js/checkout.js +2 -3
  3. i18n/languages/woocommerce-germanized-de_DE.mo +0 -0
  4. i18n/languages/woocommerce-germanized-de_DE.po +144 -83
  5. includes/abstracts/abstract-wc-gzd-product.php +38 -30
  6. includes/admin/class-wc-gzd-admin-welcome.php +19 -6
  7. includes/admin/class-wc-gzd-admin.php +1 -1
  8. includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php +1 -1
  9. includes/admin/settings/class-wc-gzd-settings-germanized.php +38 -0
  10. includes/class-wc-gzd-cart.php +2 -2
  11. includes/class-wc-gzd-checkout.php +35 -1
  12. includes/class-wc-gzd-emails.php +17 -11
  13. includes/class-wc-gzd-install.php +1 -0
  14. includes/class-wc-gzd-product-external.php +0 -41
  15. includes/class-wc-gzd-product-grouped.php +0 -41
  16. includes/class-wc-gzd-product-simple.php +0 -41
  17. includes/class-wc-gzd-product-variable.php +0 -41
  18. includes/class-wc-gzd-product-variation.php +1 -18
  19. includes/class-wc-gzd-trusted-shops.php +16 -14
  20. includes/wc-gzd-cart-functions.php +3 -3
  21. includes/wc-gzd-core-functions.php +27 -0
  22. includes/wc-gzd-template-functions.php +7 -8
  23. includes/wc-gzd-template-hooks.php +2 -1
  24. readme.txt +10 -2
  25. templates/checkout/form-pay.php +1 -1
  26. templates/checkout/review-order.php +8 -3
  27. templates/emails/customer-trusted-shops.php +1 -1
  28. templates/emails/email-footer-attachment.php +4 -3
  29. templates/single-product/delivery-time-info.php +2 -3
  30. templates/single-product/legal-info.php +4 -4
  31. templates/single-product/price-unit.php +2 -2
  32. templates/single-product/price.php +0 -24
  33. templates/single-product/shipping-costs-info.php +2 -2
  34. templates/single-product/small-business-info.php +0 -1
  35. templates/single-product/tax-info.php +3 -2
  36. woocommerce-germanized.php +80 -15
assets/js/add-to-cart-variation.js CHANGED
@@ -41,7 +41,7 @@
41
  $('p.delivery-time-info').html( variation.delivery_time ).addClass('variation_modified').show();
42
  if ( variation.unit_price != '' ) {
43
  $('.type-product .price-unit').remove();
44
- $('.type-product .offer').after('<p class="price price-unit smaller variation_modified">' + variation.unit_price + '</p>').show();
45
  }
46
  })
47
 
41
  $('p.delivery-time-info').html( variation.delivery_time ).addClass('variation_modified').show();
42
  if ( variation.unit_price != '' ) {
43
  $('.type-product .price-unit').remove();
44
+ $('.type-product div[itemprop="offers"]').after('<p class="price price-unit smaller variation_modified">' + variation.unit_price + '</p>').show();
45
  }
46
  })
47
 
assets/js/checkout.js CHANGED
@@ -1,6 +1,5 @@
1
  jQuery( function( $ ) {
2
- $( '.payment_methods' ).addClass( 'update_totals_on_change' );
3
- $( 'body' ).bind( 'updated_checkout', function() {
4
- $( '.payment_methods' ).addClass( 'update_totals_on_change' );
5
  });
6
  });
1
  jQuery( function( $ ) {
2
+ $( document ).on( 'change', '.payment_methods input[name="payment_method"]', function() {
3
+ $( 'body' ).trigger( 'update_checkout' );
 
4
  });
5
  });
i18n/languages/woocommerce-germanized-de_DE.mo CHANGED
Binary file
i18n/languages/woocommerce-germanized-de_DE.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: WooCommerce Germanized v1.0.5\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
- "PO-Revision-Date: 2014-12-25 16:00:51+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -75,14 +75,14 @@ msgstr "ml"
75
  msgid "l"
76
  msgstr "l"
77
 
78
- #: includes/abstracts/abstract-wc-gzd-product.php:83
79
- #: woocommerce-germanized.php:676
80
  #, php-format
81
  #@ woocommerce-germanized
82
  msgid "incl. %s VAT"
83
  msgstr "inkl. %s MwSt."
84
 
85
- #: includes/abstracts/abstract-wc-gzd-product.php:83
86
  #, php-format
87
  #@ woocommerce-germanized
88
  msgid "excl. %s VAT"
@@ -98,7 +98,7 @@ msgstr "Über WooCommerce Germanized"
98
  msgid "Welcome to WooCommerce Germanized"
99
  msgstr "Willkommen bei WooCommerce Germanized"
100
 
101
- #: includes/admin/class-wc-gzd-admin-welcome.php:217
102
  #@ woocommerce-germanized
103
  msgid "Go to WooCommerce Germanized Settings"
104
  msgstr "zu den WooCommerce Germanized Einstellungen"
@@ -143,7 +143,7 @@ msgstr "Einheit"
143
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:36
144
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:64
145
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:53
146
- #: includes/class-wc-gzd-trusted-shops.php:348
147
  #@ woocommerce-germanized
148
  msgid "None"
149
  msgstr "Keine"
@@ -201,7 +201,7 @@ msgstr "Allgemeine Optionen"
201
  msgid "Display Options"
202
  msgstr "Anzeige Optionen"
203
 
204
- #: includes/class-wc-gzd-trusted-shops.php:494
205
  #@ woocommerce-germanized
206
  msgctxt "trusted-shops"
207
  msgid "Trusted Shops Options"
@@ -233,7 +233,7 @@ msgstr "Umsatzsteuerbefreit nach &#167;19 UStG"
233
  #, php-format
234
  #@ woocommerce-germanized
235
  msgid "set this Option if you have chosen <a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>"
236
- msgstr "wählen Sie diese Option, falls Sie von der Kleinunternehmerregelung (<a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>) Gebrauch machen"
237
 
238
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:78
239
  #@ woocommerce-germanized
@@ -510,67 +510,67 @@ msgstr "MwSt. Hinweis"
510
  msgid "Checkout & Cart"
511
  msgstr "Checkout & Warenkorb"
512
 
513
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:441
514
  #@ woocommerce-germanized
515
  msgid "Checkout Legal Display"
516
  msgstr "Checkbox oder Text"
517
 
518
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:442
519
  #@ woocommerce-germanized
520
  msgid "Use Text without Checkbox"
521
  msgstr "Rechtshinweis ohne Checkbox"
522
 
523
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:444
524
  #@ woocommerce-germanized
525
  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)."
526
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
527
 
528
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:450
529
  #@ woocommerce-germanized
530
  msgid "Legal Text"
531
  msgstr "Rechtlicher Hinweistext"
532
 
533
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:451
534
  #@ woocommerce-germanized
535
  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."
536
  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."
537
 
538
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:453
539
  #@ woocommerce-germanized
540
  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}."
541
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
542
 
543
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:460
544
  #@ woocommerce-germanized
545
  msgid "Legal Text Error"
546
  msgstr "Fehlermeldung der Checkbox"
547
 
548
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:461
549
  #@ woocommerce-germanized
550
  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."
551
  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}"
552
 
553
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:463
554
  #@ woocommerce-germanized
555
  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}."
556
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
557
 
558
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:480
559
  #@ woocommerce-germanized
560
  msgid "Order Success Text"
561
  msgstr "Bestellung eingegangen"
562
 
563
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:481
564
  #@ woocommerce-germanized
565
  msgid "Choose a custom text to display on order success page."
566
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
567
 
568
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:489
569
  #@ woocommerce-germanized
570
  msgid "Order Success Data"
571
  msgstr "Bestellbestätigungs-Daten"
572
 
573
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:490
574
  #@ woocommerce-germanized
575
  msgid "Hide product table and customer data on order success page"
576
  msgstr "Zusätzliche Produktdetails (Tabelle, Kundeninformationen) von der Bestellbestätigungs-Seite entfernen"
@@ -743,7 +743,7 @@ msgctxt "ekomi"
743
  msgid "Number of days between an order being marked as completed and review email to customer."
744
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
745
 
746
- #: includes/class-wc-gzd-emails.php:109
747
  #@ woocommerce-germanized
748
  msgctxt "revocation-form"
749
  msgid "Forward your Revocation online"
@@ -755,73 +755,73 @@ msgstr "Ihren Widerruf online erklären"
755
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
756
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
757
 
758
- #: includes/class-wc-gzd-install.php:312
759
  #@ woocommerce-germanized
760
  msgctxt "Page slug"
761
  msgid "data-security"
762
  msgstr "datenschutzbelehrung"
763
 
764
- #: includes/class-wc-gzd-install.php:313
765
  #@ woocommerce-germanized
766
  msgctxt "Page title"
767
  msgid "Data Security Statement"
768
  msgstr "Datenschutzbelehrung"
769
 
770
- #: includes/class-wc-gzd-install.php:317
771
  #@ woocommerce-germanized
772
  msgctxt "Page slug"
773
  msgid "imprint"
774
  msgstr "impressum"
775
 
776
- #: includes/class-wc-gzd-install.php:318
777
  #@ woocommerce-germanized
778
  msgctxt "Page title"
779
  msgid "Imprint"
780
  msgstr "Impressum"
781
 
782
- #: includes/class-wc-gzd-install.php:322
783
  #@ woocommerce-germanized
784
  msgctxt "Page slug"
785
  msgid "terms"
786
  msgstr "agb"
787
 
788
- #: includes/class-wc-gzd-install.php:323
789
  #@ woocommerce-germanized
790
  msgctxt "Page title"
791
  msgid "Terms & Conditions"
792
  msgstr "AGB"
793
 
794
- #: includes/class-wc-gzd-install.php:327
795
  #@ woocommerce-germanized
796
  msgctxt "Page slug"
797
  msgid "revocation"
798
  msgstr "widerrufsbelehrung"
799
 
800
- #: includes/class-wc-gzd-install.php:328
801
  #@ woocommerce-germanized
802
  msgctxt "Page title"
803
  msgid "Power of Revocation"
804
  msgstr "Widerrufsbelehrung"
805
 
806
- #: includes/class-wc-gzd-install.php:337
807
  #@ woocommerce-germanized
808
  msgctxt "Page slug"
809
  msgid "payment-methods"
810
  msgstr "bezahlmoeglichkeiten"
811
 
812
- #: includes/class-wc-gzd-install.php:338
813
  #@ woocommerce-germanized
814
  msgctxt "Page title"
815
  msgid "Payment Methods"
816
  msgstr "Zahlungsmethoden"
817
 
818
- #: includes/class-wc-gzd-install.php:332
819
  #@ woocommerce-germanized
820
  msgctxt "Page slug"
821
  msgid "shipping-methods"
822
  msgstr "versandmethoden"
823
 
824
- #: includes/class-wc-gzd-install.php:333
825
  #@ woocommerce-germanized
826
  msgctxt "Page title"
827
  msgid "Shipping Methods"
@@ -1012,27 +1012,27 @@ msgctxt "trusted-shops"
1012
  msgid "Financing"
1013
  msgstr "Finanzierung"
1014
 
1015
- #: includes/class-wc-gzd-trusted-shops.php:219
1016
  #, php-format
1017
  #@ woocommerce-germanized
1018
  msgctxt "trusted-shops"
1019
  msgid "Rated %s out of %s"
1020
  msgstr "Bewertet mit %s von %s"
1021
 
1022
- #: includes/class-wc-gzd-trusted-shops.php:221
1023
  #, php-format
1024
  #@ woocommerce-germanized
1025
  msgctxt "trusted-shops"
1026
  msgid "out of %s"
1027
  msgstr "von %s"
1028
 
1029
- #: includes/class-wc-gzd-trusted-shops.php:352
1030
  #@ woocommerce-germanized
1031
  msgctxt "trusted-shops"
1032
  msgid "Trusted Shops Integration"
1033
  msgstr "Trusted Shops Integration"
1034
 
1035
- #: includes/class-wc-gzd-trusted-shops.php:448
1036
  #, php-format
1037
  #@ woocommerce-germanized
1038
  msgctxt "trusted-shops"
@@ -1121,23 +1121,23 @@ msgstr "Zahlungsgebühr"
1121
  msgid "incl. %s%% VAT"
1122
  msgstr "inkl. %s%% MwSt."
1123
 
1124
- #: includes/wc-gzd-template-functions.php:162
1125
  #@ woocommerce-germanized
1126
  msgid "Edit Order"
1127
  msgstr "Bestellung bearbeiten"
1128
 
1129
- #: includes/wc-gzd-template-functions.php:173
1130
  #@ woocommerce-germanized
1131
  msgid "Choose a Payment Gateway"
1132
  msgstr "Zahlungsmethode auswählen"
1133
 
1134
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:473
1135
  #: includes/wc-gzd-cart-functions.php:104
1136
  #@ woocommerce-germanized
1137
  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."
1138
  msgstr "Ja, ich möchte sofort Zugang zu dem digitalen Inhalt und weiß, dass mein Widerrufsrecht mit dem Zugang erlischt."
1139
 
1140
- #: includes/wc-gzd-template-functions.php:231
1141
  #@ woocommerce-germanized
1142
  msgid "To get immediate access to digital content you have to agree to the losal of your right to cancel."
1143
  msgstr "Um direkten Zugang zu den digitalen Inhalte zu erhalten, müssen Sie auf das Widerrufsrecht verzichten."
@@ -1157,12 +1157,12 @@ msgctxt "trusted-shops"
1157
  msgid "Trusted Shops Reviews"
1158
  msgstr "Trusted Shops Bewertung"
1159
 
1160
- #: templates/checkout/review-order.php:111
1161
  #@ woocommerce
1162
  msgid "Cart Subtotal"
1163
  msgstr "Zwischensumme"
1164
 
1165
- #: templates/checkout/review-order.php:165
1166
  #@ woocommerce
1167
  msgid "Order Total"
1168
  msgstr "Gesamtsumme"
@@ -1194,23 +1194,23 @@ msgstr "Es tut uns Leid! Leider gibt es für Sie aktuell keine passende Zahlungs
1194
  msgid "Your order"
1195
  msgstr "Ihre Bestellung"
1196
 
1197
- #: templates/checkout/review-order.php:176
1198
  #@ woocommerce
1199
  msgid "Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so."
1200
  msgstr "Da Ihr Browser kein JavaScript erlaubt, denken Sie bitte daran, auf \"Gesamtsumme aktualisieren\" zu klicken, bevor Sie den Auftrag absenden. "
1201
 
1202
- #: templates/checkout/review-order.php:176
1203
  #@ woocommerce
1204
  msgid "Update totals"
1205
  msgstr "Gesamtsumme aktualisieren"
1206
 
1207
- #: templates/checkout/review-order.php:192
1208
  #, php-format
1209
  #@ woocommerce
1210
  msgid "I&rsquo;ve read and accept the <a href=\"%s\" target=\"_blank\">terms &amp; conditions</a>"
1211
  msgstr "Ich habe die <a href=\"%s\" target=\"_blank\">Allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiert."
1212
 
1213
- #: templates/checkout/review-order.php:183
1214
  #@ woocommerce
1215
  msgid "Place order"
1216
  msgstr "Jetzt kaufen"
@@ -1290,17 +1290,17 @@ msgctxt "revocation-form"
1290
  msgid "Forward Revocation"
1291
  msgstr "Widerruf erklären"
1292
 
1293
- #: templates/single-product/small-business-info.php:15
1294
  #@ woocommerce-germanized
1295
  msgid "VAT free based on &#167;19 UStG"
1296
  msgstr "Umsatzsteuerbefreit nach &#167;19 UStG"
1297
 
1298
- #: woocommerce-germanized.php:464
1299
  #@ woocommerce
1300
  msgid "Settings"
1301
  msgstr "Einstellungen"
1302
 
1303
- #: woocommerce-germanized.php:654
1304
  #@ woocommerce
1305
  msgid "Order Total:"
1306
  msgstr "Gesamtsumme"
@@ -1360,112 +1360,112 @@ msgstr ""
1360
  msgid "Pay for order"
1361
  msgstr ""
1362
 
1363
- #: includes/class-wc-gzd-trusted-shops.php:218
1364
  #, php-format
1365
  #@ woocommerce-germanized
1366
  msgctxt "trusted-shops"
1367
  msgid "%s ratings"
1368
  msgstr "Bewertungen von %s"
1369
 
1370
- #: includes/class-wc-gzd-trusted-shops.php:240
1371
  #@ woocommerce-germanized
1372
  msgctxt "trusted-shops"
1373
  msgid "Show customer reviews"
1374
  msgstr "Kundenmeinungen ansehen"
1375
 
1376
- #: includes/class-wc-gzd-trusted-shops.php:290
1377
  #@ woocommerce-germanized
1378
  msgctxt "trusted-shops"
1379
  msgid "Trusted Shops Customer Reviews"
1380
  msgstr "Trusted Shops Kundenbewertungen"
1381
 
1382
- #: includes/class-wc-gzd-trusted-shops.php:355
1383
  #@ woocommerce-germanized
1384
  msgctxt "trusted-shops"
1385
  msgid "TS-ID"
1386
  msgstr "TS-ID"
1387
 
1388
- #: includes/class-wc-gzd-trusted-shops.php:356
1389
  #@ woocommerce-germanized
1390
  msgctxt "trusted-shops"
1391
  msgid "Insert your Trusted Shops ID here."
1392
  msgstr "Füge hier deine Trusted Shops ID ein."
1393
 
1394
- #: includes/class-wc-gzd-trusted-shops.php:365
1395
  #@ woocommerce-germanized
1396
  msgctxt "trusted-shops"
1397
  msgid "Configure the Trustbadge for your shop"
1398
  msgstr "Konfiguriere dein Trustbadge"
1399
 
1400
- #: includes/class-wc-gzd-trusted-shops.php:365
1401
  #, php-format
1402
  #@ woocommerce-germanized
1403
  msgctxt "trusted-shops"
1404
  msgid "You'll find a step-by-step instruction for your shopsoftware in our integration center. <a href=\"%s\" target=\"_blank\">Click here</a>"
1405
  msgstr "In unserem Integration Center findest du eine Schritt-für-Schritt Anleitung. Klicke <a href=\"%s\" target=\"_blank\">hier</a>."
1406
 
1407
- #: includes/class-wc-gzd-trusted-shops.php:368
1408
  #@ woocommerce-germanized
1409
  msgctxt "trusted-shops"
1410
  msgid "Trustbadge code"
1411
  msgstr "Trustbadge Code"
1412
 
1413
- #: includes/class-wc-gzd-trusted-shops.php:371
1414
  #@ woocommerce-germanized
1415
  msgctxt "trusted-shops"
1416
  msgid "Fill in your trustbadge code here"
1417
  msgstr "Trustbadge Code hier einfügen"
1418
 
1419
- #: includes/class-wc-gzd-trusted-shops.php:371
1420
  #@ woocommerce-germanized
1421
  msgctxt "trusted-shops"
1422
  msgid "If no further steps were required in the integration center, the Trustbadge is already displayed in your shop."
1423
  msgstr "Sofern keine weiteren Installationsschritte im Integration Center beschrieben wurden, wird das Trustbadge jetzt im Frontend deines Shops angezeigt."
1424
 
1425
- #: includes/class-wc-gzd-trusted-shops.php:378
1426
  #@ woocommerce-germanized
1427
  msgctxt "trusted-shops"
1428
  msgid "Configure Customer Reviews"
1429
  msgstr "Kundenbewertungen konfigurieren"
1430
 
1431
- #: includes/class-wc-gzd-trusted-shops.php:381
1432
  #@ woocommerce-germanized
1433
  msgctxt "trusted-shops"
1434
  msgid "Enable Review Widget"
1435
  msgstr "Kundenbewertungswidget aktiveren"
1436
 
1437
- #: includes/class-wc-gzd-trusted-shops.php:382
1438
  #, php-format
1439
  #@ woocommerce-germanized
1440
  msgctxt "trusted-shops"
1441
  msgid "This option will enable a Widget which shows your Trusted Shops Reviews as a graphic. You may configure your Widgets <a href=\"%s\">here</a>."
1442
  msgstr "Diese Option aktiviert ein Widget, mit dem du das Trusted Shops Review Widget in deinem Shop platzieren kannst. <a href=\"%s\">Hier</a> kannst du deine Widgets zuweisen."
1443
 
1444
- #: includes/class-wc-gzd-trusted-shops.php:390
1445
  #@ woocommerce-germanized
1446
  msgctxt "trusted-shops"
1447
  msgid "Enable Rich Snippets for Google"
1448
  msgstr "Rich Snippets Anzeige in Google aktivieren"
1449
 
1450
- #: includes/class-wc-gzd-trusted-shops.php:391
1451
  #@ woocommerce-germanized
1452
  msgctxt "trusted-shops"
1453
  msgid "This option will update your reviews received via Trusted Shops once per day and enables a Widget to show your reviews as Rich Snippets."
1454
  msgstr "Diese Option bewirkt, dass deine über Trusted Shops empfangenen Bewertungen als Rich Snippets im Shop als Widget verfügbar sind. "
1455
 
1456
- #: includes/class-wc-gzd-trusted-shops.php:418
1457
  #@ woocommerce-germanized
1458
  msgctxt "trusted-shops"
1459
  msgid "Assign payment methods"
1460
  msgstr "Zahlungsmethoden zuweisen"
1461
 
1462
- #: includes/class-wc-gzd-trusted-shops.php:467
1463
  #@ woocommerce-germanized
1464
  msgctxt "trusted-shops"
1465
  msgid "About Trusted Shops"
1466
  msgstr "Über Trusted Shops"
1467
 
1468
- #: includes/wc-gzd-template-functions.php:142
1469
  #@ woocommerce
1470
  msgid "Proceed to Checkout"
1471
  msgstr ""
@@ -1483,19 +1483,19 @@ msgctxt "trusted-shops"
1483
  msgid "Trusted Shops Rich Snippets"
1484
  msgstr "Trusted Shops Rich Snippets"
1485
 
1486
- #: includes/class-wc-gzd-trusted-shops.php:226
1487
  #, php-format
1488
  #@ woocommerce-germanized
1489
  msgctxt "trusted-shops"
1490
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1491
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1492
 
1493
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:433
1494
  #@ woocommerce-germanized
1495
  msgid "Checkout Table Color"
1496
  msgstr "Hintergrundfarbe der Tabelle"
1497
 
1498
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:435
1499
  #@ woocommerce-germanized
1500
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1501
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
@@ -1540,12 +1540,12 @@ msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCom
1540
  msgid "Check if fee is taxable."
1541
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1542
 
1543
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:470
1544
  #@ woocommerce-germanized
1545
  msgid "Legal Digital Text"
1546
  msgstr "Hinweis Digital"
1547
 
1548
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:471
1549
  #@ woocommerce-germanized
1550
  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."
1551
  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"
@@ -1580,25 +1580,25 @@ msgstr "Details"
1580
  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."
1581
  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."
1582
 
1583
- #: includes/class-wc-gzd-trusted-shops.php:399
1584
  #@ woocommerce-germanized
1585
  msgctxt "trusted-shops"
1586
  msgid "Enable Review Reminder"
1587
  msgstr "Bewertungserinnerung aktivieren"
1588
 
1589
- #: includes/class-wc-gzd-trusted-shops.php:400
1590
  #@ woocommerce-germanized
1591
  msgctxt "trusted-shops"
1592
  msgid "This option will enable a one-time email review reminder being sent to your customer."
1593
  msgstr "Diese Option sendet eine einmalige E-Mail Erinnerung bzgl. der Abgabe einer Bewertung über Trusted Shops an den Kunden."
1594
 
1595
- #: includes/class-wc-gzd-trusted-shops.php:408
1596
  #@ woocommerce-germanized
1597
  msgctxt "trusted-shops"
1598
  msgid "Days until reminder"
1599
  msgstr "Tage bis zur Erinnerung"
1600
 
1601
- #: includes/class-wc-gzd-trusted-shops.php:409
1602
  #@ woocommerce-germanized
1603
  msgctxt "trusted-shops"
1604
  msgid "Decide how many days after an order the email review reminder will be sent."
@@ -1677,19 +1677,20 @@ msgstr "Bugs oder Wünsche melden"
1677
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:421
1678
  #@ woocommerce-germanized
1679
  msgid "Shipping Costs for Virtual"
1680
- msgstr "Versandkosten für virtuelle Produkte"
1681
 
1682
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:422
1683
  #@ woocommerce-germanized
1684
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1685
- msgstr "Setze diese Option, falls du für virtuelle Produkte auch einen Versandkosten-Hinweis anzeigen möchtest."
1686
 
1687
- #: includes/abstracts/abstract-wc-gzd-product.php:82
 
1688
  #@ woocommerce-germanized
1689
  msgid "incl. VAT"
1690
  msgstr "inkl. MwSt."
1691
 
1692
- #: includes/abstracts/abstract-wc-gzd-product.php:82
1693
  #@ woocommerce-germanized
1694
  msgid "excl. VAT"
1695
  msgstr "exkl. MwSt."
@@ -1757,7 +1758,7 @@ msgstr "Dieser Text wird verwendet um den Einheitspreis darzustellen. Nutze {pri
1757
  msgid "{price}"
1758
  msgstr "{price}"
1759
 
1760
- #: includes/admin/settings/class-wc-gzd-settings-germanized.php:602
1761
  #@ woocommerce-germanized
1762
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1763
  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."
@@ -1778,3 +1779,63 @@ msgstr "Fügt ein Feld \"Anrede\" im Checkout hinzu."
1778
  msgid "1.0.5"
1779
  msgstr "1.0.5"
1780
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: WooCommerce Germanized v1.0.5\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2014-09-29 12:26+0100\n"
6
+ "PO-Revision-Date: 2015-01-24 16:31:30+0000\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
75
  msgid "l"
76
  msgstr "l"
77
 
78
+ #: includes/abstracts/abstract-wc-gzd-product.php:91
79
+ #: woocommerce-germanized.php:741
80
  #, php-format
81
  #@ woocommerce-germanized
82
  msgid "incl. %s VAT"
83
  msgstr "inkl. %s MwSt."
84
 
85
+ #: includes/abstracts/abstract-wc-gzd-product.php:91
86
  #, php-format
87
  #@ woocommerce-germanized
88
  msgid "excl. %s VAT"
98
  msgid "Welcome to WooCommerce Germanized"
99
  msgstr "Willkommen bei WooCommerce Germanized"
100
 
101
+ #: includes/admin/class-wc-gzd-admin-welcome.php:230
102
  #@ woocommerce-germanized
103
  msgid "Go to WooCommerce Germanized Settings"
104
  msgstr "zu den WooCommerce Germanized Einstellungen"
143
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:36
144
  #: includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php:64
145
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:53
146
+ #: includes/class-wc-gzd-trusted-shops.php:350
147
  #@ woocommerce-germanized
148
  msgid "None"
149
  msgstr "Keine"
201
  msgid "Display Options"
202
  msgstr "Anzeige Optionen"
203
 
204
+ #: includes/class-wc-gzd-trusted-shops.php:496
205
  #@ woocommerce-germanized
206
  msgctxt "trusted-shops"
207
  msgid "Trusted Shops Options"
233
  #, php-format
234
  #@ woocommerce-germanized
235
  msgid "set this Option if you have chosen <a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>"
236
+ msgstr "wähle diese Option, falls du von der Kleinunternehmerregelung (<a href=\"%s\" target=\"_blank\">&#167;19 UStG</a>) betroffen bist und davon Gebrauch machen willst."
237
 
238
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:78
239
  #@ woocommerce-germanized
510
  msgid "Checkout & Cart"
511
  msgstr "Checkout & Warenkorb"
512
 
513
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:468
514
  #@ woocommerce-germanized
515
  msgid "Checkout Legal Display"
516
  msgstr "Checkbox oder Text"
517
 
518
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:469
519
  #@ woocommerce-germanized
520
  msgid "Use Text without Checkbox"
521
  msgstr "Rechtshinweis ohne Checkbox"
522
 
523
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:471
524
  #@ woocommerce-germanized
525
  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)."
526
  msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
527
 
528
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:477
529
  #@ woocommerce-germanized
530
  msgid "Legal Text"
531
  msgstr "Rechtlicher Hinweistext"
532
 
533
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:478
534
  #@ woocommerce-germanized
535
  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."
536
  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."
537
 
538
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:480
539
  #@ woocommerce-germanized
540
  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}."
541
  msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
542
 
543
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:487
544
  #@ woocommerce-germanized
545
  msgid "Legal Text Error"
546
  msgstr "Fehlermeldung der Checkbox"
547
 
548
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:488
549
  #@ woocommerce-germanized
550
  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."
551
  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}"
552
 
553
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:490
554
  #@ woocommerce-germanized
555
  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}."
556
  msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
557
 
558
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:516
559
  #@ woocommerce-germanized
560
  msgid "Order Success Text"
561
  msgstr "Bestellung eingegangen"
562
 
563
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:517
564
  #@ woocommerce-germanized
565
  msgid "Choose a custom text to display on order success page."
566
  msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
567
 
568
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:525
569
  #@ woocommerce-germanized
570
  msgid "Order Success Data"
571
  msgstr "Bestellbestätigungs-Daten"
572
 
573
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:526
574
  #@ woocommerce-germanized
575
  msgid "Hide product table and customer data on order success page"
576
  msgstr "Zusätzliche Produktdetails (Tabelle, Kundeninformationen) von der Bestellbestätigungs-Seite entfernen"
743
  msgid "Number of days between an order being marked as completed and review email to customer."
744
  msgstr "Anzahl der Tage zwischen dem Datum an dem die Bestellung als \"abgeschlossen\" (completed) markiert wurde und dem Absenden der Bewertungseinladung an den Kunden"
745
 
746
+ #: includes/class-wc-gzd-emails.php:118
747
  #@ woocommerce-germanized
748
  msgctxt "revocation-form"
749
  msgid "Forward your Revocation online"
755
  msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
756
  msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
757
 
758
+ #: includes/class-wc-gzd-install.php:313
759
  #@ woocommerce-germanized
760
  msgctxt "Page slug"
761
  msgid "data-security"
762
  msgstr "datenschutzbelehrung"
763
 
764
+ #: includes/class-wc-gzd-install.php:314
765
  #@ woocommerce-germanized
766
  msgctxt "Page title"
767
  msgid "Data Security Statement"
768
  msgstr "Datenschutzbelehrung"
769
 
770
+ #: includes/class-wc-gzd-install.php:318
771
  #@ woocommerce-germanized
772
  msgctxt "Page slug"
773
  msgid "imprint"
774
  msgstr "impressum"
775
 
776
+ #: includes/class-wc-gzd-install.php:319
777
  #@ woocommerce-germanized
778
  msgctxt "Page title"
779
  msgid "Imprint"
780
  msgstr "Impressum"
781
 
782
+ #: includes/class-wc-gzd-install.php:323
783
  #@ woocommerce-germanized
784
  msgctxt "Page slug"
785
  msgid "terms"
786
  msgstr "agb"
787
 
788
+ #: includes/class-wc-gzd-install.php:324
789
  #@ woocommerce-germanized
790
  msgctxt "Page title"
791
  msgid "Terms & Conditions"
792
  msgstr "AGB"
793
 
794
+ #: includes/class-wc-gzd-install.php:328
795
  #@ woocommerce-germanized
796
  msgctxt "Page slug"
797
  msgid "revocation"
798
  msgstr "widerrufsbelehrung"
799
 
800
+ #: includes/class-wc-gzd-install.php:329
801
  #@ woocommerce-germanized
802
  msgctxt "Page title"
803
  msgid "Power of Revocation"
804
  msgstr "Widerrufsbelehrung"
805
 
806
+ #: includes/class-wc-gzd-install.php:338
807
  #@ woocommerce-germanized
808
  msgctxt "Page slug"
809
  msgid "payment-methods"
810
  msgstr "bezahlmoeglichkeiten"
811
 
812
+ #: includes/class-wc-gzd-install.php:339
813
  #@ woocommerce-germanized
814
  msgctxt "Page title"
815
  msgid "Payment Methods"
816
  msgstr "Zahlungsmethoden"
817
 
818
+ #: includes/class-wc-gzd-install.php:333
819
  #@ woocommerce-germanized
820
  msgctxt "Page slug"
821
  msgid "shipping-methods"
822
  msgstr "versandmethoden"
823
 
824
+ #: includes/class-wc-gzd-install.php:334
825
  #@ woocommerce-germanized
826
  msgctxt "Page title"
827
  msgid "Shipping Methods"
1012
  msgid "Financing"
1013
  msgstr "Finanzierung"
1014
 
1015
+ #: includes/class-wc-gzd-trusted-shops.php:224
1016
  #, php-format
1017
  #@ woocommerce-germanized
1018
  msgctxt "trusted-shops"
1019
  msgid "Rated %s out of %s"
1020
  msgstr "Bewertet mit %s von %s"
1021
 
1022
+ #: includes/class-wc-gzd-trusted-shops.php:226
1023
  #, php-format
1024
  #@ woocommerce-germanized
1025
  msgctxt "trusted-shops"
1026
  msgid "out of %s"
1027
  msgstr "von %s"
1028
 
1029
+ #: includes/class-wc-gzd-trusted-shops.php:354
1030
  #@ woocommerce-germanized
1031
  msgctxt "trusted-shops"
1032
  msgid "Trusted Shops Integration"
1033
  msgstr "Trusted Shops Integration"
1034
 
1035
+ #: includes/class-wc-gzd-trusted-shops.php:450
1036
  #, php-format
1037
  #@ woocommerce-germanized
1038
  msgctxt "trusted-shops"
1121
  msgid "incl. %s%% VAT"
1122
  msgstr "inkl. %s%% MwSt."
1123
 
1124
+ #: includes/wc-gzd-template-functions.php:161
1125
  #@ woocommerce-germanized
1126
  msgid "Edit Order"
1127
  msgstr "Bestellung bearbeiten"
1128
 
1129
+ #: includes/wc-gzd-template-functions.php:172
1130
  #@ woocommerce-germanized
1131
  msgid "Choose a Payment Gateway"
1132
  msgstr "Zahlungsmethode auswählen"
1133
 
1134
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:509
1135
  #: includes/wc-gzd-cart-functions.php:104
1136
  #@ woocommerce-germanized
1137
  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."
1138
  msgstr "Ja, ich möchte sofort Zugang zu dem digitalen Inhalt und weiß, dass mein Widerrufsrecht mit dem Zugang erlischt."
1139
 
1140
+ #: includes/wc-gzd-template-functions.php:230
1141
  #@ woocommerce-germanized
1142
  msgid "To get immediate access to digital content you have to agree to the losal of your right to cancel."
1143
  msgstr "Um direkten Zugang zu den digitalen Inhalte zu erhalten, müssen Sie auf das Widerrufsrecht verzichten."
1157
  msgid "Trusted Shops Reviews"
1158
  msgstr "Trusted Shops Bewertung"
1159
 
1160
+ #: templates/checkout/review-order.php:116
1161
  #@ woocommerce
1162
  msgid "Cart Subtotal"
1163
  msgstr "Zwischensumme"
1164
 
1165
+ #: templates/checkout/review-order.php:170
1166
  #@ woocommerce
1167
  msgid "Order Total"
1168
  msgstr "Gesamtsumme"
1194
  msgid "Your order"
1195
  msgstr "Ihre Bestellung"
1196
 
1197
+ #: templates/checkout/review-order.php:181
1198
  #@ woocommerce
1199
  msgid "Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so."
1200
  msgstr "Da Ihr Browser kein JavaScript erlaubt, denken Sie bitte daran, auf \"Gesamtsumme aktualisieren\" zu klicken, bevor Sie den Auftrag absenden. "
1201
 
1202
+ #: templates/checkout/review-order.php:181
1203
  #@ woocommerce
1204
  msgid "Update totals"
1205
  msgstr "Gesamtsumme aktualisieren"
1206
 
1207
+ #: templates/checkout/review-order.php:197
1208
  #, php-format
1209
  #@ woocommerce
1210
  msgid "I&rsquo;ve read and accept the <a href=\"%s\" target=\"_blank\">terms &amp; conditions</a>"
1211
  msgstr "Ich habe die <a href=\"%s\" target=\"_blank\">Allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiert."
1212
 
1213
+ #: templates/checkout/review-order.php:188
1214
  #@ woocommerce
1215
  msgid "Place order"
1216
  msgstr "Jetzt kaufen"
1290
  msgid "Forward Revocation"
1291
  msgstr "Widerruf erklären"
1292
 
1293
+ #: templates/single-product/small-business-info.php:14
1294
  #@ woocommerce-germanized
1295
  msgid "VAT free based on &#167;19 UStG"
1296
  msgstr "Umsatzsteuerbefreit nach &#167;19 UStG"
1297
 
1298
+ #: woocommerce-germanized.php:528
1299
  #@ woocommerce
1300
  msgid "Settings"
1301
  msgstr "Einstellungen"
1302
 
1303
+ #: woocommerce-germanized.php:719
1304
  #@ woocommerce
1305
  msgid "Order Total:"
1306
  msgstr "Gesamtsumme"
1360
  msgid "Pay for order"
1361
  msgstr ""
1362
 
1363
+ #: includes/class-wc-gzd-trusted-shops.php:223
1364
  #, php-format
1365
  #@ woocommerce-germanized
1366
  msgctxt "trusted-shops"
1367
  msgid "%s ratings"
1368
  msgstr "Bewertungen von %s"
1369
 
1370
+ #: includes/class-wc-gzd-trusted-shops.php:245
1371
  #@ woocommerce-germanized
1372
  msgctxt "trusted-shops"
1373
  msgid "Show customer reviews"
1374
  msgstr "Kundenmeinungen ansehen"
1375
 
1376
+ #: includes/class-wc-gzd-trusted-shops.php:292
1377
  #@ woocommerce-germanized
1378
  msgctxt "trusted-shops"
1379
  msgid "Trusted Shops Customer Reviews"
1380
  msgstr "Trusted Shops Kundenbewertungen"
1381
 
1382
+ #: includes/class-wc-gzd-trusted-shops.php:357
1383
  #@ woocommerce-germanized
1384
  msgctxt "trusted-shops"
1385
  msgid "TS-ID"
1386
  msgstr "TS-ID"
1387
 
1388
+ #: includes/class-wc-gzd-trusted-shops.php:358
1389
  #@ woocommerce-germanized
1390
  msgctxt "trusted-shops"
1391
  msgid "Insert your Trusted Shops ID here."
1392
  msgstr "Füge hier deine Trusted Shops ID ein."
1393
 
1394
+ #: includes/class-wc-gzd-trusted-shops.php:367
1395
  #@ woocommerce-germanized
1396
  msgctxt "trusted-shops"
1397
  msgid "Configure the Trustbadge for your shop"
1398
  msgstr "Konfiguriere dein Trustbadge"
1399
 
1400
+ #: includes/class-wc-gzd-trusted-shops.php:367
1401
  #, php-format
1402
  #@ woocommerce-germanized
1403
  msgctxt "trusted-shops"
1404
  msgid "You'll find a step-by-step instruction for your shopsoftware in our integration center. <a href=\"%s\" target=\"_blank\">Click here</a>"
1405
  msgstr "In unserem Integration Center findest du eine Schritt-für-Schritt Anleitung. Klicke <a href=\"%s\" target=\"_blank\">hier</a>."
1406
 
1407
+ #: includes/class-wc-gzd-trusted-shops.php:370
1408
  #@ woocommerce-germanized
1409
  msgctxt "trusted-shops"
1410
  msgid "Trustbadge code"
1411
  msgstr "Trustbadge Code"
1412
 
1413
+ #: includes/class-wc-gzd-trusted-shops.php:373
1414
  #@ woocommerce-germanized
1415
  msgctxt "trusted-shops"
1416
  msgid "Fill in your trustbadge code here"
1417
  msgstr "Trustbadge Code hier einfügen"
1418
 
1419
+ #: includes/class-wc-gzd-trusted-shops.php:373
1420
  #@ woocommerce-germanized
1421
  msgctxt "trusted-shops"
1422
  msgid "If no further steps were required in the integration center, the Trustbadge is already displayed in your shop."
1423
  msgstr "Sofern keine weiteren Installationsschritte im Integration Center beschrieben wurden, wird das Trustbadge jetzt im Frontend deines Shops angezeigt."
1424
 
1425
+ #: includes/class-wc-gzd-trusted-shops.php:380
1426
  #@ woocommerce-germanized
1427
  msgctxt "trusted-shops"
1428
  msgid "Configure Customer Reviews"
1429
  msgstr "Kundenbewertungen konfigurieren"
1430
 
1431
+ #: includes/class-wc-gzd-trusted-shops.php:383
1432
  #@ woocommerce-germanized
1433
  msgctxt "trusted-shops"
1434
  msgid "Enable Review Widget"
1435
  msgstr "Kundenbewertungswidget aktiveren"
1436
 
1437
+ #: includes/class-wc-gzd-trusted-shops.php:384
1438
  #, php-format
1439
  #@ woocommerce-germanized
1440
  msgctxt "trusted-shops"
1441
  msgid "This option will enable a Widget which shows your Trusted Shops Reviews as a graphic. You may configure your Widgets <a href=\"%s\">here</a>."
1442
  msgstr "Diese Option aktiviert ein Widget, mit dem du das Trusted Shops Review Widget in deinem Shop platzieren kannst. <a href=\"%s\">Hier</a> kannst du deine Widgets zuweisen."
1443
 
1444
+ #: includes/class-wc-gzd-trusted-shops.php:392
1445
  #@ woocommerce-germanized
1446
  msgctxt "trusted-shops"
1447
  msgid "Enable Rich Snippets for Google"
1448
  msgstr "Rich Snippets Anzeige in Google aktivieren"
1449
 
1450
+ #: includes/class-wc-gzd-trusted-shops.php:393
1451
  #@ woocommerce-germanized
1452
  msgctxt "trusted-shops"
1453
  msgid "This option will update your reviews received via Trusted Shops once per day and enables a Widget to show your reviews as Rich Snippets."
1454
  msgstr "Diese Option bewirkt, dass deine über Trusted Shops empfangenen Bewertungen als Rich Snippets im Shop als Widget verfügbar sind. "
1455
 
1456
+ #: includes/class-wc-gzd-trusted-shops.php:420
1457
  #@ woocommerce-germanized
1458
  msgctxt "trusted-shops"
1459
  msgid "Assign payment methods"
1460
  msgstr "Zahlungsmethoden zuweisen"
1461
 
1462
+ #: includes/class-wc-gzd-trusted-shops.php:469
1463
  #@ woocommerce-germanized
1464
  msgctxt "trusted-shops"
1465
  msgid "About Trusted Shops"
1466
  msgstr "Über Trusted Shops"
1467
 
1468
+ #: includes/wc-gzd-template-functions.php:141
1469
  #@ woocommerce
1470
  msgid "Proceed to Checkout"
1471
  msgstr ""
1483
  msgid "Trusted Shops Rich Snippets"
1484
  msgstr "Trusted Shops Rich Snippets"
1485
 
1486
+ #: includes/class-wc-gzd-trusted-shops.php:231
1487
  #, php-format
1488
  #@ woocommerce-germanized
1489
  msgctxt "trusted-shops"
1490
  msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
1491
  msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
1492
 
1493
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:460
1494
  #@ woocommerce-germanized
1495
  msgid "Checkout Table Color"
1496
  msgstr "Hintergrundfarbe der Tabelle"
1497
 
1498
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:462
1499
  #@ woocommerce-germanized
1500
  msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
1501
  msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
1540
  msgid "Check if fee is taxable."
1541
  msgstr "MwSt.-Berechnung für Gebühr aktivieren."
1542
 
1543
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:506
1544
  #@ woocommerce-germanized
1545
  msgid "Legal Digital Text"
1546
  msgstr "Hinweis Digital"
1547
 
1548
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:507
1549
  #@ woocommerce-germanized
1550
  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."
1551
  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"
1580
  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."
1581
  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."
1582
 
1583
+ #: includes/class-wc-gzd-trusted-shops.php:401
1584
  #@ woocommerce-germanized
1585
  msgctxt "trusted-shops"
1586
  msgid "Enable Review Reminder"
1587
  msgstr "Bewertungserinnerung aktivieren"
1588
 
1589
+ #: includes/class-wc-gzd-trusted-shops.php:402
1590
  #@ woocommerce-germanized
1591
  msgctxt "trusted-shops"
1592
  msgid "This option will enable a one-time email review reminder being sent to your customer."
1593
  msgstr "Diese Option sendet eine einmalige E-Mail Erinnerung bzgl. der Abgabe einer Bewertung über Trusted Shops an den Kunden."
1594
 
1595
+ #: includes/class-wc-gzd-trusted-shops.php:410
1596
  #@ woocommerce-germanized
1597
  msgctxt "trusted-shops"
1598
  msgid "Days until reminder"
1599
  msgstr "Tage bis zur Erinnerung"
1600
 
1601
+ #: includes/class-wc-gzd-trusted-shops.php:411
1602
  #@ woocommerce-germanized
1603
  msgctxt "trusted-shops"
1604
  msgid "Decide how many days after an order the email review reminder will be sent."
1677
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:421
1678
  #@ woocommerce-germanized
1679
  msgid "Shipping Costs for Virtual"
1680
+ msgstr "Versandkosten virtuell"
1681
 
1682
  #: includes/admin/settings/class-wc-gzd-settings-germanized.php:422
1683
  #@ woocommerce-germanized
1684
  msgid "Select this option if you want to display shipping costs notice for virtual products."
1685
+ msgstr "Versandkosten-Hinweis auch für virtuelle Produkte aktivieren?"
1686
 
1687
+ #: includes/abstracts/abstract-wc-gzd-product.php:90
1688
+ #: includes/wc-gzd-cart-functions.php:69
1689
  #@ woocommerce-germanized
1690
  msgid "incl. VAT"
1691
  msgstr "inkl. MwSt."
1692
 
1693
+ #: includes/abstracts/abstract-wc-gzd-product.php:90
1694
  #@ woocommerce-germanized
1695
  msgid "excl. VAT"
1696
  msgstr "exkl. MwSt."
1758
  msgid "{price}"
1759
  msgstr "{price}"
1760
 
1761
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:640
1762
  #@ woocommerce-germanized
1763
  msgid "Sorry, but the new Virtual VAT rules cannot be applied to small business."
1764
  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."
1779
  msgid "1.0.5"
1780
  msgstr "1.0.5"
1781
 
1782
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:497
1783
+ #@ woocommerce-germanized
1784
+ msgid "Show digital notice"
1785
+ msgstr "Checkbox digitale Produkte"
1786
+
1787
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:498
1788
+ #@ woocommerce-germanized
1789
+ msgid "Show checkbox for digital products."
1790
+ msgstr "Checkbox bei digitalen Produkten anzeigen"
1791
+
1792
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:499
1793
+ #@ woocommerce-germanized
1794
+ msgid "Disable this option if you want your customers to obtain their right of recission even if digital products are being bought."
1795
+ 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."
1796
+
1797
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:442
1798
+ #@ woocommerce-germanized
1799
+ msgid "Show Thumbnails"
1800
+ msgstr "Thumbnails anzeigen"
1801
+
1802
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:443
1803
+ #@ woocommerce-germanized
1804
+ msgid "Show product thumbnails on checkout page?"
1805
+ msgstr "Produktbilder im Checkout darstellen?"
1806
+
1807
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:447
1808
+ #@ woocommerce-germanized
1809
+ msgid "Uncheck if you don't want to show your product thumbnails within checkout table."
1810
+ msgstr "Deaktiviere diese Option, wenn du keine Produkbilder im Checkout angezeigt bekommen möchtest."
1811
+
1812
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:451
1813
+ #@ woocommerce-germanized
1814
+ msgid "Hide Shipping Select"
1815
+ msgstr "Versandmethoden Auswahl"
1816
+
1817
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:452
1818
+ #@ woocommerce-germanized
1819
+ msgid "Hide shipping rate selection from checkout?"
1820
+ msgstr "Die Auswahl von Versandmethoden im Checkout deaktivieren?"
1821
+
1822
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:456
1823
+ #@ woocommerce-germanized
1824
+ 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."
1825
+ msgstr "Diese Option deaktiviert die Darstellung der Versandmethoden Auswahl im Checkout. Kunden können von nun an nur noch über den Warenkorb die Versandmethode ändern."
1826
+
1827
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:433
1828
+ #@ woocommerce-germanized
1829
+ msgid "Hide taxes estimated"
1830
+ msgstr "Hinweis \"Steuern geschätzt\""
1831
+
1832
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:434
1833
+ #@ woocommerce-germanized
1834
+ msgid "Do you want to hide the \"taxes and shipping estimated\" text from your cart?"
1835
+ msgstr "Den Hinweis \"Versandkosten und Steuern werden geschätzt\" entfernen?"
1836
+
1837
+ #: includes/admin/settings/class-wc-gzd-settings-germanized.php:438
1838
+ #@ woocommerce-germanized
1839
+ 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."
1840
+ 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."
1841
+
includes/abstracts/abstract-wc-gzd-product.php CHANGED
@@ -12,25 +12,36 @@ if ( ! defined( 'ABSPATH' ) )
12
  * @version 1.0.0
13
  * @author Vendidero
14
  */
15
- class WC_GZD_Product extends WC_Product {
16
 
17
  /**
18
  * The actual Product object (e.g. simple, variable)
19
  * @var object
20
  */
21
  private $child;
 
22
 
23
  /**
24
- * Sets the actual product implementation and constructs the abstract WC_Product class.
 
 
 
 
 
 
 
 
 
 
 
 
25
  *
26
- * @param object $product
27
  */
28
  public function __construct( $product ) {
29
- // Post types
30
  $this->child = $product;
31
- parent::__construct( $product );
32
  }
33
-
34
  /**
35
  * Redirects __get calls to WC_Product Class.
36
  *
@@ -38,22 +49,19 @@ class WC_GZD_Product extends WC_Product {
38
  * @return mixed
39
  */
40
  public function __get( $key ) {
41
- $value = parent::__get( $key );
42
- if ( $key == 'delivery_time' ) {
43
- $value = get_the_terms( $this->id, 'product_delivery_time' );
44
- if ( $this->child->product_type == 'variation' )
45
- $value = $this->child->$key;
46
- if ( is_array( $value ) ) {
47
- $value = array_values( $value );
48
- $value = $value[0];
49
- }
50
- }
51
- return $value;
52
  }
53
 
 
 
 
 
 
54
  public function get_mini_desc() {
55
  if ( $this->child->mini_desc )
56
- return apply_filters( 'the_content', $this->child->mini_desc );
57
  return false;
58
  }
59
 
@@ -63,7 +71,7 @@ class WC_GZD_Product extends WC_Product {
63
  * @return boolean
64
  */
65
  public function is_virtual_vat_exception() {
66
- return ( ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' ) && ( $this->is_downloadable() || $this->is_virtual() ) ? true : false );
67
  }
68
 
69
  /**
@@ -73,9 +81,9 @@ class WC_GZD_Product extends WC_Product {
73
  */
74
  public function get_tax_info() {
75
  $_tax = new WC_Tax();
76
- if ( $this->is_taxable() ) {
77
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
78
- $tax_rates = $_tax->get_rates( $this->get_tax_class() );
79
  if ( ! empty( $tax_rates ) ) {
80
  $tax_rates = array_values( $tax_rates );
81
  if ( $this->is_virtual_vat_exception() )
@@ -155,7 +163,7 @@ class WC_GZD_Product extends WC_Product {
155
  */
156
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
157
  $price = ( $price == '' ) ? $this->child->unit_price : $price;
158
- return $this->get_price_including_tax( $qty, $price );
159
  }
160
 
161
  /**
@@ -167,7 +175,7 @@ class WC_GZD_Product extends WC_Product {
167
  */
168
  public function get_unit_price_excluding_tax( $qty = 1, $price = '' ) {
169
  $price = ( $price == '' ) ? $this->child->unit_price : $price;
170
- return ( $price == '' ) ? '' : $this->get_price_excluding_tax( $qty, $price );
171
  }
172
 
173
  /**
@@ -188,8 +196,8 @@ class WC_GZD_Product extends WC_Product {
188
  $display_price = $this->get_unit_price();
189
  $display_regular_price = $this->get_unit_price( 1, $this->get_unit_regular_price() );
190
  $display_sale_price = $this->get_unit_price( 1, $this->get_unit_sale_price() );
191
- $price_html = ( $this->is_on_unit_sale() ? $this->get_price_html_from_to( $display_regular_price, $display_sale_price ) : wc_price( $display_price ) );
192
- return ( $this->has_unit() ) ? str_replace( '{price}', $price_html . $this->get_price_suffix() . apply_filters( 'wc_gzd_unit_price_seperator', ' / ' ) . $this->get_unit_base(), get_option( 'woocommerce_gzd_unit_price_text' ) ) : '';
193
  }
194
 
195
  /**
@@ -198,14 +206,16 @@ class WC_GZD_Product extends WC_Product {
198
  * @return object
199
  */
200
  public function get_delivery_time_term() {
201
- $delivery_time = $this->delivery_time;
202
- if ( empty( $delivery_time ) && get_option( 'woocommerce_gzd_default_delivery_time' ) && ! $this->is_downloadable() ) {
203
  $delivery_time = array( get_term_by( 'id', get_option( 'woocommerce_gzd_default_delivery_time' ), 'product_delivery_time' ) );
204
  if ( is_array( $delivery_time ) ) {
205
  array_values( $delivery_time );
206
  $delivery_time = $delivery_time[0];
207
  }
208
  }
 
 
209
  return ( ! is_wp_error( $delivery_time ) && ! empty( $delivery_time ) ) ? $delivery_time : false;
210
  }
211
 
@@ -224,7 +234,7 @@ class WC_GZD_Product extends WC_Product {
224
  * @return string
225
  */
226
  public function get_shipping_costs_html() {
227
- if ( $this->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' )
228
  return false;
229
  $find = array(
230
  '{link}',
@@ -236,7 +246,5 @@ class WC_GZD_Product extends WC_Product {
236
  );
237
  return str_replace( $find, $replace, get_option( 'woocommerce_gzd_shipping_costs_text' ) );
238
  }
239
-
240
  }
241
-
242
  ?>
12
  * @version 1.0.0
13
  * @author Vendidero
14
  */
15
+ class WC_GZD_Product {
16
 
17
  /**
18
  * The actual Product object (e.g. simple, variable)
19
  * @var object
20
  */
21
  private $child;
22
+ protected static $_instance = null;
23
 
24
  /**
25
+ * Main Instance
26
+ *
27
+ * @static
28
+ * @return WC_GZD_Product instance
29
+ */
30
+ public static function instance( $product ) {
31
+ if ( is_null( self::$_instance ) || self::$_instance->product !== $product )
32
+ self::$_instance = new self( $product );
33
+ return self::$_instance;
34
+ }
35
+
36
+ /**
37
+ * Construct new WC_GZD_Product
38
  *
39
+ * @param WC_Product $product
40
  */
41
  public function __construct( $product ) {
 
42
  $this->child = $product;
 
43
  }
44
+
45
  /**
46
  * Redirects __get calls to WC_Product Class.
47
  *
49
  * @return mixed
50
  */
51
  public function __get( $key ) {
52
+ if ( $this->child->$key )
53
+ return $this->child->$key;
54
+ return false;
 
 
 
 
 
 
 
 
55
  }
56
 
57
+ /**
58
+ * Get a product's cart description
59
+ *
60
+ * @return boolean|string
61
+ */
62
  public function get_mini_desc() {
63
  if ( $this->child->mini_desc )
64
+ return apply_filters( 'the_content', htmlspecialchars_decode( $this->child->mini_desc ) );
65
  return false;
66
  }
67
 
71
  * @return boolean
72
  */
73
  public function is_virtual_vat_exception() {
74
+ return ( ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' ) && ( $this->child->is_downloadable() || $this->child->is_virtual() ) ? true : false );
75
  }
76
 
77
  /**
81
  */
82
  public function get_tax_info() {
83
  $_tax = new WC_Tax();
84
+ if ( $this->child->is_taxable() ) {
85
  $tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
86
+ $tax_rates = $_tax->get_rates( $this->child->get_tax_class() );
87
  if ( ! empty( $tax_rates ) ) {
88
  $tax_rates = array_values( $tax_rates );
89
  if ( $this->is_virtual_vat_exception() )
163
  */
164
  public function get_unit_price_including_tax( $qty = 1, $price = '' ) {
165
  $price = ( $price == '' ) ? $this->child->unit_price : $price;
166
+ return $this->child->get_price_including_tax( $qty, $price );
167
  }
168
 
169
  /**
175
  */
176
  public function get_unit_price_excluding_tax( $qty = 1, $price = '' ) {
177
  $price = ( $price == '' ) ? $this->child->unit_price : $price;
178
+ return ( $price == '' ) ? '' : $this->child->get_price_excluding_tax( $qty, $price );
179
  }
180
 
181
  /**
196
  $display_price = $this->get_unit_price();
197
  $display_regular_price = $this->get_unit_price( 1, $this->get_unit_regular_price() );
198
  $display_sale_price = $this->get_unit_price( 1, $this->get_unit_sale_price() );
199
+ $price_html = ( $this->is_on_unit_sale() ? $this->child->get_price_html_from_to( $display_regular_price, $display_sale_price ) : wc_price( $display_price ) );
200
+ return ( $this->has_unit() ) ? str_replace( '{price}', $price_html . $this->child->get_price_suffix() . apply_filters( 'wc_gzd_unit_price_seperator', ' / ' ) . $this->get_unit_base(), get_option( 'woocommerce_gzd_unit_price_text' ) ) : '';
201
  }
202
 
203
  /**
206
  * @return object
207
  */
208
  public function get_delivery_time_term() {
209
+ $delivery_time = $this->child->delivery_time;
210
+ if ( empty( $delivery_time ) && get_option( 'woocommerce_gzd_default_delivery_time' ) && ! $this->child->is_downloadable() ) {
211
  $delivery_time = array( get_term_by( 'id', get_option( 'woocommerce_gzd_default_delivery_time' ), 'product_delivery_time' ) );
212
  if ( is_array( $delivery_time ) ) {
213
  array_values( $delivery_time );
214
  $delivery_time = $delivery_time[0];
215
  }
216
  }
217
+ if ( is_array( $delivery_time ) )
218
+ $delivery_time = $delivery_time[0];
219
  return ( ! is_wp_error( $delivery_time ) && ! empty( $delivery_time ) ) ? $delivery_time : false;
220
  }
221
 
234
  * @return string
235
  */
236
  public function get_shipping_costs_html() {
237
+ if ( $this->child->is_virtual() && get_option( 'woocommerce_gzd_display_shipping_costs_virtual' ) != 'yes' )
238
  return false;
239
  $find = array(
240
  '{link}',
246
  );
247
  return str_replace( $find, $replace, get_option( 'woocommerce_gzd_shipping_costs_text' ) );
248
  }
 
249
  }
 
250
  ?>
includes/admin/class-wc-gzd-admin-welcome.php CHANGED
@@ -153,14 +153,27 @@ class WC_GZD_Admin_Welcome {
153
  </div>
154
  </div>
155
  <div class="changelog">
156
- <h3>Neu in WooCommerce Germanized 1.0.4</h3>
157
- <div class="wc-feature feature-section col one-col">
158
  <div>
159
- <h4><i class="fa fa-exclamation"></i> Neue USt. Regelungen 2015</h4>
160
  <p>
161
- Mit 1.0.4 haben wir auf die neuen USt.-Regelungen für virtuelle Produkte gültig ab 01.01.2015 reagiert (<a href="http://ec.europa.eu/taxation_customs/taxation/vat/how_vat_works/telecom/index_de.htm#new_rules" target="_blank">mehr erfahren</a>).
162
- Ab dieser Version wird die im Brutto-Preis enthaltene MwSt. bei virtuellen Produkten automatisch an den MwSt.-Satz des Empfängers angepasst. Daraus folgt ein variierender Netto-Preis (je nach Herkunftsland). Andere Verfahren (z.B. das Erkennen des Herkunftslandes anhand der IP-Adresse) halten wir für nicht praktikabel,
163
- da das Land des Rechnungsempfängers davon abweichen kann. Wir bitten dich dieses neue Verfahren unbedingt mit deinem Steuerberater bzw. Rechtsanwalt durchzusprechen.
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  </p>
165
  </div>
166
  </div>
153
  </div>
154
  </div>
155
  <div class="changelog">
156
+ <h3>Neu in WooCommerce Germanized 1.1</h3>
157
+ <div class="wc-feature feature-section col three-col" style="margin-bottom: -30px">
158
  <div>
159
+ <h4><i class="fa fa-image"></i> Thumbnails im Checkout</h4>
160
  <p>
161
+ Von nun an können auch auf der Kasse-Seite wieder Thumbnails in der Tabelle dargestellt werden.
162
+ Ein Update von WooCommerce hatte diese (rechtlich relevante) Funktion standardmäßig deaktiviert.
163
+ </p>
164
+ </div>
165
+ <div>
166
+ <h4><i class="fa fa-truck"></i> Versandmethoden-Auswahl</h4>
167
+ <p>
168
+ Die Versandmethoden-Auswahl kann normalerweise auch noch auf der Kasse-Seite erfolgen.
169
+ Wir haben nun die Funktion eingebettet, die Auswahl optional nur auf der Warenkorb-Seite zu erlauben.
170
+ </p>
171
+ </div>
172
+ <div class="last-feature">
173
+ <h4><i class="fa fa-check"></i> Plugin Kompatibilität</h4>
174
+ <p>
175
+ Mit der neuen Version bieten wir eine noch bessere Kompatibilität zu anderen WooCommerce Plugins
176
+ ohne dabei gänzlich auf die Vorteile von OOP zu verzichten.
177
  </p>
178
  </div>
179
  </div>
includes/admin/class-wc-gzd-admin.php CHANGED
@@ -75,7 +75,7 @@ class WC_GZD_Admin {
75
 
76
  public function init_product_mini_desc( $post ) {
77
  echo '<p class="small">' . __( 'This content will be shown as short product description within checkout and emails.', 'woocommerce-germanized' ) . '</p>';
78
- wp_editor( get_post_meta( $post->ID, '_mini_desc', true ), 'wc_gzd_product_mini_desc', array( 'textarea_name' => '_mini_desc', 'textarea_rows' => 5, 'media_buttons' => false ) );
79
  }
80
 
81
  }
75
 
76
  public function init_product_mini_desc( $post ) {
77
  echo '<p class="small">' . __( 'This content will be shown as short product description within checkout and emails.', 'woocommerce-germanized' ) . '</p>';
78
+ wp_editor( htmlspecialchars_decode( get_post_meta( $post->ID, '_mini_desc', true ) ), 'wc_gzd_product_mini_desc', array( 'textarea_name' => '_mini_desc', 'textarea_rows' => 5, 'media_buttons' => false ) );
79
  }
80
 
81
  }
includes/admin/meta-boxes/class-wc-gzd-meta-box-product-data-variable.php CHANGED
@@ -74,7 +74,7 @@ class WC_Germanized_Meta_Box_Product_Data_Variable {
74
  <tr>
75
  <td colspan="2">
76
  <label for="variable_product_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
77
- <?php wp_editor( ( isset( $variation_data['_mini_desc'][0] ) ? $variation_data['_mini_desc'][0] : '' ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
78
  </td>
79
  </tr>
80
  <?php
74
  <tr>
75
  <td colspan="2">
76
  <label for="variable_product_mini_desc"><?php echo __( 'Optional Mini Description', 'woocommerce-germanized' ); ?>:</label>
77
+ <?php wp_editor( htmlspecialchars_decode( ( isset( $variation_data['_mini_desc'][0] ) ? $variation_data['_mini_desc'][0] : '' ) ), 'wc_gzd_product_mini_desc_' . $loop, array( 'textarea_name' => 'variable_product_mini_desc[' . $loop . ']', 'textarea_rows' => 5, 'media_buttons' => false, 'teeny' => true ) ); ?>
78
  </td>
79
  </tr>
80
  <?php
includes/admin/settings/class-wc-gzd-settings-germanized.php CHANGED
@@ -429,6 +429,33 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
429
 
430
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
431
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  array(
433
  'title' => __( 'Checkout Table Color', 'woocommerce-germanized' ),
434
  'id' => 'woocommerce_gzd_display_checkout_table_color',
@@ -466,6 +493,15 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
466
  'type' => 'textarea',
467
  ),
468
 
 
 
 
 
 
 
 
 
 
469
  array(
470
  'title' => __( 'Legal Digital Text', 'woocommerce-germanized' ),
471
  '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' ),
@@ -515,7 +551,9 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
515
 
516
  ?>
517
  <div class="wc-gzd-admin-settings">
 
518
  <?php WC_Admin_Settings::output_fields( $settings ); ?>
 
519
  </div>
520
  <?php echo $sidebar; ?>
521
  <?php
429
 
430
  array( 'title' => __( 'Checkout & Cart', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'checkout_options' ),
431
 
432
+ array(
433
+ 'title' => __( 'Hide taxes estimated', 'woocommerce-germanized' ),
434
+ 'desc' => __( 'Do you want to hide the "taxes and shipping estimated" text from your cart?', 'woocommerce-germanized' ),
435
+ 'id' => 'woocommerce_gzd_display_hide_cart_tax_estimated',
436
+ 'default' => 'yes',
437
+ 'type' => 'checkbox',
438
+ 'desc_tip' => __( 'By default WooCommerce adds a "taxes and shipping estimated" text to your cart. This might puzzle your customers and may not meet german law.', 'woocommerce-germanized' ),
439
+ ),
440
+
441
+ array(
442
+ 'title' => __( 'Show Thumbnails', 'woocommerce-germanized' ),
443
+ 'desc' => __( 'Show product thumbnails on checkout page?', 'woocommerce-germanized' ),
444
+ 'id' => 'woocommerce_gzd_display_checkout_thumbnails',
445
+ 'default' => 'yes',
446
+ 'type' => 'checkbox',
447
+ 'desc_tip' => __( 'Uncheck if you don\'t want to show your product thumbnails within checkout table.', 'woocommerce-germanized' ),
448
+ ),
449
+
450
+ array(
451
+ 'title' => __( 'Hide Shipping Select', 'woocommerce-germanized' ),
452
+ 'desc' => __( 'Hide shipping rate selection from checkout?', 'woocommerce-germanized' ),
453
+ 'id' => 'woocommerce_gzd_display_checkout_shipping_rate_select',
454
+ 'default' => 'yes',
455
+ 'type' => 'checkbox',
456
+ 'desc_tip' => __( 'This option will hide shipping rate selection from checkout. By then customers will only be able to change their shipping rate on cart page.', 'woocommerce-germanized' ),
457
+ ),
458
+
459
  array(
460
  'title' => __( 'Checkout Table Color', 'woocommerce-germanized' ),
461
  'id' => 'woocommerce_gzd_display_checkout_table_color',
493
  'type' => 'textarea',
494
  ),
495
 
496
+ array(
497
+ 'title' => __( 'Show digital notice', 'woocommerce-germanized' ),
498
+ 'desc' => __( 'Show checkbox for digital products.', 'woocommerce-germanized' ),
499
+ 'desc_tip' => __( 'Disable this option if you want your customers to obtain their right of recission even if digital products are being bought.', 'woocommerce-germanized' ),
500
+ 'id' => 'woocommerce_gzd_checkout_legal_digital_checkbox',
501
+ 'default' => 'yes',
502
+ 'type' => 'checkbox',
503
+ ),
504
+
505
  array(
506
  'title' => __( 'Legal Digital Text', 'woocommerce-germanized' ),
507
  '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' ),
551
 
552
  ?>
553
  <div class="wc-gzd-admin-settings">
554
+ <?php do_action( 'wc_germanized_settings_section_before_' . sanitize_title( $current_section ) ); ?>
555
  <?php WC_Admin_Settings::output_fields( $settings ); ?>
556
+ <?php do_action( 'wc_germanized_settings_section_after_' . sanitize_title( $current_section ) ); ?>
557
  </div>
558
  <?php echo $sidebar; ?>
559
  <?php
includes/class-wc-gzd-cart.php CHANGED
@@ -102,7 +102,7 @@ class WC_GZD_Cart extends WC_Cart {
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->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)
@@ -193,7 +193,7 @@ class WC_GZD_Cart extends WC_Cart {
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->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)
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)
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)
includes/class-wc-gzd-checkout.php CHANGED
@@ -80,12 +80,46 @@ class WC_GZD_Checkout {
80
  // Add item desc to order
81
  add_action( 'woocommerce_order_add_product', array( $this, 'set_item_desc_order_meta' ), 0, 5 );
82
  add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_item_desc_order_meta_hidden' ), 0 );
 
 
83
  }
84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  public function set_item_desc_order_meta( $order_id, $item_id, $product, $qty, $args ) {
86
- wc_add_order_item_meta( $item_id, '_product_desc', $product->get_mini_desc() );
87
  }
88
 
 
 
 
 
 
89
  public function set_item_desc_order_meta_hidden( $metas ) {
90
  array_push( $metas, '_product_desc' );
91
  return $metas;
80
  // Add item desc to order
81
  add_action( 'woocommerce_order_add_product', array( $this, 'set_item_desc_order_meta' ), 0, 5 );
82
  add_filter( 'woocommerce_hidden_order_itemmeta', array( $this, 'set_item_desc_order_meta_hidden' ), 0 );
83
+ // Deactivate checkout shipping selection
84
+ add_action( 'woocommerce_review_order_before_shipping', array( $this, 'remove_shipping_rates' ), 0 );
85
  }
86
 
87
+ /**
88
+ * Temporarily removes all shipping rates (except chosen one) from packages to only show chosen package within checkout.
89
+ */
90
+ public function remove_shipping_rates() {
91
+ if ( get_option( 'woocommerce_gzd_display_checkout_shipping_rate_select' ) == 'no' )
92
+ return;
93
+ $packages = WC()->shipping->get_packages();
94
+ foreach ( $packages as $i => $package ) {
95
+ $chosen_method = isset( WC()->session->chosen_shipping_methods[ $i ] ) ? WC()->session->chosen_shipping_methods[ $i ] : '';
96
+ if ( ! empty( $package[ 'rates' ] ) ) {
97
+ foreach ( $package[ 'rates' ] as $key => $rate ) {
98
+ if ( $key != $chosen_method )
99
+ unset( WC()->shipping->packages[ $i ][ 'rates' ][ $key ] );
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Adds product description to order meta
107
+ *
108
+ * @param int $order_id
109
+ * @param int $item_id
110
+ * @param object $product
111
+ * @param int $qty
112
+ * @param array $args
113
+ */
114
  public function set_item_desc_order_meta( $order_id, $item_id, $product, $qty, $args ) {
115
+ wc_add_order_item_meta( $item_id, '_product_desc', $product->gzd_product->get_mini_desc() );
116
  }
117
 
118
+ /**
119
+ * Hide product description from order meta default output
120
+ *
121
+ * @param array $metas
122
+ */
123
  public function set_item_desc_order_meta_hidden( $metas ) {
124
  array_push( $metas, '_product_desc' );
125
  return $metas;
includes/class-wc-gzd-emails.php CHANGED
@@ -35,7 +35,7 @@ class WC_GZD_Emails {
35
 
36
  $mails = WC()->mailer()->get_emails();
37
 
38
- if ( !empty( $mails ) ) {
39
  foreach ( $mails as $mail ) {
40
  add_action( 'woocommerce_germanized_email_footer_' . $mail->id, array( $this, 'hook_mail_footer' ), 10, 1 );
41
  }
@@ -55,8 +55,9 @@ class WC_GZD_Emails {
55
  foreach ( $this->footer_attachments as $option_key => $option ) {
56
  if ( $option == -1 || ! get_option( $option_key ) )
57
  continue;
58
- if ( in_array( $mail->id, get_option( $option_key ) ) )
59
  $this->attach_page_content( $option );
 
60
  }
61
  }
62
  }
@@ -65,8 +66,8 @@ class WC_GZD_Emails {
65
  * Add global footer Hooks to Email templates
66
  */
67
  public function add_template_footers() {
68
- $type = ( !empty( $GLOBALS['template_name'] ) ) ? $this->get_email_instance_by_tpl( $GLOBALS['template_name'][0] ) : '';
69
- if ( !empty( $type ) )
70
  do_action( 'woocommerce_germanized_email_footer_' . $type->id, $type );
71
  }
72
 
@@ -76,15 +77,20 @@ class WC_GZD_Emails {
76
  * @param string $tpl
77
  * @return mixed
78
  */
79
- private function get_email_instance_by_tpl( $tpl ) {
80
- $tpl = str_replace( array( 'admin-', '-' ), array( '', '_' ), basename( $tpl, '.php' ) );
81
- $mails = WC()->mailer()->get_emails();
82
- if ( !empty( $mails ) ) {
83
- foreach ( $mails as $mail ) {
84
- if ( $mail->id == $tpl )
85
- return $mail;
 
 
 
86
  }
87
  }
 
 
88
  return null;
89
  }
90
 
35
 
36
  $mails = WC()->mailer()->get_emails();
37
 
38
+ if ( ! empty( $mails ) ) {
39
  foreach ( $mails as $mail ) {
40
  add_action( 'woocommerce_germanized_email_footer_' . $mail->id, array( $this, 'hook_mail_footer' ), 10, 1 );
41
  }
55
  foreach ( $this->footer_attachments as $option_key => $option ) {
56
  if ( $option == -1 || ! get_option( $option_key ) )
57
  continue;
58
+ if ( in_array( $mail->id, get_option( $option_key ) ) ) {
59
  $this->attach_page_content( $option );
60
+ }
61
  }
62
  }
63
  }
66
  * Add global footer Hooks to Email templates
67
  */
68
  public function add_template_footers() {
69
+ $type = ( ! empty( $GLOBALS['template_name'] ) ) ? $this->get_email_instance_by_tpl( $GLOBALS['template_name'] ) : '';
70
+ if ( ! empty( $type ) )
71
  do_action( 'woocommerce_germanized_email_footer_' . $type->id, $type );
72
  }
73
 
77
  * @param string $tpl
78
  * @return mixed
79
  */
80
+ private function get_email_instance_by_tpl( $tpls = array() ) {
81
+ $found_mails = array();
82
+ foreach ( $tpls as $tpl ) {
83
+ $tpl = apply_filters( 'woocommerce_germanized_email_template_name', str_replace( array( 'admin-', '-' ), array( '', '_' ), basename( $tpl, '.php' ) ), $tpl );
84
+ $mails = WC()->mailer()->get_emails();
85
+ if ( !empty( $mails ) ) {
86
+ foreach ( $mails as $mail ) {
87
+ if ( $mail->id == $tpl )
88
+ array_push( $found_mails, $mail );
89
+ }
90
  }
91
  }
92
+ if ( ! empty( $found_mails ) )
93
+ return $found_mails[ sizeof( $found_mails ) - 1 ];
94
  return null;
95
  }
96
 
includes/class-wc-gzd-install.php CHANGED
@@ -263,6 +263,7 @@ class WC_GZD_Install {
263
  'woocommerce_prices_include_tax' => 'yes',
264
  'woocommerce_tax_display_cart' => 'incl',
265
  'woocommerce_tax_display_shop' => 'incl',
 
266
  'woocommerce_allowed_countries' => 'specific',
267
  'woocommerce_specific_allowed_countries' => array( 'DE' ),
268
  );
263
  'woocommerce_prices_include_tax' => 'yes',
264
  'woocommerce_tax_display_cart' => 'incl',
265
  'woocommerce_tax_display_shop' => 'incl',
266
+ 'woocommerce_tax_total_display' => 'itemized',
267
  'woocommerce_allowed_countries' => 'specific',
268
  'woocommerce_specific_allowed_countries' => array( 'DE' ),
269
  );
includes/class-wc-gzd-product-external.php DELETED
@@ -1,41 +0,0 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
-
5
- /**
6
- * Product External Class
7
- *
8
- * @class WC_GZD_Product_External
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Product_External extends WC_Product_External {
13
-
14
- /**
15
- * contains the WC_GZD_Product abstract class
16
- * @var object
17
- */
18
- private $base = null;
19
-
20
- /**
21
- * Construct the Product by calling parent constructor and injecting WC_GZD_Product
22
- *
23
- * @param int|WC_Product|WP_Post $product Product ID, post object, or product object
24
- */
25
- public function __construct( $product ) {
26
- parent::__construct( $product );
27
- $this->base = new WC_GZD_Product( $this );
28
- }
29
-
30
- /**
31
- * Deligate method calls to WC_GZD_Product
32
- *
33
- * @param method name $name
34
- * @param arguments for calling method $args
35
- * @return mixed
36
- */
37
- public function __call( $name, $args ) {
38
- return call_user_func_array( array( $this->base, $name ), $args );
39
- }
40
-
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-product-grouped.php DELETED
@@ -1,41 +0,0 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
-
5
- /**
6
- * Product Grouped Class
7
- *
8
- * @class WC_GZD_Product_Grouped
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Product_Grouped extends WC_Product_Grouped {
13
-
14
- /**
15
- * contains the WC_GZD_Product abstract class
16
- * @var object
17
- */
18
- private $base = null;
19
-
20
- /**
21
- * Construct the Product by calling parent constructor and injecting WC_GZD_Product
22
- *
23
- * @param int|WC_Product|WP_Post $product Product ID, post object, or product object
24
- */
25
- public function __construct( $product ) {
26
- parent::__construct( $product );
27
- $this->base = new WC_GZD_Product( $this );
28
- }
29
-
30
- /**
31
- * Deligate method calls to WC_GZD_Product
32
- *
33
- * @param method name $name
34
- * @param arguments for calling method $args
35
- * @return mixed
36
- */
37
- public function __call( $name, $args ) {
38
- return call_user_func_array( array( $this->base, $name ), $args );
39
- }
40
-
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-product-simple.php DELETED
@@ -1,41 +0,0 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
-
5
- /**
6
- * Product Simple Class
7
- *
8
- * @class WC_GZD_Product_Simple
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Product_Simple extends WC_Product_Simple {
13
-
14
- /**
15
- * contains the WC_GZD_Product abstract class
16
- * @var object
17
- */
18
- private $base = null;
19
-
20
- /**
21
- * Construct the Product by calling parent constructor and injecting WC_GZD_Product
22
- *
23
- * @param int|WC_Product|WP_Post $product Product ID, post object, or product object
24
- */
25
- public function __construct( $product ) {
26
- parent::__construct( $product );
27
- $this->base = new WC_GZD_Product( $this );
28
- }
29
-
30
- /**
31
- * Deligate method calls to WC_GZD_Product
32
- *
33
- * @param method name $name
34
- * @param arguments for calling method $args
35
- * @return mixed
36
- */
37
- public function __call( $name, $args ) {
38
- return call_user_func_array( array( $this->base, $name ), $args );
39
- }
40
-
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-product-variable.php DELETED
@@ -1,41 +0,0 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
-
5
- /**
6
- * Product Variable Class
7
- *
8
- * @class WC_GZD_Product_Variable
9
- * @version 1.0.0
10
- * @author Vendidero
11
- */
12
- class WC_GZD_Product_Variable extends WC_Product_Variable {
13
-
14
- /**
15
- * contains the WC_GZD_Product abstract class
16
- * @var object
17
- */
18
- private $base = null;
19
-
20
- /**
21
- * Construct the Product by calling parent constructor and injecting WC_GZD_Product
22
- *
23
- * @param int|WC_Product|WP_Post $product Product ID, post object, or product object
24
- */
25
- public function __construct( $product ) {
26
- parent::__construct( $product );
27
- $this->base = new WC_GZD_Product( $this );
28
- }
29
-
30
- /**
31
- * Deligate method calls to WC_GZD_Product
32
- *
33
- * @param method name $name
34
- * @param arguments for calling method $args
35
- * @return mixed
36
- */
37
- public function __call( $name, $args ) {
38
- return call_user_func_array( array( $this->base, $name ), $args );
39
- }
40
-
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wc-gzd-product-variation.php CHANGED
@@ -12,12 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  */
13
  class WC_GZD_Product_Variation extends WC_Product_Variation {
14
 
15
- /**
16
- * contains the WC_GZD_Product abstract class
17
- * @var object
18
- */
19
- private $base = null;
20
-
21
  /**
22
  * Construct the Product by calling parent constructor and injecting WC_GZD_Product. Add variation level meta keys for delivery time and unit price.
23
  *
@@ -25,7 +19,6 @@ class WC_GZD_Product_Variation extends WC_Product_Variation {
25
  */
26
  public function __construct( $product ) {
27
  parent::__construct( $product );
28
- $this->base = new WC_GZD_Product( $this );
29
  $this->variation_level_meta_data[ 'delivery_time' ] = '';
30
  $this->variation_level_meta_data[ 'unit' ] = 0;
31
  $this->variation_level_meta_data[ 'unit_price' ] = 0;
@@ -33,17 +26,7 @@ class WC_GZD_Product_Variation extends WC_Product_Variation {
33
  $this->variation_level_meta_data[ 'unit_price_regular' ] = 0;
34
  $this->variation_level_meta_data[ 'unit_price_sale' ] = 0;
35
  $this->variation_level_meta_data[ 'mini_desc' ] = '';
36
- }
37
-
38
- /**
39
- * Deligate method calls to WC_GZD_Product
40
- *
41
- * @param method name $name
42
- * @param arguments for calling method $args
43
- * @return mixed
44
- */
45
- public function __call( $name, $args ) {
46
- return call_user_func_array( array( $this->base, $name ), $args );
47
  }
48
 
49
  /**
12
  */
13
  class WC_GZD_Product_Variation extends WC_Product_Variation {
14
 
 
 
 
 
 
 
15
  /**
16
  * Construct the Product by calling parent constructor and injecting WC_GZD_Product. Add variation level meta keys for delivery time and unit price.
17
  *
19
  */
20
  public function __construct( $product ) {
21
  parent::__construct( $product );
 
22
  $this->variation_level_meta_data[ 'delivery_time' ] = '';
23
  $this->variation_level_meta_data[ 'unit' ] = 0;
24
  $this->variation_level_meta_data[ 'unit_price' ] = 0;
26
  $this->variation_level_meta_data[ 'unit_price_regular' ] = 0;
27
  $this->variation_level_meta_data[ 'unit_price_sale' ] = 0;
28
  $this->variation_level_meta_data[ 'mini_desc' ] = '';
29
+ $this->variation_level_meta_data[ 'gzd_product' ] = NULL;
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
32
  /**
includes/class-wc-gzd-trusted-shops.php CHANGED
@@ -58,15 +58,20 @@ class WC_GZD_Trusted_Shops {
58
  )
59
  );
60
  $this->et_params = array( 'etcc_med' => 'part', 'etcc_cmp' => 'sofpar', 'etcc_par' => 'woo', 'etcc_mon' => 11 );
61
- $this->api_url = 'http://www.trustedshops.com/api/ratings/v1/'. $this->id .'.xml';
62
  // Schedule
63
- if ( $this->is_rich_snippets_enabled() )
64
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_reviews' ) );
65
- if ( $this->is_review_widget_enabled() )
 
 
 
66
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_review_widget' ) );
 
 
 
67
  if ( $this->is_review_reminder_enabled() )
68
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'send_mails' ) );
69
- //add_action( 'init', array( $this, 'send_mails' ) );
70
  // Add Badge to Footer
71
  if ( $this->is_enabled() && $this->get_badge_js() )
72
  add_action( 'wp_footer', array( $this, 'add_badge' ), 5 );
@@ -162,8 +167,8 @@ class WC_GZD_Trusted_Shops {
162
  *
163
  * @return string
164
  */
165
- public function get_new_review_link() {
166
- return 'https://www.trustedshops.de/bewertung/bewerten_' . $this->id . '.html';
167
  }
168
 
169
  /**
@@ -259,14 +264,11 @@ class WC_GZD_Trusted_Shops {
259
  $success = true;
260
  curl_close( $ch );
261
  if ( $success ) {
262
- $xml = new SimpleXMLElement( $output );
263
- $xPath = '/shop/ratings/result[@name="average"]';
264
- $avg = $xml->xpath( $xPath );
265
- if ( ! empty( $avg[0] ) ) {
266
- $update['avg'] = ( float ) $avg[0];
267
- $update['max'] = '5.00';
268
- $update['count'] = ( string ) $xml->ratings["amount"][0];
269
- }
270
  }
271
  }
272
  }
58
  )
59
  );
60
  $this->et_params = array( 'etcc_med' => 'part', 'etcc_cmp' => 'sofpar', 'etcc_par' => 'woo', 'etcc_mon' => 11 );
61
+ $this->api_url = 'http://api.trustedshops.com/rest/public/v2/shops/'. $this->id .'/quality.json';
62
  // Schedule
63
+ if ( $this->is_rich_snippets_enabled() ) {
64
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_reviews' ) );
65
+ if ( empty( $this->reviews_cache ) )
66
+ add_action( 'init', array( $this, 'update_reviews' ) );
67
+ }
68
+ if ( $this->is_review_widget_enabled() ) {
69
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'update_review_widget' ) );
70
+ if ( empty( $this->review_widget_attachment ) )
71
+ add_action( 'init', array( $this, 'update_review_widget' ) );
72
+ }
73
  if ( $this->is_review_reminder_enabled() )
74
  add_action( 'woocommerce_gzd_trusted_shops_reviews', array( $this, 'send_mails' ) );
 
75
  // Add Badge to Footer
76
  if ( $this->is_enabled() && $this->get_badge_js() )
77
  add_action( 'wp_footer', array( $this, 'add_badge' ), 5 );
167
  *
168
  * @return string
169
  */
170
+ public function get_new_review_link( $email, $order_id ) {
171
+ return 'https://www.trustedshops.de/bewertung/bewerten_' . $this->id . '.html&buyerEmail=' . urlencode( base64_encode( $email ) ) . '&shopOrderID=' . urlencode( base64_encode( $order_id ) );
172
  }
173
 
174
  /**
264
  $success = true;
265
  curl_close( $ch );
266
  if ( $success ) {
267
+ $output = json_decode( $output, true );
268
+ $reviews = $output[ 'response' ][ 'data' ][ 'shop' ][ 'qualityIndicators' ][ 'reviewIndicator' ];
269
+ $update[ 'count' ] = (string) $reviews[ 'activeReviewCount' ];
270
+ $update[ 'avg' ] = (float) $reviews[ 'overallMark' ];
271
+ $update[ 'max' ] = '5.00';
 
 
 
272
  }
273
  }
274
  }
includes/wc-gzd-cart-functions.php CHANGED
@@ -23,8 +23,8 @@ function wc_gzd_product_item_desc( $title, $item ) {
23
  if ( isset( $item[ 'product_id' ] ) ) {
24
  $product_id = ( ! empty( $item[ 'variation_id' ] ) ? $item[ 'variation_id' ] : $item[ 'product_id' ] );
25
  $product = wc_get_product( $product_id );
26
- if ( $product->get_mini_desc() )
27
- $new .= '<div class="wc-gzd-item-desc item-desc">' . $product->get_mini_desc() . '</div>';
28
  }
29
  return $new;
30
  }
@@ -66,7 +66,7 @@ function wc_gzd_cart_totals_order_total_tax_html() {
66
  $rate = (int) $tax[ 'tax' ]->rate;
67
  echo '
68
  <tr class="order-tax">
69
- <th>' . sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), $rate ) . '</th>
70
  <td>' . $tax[ 'amount' ] . '</td>
71
  </tr>';
72
  }
23
  if ( isset( $item[ 'product_id' ] ) ) {
24
  $product_id = ( ! empty( $item[ 'variation_id' ] ) ? $item[ 'variation_id' ] : $item[ 'product_id' ] );
25
  $product = wc_get_product( $product_id );
26
+ if ( $product->gzd_product->get_mini_desc() )
27
+ $new .= '<div class="wc-gzd-item-desc item-desc">' . $product->gzd_product->get_mini_desc() . '</div>';
28
  }
29
  return $new;
30
  }
66
  $rate = (int) $tax[ 'tax' ]->rate;
67
  echo '
68
  <tr class="order-tax">
69
+ <th>' . ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ? sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), $rate ) : __( 'incl. VAT', 'woocommerce-germanized' ) ) . '</th>
70
  <td>' . $tax[ 'amount' ] . '</td>
71
  </tr>';
72
  }
includes/wc-gzd-core-functions.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Core Functions
4
+ *
5
+ * WC_GZD core functions.
6
+ *
7
+ * @author Vendidero
8
+ * @version 1.0.0
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
+
13
+ /**
14
+ * Gets WC_GZD_Product by WC_Product
15
+ * @param WC_Product|int $the_product
16
+ * @return WC_GZD_Product
17
+ */
18
+ function wc_gzd_get_product( $the_product = false ) {
19
+ global $product;
20
+ if ( ! $the_product )
21
+ $the_product = $product;
22
+ if ( is_numeric( $the_product ) )
23
+ $the_product = wc_get_product( $the_product );
24
+ if ( isset( $the_product ) )
25
+ return WC_GZD_Product::instance( $the_product );
26
+ return false;
27
+ }
includes/wc-gzd-template-functions.php CHANGED
@@ -122,9 +122,9 @@ if ( ! function_exists( 'woocommerce_gzd_template_cart_product_delivery_time' )
122
  */
123
  function woocommerce_gzd_template_cart_product_delivery_time( $title, $cart_item, $cart_item_key ) {
124
  if ( isset($cart_item["data"]) ) {
125
- $product = $cart_item["data"];
126
- if ( $product->get_delivery_time_term() )
127
- $title .= '<p class="price-shipping-costs-info">' . $product->get_delivery_time_html() . '</p>';
128
  }
129
  return $title;
130
  }
@@ -137,7 +137,6 @@ if ( ! function_exists( 'woocommerce_gzd_proceed_to_checkout_fallback' ) ) {
137
  */
138
  function woocommerce_gzd_proceed_to_checkout_fallback() {
139
  $checkout_url = WC()->cart->get_checkout_url();
140
-
141
  ?>
142
  <a href="<?php echo $checkout_url; ?>" class="checkout-button button alt wc-forward"><?php _e( 'Proceed to Checkout', 'woocommerce' ); ?></a>
143
  <?php
@@ -181,7 +180,7 @@ if ( ! function_exists( 'woocommerce_gzd_template_checkout_legal' ) ) {
181
  * text legal info within checkout (may contain checkbox)
182
  */
183
  function woocommerce_gzd_template_checkout_legal() {
184
- echo '<p class="form-row legal terms">' . ( get_option( 'woocommerce_gzd_display_checkout_legal_no_checkbox' ) == 'no' ? '<input type="checkbox" class="input-checkbox" name="legal" id="legal" />' : '' ) . ' <label class="checkbox" for="terms">' . wc_gzd_get_legal_text() . '</label></p>';
185
  }
186
 
187
  }
@@ -220,7 +219,7 @@ if ( ! function_exists( 'woocommerce_gzd_checkout_validation' ) ) {
220
  // Check if cart contains downloadable product
221
  $items = WC()->cart->get_cart();
222
  $is_downloadable = false;
223
- if ( ! empty( $items ) ) {
224
  foreach ( $items as $cart_item_key => $values ) {
225
  $_product = $values['data'];
226
  if ( $_product->is_downloadable() )
@@ -284,8 +283,8 @@ if ( ! function_exists( 'woocommerce_gzd_add_variation_options' ) ) {
284
  * Add delivery time and unit price to variations
285
  */
286
  function woocommerce_gzd_add_variation_options( $options, $product, $variation ) {
287
- $options[ 'delivery_time' ] = $variation->get_delivery_time_html();
288
- $options[ 'unit_price' ] = $variation->get_unit_html();
289
  return $options;
290
  }
291
 
122
  */
123
  function woocommerce_gzd_template_cart_product_delivery_time( $title, $cart_item, $cart_item_key ) {
124
  if ( isset($cart_item["data"]) ) {
125
+ $product = wc_gzd_get_product( $cart_item["data"] );
126
+ if ( $product->gzd_product->get_delivery_time_term() )
127
+ $title .= '<p class="price-shipping-costs-info">' . $product->gzd_product->get_delivery_time_html() . '</p>';
128
  }
129
  return $title;
130
  }
137
  */
138
  function woocommerce_gzd_proceed_to_checkout_fallback() {
139
  $checkout_url = WC()->cart->get_checkout_url();
 
140
  ?>
141
  <a href="<?php echo $checkout_url; ?>" class="checkout-button button alt wc-forward"><?php _e( 'Proceed to Checkout', 'woocommerce' ); ?></a>
142
  <?php
180
  * text legal info within checkout (may contain checkbox)
181
  */
182
  function woocommerce_gzd_template_checkout_legal() {
183
+ echo '<p class="form-row legal terms">' . ( get_option( 'woocommerce_gzd_display_checkout_legal_no_checkbox' ) == 'no' ? '<input type="checkbox" class="input-checkbox" name="legal" id="legal" />' : '' ) . ' <label class="checkbox" for="legal">' . wc_gzd_get_legal_text() . '</label></p>';
184
  }
185
 
186
  }
219
  // Check if cart contains downloadable product
220
  $items = WC()->cart->get_cart();
221
  $is_downloadable = false;
222
+ if ( ! empty( $items ) && get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' ) {
223
  foreach ( $items as $cart_item_key => $values ) {
224
  $_product = $values['data'];
225
  if ( $_product->is_downloadable() )
283
  * Add delivery time and unit price to variations
284
  */
285
  function woocommerce_gzd_add_variation_options( $options, $product, $variation ) {
286
+ $options[ 'delivery_time' ] = $variation->gzd_product->get_delivery_time_html();
287
+ $options[ 'unit_price' ] = $variation->gzd_product->get_unit_html();
288
  return $options;
289
  }
290
 
includes/wc-gzd-template-hooks.php CHANGED
@@ -56,7 +56,8 @@ add_action( 'woocommerce_review_order_before_payment', 'woocommerce_gzd_template
56
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_legal' );
57
  add_filter( 'woocommerce_checkout_show_terms', 'woocommerce_gzd_remove_term_checkbox' );
58
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_set_terms_manually' );
59
- add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_digital_checkbox', 1 );
 
60
  if ( get_option( 'woocommerce_gzd_trusted_shops_id' ) )
61
  add_action( 'woocommerce_thankyou', 'woocommerce_gzd_template_checkout_thankyou_trusted_shops', 10, 1 );
62
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', 50 );
56
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_legal' );
57
  add_filter( 'woocommerce_checkout_show_terms', 'woocommerce_gzd_remove_term_checkbox' );
58
  add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_template_checkout_set_terms_manually' );
59
+ if ( get_option( 'woocommerce_gzd_checkout_legal_digital_checkbox' ) == 'yes' )
60
+ add_action( 'woocommerce_gzd_before_shop_table', 'woocommerce_gzd_digital_checkbox', 1 );
61
  if ( get_option( 'woocommerce_gzd_trusted_shops_id' ) )
62
  add_action( 'woocommerce_thankyou', 'woocommerce_gzd_template_checkout_thankyou_trusted_shops', 10, 1 );
63
  add_filter( 'woocommerce_order_button_text', 'woocommerce_gzd_template_order_button_text', 50 );
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=info@vendidero.de&item_name=Donation+for+WooCommerce+Germanized
5
  Requires at least: 3.8
6
  Tested up to: 4.1
7
- Stable tag: 1.0.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -123,9 +123,17 @@ Bugs sowie Hilfe bei der Arbeit an WooCommerce Germanized werden gerne über uns
123
 
124
  == Changelog ==
125
 
 
 
 
 
 
 
 
 
126
  = 1.0.5 =
127
  * Feature - Optionally remove address field from checkout
128
- * Fix - Shipping time bug within checkout
129
  * Fix - Better theme compatibility for variations
130
 
131
  = 1.0.4 =
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.1
7
+ Stable tag: 1.1.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
123
 
124
  == Changelog ==
125
 
126
+ = 1.1 =
127
+ * Feature - Hide shipping method select from checkout
128
+ * Feature - Hide "taxes and shipping estimated" from cart
129
+ * Feature - Show thumbnails within checkout table
130
+ * Feature - Implemented Trusted Shops API v2
131
+ * Fix - Sending wrong email text attachments
132
+ * Fix - Much better third party compatibility
133
+
134
  = 1.0.5 =
135
  * Feature - Optionally remove address field from checkout
136
+ * Fix - Shipping time bug within checkouts
137
  * Fix - Better theme compatibility for variations
138
 
139
  = 1.0.4 =
templates/checkout/form-pay.php CHANGED
@@ -27,7 +27,7 @@ if ( ! defined( 'ABSPATH' ) ) {
27
  foreach ( $available_gateways as $gateway ) {
28
  ?>
29
  <li class="payment_method_<?php echo $gateway->id; ?>">
30
- <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> />
31
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
32
  <?php
33
  if ( $gateway->has_fields() || $gateway->get_description() ) {
27
  foreach ( $available_gateways as $gateway ) {
28
  ?>
29
  <li class="payment_method_<?php echo $gateway->id; ?>">
30
+ <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
31
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
32
  <?php
33
  if ( $gateway->has_fields() || $gateway->get_description() ) {
templates/checkout/review-order.php CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
33
  foreach ( $available_gateways as $gateway ) {
34
  ?>
35
  <li class="payment_method_<?php echo $gateway->id; ?>">
36
- <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> />
37
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
38
  <?php
39
  if ( $gateway->has_fields() || $gateway->get_description() ) :
@@ -84,11 +84,16 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
84
  <td class="product-name">
85
  <table class="product-name-inner">
86
  <tr>
87
- <td>
 
 
 
 
 
88
  <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
89
  <?php echo WC()->cart->get_item_data( $cart_item ); ?>
90
  </td>
91
- <td>
92
  <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
93
  </td>
94
  </tr>
33
  foreach ( $available_gateways as $gateway ) {
34
  ?>
35
  <li class="payment_method_<?php echo $gateway->id; ?>">
36
+ <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
37
  <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
38
  <?php
39
  if ( $gateway->has_fields() || $gateway->get_description() ) :
84
  <td class="product-name">
85
  <table class="product-name-inner">
86
  <tr>
87
+ <?php if ( get_option( 'woocommerce_gzd_display_checkout_thumbnails' ) == 'yes' ) : ?>
88
+ <td class="product-thumbnail">
89
+ <?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
90
+ </td>
91
+ <?php endif; ?>
92
+ <td class="product-name">
93
  <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
94
  <?php echo WC()->cart->get_item_data( $cart_item ); ?>
95
  </td>
96
+ <td class="product-quantity">
97
  <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
98
  </td>
99
  </tr>
templates/emails/customer-trusted-shops.php CHANGED
@@ -19,7 +19,7 @@ $text = get_option( 'woocommerce_email_text_color' );
19
  <p><?php echo sprintf( _x( 'You have recently shopped at %s. Thank you! We would be glad if you spent some time to write a review about your order. To do so please follow follow the link.', 'trusted-shops', 'woocommerce-germanized' ), get_bloginfo( 'name' ) ); ?></p>
20
  <table cellspacing="0" cellpadding="0" style="width: 100%; border: none;" border="0">
21
  <tr align="center">
22
- <td align="center"><a class="email_btn" href="<?php echo esc_url( WC_Germanized()->trusted_shops->get_new_review_link() ); ?>" target="_blank" style="text-decoration: none; background-color: <?php echo esc_attr( $base ); ?>; color: <?php echo $base_text;?>; border-radius: 3px !important; padding: font-family:Arial; font-weight:bold; line-height:100%; padding: 0.5rem;"><?php echo _x( 'Rate Order now', 'trusted-shops', 'woocommerce-germanized' );?></a></td>
23
  </tr>
24
  </table>
25
 
19
  <p><?php echo sprintf( _x( 'You have recently shopped at %s. Thank you! We would be glad if you spent some time to write a review about your order. To do so please follow follow the link.', 'trusted-shops', 'woocommerce-germanized' ), get_bloginfo( 'name' ) ); ?></p>
20
  <table cellspacing="0" cellpadding="0" style="width: 100%; border: none;" border="0">
21
  <tr align="center">
22
+ <td align="center"><a class="email_btn" href="<?php echo esc_url( WC_Germanized()->trusted_shops->get_new_review_link( $order->billing_email, $order->id ) ); ?>" target="_blank" style="text-decoration: none; background-color: <?php echo esc_attr( $base ); ?>; color: <?php echo $base_text;?>; border-radius: 3px !important; padding: font-family:Arial; font-weight:bold; line-height:100%; padding: 0.5rem;"><?php echo _x( 'Rate Order now', 'trusted-shops', 'woocommerce-germanized' );?></a></td>
23
  </tr>
24
  </table>
25
 
templates/emails/email-footer-attachment.php CHANGED
@@ -8,10 +8,11 @@
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  global $post;
 
11
 
12
- setup_postdata( $GLOBALS['post'] =& $post_attach );
13
 
14
- $content = ( empty( $GLOBALS['post']->post_excerpt ) ? $GLOBALS['post']->post_content : $GLOBALS['post']->post_excerpt );
15
  $print_title = true;
16
  if ( substr( trim( $content ), 0, 2 ) == '<h' )
17
  $print_title = false;
@@ -25,7 +26,7 @@ if ( substr( trim( $content ), 0, 2 ) == '<h' )
25
 
26
  <div class="wc-gzd-email-attached-content">
27
 
28
- <?php if ( empty( $GLOBALS['post']->post_excerpt ) ) : ?>
29
 
30
  <?php the_content();?>
31
 
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  global $post;
11
+ $post = $post_attach;
12
 
13
+ setup_postdata( $post );
14
 
15
+ $content = ( empty( $post->post_excerpt ) ? $post->post_content : $post->post_excerpt );
16
  $print_title = true;
17
  if ( substr( trim( $content ), 0, 2 ) == '<h' )
18
  $print_title = false;
26
 
27
  <div class="wc-gzd-email-attached-content">
28
 
29
+ <?php if ( empty( $post->post_excerpt ) ) : ?>
30
 
31
  <?php the_content();?>
32
 
templates/single-product/delivery-time-info.php CHANGED
@@ -10,9 +10,8 @@
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
 
12
  global $product;
13
-
14
  ?>
15
 
16
- <?php if ( $product->get_delivery_time_term() ) : ?>
17
- <p class="wc-gzd-additional-info delivery-time-info"><?php echo $product->get_delivery_time_html();?></p>
18
  <?php endif; ?>
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
 
12
  global $product;
 
13
  ?>
14
 
15
+ <?php if ( $product->gzd_product->get_delivery_time_term() ) : ?>
16
+ <p class="wc-gzd-additional-info delivery-time-info"><?php echo $product->gzd_product->get_delivery_time_html();?></p>
17
  <?php endif; ?>
templates/single-product/legal-info.php CHANGED
@@ -13,11 +13,11 @@ global $product;
13
  ?>
14
  <div class="legal-price-info">
15
  <p class="wc-gzd-additional-info">
16
- <?php if ( $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->get_tax_info(); ?></span>
18
  <?php endif; ?>
19
- <?php if ( $product->get_shipping_costs_html() && get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' ) : ?>
20
- <span class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->get_shipping_costs_html();?></span>
21
  <?php endif; ?>
22
  </p>
23
  </div>
13
  ?>
14
  <div class="legal-price-info">
15
  <p class="wc-gzd-additional-info">
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 endif; ?>
19
+ <?php if ( $product->gzd_product->get_shipping_costs_html() && get_option( 'woocommerce_gzd_display_product_detail_shipping_costs' ) == 'yes' ) : ?>
20
+ <span class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->gzd_product->get_shipping_costs_html();?></span>
21
  <?php endif; ?>
22
  </p>
23
  </div>
templates/single-product/price-unit.php CHANGED
@@ -12,6 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
  global $product;
13
  ?>
14
 
15
- <?php if ( $product->has_unit() ) : ?>
16
- <p class="price price-unit smaller"><?php echo $product->get_unit_html(); ?></p>
17
  <?php endif ;?>
12
  global $product;
13
  ?>
14
 
15
+ <?php if ( $product->gzd_product->has_unit() ) : ?>
16
+ <p class="price price-unit smaller"><?php echo $product->gzd_product->get_unit_html(); ?></p>
17
  <?php endif ;?>
templates/single-product/price.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Single Product Price, including microdata for SEO
4
- *
5
- * @author WooThemes
6
- * @package WooCommerce/Templates
7
- * @version 1.6.4
8
- */
9
-
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit; // Exit if accessed directly
12
- }
13
-
14
- global $product;
15
- ?>
16
- <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="offer">
17
-
18
- <p class="price"><?php echo $product->get_price_html(); ?></p>
19
-
20
- <meta itemprop="price" content="<?php echo $product->get_price(); ?>" />
21
- <meta itemprop="currency" content="<?php echo get_woocommerce_currency(); ?>" />
22
- <link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />
23
-
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/single-product/shipping-costs-info.php CHANGED
@@ -12,6 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
  global $product;
13
  ?>
14
 
15
- <?php if ( $product->get_shipping_costs_html() ) : ?>
16
- <p class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->get_shipping_costs_html();?></p>
17
  <?php endif; ?>
12
  global $product;
13
  ?>
14
 
15
+ <?php if ( $product->gzd_product->get_shipping_costs_html() ) : ?>
16
+ <p class="wc-gzd-additional-info shipping-costs-info"><?php echo $product->gzd_product->get_shipping_costs_html();?></p>
17
  <?php endif; ?>
templates/single-product/small-business-info.php CHANGED
@@ -9,7 +9,6 @@
9
 
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
 
12
- global $product;
13
  ?>
14
 
15
  <p class="wc-gzd-additional-info small-business-info"><?php _e( 'VAT free based on &#167;19 UStG', 'woocommerce-germanized' );?></p>
9
 
10
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
 
 
12
  ?>
13
 
14
  <p class="wc-gzd-additional-info small-business-info"><?php _e( 'VAT free based on &#167;19 UStG', 'woocommerce-germanized' );?></p>
templates/single-product/tax-info.php CHANGED
@@ -11,6 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
11
 
12
  global $product;
13
  ?>
14
- <?php if ( $product->get_tax_info() ) : ?>
15
- <p class="wc-gzd-additional-info tax-info"><?php echo $product->get_tax_info(); ?></p>
 
16
  <?php endif; ?>
11
 
12
  global $product;
13
  ?>
14
+
15
+ <?php if ( $product->gzd_product->get_tax_info() ) : ?>
16
+ <p class="wc-gzd-additional-info tax-info"><?php echo $product->gzd_product->get_tax_info(); ?></p>
17
  <?php endif; ?>
woocommerce-germanized.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce Germanized
4
  * Plugin URI: http://www.vendidero.de/woocommerce-germanized
5
  * Description: Extends WooCommerce to become a legally compliant store for the german market.
6
- * Version: 1.0.5
7
  * Author: Vendidero
8
  * Author URI: http://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.0.5';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
@@ -126,6 +126,10 @@ final class WooCommerce_Germanized {
126
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
127
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
128
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_cart' ), 0 );
 
 
 
 
129
 
130
  // Loaded action
131
  do_action( 'woocommerce_germanized_loaded' );
@@ -171,18 +175,20 @@ final class WooCommerce_Germanized {
171
  add_filter( 'woocommerce_email_classes', array( $this, 'add_emails' ) );
172
  add_filter( 'woocommerce_locate_core_template', array( $this, 'email_templates' ), 0, 3 );
173
  add_action( 'woocommerce_email_order_meta', array( $this, 'email_small_business_notice' ), 1 );
174
- // Payment Gateway Filter
175
- add_filter( 'woocommerce_payment_gateways', array( $this, 'payment_gateway_filter' ) );
176
  // Add better tax display to order totals
177
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
178
  add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fee_cart' ), 0 );
179
  // Adjust virtual Product Price and tax class
180
  add_filter( 'woocommerce_get_price_including_tax', array( $this, 'set_virtual_product_price' ), PHP_INT_MAX, 3 );
 
 
 
 
181
 
182
  // Send order notice directly after new order is being added - use these filters because order status has to be updated already
183
  add_filter( 'woocommerce_payment_successful_result', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
184
  add_filter( 'woocommerce_checkout_no_payment_needed_redirect', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
185
-
186
  // Remove processing + on-hold default order confirmation mails
187
  $mailer = WC()->mailer();
188
  $mails = $mailer->get_emails();
@@ -190,6 +196,7 @@ final class WooCommerce_Germanized {
190
  remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $mails[ 'WC_Email_Customer_Processing_Order' ], 'trigger' ) );
191
  remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $mails[ 'WC_Email_New_Order' ], 'trigger' ) );
192
  remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $mails[ 'WC_Email_New_Order' ], 'trigger' ) );
 
193
 
194
  $this->units = new WC_GZD_Units();
195
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
@@ -203,14 +210,6 @@ final class WooCommerce_Germanized {
203
  }
204
  }
205
 
206
- /**
207
- * Replace the default WC_Cart by WC_GZD_Cart for EU virtual VAT rules.
208
- */
209
- public function replace_woocommerce_cart() {
210
- if ( ! is_admin() || defined( 'DOING_AJAX' ) && get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' )
211
- WC()->cart = new WC_GZD_Cart();
212
- }
213
-
214
  /**
215
  * Auto-load WC_Germanized classes on demand to reduce memory consumption.
216
  *
@@ -294,6 +293,7 @@ final class WooCommerce_Germanized {
294
  include_once 'includes/abstracts/abstract-wc-gzd-product.php';
295
  include_once 'includes/abstracts/abstract-wc-gzd-payment-gateway.php';
296
 
 
297
  include_once 'includes/wc-gzd-cart-functions.php';
298
  include_once 'includes/class-wc-gzd-checkout.php';
299
 
@@ -382,6 +382,8 @@ final class WooCommerce_Germanized {
382
  * @return array filtered gateway array
383
  */
384
  public function payment_gateway_filter( $gateways ) {
 
 
385
  if ( ! empty( $gateways ) ) {
386
  foreach ( $gateways as $key => $gateway ) {
387
  if ( $gateway == 'WC_Gateway_BACS' )
@@ -395,6 +397,68 @@ final class WooCommerce_Germanized {
395
  return $gateways;
396
  }
397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  /**
399
  * Gets payment gateways which are ready to accept fees.
400
  *
@@ -608,6 +672,7 @@ final class WooCommerce_Germanized {
608
  $mails = $mailer->get_emails();
609
  $mails[ 'WC_Email_Customer_Processing_Order' ]->trigger( $order->id );
610
  $mails[ 'WC_Email_New_Order' ]->trigger( $order->id );
 
611
  return $return;
612
  }
613
 
@@ -620,7 +685,7 @@ final class WooCommerce_Germanized {
620
  * @return adjusted price
621
  */
622
  public function set_virtual_product_price( $price, $qty, $product ) {
623
- if ( ! $product->is_virtual_vat_exception() || ! isset( WC()->cart ) || ! WC()->cart->is_virtual_taxable() )
624
  return $price;
625
  if ( get_option('woocommerce_prices_include_tax') === 'yes' )
626
  return $product->get_price() * $qty;
@@ -695,4 +760,4 @@ function WC_germanized() {
695
 
696
  $GLOBALS['woocommerce_germanized'] = WC_germanized();
697
 
698
- ?>
3
  * Plugin Name: WooCommerce Germanized
4
  * Plugin URI: http://www.vendidero.de/woocommerce-germanized
5
  * Description: Extends WooCommerce to become a legally compliant store for the german market.
6
+ * Version: 1.1.0
7
  * Author: Vendidero
8
  * Author URI: http://vendidero.de
9
  * Requires at least: 3.8
26
  *
27
  * @var string
28
  */
29
+ public $version = '1.1.0';
30
 
31
  /**
32
  * Single instance of WooCommerce Germanized Main Class
126
  add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
127
  add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
128
  add_action( 'woocommerce_init', array( $this, 'replace_woocommerce_cart' ), 0 );
129
+ add_action( 'woocommerce_init', array( $this, 'set_order_button_gateway_text' ), 1 );
130
+
131
+ // Payment Gateway Filter
132
+ add_filter( 'woocommerce_payment_gateways', array( $this, 'payment_gateway_filter' ), PHP_INT_MAX, 1 );
133
 
134
  // Loaded action
135
  do_action( 'woocommerce_germanized_loaded' );
175
  add_filter( 'woocommerce_email_classes', array( $this, 'add_emails' ) );
176
  add_filter( 'woocommerce_locate_core_template', array( $this, 'email_templates' ), 0, 3 );
177
  add_action( 'woocommerce_email_order_meta', array( $this, 'email_small_business_notice' ), 1 );
 
 
178
  // Add better tax display to order totals
179
  add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
180
  add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fee_cart' ), 0 );
181
  // Adjust virtual Product Price and tax class
182
  add_filter( 'woocommerce_get_price_including_tax', array( $this, 'set_virtual_product_price' ), PHP_INT_MAX, 3 );
183
+ add_filter( 'get_post_metadata', array( $this, 'inject_gzd_product' ), 0, 4 );
184
+ // Hide cart estimated text if chosen
185
+ add_action( 'woocommerce_cart_totals_after_order_total', array( $this, 'hide_cart_estimated_text' ) );
186
+ add_action( 'woocommerce_after_cart_totals', array( $this, 'remove_cart_tax_zero_filter' ) );
187
 
188
  // Send order notice directly after new order is being added - use these filters because order status has to be updated already
189
  add_filter( 'woocommerce_payment_successful_result', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
190
  add_filter( 'woocommerce_checkout_no_payment_needed_redirect', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
191
+
192
  // Remove processing + on-hold default order confirmation mails
193
  $mailer = WC()->mailer();
194
  $mails = $mailer->get_emails();
196
  remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $mails[ 'WC_Email_Customer_Processing_Order' ], 'trigger' ) );
197
  remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $mails[ 'WC_Email_New_Order' ], 'trigger' ) );
198
  remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $mails[ 'WC_Email_New_Order' ], 'trigger' ) );
199
+ remove_action( 'woocommerce_order_status_pending_to_completed_notification', array( $mails[ 'WC_Email_New_Order' ], 'trigger' ) );
200
 
201
  $this->units = new WC_GZD_Units();
202
  $this->trusted_shops = new WC_GZD_Trusted_Shops();
210
  }
211
  }
212
 
 
 
 
 
 
 
 
 
213
  /**
214
  * Auto-load WC_Germanized classes on demand to reduce memory consumption.
215
  *
293
  include_once 'includes/abstracts/abstract-wc-gzd-product.php';
294
  include_once 'includes/abstracts/abstract-wc-gzd-payment-gateway.php';
295
 
296
+ include_once 'includes/wc-gzd-core-functions.php';
297
  include_once 'includes/wc-gzd-cart-functions.php';
298
  include_once 'includes/class-wc-gzd-checkout.php';
299
 
382
  * @return array filtered gateway array
383
  */
384
  public function payment_gateway_filter( $gateways ) {
385
+ // Needs to be included because filter is applied before WC_Germanized load
386
+ include_once 'includes/abstracts/abstract-wc-gzd-payment-gateway.php';
387
  if ( ! empty( $gateways ) ) {
388
  foreach ( $gateways as $key => $gateway ) {
389
  if ( $gateway == 'WC_Gateway_BACS' )
397
  return $gateways;
398
  }
399
 
400
+ /**
401
+ * Inject WC_GZD_Product into WC_Product by filtering postmeta
402
+ *
403
+ * @param mixed $metadata
404
+ * @param int $object_id
405
+ * @param string $meta_key
406
+ * @param boolean $single
407
+ * @return mixed
408
+ */
409
+ public function inject_gzd_product( $metadata, $object_id, $meta_key, $single ) {
410
+ if ( $meta_key == '_gzd_product' && in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) )
411
+ return wc_gzd_get_product( $object_id );
412
+ return $metadata;
413
+ }
414
+
415
+ /**
416
+ * Replace the default WC_Cart by WC_GZD_Cart for EU virtual VAT rules.
417
+ */
418
+ public function replace_woocommerce_cart() {
419
+ if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) == 'yes' && ( ! is_admin() || defined( 'DOING_AJAX' ) ) )
420
+ WC()->cart = new WC_GZD_Cart();
421
+ }
422
+
423
+ /**
424
+ * Set default order button text instead of the button text defined by each payment gateway.
425
+ * Can be overriden by setting force_order_button_text within payment gateway class
426
+ */
427
+ public function set_order_button_gateway_text() {
428
+ $gateways = WC()->payment_gateways->get_available_payment_gateways();
429
+ foreach( $gateways as $gateway ) {
430
+ if ( ! isset( $gateway->force_order_button_text ) || ! $gateway->force_order_button_text )
431
+ $gateway->order_button_text = __( get_option( 'woocommerce_gzd_order_submit_btn_text' ), 'woocommerce-germanized' );
432
+ }
433
+ }
434
+
435
+ /**
436
+ * Calls a filter to temporarily set cart tax to zero. This is only done to hide the cart tax estimated text.
437
+ * Filter is being remove right after get_cart_tax - check has been finished within cart-totals.php
438
+ */
439
+ public function hide_cart_estimated_text() {
440
+ if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' )
441
+ add_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
442
+ }
443
+
444
+ /**
445
+ * This will set the cart tax to zero
446
+ *
447
+ * @param float $tax current's cart tax
448
+ * @return int
449
+ */
450
+ public function set_cart_tax_zero( $tax ) {
451
+ return 0;
452
+ }
453
+
454
+ /**
455
+ * Removes the zero cart tax filter after get_cart_tax has been finished
456
+ */
457
+ public function remove_cart_tax_zero_filter() {
458
+ if ( get_option( 'woocommerce_gzd_display_hide_cart_tax_estimated' ) == 'yes' )
459
+ remove_filter( 'woocommerce_get_cart_tax', array( $this, 'set_cart_tax_zero' ) );
460
+ }
461
+
462
  /**
463
  * Gets payment gateways which are ready to accept fees.
464
  *
672
  $mails = $mailer->get_emails();
673
  $mails[ 'WC_Email_Customer_Processing_Order' ]->trigger( $order->id );
674
  $mails[ 'WC_Email_New_Order' ]->trigger( $order->id );
675
+ do_action( 'woocommerce_germanized_order_confirmation_sent', $order->id );
676
  return $return;
677
  }
678
 
685
  * @return adjusted price
686
  */
687
  public function set_virtual_product_price( $price, $qty, $product ) {
688
+ if ( ! $product->gzd_product->is_virtual_vat_exception() || ! isset( WC()->cart ) || ! WC()->cart->is_virtual_taxable() )
689
  return $price;
690
  if ( get_option('woocommerce_prices_include_tax') === 'yes' )
691
  return $product->get_price() * $qty;
760
 
761
  $GLOBALS['woocommerce_germanized'] = WC_germanized();
762
 
763
+ ?>