Version Description
- Feature - Applying new VAT rules for selling virtual products to EU countries
- Feature - Added option to set a label for displaying unit price
- Fix - Stop updating default order status to send order confirmation. Using (in)appropriate hooks instead
- Fix - Filter priority bug fix
Download this release
Release Info
Developer | vendidero |
Plugin | WooCommerce Germanized |
Version | 1.0.4 |
Comparing to | |
See all releases |
Code changes from version 1.0.3 to 1.0.4
- assets/css/woocommerce-gzd-admin.css +4 -0
- i18n/languages/woocommerce-germanized-de_DE.mo +0 -0
- i18n/languages/woocommerce-germanized-de_DE.po +202 -123
- includes/abstracts/abstract-wc-gzd-product.php +12 -1
- includes/admin/class-wc-gzd-admin-notices.php +21 -2
- includes/admin/class-wc-gzd-admin-welcome.php +14 -1
- includes/admin/settings/class-wc-gzd-settings-germanized.php +43 -1
- includes/admin/views/html-notice-install.php +9 -0
- includes/admin/views/html-notice-update.php +33 -0
- includes/class-wc-gzd-cart.php +352 -0
- includes/class-wc-gzd-checkout.php +6 -0
- includes/class-wc-gzd-emails.php +9 -9
- includes/class-wc-gzd-install.php +98 -4
- includes/class-wc-gzd-shortcodes.php +4 -4
- includes/wc-gzd-cart-functions.php +4 -4
- readme.txt +13 -2
- woocommerce-germanized.php +44 -11
assets/css/woocommerce-gzd-admin.css
CHANGED
@@ -43,6 +43,10 @@ table.data_table tr td p.form-field {
|
|
43 |
margin-top: 0.5em;
|
44 |
}
|
45 |
|
|
|
|
|
|
|
|
|
46 |
.wc-gzd-button {
|
47 |
background-color: #7b9f35 !important;
|
48 |
border: 1px solid #557020 !important;
|
43 |
margin-top: 0.5em;
|
44 |
}
|
45 |
|
46 |
+
._billing_title_field, ._billing_address_1_field, ._shipping_title_field, ._shipping_address_1_field {
|
47 |
+
width: 100% !important;
|
48 |
+
}
|
49 |
+
|
50 |
.wc-gzd-button {
|
51 |
background-color: #7b9f35 !important;
|
52 |
border: 1px solid #557020 !important;
|
i18n/languages/woocommerce-germanized-de_DE.mo
CHANGED
Binary file
|
i18n/languages/woocommerce-germanized-de_DE.po
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WooCommerce Germanized v1.0.
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2014-09-29 12:26+0100\n"
|
6 |
-
"PO-Revision-Date: 2014-12-
|
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:
|
79 |
-
#: woocommerce-germanized.php:
|
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:
|
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:
|
102 |
#@ woocommerce-germanized
|
103 |
msgid "Go to WooCommerce Germanized Settings"
|
104 |
msgstr "zu den WooCommerce Germanized Einstellungen"
|
@@ -111,7 +111,7 @@ msgstr "zu den WooCommerce Germanized Einstellungen"
|
|
111 |
#: woocommerce-germanized.php:92
|
112 |
#@ woocommerce-germanized
|
113 |
msgid "Cheatin’ huh?"
|
114 |
-
msgstr "So geht das leider nicht..
|
115 |
|
116 |
#: includes/admin/class-wc-gzd-admin.php:54
|
117 |
#@ woocommerce-germanized
|
@@ -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:52
|
146 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
147 |
#@ woocommerce-germanized
|
148 |
msgid "None"
|
149 |
msgstr "Keine"
|
@@ -214,7 +214,7 @@ msgid "eKomi Options"
|
|
214 |
msgstr "eKomi Optionen"
|
215 |
|
216 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:65
|
217 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
218 |
#@ woocommerce-germanized
|
219 |
msgid "General"
|
220 |
msgstr "Allgemein"
|
@@ -375,201 +375,202 @@ msgstr "Dieser Text wird genutzt um die Kunden im Frontend über u.U. anfallende
|
|
375 |
msgid "plus {link}Shipping Costs{/link}"
|
376 |
msgstr "zzgl. {link}Versandkosten{/link}"
|
377 |
|
378 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
379 |
#@ woocommerce-germanized
|
380 |
msgid "Right of Recission"
|
381 |
msgstr "Widerrufsrecht"
|
382 |
|
383 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
384 |
#@ woocommerce-germanized
|
385 |
msgid "Revocation Address"
|
386 |
msgstr "Widerruf richten an"
|
387 |
|
388 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
389 |
#@ woocommerce-germanized
|
390 |
msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
|
391 |
msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
|
392 |
|
393 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
394 |
#@ woocommerce-germanized
|
395 |
msgid "E-Mails"
|
396 |
msgstr "E-Mails"
|
397 |
|
398 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
399 |
#@ woocommerce-germanized
|
400 |
msgid "Attach Imprint"
|
401 |
msgstr "Impressum"
|
402 |
|
403 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
404 |
#@ woocommerce-germanized
|
405 |
msgid "Attach Imprint to the following email templates"
|
406 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die das Impressum angehängt werden soll (Inhalt der oben ausgewählten Impressum-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
407 |
|
408 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
409 |
#@ woocommerce-germanized
|
410 |
msgid "Attach Terms & Conditions"
|
411 |
msgstr "AGB"
|
412 |
|
413 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
414 |
#@ woocommerce-germanized
|
415 |
msgid "Attach Terms & Conditions to the following email templates"
|
416 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die AGB angehängt werden soll (Inhalt der in den WooCommerce-Einstellungen ausgewählten AGB-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
417 |
|
418 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
419 |
#@ woocommerce-germanized
|
420 |
msgid "Attach Power of Recission"
|
421 |
msgstr "Widerrufsbelehrung"
|
422 |
|
423 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
424 |
#@ woocommerce-germanized
|
425 |
msgid "Attach Power of Recission to the following email templates"
|
426 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die Widerrufsbelehrung angehängt werden soll (Inhalt der oben ausgewählten Widerrufsbelehrungs-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite). Standardmäßig sollte hier zumindest \"Bestellung in Abwicklung\" ausgewählt werden."
|
427 |
|
428 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
429 |
#@ woocommerce-germanized
|
430 |
msgid "Attach Data Security"
|
431 |
msgstr "Datenschutzbelehrung"
|
432 |
|
433 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
434 |
#@ woocommerce-germanized
|
435 |
msgid "Attach Data Security Statement to the following email templates"
|
436 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die Datenschutzbelehrung angehängt werden soll (Inhalt der oben ausgewählten Datenschutzbelehrungs-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
437 |
|
438 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
439 |
#@ woocommerce-germanized
|
440 |
msgid "Add to Cart"
|
441 |
msgstr "Zum Warenkorb Button"
|
442 |
|
443 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
444 |
#@ woocommerce-germanized
|
445 |
msgid "Show add to cart button on listings?"
|
446 |
msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
|
447 |
|
448 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
449 |
#@ woocommerce-germanized
|
450 |
msgid "unset this option if you don't want to show the add to cart button within the product listings"
|
451 |
msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
|
452 |
|
453 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
454 |
#@ woocommerce-germanized
|
455 |
msgid "Notice Footer"
|
456 |
msgstr "Hinweise im Footer"
|
457 |
|
458 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
459 |
#@ woocommerce-germanized
|
460 |
msgid "Show a global VAT notice within footer"
|
461 |
msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer darstellen"
|
462 |
|
463 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
464 |
#@ woocommerce-germanized
|
465 |
msgid "Show a global sale price notice within footer"
|
466 |
msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer darstellen"
|
467 |
|
468 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
469 |
#@ woocommerce-germanized
|
470 |
msgid "Products"
|
471 |
msgstr "Produkt"
|
472 |
|
473 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
474 |
#@ woocommerce-germanized
|
475 |
msgid "Show within Product Listings"
|
476 |
msgstr "In Produktlisten"
|
477 |
|
478 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
479 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
480 |
#@ woocommerce-germanized
|
481 |
msgid "Shipping Costs notice"
|
482 |
msgstr "Versandkosten-Hinweis"
|
483 |
|
484 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
485 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
|
|
486 |
#@ woocommerce-germanized
|
487 |
msgid "Unit Price"
|
488 |
msgstr "Einheitspreis"
|
489 |
|
490 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
491 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
492 |
#@ woocommerce-germanized
|
493 |
msgid "Delivery Time Notice"
|
494 |
msgstr "Lieferzeiten-Hinweis"
|
495 |
|
496 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
497 |
#@ woocommerce-germanized
|
498 |
msgid "Show on Product Detail Page"
|
499 |
msgstr "Auf der Produktseite"
|
500 |
|
501 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
502 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
503 |
#@ woocommerce-germanized
|
504 |
msgid "Tax Info"
|
505 |
msgstr "MwSt. Hinweis"
|
506 |
|
507 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
508 |
#@ woocommerce-germanized
|
509 |
msgid "Checkout & Cart"
|
510 |
msgstr "Checkout & Warenkorb"
|
511 |
|
512 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
513 |
#@ woocommerce-germanized
|
514 |
msgid "Checkout Legal Display"
|
515 |
msgstr "Checkbox oder Text"
|
516 |
|
517 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
518 |
#@ woocommerce-germanized
|
519 |
msgid "Use Text without Checkbox"
|
520 |
msgstr "Rechtshinweis ohne Checkbox"
|
521 |
|
522 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
523 |
#@ woocommerce-germanized
|
524 |
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)."
|
525 |
msgstr "Diese Option nutzt anstatt einer Checkbox einen ausformulierten Text direkt überhalb des Kauf abschließen Buttons (Zalando und Andere Shops verwenden diese Form)"
|
526 |
|
527 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
528 |
#@ woocommerce-germanized
|
529 |
msgid "Legal Text"
|
530 |
msgstr "Rechtlicher Hinweistext"
|
531 |
|
532 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
533 |
#@ woocommerce-germanized
|
534 |
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."
|
535 |
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."
|
536 |
|
537 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
538 |
#@ woocommerce-germanized
|
539 |
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}."
|
540 |
msgstr "Mit Ihrer Bestellung erklären Sie sich mit unseren {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link} einverstanden."
|
541 |
|
542 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
543 |
#@ woocommerce-germanized
|
544 |
msgid "Legal Text Error"
|
545 |
msgstr "Fehlermeldung der Checkbox"
|
546 |
|
547 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
548 |
#@ woocommerce-germanized
|
549 |
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."
|
550 |
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}"
|
551 |
|
552 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
553 |
#@ woocommerce-germanized
|
554 |
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}."
|
555 |
msgstr "Bitte akzeptieren Sie unsere {term_link}Allgemeinen Geschäftsbedingungen{/term_link} und {revocation_link}Widerrufsbestimmungen{/revocation_link}."
|
556 |
|
557 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
558 |
#@ woocommerce-germanized
|
559 |
msgid "Order Success Text"
|
560 |
msgstr "Bestellung eingegangen"
|
561 |
|
562 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
563 |
#@ woocommerce-germanized
|
564 |
msgid "Choose a custom text to display on order success page."
|
565 |
msgstr "Hier können Sie einen individuellen kurzen Text eingeben, der nach der Bestellung ausgegeben wird."
|
566 |
|
567 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
568 |
#@ woocommerce-germanized
|
569 |
msgid "Order Success Data"
|
570 |
msgstr "Bestellbestätigungs-Daten"
|
571 |
|
572 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
573 |
#@ woocommerce-germanized
|
574 |
msgid "Hide product table and customer data on order success page"
|
575 |
msgstr "Zusätzliche Produktdetails (Tabelle, Kundeninformationen) von der Bestellbestätigungs-Seite entfernen"
|
@@ -587,7 +588,7 @@ msgstr "Nur ein paar Schritte trennen Sie vom rechtssicheren Online-Shop:"
|
|
587 |
#: includes/admin/views/html-notice-install.php:19
|
588 |
#@ woocommerce-germanized
|
589 |
msgid "Germanize WooCommerce"
|
590 |
-
msgstr "WooCommerce
|
591 |
|
592 |
#: includes/admin/views/html-notice-install.php:23
|
593 |
#@ woocommerce-germanized
|
@@ -597,19 +598,19 @@ msgstr "Wir passen die WooCommerce Einstellungen automatisch an (z.B. Währung,
|
|
597 |
#: includes/admin/views/html-notice-install.php:28
|
598 |
#@ woocommerce-germanized
|
599 |
msgid "Generate Legal Pages"
|
600 |
-
msgstr "
|
601 |
|
602 |
#: includes/admin/views/html-notice-install.php:32
|
603 |
#@ woocommerce-germanized
|
604 |
msgid "We will automatically add legal pages such as Data Privacy Statement, Power of Revocation, Terms & Conditions etc."
|
605 |
msgstr "Wir legen die rechtlich relevanten Seiten z.B. Datenschutzbelehrung, Widerrufsbelehrung und AGB automatisch für Sie an."
|
606 |
|
607 |
-
#: includes/admin/views/html-notice-install.php:
|
608 |
#@ woocommerce-germanized
|
609 |
msgid "Install WooCommerce Germanized"
|
610 |
msgstr "WooCommerce Germanized installieren"
|
611 |
|
612 |
-
#: includes/admin/views/html-notice-install.php:
|
613 |
#@ woocommerce-germanized
|
614 |
msgid "Skip setup"
|
615 |
msgstr "Setup überspringen"
|
@@ -664,79 +665,79 @@ msgstr "Frau"
|
|
664 |
msgid "eKomi Customer"
|
665 |
msgstr "eKomi Kundenbewertung"
|
666 |
|
667 |
-
#: includes/class-wc-gzd-ekomi.php:
|
668 |
#@ woocommerce-germanized
|
669 |
msgctxt "ekomi"
|
670 |
msgid "Ekomi Integration"
|
671 |
msgstr "eKomi Integration"
|
672 |
|
673 |
-
#: includes/class-wc-gzd-ekomi.php:
|
674 |
#@ woocommerce-germanized
|
675 |
msgctxt "ekomi"
|
676 |
msgid "Shop ID"
|
677 |
msgstr "Shop ID"
|
678 |
|
679 |
-
#: includes/class-wc-gzd-ekomi.php:
|
680 |
#@ woocommerce-germanized
|
681 |
msgctxt "ekomi"
|
682 |
msgid "Insert your Shop ID here."
|
683 |
msgstr "Fügen Sie hier ihre Shop ID ein."
|
684 |
|
685 |
-
#: includes/class-wc-gzd-ekomi.php:
|
686 |
#@ woocommerce-germanized
|
687 |
msgctxt "ekomi"
|
688 |
msgid "Link to Certificate"
|
689 |
msgstr "Link zum Shop-Zertifikat"
|
690 |
|
691 |
-
#: includes/class-wc-gzd-ekomi.php:
|
692 |
#@ woocommerce-germanized
|
693 |
msgctxt "ekomi"
|
694 |
msgid "Insert the link to your Certificate"
|
695 |
msgstr "Fügen Sie hier den Link zu Ihrem Shop-Zertifikat ein"
|
696 |
|
697 |
-
#: includes/class-wc-gzd-ekomi.php:
|
698 |
#@ woocommerce-germanized
|
699 |
msgctxt "ekomi"
|
700 |
msgid "Partner ID"
|
701 |
msgstr "Partner ID"
|
702 |
|
703 |
-
#: includes/class-wc-gzd-ekomi.php:
|
704 |
#@ woocommerce-germanized
|
705 |
msgctxt "ekomi"
|
706 |
msgid "Insert your Partner ID here (you may find that ID on your certificate website)"
|
707 |
msgstr "Fügen Sie hier Ihre Partner ID ein (diese ID finden Sie z.B. auf Ihrer Zertifikat-Seite)"
|
708 |
|
709 |
-
#: includes/class-wc-gzd-ekomi.php:
|
710 |
#@ woocommerce-germanized
|
711 |
msgctxt "ekomi"
|
712 |
msgid "Interface ID"
|
713 |
msgstr "Interface ID"
|
714 |
|
715 |
-
#: includes/class-wc-gzd-ekomi.php:
|
716 |
#@ woocommerce-germanized
|
717 |
msgctxt "ekomi"
|
718 |
msgid "Insert your Interface ID here."
|
719 |
msgstr "Fügen Sie hier Ihre Interface ID ein (diese Daten finden Sie im eKomi Kundenbereich)"
|
720 |
|
721 |
-
#: includes/class-wc-gzd-ekomi.php:
|
722 |
#@ woocommerce-germanized
|
723 |
msgctxt "ekomi"
|
724 |
msgid "Interface Password"
|
725 |
msgstr "Interface Password"
|
726 |
|
727 |
-
#: includes/class-wc-gzd-ekomi.php:
|
728 |
#@ woocommerce-germanized
|
729 |
msgctxt "ekomi"
|
730 |
msgid "Insert your Interface Password here."
|
731 |
msgstr "Fügen Sie hier Ihr Interface Passwort ein (diese Daten finden Sie im eKomi Kundenbereich)"
|
732 |
|
733 |
-
#: includes/class-wc-gzd-ekomi.php:
|
734 |
#@ woocommerce-germanized
|
735 |
msgctxt "ekomi"
|
736 |
msgid "Days until Email"
|
737 |
msgstr "Tage bis E-Mail Erinnerung"
|
738 |
|
739 |
-
#: includes/class-wc-gzd-ekomi.php:
|
740 |
#@ woocommerce-germanized
|
741 |
msgctxt "ekomi"
|
742 |
msgid "Number of days between an order being marked as completed and review email to customer."
|
@@ -748,79 +749,79 @@ msgctxt "revocation-form"
|
|
748 |
msgid "Forward your Revocation online"
|
749 |
msgstr "Ihren Widerruf online erklären"
|
750 |
|
751 |
-
#: includes/class-wc-gzd-install.php:
|
752 |
#, php-format
|
753 |
#@ woocommerce-germanized
|
754 |
msgid "Please install <a href=\"%s\" target=\"_blank\">WooCommerce</a> before installing WooCommerce Germanized. Thank you!"
|
755 |
msgstr "Bitte installieren Sie <a href=\"%s\" target=\"_blank\">WooCommerce</a> bevor Sie WooCommerce Germanized installieren. Vielen Dank!"
|
756 |
|
757 |
-
#: includes/class-wc-gzd-install.php:
|
758 |
#@ woocommerce-germanized
|
759 |
msgctxt "Page slug"
|
760 |
msgid "data-security"
|
761 |
msgstr "datenschutzbelehrung"
|
762 |
|
763 |
-
#: includes/class-wc-gzd-install.php:
|
764 |
#@ woocommerce-germanized
|
765 |
msgctxt "Page title"
|
766 |
msgid "Data Security Statement"
|
767 |
msgstr "Datenschutzbelehrung"
|
768 |
|
769 |
-
#: includes/class-wc-gzd-install.php:
|
770 |
#@ woocommerce-germanized
|
771 |
msgctxt "Page slug"
|
772 |
msgid "imprint"
|
773 |
msgstr "impressum"
|
774 |
|
775 |
-
#: includes/class-wc-gzd-install.php:
|
776 |
#@ woocommerce-germanized
|
777 |
msgctxt "Page title"
|
778 |
msgid "Imprint"
|
779 |
msgstr "Impressum"
|
780 |
|
781 |
-
#: includes/class-wc-gzd-install.php:
|
782 |
#@ woocommerce-germanized
|
783 |
msgctxt "Page slug"
|
784 |
msgid "terms"
|
785 |
msgstr "agb"
|
786 |
|
787 |
-
#: includes/class-wc-gzd-install.php:
|
788 |
#@ woocommerce-germanized
|
789 |
msgctxt "Page title"
|
790 |
msgid "Terms & Conditions"
|
791 |
msgstr "AGB"
|
792 |
|
793 |
-
#: includes/class-wc-gzd-install.php:
|
794 |
#@ woocommerce-germanized
|
795 |
msgctxt "Page slug"
|
796 |
msgid "revocation"
|
797 |
msgstr "widerrufsbelehrung"
|
798 |
|
799 |
-
#: includes/class-wc-gzd-install.php:
|
800 |
#@ woocommerce-germanized
|
801 |
msgctxt "Page title"
|
802 |
msgid "Power of Revocation"
|
803 |
msgstr "Widerrufsbelehrung"
|
804 |
|
805 |
-
#: includes/class-wc-gzd-install.php:
|
806 |
#@ woocommerce-germanized
|
807 |
msgctxt "Page slug"
|
808 |
msgid "payment-methods"
|
809 |
msgstr "bezahlmoeglichkeiten"
|
810 |
|
811 |
-
#: includes/class-wc-gzd-install.php:
|
812 |
#@ woocommerce-germanized
|
813 |
msgctxt "Page title"
|
814 |
msgid "Payment Methods"
|
815 |
msgstr "Zahlungsmethoden"
|
816 |
|
817 |
-
#: includes/class-wc-gzd-install.php:
|
818 |
#@ woocommerce-germanized
|
819 |
msgctxt "Page slug"
|
820 |
msgid "shipping-methods"
|
821 |
msgstr "versandmethoden"
|
822 |
|
823 |
-
#: includes/class-wc-gzd-install.php:
|
824 |
#@ woocommerce-germanized
|
825 |
msgctxt "Page title"
|
826 |
msgid "Shipping Methods"
|
@@ -1025,13 +1026,13 @@ msgctxt "trusted-shops"
|
|
1025 |
msgid "out of %s"
|
1026 |
msgstr "von %s"
|
1027 |
|
1028 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1029 |
#@ woocommerce-germanized
|
1030 |
msgctxt "trusted-shops"
|
1031 |
msgid "Trusted Shops Integration"
|
1032 |
msgstr "Trusted Shops Integration"
|
1033 |
|
1034 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1035 |
#, php-format
|
1036 |
#@ woocommerce-germanized
|
1037 |
msgctxt "trusted-shops"
|
@@ -1130,7 +1131,7 @@ msgstr "Bestellung bearbeiten"
|
|
1130 |
msgid "Choose a Payment Gateway"
|
1131 |
msgstr "Zahlungsmethode auswählen"
|
1132 |
|
1133 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1134 |
#: includes/wc-gzd-cart-functions.php:104
|
1135 |
#@ woocommerce-germanized
|
1136 |
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."
|
@@ -1294,12 +1295,12 @@ msgstr "Widerruf erklären"
|
|
1294 |
msgid "VAT free based on §19 UStG"
|
1295 |
msgstr "Umsatzsteuerbefreit nach §19 UStG"
|
1296 |
|
1297 |
-
#: woocommerce-germanized.php:
|
1298 |
#@ woocommerce
|
1299 |
msgid "Settings"
|
1300 |
msgstr "Einstellungen"
|
1301 |
|
1302 |
-
#: woocommerce-germanized.php:
|
1303 |
#@ woocommerce
|
1304 |
msgid "Order Total:"
|
1305 |
msgstr "Gesamtsumme"
|
@@ -1378,87 +1379,87 @@ msgctxt "trusted-shops"
|
|
1378 |
msgid "Trusted Shops Customer Reviews"
|
1379 |
msgstr "Trusted Shops Kundenbewertungen"
|
1380 |
|
1381 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1382 |
#@ woocommerce-germanized
|
1383 |
msgctxt "trusted-shops"
|
1384 |
msgid "TS-ID"
|
1385 |
msgstr "TS-ID"
|
1386 |
|
1387 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1388 |
#@ woocommerce-germanized
|
1389 |
msgctxt "trusted-shops"
|
1390 |
msgid "Insert your Trusted Shops ID here."
|
1391 |
msgstr "Füge hier deine Trusted Shops ID ein."
|
1392 |
|
1393 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1394 |
#@ woocommerce-germanized
|
1395 |
msgctxt "trusted-shops"
|
1396 |
msgid "Configure the Trustbadge for your shop"
|
1397 |
msgstr "Konfiguriere dein Trustbadge"
|
1398 |
|
1399 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1400 |
#, php-format
|
1401 |
#@ woocommerce-germanized
|
1402 |
msgctxt "trusted-shops"
|
1403 |
msgid "You'll find a step-by-step instruction for your shopsoftware in our integration center. <a href=\"%s\" target=\"_blank\">Click here</a>"
|
1404 |
msgstr "In unserem Integration Center findest du eine Schritt-für-Schritt Anleitung. Klicke <a href=\"%s\" target=\"_blank\">hier</a>."
|
1405 |
|
1406 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1407 |
#@ woocommerce-germanized
|
1408 |
msgctxt "trusted-shops"
|
1409 |
msgid "Trustbadge code"
|
1410 |
msgstr "Trustbadge Code"
|
1411 |
|
1412 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1413 |
#@ woocommerce-germanized
|
1414 |
msgctxt "trusted-shops"
|
1415 |
msgid "Fill in your trustbadge code here"
|
1416 |
msgstr "Trustbadge Code hier einfügen"
|
1417 |
|
1418 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1419 |
#@ woocommerce-germanized
|
1420 |
msgctxt "trusted-shops"
|
1421 |
msgid "If no further steps were required in the integration center, the Trustbadge is already displayed in your shop."
|
1422 |
msgstr "Sofern keine weiteren Installationsschritte im Integration Center beschrieben wurden, wird das Trustbadge jetzt im Frontend deines Shops angezeigt."
|
1423 |
|
1424 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1425 |
#@ woocommerce-germanized
|
1426 |
msgctxt "trusted-shops"
|
1427 |
msgid "Configure Customer Reviews"
|
1428 |
msgstr "Kundenbewertungen konfigurieren"
|
1429 |
|
1430 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1431 |
#@ woocommerce-germanized
|
1432 |
msgctxt "trusted-shops"
|
1433 |
msgid "Enable Review Widget"
|
1434 |
msgstr "Kundenbewertungswidget aktiveren"
|
1435 |
|
1436 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1437 |
#, php-format
|
1438 |
#@ woocommerce-germanized
|
1439 |
msgctxt "trusted-shops"
|
1440 |
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>."
|
1441 |
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."
|
1442 |
|
1443 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1444 |
#@ woocommerce-germanized
|
1445 |
msgctxt "trusted-shops"
|
1446 |
msgid "Enable Rich Snippets for Google"
|
1447 |
msgstr "Rich Snippets Anzeige in Google aktivieren"
|
1448 |
|
1449 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1450 |
#@ woocommerce-germanized
|
1451 |
msgctxt "trusted-shops"
|
1452 |
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."
|
1453 |
msgstr "Diese Option bewirkt, dass deine über Trusted Shops empfangenen Bewertungen als Rich Snippets im Shop als Widget verfügbar sind. "
|
1454 |
|
1455 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1456 |
#@ woocommerce-germanized
|
1457 |
msgctxt "trusted-shops"
|
1458 |
msgid "Assign payment methods"
|
1459 |
msgstr "Zahlungsmethoden zuweisen"
|
1460 |
|
1461 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1462 |
#@ woocommerce-germanized
|
1463 |
msgctxt "trusted-shops"
|
1464 |
msgid "About Trusted Shops"
|
@@ -1489,12 +1490,12 @@ msgctxt "trusted-shops"
|
|
1489 |
msgid "%s of %s based on %s <a href=\"%s\" target=\"_blank\">ratings</a>."
|
1490 |
msgstr "%s von %s basierend auf %s <a href=\"%s\" target=\"_blank\">Bewertungen</a>."
|
1491 |
|
1492 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1493 |
#@ woocommerce-germanized
|
1494 |
msgid "Checkout Table Color"
|
1495 |
msgstr "Hintergrundfarbe der Tabelle"
|
1496 |
|
1497 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1498 |
#@ woocommerce-germanized
|
1499 |
msgid "Choose the color of your checkout product table. This table should be highlighted within your checkout page."
|
1500 |
msgstr "Wähle die Farbe des Hintergrundes deiner Produkt-Tabelle im Checkout. Die Tabelle sollte sich farblich vom Rest des Inhalts abheben."
|
@@ -1539,65 +1540,65 @@ msgstr "Wir haben festgestellt, dass dein Theme scheinbar noch nicht für WooCom
|
|
1539 |
msgid "Check if fee is taxable."
|
1540 |
msgstr "MwSt.-Berechnung für Gebühr aktivieren."
|
1541 |
|
1542 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1543 |
#@ woocommerce-germanized
|
1544 |
msgid "Legal Digital Text"
|
1545 |
msgstr "Hinweis Digital"
|
1546 |
|
1547 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1548 |
#@ woocommerce-germanized
|
1549 |
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."
|
1550 |
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"
|
1551 |
|
1552 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1553 |
#@ woocommerce-germanized
|
1554 |
msgid "Link to Details"
|
1555 |
msgstr "Verlinkung zu Produktdetails"
|
1556 |
|
1557 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1558 |
#@ woocommerce-germanized
|
1559 |
msgid "Want to link to product details page instead of add to cart within listings?"
|
1560 |
msgstr "Anstatt des zum Warenkorb Buttons einen Button zur Produktdetail-Seite einfügen?"
|
1561 |
|
1562 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1563 |
#@ woocommerce-germanized
|
1564 |
msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
|
1565 |
msgstr "Wenn du lieber einen Link zu deiner Produktseite anstatt eines zum Warenkorb Buttons innerhalb von Produktauflistungen haben möchtest, dann setze einfach diese Option."
|
1566 |
|
1567 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1568 |
#@ woocommerce-germanized
|
1569 |
msgid "Product Details Text"
|
1570 |
msgstr "Produktdetails Text"
|
1571 |
|
1572 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1573 |
#@ woocommerce-germanized
|
1574 |
msgid "Details"
|
1575 |
msgstr "Details"
|
1576 |
|
1577 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1578 |
#@ woocommerce-germanized
|
1579 |
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."
|
1580 |
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."
|
1581 |
|
1582 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1583 |
#@ woocommerce-germanized
|
1584 |
msgctxt "trusted-shops"
|
1585 |
msgid "Enable Review Reminder"
|
1586 |
msgstr "Bewertungserinnerung aktivieren"
|
1587 |
|
1588 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1589 |
#@ woocommerce-germanized
|
1590 |
msgctxt "trusted-shops"
|
1591 |
msgid "This option will enable a one-time email review reminder being sent to your customer."
|
1592 |
msgstr "Diese Option sendet eine einmalige E-Mail Erinnerung bzgl. der Abgabe einer Bewertung über Trusted Shops an den Kunden."
|
1593 |
|
1594 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1595 |
#@ woocommerce-germanized
|
1596 |
msgctxt "trusted-shops"
|
1597 |
msgid "Days until reminder"
|
1598 |
msgstr "Tage bis zur Erinnerung"
|
1599 |
|
1600 |
-
#: includes/class-wc-gzd-trusted-shops.php:
|
1601 |
#@ woocommerce-germanized
|
1602 |
msgctxt "trusted-shops"
|
1603 |
msgid "Decide how many days after an order the email review reminder will be sent."
|
@@ -1673,19 +1674,97 @@ msgstr "jetzt Bewertung verfassen"
|
|
1673 |
msgid "Found Bugs?"
|
1674 |
msgstr "Bugs oder Wünsche melden"
|
1675 |
|
1676 |
-
|
1677 |
-
#: woocommerce-germanized.php:0
|
1678 |
-
#@ woocommerce-germanized
|
1679 |
-
msgid "1.0.2"
|
1680 |
-
msgstr "1.0.2"
|
1681 |
-
|
1682 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:385
|
1683 |
#@ woocommerce-germanized
|
1684 |
msgid "Shipping Costs for Virtual"
|
1685 |
msgstr "Versandkosten für virtuelle Produkte"
|
1686 |
|
1687 |
-
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:
|
1688 |
#@ woocommerce-germanized
|
1689 |
msgid "Select this option if you want to display shipping costs notice for virtual products."
|
1690 |
msgstr "Setze diese Option, falls du für virtuelle Produkte auch einen Versandkosten-Hinweis anzeigen möchtest."
|
1691 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WooCommerce Germanized v1.0.4\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2014-09-29 12:26+0100\n"
|
6 |
+
"PO-Revision-Date: 2014-12-19 18:38:47+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: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 |
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"
|
111 |
#: woocommerce-germanized.php:92
|
112 |
#@ woocommerce-germanized
|
113 |
msgid "Cheatin’ huh?"
|
114 |
+
msgstr "So geht das leider nicht.."
|
115 |
|
116 |
#: includes/admin/class-wc-gzd-admin.php:54
|
117 |
#@ woocommerce-germanized
|
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:52
|
146 |
+
#: includes/class-wc-gzd-trusted-shops.php:342
|
147 |
#@ woocommerce-germanized
|
148 |
msgid "None"
|
149 |
msgstr "Keine"
|
214 |
msgstr "eKomi Optionen"
|
215 |
|
216 |
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:65
|
217 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:295
|
218 |
#@ woocommerce-germanized
|
219 |
msgid "General"
|
220 |
msgstr "Allgemein"
|
375 |
msgid "plus {link}Shipping Costs{/link}"
|
376 |
msgstr "zzgl. {link}Versandkosten{/link}"
|
377 |
|
378 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:217
|
379 |
#@ woocommerce-germanized
|
380 |
msgid "Right of Recission"
|
381 |
msgstr "Widerrufsrecht"
|
382 |
|
383 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:220
|
384 |
#@ woocommerce-germanized
|
385 |
msgid "Revocation Address"
|
386 |
msgstr "Widerruf richten an"
|
387 |
|
388 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:221
|
389 |
#@ woocommerce-germanized
|
390 |
msgid "Type in an address, telephone/telefax number, email address which is to be used as revocation address"
|
391 |
msgstr "Geben Sie hier Ihre Adresse, Telefon- und Faxnummer, E-Mail Adresse usw. an, an die Ihre Kunden Ihren Widerruf richten sollen"
|
392 |
|
393 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:230
|
394 |
#@ woocommerce-germanized
|
395 |
msgid "E-Mails"
|
396 |
msgstr "E-Mails"
|
397 |
|
398 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:233
|
399 |
#@ woocommerce-germanized
|
400 |
msgid "Attach Imprint"
|
401 |
msgstr "Impressum"
|
402 |
|
403 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:234
|
404 |
#@ woocommerce-germanized
|
405 |
msgid "Attach Imprint to the following email templates"
|
406 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die das Impressum angehängt werden soll (Inhalt der oben ausgewählten Impressum-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
407 |
|
408 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:243
|
409 |
#@ woocommerce-germanized
|
410 |
msgid "Attach Terms & Conditions"
|
411 |
msgstr "AGB"
|
412 |
|
413 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:244
|
414 |
#@ woocommerce-germanized
|
415 |
msgid "Attach Terms & Conditions to the following email templates"
|
416 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die AGB angehängt werden soll (Inhalt der in den WooCommerce-Einstellungen ausgewählten AGB-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
417 |
|
418 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:253
|
419 |
#@ woocommerce-germanized
|
420 |
msgid "Attach Power of Recission"
|
421 |
msgstr "Widerrufsbelehrung"
|
422 |
|
423 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:254
|
424 |
#@ woocommerce-germanized
|
425 |
msgid "Attach Power of Recission to the following email templates"
|
426 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die Widerrufsbelehrung angehängt werden soll (Inhalt der oben ausgewählten Widerrufsbelehrungs-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite). Standardmäßig sollte hier zumindest \"Bestellung in Abwicklung\" ausgewählt werden."
|
427 |
|
428 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:264
|
429 |
#@ woocommerce-germanized
|
430 |
msgid "Attach Data Security"
|
431 |
msgstr "Datenschutzbelehrung"
|
432 |
|
433 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:265
|
434 |
#@ woocommerce-germanized
|
435 |
msgid "Attach Data Security Statement to the following email templates"
|
436 |
msgstr "Hier können Sie die E-Mail Templates auswählen, an die die Datenschutzbelehrung angehängt werden soll (Inhalt der oben ausgewählten Datenschutzbelehrungs-Seite bzw. des optionalen E-Mail Inhaltes dieser Seite)"
|
437 |
|
438 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:298
|
439 |
#@ woocommerce-germanized
|
440 |
msgid "Add to Cart"
|
441 |
msgstr "Zum Warenkorb Button"
|
442 |
|
443 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:299
|
444 |
#@ woocommerce-germanized
|
445 |
msgid "Show add to cart button on listings?"
|
446 |
msgstr "Den zum Warenkorb Button in Produktlisten darstellen?"
|
447 |
|
448 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:303
|
449 |
#@ woocommerce-germanized
|
450 |
msgid "unset this option if you don't want to show the add to cart button within the product listings"
|
451 |
msgstr "Deaktivieren Sie diese Option, wenn Sie den zum Warenkorb Button nicht innerhalb von Produktauflistungen darstellen möchten"
|
452 |
|
453 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:325
|
454 |
#@ woocommerce-germanized
|
455 |
msgid "Notice Footer"
|
456 |
msgstr "Hinweise im Footer"
|
457 |
|
458 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:326
|
459 |
#@ woocommerce-germanized
|
460 |
msgid "Show a global VAT notice within footer"
|
461 |
msgstr "Einen seitenübergreifenden Hinweis bzgl. der MwSt. im Footer darstellen"
|
462 |
|
463 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:334
|
464 |
#@ woocommerce-germanized
|
465 |
msgid "Show a global sale price notice within footer"
|
466 |
msgstr "Einen seitenübergreifenden Hinweis bzgl. reduzierter Preise im Footer darstellen"
|
467 |
|
468 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:343
|
469 |
#@ woocommerce-germanized
|
470 |
msgid "Products"
|
471 |
msgstr "Produkt"
|
472 |
|
473 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:346
|
474 |
#@ woocommerce-germanized
|
475 |
msgid "Show within Product Listings"
|
476 |
msgstr "In Produktlisten"
|
477 |
|
478 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:347
|
479 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:380
|
480 |
#@ woocommerce-germanized
|
481 |
msgid "Shipping Costs notice"
|
482 |
msgstr "Versandkosten-Hinweis"
|
483 |
|
484 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:203
|
485 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:363
|
486 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:396
|
487 |
#@ woocommerce-germanized
|
488 |
msgid "Unit Price"
|
489 |
msgstr "Einheitspreis"
|
490 |
|
491 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:371
|
492 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:404
|
493 |
#@ woocommerce-germanized
|
494 |
msgid "Delivery Time Notice"
|
495 |
msgstr "Lieferzeiten-Hinweis"
|
496 |
|
497 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:379
|
498 |
#@ woocommerce-germanized
|
499 |
msgid "Show on Product Detail Page"
|
500 |
msgstr "Auf der Produktseite"
|
501 |
|
502 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:355
|
503 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:388
|
504 |
#@ woocommerce-germanized
|
505 |
msgid "Tax Info"
|
506 |
msgstr "MwSt. Hinweis"
|
507 |
|
508 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:421
|
509 |
#@ woocommerce-germanized
|
510 |
msgid "Checkout & Cart"
|
511 |
msgstr "Checkout & Warenkorb"
|
512 |
|
513 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:432
|
514 |
#@ woocommerce-germanized
|
515 |
msgid "Checkout Legal Display"
|
516 |
msgstr "Checkbox oder Text"
|
517 |
|
518 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:433
|
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:435
|
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:441
|
529 |
#@ woocommerce-germanized
|
530 |
msgid "Legal Text"
|
531 |
msgstr "Rechtlicher Hinweistext"
|
532 |
|
533 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:442
|
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:444
|
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:451
|
544 |
#@ woocommerce-germanized
|
545 |
msgid "Legal Text Error"
|
546 |
msgstr "Fehlermeldung der Checkbox"
|
547 |
|
548 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:452
|
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:454
|
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:471
|
559 |
#@ woocommerce-germanized
|
560 |
msgid "Order Success Text"
|
561 |
msgstr "Bestellung eingegangen"
|
562 |
|
563 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:472
|
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:480
|
569 |
#@ woocommerce-germanized
|
570 |
msgid "Order Success Data"
|
571 |
msgstr "Bestellbestätigungs-Daten"
|
572 |
|
573 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:481
|
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"
|
588 |
#: includes/admin/views/html-notice-install.php:19
|
589 |
#@ woocommerce-germanized
|
590 |
msgid "Germanize WooCommerce"
|
591 |
+
msgstr "WooCommerce anpassen"
|
592 |
|
593 |
#: includes/admin/views/html-notice-install.php:23
|
594 |
#@ woocommerce-germanized
|
598 |
#: includes/admin/views/html-notice-install.php:28
|
599 |
#@ woocommerce-germanized
|
600 |
msgid "Generate Legal Pages"
|
601 |
+
msgstr "Rechtliche Hinweisseiten"
|
602 |
|
603 |
#: includes/admin/views/html-notice-install.php:32
|
604 |
#@ woocommerce-germanized
|
605 |
msgid "We will automatically add legal pages such as Data Privacy Statement, Power of Revocation, Terms & Conditions etc."
|
606 |
msgstr "Wir legen die rechtlich relevanten Seiten z.B. Datenschutzbelehrung, Widerrufsbelehrung und AGB automatisch für Sie an."
|
607 |
|
608 |
+
#: includes/admin/views/html-notice-install.php:49
|
609 |
#@ woocommerce-germanized
|
610 |
msgid "Install WooCommerce Germanized"
|
611 |
msgstr "WooCommerce Germanized installieren"
|
612 |
|
613 |
+
#: includes/admin/views/html-notice-install.php:49
|
614 |
#@ woocommerce-germanized
|
615 |
msgid "Skip setup"
|
616 |
msgstr "Setup überspringen"
|
665 |
msgid "eKomi Customer"
|
666 |
msgstr "eKomi Kundenbewertung"
|
667 |
|
668 |
+
#: includes/class-wc-gzd-ekomi.php:310
|
669 |
#@ woocommerce-germanized
|
670 |
msgctxt "ekomi"
|
671 |
msgid "Ekomi Integration"
|
672 |
msgstr "eKomi Integration"
|
673 |
|
674 |
+
#: includes/class-wc-gzd-ekomi.php:313
|
675 |
#@ woocommerce-germanized
|
676 |
msgctxt "ekomi"
|
677 |
msgid "Shop ID"
|
678 |
msgstr "Shop ID"
|
679 |
|
680 |
+
#: includes/class-wc-gzd-ekomi.php:314
|
681 |
#@ woocommerce-germanized
|
682 |
msgctxt "ekomi"
|
683 |
msgid "Insert your Shop ID here."
|
684 |
msgstr "Fügen Sie hier ihre Shop ID ein."
|
685 |
|
686 |
+
#: includes/class-wc-gzd-ekomi.php:322
|
687 |
#@ woocommerce-germanized
|
688 |
msgctxt "ekomi"
|
689 |
msgid "Link to Certificate"
|
690 |
msgstr "Link zum Shop-Zertifikat"
|
691 |
|
692 |
+
#: includes/class-wc-gzd-ekomi.php:323
|
693 |
#@ woocommerce-germanized
|
694 |
msgctxt "ekomi"
|
695 |
msgid "Insert the link to your Certificate"
|
696 |
msgstr "Fügen Sie hier den Link zu Ihrem Shop-Zertifikat ein"
|
697 |
|
698 |
+
#: includes/class-wc-gzd-ekomi.php:331
|
699 |
#@ woocommerce-germanized
|
700 |
msgctxt "ekomi"
|
701 |
msgid "Partner ID"
|
702 |
msgstr "Partner ID"
|
703 |
|
704 |
+
#: includes/class-wc-gzd-ekomi.php:332
|
705 |
#@ woocommerce-germanized
|
706 |
msgctxt "ekomi"
|
707 |
msgid "Insert your Partner ID here (you may find that ID on your certificate website)"
|
708 |
msgstr "Fügen Sie hier Ihre Partner ID ein (diese ID finden Sie z.B. auf Ihrer Zertifikat-Seite)"
|
709 |
|
710 |
+
#: includes/class-wc-gzd-ekomi.php:340
|
711 |
#@ woocommerce-germanized
|
712 |
msgctxt "ekomi"
|
713 |
msgid "Interface ID"
|
714 |
msgstr "Interface ID"
|
715 |
|
716 |
+
#: includes/class-wc-gzd-ekomi.php:341
|
717 |
#@ woocommerce-germanized
|
718 |
msgctxt "ekomi"
|
719 |
msgid "Insert your Interface ID here."
|
720 |
msgstr "Fügen Sie hier Ihre Interface ID ein (diese Daten finden Sie im eKomi Kundenbereich)"
|
721 |
|
722 |
+
#: includes/class-wc-gzd-ekomi.php:349
|
723 |
#@ woocommerce-germanized
|
724 |
msgctxt "ekomi"
|
725 |
msgid "Interface Password"
|
726 |
msgstr "Interface Password"
|
727 |
|
728 |
+
#: includes/class-wc-gzd-ekomi.php:350
|
729 |
#@ woocommerce-germanized
|
730 |
msgctxt "ekomi"
|
731 |
msgid "Insert your Interface Password here."
|
732 |
msgstr "Fügen Sie hier Ihr Interface Passwort ein (diese Daten finden Sie im eKomi Kundenbereich)"
|
733 |
|
734 |
+
#: includes/class-wc-gzd-ekomi.php:358
|
735 |
#@ woocommerce-germanized
|
736 |
msgctxt "ekomi"
|
737 |
msgid "Days until Email"
|
738 |
msgstr "Tage bis E-Mail Erinnerung"
|
739 |
|
740 |
+
#: includes/class-wc-gzd-ekomi.php:359
|
741 |
#@ woocommerce-germanized
|
742 |
msgctxt "ekomi"
|
743 |
msgid "Number of days between an order being marked as completed and review email to customer."
|
749 |
msgid "Forward your Revocation online"
|
750 |
msgstr "Ihren Widerruf online erklären"
|
751 |
|
752 |
+
#: includes/class-wc-gzd-install.php:103
|
753 |
#, php-format
|
754 |
#@ woocommerce-germanized
|
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"
|
1026 |
msgid "out of %s"
|
1027 |
msgstr "von %s"
|
1028 |
|
1029 |
+
#: includes/class-wc-gzd-trusted-shops.php:346
|
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:442
|
1036 |
#, php-format
|
1037 |
#@ woocommerce-germanized
|
1038 |
msgctxt "trusted-shops"
|
1131 |
msgid "Choose a Payment Gateway"
|
1132 |
msgstr "Zahlungsmethode auswählen"
|
1133 |
|
1134 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:464
|
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."
|
1295 |
msgid "VAT free based on §19 UStG"
|
1296 |
msgstr "Umsatzsteuerbefreit nach §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"
|
1379 |
msgid "Trusted Shops Customer Reviews"
|
1380 |
msgstr "Trusted Shops Kundenbewertungen"
|
1381 |
|
1382 |
+
#: includes/class-wc-gzd-trusted-shops.php:349
|
1383 |
#@ woocommerce-germanized
|
1384 |
msgctxt "trusted-shops"
|
1385 |
msgid "TS-ID"
|
1386 |
msgstr "TS-ID"
|
1387 |
|
1388 |
+
#: includes/class-wc-gzd-trusted-shops.php:350
|
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:359
|
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:359
|
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:362
|
1408 |
#@ woocommerce-germanized
|
1409 |
msgctxt "trusted-shops"
|
1410 |
msgid "Trustbadge code"
|
1411 |
msgstr "Trustbadge Code"
|
1412 |
|
1413 |
+
#: includes/class-wc-gzd-trusted-shops.php:365
|
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:365
|
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:372
|
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:375
|
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:376
|
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:384
|
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:385
|
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:412
|
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:461
|
1463 |
#@ woocommerce-germanized
|
1464 |
msgctxt "trusted-shops"
|
1465 |
msgid "About 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:424
|
1494 |
#@ woocommerce-germanized
|
1495 |
msgid "Checkout Table Color"
|
1496 |
msgstr "Hintergrundfarbe der Tabelle"
|
1497 |
|
1498 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:426
|
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:461
|
1544 |
#@ woocommerce-germanized
|
1545 |
msgid "Legal Digital Text"
|
1546 |
msgstr "Hinweis Digital"
|
1547 |
|
1548 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:462
|
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"
|
1552 |
|
1553 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:307
|
1554 |
#@ woocommerce-germanized
|
1555 |
msgid "Link to Details"
|
1556 |
msgstr "Verlinkung zu Produktdetails"
|
1557 |
|
1558 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:308
|
1559 |
#@ woocommerce-germanized
|
1560 |
msgid "Want to link to product details page instead of add to cart within listings?"
|
1561 |
msgstr "Anstatt des zum Warenkorb Buttons einen Button zur Produktdetail-Seite einfügen?"
|
1562 |
|
1563 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:312
|
1564 |
#@ woocommerce-germanized
|
1565 |
msgid "Decide whether you like to link to your product's details page instead of displaying an add to cart button within product listings."
|
1566 |
msgstr "Wenn du lieber einen Link zu deiner Produktseite anstatt eines zum Warenkorb Buttons innerhalb von Produktauflistungen haben möchtest, dann setze einfach diese Option."
|
1567 |
|
1568 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:316
|
1569 |
#@ woocommerce-germanized
|
1570 |
msgid "Product Details Text"
|
1571 |
msgstr "Produktdetails Text"
|
1572 |
|
1573 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:318
|
1574 |
#@ woocommerce-germanized
|
1575 |
msgid "Details"
|
1576 |
msgstr "Details"
|
1577 |
|
1578 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:320
|
1579 |
#@ woocommerce-germanized
|
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:393
|
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:394
|
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:402
|
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:403
|
1602 |
#@ woocommerce-germanized
|
1603 |
msgctxt "trusted-shops"
|
1604 |
msgid "Decide how many days after an order the email review reminder will be sent."
|
1674 |
msgid "Found Bugs?"
|
1675 |
msgstr "Bugs oder Wünsche melden"
|
1676 |
|
1677 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:412
|
|
|
|
|
|
|
|
|
|
|
|
|
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:413
|
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."
|
1696 |
+
|
1697 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:275
|
1698 |
+
#@ woocommerce-germanized
|
1699 |
+
msgid "Virtual VAT"
|
1700 |
+
msgstr "USt. Änderung 2015"
|
1701 |
+
|
1702 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:278
|
1703 |
+
#@ woocommerce-germanized
|
1704 |
+
msgid "Enable Virtual VAT"
|
1705 |
+
msgstr "USt. Anpassung aktivieren"
|
1706 |
+
|
1707 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:279
|
1708 |
+
#@ woocommerce-germanized
|
1709 |
+
msgid "Enable if you want to charge your customer's countries' VAT for virtual products."
|
1710 |
+
msgstr "Aktiviere diese Option um für virtuelle Produkte den USt.-Satz des Dienstleistungsempfängers zu berechnen."
|
1711 |
+
|
1712 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:283
|
1713 |
+
#, php-format
|
1714 |
+
#@ woocommerce-germanized
|
1715 |
+
msgid "New EU VAT rule applies on 01.01.2015. Make sure that every digital or virtual product has chosen the right tax class (Virtual Rate or Virtual Reduced Rate). Gross prices will not differ from the prices you have chosen for affected products. In fact the net price will differ depending on the VAT rate of your customers' country. Shop settings will be adjusted to show prices including tax. More information can be found <a href=\"%s\" target=\"_blank\">here</a>."
|
1716 |
+
msgstr "Aktiviert die Änderungen der EU-Umsatzsteuerberechnung ab dem 01.01.2015. Von diesem Zeitpunkt an, muss beim Verkauf von Dienstleistungen (virtuelle, digitale Produkte z.B. e-Books) der USt.-Satz des Landes des Dienstleistungsempfängers berechnet werden (z.B. 20%% für Käufer aus AT). Diese Regel gilt für B2C Geschäfte. Mit dieser Einstellung bleiben die im Shop hinterlegten Brutto-Preise erhalten. Es gibt jedoch Schwankungen beim Netto-Preis (je nach Herkunftsland wird eine unterschiedlich hohe MwSt. berechnet). Die Shop-Einstellungen werden so angepasst, dass alle Preise im Shop inkl. MwSt. angezeigt werden und hinterlegt sind. Mehr Informationen dazu findest du <a href=\"%s\" target=\"_blank\">hier</a>."
|
1717 |
+
|
1718 |
+
#: includes/admin/views/html-notice-update.php:13
|
1719 |
+
#@ woocommerce-germanized
|
1720 |
+
msgid "<strong>Update WooCommerce Germanized</strong>"
|
1721 |
+
msgstr "<strong>WooCommerce Germanized aktualisieren</strong>"
|
1722 |
+
|
1723 |
+
#: includes/admin/views/html-notice-update.php:14
|
1724 |
+
#@ woocommerce-germanized
|
1725 |
+
msgid "If you are selling virtual products to EU countries different from your base country, you will have to charge the customers country VAT rate by 01.01.2015. If you want to install EU VAT rates automatically please choose the option below."
|
1726 |
+
msgstr "Wenn du virtuelle Produkte in das EU-Ausland verkaufst, gilt ab dem 01.01.2015 ein neues Gesetz für die Besteuerung dieser Produkte. Ab diesem Zeitpunkt wird bei B2C Geschäften die MwSt. des Dienstleistungsempfängers berechnet. Die Brutto-Preise dürfen im Checkout allerdings nicht angepasst werden (daraus folgen Schwankungen bei den Netto-Preisen). "
|
1727 |
+
|
1728 |
+
#: includes/admin/views/html-notice-install.php:37
|
1729 |
+
#: includes/admin/views/html-notice-update.php:19
|
1730 |
+
#@ woocommerce-germanized
|
1731 |
+
msgid "Generate EU VAT Rates"
|
1732 |
+
msgstr "EU MwSt.-Sätze anlegen"
|
1733 |
+
|
1734 |
+
#: includes/admin/views/html-notice-install.php:41
|
1735 |
+
#: includes/admin/views/html-notice-update.php:23
|
1736 |
+
#@ woocommerce-germanized
|
1737 |
+
msgid "We will automatically insert EU VAT Rates for selling virtual products."
|
1738 |
+
msgstr "Wir übernehmen das Einfügen der unterschiedlichen EU MwSt.-Sätze für dich."
|
1739 |
+
|
1740 |
+
#: includes/admin/views/html-notice-update.php:31
|
1741 |
+
#@ woocommerce-germanized
|
1742 |
+
msgid "Update WooCommerce Germanized"
|
1743 |
+
msgstr "WooCommerce Germanized aktualisieren"
|
1744 |
+
|
1745 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:206
|
1746 |
+
#@ woocommerce-germanized
|
1747 |
+
msgid "Unit Price Text"
|
1748 |
+
msgstr "Einheitspreis Text"
|
1749 |
+
|
1750 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:207
|
1751 |
+
#@ woocommerce-germanized
|
1752 |
+
msgid "This text will be used to display the unit price. Use {price} to insert the price."
|
1753 |
+
msgstr "Dieser Text wird verwendet um den Einheitspreis darzustellen. Nutze {price} als Platzhalter für den eigentlichen Preis."
|
1754 |
+
|
1755 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:212
|
1756 |
+
#@ woocommerce-germanized
|
1757 |
+
msgid "{price}"
|
1758 |
+
msgstr "{price}"
|
1759 |
+
|
1760 |
+
#: includes/admin/settings/class-wc-gzd-settings-germanized.php:592
|
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."
|
1764 |
+
|
1765 |
+
#. translators: plugin header field 'Version'
|
1766 |
+
#: woocommerce-germanized.php:0
|
1767 |
+
#@ woocommerce-germanized
|
1768 |
+
msgid "1.0.4"
|
1769 |
+
msgstr "1.0.4"
|
1770 |
+
|
includes/abstracts/abstract-wc-gzd-product.php
CHANGED
@@ -57,6 +57,15 @@ class WC_GZD_Product extends WC_Product {
|
|
57 |
return false;
|
58 |
}
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
/**
|
61 |
* Gets a product's tax description (if is taxable)
|
62 |
*
|
@@ -69,6 +78,8 @@ class WC_GZD_Product extends WC_Product {
|
|
69 |
$tax_rates = $_tax->get_rates( $this->get_tax_class() );
|
70 |
if ( ! empty( $tax_rates ) ) {
|
71 |
$tax_rates = array_values( $tax_rates );
|
|
|
|
|
72 |
return ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s VAT', 'woocommerce-germanized' ), ( (int) $tax_rates[0][ 'rate' ] ) . '%' ) : sprintf( __( 'excl. %s VAT', 'woocommerce-germanized' ), ( (int) $tax_rates[0][ 'rate' ] ) . '%' ) );
|
73 |
}
|
74 |
}
|
@@ -178,7 +189,7 @@ class WC_GZD_Product extends WC_Product {
|
|
178 |
$display_regular_price = $this->get_unit_price( 1, $this->get_unit_regular_price() );
|
179 |
$display_sale_price = $this->get_unit_price( 1, $this->get_unit_sale_price() );
|
180 |
$price_html = ( $this->is_on_unit_sale() ? $this->get_price_html_from_to( $display_regular_price, $display_sale_price ) : wc_price( $display_price ) );
|
181 |
-
return ( $this->has_unit() ) ? $price_html . $this->get_price_suffix() . apply_filters( 'wc_gzd_unit_price_seperator', ' / ' ) . $this->get_unit_base() : '';
|
182 |
}
|
183 |
|
184 |
/**
|
57 |
return false;
|
58 |
}
|
59 |
|
60 |
+
/**
|
61 |
+
* Checks whether current product applies for a virtual VAT exception (downloadable or virtual)
|
62 |
+
*
|
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 |
/**
|
70 |
* Gets a product's tax description (if is taxable)
|
71 |
*
|
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() )
|
82 |
+
return ( $tax_display_mode == 'incl' ? __( 'incl. VAT', 'woocommerce-germanized' ) : __( 'excl. VAT', 'woocommerce-germanized' ) );
|
83 |
return ( $tax_display_mode == 'incl' ? sprintf( __( 'incl. %s VAT', 'woocommerce-germanized' ), ( (int) $tax_rates[0][ 'rate' ] ) . '%' ) : sprintf( __( 'excl. %s VAT', 'woocommerce-germanized' ), ( (int) $tax_rates[0][ 'rate' ] ) . '%' ) );
|
84 |
}
|
85 |
}
|
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 |
/**
|
includes/admin/class-wc-gzd-admin-notices.php
CHANGED
@@ -19,7 +19,26 @@ if ( ! class_exists( 'WC_GZD_Admin_Notices' ) ) :
|
|
19 |
*/
|
20 |
class WC_GZD_Admin_Notices {
|
21 |
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
add_action( 'admin_init', array( $this, 'check_notice_hide' ) );
|
24 |
add_action( 'admin_print_styles', array( $this, 'add_notices' ), 1 );
|
25 |
}
|
@@ -124,4 +143,4 @@ class WC_GZD_Admin_Notices {
|
|
124 |
|
125 |
endif;
|
126 |
|
127 |
-
return
|
19 |
*/
|
20 |
class WC_GZD_Admin_Notices {
|
21 |
|
22 |
+
/**
|
23 |
+
* Single instance current class
|
24 |
+
*
|
25 |
+
* @var object
|
26 |
+
*/
|
27 |
+
protected static $_instance = null;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Ensures that only one instance of this class is loaded or can be loaded.
|
31 |
+
*
|
32 |
+
* @static
|
33 |
+
*/
|
34 |
+
public static function instance() {
|
35 |
+
if ( is_null( self::$_instance ) ) {
|
36 |
+
self::$_instance = new self();
|
37 |
+
}
|
38 |
+
return self::$_instance;
|
39 |
+
}
|
40 |
+
|
41 |
+
protected function __construct() {
|
42 |
add_action( 'admin_init', array( $this, 'check_notice_hide' ) );
|
43 |
add_action( 'admin_print_styles', array( $this, 'add_notices' ), 1 );
|
44 |
}
|
143 |
|
144 |
endif;
|
145 |
|
146 |
+
return WC_GZD_Admin_Notices::instance();
|
includes/admin/class-wc-gzd-admin-welcome.php
CHANGED
@@ -101,7 +101,7 @@ class WC_GZD_Admin_Welcome {
|
|
101 |
$major_version = substr( WC_germanized()->version, 0, 3 );
|
102 |
?>
|
103 |
<h1>Willkommen bei WooCommerce Germanized</h1>
|
104 |
-
<a class="wc-gzd-logo" href="" target="_blank"></a>
|
105 |
<div class="about-text woocommerce-about-text">
|
106 |
<?php
|
107 |
if ( ! empty( $_GET['wc-gzd-installed'] ) )
|
@@ -152,6 +152,19 @@ class WC_GZD_Admin_Welcome {
|
|
152 |
</div>
|
153 |
</div>
|
154 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
<div class="changelog">
|
156 |
<h3>WooCommerce Germanized - Funktionsübersicht</h3>
|
157 |
<div class="wc-feature feature-section col three-col">
|
101 |
$major_version = substr( WC_germanized()->version, 0, 3 );
|
102 |
?>
|
103 |
<h1>Willkommen bei WooCommerce Germanized</h1>
|
104 |
+
<a class="wc-gzd-logo" href="" target="_blank" style="margin-right: 1em"></a>
|
105 |
<div class="about-text woocommerce-about-text">
|
106 |
<?php
|
107 |
if ( ! empty( $_GET['wc-gzd-installed'] ) )
|
152 |
</div>
|
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>
|
167 |
+
</div>
|
168 |
<div class="changelog">
|
169 |
<h3>WooCommerce Germanized - Funktionsübersicht</h3>
|
170 |
<div class="wc-feature feature-section col three-col">
|
includes/admin/settings/class-wc-gzd-settings-germanized.php
CHANGED
@@ -200,6 +200,20 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
|
|
200 |
|
201 |
array( 'type' => 'sectionend', 'id' => 'shipping_costs_options' ),
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
array( 'title' => __( 'Right of Recission', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'recission_options' ),
|
204 |
|
205 |
array(
|
@@ -258,6 +272,19 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
|
|
258 |
|
259 |
array( 'type' => 'sectionend', 'id' => 'email_options' ),
|
260 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
) ); // End general settings
|
262 |
}
|
263 |
|
@@ -537,19 +564,34 @@ class WC_GZD_Settings_Germanized extends WC_Settings_Page {
|
|
537 |
update_option( 'woocommerce_calc_taxes', 'yes' );
|
538 |
update_option( 'woocommerce_prices_include_tax', 'yes' );
|
539 |
}
|
540 |
-
break;
|
541 |
} else if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_review_widget_enable' ) {
|
542 |
if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_review_widget_enable' ] ) && ! WC_germanized()->trusted_shops->is_review_widget_enabled() )
|
543 |
$update_reviews = true;
|
544 |
} else if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_rich_snippets_enable' ) {
|
545 |
if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_rich_snippets_enable' ] ) && ! WC_germanized()->trusted_shops->is_rich_snippets_enabled() )
|
546 |
$update_rich_snippets = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
}
|
548 |
}
|
549 |
}
|
550 |
|
551 |
WC_Admin_Settings::save_fields( $settings );
|
552 |
|
|
|
|
|
|
|
|
|
|
|
553 |
// Trusted Shops API
|
554 |
if ( $update_rich_snippets || $update_reviews ) {
|
555 |
$trusted_shops = new WC_GZD_Trusted_Shops();
|
200 |
|
201 |
array( 'type' => 'sectionend', 'id' => 'shipping_costs_options' ),
|
202 |
|
203 |
+
array( 'title' => __( 'Unit Price', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'unit_price_options' ),
|
204 |
+
|
205 |
+
array(
|
206 |
+
'title' => __( 'Unit Price Text', 'woocommerce-germanized' ),
|
207 |
+
'desc' => __( 'This text will be used to display the unit price. Use {price} to insert the price.', 'woocommerce-germanized' ),
|
208 |
+
'desc_tip' => true,
|
209 |
+
'id' => 'woocommerce_gzd_unit_price_text',
|
210 |
+
'type' => 'text',
|
211 |
+
'css' => 'min-width:300px;',
|
212 |
+
'default' => __( '{price}', 'woocommerce-germanized' ),
|
213 |
+
),
|
214 |
+
|
215 |
+
array( 'type' => 'sectionend', 'id' => 'unit_price_options' ),
|
216 |
+
|
217 |
array( 'title' => __( 'Right of Recission', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'recission_options' ),
|
218 |
|
219 |
array(
|
272 |
|
273 |
array( 'type' => 'sectionend', 'id' => 'email_options' ),
|
274 |
|
275 |
+
array( 'title' => __( 'Virtual VAT', 'woocommerce-germanized' ), 'type' => 'title', 'id' => 'virtual_vat_options' ),
|
276 |
+
|
277 |
+
array(
|
278 |
+
'title' => __( 'Enable Virtual VAT', 'woocommerce-germanized' ),
|
279 |
+
'desc' => __( 'Enable if you want to charge your customer\'s countries\' VAT for virtual products.', 'woocommerce-germanized' ),
|
280 |
+
'id' => 'woocommerce_gzd_enable_virtual_vat',
|
281 |
+
'default' => 'no',
|
282 |
+
'type' => 'checkbox',
|
283 |
+
'desc_tip' => sprintf( __( 'New EU VAT rule applies on 01.01.2015. Make sure that every digital or virtual product has chosen the right tax class (Virtual Rate or Virtual Reduced Rate). Gross prices will not differ from the prices you have chosen for affected products. In fact the net price will differ depending on the VAT rate of your customers\' country. Shop settings will be adjusted to show prices including tax. More information can be found <a href="%s" target="_blank">here</a>.', 'woocommerce-germanized' ), 'http://ec.europa.eu/taxation_customs/taxation/vat/how_vat_works/telecom/index_de.htm#new_rules' ),
|
284 |
+
),
|
285 |
+
|
286 |
+
array( 'type' => 'sectionend', 'id' => 'virtual_vat_options' ),
|
287 |
+
|
288 |
) ); // End general settings
|
289 |
}
|
290 |
|
564 |
update_option( 'woocommerce_calc_taxes', 'yes' );
|
565 |
update_option( 'woocommerce_prices_include_tax', 'yes' );
|
566 |
}
|
|
|
567 |
} else if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_review_widget_enable' ) {
|
568 |
if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_review_widget_enable' ] ) && ! WC_germanized()->trusted_shops->is_review_widget_enabled() )
|
569 |
$update_reviews = true;
|
570 |
} else if ( $setting[ 'id' ] == 'woocommerce_gzd_trusted_shops_rich_snippets_enable' ) {
|
571 |
if ( ! empty( $_POST[ 'woocommerce_gzd_trusted_shops_rich_snippets_enable' ] ) && ! WC_germanized()->trusted_shops->is_rich_snippets_enabled() )
|
572 |
$update_rich_snippets = true;
|
573 |
+
} else if ( $setting[ 'id' ] == 'woocommerce_gzd_enable_virtual_vat' ) {
|
574 |
+
if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' && ! empty( $_POST[ 'woocommerce_gzd_enable_virtual_vat' ] ) ) {
|
575 |
+
if ( ! empty( $_POST[ 'woocommerce_gzd_small_enterprise' ] ) )
|
576 |
+
continue;
|
577 |
+
// Update WooCommerce options to show prices including taxes
|
578 |
+
// Check if is small business
|
579 |
+
update_option( 'woocommerce_prices_include_tax', 'yes' );
|
580 |
+
update_option( 'woocommerce_tax_display_shop', 'incl' );
|
581 |
+
update_option( 'woocommerce_tax_display_cart', 'incl' );
|
582 |
+
update_option( 'woocommerce_tax_total_display', 'itemized' );
|
583 |
+
}
|
584 |
}
|
585 |
}
|
586 |
}
|
587 |
|
588 |
WC_Admin_Settings::save_fields( $settings );
|
589 |
|
590 |
+
if ( ! empty( $_POST[ 'woocommerce_gzd_small_enterprise' ] ) && ! empty( $_POST[ 'woocommerce_gzd_enable_virtual_vat' ] ) ) {
|
591 |
+
update_option( 'woocommerce_gzd_enable_virtual_vat', 'no' );
|
592 |
+
WC_Admin_Settings::add_error( __( 'Sorry, but the new Virtual VAT rules cannot be applied to small business.', 'woocommerce-germanized' ) );
|
593 |
+
}
|
594 |
+
|
595 |
// Trusted Shops API
|
596 |
if ( $update_rich_snippets || $update_reviews ) {
|
597 |
$trusted_shops = new WC_GZD_Trusted_Shops();
|
includes/admin/views/html-notice-install.php
CHANGED
@@ -33,6 +33,15 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
</label>
|
34 |
</td>
|
35 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
</tbody>
|
37 |
<input type="hidden" name="install_woocommerce_gzd" value="true" />
|
38 |
</table>
|
33 |
</label>
|
34 |
</td>
|
35 |
</tr>
|
36 |
+
<tr>
|
37 |
+
<th scope="row"><?php _e( 'Generate EU VAT Rates', 'woocommerce-germanized' );?></th>
|
38 |
+
<td>
|
39 |
+
<label for="install_woocommerce_gzd_tax_rates">
|
40 |
+
<input id="install_woocommerce_gzd_tax_rates" type="checkbox" value="true" name="install_woocommerce_gzd_tax_rates">
|
41 |
+
<?php _e( 'We will automatically insert EU VAT Rates for selling virtual products.', 'woocommerce-germanized' );?>
|
42 |
+
</label>
|
43 |
+
</td>
|
44 |
+
</tr>
|
45 |
</tbody>
|
46 |
<input type="hidden" name="install_woocommerce_gzd" value="true" />
|
47 |
</table>
|
includes/admin/views/html-notice-update.php
CHANGED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin View: Notice - Install
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
7 |
+
exit; // Exit if accessed directly
|
8 |
+
}
|
9 |
+
|
10 |
+
?>
|
11 |
+
|
12 |
+
<div id="message" class="updated woocommerce-message woocommerce-gzd-message wc-connect">
|
13 |
+
<h3><?php _e( '<strong>Update WooCommerce Germanized</strong>', 'woocommerce-germanized' ); ?></h3>
|
14 |
+
<p><?php echo _e( 'If you are selling virtual products to EU countries different from your base country, you will have to charge the customers country VAT rate by 01.01.2015. If you want to install EU VAT rates automatically please choose the option below.', 'woocommerce-germanized' ); ?></p>
|
15 |
+
<form name="" method="get">
|
16 |
+
<table class="form-table">
|
17 |
+
<tbody>
|
18 |
+
<tr>
|
19 |
+
<th scope="row"><?php _e( 'Generate EU VAT Rates', 'woocommerce-germanized' );?></th>
|
20 |
+
<td>
|
21 |
+
<label for="install_woocommerce_gzd_tax_rates">
|
22 |
+
<input id="install_woocommerce_gzd_tax_rates" type="checkbox" value="true" name="install_woocommerce_gzd_tax_rates">
|
23 |
+
<?php _e( 'We will automatically insert EU VAT Rates for selling virtual products.', 'woocommerce-germanized' );?>
|
24 |
+
</label>
|
25 |
+
</td>
|
26 |
+
</tr>
|
27 |
+
</tbody>
|
28 |
+
<input type="hidden" name="do_update_woocommerce_gzd" value="true" />
|
29 |
+
</table>
|
30 |
+
<p class="submit">
|
31 |
+
<input type="submit" class="button-primary" value="<?php _e( 'Update WooCommerce Germanized', 'woocommerce-germanized' );?>" /> </p>
|
32 |
+
</form>
|
33 |
+
</div>
|
includes/class-wc-gzd-cart.php
ADDED
@@ -0,0 +1,352 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce GZD cart
|
4 |
+
*
|
5 |
+
* Extends WooCommerce default cart to implement vat exception for digital products (if customer is not from shop base country)
|
6 |
+
*
|
7 |
+
* @class WC_GZD_Cart
|
8 |
+
* @see WC_Cart
|
9 |
+
* @version 1.0.0
|
10 |
+
* @author Vendidero
|
11 |
+
*/
|
12 |
+
class WC_GZD_Cart extends WC_Cart {
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Reset cart totals and clear sessions.
|
16 |
+
*
|
17 |
+
* @access private
|
18 |
+
* @return void
|
19 |
+
*/
|
20 |
+
private function reset() {
|
21 |
+
foreach ( $this->cart_session_data as $key => $default ) {
|
22 |
+
$this->$key = $default;
|
23 |
+
unset( WC()->session->$key );
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Calculate totals for cart. Implements vat exception for digital products.
|
29 |
+
*/
|
30 |
+
public function calculate_totals() {
|
31 |
+
|
32 |
+
$this->reset();
|
33 |
+
|
34 |
+
do_action( 'woocommerce_before_calculate_totals', $this );
|
35 |
+
|
36 |
+
if ( sizeof( $this->get_cart() ) == 0 ) {
|
37 |
+
$this->set_session();
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
|
41 |
+
$tax_rates = array();
|
42 |
+
$shop_tax_rates = array();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Calculate subtotals for items. This is done first so that discount logic can use the values.
|
46 |
+
*/
|
47 |
+
foreach ( $this->get_cart() as $cart_item_key => $values ) {
|
48 |
+
|
49 |
+
$_product = $values['data'];
|
50 |
+
|
51 |
+
// Count items + weight
|
52 |
+
$this->cart_contents_weight += $_product->get_weight() * $values['quantity'];
|
53 |
+
$this->cart_contents_count += $values['quantity'];
|
54 |
+
|
55 |
+
// Prices
|
56 |
+
$base_price = $_product->get_price();
|
57 |
+
$line_price = $_product->get_price() * $values['quantity'];
|
58 |
+
|
59 |
+
$line_subtotal = 0;
|
60 |
+
$line_subtotal_tax = 0;
|
61 |
+
|
62 |
+
/**
|
63 |
+
* No tax to calculate
|
64 |
+
*/
|
65 |
+
if ( ! $_product->is_taxable() ) {
|
66 |
+
|
67 |
+
// Subtotal is the undiscounted price
|
68 |
+
$this->subtotal += $line_price;
|
69 |
+
$this->subtotal_ex_tax += $line_price;
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Prices include tax
|
73 |
+
*
|
74 |
+
* To prevent rounding issues we need to work with the inclusive price where possible
|
75 |
+
* otherwise we'll see errors such as when working with a 9.99 inc price, 20% VAT which would
|
76 |
+
* be 8.325 leading to totals being 1p off
|
77 |
+
*
|
78 |
+
* Pre tax coupons come off the price the customer thinks they are paying - tax is calculated
|
79 |
+
* afterwards.
|
80 |
+
*
|
81 |
+
* e.g. $100 bike with $10 coupon = customer pays $90 and tax worked backwards from that
|
82 |
+
*/
|
83 |
+
} elseif ( $this->prices_include_tax ) {
|
84 |
+
|
85 |
+
// Get base tax rates
|
86 |
+
if ( empty( $shop_tax_rates[ $_product->tax_class ] ) )
|
87 |
+
$shop_tax_rates[ $_product->tax_class ] = $this->tax->get_shop_base_rate( $_product->tax_class );
|
88 |
+
|
89 |
+
// Get item tax rates
|
90 |
+
if ( empty( $tax_rates[ $_product->get_tax_class() ] ) )
|
91 |
+
$tax_rates[ $_product->get_tax_class() ] = $this->tax->get_rates( $_product->get_tax_class() );
|
92 |
+
|
93 |
+
$base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
|
94 |
+
$item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
|
95 |
+
|
96 |
+
/**
|
97 |
+
* ADJUST TAX - Calculations when base tax is not equal to the item tax
|
98 |
+
*/
|
99 |
+
if ( $item_tax_rates !== $base_tax_rates ) {
|
100 |
+
|
101 |
+
// Work out a new base price without the shop's base tax
|
102 |
+
$taxes = $this->tax->calc_tax( $line_price, $base_tax_rates, true, true );
|
103 |
+
|
104 |
+
// Digital VAT exception
|
105 |
+
if ( $this->is_virtual_taxable() && $_product->is_virtual_vat_exception() )
|
106 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true, true );
|
107 |
+
|
108 |
+
// Now we have a new item price (excluding TAX)
|
109 |
+
$line_subtotal = $line_price - array_sum( $taxes );
|
110 |
+
|
111 |
+
// Now add modifed taxes
|
112 |
+
$tax_result = $this->tax->calc_tax( $line_subtotal, $item_tax_rates );
|
113 |
+
$line_subtotal_tax = array_sum( $tax_result );
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Regular tax calculation (customer inside base and the tax class is unmodified
|
117 |
+
*/
|
118 |
+
} else {
|
119 |
+
|
120 |
+
// Calc tax normally
|
121 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true );
|
122 |
+
$line_subtotal_tax = array_sum( $taxes );
|
123 |
+
$line_subtotal = $line_price - array_sum( $taxes );
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Prices exclude tax
|
128 |
+
*
|
129 |
+
* This calculation is simpler - work with the base, untaxed price.
|
130 |
+
*/
|
131 |
+
} else {
|
132 |
+
|
133 |
+
// Get item tax rates
|
134 |
+
if ( empty( $tax_rates[ $_product->get_tax_class() ] ) )
|
135 |
+
$tax_rates[ $_product->get_tax_class() ] = $this->tax->get_rates( $_product->get_tax_class() );
|
136 |
+
|
137 |
+
$item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
|
138 |
+
|
139 |
+
// Base tax for line before discount - we will store this in the order data
|
140 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates );
|
141 |
+
$line_subtotal_tax = array_sum( $taxes );
|
142 |
+
$line_subtotal = $line_price;
|
143 |
+
}
|
144 |
+
|
145 |
+
// Add to main subtotal
|
146 |
+
$this->subtotal += $line_subtotal + $line_subtotal_tax;
|
147 |
+
$this->subtotal_ex_tax += $line_subtotal;
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Calculate totals for items
|
152 |
+
*/
|
153 |
+
foreach ( $this->get_cart() as $cart_item_key => $values ) {
|
154 |
+
|
155 |
+
$_product = $values['data'];
|
156 |
+
|
157 |
+
// Prices
|
158 |
+
$base_price = $_product->get_price();
|
159 |
+
$line_price = $_product->get_price() * $values['quantity'];
|
160 |
+
|
161 |
+
// Tax data
|
162 |
+
$taxes = array();
|
163 |
+
$discounted_taxes = array();
|
164 |
+
|
165 |
+
/**
|
166 |
+
* No tax to calculate
|
167 |
+
*/
|
168 |
+
if ( ! $_product->is_taxable() ) {
|
169 |
+
|
170 |
+
// Discounted Price (price with any pre-tax discounts applied)
|
171 |
+
$discounted_price = $this->get_discounted_price( $values, $base_price, true );
|
172 |
+
$discounted_tax_amount = 0;
|
173 |
+
$tax_amount = 0;
|
174 |
+
$line_subtotal_tax = 0;
|
175 |
+
$line_subtotal = $line_price;
|
176 |
+
$line_tax = 0;
|
177 |
+
$line_total = $this->tax->round( $discounted_price * $values['quantity'] );
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Prices include tax
|
181 |
+
*/
|
182 |
+
} elseif ( $this->prices_include_tax ) {
|
183 |
+
|
184 |
+
$base_tax_rates = $shop_tax_rates[ $_product->tax_class ];
|
185 |
+
$item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
|
186 |
+
|
187 |
+
/**
|
188 |
+
* ADJUST TAX - Calculations when base tax is not equal to the item tax
|
189 |
+
*/
|
190 |
+
if ( $item_tax_rates !== $base_tax_rates ) {
|
191 |
+
|
192 |
+
// Work out a new base price without the shop's base tax
|
193 |
+
$taxes = $this->tax->calc_tax( $line_price, $base_tax_rates, true, true );
|
194 |
+
|
195 |
+
// Digital tax exception
|
196 |
+
if ( $this->is_virtual_taxable() && $_product->is_virtual_vat_exception() )
|
197 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true, true );
|
198 |
+
|
199 |
+
// Now we have a new item price (excluding TAX)
|
200 |
+
$line_subtotal = round( $line_price - array_sum( $taxes ), WC_ROUNDING_PRECISION );
|
201 |
+
|
202 |
+
// Now add modifed taxes
|
203 |
+
$taxes = $this->tax->calc_tax( $line_subtotal, $item_tax_rates );
|
204 |
+
$line_subtotal_tax = array_sum( $taxes );
|
205 |
+
|
206 |
+
// Adjusted price (this is the price including the new tax rate)
|
207 |
+
$adjusted_price = ( $line_subtotal + $line_subtotal_tax ) / $values['quantity'];
|
208 |
+
|
209 |
+
// Apply discounts
|
210 |
+
$discounted_price = $this->get_discounted_price( $values, $adjusted_price, true );
|
211 |
+
$discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
|
212 |
+
$line_tax = array_sum( $discounted_taxes );
|
213 |
+
$line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Regular tax calculation (customer inside base and the tax class is unmodified
|
217 |
+
*/
|
218 |
+
} else {
|
219 |
+
|
220 |
+
// Work out a new base price without the shop's base tax
|
221 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates, true );
|
222 |
+
|
223 |
+
// Now we have a new item price (excluding TAX)
|
224 |
+
$line_subtotal = $line_price - array_sum( $taxes );
|
225 |
+
$line_subtotal_tax = array_sum( $taxes );
|
226 |
+
|
227 |
+
// Calc prices and tax (discounted)
|
228 |
+
$discounted_price = $this->get_discounted_price( $values, $base_price, true );
|
229 |
+
$discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates, true );
|
230 |
+
$line_tax = array_sum( $discounted_taxes );
|
231 |
+
$line_total = ( $discounted_price * $values['quantity'] ) - $line_tax;
|
232 |
+
}
|
233 |
+
|
234 |
+
// Tax rows - merge the totals we just got
|
235 |
+
foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
|
236 |
+
$this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* Prices exclude tax
|
241 |
+
*/
|
242 |
+
} else {
|
243 |
+
|
244 |
+
$item_tax_rates = $tax_rates[ $_product->get_tax_class() ];
|
245 |
+
|
246 |
+
// Work out a new base price without the shop's base tax
|
247 |
+
$taxes = $this->tax->calc_tax( $line_price, $item_tax_rates );
|
248 |
+
|
249 |
+
// Now we have the item price (excluding TAX)
|
250 |
+
$line_subtotal = $line_price;
|
251 |
+
$line_subtotal_tax = array_sum( $taxes );
|
252 |
+
|
253 |
+
// Now calc product rates
|
254 |
+
$discounted_price = $this->get_discounted_price( $values, $base_price, true );
|
255 |
+
$discounted_taxes = $this->tax->calc_tax( $discounted_price * $values['quantity'], $item_tax_rates );
|
256 |
+
$discounted_tax_amount = array_sum( $discounted_taxes );
|
257 |
+
$line_tax = $discounted_tax_amount;
|
258 |
+
$line_total = $discounted_price * $values['quantity'];
|
259 |
+
|
260 |
+
// Tax rows - merge the totals we just got
|
261 |
+
foreach ( array_keys( $this->taxes + $discounted_taxes ) as $key ) {
|
262 |
+
$this->taxes[ $key ] = ( isset( $discounted_taxes[ $key ] ) ? $discounted_taxes[ $key ] : 0 ) + ( isset( $this->taxes[ $key ] ) ? $this->taxes[ $key ] : 0 );
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
// Add any product discounts (after tax)
|
267 |
+
$this->apply_product_discounts_after_tax( $values, $line_total + $line_tax );
|
268 |
+
|
269 |
+
// Cart contents total is based on discounted prices and is used for the final total calculation
|
270 |
+
$this->cart_contents_total += $line_total;
|
271 |
+
|
272 |
+
// Store costs + taxes for lines
|
273 |
+
$this->cart_contents[ $cart_item_key ]['line_total'] = $line_total;
|
274 |
+
$this->cart_contents[ $cart_item_key ]['line_tax'] = $line_tax;
|
275 |
+
$this->cart_contents[ $cart_item_key ]['line_subtotal'] = $line_subtotal;
|
276 |
+
$this->cart_contents[ $cart_item_key ]['line_subtotal_tax'] = $line_subtotal_tax;
|
277 |
+
|
278 |
+
// Store rates ID and costs - Since 2.2
|
279 |
+
$this->cart_contents[ $cart_item_key ]['line_tax_data'] = array( 'total' => $discounted_taxes, 'subtotal' => $taxes );
|
280 |
+
}
|
281 |
+
|
282 |
+
// Only calculate the grand total + shipping if on the cart/checkout
|
283 |
+
if ( is_checkout() || is_cart() || defined('WOOCOMMERCE_CHECKOUT') || defined('WOOCOMMERCE_CART') ) {
|
284 |
+
|
285 |
+
// Calculate the Shipping
|
286 |
+
$this->calculate_shipping();
|
287 |
+
|
288 |
+
// Trigger the fees API where developers can add fees to the cart
|
289 |
+
$this->calculate_fees();
|
290 |
+
|
291 |
+
// Total up/round taxes and shipping taxes
|
292 |
+
if ( $this->round_at_subtotal ) {
|
293 |
+
$this->tax_total = $this->tax->get_tax_total( $this->taxes );
|
294 |
+
$this->shipping_tax_total = $this->tax->get_tax_total( $this->shipping_taxes );
|
295 |
+
$this->taxes = array_map( array( $this->tax, 'round' ), $this->taxes );
|
296 |
+
$this->shipping_taxes = array_map( array( $this->tax, 'round' ), $this->shipping_taxes );
|
297 |
+
} else {
|
298 |
+
$this->tax_total = array_sum( $this->taxes );
|
299 |
+
$this->shipping_tax_total = array_sum( $this->shipping_taxes );
|
300 |
+
}
|
301 |
+
|
302 |
+
// VAT exemption done at this point - so all totals are correct before exemption
|
303 |
+
if ( WC()->customer->is_vat_exempt() ) {
|
304 |
+
$this->remove_taxes();
|
305 |
+
}
|
306 |
+
|
307 |
+
// Cart Discounts (after tax)
|
308 |
+
$this->apply_cart_discounts_after_tax();
|
309 |
+
|
310 |
+
// Allow plugins to hook and alter totals before final total is calculated
|
311 |
+
do_action( 'woocommerce_calculate_totals', $this );
|
312 |
+
|
313 |
+
// Grand Total - Discounted product prices, discounted tax, shipping cost + tax, and any discounts to be added after tax (e.g. store credit)
|
314 |
+
$this->total = max( 0, apply_filters( 'woocommerce_calculated_total', round( $this->cart_contents_total + $this->tax_total + $this->shipping_tax_total + $this->shipping_total - $this->discount_total + $this->fee_total, $this->dp ), $this ) );
|
315 |
+
|
316 |
+
} else {
|
317 |
+
|
318 |
+
// Set tax total to sum of all tax rows
|
319 |
+
$this->tax_total = $this->tax->get_tax_total( $this->taxes );
|
320 |
+
|
321 |
+
// VAT exemption done at this point - so all totals are correct before exemption
|
322 |
+
if ( WC()->customer->is_vat_exempt() ) {
|
323 |
+
$this->remove_taxes();
|
324 |
+
}
|
325 |
+
|
326 |
+
// Cart Discounts (after tax)
|
327 |
+
$this->apply_cart_discounts_after_tax();
|
328 |
+
}
|
329 |
+
|
330 |
+
$this->set_session();
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Decides whether current cart (and customer) apply for a digital vat exception (checks whether customer is from EU and not from base country)
|
335 |
+
*
|
336 |
+
* @return boolean
|
337 |
+
*/
|
338 |
+
public function is_virtual_taxable() {
|
339 |
+
if ( get_option( 'woocommerce_gzd_enable_virtual_vat' ) != 'yes' )
|
340 |
+
return false;
|
341 |
+
if ( ( ! empty( WC()->customer ) ) && ( is_checkout() || defined('WOOCOMMERCE_CHECKOUT') ) ) {
|
342 |
+
$taxable_address = WC()->customer->get_taxable_address();
|
343 |
+
$base_country = WC()->countries->get_base_country();
|
344 |
+
if ( isset( $taxable_address[0] ) && $taxable_address[0] != $base_country && in_array( $taxable_address[0], WC()->countries->get_european_union_countries() ) )
|
345 |
+
return true;
|
346 |
+
}
|
347 |
+
return false;
|
348 |
+
}
|
349 |
+
|
350 |
+
}
|
351 |
+
|
352 |
+
?>
|
includes/class-wc-gzd-checkout.php
CHANGED
@@ -73,6 +73,12 @@ class WC_GZD_Checkout {
|
|
73 |
add_filter( 'woocommerce_order_formatted_billing_address', array( $this, 'set_formatted_billing_address' ), 0, 2 );
|
74 |
add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
|
75 |
add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
}
|
77 |
|
78 |
public function set_formatted_billing_address( $fields = array(), $order ) {
|
73 |
add_filter( 'woocommerce_order_formatted_billing_address', array( $this, 'set_formatted_billing_address' ), 0, 2 );
|
74 |
add_filter( 'woocommerce_order_formatted_shipping_address', array( $this, 'set_formatted_shipping_address' ), 0, 2 );
|
75 |
add_filter( 'woocommerce_formatted_address_replacements', array( $this, 'set_formatted_address' ), 0, 2 );
|
76 |
+
// Add item desc to order
|
77 |
+
add_action( 'woocommerce_order_add_product', array( $this, 'set_item_desc_order_meta' ), 0, 5 );
|
78 |
+
}
|
79 |
+
|
80 |
+
public function set_item_desc_order_meta( $order_id, $item_id, $product, $qty, $args ) {
|
81 |
+
wc_add_order_item_meta( $item_id, '_product_desc', $product->get_mini_desc() );
|
82 |
}
|
83 |
|
84 |
public function set_formatted_billing_address( $fields = array(), $order ) {
|
includes/class-wc-gzd-emails.php
CHANGED
@@ -26,7 +26,8 @@ class WC_GZD_Emails {
|
|
26 |
'woocommerce_gzd_mail_attach_imprint' => woocommerce_get_page_id ( 'imprint' ),
|
27 |
);
|
28 |
|
29 |
-
|
|
|
30 |
add_action( 'woocommerce_order_item_name', 'wc_gzd_product_item_desc', 0, 2 );
|
31 |
|
32 |
$mails = WC()->mailer()->get_emails();
|
@@ -47,13 +48,12 @@ class WC_GZD_Emails {
|
|
47 |
* @param object $mail
|
48 |
*/
|
49 |
public function hook_mail_footer( $mail ) {
|
50 |
-
if ( !empty( $this->footer_attachments ) ) {
|
51 |
foreach ( $this->footer_attachments as $option_key => $option ) {
|
52 |
-
if ( $option
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
}
|
57 |
}
|
58 |
}
|
59 |
}
|
@@ -94,8 +94,8 @@ class WC_GZD_Emails {
|
|
94 |
remove_shortcode( 'revocation_form' );
|
95 |
add_shortcode( 'revocation_form', array( $this, 'revocation_form_replacement' ) );
|
96 |
wc_get_template( 'emails/email-footer-attachment.php', array(
|
97 |
-
|
98 |
-
|
99 |
add_shortcode( 'revocation_form', 'WC_GZD_Shortcodes::revocation_form' );
|
100 |
}
|
101 |
|
26 |
'woocommerce_gzd_mail_attach_imprint' => woocommerce_get_page_id ( 'imprint' ),
|
27 |
);
|
28 |
|
29 |
+
// Hook before WooCommerce Footer is applied
|
30 |
+
add_action( 'woocommerce_email_footer', array( $this, 'add_template_footers' ), -1 );
|
31 |
add_action( 'woocommerce_order_item_name', 'wc_gzd_product_item_desc', 0, 2 );
|
32 |
|
33 |
$mails = WC()->mailer()->get_emails();
|
48 |
* @param object $mail
|
49 |
*/
|
50 |
public function hook_mail_footer( $mail ) {
|
51 |
+
if ( ! empty( $this->footer_attachments ) ) {
|
52 |
foreach ( $this->footer_attachments as $option_key => $option ) {
|
53 |
+
if ( $option == -1 || ! get_option( $option_key ) )
|
54 |
+
continue;
|
55 |
+
if ( in_array( $mail->id, get_option( $option_key ) ) )
|
56 |
+
$this->attach_page_content( $option );
|
|
|
57 |
}
|
58 |
}
|
59 |
}
|
94 |
remove_shortcode( 'revocation_form' );
|
95 |
add_shortcode( 'revocation_form', array( $this, 'revocation_form_replacement' ) );
|
96 |
wc_get_template( 'emails/email-footer-attachment.php', array(
|
97 |
+
'post_attach' => get_post( $page_id ),
|
98 |
+
) );
|
99 |
add_shortcode( 'revocation_form', 'WC_GZD_Shortcodes::revocation_form' );
|
100 |
}
|
101 |
|
includes/class-wc-gzd-install.php
CHANGED
@@ -48,6 +48,9 @@ class WC_GZD_Install {
|
|
48 |
if ( ! empty( $_GET['install_woocommerce_gzd_settings'] ) )
|
49 |
self::set_default_settings();
|
50 |
|
|
|
|
|
|
|
51 |
// We no longer need to install pages
|
52 |
delete_option( '_wc_gzd_needs_pages' );
|
53 |
delete_transient( '_wc_gzd_activation_redirect' );
|
@@ -80,7 +83,9 @@ class WC_GZD_Install {
|
|
80 |
// What's new redirect
|
81 |
wp_redirect( admin_url( 'index.php?page=wc-gzd-about&wc-gzd-updated=true' ) );
|
82 |
exit;
|
|
|
83 |
}
|
|
|
84 |
}
|
85 |
|
86 |
/**
|
@@ -104,10 +109,24 @@ class WC_GZD_Install {
|
|
104 |
|
105 |
$this->create_cron_jobs();
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
// Queue upgrades
|
108 |
$current_version = get_option( 'woocommerce_gzd_version', null );
|
109 |
$current_db_version = get_option( 'woocommerce_gzd_db_version', null );
|
110 |
|
|
|
|
|
|
|
111 |
update_option( 'woocommerce_gzd_db_version', WC_germanized()->version );
|
112 |
|
113 |
// Update version
|
@@ -122,9 +141,8 @@ class WC_GZD_Install {
|
|
122 |
delete_option( '_wc_gzd_hide_review_notice' );
|
123 |
|
124 |
// Check if pages are needed
|
125 |
-
if ( wc_get_page_id( 'revocation' ) < 1 )
|
126 |
update_option( '_wc_gzd_needs_pages', 1 );
|
127 |
-
}
|
128 |
|
129 |
// Flush rules after install
|
130 |
flush_rewrite_rules();
|
@@ -138,6 +156,9 @@ class WC_GZD_Install {
|
|
138 |
*/
|
139 |
public function update() {
|
140 |
// Do updates
|
|
|
|
|
|
|
141 |
$current_db_version = get_option( 'woocommerce_gzd_db_version' );
|
142 |
update_option( 'woocommerce_gzd_db_version', WC_germanized()->version );
|
143 |
}
|
@@ -154,6 +175,75 @@ class WC_GZD_Install {
|
|
154 |
wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
/**
|
158 |
* Updates WooCommerce Options if user chooses to automatically adapt german options
|
159 |
*/
|
@@ -185,7 +275,7 @@ class WC_GZD_Install {
|
|
185 |
$_tax_rate = array(
|
186 |
'tax_rate_country' => 'DE',
|
187 |
'tax_rate_state' => '',
|
188 |
-
'tax_rate' => 19.0,
|
189 |
'tax_rate_name' => 'MwSt.',
|
190 |
'tax_rate_priority' => 1,
|
191 |
'tax_rate_compound' => '',
|
@@ -197,13 +287,17 @@ class WC_GZD_Install {
|
|
197 |
if ( empty( $exists ) )
|
198 |
$wpdb->insert( $wpdb->prefix . 'woocommerce_tax_rates', $_tax_rate );
|
199 |
|
200 |
-
$_tax_rate[ 'tax_rate' ] = 7.0;
|
201 |
$_tax_rate[ 'tax_rate_class' ] = 'reduced-rate';
|
202 |
$_tax_rate[ 'tax_rate_name' ] = 'MwSt. 7%';
|
203 |
|
204 |
$exists = $wpdb->get_results ( 'SELECT tax_rate_id FROM ' . $wpdb->prefix . 'woocommerce_tax_rates' . ' WHERE tax_rate LIKE "7%"' );
|
205 |
if ( empty( $exists ) )
|
206 |
$wpdb->insert( $wpdb->prefix . 'woocommerce_tax_rates', $_tax_rate );
|
|
|
|
|
|
|
|
|
207 |
}
|
208 |
|
209 |
/**
|
48 |
if ( ! empty( $_GET['install_woocommerce_gzd_settings'] ) )
|
49 |
self::set_default_settings();
|
50 |
|
51 |
+
if ( ! empty( $_GET['install_woocommerce_gzd_tax_rates'] ) )
|
52 |
+
self::create_tax_rates();
|
53 |
+
|
54 |
// We no longer need to install pages
|
55 |
delete_option( '_wc_gzd_needs_pages' );
|
56 |
delete_transient( '_wc_gzd_activation_redirect' );
|
83 |
// What's new redirect
|
84 |
wp_redirect( admin_url( 'index.php?page=wc-gzd-about&wc-gzd-updated=true' ) );
|
85 |
exit;
|
86 |
+
|
87 |
}
|
88 |
+
|
89 |
}
|
90 |
|
91 |
/**
|
109 |
|
110 |
$this->create_cron_jobs();
|
111 |
|
112 |
+
// Virtual Tax Classes
|
113 |
+
$tax_classes = array_filter( array_map( 'trim', explode( "\n", get_option('woocommerce_tax_classes' ) ) ) );
|
114 |
+
if ( ! in_array( 'Virtual Rate', $tax_classes ) || ! in_array( 'Virtual Reduced Rate', $tax_classes ) ) {
|
115 |
+
update_option( '_wc_gzd_needs_pages', 1 );
|
116 |
+
if ( ! in_array( 'Virtual Rate', $tax_classes ) )
|
117 |
+
array_push( $tax_classes, 'Virtual Rate' );
|
118 |
+
if ( ! in_array( 'Virtual Reduced Rate', $tax_classes ) )
|
119 |
+
array_push( $tax_classes, 'Virtual Reduced Rate' );
|
120 |
+
update_option( 'woocommerce_tax_classes', implode( "\n", $tax_classes ) );
|
121 |
+
}
|
122 |
+
|
123 |
// Queue upgrades
|
124 |
$current_version = get_option( 'woocommerce_gzd_version', null );
|
125 |
$current_db_version = get_option( 'woocommerce_gzd_db_version', null );
|
126 |
|
127 |
+
if ( version_compare( $current_db_version, '1.0.4', '<' ) && null !== $current_db_version )
|
128 |
+
update_option( '_wc_gzd_needs_update', 1 );
|
129 |
+
|
130 |
update_option( 'woocommerce_gzd_db_version', WC_germanized()->version );
|
131 |
|
132 |
// Update version
|
141 |
delete_option( '_wc_gzd_hide_review_notice' );
|
142 |
|
143 |
// Check if pages are needed
|
144 |
+
if ( wc_get_page_id( 'revocation' ) < 1 )
|
145 |
update_option( '_wc_gzd_needs_pages', 1 );
|
|
|
146 |
|
147 |
// Flush rules after install
|
148 |
flush_rewrite_rules();
|
156 |
*/
|
157 |
public function update() {
|
158 |
// Do updates
|
159 |
+
if ( ! empty( $_GET['install_woocommerce_gzd_tax_rates'] ) )
|
160 |
+
self::create_tax_rates();
|
161 |
+
|
162 |
$current_db_version = get_option( 'woocommerce_gzd_db_version' );
|
163 |
update_option( 'woocommerce_gzd_db_version', WC_germanized()->version );
|
164 |
}
|
175 |
wp_schedule_event( time(), 'daily', 'woocommerce_gzd_ekomi' );
|
176 |
}
|
177 |
|
178 |
+
public static function create_tax_rates() {
|
179 |
+
|
180 |
+
global $wpdb;
|
181 |
+
|
182 |
+
// Delete digital rates
|
183 |
+
$wpdb->delete( $wpdb->prefix . 'woocommerce_tax_rates', array( 'tax_rate_class' => 'virtual-rate' ), array( '%s' ) );
|
184 |
+
|
185 |
+
$rates = array(
|
186 |
+
'BE' => 21,
|
187 |
+
'BG' => 20,
|
188 |
+
'CZ' => 21,
|
189 |
+
'DK' => 25,
|
190 |
+
'DE' => 19,
|
191 |
+
'EE' => 20,
|
192 |
+
'EL' => 23,
|
193 |
+
'ES' => 21,
|
194 |
+
'FR' => 20,
|
195 |
+
'HR' => 25,
|
196 |
+
'IE' => 23,
|
197 |
+
'IT' => 22,
|
198 |
+
'CY' => 19,
|
199 |
+
'LV' => 21,
|
200 |
+
'LT' => 21,
|
201 |
+
'LU' => 15,
|
202 |
+
'HU' => 27,
|
203 |
+
'MT' => 18,
|
204 |
+
'NL' => 21,
|
205 |
+
'AT' => 20,
|
206 |
+
'PL' => 23,
|
207 |
+
'PT' => 23,
|
208 |
+
'RO' => 24,
|
209 |
+
'SI' => 22,
|
210 |
+
'SK' => 20,
|
211 |
+
'FI' => 24,
|
212 |
+
'SE' => 25,
|
213 |
+
'UK' => 20,
|
214 |
+
);
|
215 |
+
|
216 |
+
if ( ! empty( $rates ) ) {
|
217 |
+
$count = 0;
|
218 |
+
foreach ( $rates as $iso => $rate ) {
|
219 |
+
$_tax_rate = array(
|
220 |
+
'tax_rate_country' => $iso,
|
221 |
+
'tax_rate_state' => '',
|
222 |
+
'tax_rate' => (string) number_format( (double) wc_clean( $rate ), 4, '.', '' ),
|
223 |
+
'tax_rate_name' => 'MwSt. ' . $iso . ' virtual',
|
224 |
+
'tax_rate_priority' => 1,
|
225 |
+
'tax_rate_compound' => 0,
|
226 |
+
'tax_rate_shipping' => 0,
|
227 |
+
'tax_rate_order' => $count++,
|
228 |
+
'tax_rate_class' => 'virtual-rate'
|
229 |
+
);
|
230 |
+
// Check if standard rate exists
|
231 |
+
if ( WC()->countries->get_base_country() == $iso ) {
|
232 |
+
$base_rate = WC_Tax::get_shop_base_rate();
|
233 |
+
$base_rate = reset( $base_rate );
|
234 |
+
if ( ! empty( $base_rate ) )
|
235 |
+
$_tax_rate[ 'tax_rate_name' ] = $base_rate[ 'label' ];
|
236 |
+
}
|
237 |
+
$wpdb->insert( $wpdb->prefix . 'woocommerce_tax_rates', $_tax_rate );
|
238 |
+
$tax_rate_id = $wpdb->insert_id;
|
239 |
+
do_action( 'woocommerce_tax_rate_added', $tax_rate_id, $_tax_rate );
|
240 |
+
}
|
241 |
+
}
|
242 |
+
// Clear tax transients
|
243 |
+
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE %s;", '_transient_wc_tax_rates%' ) );
|
244 |
+
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE %s;", '_transient_timeout_wc_tax_rates%' ) );
|
245 |
+
}
|
246 |
+
|
247 |
/**
|
248 |
* Updates WooCommerce Options if user chooses to automatically adapt german options
|
249 |
*/
|
275 |
$_tax_rate = array(
|
276 |
'tax_rate_country' => 'DE',
|
277 |
'tax_rate_state' => '',
|
278 |
+
'tax_rate' => number_format( (double) wc_clean( 19.0 ), 4, '.', '' ),
|
279 |
'tax_rate_name' => 'MwSt.',
|
280 |
'tax_rate_priority' => 1,
|
281 |
'tax_rate_compound' => '',
|
287 |
if ( empty( $exists ) )
|
288 |
$wpdb->insert( $wpdb->prefix . 'woocommerce_tax_rates', $_tax_rate );
|
289 |
|
290 |
+
$_tax_rate[ 'tax_rate' ] = number_format( (double) wc_clean( 7.0 ), 4, '.', '' );
|
291 |
$_tax_rate[ 'tax_rate_class' ] = 'reduced-rate';
|
292 |
$_tax_rate[ 'tax_rate_name' ] = 'MwSt. 7%';
|
293 |
|
294 |
$exists = $wpdb->get_results ( 'SELECT tax_rate_id FROM ' . $wpdb->prefix . 'woocommerce_tax_rates' . ' WHERE tax_rate LIKE "7%"' );
|
295 |
if ( empty( $exists ) )
|
296 |
$wpdb->insert( $wpdb->prefix . 'woocommerce_tax_rates', $_tax_rate );
|
297 |
+
|
298 |
+
// Clear tax transients
|
299 |
+
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE %s;", '_transient_wc_tax_rates%' ) );
|
300 |
+
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE %s;", '_transient_timeout_wc_tax_rates%' ) );
|
301 |
}
|
302 |
|
303 |
/**
|
includes/class-wc-gzd-shortcodes.php
CHANGED
@@ -42,7 +42,7 @@ class WC_GZD_Shortcodes {
|
|
42 |
public static function revocation_form( $atts ) {
|
43 |
|
44 |
ob_start();
|
45 |
-
|
46 |
$return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
|
47 |
return $return;
|
48 |
|
@@ -57,7 +57,7 @@ class WC_GZD_Shortcodes {
|
|
57 |
public static function payment_methods_info( $atts ) {
|
58 |
|
59 |
ob_start();
|
60 |
-
|
61 |
$return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
|
62 |
return $return;
|
63 |
|
@@ -72,7 +72,7 @@ class WC_GZD_Shortcodes {
|
|
72 |
public static function trusted_shops_rich_snippets( $atts ) {
|
73 |
|
74 |
ob_start();
|
75 |
-
|
76 |
$html = ob_get_clean();
|
77 |
return WC_germanized()->trusted_shops->is_enabled() ? '<div class="woocommerce woocommerce-gzd">' . $html . '</div>' : '';
|
78 |
|
@@ -87,7 +87,7 @@ class WC_GZD_Shortcodes {
|
|
87 |
public static function trusted_shops_reviews( $atts ) {
|
88 |
|
89 |
ob_start();
|
90 |
-
|
91 |
$html = ob_get_clean();
|
92 |
return WC_germanized()->trusted_shops->is_enabled() ? '<div class="woocommerce woocommerce-gzd">' . $html . '</div>' : '';
|
93 |
|
42 |
public static function revocation_form( $atts ) {
|
43 |
|
44 |
ob_start();
|
45 |
+
wc_get_template( 'forms/revocation-form.php' );
|
46 |
$return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
|
47 |
return $return;
|
48 |
|
57 |
public static function payment_methods_info( $atts ) {
|
58 |
|
59 |
ob_start();
|
60 |
+
wc_get_template( 'global/payment-methods.php' );
|
61 |
$return = '<div class="woocommerce woocommerce-gzd">' . ob_get_clean() . '</div>';
|
62 |
return $return;
|
63 |
|
72 |
public static function trusted_shops_rich_snippets( $atts ) {
|
73 |
|
74 |
ob_start();
|
75 |
+
wc_get_template( 'trusted-shops/rich-snippets.php' );
|
76 |
$html = ob_get_clean();
|
77 |
return WC_germanized()->trusted_shops->is_enabled() ? '<div class="woocommerce woocommerce-gzd">' . $html . '</div>' : '';
|
78 |
|
87 |
public static function trusted_shops_reviews( $atts ) {
|
88 |
|
89 |
ob_start();
|
90 |
+
wc_get_template( 'trusted-shops/reviews.php' );
|
91 |
$html = ob_get_clean();
|
92 |
return WC_germanized()->trusted_shops->is_enabled() ? '<div class="woocommerce woocommerce-gzd">' . $html . '</div>' : '';
|
93 |
|
includes/wc-gzd-cart-functions.php
CHANGED
@@ -39,7 +39,7 @@ function wc_gzd_cart_totals_order_total_html() {
|
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
* Get order total tax html
|
43 |
*
|
44 |
* @return void
|
45 |
*/
|
@@ -48,12 +48,11 @@ function wc_gzd_cart_totals_order_total_tax_html() {
|
|
48 |
// If prices are tax inclusive, show taxes here
|
49 |
if ( get_option( 'woocommerce_calc_taxes' ) == 'yes' && WC()->cart->tax_display_cart == 'incl' ) {
|
50 |
$tax_array = array();
|
51 |
-
|
52 |
if ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ) {
|
53 |
foreach ( WC()->cart->get_tax_totals() as $code => $tax ) {
|
54 |
$rate = wc_gzd_get_tax_rate( $tax->tax_rate_id );
|
55 |
if ( ! empty( $rate ) && isset( $rate->tax_rate ) )
|
56 |
-
$tax->rate =
|
57 |
$tax_array[] = array( 'tax' => $tax, 'amount' => $tax->formatted_amount );
|
58 |
}
|
59 |
} else {
|
@@ -64,9 +63,10 @@ function wc_gzd_cart_totals_order_total_tax_html() {
|
|
64 |
}
|
65 |
if ( ! empty( $tax_array ) ) {
|
66 |
foreach ( $tax_array as $tax ) {
|
|
|
67 |
echo '
|
68 |
<tr class="order-tax">
|
69 |
-
<th>' . sprintf( __( 'incl. %s%% VAT', 'woocommerce-germanized' ), $
|
70 |
<td>' . $tax[ 'amount' ] . '</td>
|
71 |
</tr>';
|
72 |
}
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
+
* Get order total tax html.
|
43 |
*
|
44 |
* @return void
|
45 |
*/
|
48 |
// If prices are tax inclusive, show taxes here
|
49 |
if ( get_option( 'woocommerce_calc_taxes' ) == 'yes' && WC()->cart->tax_display_cart == 'incl' ) {
|
50 |
$tax_array = array();
|
|
|
51 |
if ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ) {
|
52 |
foreach ( WC()->cart->get_tax_totals() as $code => $tax ) {
|
53 |
$rate = wc_gzd_get_tax_rate( $tax->tax_rate_id );
|
54 |
if ( ! empty( $rate ) && isset( $rate->tax_rate ) )
|
55 |
+
$tax->rate = $rate->tax_rate;
|
56 |
$tax_array[] = array( 'tax' => $tax, 'amount' => $tax->formatted_amount );
|
57 |
}
|
58 |
} else {
|
63 |
}
|
64 |
if ( ! empty( $tax_array ) ) {
|
65 |
foreach ( $tax_array as $tax ) {
|
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 |
}
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== WooCommerce Germanized ===
|
2 |
Contributors: vendidero
|
3 |
-
Tags: woocommerce,
|
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.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -34,6 +34,11 @@ Selbstverständlich können Trusted Shops Kunden mit nur wenigen Einstellungen d
|
|
34 |
Bei der Entwicklung von WooCommerce Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
|
35 |
Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
|
36 |
|
|
|
|
|
|
|
|
|
|
|
37 |
= eKomi Integration =
|
38 |
Mit nur wenigen Klicks lässt sich eKomi als Bewertungsmanagement-Dienstleister in WooCommerce Germanized einstellen.
|
39 |
Damit kann dein Online-Shop ganz einfach von den Vorteilen des externen Dienstleisters profitieren und unabhängige Kundenbewertungen veröffentlichen.
|
@@ -118,6 +123,12 @@ Bugs sowie Hilfe bei der Arbeit an WooCommerce Germanized werden gerne über uns
|
|
118 |
|
119 |
== Changelog ==
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
= 1.0.3 =
|
122 |
* Fix - PHP 5.3 date diff backward compatibility
|
123 |
* Fix - Trusted Shops review email days ignore fix
|
1 |
=== WooCommerce Germanized ===
|
2 |
Contributors: vendidero
|
3 |
+
Tags: woocommerce, german market, german, germany, deutsch, deutschland, de, de_DE, shop, commerce, e-commerce, ecommerce, woothemes
|
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.4
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
34 |
Bei der Entwicklung von WooCommerce Germanized haben wir besonderes Augenmerk auf die nahtlose Integration in WooCommerce gelegt.
|
35 |
Die meisten Änderungen erfolgen über Hooks & Filter - nur im äußersten Notfall wird ein Template direkt überschrieben.
|
36 |
|
37 |
+
= Neue Umsatzsteuer-Regelung für virtuelle Produkte =
|
38 |
+
Mit der neuesten Version unterstützt WooCommerce Germanized die neuen Umsatzsteuer-Regelungen (B2C-Geschäfte, gültig ab 01.01.2015) zum Verkauf von virtuellen Produkten in die Europäische Union.
|
39 |
+
Dabei wird bei virtuellen Produkten der Brutto-Preis beibehalten und lediglich der Netto-Preis, je nach Herkunftsland des Dienstleistungsempfängers, angepasst.
|
40 |
+
Insofern du von den Regelungen betroffen sein solltest, empfehlen wir dir unbedingt mit deinem Steuerberater Rücksprache zu halten.
|
41 |
+
|
42 |
= eKomi Integration =
|
43 |
Mit nur wenigen Klicks lässt sich eKomi als Bewertungsmanagement-Dienstleister in WooCommerce Germanized einstellen.
|
44 |
Damit kann dein Online-Shop ganz einfach von den Vorteilen des externen Dienstleisters profitieren und unabhängige Kundenbewertungen veröffentlichen.
|
123 |
|
124 |
== Changelog ==
|
125 |
|
126 |
+
= 1.0.4 =
|
127 |
+
* Feature - Applying new VAT rules for selling virtual products to EU countries
|
128 |
+
* Feature - Added option to set a label for displaying unit price
|
129 |
+
* Fix - Stop updating default order status to send order confirmation. Using (in)appropriate hooks instead
|
130 |
+
* Fix - Filter priority bug fix
|
131 |
+
|
132 |
= 1.0.3 =
|
133 |
* Fix - PHP 5.3 date diff backward compatibility
|
134 |
* Fix - Trusted Shops review email days ignore fix
|
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.
|
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.
|
30 |
|
31 |
/**
|
32 |
* Single instance of WooCommerce Germanized Main Class
|
@@ -125,6 +125,7 @@ final class WooCommerce_Germanized {
|
|
125 |
add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
|
126 |
add_action( 'widgets_init', array( $this, 'include_widgets' ), 25 );
|
127 |
add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
|
|
|
128 |
|
129 |
// Loaded action
|
130 |
do_action( 'woocommerce_germanized_loaded' );
|
@@ -159,8 +160,8 @@ final class WooCommerce_Germanized {
|
|
159 |
do_action( 'before_woocommerce_germanized_init' );
|
160 |
// Include required files
|
161 |
$this->includes();
|
162 |
-
add_filter( 'woocommerce_locate_template', array( $this, 'filter_templates' ),
|
163 |
-
add_filter( 'woocommerce_product_class', array( $this, 'filter_product_classes' ),
|
164 |
add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings' ) );
|
165 |
add_filter( 'woocommerce_enqueue_styles', array( $this, 'add_styles' ) );
|
166 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ) );
|
@@ -175,7 +176,9 @@ final class WooCommerce_Germanized {
|
|
175 |
// Add better tax display to order totals
|
176 |
add_filter( 'woocommerce_get_order_item_totals', array( $this, 'order_item_totals' ), 0, 2 );
|
177 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fee_cart' ), 0 );
|
178 |
-
|
|
|
|
|
179 |
// Send order notice directly after new order is being added - use these filters because order status has to be updated already
|
180 |
add_filter( 'woocommerce_payment_successful_result', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
|
181 |
add_filter( 'woocommerce_checkout_no_payment_needed_redirect', array( $this, 'send_order_confirmation_mails' ), 0, 2 );
|
@@ -200,6 +203,14 @@ final class WooCommerce_Germanized {
|
|
200 |
}
|
201 |
}
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
/**
|
204 |
* Auto-load WC_Germanized classes on demand to reduce memory consumption.
|
205 |
*
|
@@ -285,6 +296,7 @@ final class WooCommerce_Germanized {
|
|
285 |
|
286 |
include_once 'includes/wc-gzd-cart-functions.php';
|
287 |
include_once 'includes/class-wc-gzd-checkout.php';
|
|
|
288 |
}
|
289 |
|
290 |
/**
|
@@ -383,6 +395,11 @@ final class WooCommerce_Germanized {
|
|
383 |
return $gateways;
|
384 |
}
|
385 |
|
|
|
|
|
|
|
|
|
|
|
386 |
public function get_payment_gateways_feeable() {
|
387 |
return apply_filters( 'wc_gzd_payment_gateways_feeable', array( 'bacs', 'paypal', 'cod' ) );
|
388 |
}
|
@@ -444,8 +461,8 @@ final class WooCommerce_Germanized {
|
|
444 |
*/
|
445 |
public function action_links( $links ) {
|
446 |
return array_merge( array(
|
447 |
-
|
448 |
-
|
449 |
}
|
450 |
|
451 |
/**
|
@@ -532,7 +549,7 @@ final class WooCommerce_Germanized {
|
|
532 |
*/
|
533 |
public function email_small_business_notice() {
|
534 |
if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' )
|
535 |
-
|
536 |
}
|
537 |
|
538 |
/**
|
@@ -557,9 +574,9 @@ final class WooCommerce_Germanized {
|
|
557 |
* @return array
|
558 |
*/
|
559 |
public function add_emails( $mails ) {
|
560 |
-
$mails[]
|
561 |
-
$mails[]
|
562 |
-
$mails[] = include 'includes/emails/class-wc-gzd-email-customer-trusted-shops.php';
|
563 |
return $mails;
|
564 |
}
|
565 |
|
@@ -594,6 +611,22 @@ final class WooCommerce_Germanized {
|
|
594 |
return $return;
|
595 |
}
|
596 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
/**
|
598 |
* Update fee for cart if feeable gateway has been selected as payment method
|
599 |
*/
|
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.4
|
7 |
* Author: Vendidero
|
8 |
* Author URI: http://vendidero.de
|
9 |
* Requires at least: 3.8
|
26 |
*
|
27 |
* @var string
|
28 |
*/
|
29 |
+
public $version = '1.0.4';
|
30 |
|
31 |
/**
|
32 |
* Single instance of WooCommerce Germanized Main Class
|
125 |
add_action( 'init', array( 'WC_GZD_Shortcodes', 'init' ), 2 );
|
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' );
|
160 |
do_action( 'before_woocommerce_germanized_init' );
|
161 |
// Include required files
|
162 |
$this->includes();
|
163 |
+
add_filter( 'woocommerce_locate_template', array( $this, 'filter_templates' ), PHP_INT_MAX, 3 );
|
164 |
+
add_filter( 'woocommerce_product_class', array( $this, 'filter_product_classes' ), PHP_INT_MAX, 4 );
|
165 |
add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings' ) );
|
166 |
add_filter( 'woocommerce_enqueue_styles', array( $this, 'add_styles' ) );
|
167 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ) );
|
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 );
|
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 |
*
|
296 |
|
297 |
include_once 'includes/wc-gzd-cart-functions.php';
|
298 |
include_once 'includes/class-wc-gzd-checkout.php';
|
299 |
+
|
300 |
}
|
301 |
|
302 |
/**
|
395 |
return $gateways;
|
396 |
}
|
397 |
|
398 |
+
/**
|
399 |
+
* Gets payment gateways which are ready to accept fees.
|
400 |
+
*
|
401 |
+
* @return array
|
402 |
+
*/
|
403 |
public function get_payment_gateways_feeable() {
|
404 |
return apply_filters( 'wc_gzd_payment_gateways_feeable', array( 'bacs', 'paypal', 'cod' ) );
|
405 |
}
|
461 |
*/
|
462 |
public function action_links( $links ) {
|
463 |
return array_merge( array(
|
464 |
+
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=germanized' ) . '">' . __( 'Settings', 'woocommerce' ) . '</a>',
|
465 |
+
), $links );
|
466 |
}
|
467 |
|
468 |
/**
|
549 |
*/
|
550 |
public function email_small_business_notice() {
|
551 |
if ( get_option( 'woocommerce_gzd_small_enterprise' ) == 'yes' )
|
552 |
+
wc_get_template( 'global/small-business-info.php' );
|
553 |
}
|
554 |
|
555 |
/**
|
574 |
* @return array
|
575 |
*/
|
576 |
public function add_emails( $mails ) {
|
577 |
+
$mails[ 'WC_GZD_Email_Customer_Revocation' ] = include 'includes/emails/class-wc-gzd-email-customer-revocation.php';
|
578 |
+
$mails[ 'WC_GZD_Email_Customer_Ekomi' ] = include 'includes/emails/class-wc-gzd-email-customer-ekomi.php';
|
579 |
+
$mails[ 'WC_GZD_Email_Customer_Trusted_Shops' ] = include 'includes/emails/class-wc-gzd-email-customer-trusted-shops.php';
|
580 |
return $mails;
|
581 |
}
|
582 |
|
611 |
return $return;
|
612 |
}
|
613 |
|
614 |
+
/**
|
615 |
+
* Stop WooCommerce from adding additional VAT to virtual products within Checkout.
|
616 |
+
*
|
617 |
+
* @param float $price
|
618 |
+
* @param int $qty
|
619 |
+
* @param object $product
|
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;
|
627 |
+
return $price;
|
628 |
+
}
|
629 |
+
|
630 |
/**
|
631 |
* Update fee for cart if feeable gateway has been selected as payment method
|
632 |
*/
|